Sunday, November 20, 2016

Pests, Cake or a Jolly Good Picture of The Future of Software

Pest Control

I have a rather mundane need of finding a pest control service that's located somewhere around the my place. Why somewhere around my place? Because I'd have them do their work early in the morning and my experience is, those who are located far away tend to not show up that early. So, proximity is important.

With that goal, I picked up my android phone, unlocked it, tapped on the blue mic and commanded "pest control in ohsoawesomeville". Google faithfully showed a listing of two pest control services located in ohsoawesomeville, of which one is closed right now. The listing is followed by the traditional blue links to other listings services such as JustDial. For want of a choice, I ended up in Just Dials's landing page, only to find that just one result is from ohsoawesomeville, rest being from farther parts of the city. What's amazing is that JD actually has the data on many many pest control services located in ohsoawesomeville, services they chose to not show on top in its default ranking.

Search results for the query "pest control in ohsoawsomeville" in Google and JustDial
Google listing (top), Default JustDial listing (left) and JustDial listing sorted by location (right)
Getting a search ranking right is hard.

I'd rather have a good listing splashed on my phone screen in response to my voice command, than click on a blue link and then find my way through a broken site search.

How can this be better?

An open Market for Data

JustDial has plenty of data. Unfortunately, they can't create the kind of experience that delights me. Google being the point of entry to the world of information, can control my experience in a good way. It also has better algorithms that understand my intent and get the ranking right. It just didn't have enough data to show.

Data can unlock many possibilities, some are way beyond what its owners can imagine or build. However, owners of the data must be able to monetize the data too. A listings service like JustDial monetizes its data when users visit their website and click on sponsored links or ads. To truly liberate the data, those who have it should be able to monetize it by sharing it with others, without having to build an app or a website.

Now imagine an open marketplace for data-- a platform that connects data providers with thousands of application developers worldwide. A provider connects the data tap to the platform, provides some metadata (e.g. description, license, schema, timestamp, update frequency), perhaps offers a free preview and quotes a price. The platform allows developers to discover a relevant data tap, play with a sample for free, pay and get full access. A platform such as this can enable developers to write myriad data-driven applications and share profits with the data providers.

The data providers or aggregators already exist as businesses. However, the data they provide is often too raw to be used by a large number of application developers. In addition to the marketplace, there needs to be secondary data providers to complete the data eco system. The secondary providers collect raw data and sanitize it by cleansing and de-duplicating.

In-app Data

Data providers collect data using various means, ranging from visiting physical locations to scanning bills, scraping websites, and so on. However, another interesting source of data is the data an application, a mobile app or a website, collects for itself. Owners of the application often view this data as a competitive advantage and would not let others peek into it for anything.

This situation is similar to the era when software companies viewed open source with suspicion and opening up its own source code was unthinkable. Over time, it became apparent that benefits of an open ecosystem outweighs the competitive advantage of a certain clever hack someone implemented in source. I hope a similar dynamic kicks in with data too.

In-app data is often about the users and there are concerns about privacy that is sometimes sited as the reason companies don't open up this data. However, it is possible to anonymize the data to safe guard the users, as Google did with its search logs. It is important to understand that user's privacy needs to be protected not only from the people outside the company but also from the employees too and that means that one should anonymize or encrypt sensitive data anyway.

About the cake

As we go about living our life, we solve one problem after another, mostly without even realizing. Often enough, problems are naturally connected with each other. Like the problem of cutting a cake and eating it. They are different problems, solved with different tools-- a knife and a spoon, respectively. Yet, after we've cut the cake, we expect the spoons are right there so that we can simply start eating.

There are many software applications that are great solutions for specific problems. Yet, quite often, they don't create the more natural and seamless experience together. My banks website allows me to purchase stuff by redeeming bonus points, my wallet application allows me to make payments in an e-commerce site, and a website like policy bazar allows me to invest in retirement savings. Yet, there's no easy way for me to find out if I could have redeemed the bonus points rather than using the cash from my wallet to buy an all-in-one printer, or, if I'm saving the right amount for my retirement, given my current level of spendings.

Immersive Applications

Now imagine an immersive application that understands a certain aspect of my life and is responsible for creating the best possible experience for me. It creates this experience by blending the specific solutions that are now API rather than applications themselves. For example, an imaginary personal finance application uses the API exposed by the bank, the wallet and the investment search engine to create the complete financial management experience for an user. The specific solutions can now focus fearlessly on solving the problems in the best possible ways without worrying about the user experience.

Immersive applications exist even today. For example, consider Uber and paytm integration. Uber helps us find a cab. It also integrates nicely with paytm wallet to solve a connected problem-- that of paying for the cab.

The Jolly Good Picture

