What’s it Recently we’ve started down the ElasticSearch/Kibana road and also had a handful of other node.js apps. Setting up access control for these was becoming a pain - especially with ES which doesn’t come with any authentication/security out of the box. General advice on the interwebs is to let upstream server handle authentication and SSL + basic auth is good enough. Install nginx sudo apt-get install nginx apache2-utils Apache2 utils is for generating the htpasswd file for use later.
Kitkat’s here! So Google finally posted kitkat factory images for Nexus4. Saw it on Reddit this morning and started the download before I had my morning cuppa. Hmm - and then to flash. Flashing image will nuke your device (including all photos etc) which I didn’t want. As I was on AOKP, a data wipe will be needed but there’s no reason to kill my storage too. And while we’re at it, why not also root it in the process.
Auto backup It’s been some time since I’ve used anything other than my Nexus 4 to take photos. And after a recent scare where I thought I’d lost 10 years worth of memories after a hard disk failure, I’ve been very diligent about having one or two backups. Google+ does a great job of automatically uploading photos and then applying the auto awesome effects - but just with one downside - if you want to upload photos at full resolution, it will most probably count against your storage quota.
Plugin conflict! If you have both Ultisnips and NeoComplete then you cannot use the same key for expansion. I used to have tab mapped out to both for completion with AutoComplPop and Ultisnips. I had tab set for g:UltiSnipsJumpForwardTrigger but NeoComplete still doesn’t like it. So now, that’s changed to Control + Tab and things are good again. let g:UltiSnipsExpandTrigger="<C-CR>" let g:UltiSnipsJumpForwardTrigger="<C-tab>" let g:UltiSnipsJumpBackwardTrigger="<s-tab>" Only wish one NeoComplete OR Ultisnips makers see this and make it work without conflict
Programming in Python So I’ve mostly used python for one off scripts and tools and at one point for a serious foray into Django - but never came into a situation where I’d thought of publishing anything. Hmm - crossed that bridge over this weekend - and its been a fun journey. I’m writing this post with what I wrote :) Things I’ve picked up Code Better understanding into Python modules, classes and code organization for libraries.
The problem I have a TP-Link WN722N USB Wifi dongle. Linux Mint picked it up during install and seemed like all was good. Then the other day, noticed that sometimes WiFi would be flaky like hell - all I’d get is the password prompt. Turns out that this is a common problem with USB Wifi. After a few days, the pattern appeared to be a recurring problem after putting the computer sleep.
Moving from wordpress So I moved my blog from its old home at http://niftybits.wordpress.com to I’ve also moved out of wordpress.com to blogger. For quite some time, I’ve not been happy with Wordpress’s abilities for a tech blog. It’s a commercial endeavour and so if you need additional features/tweakability you’ve got to fork out the good stuff. Anyway, I was intending to get my own domain and wordpress hosting that would give me full control over the blog engine and the ability to install any addons that I wanted.
Additional fixes post installation SSH connection refused So today I tried ssh’ing into the desktop and no go. I was getting a connection refused and thought it had to do with either SSH not being installed or being blocked by the firewall. Later on when I checked, OpenSSH server was installed and the service was also running sudo service status ssh ssh start/running, process 2709 Hmm - this is weird.
In my last post on unit testing, I had written about a technique I’d learnt forhttp://niftybits.wordpress.com/2013/08/14/unit-tests-simplifying-test-setup-with-builders/[simplifying test set ups with the builder pattern.] It provides a higher level, more readable API resulting in DAMP tests. Implementing it though presented a few interesting issues that were fun to solve and hopefully, instructive as well. I for one will need to look it up if I spend a few months doing something else - so got to write it down :).
Had some fun at work today. The web portal to Scheduler service is written in ASP.NET MVC4. As such we have a lot of controllers and of course there are unit tests that run on the controllers. Now, while ASP.NET MVC4 apparently did have testability as a goal, it still requires quite a lot of orchestration to test controllers. Now all this orchestration and mock setups only muddies the waters and gets in the way test readability.