E-commerce and The End of Search

Most of us consider the Internet a bucket of miscellaneous tidbits, and the modern search engine our personal assistant. But is that analogy correct? You open your browser, bringing up the Google homepage, then enter whatever term you happen to be looking for at the time and bingo. You get a list of results you then have to “search” through to find what you are looking for. So in fact you are searching through the results of what Google searched for.

Google co-founder Larry Page once described the “perfect search engine” as something that “understands exactly what you mean and gives you back exactly what you want”, far from what Google is today.


A recent study titled “Google Effects on Memory: Cognitive Consequences of Having Information at Our Fingertips” by researchers at Columbia, Harvard and Wisconsin-Madison universities studied whether the Internet has become our primary transitive memory source–basically an external memory system. These are the conclusions reached by the four controlled experiments in the study:

1) People share information easily because they rapidly think of computers when they find they need knowledge (Expt. 1).

2) The social form of information storage is also reflected in the findings that people forget items they think will be available externally, and remember items they think will not be available (Expts. 2 and 3).

3) Transactive memory is also evident when people seem better able to remember which computer folder an item has been stored in than the identity of the item itself (Expt. 4).

The effect on whether or not we choose to commit certain information to memory when we know the information is readily available on the computer is what is relevant here. We store specific things in specific places, like food in the fridge, but who remembers what is specifically in the fridge?

It is completely natural for people to minimize what needs to be encoded into memory by organizing and then encoding the location of the information, rather than the information itself. This is where the traditional search engine falls short of meeting the basic cognitive needs of humans.

The emergence of the mobile device has been remarkable and Apple’s vision in this space has changed the way people access information. There is data to support the notion that people are not mirroring desktop behavior on mobile devices.

People are not searching on smartphones as much as they do on desktops. Steve Jobs attributes this to the availability of mobile apps and the desktop lacking an app store. In reality, the availability of app, or the lack thereof, is not really the central point. What’s important is information is being categorized, compartmentalized and organized for consumption, and delivered more efficiently through mobile devices. This is clearly a step in the right direction in delivering more relevant and timely information to the user.

Artificial Intelligence will play a major role in the next wave of innovation, starting with Evolving and Adaptive Fuzzy Systems as classification algorithms and then matching the wants with the needs of the user. A recent example of this is an application that gives personalized restaurant recommendations called Alfred—it is all recommendations and no direct search.

GiftWoo takes the next step forward in the e-commerce space in a vertical market. Until now going online to find a gift for your better half involves a search, which results in thousands of choices. Currently, e-commerce websites are designed to deliver a high number of choices, rather than the “right choice” for the consumer. GiftWoo will give the buyer the unique and perfect gift they seek without the searching, by initially building a profile for the gift recipient, then utilizing a proprietary algorithm to match the ideal gift to the profile.

TrackInspector – Using the iPhone to track railroad defects

Over a glass of wine and cigar with a friend who works in the railroad industry, we began to talk about the technology in use to monitor the health of railways and bridges. I was truly amazed at the politics on maintaining these bridges, how fragile these communication channels are and how critical they are in maintaining the energy supply to major cities within the US. (more on this in a later post)

According to a recent Reuters article here, almost half of the electricity generated in the United States is supplied by coal-fired plants. These coal fields are found in specific coal regions within the US. Once the coal is mined the facility can negotiate a transport rate if there are competing railroad they can use.

Enter the FRA (Federal Railway Administration):

The purpose of FRA is to promulgate and enforce rail safety regulations, administer railroad assistance programs, conduct research and development in support of improved railroad safety and national rail transportation policy, provide for the rehabilitation of Northeast Corridor rail passenger service, and consolidate government support of rail transportation activities.[2]

Currently railroads are in their majority inspected manually on a fixed schedule, meaning that someone actually goes out and either inspects with the assistance of equipment or visually.

Equipment assisted inspections are performed by a variety of methods:

A list of methods used to detect flaws in rails:

These techniques can be used in a variety of different ways:

The probes and transducers can be utilized on a “walking stick”, on a hand pushed trolley, or in a hand held setup. These devices are used when small sections of track are to be inspected or when a precise location is desired. Many times these detail oriented inspection devices follow up on indications made by a rail inspection cars or HiRail trucks. Handheld inspection devices are very useful for this when the track is used heavily, because they can be removed relatively easy. However, they are considered very slow and tedious, when there are thousands of miles of track that need inspection.

My interest level rose when we talked about the current handheld inspection devices being used and how the iPhone could add an enormous amount of value to this market.

Today a handheld device is used to record the fault and subsequently docked with a Windows PC, in order to sync the data recorded with a centralized system where photographic evidence can be later attached.

The Federal Railway Administration Track Safety Standards determine how and what data needs to be collected to perform inspections, which got me thinking on the iPhone hardware capabilities and getting a proof-of-concept out. Later came the design and architecture of the TrackInspector iPhone app.

The iPhone application allows the inspector to enter GPS-assisted track location being inspected, defects found during the inspection including a photograph and any remedial action taken. The inspection is immediately time-stamped and transmitted over the cellular network (GSM) or Wi-Fi, to a database server where the data can be retrieved securely and on-demand from anywhere in the world using a browser like any other website. The secure server allows centrally archiving, analyzing and reviewing all inspections as well as visualizing trends in the infrastructure.

