RSSAmplifier

Blog

(untitled)

shon.github.ioRSS feed ↗25 posts

Latest posts

Exploring Outline (getoutline.com) for Team Knowledgebase

As our Engineering team scales , I was looking for a solution that could replace the GitHub wiki with something more capable. Specifically, a tool that offers easy access/collaboration, robust search, and supports AI queries. I had stumbled upon getoutline.com sometime back, and have been eager to explore it since! If you haven't heard of it, Outline is a fantastic, open-source team knowledge base…

(untitled)

Very interesting app and beautiful interface, can't wait to try this app -> Audio Diary

Zola

This site is powered by excellent Zola . Some history My blogging journey began with Pelican , which was pretty neat until I crossed paths with Tinkerer . I absolutely loved Tinkerer. I chose RestructuredText as the text markup, which was quiet popular that time among the Pythonistas during that era. My blogging saga however took a backseat, with only sporadic ramblings on my stck account and for…

(untitled)

Microblogging is fascinating. I love what Twitter has done and is doing. Deeply admire Jack Dorsey and Elon. As much as I love Twitter, Rs. 650/mo for premium subscription would be too much for me. I wish there was a more affordable plan. I always wanted to have some form of microblogging in the products that I worked on in the past. That never really happened. But thatnks to Zola, now that my…

(untitled)

Hello Microblog / Journal / Short Notes

Postgres Array vs Join benchmark

Here is little experiment to measure postgresql array's performance. For the example problem let us take blog posts and tags. Join approach This is perhaps more common approach to model posts and tags. So let's define model. Here I am using excellent Peewee . So we have three tables Post, Tag and PostTag. PostTag table maintains all post to tag records. class Post ( BaseModel ) : title = CharField…

Android Apps I use

These are android apps that I find super useful. Ofcourse the list excludes most popular ones like gmail and facebook. These are somewhat less known apps (or now getting popular). Launcher Aviate <3 this elegant launcher by Yahoo. It's simple and smart. https://play.google.com/store/apps/details?id=com.tul.aviate&hl=en Travel My Tracks Helps me track my hikes and provides interesting stats. This…

Crapbali

So Friday afternoon we decided to watch Bahubali. We are a bunch of geeks who code for living. Tickets were a bit expensive but we were really curious, reading with positive reviews all over (five stars and all). The expectation was watching desi Lord of the rings equivalent. So winning argument in favour of watching Bahubali was "if they have sepnd 250cr making it, it should be worth spending…

Namecheap to AWS Route53 DNS Migration story

System administration is not my job but then sometimes I need to wear that hat to help the team. Here is how I managed DNS migration from Namecheap to AWS Route53. Get the Zone file Namecheap support was kind enough to send me zone file when I requested for one. Format the zone file Remove whitespeces in the beginning of all lines in zone file Add below text as first line of zone file Make sure…

UI Testing and BDD

Recently I had an opportunity to automate UI testing of the web application we have developed. So I found this excellent UI testing framework Splinter . It being written in Python I was instantly confortable. # From Splinter's website from splinter import Browser with Browser ( ) as browser : url = " http://www.google.com " browser . visit ( url ) browser . fill ( ' q ' , ' splinter python…

JSON-RPC

JSON-RPC protocol has got much less attention than it deserves. It is so elegant and simple. Our experience of working on JSON-RPC was plesant. For uninitiated JSON-RPC is lightweight remote procedure call protocol similar to XML-RPC. I find it incredibly useful in building easy to maintain applications. We effectively used JSONRPC in our project Cowoop to make it easy to debug application. It is…

Choosing MVC(MVVM) library for Cowspa

In the initial phase of this open source project cowspa developed by Cowoop , we had chosen knockout.js as important client side component. However during the implementation team bowed to the delivery pressure and couldn't get a chance to learn, explore and use knockout or any other MVC library. Certainly a mistake! Ultimately we have to paid the price of having to maintain really complex pure…

Configuring your ubuntu for faster internet access

While there is a lot already written here my quick howto $ sudo bash # apt-get install dnsmasq squid # echo "listen-address=127.0.0.1" >> /etc/dnsmasq.conf # echo "no-dhcp-interface=" >> /etc/dnsmasq.conf # vi /etc/dhcp3/dhclient.conf # # ^ uncomment line #prepend domain-name-servers 127.0.0.1; # vi /etc/resolv.conf # Add nameserver 127.0.0.1 # /etc/init.d/dnsmasq restart # vi…

Redis patterns | search

