Author Archives: Abdul Qabiz

Docker PaaS and Resources

I found about this public Trello board which offers curated list of Docker PaaS systems (public, private), deployment tools, and many other related resources.

During last couple of years, I have tried most of Docker PaaS (private self-hosted) for development and some production load (microservices).

I have enjoyed using following, and continue to use them for various things (development, production):

I hope to share my experiences, and examples (projects, services — running in production) soon.

Docker Awesome

I love these *-awesome projects on Github.

The Docker Awesome is all about Docker and it’s ecosystem. Hundreds of curated links help you understand Docker, and it’s fast growing ecosystem.

If you think something is missing there, go ahead and add to README.md or send a PR to github.com/veggiemonk/awesome-docker/

BTW! There is another awesome project which curates links of all other awesome projects: https://github.com/sindresorhus/awesome :-)

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.