Wednesday, October 22, 2014

Docker on windows via Services for UNIX: An Engineer’s dream

 

I came across this news: http://www.networkworld.com/article/2836601/microsoft-subnet/microsoft-partners-with-docker-to-bring-containers-to-windows-server.html.

This is interesting in a lot of senses. It is a sign that in the new world the Microsoft windows is ready to move with the time and change. Also it makes the docker eco system more universal.

Of course we all have heard about demos that were run inside Microsoft and outside which showed these capabilities with windows pretty early in docker’s life time. So I won’t be surprised if this gets done sooner than expected !!

but I think it will be pretty difficult to get Linux based docker images working on Windows. So even when the technology is supported it may not be universal.

That is where the interesting part comes in. One of the major requirement of a docker image is the existence of Linux/POSIX kernel. As a few of us are aware, till recent releases, windows used to be released with a POSIX subsystem and tools on top of it.

I think implementing docker on top of Services for UNIX might be a better option or may even be a more compatible option.

 

This particular opportunity is tremendously exciting. Please watch this space for more discussions about the possibilities and approaches. :D

Friday, October 10, 2014

Hobbyist developer: How do side projects end

This is one of the most important things that folks tend to forget. You should always know the possibilities with your side project.  In my opinion, there has to be an out standing pipeline of projects. You should also know the priority of each of these. Also keeping the status as well as priority in your mind is pretty difficult. It is especially difficult if you have a demanding day job. and almost impossible if you are a middle-aging developer like me.
 
Discarded-Aborted-Saved-Shared
  This is the bucket most of the hobbyist projects end up in. Many reasons for that happening. But the major ones are that the developer is no more interested or the project is no more relevant. I thing there is nothing wrong in putting projects in discarded bucket. You should not take this as a failure that you are either discarding or suspending your side project. The generic idea is that very few ideas actually succeed. So it is definitely a win to have started. But once you realize things are not coming together, there is not point hanging on to an idea. The theme is that you should be generating and throwing away ideas very quickly.
 
You should be really cut throat about culling the old projects. This is how new and more exciting and more fruitful projects can be started. Working on the idea is not only the measurement of your will power but of the validity of the nascent idea itself.
 
One thing that I am trying to change at this point though is the way I let go of a project. I have not been very good at this aspect. When ever you decide to move on, you just need to spend a bit more time and get it in a shape where it is as useful as possible. This means that at the least, you should have it checked in to your private repository. If the idea is applicable, you should share it with the relevant folks.You can blog about the idea if it is globally applicable. And of course the most ideal way to let go of a project is the share the idea as well as the code as widely as possible.
Definitely there are limitations to this, which will reduce the extent of sharing. But you should still try and do it. 
 
Suspended-Saved-Shared
Another place where ideas end up is that because of some reason or another, we need to stop working on them for a while. This is the most dangerous place for any idea. This is where ideas turn into zombies. Not preserving them properly for a restart is the worst you can do to an idea and your potential. To preserve it properly, you need to ensure that you prepare it for a restart.ideas are delicate. So you need to ensure that you preserve them in great shape.  Here is one example :)
 
The way to achieve the same for a software project is to document as much as possible. Just before you assign you project to the crypt, you should ensure that you have checked in all the code and documentation. You should also think about future when you may want to restart work on it. For it, it has to be as simple to understand and start on it as possible.
 
Successful
Woo hoo !! YOU are the man/gal. If you have reached here, you have already been paid for your persistence. Now that you are out of limbo, other and more dangerous hells await you. But you have crossed the first threshold. I have seldom,if ever, been here.
Monetized
If you have completed something successfully and have been able to get some money out of it as well – that covers every thing. You , sir , should be writing this post :)
 

Tuesday, October 07, 2014

Hobbyist developer - Why do you do a side project

There are multiple reasons why one starts a side project. I have been starting those (and not finishing most of them). I think there can be many reasons and some of them are driven by the personality of the developer.
The point there is that it is important that you have felt to urge to try out some thing. This wish for action is more important than the nobility of the reason for which you started.
Here are some of the noble and not so noble reasons folks start their hobby programming projects - these contain a list of reasons why I have started my side projects as well.

