Pages

Thursday 31 January 2013

New markets

It seems to me that money moves from old industry to new industry like water moves from high to low ground.

Money at expensive small laptop in 2005 has moved to cheap eeePC in 2008. From $3000 to $399. Money moves from Sony and Fujitsu to Asus. She opens her mind.

Money has further move from PC and laptop to iPad. People don't need a huge computer to surf net anymore.

Money has moved from Nokia to IPhone. From Palm handheld to PocketPC. Microsoft is the first to have handheld with phone and tablet PC. The focus on PC seem to be wrong.

PocketPC -> iPhone
TabletPC -> iPad

Without moving away from the industry of Personal Computer, Gates misses the new rising industry of internet with Phone and Internet Tablet. He has been struck with PC and die with it.

Steve has moved to new market of music player from Mac. A new music player that connects to Internet. Then a phone that place Internet over phone. A tablet that places Internet over writing note PC.

Nokia has struck with phone. It's phone can hardly surf the net. With rubber button.

Money moves from old industries of phone and PC to a new industry of Internet phone. The focus is the Internet not the phone. Dell could hardly moves as its income mainly comes from PC and server. It never wants to jump to phone, handheld and Internet industry.

In 1987, Dell beats IBM by half the price of PC. When IBM comes into PC, it has a huge margin. As Dell comes in with cheap PC, it grows so fast. Now people are moving away from PC. What is the new market for dell?

Samsung has control the tablet and smart phone with low price. Now people are looking at smart watch. I would say car radio system and phone have a new market. Tablet for traffic and car has a new demand. What is the price now?

Yellow pages declines. It fails to move from print advertisement to online. 2012 is a death blow to her. The old industry of print publishing is replaced by the new online directory. It takes about 10 years.

Airline has move from luxury travel to budget air bus. SIA is slow to focus on budget air. It will eat into its main business. Money will move from economic flight to budget one.

Apps is moving from database to network with short life persistent data. It is my idea to develop apps that are less than 300k bytes.

Apps moves from fee to free. Money from Website is moving towards app. High server cost and zero device cost. Apps starts from 2009. It will grow over website in 2015.

It wins because of its speed. Website has a 5 seconds or more loading. App can be make instant after the first loading. Website needs a server cost. App lives on device and no need any. I make the mistake of staying on web apps for too long. The native is 3x more powerful and 10 times faster with good design.

Money in 2012, 2013 is still in the website advertisement. It is moving rather slowly to apps. Google is not so willing to move away from Adsense to admob. Adsense is the main cow.

The way to keep apps free is to have new income. It is still a very new industry and one may not be profitable in the near future. I fear I may be too narrow minded in transport app. It may be set to explode in 2015. Great opportunity.

Another company may beat google in mobile app advertising. I feel google is staying on website for a little too long. There are changing coming. :)



A door closes signals a door open

I always believe that you can always find a better way or idea. It truly applies to programming.

As I touches up my London Tube app (doing it for 5 days. Lots of design. Aim to become one with TFL), I find that TFL has just changed its nearby site. So I cannot use it to match my OSM stopName. I need the stopId and line to get the tube times.

I thought about it and take a short walk. Still no idea. Then a new idea comes to me eventually. I look at my line page. It seems I can try the response bases on the what I have done on line activity.

It works even faster than using the TFL nearby. After a supper, I further improve it using preference to save the response. Now I do not need network every time to have the stopId and line, give stopName. I apply it to my line page too.

There is a similar lesson. Once struck, relax, take a walk and come back to think. New idea will come.

It leads me to the thought of finding new market. If the front line workers can easily update his management about new market and potential problem, the company can grow easier.

The car park warrant sees me park illegally but he cannot issue me a fine as my car is parked just out of his territory. If he can easily inform his boss on what he saw, his boss can work on getting the new territory and win big.

Voice message for quick recording of idea and send to the management.

How to read MTA GTFS real time subway data?

I am reserving this blog for my code to unlock MTA real time data in Google map format. It takes me 2 nights to solve. But you can have it in half an hour. Will post the detail here shortly. Check back later!

0. Register a key from MTA. Pretty fast and easy!
1. Download the google file named protobuf-2.5.0rc1 2 and import to your eclipse workspace src folder


import com.google.protobuf.ByteString;
import com.google.transit.realtime.GtfsRealtime;
import com.google.transit.realtime.GtfsRealtime.FeedMessage;


2. Add following code to get each entity where the times is in it.


String url = "http://datamine.mta.info/mta_esi.php?key=xxx";
new DownloadGtfs().execute(url);

