This post is based on my most recent shopping experience at Amazon.com. I observed a few nifty things in Amazon shopping experience which generally go unnoticed, but are truly brilliant when given some thought.
#1 I was shopping for this product X online which comes in four colors. I found the product on Amazon.com and saw different prices based on the color. Basically, you pick the color on the product web page to see the corresponding price. The price on Amazon keeps fluctuating sometimes every few minutes during holiday shopping season. The products on Amazon are either sold by Amazon or by an external vendor who has setup shop in Amazon marketplace. The price of the product and the color i was looking for was $Y initially and dropped within a few minutes to $Z. And, within a minute was temporarily out of stock but Amazon offered to ship it when available. So, i immediately checked out and placed order. This took a minute or two. After placing my order, i went back to the product page and found that the same product and color from an external vendor filled the page with a different price because Amazon had sold out it's stock. There are two things to note here:
- Amazon despite being out of stock honored to ship it because i was already on the page
- When Amazon had good amount of backlog after running out of stock, it quickly started displaying the vendor who had the product in stock.. all in a moment's notice. That speaks for the super-efficiency of this ecommerce portal. This may seem trivial, but from a business standpoint having an empty shelf is the worst thing to happen. Amazon keeps the shelf stocked all the time so not to loose it's customers. That's really good for business.
#2 I had some questions on this product and posted in the product Q&A page. Within a few minutes, i had a customer respond to my question. And, more answers were flowing in within an hour to my email. That was really fast response. Two days later, there were more and more responses, but Amazon unsubscribed me from the flood of responses automatically and sent me an email asking if i was satisfied with the answers. I was about the unsubscribe given the first few responses had answered my questions. Amazon just did it automatically saving me time and surprising me in the process. Brilliant!
Dec 18, 2012
HTML5: The future of the Web is finally here. But, can they compete with native apps?
I read an article on CNN Money about future of HTML5. The article is too rosy about HTML5, in my opinion. What the article doesn't talk about is the abandoning of HTML5 by Facebook and by Google to some extent. With desktop nearing end of life, mobile is the future. Google mobile search has surpassed desktop traffic. And, in mobile we mostly use native apps against HTML5. How many time have you opened the mobile browser and checked your gmail or facebook or pinterest or any of your favorite/frequently used services? It's native apps most of the time. So, HTML5 is great, but not strong enough yet to compete against native apps.
You can read the full article i am referring to here -- HTML5: The future of the Web is finally here - Dec. 17, 2012
You can read the full article i am referring to here -- HTML5: The future of the Web is finally here - Dec. 17, 2012
Dec 10, 2012
Clever code is Hard to Maintain... and Maintenance is Everything
Disclaimer: Published under and in conform with Creative Commons Attribution 3 license.
Originally published by O’reily media as a part of the book “97 Things Every
Project Manager Should Know”. Author’s grammar and punctuation kept.
The author of the original content can be found here
Developers are often
asked to create miracles. They must find clever ways to make today’s project
code work with yesterday’s antiquated, legacy software containing multiple
patches. And through skill and ingenuity they may create numerous lines of
clever code that finally get the job done. But clever code may only create
future maintenance problems due to the code’s length and complexity. There may
be a better way.
If you are a project
manager new to software development, don’t be afraid to let developers explore
new languages and development tools. Allow them this freedom, because this is
how they discover innovative ways to improve their coding practices and
results. They may be able to design a software solution to your legacy
interface problem that is faster and has fewer lines of code to test and
maintain. This is certainly an advantage to your project.
There are innovative
new programming languages that can perform the same functions as your current
ones with substantially fewer lines of code. This is of value in that a simpler
code structure is easier to test, can be self-defining, is smaller to store, and
is easier to maintain.
Obviously, there are
some concerns about adding new languages and platforms within your
organization. Will this new code truly solve the problem for the current
software or upgrade under development? Will it interface long-term with the
existing software used in your legacy databases, user interfaces within the
organization, and third-party software in which the company has already
invested?
Are there other
developers on the team or the department who will be able to create software in
this language or on this platform? Is there adequate product support from
language authors? Will there be timely updates and improvements?
Even if you are not
familiar with programming yourself, don’t be reluctant to allow programmers to
embrace new languages. If the new language can trace its tortured lineages back
to C or Java (or any other common way of doing things) is probably going to be
relatively painless to merge it into your current practices.
However, be sure to
document any new practices within your code. Otherwise, your code base and the
documentation about the code may diverge to the point that the best way to
understand the system is to look at the code itself. This is called a
"loss of coupling" between the software components and system
metadata. And when there is inadequate documentation to maintain your software
system, it must be replaced.
Encourage your project
team developers to be innovative, but not clever to the point of excessive
complexity. Being too clever makes it hard on those who follow. If later
developers can't read the code, how can they be expected to maintain it? Any
given programmer may try to be clever to enhance their job security, but no
project manager will benefit from it.
Code that is too clever
will ultimately be too hard to maintain. That leads to maintenance failure and
a costly reworking of your software systems.The author of the original content can be found here
Apr 23, 2011
Glad that Mozilla is following the steps of Chrome.
Few months back, i wrote a post on the Google Chrome's software release cycles. I praised the short release cycles(6 weeks) followed by Chrome team to iteratively/quickly release new features to end users. I also felt that, it was surprising Microsoft and Mozilla doesn't seem to learn from it for their IE and Firefox teams.
Now, Mozilla has announced a new engineering process for Firefox releases on the similar lines of Chrome. They have a new variant of build called 'Aurora' which is aimed at shortening their release cycles. Read this techcrunch post to know the details.
Patent generation hubs across US.
Mar 23, 2011
What does Android AppStore mean for Amazon?
Amazon's intent to open it's own Android AppStore is old news. There was much speculation about more fragmentation of Android with multiple AppStores apart from Android Market. The fragmentation is very likely given Android is an open mobile platform for anyone to the following without requiring the blessing of Google.
Build apps, build phones/tablets, sell apps, even penetrate consumer electronics, cars and anything that provides a source of power.
The choice of word to describe differs with perspective. It's like the glass is either half full or empty depending on the eyes of the beholder. To me, what's happening in the Android space is the norm and is just the beginning. This is especially good for developers as the Android Market isn't putting up a great show as the Apple's AppStore. Amazon has showed it's prowess in online B2C commerce through amazon.com. So, selling Android apps is just another commodity as far as Amazon is concerned. It knows best, how to sell to consumers online.
Is Android AppStore a huge investment for Amazon? Probably a fraction of it's operational cost. Imagine it being just another web portal hosted on it's massive AWS web farm. Even hundreds of thousands of apps would be tiny data for it's data farm.
What about the ROI on AppStore? More than anything else sold on it's website. There is no shipping cost. No cost maintaining the inventory in a warehouse. I can't imagine a lot of supply chain cost either. And, finally the whopping 20/30% cut on every app sold would add up to a large ROI.
What is the probability of success? Being late to the party is sometimes good for business. You avoid being a guinea pig. Amazon would have learnt a lot from Apple AppStore and Android Market evolution.
Is there an advantage to Amazon? Apple and Google built the app stores from groundup with no prior experience in online business. Amazon on the other hand is just expanding it's list of products sold online by adding Apps to it's web store. Does it need to be a tech whiz to do this? Not at all. That burden is delegated to developers. So, Amazon is better at this game than Apple and Google.
Can it be without risks? Hard to imagine any form of risk. The worst would be Amazon writing off the store, which won't affect it's bottom line or business prospect.
Amazon has built it. Will they come? Most probably will. Given, Amazon has lot of existing customers, it won't be hard to sell more to them. Especially it's online webstore feature "Customers who bought this also bought.." is the easiest way to start selling apps. The apps market for themselves. Angry Birds is a good example. It will be lot easier and probable for someone to buy it on Amazon than Android Market. I can imagine someone making a purchase on Amazon for anything related to Android being recommended a certain App and eventually selling it.
Where is the competition? There will be more such Android AppStores in the future and therefore the price war, which is good for consumers. Selling Apps in volume is like volume licensing of software. Amazon can cut the competition by providing better deals to app developers and making it up on the volume. Doesn't need any explanation.
Android App Store is a very logical thing for Amazon to do. And, could turn out very lucrative if Android continues the pace of adoption the way it is now!
Feb 10, 2011
Why Google Chrome releases are terrific and IE et al still doesn't get it.
If you are like me testing all the different types of web browsers, you will notice that Chrome releases a new version(major/minor) every 6 weeks. In Agile/Scrum based software development world, it's like two sprints or just one given the planning and testing needed.
On the contrary, IE9 and FF4 have been on the horizon forever recently hitting rc and beta. That's like a typical waterfall model trying to build a monstrous product for months together and releasing it to wild praying for adoption. Doesn't it sound like the old way of building software?
The new way is build something quick, release it and iterate quickly. This way you have something in user's hand sooner and an opportunity to twist and tweak depending on the feedback. You probably run a lot lesser risk this way than trying to build something big that finally may not take off with the user.
Build, release and iterate quick has become the norm for web portals for sure. It's agility! Is Google bringing the same to the world of desktop apps development through Chrome? Why not? After all, we know it works. And, the user feels like their browser is anew every six weeks waiting for the next 6 weeks. It's like Apple releasing something every 6 months. Doesn't matter what is released as long as something shows up to keep the buzz!!
Wait! Does Chrome releases comprise any major change to compare it with the monstrous IE9 or FF4? Not really and need not be. That's the point!
I am tired of waiting for FF4 to get released. It feels eternal! Time to change..
On the contrary, IE9 and FF4 have been on the horizon forever recently hitting rc and beta. That's like a typical waterfall model trying to build a monstrous product for months together and releasing it to wild praying for adoption. Doesn't it sound like the old way of building software?
The new way is build something quick, release it and iterate quickly. This way you have something in user's hand sooner and an opportunity to twist and tweak depending on the feedback. You probably run a lot lesser risk this way than trying to build something big that finally may not take off with the user.
Build, release and iterate quick has become the norm for web portals for sure. It's agility! Is Google bringing the same to the world of desktop apps development through Chrome? Why not? After all, we know it works. And, the user feels like their browser is anew every six weeks waiting for the next 6 weeks. It's like Apple releasing something every 6 months. Doesn't matter what is released as long as something shows up to keep the buzz!!
Wait! Does Chrome releases comprise any major change to compare it with the monstrous IE9 or FF4? Not really and need not be. That's the point!
I am tired of waiting for FF4 to get released. It feels eternal! Time to change..
Jan 29, 2011
Was Groupon right to shove away Google's $6B offer?
With so much buzz around Groupon denying $6B offer from Google, I feel compelled to put my take on it.
If i were Groupon's CEO, I wouldn't sell it for $6B to Google. The explanation is simple. Groupon is all about connecting online users to physical stores. No one has cracked it like Groupon. It's like PayPal cracking the online payment mechanism(when dozens of PayPal competitors never made it!).
Groupon is all about local unlike Google. An yet untapped market.
With the flourishing of online stores like Amazon, eBay etc, it's been a far greater challenge for brick-n-mortar companies to bring the online users into their physical stores. Groupon solves it pretty easily and that's what it does best. Google has been struggling to get into this market on its own(Google Local) and has failed trying to acquire the promising 'local' business-oriented startups(Yelp for example). Facebook is revealing its own 'Deals' product. Amazon has invested $175M in Groupon competitor. Does it ring a bell?
Google is merely gambling with bombarding ads online; technologically sophisticated though. Facebook gets better as they know the users' interests far better than Google does. But again, this doesn't mean a financial transaction for the businesses, as the users normally only view the Ad and may choose to ignore it. The advertisers(or the businesses) pay for ad conversions or click-thru-rates(references below) and not necessarily a real business. Now, what Groupon offers is real business transactions where Groupon gets paid if the minimum business transaction set by the business owner is met(this is real money!). How does that sound to a business owner? And, the feedback the business owner gets is very direct unlike the very complex analysis of the click-thru-rates and the combinations of ad words posted on Google. Local businesses can better understand simplicity over the techno CTRs. Do you think a local bread store would hire a Google AdWords agency to put an ad? What is the chance of this ad bringing business with a typical 2% CTR for ads?
And, Groupon is building the treasure trove of demographic-specific local needs which is probably an accurate indicator of what really sells in a demographic. So, it gets better at knowing what deals tick. Also,Groupon could make money just selling this data over the years to companies that benefit from it. Does Google have any such stat? NO. Because, Google is an ad-delivery platform and not an ecommerce platform.
One last note. Groupon potentially seems like the darling of ailing businesses and helps them succeed. Ailing businesses could make a turnaround with just one deal! And, these businesses have the best chance of survival only with Groupon.
Personally, I have bought a couple of deals from Groupon ranging from 50-90% off. You can read about the Groupon teardown article from the references and see the margin they make on the deals.
Groupon is all about local unlike Google. An yet untapped market.
With the flourishing of online stores like Amazon, eBay etc, it's been a far greater challenge for brick-n-mortar companies to bring the online users into their physical stores. Groupon solves it pretty easily and that's what it does best. Google has been struggling to get into this market on its own(Google Local) and has failed trying to acquire the promising 'local' business-oriented startups(Yelp for example). Facebook is revealing its own 'Deals' product. Amazon has invested $175M in Groupon competitor. Does it ring a bell?
Google is merely gambling with bombarding ads online; technologically sophisticated though. Facebook gets better as they know the users' interests far better than Google does. But again, this doesn't mean a financial transaction for the businesses, as the users normally only view the Ad and may choose to ignore it. The advertisers(or the businesses) pay for ad conversions or click-thru-rates(references below) and not necessarily a real business. Now, what Groupon offers is real business transactions where Groupon gets paid if the minimum business transaction set by the business owner is met(this is real money!). How does that sound to a business owner? And, the feedback the business owner gets is very direct unlike the very complex analysis of the click-thru-rates and the combinations of ad words posted on Google. Local businesses can better understand simplicity over the techno CTRs. Do you think a local bread store would hire a Google AdWords agency to put an ad? What is the chance of this ad bringing business with a typical 2% CTR for ads?
And, Groupon is building the treasure trove of demographic-specific local needs which is probably an accurate indicator of what really sells in a demographic. So, it gets better at knowing what deals tick. Also,Groupon could make money just selling this data over the years to companies that benefit from it. Does Google have any such stat? NO. Because, Google is an ad-delivery platform and not an ecommerce platform.
One last note. Groupon potentially seems like the darling of ailing businesses and helps them succeed. Ailing businesses could make a turnaround with just one deal! And, these businesses have the best chance of survival only with Groupon.
Personally, I have bought a couple of deals from Groupon ranging from 50-90% off. You can read about the Groupon teardown article from the references and see the margin they make on the deals.
Links:
Dec 7, 2010
Silverlight: Using Merged Dictionaries of Style Resources and Blend
Resource dictionaries are quite commonly used for theming and centralized styling of Silverlight apps. This post does a step-by-step walkthrough of using dictionaries and their real purpose with examples. Note, this post is for those who don't know what a resource dictionary is. Click the link below to read the article.
Dec 2, 2010
Silverlight 5 - Key new features(not coming till 2011 though).
Silverlight 5 sneak peek was held at the Silverlight Firestarter event! Few key features that caught my attention are given below.
1) Databinding debugging support - Debug databinding errors in realtime, showing the details.
2) Ability to resolve datacontext within templates.
3) Layout transitions far easier now with few lines of xaml.
4) OpenType font support - could be less legal hassles.
5) Pivot control now part of Silverlight - Allows large datasets to be visualized and browsed quickly. This the THE control for ecommerce and online retail stores/storefronts in particular. The customers are going to love this shopping tool.
6) Immediate mode graphics API - Ability to directly write to GPU for faster graphics rendering.
7) 3D support - There was cool demo of a Doctor's portal online. Google for it.
8) Enterprise group policy support for out-of-browser apps - for intranet based enterprise deployments.
9) Move individual controls in an Out-of-browser app into separate windows. Something similar to pulling out web browser tabs into separate windows. This one is really useful for UI with a ton of data.
10) Ability to call unmanaged code in out-of-browser mode. This would allow the app to connect to device libraries installed on the system. This may be OS limited feature though (Windows most probably). With this, for instance you can download an xls file from your app and launch in local MS Office.
12) UI automation testing tooling support. Easier way to record and run the UI automation test workflows. The recording is converted to test code which can be run later or integrated into your Continuous Integration setup. Impressive tooling support!
13) Faster startup (not sure how fast .. there will always be pre-requisites and limitations thought :)
1) Databinding debugging support - Debug databinding errors in realtime, showing the details.
2) Ability to resolve datacontext within templates.
3) Layout transitions far easier now with few lines of xaml.
4) OpenType font support - could be less legal hassles.
5) Pivot control now part of Silverlight - Allows large datasets to be visualized and browsed quickly. This the THE control for ecommerce and online retail stores/storefronts in particular. The customers are going to love this shopping tool.
6) Immediate mode graphics API - Ability to directly write to GPU for faster graphics rendering.
7) 3D support - There was cool demo of a Doctor's portal online. Google for it.
8) Enterprise group policy support for out-of-browser apps - for intranet based enterprise deployments.
9) Move individual controls in an Out-of-browser app into separate windows. Something similar to pulling out web browser tabs into separate windows. This one is really useful for UI with a ton of data.
10) Ability to call unmanaged code in out-of-browser mode. This would allow the app to connect to device libraries installed on the system. This may be OS limited feature though (Windows most probably). With this, for instance you can download an xls file from your app and launch in local MS Office.
12) UI automation testing tooling support. Easier way to record and run the UI automation test workflows. The recording is converted to test code which can be run later or integrated into your Continuous Integration setup. Impressive tooling support!
13) Faster startup (not sure how fast .. there will always be pre-requisites and limitations thought :)
Nov 18, 2010
Error HRESULT E_FAIL has been returned from a call to a COM component.
"Error HRESULT E_FAIL has been returned from a call to a COM component." Sounds familiar?
This error gets thrown across so many places in a whole gamut of microsoft products. But, this post is specific to Silverlight. I would assume that, if you have the source code for the project you are debugging with VS, you should be able to pin point to the exact location of errors and exceptions no matter what caused it. But the above error is very tricky. Even if you have the code in place, VS debugger won't point to the exact location not does it give a meaningful stack information. This is a problem with layered programming languages like .NET and anything built on top of it. If you were to do unmanaged programming, you may have more diagnostic information to look at.
This error gets thrown across so many places in a whole gamut of microsoft products. But, this post is specific to Silverlight. I would assume that, if you have the source code for the project you are debugging with VS, you should be able to pin point to the exact location of errors and exceptions no matter what caused it. But the above error is very tricky. Even if you have the code in place, VS debugger won't point to the exact location not does it give a meaningful stack information. This is a problem with layered programming languages like .NET and anything built on top of it. If you were to do unmanaged programming, you may have more diagnostic information to look at.
Limitation in Expression Blend for sample data generation.
Expression Blend has a great feature to create sample data for design time use. For instance, if you had datatemplates and building upon MVVM, Blend can generate sample data for your VM class and populate the UI during design time. This way, you can visualize your UI controls during design time. To do this, open your project in Blend.. simply click on the Data tab.. select the "Create Sample Data" icon and choose "Create sample data from class".. now choose your VM or any class that you are binding to your controls. Thats it. You should see your UI controls populated with sample data in design view. This is a great feature in Blend for designers/developers.
But, there is a limitation. The sample data can be generated only for classes. If any of your property has an Interface return type, Blend will not generate sample data. You may need to have an Interface by architecture, but Blend will fail to generate data.
But, there is a limitation. The sample data can be generated only for classes. If any of your property has an Interface return type, Blend will not generate sample data. You may need to have an Interface by architecture, but Blend will fail to generate data.
Oct 31, 2010
GMail Delete Keyboard ShortCut - Works in IE, Firefox, Opera
Keyboard junkie myself, i was looking for Gmail keyboard shortcut for deleting email. For some, doesn't show up in official Gmail list. There is an undocumented shortcut though - #(Shift+3 on win) does the job.
Thanks Amit for the tip.
Oct 26, 2010
Gmail Keyboard shortcuts
If you are a Gmail junkie, keyboard shortcuts will come handy. Official shortcuts list Keyboard shortcuts - Gmail Help
Oct 25, 2010
Captchas + Ads = Brilliant Idea!!
Just stepped on a Techcrunch post about a startup called NuCaptcha that wants to combine captchas with Ads. What a brilliant thought!! This could certainly be the next untapped ads money spinner. This approach also ensures that users are INDEED reading what's in the ad(i mean captcha). Read the Techcrunch post for more info.
Oct 24, 2010
Silverlight TextBox Databinding not triggering
In Silverlight, the data binding of textbox gets triggered only when the controls loses focus. Trying to handle this using TextChanged doesn't help either.
If you do design/dev with Silverlight, the chances are you have seen this issue at least once.
The simplest solution i have seen is to use behaviors. Check the link below for the solution.
Oct 15, 2010
Silverlight Plugin Height Resize Issue..
If your silverlight plugin doesn't resize on increasing browser height, you are not alone. Here is a simple fix.
Silverlight Plugin Vertical Resize Issue..
Oct 14, 2010
Switching to Chrome? Download these Extensions | Nettuts
If you use Google Chrome and happen to be a techie, checkout these chrome extensions.
Switching to Chrome? Download these Extensions | Nettuts
Oct 3, 2010
Sep 29, 2010
10 Traits to Be an Entrepreneur - Mind of Josh
Good post from a budding entrepreneur. The interesting bits from the post:
I hear all too often “I don’t know what I am going to do or what I want to do.” Come on! You have an interest in something. It starts with an interest in something and turns into a passion or could already be a passion.
Have a big idea. Be the next Google. Own the world. Build a space ship. Be the person who finds the cure for AIDs. Think HUGE.
Read the complete post here
Subscribe to:
Posts (Atom)



