November 13, 2014


Moving on to how to startup series class, I spent time watching Lecture 9: How to Raise Money and Marc AndreessenRon Conway and Parker Conrad had an  interesting take on it.

Some of my notes from the class:

  1. Build something awesome which pulls  VC to you.
  2. Most VC invest in team, past success of the founders & product.
  3. If you have a prototype of product ready, some paid customer & solid co-founders getting money is easier.
  4. Getting a VC funding is easier than acquiring customers or hiring 20th employee.
  5. Most VC has a strict policy not to invest in competing companies.
  6. Keep a valuation real for first raisisng round.
  7. Don’t dilute too much in the initial round of raises.
  8. Always take money from VC who has partners with your product line, good connections for business development and  for later stage funding.
November 13, 2014 07:22 PM

End of October, my Nexus 4 died, apparently due to a bad battery. What happened was the phone switched off automatically (not the low battery switch off, but at some random % > 50) while using a couple of times. That ended up getting worse by corrupting something leaving the cell radio in a non working condition. There’s no IMEI number, no baseband version and any Android version > 4.2.2 doesn’t boot.

A bit of research on Google yielded not much information. I took it to the service centre and they told me the motherboard would’ve to be replaced which was costing me ₹10000. That’s too much to pay for a 2 year phone especially when you get a completely new phone for that price (well, may be a bit more than that). Meanwhile I found a thread on xda which revealed an de-bricking method using some proprietary LG tools, which unfortunately worked only on Windows. This was a big disappointment for me, but that’s well-known fact that Windows has more market share in PCs than anything else.

I had to try it anyhow, so I first tried playing with VirtualBox’s and QEMU-KVM’s USB Passthrough on my old Windows XP VM (I had it around for working on college stuff… education curriculum in India is highly closed source-agnostic, to the extent some computer engineers won’t even know that there exists an OS called GNU/Linux!), which failed. It works for simple storage devices though, but for some reason the serial device (it comes up as ttyACM0) in the download mode (in which mode the LG tool will send a firmware image) couldn’t be accessed properly in the virtual machine. So I decided to buy a Windows 8.1 key from Microsoft Store, I was kind of sceptical about Windows since I left it back in 2007 because of constantly nagging problems like malware, random slowdowns, freezes, etc and shifted to Linux. Thanks to my student account I was able to buy it at a discounted rate of ₹3499 as opposed to the usual rate of ₹19k for the Pro version. I also noticed that they have a 14 day return policy, so I was a bit okay with the spending.

My hardware configuration is pretty simple, I just have desktop with i5-4670, 8 GB Corsair, 1 Samsung SSD and 2 HDD (WD, Seagate). The HDDs are in RAID0 striping in Linux and deliver good performance compared to a single HDD (read speeds are around 190 MB/s). There are two reasons for having such a simple configuration – first, I don’t game and second, excellent Linux compatibility. I had a thought of gaming since a long time, but never had the courage to face Windows (well, after being used to Linux for 5+ years, I doubt anybody will) and hence never played games.

So, let’s put the hand in lion’s mouth.

I wrote the installation ISO I downloaded from Microsoft Store on a DVD, rearranged partitions using SystemRescueCD on my disks so that I can have 500 GB NTFS for data and 500 GB for Linux data, and the SSD was partitioned into 35/75 for Linux/Windows. Once this was complete, I started the installation. The installation was smooth, just a click on the empty space of 75 GB on the SSD and Windows got installed there. I have a machine with DualBIOS, and I was using MBR partitions so UEFI things didn’t get into my way (but eventually I moved everything to GPT and UEFI after re-installation, because being modern is fun). The basic installation may have taken around 15-20 minutes.

One thing I hated about it is that during setup, it doesn’t let you proceed until you provide the Microsoft account password – which is probably because my machine was connected to the Internet; I’m not sure. Now I use a password manager for managing passwords, and I don’t remember anything except my master password. I had to do the cumbersome act of seeing the password on my phone in the password manager app on phone and typing it manually. After entering password, it wants to you to validate the account by sending an email to the address registered, I don’t get the point behind it; but it does provide an option for skipping the verification and the process can be completed after installation. After logging in to the MS account, it will make you wait for five minutes, yes, five minutes on the pretext of setting up things. I believe that five minutes for that is too long considering that the OS was installed on a good quality SSD (Samsung 840 EVO 120 GB).

