Sun, Jul 10, 2016
After 12+ years, I built a workstation from scratch. Hardware has come such a long way, but that is a post unto itself. Having always worked with Ubuntu and other debian variants it was time to venture into a more lean distro. I picked Arch Linux, on the recommendation of several colleagues. It’s been fun. Pacman and Yaourt are great package managers, and the rolling release model ensures access to the bleeding edge all the time.
Working in linux always makes you learn something new. Today, I found out a simple way to shutdown KDE gracefully.
# qdbus org.kde.ksmserver /KSMServer logout 0 0 0
Wed, Feb 10, 2016
I set myself a goal to write more this year - in fact, I attempted to do so once every week. This required me to look at my blog, which led to the inevitable: small changes in what it looked like, led to general dis-satisfcation with the current solution I have to publish my blog, which quickly ballooned into a whole host of activities.
Let me step back a bit.
Jekyll is really Hyde
I host my blog on github, using a static site generator - Jekyll. It is written in ruby, has some cool features. Overall, it is a decent solution, but I was never satisfied with options it provided. I have hesistated to hack at it, since ruby isn’t my language-du-jour, and most of the changes have been quite minimal. It is also extremely slow.
As any self-respecting programmer is wont to do, instead of writing more posts, and meeting my goal, I delved right into fixing “bike-shed” – in this case, research and use a new static-site generator. Why, you ask? To you, non-existent, ever-questioning inquisitive you, I say – Why not?!
As with any successful hunt, one must make a list: One that shall help determine settle the battle of the generators.
- Must be fast – I mean blazing.
- Should have good defaults – shouldn’t need plugins to perform basic features: syntax highlighting, responsive images, theming,
permalinks and good markdown support.
- Should have a few good themes
- Good community support and/or documents
Scouring the corners of the internet, I narrowed down on two final choices: Hexo and Hugo.
New shiny, shiny
- are faster at generating 300+ pages.
- are opinionated and hence have good defaults.
- support most of features I am looking for except responsive images.
- provide extended markdown support by default.
- hosted by an active community.
Both Hugo and Hexo are pretty good. They are fast enough for my use, and are implemented in modern languages that I am actively learning.
Hugo edged out Hexo: It has a few features that look promising and is a bit more fun to hack. It is written in go and this make it ideal. I am switching to Go as a primary language for my hacking needs. A lot of issues, and about 3000 forks is a good opportunity to contribute to a larg-ish project in go!
The choice is made. Now to move the herd. I have the daunting task of migrating 300+ posts that were originally posted on different blog engines of the past: blogger, wordpress, and octopress and finally jekyll.
In subsequent posts, I will write about a small tool I have built to help with fixing YAML frontmatter after converting posts from html to markdown.
Sun, Jan 31, 2016
It has not been a great start. It, however, has been a busy one.
Don’t smoke (Stay quit!!) : Going strong!
The urge to smoke still surfaces on occasion. I have, however, been able to avoid every time. I must admit that it gets easier, but it always take a bit of an effort.m
Say yes more often: Doing ok.
I have caught myself a couple of times. Still needs work
Read a book a month: Failing miserably.
Read about 5 pages. Currently reading Norwegian Wood by Haruki Murakami. It is a very interesting book, but I have not been able to find time consistently. TV, netflix and youtube, usurps time away from other pursuits.
Write an app a month: Doing ok.
I have managed to write a small app to collect links and text and store those into a database. The app is written in go and is called notedown. It’s a lot of fun to hack something together. I am struggling with user authentication and authorization. auth0 is a great service to get started with implementing a good system for any app. At the moment, I have managed to put together a very rough version that kinda works.
At the moment, the goal is to get parity with apps like instapaper or evernote. The eventual goal, is to make notedown provide automatic tagging and aggregation of links. For the next month, I will focus on getting this solution deployed with a simple gui that is cross-platform.
If you are interested in the idea, you can reach me on twitter, or Gitter or hack at it on github.
Blog once a week: Failing miserably.
As this post illustrates, I have procrastinated all month long. I guess two posts a month is still better than none.
Tue, Jan 5, 2016
The word “resolutions”, feels forced. It feels like a ritual declaration of intent, followed immediately by inaction, and eventually concession that it was all in jest. This year, I am going to have some goals.
- Don’t smoke (Stay quit!!)
- Say yes more often
- Read a book a month
- Write an app a month
- Blog once a week
Goals, feels more friendly, reachable, inviting almost.
Tue, Sep 30, 2014
In the tradition of joining new social tools on the interwebs, here some thoughts on my experience.
The usual steps are:
The first few hours – mostly spent exploring the interface, the features, mired in the comparisons between the “old” and the “new”
At some point, the lack of interaction and content of previous networks – the constant buzz of twitter, the inane conversations of facebook etc. – forces me tp hunt for connections. Rampant, indiscriminate “friending” of people ensues.
Invite a few select people, find the “old” connections from elsewhere, and waddle in the familiarity of all.
Crickets .. not a thing is said. I realize I have nothing to say most days.
Start contributing content, and attempt to find the niche for this medium
All my kindergarden, high school and college buddies arrive, and make their presence felt
Get lazy and stop contributing - the content feed become a wasteland.
I’m just about done with 3 on ello. It’s is going to a fun experience! Of that, I am sure. Some things I like on Ello, that I hope will break the pattern of “use-discard”:
Friends/Noise. This is a great middle ground between the insanity that is Circles on Google+, the unmaintainable mess that is twitter lists, and the unknowable grouping in FB.
Multiple layout options. Makes the incessant updates manageable.
Markdown. Can’t thank the developers of Ello, enough for this!!
Ability to cross-post content between my blog and Ello. Thanks largely, to markdown.
Some posts from others more articulate than me:
@thomashawk quips on his thoughts on Ello. A great read. As always, TH has great content, and also copious amounts of patience in letting such tools grow, and helping it in the process (I’ve seen him do this for flickr, google+ and zooomr).
@budnitz One of the founders of Ello makes great points on starting up something new. Nice to see the passion and the vision. Kudos!
Cross-posted on Ello
Tue, Jul 15, 2014
Today’s post by Seth Godin, struck a cord. I am fortunate enough to get an opportunity to build “my Eiffel Tower”. I’m building two DSLs and associated infrastructure to allow storing lots of data in an in-memory database running in an embedded system. Wish me luck! Very excited, I might add!
Mon, Jul 14, 2014
I hate passwords. Seems like several smart people are on the case of getting rid of the “password”
Wed, Apr 23, 2014
I haven’t been very good with rotating the inks in the last year. Having accumulated more than my share of inks, it is time to have fewer pens inked and rotate colors.
I still couldn’t resist inking 9 pens! There are 3 pens I’m excited about – 2 parker 51 and a custom pen made out of 10000 year-old bogwood (a gift from Christina).
Mon, Mar 31, 2014
At any given time, I have a handful of git repositories that I work on. While typing in the command-line is great, it getting tiring when you have a several directories that you have to manually change to and check. The “git status” command can take the git repo and the working directory as input. That, and a little bash programming to the rescue.
The following command, executes git status in every subdirectory that is a git repository.
for d in `find . -name ".git"`; do
echo "processing $d ...";
git --git-dir=$d --work-tree=$d/.. status;
Fri, Feb 14, 2014
Update: Apparently, I had accidentally hit a minor bug in pew. This has now been fixed.
Every so often, we spend several hours battling an issue, fighting linux or python or people or thoughts. The solution, often, leaps out when there has been a respite in the constant search for the solution. It’s the “duh” moment, that all of us feel. There is a little self-loathing, and relief at having arrived at solution. It is a moment of great pleasure, that I have learned to relish.
I am currently on a bit of MongoDB binge, and I was setting up a dev environment, using Crunchbang on Virtualbox. Since it is a clean install, I wanted to bootstrap using only pew and pip, which have recently become my favourite part of working in a pure python environment (no more sudo == yay!!)
I followed the instructions to install pew (which is quite straight-forward). All one should need is
pip install pew
However, when I tried the same, the install worked, but I couldn’t run pew. It couldn’t find all the libraries it needed to load (virtualenv, in this case)
[email protected]:~$ sudo pip install pew
Running setup.py (path:/tmp/pip_build_root/pew/setup.py) egg_info for package pew
Successfully installed pew virtualenv
[email protected]:~$ pew ls
Traceback (most recent call last):
File "/usr/local/bin/pew", line 5, in
from pkg_resources import load_entry_point
File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2707, in
File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 686, in require
needed = self.resolve(parse_requirements(requirements))
File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 584, in resolve
After trying several things, including looking a lot of code in pew, the fix was quite simple.
The version of setup-tools that comes default with python2.7 and crunchbang seems flawed.
[email protected]:~$ sudo pip install -U setuptools
Downloading/unpacking setuptools from https://pypi.python.org/packages/3.4/s/setuptools/setuptools-2.2-py2.py3-none-any.whl#md5=3b7d84f496aed8c07b91efba4aa197a4
Downloading setuptools-2.2-py2.py3-none-any.whl (540kB): 540kB downloaded
Installing collected packages: setuptools
Found existing installation: distribute 0.6.24dev-r0
Successfully uninstalled distribute
Successfully installed setuptools
[email protected]:~$ pew ls
[email protected]:~$ pew new test
New python executable in test/bin/python
Installing setuptools, pip...done.
Launching subshell in virtual environment. Type 'exit' or 'Ctrl+D' to return.
Mon, Jan 27, 2014
Some interesting links for the weekend:
Sat, Jan 25, 2014
If you have worked for a large company, you know you have been here. Hilarious
Thu, Jan 2, 2014
Vizify makes a video out of the posts you have made on twitter in the last year. Christina, you are always my #1! Thank you for bringing this to my attention. As any self-respecting nerd would do, I immediately made one for myself. Doesn’t the world need yet another summary of meee!!
2013 on twitter
Thanks to my top followers
- Ray Lian
- Dave Kell
Sat, Dec 28, 2013
Another gem from the always spot-on Dave Winer. Microsoft could have owned netbooks.
The pathological need for large companies to focus on the wrong, to their own demise never ceases to amaze me. Why do dominant players lose out? Is it the incompetence of people in these companies? Is it the inability to articulate, convince, and move the masses within these companies?
Most often, it is the later. Perhaps, the collective, is bound to make safer choices and very often, the simple or obvious option is not the safe one.
It always comes down to doing the simple vs the easy. Simple is hard!
P.S: I work for a large company. It is a daily struggle, irrespective of the domain of the choice – design, code or cultural.
Sun, Jul 21, 2013
There has been an increase in security breaches this year. This past week, two services I use were compromised - Tumblr and Apple Developer Connection. Both services informed me of the security breach, and one made me feel like they cared, and the other one didn’t. Perhaps I am reading too much into this, but at the very least, it illustrates how important language is, in conveying how much we care.
Apple’s mail is clear, concise and inspires confidence in their ability to take care of my information. They state the purpose of this communication, tell me what they did about it, and what they were going to do to fix it in the future. Update: Apparently, it was a whitehat security guy doing his thing.
Tumblr on the other hand, makes a whole bunch of assumptions (NO! I don’t read your staff blog), trivializes the security issue that was in their software (by ignoring to tell what it actually is), makes more work for me (change my passwords – for my own good, but none-the-less), insinuates that I should be doing things to take care of my passwords by buying other apps, and finally, throws a completely insincere apology.
Nowhere do they bother to mention:
- Why they are getting in touch now
- What the actual issue is (Some searching online explains why, but they should have mentioned it in the email)
- That it was a Tumblr’s fault (Sniffed in transit .. who sends un-encoded password over http anymore?!)
The nonchalance of it all, really bothers me. Another small detail that Apple does well.
Mon, May 13, 2013
Have I mentioned the long-standing obsession with stationery, especially, fountain pens? Well, it is a bit of problem, really. In the last few months, I have started hoarding them. It started with one– a Lamy. Once I discovered how one can procure junk on eBay for very little money, I quickly ended up with a selection. As these things go, I suddenly had the increased “need” for inks that are not blue, or black. Nay, simple colours won’t do for the truly obsessed.
Here is the result of the latest rotation of inks and pens.
Wed, Mar 13, 2013
Reclining airplane seats!! I shake my fist at thee. This one feature on airplanes has caused me untold miseries. Ok! I exaggerate .. a little. I live Vancouver, which is one the other side of the planet with respect to my hometown. As a result, I spend at least 30 hours on an plane, once a year. To compound, my 6’ 5” (196 cm) frame does not mix well with cramped spaces.
Dan Kois on Slate, says
everyone on the plane would be better off if no one reclined; the minor gain in comfort when you tilt your seat back 5 degrees is certainly offset by the discomfort when the person in front of you does the same. But of course someone always will recline her seat, like the people in the first row, or the woman in front of me, whom I hate. (At least we’re not in the middle seat. People who recline middle seats are history’s greatest monsters.)
Macro and Merlin agree.
Usually the conversation goes like this:
Me: “Sir/Ma’am, would you mind letting me know before you recline? My legs are up against the back of your seat, and if you do, my knees will be crushed.”
Potential Recliner: “Sure!”
*[2 hours later]: The seat reclines *
In the four legs of the journey, if I get one “recliner” in the seat in front of me, I usually spend about 10 hours standing. Yes, I used to pay for my seat, and stand all the way through.
For the love of god, next time, maybe a quick check might be a good idea before you decide to recline. This way, you will help save crushed knees of some poor-souls.
Note: Cathay Pacific has an interesting solution. Their shell seats mean no reclining!.
Later: I spoke too soon! Cathay has reverted to their reclining seats. Who cares about numb butts. Just get up and walk!
Wed, Feb 27, 2013
Congrats to Thomashawk on the flickr interview!
“Why? Who?”, you ask. Thomashawk, photographer extraordinaire, has taught me a lot about photography. I’ve never met him, or gone on a photo-walk (to be fixed some day), but have learnt from his work, nonetheless.
I am compelled to write this, because, in some ways, there is a certain vindication to Flickr doing an article on him. He has been Flickr’s ardent fan, and critic. It’s been a long road! From the fun insanity of DMU(s), Zooomr, and flickr censorship to getting some well reserved recognition. Kudos!
Sun, Feb 17, 2013
Unix. I love thee!
Extract an rpm without installing in to the current directory (really, the rpm command should support this):
$ rpm2cpio myrpmfile.rpm | cpio -idmv
*i: Restore archive
*d: Create leading directories where needed
*m: Retain previous file modification times when creating files
*v: Verbose i.e. display progress
List contents of an rpm:
$ rpm -qlp myrpmfile.rpm
Mon, Jan 14, 2013
The great G.B Shaw, in “Man and Superman” (not that Superman), quipped, “There is no love sincerer than the love of food.” I had a weekend, that reminded me how much I love being fed. It also, reminded me of my wayward ways, in keeping the waistline in check, but I diverge. For this Christmas, I got the most amazing gift – the gift of an evening out trying out food that tasted, as good as it sounds and looks. Without much ado, here is the spread:
Thanks to all the hobby chefs for the wonderful delights, and the hospitality. I aspire to such skills in the kitchen, and perhaps I shall be able to pay it forward. Thanks to Christina for the most-awesomest gift ever (yes, we invent words here), and Sophie for “subbing” for the sick Tina (I owe you one, Sophie!)
If you want to know more about Social Bites (and you should), get in touch with the wonderful bundle of energy that is Annika! (@socialbites, Social bites on FB)
And the chefs: @wontongirljojo, @jonesboy