...

FeedMessage gtfs;

gtfs = GtfsRealtime.FeedMessage.parseFrom(content);
for (GtfsRealtime.FeedEntity entity: gtfs.getEntityList())
{
Log.d("Gtfs EntityId:", entity.getId());
}


3. Here you go! Live subway time.. With the above code, you can figure out in 30 minutes!




Wednesday 30 January 2013

Grateful

I am grateful for TFL to permit me to use their amazing real time transport data. I will do my best to create beautiful app that helps London people.

I am grateful for MTA to permit use on its bus and subway data. It will have all live buses by end 2013.

I am grateful for LTA to help my vision of public transport apps. And a chance to work with the local transport providers. It is more significant to create useful apps here.

I am feeling I am born at the good place at the good time. It is a start from zero but I am not discouraged. It gives me a chance to make something beautiful.

It is better to share my ideas and work on blogger than post them on Facebook. I will have a record for reflection and more importantly make my knowledge and experience benefits other developers.

Thank Google.

Build Server to Server

It is important to build a good server to talk to bus server. It lower her traffic cost and increase its security. I will base my server as cloud computing. It is fair that she allows me to use her data and I try my best to keep her cost low. It is required in MTA.

The server needs to be free for me to continue providing free apps.

Step expect feb 2013
- a server to server

Step
- 30 seconds rule
- a monthly report

Step
- multiple server

I conclude that a server task is time consuming and costly. But it is the way forward to work with big company. And it is possible to create a free server with very efficient serving. MTA requires server to server in their agreement. Follow it!


OSM with tube lines

I will be using relations found in the box region. Only points inside the region needs to be drawn. And I will be

Simple
1. Get tube station
2. Sort by distance
3. Plot

Remark: done on 310113. How to go to stop page? There is no stopID. Like NYC buses. Will side track to stop page.

1. Go to stop page
2. Get tfl nearby to match stopName
3. With stopid get stop timing

Remark: it is more difficult than I thought. Tfl changes its nearby page today and I could not get updated location changed with tfl site. But it does bring me new way! Read in next post. Done on 010213. I still have not get to draw line yet.

Things to do next
- replace nearby with osm & layout change k
- no blank nearby, update it last minute k
- better status and line stops looking k 010213


Simple
1. Fetch way point for nearest station k
2. Plot way point k
3. Plot the station k

Simple
refresh when lat width changes k
And when center moves k 010213

Simple
- point based on zoom factor
- add white round station icon

Starts on 300113 and ends on 010213 for the map tube line. It is a very simple layout. Will be making it look better next round.


Tuesday 29 January 2013

OSM with NYC station

Recently the movement for open map has reached a tipping point where it has very useful data to be harvested for mobile application. Using OSM, a user can easily identify those subway station near her location. Below is a simple map search that I have developed for NYC Subway Time.


It is a simple map with nearby subway station for line 1. The map search is dynamic in the sense that as you pan the map, more stations will appear. I will be adding the station name beside each icon (looking for better icon to represent New York subway..).

Android code:

String lon0 = Float.parseFloat(longitude)-0.01+"";
String lon1 = Float.parseFloat(longitude)+0.01+"";
String lat0 = Float.parseFloat(latitude)-0.01+"";
String lat1 = Float.parseFloat(latitude)+0.01+"";
url = "http://www.overpass-api.de/api/xapi?node[bbox="+lon0+","+lat0+","+lon1+","+lat1+"][railway=station]";

OSM response:

<node id="1482281254" lat="40.8850229" lon="-73.9006967">
<tag k="name" v="238th Street (1)"/>
<tag k="railway" v="station"/>
<tag k="wheelchair" v="no"/>
</node>

Only 2 locations are required, the lower left and the upper right. The critical point is the railway=station. It fetches all the subway station in the region. 

Ultimately, I am pushing for dynamic lines to be drawn on the map. I envision a real map with stop location and subway line. Users can have a sense of the distance between stops an zoom in the map to view its surrounding. It is a frontier that needs lots of programming hours, but it is fun!

OSM combined with MTA recently opened train data makes life better for New Yorker!




London Bus Tracker Unique

Here is a screenshot of a London bus app for iOS I have developed. It shows the a nearby map with bus stop location. In London, I have come to appreciate its advancement in stop information. Every stop is assigned a letter for passengers to easily identify the bus stop. Most of the bus stops are closely located. A simple letter will go a long way to help Londoner. It is something simple that Singapore can learn for her bus stop sign.