Finally, I got the Metro home screen with a few tiles: one stating store, another mail, desktop and so on. Clicking on the desktop will get you the traditional desktop that you’ve been seeing since the inception of Windows (with a better UI/UX, of course). Now having used striped RAID for years on Linux, I wanted to do the same here, but my motherboard doesn’t support RAID nor I have a hardware RAID controller, but Google searches told me that Windows has software raid support. I went to the Disk Manager and saw an option for creating a “Striped Volume”. Unfortunately, it works only when you convert the disk to dynamic format (aka LDM format) unlike Linux where it doesn’t matter whether you have a GPT partition or MBR.

It turns out that Linux can actually read the LDM Striped NTFS with NO effort. All you’ve to do is assemble the array using mdadm like this (usual conditions for disk names apply):

# mdadm -B /dev/md/windows -n2 -l0 /dev/sdb1 /dev/sdc1
# mkdir /mnt/windows
# mount /dev/md/windows /mnt/windows

Unfortunately you can’t edit LDM partitions from Linux, so I had to create the partitions for the Linux raid array inside Windows, as raw partitions.

Now that I have a E: drive, I need to move my user data there. C: is a SSD, there’s no point of putting frequently written data on SSD when you have HDD because SSD write cycles are limited. The annoyance begins. First I notice that all user data is going in C:\Users\Nilesh . That quite relates to the concept of home directory in Unix (/home/user ), in which everything about the user is stored. The configuration files, music, videos, everything else. Although for the application data, Windows uses C:\Users\Nilesh\AppData which is a hidden directory by default – this is akin to the directories that start with a dot stored inside user’s home directory in Unix.

Windows has still not acquired elegance of Unix in file system locking. In Unix, if you move around a file that’s locked by a process, the file will appear to get moved, but it is actually moved only after the process releases the file. The same applies to file deletion. You can even restore an accidentally deleted file if the process using the file is still running using /proc//fd  directory. In Windows 8.1 Pro if you try to move a directory in which a few files have been locked by processes, it will fail to move those files and keep the directory around. The end result: I was unable to move C:\Users\Nilesh  to E:  drive because of the AppData  directory. Annoyed, I created another Admin account to try moving the directory from there. I thought, if the user is not logged in, no process should be locking files in the directory since no process would be running. I was wrong. I still couldn’t move the directory.

After a bit of Googling here and there, I found tricks that suggested going to recovery mode using the recovery disk and creating a symbolic link from there after moving the directory. DAFUQ? So much exercise for such a small thing?! I did do it, but after doing that, Windows started screwing itself for some reason, the store wasn’t working, mail app was crashing and shit. On digging more through Google, I found that one could alter the profile path directly in registry. That seemed the only perfect way to stop all these issues. So what I did was, delete the user, removed all the files (again more exercise of that recovery thing since some files were still locked, ugh) and created a new user. But creating a new user from the other administrative account isn’t enough to get the registry entry that needs to be edited, it gets created only after first login! So I had to login to create that directory. Once logged out, I went to recovery system, yeah, again the exercise of moving directory to E: . After moving it, I logged in as Administrator and changed the registry entry. Now this time things went smoothly. Everything was working good. But I can’t digest this thing, just to move a simple profile directory to another drive, so much exercise.

Now let’s get on to installing some useful stuff. Since the whole thing begun with a bricked Nexus 4, the first thing I tried is to debrick it. That involved installing JDK, Android SDK Platform Tools, the LG tool and so on. That brings me to the point, package manager. Linux has had package managers for many years that made software installation simple. Windows 8.1 doesn’t have any, though I saw some news reports that the Windows 10 developer preview has them. It’s more convenient to go via package manager than go to Google for everything you want and download it from product site, and keep updating stuff individually.

Virtual desktops – a highly productive feature of desktop that has been existing in Linux since 2003 or so still doesn’t exist in Windows. There’s not even an equivalent multitasking helper for power users. There may be some off market solutions, but I’m talking about core Windows here. Apparently Microsoft has hidden one virtual desktop tool at their sysinternals site. It seemed to work good for the limited amount of time I spent with the OS. If you’re interested, Google it :).

