"Material design" and Google's strategy

Android Before 2008, smartphones OS market was fragmented. There were a few big names like Palm and Symbian, but most phone manufacturers were doing their custom operating systems. For example, Motorola alone had five operating systems. In 2008, Google came out with an open-source smartphone OS. Mobile phone manufacturers like Samsung, Motorola, and HTC, embraced it and made short-term profits till they got commoditized by a standardized OS controlled by Google. On the other hand, Nokia and Blackberry decided to ignore and badly lost market share. Eventually, they embraced it as well, albeit, in different forms but it seems its a bit late. The only winner (till now) is Apple, who was simultaneously working on iPhone and has held its ground well primarily, due to superior UI design and user experience on iOS. ...

Think like a freak

Book Summary: Think like a freak by Steven Levitt and Stephen Dubner

The book is an impressive collection of unusual stories aimed at promoting a non-conventional way of approaching problems and solving them.

Android logo

How to start locale settings activity on android from command-line

A useful and handy command specially when you during experimentation, you are stuck because of a changing language settings to an undecipherable foreign language. Bash 1 adb shell am start -n 'com.android.settings/.Settings\$LocalePickerActivity'

The Last Lecture by Randy Pausch

Book summary: The Last Lecture by Randy Pausch

Some salient notes from the book If there’s an elephant in the room, introduce it. Even if you are in the position of strength, be fair. Have something to bring to the table, people would be more welcoming of you to join in then. Get the fundamentals right, fancy stuff does not work without that. When you are screwing up and nobody says anything, they have given up on you (that’s a really bad place to be). Playing sports is not about learning the technicalities of the game but about teamwork, perseverance, sportsmanship, the value of hard work and ability to deal with adversity. The brick walls are there for a reason. They are not there to keep us out, they are there to give us a chance to show how badly we want something. Manage time explicitly like money You can always change your plan, but only if you have one. Ask yourself: are you spending your time on the right things Delegate your work as much as possible What’s more fun than fulfilling one’s own dreams is to help someone else fulfill their dreams. Use positive language, “When does this [Disney] park close?” is to be responded with “This park is open until 8 PM”. Don’t complain about your problems, whining does not help, focus on working harder instead. Almost everyone has a good side, if you wait long enough, it will come out. Focus on what people do not what they say. Experience is what you get when you didn’t get what you wanted. You can be an optimist if you have a contingency plan for what to do when all hell breaks loose. A bad apology is worse than no apology. No job is beneath you, do your best at whatever job you are put to. Rights come with responsibilities. If you lead your life the right way, the karma will take care of itself. The dreams will come to you.

Android logo

Android, Gradle and compile-time only dependencies

Android plugin for Gradle does not support Java-style compile time only dependencies. After spending a few hours on trying to build android app targeted for Amazon SDK (without using Amazon’s Android specific plugin but just their jar stubs for maps, ADM and Home widget), I finally found that the one way to support compile-time dependencies is following. For application project Groovy 1 2 3 4 5 6 7 8 9 10 11 12 13 configurations { provided } dependencies { // ... provided fileTree(dir: "${project.rootDir}/path_to_libs_dir", include: '*.jar') } // Android's version of sourceSets.main.compileClasspath android.applicationVariants.each { variant -> variant.javaCompile.classpath += configurations.provided } For the library project Groovy 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 configurations { provided } dependencies { // ... compile fileTree(dir: 'libs', include: '*.jar') provided fileTree(dir: "${project.rootDir}/patch_to_libs_dir", include: '*.jar') } android.libraryVariants.all { variant -> // Exclude the jar files from making its way into the final apk. // Irrespective of what the path_to_libs_dir is the final jar files end up in libs dir. variant.packageLibrary.exclude('libs/lib1.jar') variant.packageLibrary.exclude('libs/lib2.jar') // ... } References https://stackoverflow.com/questions/16613722/gradle-configurations-not-working-as-expected-in-new-android-build-system https://stackoverflow.com/a/24157721

A walk in San Francisco

“Give me your wallet, bro” he said in his heavy accent while holding a gun to my forehead. It seems, out of pure curiosity, I have walked into this shady neighborhood of San Francisco. “Pull out your wallet,” he shouted, “and count the cash,” this time bringing my full attention to him. I pulled out my wallet, carefully counted all the nickels, pennies and dimes and said, “13 dollars, 59 cents, and one Indian Rupee”. “That’s it,” he blustered at the peak of his voice while I stood sweating profusely on a chilly night. He was not amused and pulled the trigger.

Only The Paranoid Survives

Book summary: Only The Paranoid Survives by Andrew Grove

The book talks about inflection points which if not handled carefully, are drastic (10x) enough to put a company out of business.

Gadar Memorial

A visit to Gadar Memorial in San Francisco

Getting Inside After getting misdirected once to 436 Hill St, San Francisco which is the old original address which does not exist anymore, I eventually reached 5 Wood St, San Francisco. It was the time of sunset, I knew I was late, but finally, it felt good to see a nondescript apartment marked “Gadar memorial”. Least, I expected locked doors. I did not drive 40 miles to stand in front of this locked door. There must be a way to get in, I contemplated, as I noticed an Indian woman walking upstairs towards me. “I am here to see Gadar Party’s office”, I asked as she stammered while replying in English. “हिंदी बोलती है आप ?”, I inquired. “जी हाँ”, she confirmed. “मैं आशीष, south bay से आया हूँ ग़दर स्मारक देखना था । “, I said, while pointing towards the building. “आपके पास consulate से permission है?”, she asked. “consulate से permission?”, I inquired. “consulate से बिना permission लिए यहाँ आना मना है । “, she confirmed. Even for bureaucratic Indian govt, taking permission from the consulate to visit a first world war era memorial is perplexing. I believe this is the only such Indian memorial in the western hemisphere. Of course, I was not ready to yield and drive back another 40 miles before paying the homage. We both stood there motionless with an awkward silence. Someone had to blink, thankfully, she did. “एक बार मैं अपने husband से बात करती हूँ । “, she said. She unlocked the door and went inside, and after some chatter, they both came out, and after some quick conversation, he allowed me in to visit the memorial. The rest of the discussion with them was pretty friendly. ...

So good they can't ignore you by Cal Newport

Book Summary: So good they can't ignore you by Cal Newport

The book is an excellent collection of rules which the author discovered while finishing his Ph.D. and transitioning into a full-time faculty position.

The Innovator's Dilemma

Book Summary: The Innovator's Dilemma by Clayton Christensen

At some point, the incumbent’s product’s performance exceeds the demand of most customers. Then the “edge” that these performance metrics provided is lost, and the customers’ value proposition changes. They start valuing some other metrics, along which a disruptor’s product has better performance. The disruptor has an early mover’s advantage as well as leading to the demise of the incumbent.