Exploring alternate employment opportunity: There can be hardly any developer worth his salt who has not dreamt about starting a google or a facebook in his spare time. This can also be a fact that you have an organization as your next target and you are getting your feet wet with whatever they are doing so that you can hit the ground running. You may also think it makes your resume more attractive if you have some code written especially in the public domain in the same area you want your next employment in.

Your bid to change the world view:  Some of us have thought at least some point in time that folks are not thinking right. The soberer version of it is that you think you have another point of view for the current one which is also right. What better way of doing it than just doing a side project.

Learning:There is some technology, language you want to pick up and what better way than doing a quick project. I tried to learn Ruby on Rails the same way. (Before forgetting it even more quickly :))

Proving your point: There is some assignment at work. You think it can be solved in a more generic way. Your folks do not think so. You build your generic solution and open it to folks. People flock to it and you thumb your nose at the aforementioned nay-sayers. (Have not seen it happen too often - but no danger in trying)

Jealousy: You have the core piece of the work you are doing. You do not get it because it is assigned to somebody else because of experience, credentials or age. A healthy outlet to the envy is to implement the same thing for yourselves.

Of course I have not covered every thing. Do share if you think there are other reasons. It is highly likely they may make more sense than the ones that forced me to start my projects.

Sunday, October 05, 2014

NSA vs The Great Chinese Firewall : Role Reversal

These are two of the most prominent monitoring and analysis agencies in the world. The interesting thing is that they have very peculiar behavior. In fact there is a very good case of role reversal here. Where China is as open and bone-headed as Americans in the popular culture where as NSA is as sly and Machiavellian as Chinese are portrayed to be.

But the interesting thing is that both these things do work and do solve their motives. But the straight forward approach really brings a lot of cost with it - from image to impact on business. As well as because it is known and in the face, the folks who actually need to overcome the challenge would have developed better techniques. If not already done, they will do so definitely in near future.

But NSA surveillance would have continued unnoticed but for inside leaks. Even with these, I will be surprised if they did not plan for this contingency and have already controlled most of the damage.

Looking at it just from strategic and execution point of view, US strategy really is magnitudes superior to the Chinese one.

The reason being that at least in this field, camouflage is the best strategy. Knowledge and awareness is the thing that makes all the difference. If you are subtle and hidden, you can actually monitor things and then take right decisions at the right time.

You will know your enemy, but he will not know you. You will decide the place,time and manner of attack. And in the game of one-upmanship this is what matters the most.

As usual, depend on Hollywood to put it succinctly. Here you go:

Friday, October 03, 2014

A shout out to Daspalla, Vizag

We are on a small trip to Araku and Vishakhapatanam (more on that trip later). And as folks in the know would definitely know we did not plan enough (usual) and did not stick to the plan which was present (again nothing out of ordinary here).
This led to us ending up in Vizag late night without any reservation or even in idea where we will go next. Some kind soul on the train told us to try at Dasapalla Vizag.  The thing is that we faintly remember searching and coming across this hotel but the review were nothing extra-ordinary so we overlooked it. We were really skeptical when we called the reservations desk from the train.
But the booking was really quick and efficient. The surprise was that they did not overcharge us, as most of the other hoteliers would do when they find a customer in tight spot.

And the surprises did not end up then. The food in the restaurant down was very good (especially for the kids and the better half - as they were without any food for long time). The staff every where were very friendly and helpful.

The terrace pool was very nice and kids and myself really enjoyed the surprise.

 The complimentary breakfast spread was really nice. Special mention to the staff who would recommend different dishes and ensured that kids are comfortable and enjoyed the food (which we did).

I was surprised why the reviews were not more glowing on the internet. This is attempt at doing just that.

(P.S. In the spirit of full disclosure : they also had a surprise parting gift for me, but that did not affect my opinion :))

Monday, September 29, 2014

Tools:project tracking and the doctrine of cold start

The idea of lone wolf hacking away in the darkness of the dungeon slowly falls apart in a few weeks at the most. Writing your hobby code is no where glamorous.

Even if you are not as bad as myself,a self declared blue-moon start-and-stop brogrammer, it will definitely happen that you will shelve what ever you are doing and come back later to it again.