The file system performance on striped NTFS was pretty bad, generally, all file systems fail when it’s the question of too many small files. But the performance here was painfully slow. It did was operating as expected on large files though. A possible reason for this may be the large choice of 64k stripe width. I use 4k striping on Linux raid since for home use that’s perfect. Large files aren’t created, unlike in server workloads.

Windows can’t yet become my primary OS (may be never, because Linux costs nothing where as Windows does), but Windows has come a long way since XP. I didn’t use it for a long time, so I won’t say anything about reliability where Linux has been the king for many years.

The last I tried was Virtualization using Hyper-V. I tried running a Ubuntu VM on it. The VM manager is very easy to use, but the graphics performance was bad, in part due to Ubuntu defaulting to Unity and seeking 3D graphics. Apparently Hyper-V doesn’t support GFX acceleration since it was designed for servers, but surprisingly it delivers good GFX performance for Windows guests (as per Google results).

So, TL;DR: Windows 8.1 is good for people who have no idea about computers (well, Windows has always been about that), gamers, and intermediate users. Advanced users desiring full control can’t stay in the jail without succumbing to its restrictions for a long time. I returned my license since I couldn’t justify my purchase. May be some time in future I’ll actually like Windows.

The post A Linux geek’s experience with Windows 8.1 appeared first on Nilesh's Blog.

November 13, 2014 04:58 AM

November 09, 2014

mysore palace night

I was in Mysore for Dussehra this year. Mysore Dussehra possession is one of the famous events from India, It showcases rich culture and tradition of overall karnataka.  The event ends with elephant march especially Ambari carrying local goddess which is form of Durga for 8 km ride. The whole city gets into celebration mode & you will see light all across the streets. In simple term the city is decorated like a newlywed bride.  I was told over 6000 police were deployed to handle whole crowd. :)

Some advice:

1. Avoid autos and try local buses, they have good service.

2. Try to stay outside main city its more peace out there.

My thoughts about it:


The city gave me a nice feeling about the overall harmony between many religions groups, it was welcome change to see everyone visiting the palace and enjoying the celebration.


I loved eating almost available on the street next to the Mysore fort gobi manchurian, papdi chaat, chole bhature, local sweets, stylish cut watermelon, jhal mudi, dosa and many others.


I got to know more about overall culture of karnataka after attending the jhakki. We had  performers across all the districts and departments.


Govt needs to do more

It will be nice if our government does more for the upliftment of these performers, we will forget about them once the event gets over.

Some photos, most of it is taken by shiva and yogesh. I am adding these with their permission.

busy street, everyone is eating.

busy street, everyone is eating.


See the night decoration. looks awesome isn't it.

See the night decoration. looks awesome isn’t it.


Crowd eagerly waiting.

Crowd eagerly waiting.

And it starts.

And it starts.

jhakki 1


Ambari, carrying the goddess.

Ambari, carrying the goddess.

food walk.

food walk.

Clock Tower.

Clock Tower.


Last not the least 3 of us. :)



November 09, 2014 08:32 AM

The 7 Factors To Consider When Pricing Your Startup’s Product

Interesting post talks about pricing your product. It is especially helpful for newer entrepreneur as they have to do it for first time.

17 tools for remote worker and digital nomad.

The post lists has great list of tools which remote workers use everyday, i have asana, workflowy & slack to add along with these as well.

11 free tools to protect your online activity from surveillance

Mashable article on tools to keep your online activity private it can. Overall a good read.

WhatsApp Used This Pricing Strategy to Win and You Can Too

Interesting read from from first round capital folks about how pricing was one of the reason which made whatsapp disruptive. It is a good read if you have built a product for mass.

Y Combinators: How to Start a Startup

On the ongoing series 2 more video has come.

Lecture 13: How To Be A Great Founder

Lecture 14: How to Operate

As usual am behind the schedule & need to catch up with it.


Good VCs, bad VCs

Looking to raise some fund, please read this post and then decide. :)

How SendGrid Built Its Developer Evangelist Strategy to Reach Critical Mass

Fascinating post on SendGrid how they encouraged everyone to code & built a great developer community around.

November 09, 2014 06:52 AM