Problem You want to implement search against user objects stored in redis using Python. Something like querying for all user ids whose username begins with "an". Solution Here we have user objects stored in as hashes with "user:obj:" as prefix. For example user:obj:3955 {id: 3955, username: 'John', ..} We need some extra data structures to support our search i.e. (search user objects where…

Reliance Netconnect Broadband+ on Linux

It works. Make sure while purchasing you inform them that you use Linux It's fast and reliable in Pashan, Pune area Below config worked for me on Ubuntu 9.10 AND 10.04 There are Linux drivers on the CD but I could not get it working on Ubuntu 9.10. For activation, I had to use Windows :( sudo apt-get install usb-modeswitch wvdial vi /etc/wvdial [Dialer Defaults] Phone = #777 Password = Username =…

xfce and ubuntuone

I do like Ubuntu Netbook Remix's UI. However with 10.04 it's just gone so unstable for me. After login when system prompts for keyring secret, UNR environment crashes and drops to gnome. I have to relogin if I need UNR env. After I removed a few packages it could not just start gnome panel causing a great inconvenience. I guess this is due to Evolution integration with latest Ubuntu. Mail client I…

Unicode

Pulling your hair over some i18n bug? Or you fix one but are not able to explain it. This is little help in getting an idea about unicode/codecs/encoding/decoding etc. Quick tips: a. It does not make sense to have a string without knowing what encoding it uses. b. Utf-8 is a way of storing string of Unicode code points. c. Encoding: Transforming a unicode object into a sequence of bytes d.…

Youtube flash videos to DivX (on Linux)

This how I convert flash I usually use Firefox VideoHelper Addon to download youtube videos. To play them on my Philips DVP5986K DVD player from USB drive, I need to convert it to DivX. mencoder /home/shon/Desktop/file-864260998.flv -ovc lavc -oac mp3lame -ffourcc DX50 -o out.avi

LinkedIn backlash

Linkedin is one of the few sites that has certainly impressed me with it's clever design. I would rate it very highly for professional networking. It has one very popular feature "recommendations". Well, while I am not against recommending or get recommended by, as I have done both in past. But I see people who think that more and more people they have in their list (no matter how they know well…

Tata Indicom USB Modem on Linux

cat /etc/wvdial.conf: [Dialer Defaults] Init1 = ATZ Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 Modem Type = USB Modem Baud = 460800 New PPPD = yes Modem = /dev/ttyACM0 ISDN = 0 Stupid mode = 1 Phone = #777 Password = internet Username = internet Don't understand above? Umm ok but I am too lazy to explain.

My open source projects

Cowoop : Open source application to manage coworking business. httpagentparser : Python HTTP Agent Parser. SPHC : Simple Pythonic HTML Creator. Syncer : A event daemon based on Pyro. Stockie : A personal portfolio manager for an Investor

Qemu networking setup

------------ ---------- | | | Guest | | Host ----+------+----- | | | | Hub | | | | |tap0| |tap1 | | | |-----+-----+-----| | | eth0 | | | | | | | | ----+------- ---------- | (Internet) Host * Add a hub # vde_switch -x -d -tap tap0 -tap tap1 * Assign ip to host's nic # ifconfig tap0 192.168.1.1 * Setup ip forwarding Modify /etc/sysctl.conf net.ipv4.ip_forward=1 * Setup masquerading # iptables -t nat…

Using DOT language to produce Flowchart

better than struggling with the graphical tools. $ cat test.dot digraph FlowChart { node [ fontname = "Bitstream Vera Sans" fontsize = 8 shape = "record" ] edge [ fontname = "Bitstream Vera Sans" fontsize = 8 fontcolor = "Red" ] // all blocks greet [label="Hello, techie", shape="oval"] which_os [label="What OS do you use?" shape="diamond"] like_me [label="Great, me too!", shape="oval"]…

Contract verification in Python

import zope . interface . verify class ITest ( zope . interface . Interface ) : def foo ( arg1 ) : pass def bar ( ) : pass class Test ( object ) : zope . interface . implements ( ITest ) def foo ( self ) : pass class Test2 ( object ) : zope . interface . implements ( ITest ) def foo ( self , arg1 ) : pass class Test3 ( object ) : zope . interface . implements ( ITest ) def foo ( self , arg1 ) :…

Getting older, getting better and better!

Python programming is joy. I was stuck on python 2.3 at my work for long and could not really get chance to explore later versions. Now that I got the opportunity doing re-architecture of the product I started exploring these. I am more than excited looking at deque, groupby, defaultdict and much more ... Also on top of it there exist excellent python softwares like twisted, sqlalchemy ,…