Something I am sure Railway companies like BNSF (Burlington Northern Santa Fe) or Union Pacific would be interested in.

More Details: http://www.lonehorn.com/portfolio/trackinspector/

Enhanced by Zemanta

What is an AppDelegate?

Recently I needed to call an external process after an iPhone app I have been working on finished loading uploading tracking information to a web server.

The way to do this is by creating a custom class and then calling that _NAME_AppDelegate.m file within your code, but what is an AppDelegate?

The AppDelegate just sits there doing nothing, waiting to be told that something potentially important has or will happen. The application/iPhone OS is the one doing the work and calling the AppDelegate when it has or will do something that the AppDelegate (and by extension, you) might want to respond to in your code.

Here is a complete scenario:

(Starting at the iPhone’s home screen)
1. A user taps on your app’s icon.
2. The iPhone OS loads your app into memory and whatever else it needs to run your app. At this point, the OS has control.
3. The iPhone OS finishes its launch procedure with your app, and is ready to hand over control to it.
4. The OS calls your AppDelegate’s applicationDidFinishLaunching method.
5. Your code is now in control, starting with whatever is in the applicationDidFinishLaunching method of your AppDelegate.
. (User uses the app for a while)
6. User taps on the Home button to quit your app.
7. Since your app has no direct way of knowing when the Home button is tapped, the iPhone OS sends an applicationWillTerminate message to your AppDelegate, so you can clean up any open files, etc. before the app quits.

There are also other notifications that your AppDelegate can receive between launching and quitting, such as if your app is about to run out of memory.

How to test development on the iPhone

Working on multiple iPhone application projects and shortly looking at the iPad forxcode other development opportunities, I found an excellent step by step guide on creating a development provisioning profile on http://devclinic.com by Kuix, that I thought I should share.

As simple as it may, I thought i’d contribute and write a tutorial on how to get your development application onto your testing device. Due to the exponential speed and memory differences between your development computer and an actual mobile device, it is very important for you to test your application on a mobile device.

Step 1: Certify
This is the hardest step, so please follow the steps closely.
Open Keychain Access application, inside your Application->Utilities folder. Click on Keychain Access->Certificate Assistant->Request a certificate from a certificate Authority… Enter your email, your name, and for CA Email i used my email again(the last one don’t really matter, for these purposes, but it’s required). Choose Saved to disk and click continue. It will then, by default save to your desktop.

Open up Apple Developer Connection inside your browser and login. Go to the Program Portal section and click on Certificates. Choose add certificate. The page will basically tell you to do what i just told u. scroll all the way to the bottom, where you will upload and submit that new certificate, from your desktop. Now your certificate needs to be approved by you/administrator. Simply click on approve, where your certificate is pending. Now, you will have the option of downloading your approved certificate. Download that, and the WWDR intermediate certificate, linked below your certificate. double click on both downloaded certificates to install them into your Keychain. Use login, instead of System, for both.

Once that is done, move on.

Step 2: Device
Now click on Devices. Here you will get your mobile device recognized as a development device. You can develop your app on either an iPhone or an iPod Touch. Open xCode, and go to Window->Organizer Here you will see the device that is currently connected to your computer. notice the long ass identifier key for Identifier:. now inside your program portal, click on Add Devices. you will make up a device name and then copy past that identifier value, you stole from the xCode organizer. Submit.

Step 3: App IDs
Next step: click on the link App IDs from the left hand side, then New App Id. The Description is for your sake, so you know what the ID is for. Choose Generate New, and for Bundle Identifier, it’s like writing an URL backwards.
com.yourCompanyName.AppName then submit that.

Step 4: Provisioning Profile
Almost done! Go to Provisioning page, then New Profile.Choose a memorable profile name. check the box for your approved certificate. Choose your App ID, created from step 3. check the box for your development device. Submit. Now you can download your provisioning profile. Go back to your xCode organizer and add your provisioning profile into the Provision section, under Devices.

Step 5: Load it!
In your app, go to Resources->appName-info.plist Where it says Bundle identifier, change the value to what you entered for your app ID:com.yourCompanyName.AppName.

On the top left hand corner, in the drop down menu, choose Device – 3.0 (if you’re running 3.0 firmware). Build and Go.
If you’ve done everythign correctly, it will build successfully, and your app will be now on your mobile device!

I know it’s a lot of writing, but every step is pertinent. Good luck, guys=)


GrandCentral to Google Voice

In just under a minute I migrated a couple of GrandCentral account to Google Voice and I am very exited to see a transcript of a voicemail show up in my Inbox.

I will definitely miss the GrandCentral interface as its much more intuitive than the new Google Voice GUI.

A limitation currently in place on both platforms is the capability to have 2 different accounts ring one same number. I particularly like this to have a personal and a business number both ring my cell and landlines. The workaround for the moment is leaving an account with GrandCentral and on one Google Voice. Lets see how long that lasts.!

One thing that I have seen more and more recently is my GrandCentral dropping calls on me. Maybe its Google’s way of getting users migrated.


Reblog this post [with Zemanta]