This is where a version control system really comes in handy. But the issue is that most of the times you will leave when even your ideas have not completely blossomed into code.

So more than version control, a project tracker which can track status of action items and hold action items under a group representing a single idea is very important.

For example, the project which brought me back from the dead is nearly two years old. I did have a skeleton proof of concept ready in last December and showed it to a few folks. I again started on it in April for nearly two weeks.

In this scenario only way to keep track of what is happening is to religiously document your ideas. The generic idea is that you should be able to pick up the threads within a day or two and get started with whatever you were doing.

This means just like any big organization, you should also treat your self as a cog in a machine. You should always leave things at a place where it can be hydrated with minimum efforts and restarted again.

I have been trying options like Asana, and Trello and I will definitely recommend giving these a whirl. both are pretty good and I remember that their being mobile based can also be deciding point for a few who happen to read this.

But for me, tying things to code and iterations was the most essential part I was looking at. And it leads me (again) to Visual Studio Online. You can really manage your work withing sprints and have a meaningful product backlog. May be it is me but I have always enjoyed the scrum meetings of one where I report progress to myself and then raise questions and answer them myself.

In this particular case, I just started with the pending and planned items in the product backlog and slowly things started making sense. I was almost able to hit the ground running. I am not at a place where I can add more items to the overall product backlog and hopefully when I get back to this the next time, I would start from a newer baseline :D

Let's talk about the dev and deployment environments in next few days !!! I was not doing much for balancing their mutability but that is the next piece of puzzle that needs to fall in place if you really need to follow the doctrine of cold-start

Sunday, September 28, 2014

Tools:Version Control:Open Kimono

The most important thing in open source culture is the concept of "Open Kimono".
You need to show your real self, what you are with out any inhibitions. While I agree in principle to this, the thing that I want is control over when I "open my kimono" (sheesh!!)

And I need a public repository which gives me a chance to do it. And of course I want it without having to pay for it.

Github is definitely the first choice as every one who is some one is contributing there. And if I get there, I will definitely release the final version of the things that I am trying out there.

 But it does not at this point  have a free private repository, and I desperately need it

I am known to crash the machines and disks irrespective of the code that I am planning to write. So I also need a repository where I just keep my temporary changes and use it to sync code on different machines and even at different location.

Because of this, Visual Studio is definitely the choice of Version Control for me.

(Disclosure: My previous job with Microsoft I had a chance of working with Visual Studio team. And I am intimately aware of how things are designed and they work. So there is going to be some subconscious bias towards it).

But it solves most of my issues and also has some benefits rarely found in other solutions. So Visual Studio Online it is.
In further posts I will try and get to other issues I want to fix on my hobby coding project (also known as my secret plan to take over the world) and how I got around to solving those.

If while surfing the dark bowels of the webs, you hit this spot and have some opinion - expert or otherwise - feel free to share it.

Saturday, September 27, 2014

A speed breaker early is the best measure of level of interest and investment ...

And in my case this is UBUNTU system updater.

Usual week end scenario: I turn on machine and boot to UBUNTU. It boots urgently, almost expectant and eager after a week of booting to windows. After kicking face the face-book habit- (semi permanently as of  now - more on it later - same place, some date) -I have the weekend stretching in front of me and some old ideas jumping around my head. And of course they are world-changing, at least changing the face of computing as it is known today- whose ideas are not :).

And there it is, my nemesis, pops up. As if it is suffering from the same OCD which drives me towards it. This is the Software Updater. Which has week long stash of updates for me. Takes its own sweet 2 to 3 hours to get things in shape. The only significant thing I can do till it is done is open a browser and see what the world is up to. And whether facebook or not, that is still a rabbit hole. and a rabbit hole I have not yet found the other side of.

The conclusion is that this is yet another plant where I am forced to test my actual interest in the thing that I am trying to do. This is yet another gauntlet thrown in a long running tussle and I need to find a way around it.

And though at the end I burn a couple of hours, I am still happy as this is proof that I am at level 2 in the super hit game "me against me", and I have a winning card up my sleeve - disable the popup :D

P.S. Nemesis :)