Now I'll put these thoughts together in a jolly good picture.
The jolly good picture of the future of software: Various layers of immersive applications.
Various layers of a software application of future
I find this picture pretty exciting. Some of the building blocks of the architecture already exist today while others are, hopefully, evolving fast.

See you tomorrow!

Update 27-Nov-2016
Another way to understand this picture is that there are basically 3 different layers in a software application: data, algorithm and user interface. It's best if they remain loosely coupled with each other so that the best algorithms benefit from the best data available and are delivered to humans via the best possible user interfaces.

The application or the user interface layer is evolving in interesting ways too: from desktop applications to websites to smartphone apps and now towards some code that responds to voice in an Amazon Echo , or, to heartbeats in a smart wearable or, perhaps, to facial expressions, in a yet-to-be-invented device.

Saturday, January 28, 2012

How do you fix a dull sky of a digital photo (on Mac OSX)?

  • first, the caveat. the technique I'm going to describe is something I consider heavy editing (contrast this with light editing, which is no more than cropping and rotation of an image). what you get out of this may not be an honest reproduction of the scene you photographed and depending on your ethical alignment, it may seem like cheating to you. and the problem this technique fixes can always be avoided if you use the right exposure and white balance while shooting the photo, at least in theory.


it's common to shoot a digital photo which has a very dull looking sky, devoid of colors. this happens most often when you shoot it on a bright sunny day and let the camera decide the exposure for you.

the good news is, the dull sky can be fixed using a photo editing software. Internet is ripe on tutorials which teaches you how to accomplish this using Adobe's PhotoShop. however, I couldn't locate anything that tells me how to do something similar with the applications that came bundled in my Mac OSX (Snow Leopard). ok I was somewhat lazy and didn't look beyond the first page that google returned for a handful of queries I formulated.

ultimately, I figured this out using Preview.


  • first, use Preview's instant alpha tool to select just the sky from your photo. select instant alpha and then click on the sky. 
















here's the photo with the sky selected by intant alpha.















  • next, cut (cmd+x) the selected sky off the photo.













  • copy the sky as a new image using File > "New from clipboard". 














  • switch to the new Preview window with just the sky. 











  • so you have just the sky as an image which you can play with as you like. in this case, we'll fix it's color. select Tools > "Adjust colors".







  • the small "Adjust color" window gives you a bunch of sliders to vary exposure, contrast, saturation, color temperature, etc. 








  • play with the sliders till you're satisfied with the color. in this case, I've reduced the exposure and the contrast a bit and pushed the temperature towards blue. 





  • here's how the sky looks like after the adjustments. now select the entire image (cmd+a) and copy it to the clipboard (cmd+c).













  • switch back to the Preview window which has the original image sans sky. paste the sky back to it (cmd+v). and that's it. save the edited image.


Before

After


































Here's a good tutorial on exposure that'll help avoid the problem to start with.

Happy clicking!

Friday, January 14, 2011

An ancient evening

there's a Ganesh+Subramanya Swami temple near my home. on my way back from work today, I found a medium sized gathering of people around the temple.

there were groups of men beating drums and dancing (one group were bare chested, wearing white dhotis and another group, wearing something that resembled  tiger skin). and ladies stood in rows, holding rather largish diyas.

and a large elephant stood in front of the temple.

for a few moments, the world felt like a tiny little ancient village.

Happy Sankranthi!

Saturday, September 11, 2010

Reasons to Celebrate

I think I don't celebrate often enough. to put it differently, there are more opportunities to celebrate in my life than what I make good use of. I am a serious fun-seeker and I find the condition quite suboptimal. something in dire need for a fix.

allow me to elaborate.

