Author Archives: Abdul Qabiz

Docker: Second Birthday

Docker is one of the hottest technologies; I started with it’s first release not too long back, however, in Docker world it feels like Docker has been around for a long time.

What a paradigm shift we have witnessed: a few technologies get that kind of attention, momentum, growth, and community in such a short time (24 months).

Today, we use Docker to develop, test, ship, integrate, deploy, and run apps/services. Docker has solved developer (devops) usability problems; it’s hard to go back and do things without Docker.

Haven’t heard of Docker, or didn’t find time to try it out? Start with following links.

What’s new with Docker? Look at following links:

  • Docker Compose (docker-compose, formerly known as fig)

    Compose is a tool for defining and running complex applications with Docker. With Compose, you define a multi-container application in a single file, then spin your application up in a single command which does everything that needs to be done to get it running.

  • Docker Machine (docker-machine)

    Machine makes it really easy to create Docker hosts on your computer, on cloud providers and inside your own datacenter. It creates servers, installs Docker on them, then configures the Docker client to talk to them.

  • Docker Swarm (swarm)

    Docker Swarm is native clustering for Docker. It turns a pool of Docker hosts into a single, virtual host.Swarm serves the standard Docker API, so any tool which already communicates with a Docker daemon can use Swarm to transparently scale to multiple hosts: Dokku, Compose, Krane, Flynn, Deis, DockerUI, Shipyard, Drone, Jenkins… and, of course, the Docker client itself.

ICT Simulation App

During my time (2003-2004) at Tata Interactive, I built ICT design and cost simulation tool (in Adobe Flash) for BECTA.

Though the original website has been decommissioned, however, I found the app (SWF) on web.archive.org.

I converted this Flash app (SWF) to HTML5 using Google’s Swiffy, and the output looks good (except the file size is large due to embedded images).

The original app can be seen below (requires Adobe Flash Player):

Get Adobe Flash Player.!– [if !IE]>–>

Docker: Automatically Restarting Containers

As a Docker beginner, I always wondered, how to automatically restart container os or system boot?

Thankfully, Docker 1.2 introduced restart policies (which makes sure even linked containers are started in expected order).  The --restart=always flag/value can be passed to ensure automatic restart of containers.

docker run --restart=always redis

Read more about Docker Restart Policies, or other methods.

Github: Forking and Contributing Workflow

I stick to following workflow while contributing to open-source projects on Github:

  1. Fork <user>/<repo> to abdul/<repo>
  2. git clone [email protected]:abdul/<repo>.git
  3. git remote add upstream [email protected]:<user>/<repo>.git
  4. git checkout -b <topic_branch>
  5. Fix, Add or Change things (code, documentation, etc.)
  6. git add <files>
  7. git commit -m <commit-message>
  8. Repeat #5 , #6 & #7
  9. git pull --rebase upstream master
  10. Resolve any conflicts, if required
  11. Squash Commits, e.g. squashing last three commits:
    • git rebase -i HEAD~3
  12. git push origin <topic_branch>
  13. Go to github.com/abdul/<repo>
  14. Create a Pull Request [Github is smart enough to detect a change in forked repo, and offer you to compare and create pull-request]
  15. Discuss changes in PR, and Fix things in branch as required.

The Psychology of Doing Nothing

I ended up on YouTube, via hacker-news or somewhere else, to watch a lecture which made me realise what I have been going through.

Please watch the following lecture on \”The Psychology of Doing Nothing\” by Professor Helga Drummond. You can also read the transcript if you don’t want to watch whole video.

Toptal

I recently came to know about Toptal. I am impressed and happy to see that some of the top developers of world are contributing and making difference through Toptal’s platform. I want to be among them for only one reason:

  • I want to work on (and contribute to some of) the best, useful and challenging projects with possibility to collaborate with some of the top/best developers/designers of the world.

NodeSchool

NodeSchool is a fully community driven effort and is 100% open source. This means that anyone can use the NodeSchool materials and/or host an event.

