Teacher: Ok boys, we have these four innovative projects for this semester. Let us go one by one and see who is interested in what.
Apple: Ok, Mam. (Oh, goody goody. Time to be creative)
Microsoft: Ok. (Why do we need to do this innovative stuff every now and then?)
Google: Ok. (Really, are there more projects that I cannot think of)
Make a Computer/Laptop
Microsoft: I will do it
Apple: I will do it
Google: Me too
Develop an OS for Phones
Microsoft: I will do it (I just need to remove some 10 millions lines of code from my last semester’s computer OS project and copy/paste few things here and there.)
Apple: Me too. (What crap they are building these days. I think I can do cool re-design of last semester’s computer OS project)
Google: Me too.
Make a Phone
Apple: I will take this one up. Got some good ideas and I am already working on it
Google: Me too. (Damn, I need to buy from someone now)
Microsoft: Me too. (This is a good time, let me ask that (Nokia) guy whom I gave lot of money last time)
Teacher: Next project: Make a Tablet
Apple: I will do it. I have been working on this. Here is how it may look like.
Microsoft: Me too. (I need to do something about this)
Google: Me too. (I hope at least this works out fine)
Teacher: Ok, great.I am excited to see the enthusiasm in this semester’s projects. Where is Facebook ?
Facebook (comes running): Yes, Mam. Sorry, I was fixing the website I created in the last semester’s project. Last night, it went viral and all Schools in the country are accessing it right now.
Teacher: That’s great. Good job, Facebook. So, what are you gonna work on this semester ?
Facebook: Sorry, I missed the class, but I will take up all the projects the other guys are doing.
Recently, I needed to install a python native module in my build environment. My build environment had python made available by auto mounting an NFS python installation. As this mount is shared with many users, I only have read-access to it.
Instead of polluting the build environment, I wanted a clean way to install this python module. Obviously, virtualenv is the right way to go, but unfortunately, the shared python installation didn’t have any of virtualenv, pip, setuptools pre-installed.
So, after googling a bit and looking at the documentation of pip, setuptools and this excellent stackoverflow link, here is the solution I came up with:
- Install setuptools first into user local
$python ez_setup.py –user
- Install setuptools first into user local
$python get-pip.py –user
That should have installed both setuptools and pip into user home directory (~/.local on linux). Put the ~/.local/bin directory on the path and move to next step
- Install virtualenv into user local
$pip install –user virtualenv
That’s it. Now you have pip and virtualenv installed into user local directory without modifying global python installation.
I have been tracking Samsung Galaxy S4 news for more than a month now,ever since it was announced on Mar 14th. Finally, it was launched yesterday in India.
I have been pretty happy with my 3.5 year old HTC HD2. It is a great phone and best of the breed for its time (yes, looks like 3.5 years is like light years in mobile tech), probably bit heavier compared to the current generation smart phones.
I woud have dumped HD2 it long back if I had to stay put with Windows CE 6.5. Thanks to folks at xda-dev, I have been running all sorts of OS on this (including Windows 7, Ubuntu and Android). I usually get custom ROMs for latest versions of Android on this phone way earlier than any latest phone can get its updates. But running Jelly bean on less than 512 MB RAM, with most of it loaded from SD, is definitely slow. So, of late, I have been on the look out for a new phone
iPhone is never on my mind (and probably never will be). So, that leaves me with a choice of Sony Experia Z, HTC One and Samsung Galaxy S4. I liked the look of Experia Z and HTC One lot better than S4. S4 is no match from looks and external build quality pt of view.
I ruled out HTC one for couple of reasons. No external storage and locked-in battery. First of all, for 16G models, they eat away half of it for all the junk they put in there. So, literally they come with only 8G available space. With all my ever growing cached RSS feeds, music, books, podcasts and pictures, I am gonna run out of that soon. Second, HTC one in India has a bad history of ignoring their customers. India is the last country they push updates to, if at all they do.
Although it looks great, I ruled out Experia Z it is so much focussed on camera etc. I am not a very heavy user of camera on the phone anyway. Plus, when it comes to smartphones, I am not a big fan of Sony.
That leaves me with the just Samsung for now. So, I thought I will check out how does the phone feel like in the hand and went to UB City, Bangalore yesterday. I didn’t realize that they were actually launching the product on the same day, with all celebrities around. I was free for next couple of hours and was busy catching up on my reading while waiting in the line. Yes, there were tons of folks waiting in long queues. I just happened to time it well accidentally and ended up fairly in the front of the queue.
And this is where our “Customer Service” starts to fail. All across the world, companies are spending money to get customers inside the store and buy. And here we are, Samsung India is busy attending to celebrities and making customers wait. And if you think about it, the very goal of all these celebrities, marketing, ad spend is to get customers to buy their product. Why can’t they decouple the two things and respect/value customer’s time – I guess, it will not happen here; we are just too many for any business here
Anyway, I finally shelled out approximately $700 for more silicon and more plastic this time around. Here is my quick analysis:
- It is a great hardware.
- In spite of 5″ and 2600 mAh battery, it is just 130g. Feels very light and comfortable in the hand
- The touchscreen is so good, you can effortlessly use it with a single hand, swiping in & out.
- Samsung has added so much bloatware to the device that with just couple of usual apps running, phone is already using 80% of the total 2G RAM. But there is absolutely no lag as switch across apps, screens
- The back cover is plastic and so flimsy, you would cringe at the thought of spending $700 for this. But the nice side effect of this is that, the S-View flip cover (that is doled out free with this device) replaces this flimsy back cover and fits right into the phone. It has a nice visible area from the top to look at all essential information. The phone sensor recognizes the flip cover and automatically switches on the display when you open up the cover, and displays the summary information in the visible area when closed it back. And because the way it replaces the back cover, it is nice to hold the phone for reading even when you are lying down in the bed.
- Full HD display is excellent. It is a joy to watch HD videos on the phone.
- A nice little feature is that it has IR blaster and works well with your TV, STB etc. It is very handy when you are sitting in front of the TV and your regular remote is not nearby. But the TV remote app itself is very basic. There is good opportunity to build a great app that also combines TV listing
- If you are buying this phone for all the marketing talk about Smart Pause, Air Gestures, Air Move etc then beware. While these are pretty good ideas, they donot work very well yet. And when they work, they work with only few apps.
- Would have been good if this combined the looks of HTC and some ruggedness of Experia Z.
- It is not an iPhone killer. There is no question of this phone changing iPhone Fanboys yet.
- For a black misty model, they ship it with white chargers, cables and headset. Looks like Samsung is totally lost on the look & beauty sense.
- It needs a micro-SIM. So be ready to make yet-another-set-of-copies of your driving license, address proof, pan card (and what not) to get your mobile provider to change the SIM.
- While I managed to insert the micro SIM card into the slot, I believe there is no easy way to take it out.
Yesterday, I was trying to migrate a decade old VSS (Microsoft Visual Source Safe) version controlled project to a git repository. Yes, this particular decade old project is still being actively maintained and in use – several customers depend on this software working:-) So, I thought it is time to move away from VSS and migrate it to git. Since the project was making use of all esoteric features of VSS such as shared folders, pinning etc, it is not a straight-forward migration to git. I am using vss2git for the migration, but even this needed few fixes before I could attempt to create a git repo out of VSS project. As I was trying to re-organize the vss2git migrated repositories to better fit into git model, I realized I needed better understanding of git subtrees, indexes etc. I got hold of the ebook Git Magicand was trying to read through. This statement by the author Ben Lynn in the preface made me stop and think about what version control could offer to ebooks:
…My gratitude goes to many others for your support and praise. I’m tempted to quote you here, but it might raise expectations to ridiculous heights. If I’ve left you out by mistake, please tell me or just send me a patch!
This ebook is open sourced under the GPL license and is maintained on the GitHub. These days, it is nothing new for authors to add errata, additional examples, diagrams or other commentary on a website associated with the book (ebook or print version). But there is simply no automated way for you to know about any of these updates. Most of my ebooks I read either on Kindle or other Android ebook software (particularly, if these are pdfs). Imagine, if version control tool is explicit part of the ebook publishing process, there are plenty of exciting things that can happen:
- As authors make early versions of the book available (Rough Cuts as Safari calls it), readers could comment by submitting patches.
- Multiple book authors can easily collaborate, esp with distributed version control systems such as git.
- If ebooks are explicitly associated with their, say git repositories & rss feeds, and assume kindle like readers are aware of this fact (either by a convention or a standard). Now, every time I open the book, ebook reader can notify me that there are updates to the book, additional chapters, errata etc and update it in-place. Better yet, give me a view of what is changed in a chapter, if I have already read that chapter.
- Several popular books undergo revisions for various reasons. For example, If these books are about a programming language or a computer science concept, the book revision may be about new language features added in a recent version or recent advancements in a given CS area. Most of the time, 60% the content is same. So, it doesn’t make sense for me to buy a new (e)book. Imagine, if Amazon could offer the new revision in the form of update to an existing ebook for a much lower price than that of a new book. I should then be able to see two versions of a book in my kindle bookshelf and read any one of them. Book writing is an extremely time consuming process – who knows, this process may even motivate more authors to make revisions to their books or in most cases just add new additional chapters.
This doesn’t necessarily mean that authors and readers need to (know and ) work with git like version control systems. There can always be more layers abstracting the nitty gritty details of a version control system from authors and readers. But an ebook publishing process with such an infrastructure underneath and a deep integration with ebook readers has a potential to make us look at ebooks very differently
To put it simply, books just become software !!
Today, Google begins an experiment to change the way you shop online. When you search for a product, Google will deliver paid listings for shopping options right next to the search results. By searching for a product, you’ve demonstrated a possible intent to buy it, so Google has extended its search results page to allow participating merchants to sell it to you.
Finally, Google making use of intent to buy in the right way.
Last week, blogosphere was full of predictions and analysis on Facebook’s not so bright (distant) future. I happened to read some good ones:
But so far, the sweeping, basic, transformative, and simple way to connect buyer to seller and then get out of the way eludes Facebook.
So the social network is left in the same position as all other media companies. Instead of being inevitable and unavoidable, it has to sell the one-off virtue of its audience like every other humper on Madison Avenue.
Oh, yes … In its Herculean efforts to maintain its overall growth, Facebook will continue to lower its per-user revenues, which, given its vast inventory, will force the rest of the ad-driven Web to lower its costs. The low-level panic the owners of every mass-traffic website feel about the ever-downward movement of the cost of a thousand ad impressions (or CPM) is turning to dread, as some big sites observed as much as a 25 percent decrease in the last quarter, following Facebook’s own attempt to book more revenue.
You see where this is going. As Facebook gluts an already glutted market, the fallacy of the Web as a profitable ad medium can no longer be overlooked. The crash will come. And Facebook—that putative transformer of worlds, which is, in reality, only an ad-driven site—will fall with everybody else.
In a more detailed analysis, Doc Searl, in his blog post ”after facebook falls“, agrees with the above post while questioning the effectiveness of personalized advertising in the industry. Many claim that Facebook, knowing everything about a person and with ever growing massive data & analytics under its belly, can provide lot better targeting than google or anyone else in the industry today (and hence the justification for crazy valuations etc). But Doc goes on demonstrating, as an example, with Facebook ads on his own facebook page, that how irrelevant the facebook ads are. – Neither they make use of his interests, nor the page’s content.
There is lot to learn from Doc Searl’s post for me:
But Facebook isn’t the real issue here. Working only the sell side of the marketplace is the issue. It’s now time to work the buy side.
The simple fact is that we need to start equipping buyers with their own tools for connecting with sellers, and for engaging in respectful and productive ways. That is, to improve the ability of demand to drive supply, and not to constantly goose up supply to drive demand, and failing 99.x% of the time.
Imagine being able to:
- name your own terms of service
- define for yourself what loyalty is, what stores you are loyal to, and how
- be able to gather and examine your own data
- advertise (or “intentcast”) your own needs in an anonymous and secure way
- manage your own relationships with all the vendors and other organizations you deal with
- … and to do all that either on your own or with the help of fourth parties that work for you rather than for sellers (as most third parties do)
From his post, I have two more items added to my Amazon’s wish list of books to read:
Another interesting view is from Phil Wendley’s post, titled “Facebook Dominiation Isn’t Inevitable – It’s Not Even Likely“. Phil explores “centralized” vs “decentralized” systems approach and how eventually “decentralized” systems prevail when it comes to scale, with generous examples, including that of AOL. History has demonstrated several times that “decentralized” systems prevail in the end because “centralized” systems, as they scale, impose controls and limit choice & flexibility to end users/consumers. He notes, while technology is necessary to be able to scale to massive numbers but not a sufficient condition. The question that he asks is, what value (or the big idea) facebook offers to its users as it grows. And he argues that a growing centralized system cannot easily satisfy all its users the same way.
From timing point of view, the facebook’s recent debacle in public IPO may have triggered many of these posts, but clearly there is more to be analyzed and understood here. A related point to research more about is the true Ad potential in the mobile world, inability for platforms like Facebook to better target ads in this small form-factor devices and even if they do in their respective apps, finally the potential choice of other free/ad-free apps that users will have with APIs.
On a positive note for facebook, listen to this podcast titled “How Are Brands Using Facebook Right Now?“. The Facebook scaling related numbers that Michael Lazerow presents are mind boggling. No company ever has probably dealt with such a mind-numbing growth rate. No doubt, It would be every software engineer’s dream to be part of building such a system.