when counted last, it was found that there were 33 crores (that's an astounding 330 millions) of gods and goddesses in Hindu religion. yet, I celebrate only a handful of them. some are celebrated for a few days, like Ganapati, Durga. adding these up, I celebrate for about 10 to 15 days a year. when we have about 10 gods/goddesses for every second of the year (one year == 31536000 seconds). this is a huge opportunity unexplored.

now a look at the other religions.

for some reason usually attributed to history (who is dead long ago and can't protest anyway) nobody in my family celebrates the Eid. that is, deny themselves two sumptuous feasts a year. this is clearly, insane.

of late, I've started eating cake on the Christmas day. however, haven't done anything colorful on the Easter day or numerous other feasts in the Christian calendar.

I think a revolution is needed to live the life of a true fun-seeker. however, I'll start small and vow to celebrate the Eid from the next year: smell the Biryani and chant:

to hell with the old wounds!
to hell with the leaders who don't inspire!
to hell with the businesses which squeeze life out of people!

cheers!

Tuesday, September 7, 2010

how to monetize technology

if you're looking for an answer to the question I just posed, stop reading now. by the time I finish off, I'm likely to leave you with this and a few more questions, rather than answer any.

as is the norm these days, I use the word technology to mean something really narrow.

technology == (computer software + microchips containing X-illions of transistors) and systems built with them

with this, I've thrown away fullerene, human genome, silicone, buildings, denim, coffee and pizza from the purview of technology. I'm sure most of you have no problem with this at all. so lets move on.

so why am I even asking this question and why are you still interested? a couple of weeks ago, my wife and I were discussing about running a dance school and the question "how do I monetize a school which imparts dance lessons to children" didn't occur to us. the answer is so obvious. parents who send their children to school will pay for the lessons. they'll happily do so because the school offers something that has a direct impact on things we do in our real life. so do coffee, pizza and denim.

this isn't necessarily true for the technology.

in past couple of decades, we've successfully used technology as an enabler for the goods and services we consume. for example, my wife will surely use computer software for managing the students records, billing and accounting in her dance school. she'll be happy to pay for this technology though the money will ultimately come from the parents who pay for the dance lessons. The IT services industry, busy counting their billions, will testify for this phenomenon.

we've also embedded the technology in a lot of things we use in real life. like the car, the lift, the microwave oven. here too, the role the technology plays is that of an enabler or an enhancer.

How about a technology that is directly useful?

let me make a list of mundane things I do on an average work day and see what are my direct technology touch points.


  • wake up
  • turn on the geyser
  • brush, shower, etc
  • dress up for work
  • have breakfast
  • read newspaper
  • open my laptop and check emails
  • say "bye" to my daughter and leave home
  • walk upto the bus stop
  • wait for the bus
  • board the bus, buy ticket, get seated
  • get down from bus near my office
  • walk to the security checkpoint
  • swipe my badge and enter office
  • since I work as a software engineer, I have several technology touch points during my work hours. in any case, IT's role as a business enabler is failry well understood now. so I'll skip the work hours.
  • board the office cab on the way back home
  • walk upto my apartment
  • ring the door bell
  • spend the evening with the family: play games with daugheter, discuss things with wife, watch TV, call people up using a phone, have tea, etc
  • open the laptop, check emails, social networking, web search, surf, etc.
  • dinner
  • sleep


it's apparent that there's almost no direct touch point of technology in my life at all, with the few exceptions like emails, social networking, web search and surfing. these are the habits I've acquired in the last decade. I believe this is true for a large population of the planet, who live on the greener side of the technology divide. of course, there's another side of the divide, where the majority of humanity lives without even knowing what an email or the internet is.

so how does the technology penetrate real life? I can think of two fundamentally distinct ways. either the technology becomes useful in one of the things we already do, like having breakfast. or it helps us grow new habits which are impossible without the technology. emails and social networking are examples of the acquired habit model. however, acquiring a new habit isn't easy, in general, and it usually works if it is free. I remembered a story (couldn't validate it from any authentic source though) of the way the East India Company introduced tea in Calcutta. They offered tea free of cost, so that people get used to the habit. More than a century later though, everyone pays for her cup of tea in Calcutta.

in either ways, we need creative ideas of how the technology can be directly useful in the real life of a consumer. and some more creativity around the when, where and how of the way we access technology. opening a laptop and tapping the keyboard is part of the invisible wall that separates the real world and the technology. I would speculate that at some point the software technology has to blend with other old-school technologies we excluded at the start of this blog, like material science, mechanical engineering, construction, to break this invisible barrier and make technology access seem more natural. I am talking about products where the boundaries between the mechanical, electrical and software components are not yet drawn clearly (imagine a plate which tells how much calories and nutrients you're about to consume) and use-cases like being able to check the recipe of an authentic Hungarian Goulash while cooking it in the kitchen (no running to the study, open the laptop, then the browser, type URL of the search engine, type  goulash and hit enter, click on a result which seems relevant).

to catch a glimpse of how the next evolution of technology may look like, check out Pranav Mistry's experiments with the Sixth Sense technology or read about the Semantic Web vision of Tim Berners-Lee, James Hendler and Ora Lassila.


lastly, as a consolation, here's a nice article which talks about 5 business models for the contemporary internet: http://mashable.com/2009/07/14/social-media-business-models/

so long!

Friday, September 3, 2010

An explanation

I owe this to the (mostly imaginary) audience.

I think wait for a technology which transfers thoughts to digital media with a single click of a button has been long enough.

I think people who read social updates don't like it longer than 20 words. neither do the websites which host them (though they're polite enough to let me type till I'm really obnoxious).

so it's time for me to grab the old fashioned keyboard and go tap tap tap (I'm a little high on nursery rhymes these days as my daughter just joined her first school).

and what's up with this 'freemind' thing? well, in case if you aren't FSF-oriented, free-mind pairs with free-speech (no free lunch here :)).

and I stole two words from one of my favorite songs and won't bother to explain why. neither did Simon and Garfunkel.

silence please!