I have set up NodeSchool Kanpur chapter, and I hope to organise (with help of like minded people) a couple of workshops on Node.js (and web-development ecosystem around it).

I am looking for mentors and co-organisers, if you are interested, let’s have a conversion.

Data Visualisation

Infographics have become things of everyday. Data is more meaningful when it’s visually displayed.

Some links, you might find useful:

Please share links (in comments) to any interesting and inspiring articles or videos or apps. I would put those in above list.

Netflix in India?

Netflix is not accessible in India due to licensing and other reasons.

A lot of people (including expats) want to access Netflix, Hulu and other services in India (or other geo-blocked or geo-fenced territories).

Thanks to Unotelly for their DNS/VPN service which enables watching/consuming geo-blocked content including Netflix’s.

I have used Unotelly for couple of years. Trust me, it is convenient and better use of time to go for Unotelly when you really want to watch some shows and films.

Wondering, why couldn’t I build my own system to do that?

Just so you know, as a geek, I have successfully set up and run my own VPS (with SNI/non-SNI DNS Proxy and VPN), but not everyone can or prefers to do that. The goal was to watch some shows and films, but I got drifted away while building my own system, and ended up spending a lot of time (and money – vps fee) in setting things up than watching shows/films.

I think, Netflix would be officially launched in India in couple of years. For those who can’t wait, why not use Unotelly?

Phabricator

Phabricator (pronounced like the word fabricator) is a suite of web applications which make it easier to build software, particularly when working with teams. Phabricator is largely based on Facebook’s internal tools.

It has been more than three years since I have been using Phabricator (self-hosted) at work. It is one of the open-source projects which has inspired me a lot. I have seen it grow over these years; every day it gets better. Thanks to hundreds of open-source developers for their contribution.

Want to see how to develop elegant and sophisticated software, even with a poor programming languages like PHP? Look at Phabricator’s source-code and tools (built using PHP), you would be awestruck.

Want to play with Phabricator without installing? Have a look at PhorePlay (Phabricator hosting service), which offers free Phabricator hosting (with multiple instances) up to five users.  I think, that’s good enough for most of us (small teams).

Phabricator’s core team is working to launch Phacility (Phabricator Hosting). I think, it has potential to become something like Github (useful and essential service) one day.

Delegate Carefully

While running a business or teams, we delegate a lot of responsibilities to individuals in our company. Over delegation can be counter productive and stressful if not managed carefully.

While management gurus suggest to delegate almost everything, I differ and don’t recommend that to technical entrepreneurs/leaders. We need to be in shape (technology, hands on skills) by doing tech stuff while we have to wear another hats (management, operations, etc.)

I delegate enough to empower my team to do things better than I can. I never delegate everything; I try to be an active participant instead of one on sidelines reading only mails/reports.

What I am up to?

This is how my 2014 passed, or what I am up to:

  • riding my motorcycle a lot
  • hacking electronics and IoT using OSHW
  • dockerising things (apps, services)
  • playing with Apache Mesos, and ecosystem around it
  • hacking projects using Javascript (framework, toolchain, node.js, ES6 way of doing things) and web-standards (HTML5, CSS3, components, etc)
  • got Google’s Widevine certification (as required in one of projects). Personally, I like non DRM’d content :-)
  • built a Chromecast app using dash.js, modular Widevine DRM with node.js based proxy service for licensing, and Java for content encryption and packaging
  • been reading a lot of stuff through hackernews
  • helped and built stuff: QRizq, Diziana, 99doodles, IndieReign and other projects
  • not having meetings (waste of time)
  • not interviewing candidates who are not worth anyone’s time. [should do another post: sad and bad state of technical education in India]
  • bunch of other things I can’t recall

Did you notice that I have been mostly playing (or having fun)? On other side of it, I have also been thinking what’s nex; I think, I have figured that out.

At present, I am still involved with couple of projects mentioned above. I have also taken up a couple of interesting consulting assignments around technologies mentioned above along-with my old love (flash/actionscript).