Pages

Thursday 28 February 2013

Taipei Subway Study: Subway Time

I have made a free and easy trip to Taiwan from 21 to 28 Feb 2013. I enjoy the tour very much and have 4 days to study Taipei subway. It is very efficient as compared to Singapore. There are a little more than what we can learn from her. Taipei subway has a heart. When the platform is crowded during rush hour, there is an announcement to let passenger to alight first. A color big heart poster is pasted before priority seat for the elderly, pregnant woman etc. And best of all, the officer open a gate just for group tourists to exist the subway station easily. Taiwan focuses on tourism is really unmatched.

In Taipei, the subway timing has second beside the usual minute. It is really accurate.

There are 2 timing. One for the normal train that stops at every station. The other for the express that stops at certain stops. As such there are 2 lines drawn on the floor leading to the train door.

The platform uses floor light to indicate train approaching.



The first timing indicates train going to Xindian in English while the second timing indicates train to Taipei Power Station. 



Each timing comes with a big advertisement and News screen. It also provides the date, time and weather. And the chance of rain!


The double green lines. It stops at Taipei Power Station or the other goes to Xindian.


The signage is so big that no one can miss the direction :) Line color is used wastefully for quick identification. 



People line up on the right instead of left in Singapore. There is broadcast for people to keep right to give way for panic passengers. 



Very similar to US subway, the sign shows platform number, destination and time in the line color.


In train sign show next stop and next next stop. 






Floor red light blinks when train arrives. 

Tuesday 19 February 2013

Just discover a giant slayer!

Today, as I am looking in play, I found an exciting happening. I always thought that big company has an advantage over individual. They can easily allocate a sum of money to employ a team to design and develop a very sleek app. And individual would never compete. But today, I see some hope...


From the first look, it does not tell much. But if you install, you will be amazed by how fast and easy it work. You can get UK train time and location. And most amazing of all, if you search in google play for UK Train, it is no longer NRE (National Rail Enquires).  It is ranked number 1 above NRE on 190213. Sometimes, it is NRE number 1. But the thing is, an small player can kick a giant's ass.

I wonder how since NRE is the one providing all the data and timing. And they have tons of money to invest in a high design app. Can an individual slay the giant? I will study more...!

Just a initial feeling, there is a sense of art and foresight in app development. And great art is not developed by a team but an individual. :)

Updated on 010313. App is created by artist and downloaded million copy without extra cost. The new art in 21st century?

In 1900s, to build a beautiful car is very expensive and still very expensive to produce the next car. Only Ford can make a basic car and mass produce for million using huge capital. Now, an artist can build a great app and the next copy is free!


How to have a global variable in Android

In my related post, I write about how to have a global variable in iOS, now I am working on NYC Subway Time for android, I ask myself the same question. What one does on iOS, he has to do it on Android. It is a good. The imbalance is actually an economic opportunity. Let you guess what I mean :)

First, replace your AndroidManifest.xml with the following code...


    <application
android:theme="@style/CustomTheme"
        android:icon="@drawable/icon"
        android:label="@string/app_name"
        android:name="com.appspot.HelloListView.Common">
>

The crux is the last line, I name a subclass Common. Use another name you like.

Second, add a new class Common.java 

package com.appspot.HelloListView;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

import android.app.Application;

public class Common extends Application {

Map <String,Stop> stopDict; // a dict of stop by stopId. Used in stop page
Map <String,ArrayList<Stop>> lineDict; // a dict of stops by lineId. Used in nearby page
   
    public Common() {
        this.stopDict = new HashMap<String,Stop>();
        this.lineDict = new HashMap<String,ArrayList<Stop>>();
    }

    public HashMap<String,Stop> getStopDict() {
        return (HashMap<String, Stop>) stopDict;
    }
   
    public HashMap<String, ArrayList<Stop>> getLineDict() {
        return (HashMap<String, ArrayList<Stop>>) lineDict;
    }
       
}


In the above, i have 2 global variables that I need. StopDict and LineDict. I code a getter too. Finally, use the Common class anywhere you want in your other activities...

Common common = (Common)getApplication();
Map <String,ArrayList<Stop>> lineDict = common.getLineDict();
Map <String,Stop> stopDict = common.getStopDict();

.....

stopDict.put(stopId, stop);
lineDict.put(lineId, stops);

Here you go! :)






Sunday 17 February 2013

Today i start my nyc subway times remake (android version)

Finally, i begin to work on android version. It can be a little uninteresting to work on something similar that i have done last week in iOS. But that is the way of the current condition. Google and Apple are equally strong in number of users but not in their stock value. Google is about US$700 while Apple falls to $400.

I could say iOS or Android is better? But I see a lot more innovation in android apps compare with that in iOS and make by the same companies. Android allows instant publication and very flexible ways of doing things. iOS is rather structure but it is really good for huge project.

Remember android is java, a newer breed of programming language that suits more young people and taught in most university. iOS uses objective C language which is as old as me now. And replaced by java in university. I love C when i program iOS but i also love java when i program android. It is kind like when you are with this girl, you like this girl. But when you are with another girl, you kind of like the another girl feeling... the 2 timer feelings i got when i am way younger. :)

Java is easier to learn and faster to code but for big project, C provides easier way to structure and understand.

To begin with, i post a photo of my last android version.


Basically, i am going to add nearby with line information, full of icon to make thing really simple. Then i will add more icon to line page, status etc. Much of the design will be taken from my london tube tracker. Here we go! 180213

Beginning stage...


Using iOS style group table, i am putting in the stop name and line. I will be adding the icon for lines next and then the timing for uptown and download direction.

Update: 010313. I have stopped working on android version as I make a tour to study Taipei subway in Taiwan. It is really a fun trip and there is a lot to learn from her system. It is very efficient system with its driverless trains on the way to the zoo.


Just added the the line icon. Going to add the direction and timing. :)
In the nearby, I get the stops with timing. The tasks are

1) get OSM stops (they do not have stopId which is required for timing) 1st http
2) get MTA response string. Check if it is already stored in pref. 2nd http
3) get the stop dictionary
4) loop OSM stops to match MTA stops based on stop name
5) keyword is to use street number
6) or use the words in stop name
7) found a group of MTA stops, and reverse matching to OSM nearby stop
8) With stop Id, go for the timing...:) 3rd http and onward



030313 after some work, i manage to get the arrow and timing for the subway line in nearby. It is a little complicated. I will put in more note here
- It takes too long for the timing to appear
- It solves the crashes by limiting the response to only 20000 size




040313
- next, I will add the link to stop page.
- shows in table form the timing.
- add direction
- debug to no linedict, is it necessary? Yes, when comes from map

- add to fav in stop page
- correct timing in fav

- add map page
- add lines in map page

- add status new site
- add in line page with stop icon
- from line page to stop page

- add in email button

- test daily use 3 times a day for 3 days..!

QC standard
- each page should get result in less than 5 seconds. Anything more than 5 seconds, user will shut down.

There is multiple line 5 because one is the express line. It seems that NYC uses the same icon for normal and express train. And the express train only operates in one direction.


The stop page is done. I will skip no stopDict to avoid do extra work. Now I am going into map. And from map to stop page. 050313


050313 making the map and link to the stop page. The stopId has been found by common method and using the stop name. Now i am going to add the line to make the station easy to identify.



050313 adding the lines. It is not as fast as i want (<5 seconds) and sometimes, the new stations do not show as i move the map. Why? I am going to test on phone for a few days. At the same time, I am going into adding favourites and timings next.



060313 Have done the favorite with stopname -> destination line and 3 three timings. It has the line bullet. And I am going for status next. I still fear that my nearby is not fast enough!


070313 add the line status from the common lineDict. If it is not available, i have to get it from http response. Put it to common class. Next it will be the line page. And bullet on station type and station name.


070313 Staying at home, and can do much more. It is the line page with station type such as night or partTime bullet.





By 080313 I have already done the develoment. I have add label to the map. Correct the 4 widgets with multiple single widgets e.g. 1 for home, 1 for work. I have already refine the status page.

080313 Testing day 1
- fix stop page extra line
- fix widgets timing
- fix 2 timings for a single widget
- fix multiple single widgets

090313 Testing day 2.
- on 3G network: nearby takes about 4 seconds to load, status about 3 sec
- 2 more NY locations
- inform user if not yet live station
- remove old station as user move map
- hide label when zoom out
- set fav page first to avoid always gps
- tries 3 times for stop page for rush hour


Customisable widgets

It comes to my mind that a widget can be customisable in the nearby future, guess 2015. You can put in portion of information into your home screen widget. You can choose things such as

1. the temperature of the day
2. wind speed and direction
3. tide and current
4. UV amount
5. rating for a good fishing day
6. rating for a good golf day
7. rating for planting rose
8. arrival of your favorite train
9. arrival of your favorite bus
10. alert of train delay
11. rating for putting on moisturiser for a dry day
12. traffic condition for your route to office
13. loading information of the coming train or bus
14. loading information of the nearby station

Widgets have open to a world of information and i wonder why apple does not see it as top priority. :)

The future of transport apps

I have been thinking about the future of transport apps. It seems that a critical feature is

1. notification of serious delay, disruption or planned work. It tells you that your train has been disrupted. You can avoid the jam and go for alternative transport. Notification can be made subtly intelligent by studying your usual travel time and line. Implicitly, it can be based on our favorite route. And the user can disable all notification. Estimated to happen in 2013.

2. a team will be form to work on the transport app. A good graphic designer is needed to ensure the beauty of the app on areas like icon, widgets, app pages. 2 programers will work on the map, timing, and iOS and android. 1 marketer will work on the screenshot, keywords, blog, Facebook, email. The price has to be free, based on my intuition. The use has to be tested locally for several months. The question of capital investment seems to be unavoidable. I am convinced that a team development will be the norm. Capital is required to employ the team. Or a team of owner is form to grow organically. A team is required to make polished app that people want to look at on their personal device.

3. new feature like journey planner, bus and train combination are strong hold of google map. A train map is a necessity to answer the question of how to go to a place. Much of these features are determined by the local demand. Rail and high speed train are also part of most countries. These features will come at a later stage where the real time serves its purpose. I think a section on lifestyle is inevitable. The apps provide event info as one travel on a bus or train since it has my location. Siri may be good enough to answer the question when is the bus coming? :)

I have no answer for income yet. It seems to be not making money for the coming days.. Hope I am wrong about it :) I have not done much thinking in it. And I will be back when I have done more. Initial I thought of groupon and google. But I think there may be virtual goods involved.

"We always plan too much and always think too little. " Joseph Schumpeter

ps. I will be working on the redesign of nyc subway time, this time will be on android version!



Saturday 16 February 2013

Coding using Tab

Today I tried to program using my tab 7.0 and google drive. I manage to view my h and m file using antTek explorer. The only thing is that I could not save what I edited. It says

No enough permission to do it.

And using the same app, I manage to view android java file on my lg 7. It also fails to save.

I guess the technology is close to programming on iPad or tab. I estimate we will be able to code mobile in 3 years.

:$

Friday 15 February 2013

Feel a little lost..

After remake NYC subway for the past 7 +3 days, I submitted to iTune for review. I have stop working on i t and feel a little lost. Sort of emptiness. As I have done my best.

Usually after send to apple, I am not longer motivated to think about my my app or work on it. Apple takes 7 days to approve. It is rather a long time compared to instant 1 hour approval from google.

My concept is be patient and do not rush to submit to iTune before you have done everything you can on the app. Once submitted, the drive is gone.

Happy coding..!

Just to add.. The thought of doing mobile Romance of Three Kingdom does shift my mood. I have started Palm programming with C in 2002. I wonder why I did not fulfill my teenage dream when waiting for the bus :)

I have tried once with HTML, it gets so complicated in the battle logic without any structure. I gave up after anout a month of programming. I think the language C can make thing easier in the long run. And koei certainly uses C in her game.

I will try again more intelligently using existing chess code. I will make thing simple with only 2 player. The other is the computer. I estimate it will take a month to do it with iOS.

I feel so good to work on something that you want when you are younger!


Wednesday 13 February 2013

A personal competition

There is an new app that I starts beginning of the year. And a strong competitor.

I design my own layout and icon while he copies the official authority icon and uses their official screenshot. He is doing it on web app.

The downloads different between him and me is 10 times. He gets to 10k and I have only 1000 download. He uses a very good name. That is in jan 2013.

In feb 2013, he has grow to 150 rating while I am still 10 times lesser. He comes up with a very good nearby page that I love so much.

And I have tested to use the official logo and have similar name. He is risking to put the authority name on the app!

Not only he is a big taker, he is a fast and creative programmer. I should have my app to have the good nearby page at the end of feb 2013.

I really admire American businessman. Full of energy, simplified ideas and daring to copy. :)

Even I am losing in the race, I fully admire his design. I hope I have many things that I can learn from him.

I wonder why he has 10 times my download? It should not be as we are closing into similar icon and app design.

What is the winning factor? There are many possibilities..!



Tuesday 12 February 2013

38 killed in train station stampede

Just read today that in a India train station, 38 people are stepped to death in a rush for coming train. There are ten of thousand of people waiting for the train. When the announcement comes that the train has changed to another platform, the people starts to run for it. And it causes such accident.

Last year when I am at Bangkok airport going to ride the airport train. There is an announcement in Thai and people starts running. As I reach the platform, the train has started to depart. Then I understand why the people are running. They run because they want to catch the train and avoid waiting. They know the train is leaving because if the PA system.

And with my meeting with local authority, I come to understand that providing train timing may cause accident. And now I understand it.

If people know the train is leaving, people tends to rush. Accidents can happen. Nobody likes to wait.

What are the facts?

If people know in advance the train is coming in 5 min, people may not run but walk faster. If people know the train is coming in 1 min and the next is coming in 3 min, I think people will not rush. As the waiting is not long.

Is there a right way where we can provide train time without causing people to rush and yet they can avoid the waiting time?

Can the station stampede at India station be avoided? A sudden change of train platform.

Over crowded station causes the accident? Will train loading info prevent overcrowding of station?

1 min (in red) 7 min (in green)

The above timing shows 2 train coming. The first is red color, indicating 80% full. The second is green, indicating 50% full. If I know the info, will I wait for the second train?

Even today at a mall, it is so crowded that people cannot really walk freely and people do rush. For what I am not sure? It is not a nice place to go if it is so crowded where there is so much friction.

If places are so crowded, why cannot our leaders feel it? Maybe they don't take the train or go shopping locally.

A train disruption will cause the worst when people are struck at a train station. I see the importance of informing the passenger when the train is disrupted for a long period. But who and when to inform? The people who is going to the station when the disruption is happening.

I pray for people in India. Hopefully someone can come out with a way to solve the overcrowded station and mall in the world.

Monday 11 February 2013

Competition is the nature law

London bus has 25 app and London has 100 app. How does the people find you?

High competition ensures creativity of app. Face the truth, most app only get 1 or 2 download a day for London tube.

2011 starts. After a year, there are 100 apps. Some will change and survive. But most will change and die.

My London tube ranks 88 on 110213. It has 1 to 3 downloads a day. It is highly competitive. Everyone has access to tfl API. All apps are free.

There is only 2 or 3 apps with widget. And maybe niche is the way. Train app for tourist.

I feel people do not really need timing for train. I have done a good layout design but I am still getting very few download. Maybe I have to wait to 6 months before I see any result.

The strong competition will likely lead to 3 winners in the ling run. Most individuals will die off. And the one winning, will it be the one having the most cash? Macafe seems to survive after it goes public. But pof can fight match.com alone. Can one person fight a big company in app industry? I don't have answer, only I know is to make it the best app.

And to the customer benefit. I really have no idea how to fight the competition. They have the locality advantage. It takes me not very long to learn about their train culture. But I still do not know if journey planner, delay alert or combination of bus and train suit the London people.

Maybe I should change my tube logo next.

Can app programming be automated?

Come to think of making app as economical as possible. The cost of making an simple app

- logo design 1 day to 3
- app design 1 day to 7
- coding 14 days to 30
- screenshot, name, text, publish 1 day to 3

But every country has a different transport system and uses different color. To make the app useful, there is work to study the system. And it takes on going effort. To begin, it is good to invest 7 days to study it. Real use is most important if it can work.

- 7 days to study a system
- 7 days to use it on site

The differences in every countries. So there is no easy way to automate the coding.

Can it be configure? The widget has a skin to change easily. The nearby layout is possible like access report. So is the favorite.

Can it be open source?

Car wash has changed from machine wash to manual wash in Singapore. It takes only a person to operate the machine but 4 man to do manual wash.

When come to cost, a machine cost 40 000 while the 4 man cost $4000 a month. Within a year, the business pays for its machine investment.

Then why people still want manual wash over car wash. I guess the machine wash create fine swirl lines on the paint work. Car is a luxury in Singapore and JB. People does not want scratches on his car. The death of machine wash.

Sunday 10 February 2013

App business

It seems that for an app business to grow, works need to be focus on every critical part of the business. Focusing on the app but neglect the marketing will fail. The important area to build to minimum standard are

- Quality app. Tested daily.
- Good to look at Icon. Icon tells the quality of the app.
- Good to look at widget. Nobody wants to look at ugly phone.
- Good reviews. Many says good then must be good.
- Good developer name. Tells the professionalism of the builder.
- Easy to remember app name
- Good screenshots.
- Free is a must for people to try. It leads to income from many possibilities like virtual coins, advertisement from google or local companies trying to sell, upgrade to ads free etc
- Game must be addictive in fast response. Trap the users. Must not feel drudgery to do some task. Build farm.
- App must be useful and simple to use.

If any one of the above is not good enough, users will not hesitate to delete or does not bother to download to try.

Similar to Domingo's pizza, beside great pizza, it covers the whole system
- great packaging in boxes for pizza, dessert and tissue. Chilly pack.
- great promotion of $5 personal pizza with a can of coke. Price
- supper good taste pizza and dessert that beat every competitors.
- fast delivery
- loyalty card to trap consumer
- good location
- clean restaurant, toilet
- clean uniform
- commitment to great satisfaction

Fact and truth of my affair
My London Tube weak points
- icon not good enough
- developer name not pro enough
- no enough customer study. Do they really need the tube time? Or the journey planner? Is there a blog to read more?


Actually i still dont know the cause. I need to study more.



Saturday 9 February 2013

How to have a global variable in iOS


1) put below code to your appdelegate .h file

@property (nonatomic, retain) NSMutableDictionary *lineDict;

2) use below code to access the global lineDict variable

SGBusesAppDelegate* delegate = (SGBusesAppDelegate*)[[UIApplication sharedApplication] delegate];
if (![[delegate lineDict] count])
      ...

Note: I manage to get the above by working on my rejected by iTune app ~ Bus and MRT. It always crash when apple test it but not with me. It is the biggest project that I have done. It takes me 2 months to complete. Luckily all is not wasted, the experience and knowledge is use in many other apps.

Dream app since my kid's day

I would very much dream of creating a rtk game on android and ios. I wanted a mobile rtk in 1989. And 20 years later, it comes true. However, it is only sold in US and Japan iTune. It gives me the reason to build it myself.



Maybe I should when i take a break from my transport apps. It will be my second attempt to create a game. The first html version is too difficult. Do a simple version with only 3 kingdoms and 21 officers. 7 states. And a 7x7 war geolocation. It will be so interesting to read about game AI.

Create a very small interesting game...
Do in a month.
- 3 kingdoms
- 21 officers
- 7 states
- 7x7 war grid
- play against computer AI
- ads supported

I think it is really possible using objective c.

Just tried 3 top strategy games. Awful feel. 1 cannot start. I promise I will never publish low quality or careless work.

The other 2 I cannot remember their name. Look like easy to remember name plays an important part.

Both uses the time wait. Build a farm, wait for 2 hours. It takew away the natural speed of computer. To build more, you can pay for the gold. The income comes from buying the virtual goods.

There is a market for a simple and quick to play strategy game. Within a second, I am playing and can never put it down for next 3 hours. This is what i call success.

All the game tries to simulate the real world. Planting a rose in an app is way easier than the real garderning. You observe what really happen. In apps, motives and books, the creator lets you see what he wants you to see.

Lose in the virtual world happens to my dear friend. He is still waiting for the ideal girl in hong kong movie. I am sad to tell him that his girl will never come. He is not studying the truth and face the truth.







App developer 2013

The nature condition to make it in the app industry is not clear. It is still forming. I could see there are a few kinds.

The first is individual programmer. He has only learn android or objective c for 3 days and want to build an app. He does it and release it to google play. Apple will certainly reject his 7 days to build application. In play, his app is usually so poorly made that it is rather a waste of time for the consumer even if it is free.

I see app as a transformation of book. A good book takes an author months or even years to write and publish. But an app takes a programmer only a week or hours to write and publish. There is no much quality and quantity in most androids in android. These apps would not survive long in the app world. The new developer is better to study his topic very well. Spend as much time as he can to study e.g. astrology. Find good read. Develop a system. Studying can take a month. Then do a design that can takes a week. And build it in 14 days. Don't release yet. Test it and use it. Ask if it is useful to himself. If he cannot use it for 7 days, then redo it. There is no point to rush a new app and get many 1 star.

Then there is app dream developer. Usually it is  a medium company who can spend on a game designer, programmer and graphic designer. The game will takes about 3 months to develop and publish. It costs about $30 000 and if he wins, he wins big. Once the app gets to the top chart, he can earn a million dollar. And the big risk of $30k is much worth it. But there are many people did not make it. I look at koei, my favorite game studio. Koei releases Romance of Three Kingdom in 2010 and got only 20 reviews. It costs $14. If only 1% people has rated, there are only 2000 purchases in 2 years. And the total sale is $30000. Misus 50% for apple, koei is losing money even after 2 years. From the game outlook, it costs at least $30 000 to make. That is not really making money as compared to the 1980s. There are too many games in iTunes now. Competition is very strong. And most games are free. The industry has changed. He cannot see the benefit of free that first got players addicted. Then get money from in app purchase. Maybe I will try to make one again. That is my dream.

Free games are just as good. They lets users play, addicted and pay for higher level or to buy special weapons. There is also an element of advertisement in the game. Koei is in the past where game sold only on price. The conditions have changed. There are too many games now. Koei have not update rtk since 2010. Look likes they have given up iTune and focus on other platform. Find the fact, study the cause and change her approach. Rtk can be great in iTune. Just that koei is not facing the truth.

Another point is that koei has not been doing direction sale to customer. She relies on dealer such as X-box and playstation. She has a build up relationship with these dealers. She goes into direct selling in iTunes and may put the dealer relationship at stake. However, her first try has been a loss. She has then pull out of the smart phone game industry. It is actually a disadvantage to koei in the long run as sale of x-box and playstation are suffering with iphone and android taking over. If I am koei, I would try again on iphone and android, putting it free of charge. And let players to pay for training for war, intelligence or simply to trade weapons. Keep the player hook in the long term and there is a chance to make money from them for many many years to come.

I would happy if anyone wants to go into app business. He really have to study his niche. And gives free. Make it a great app. In the sense, he has to think carefully as much as he program. 1 hours of thinking and reflection and study equals to 1 hours of programming. Put programming in the back seat, anyone can program today, even a 10 years old. Only the hard work is the thinking.

And it comes after sit quietly for only 30 minutes. Begin with all possibilities...





Optimist and coding

It always pay to be optimistic. And to be optimistic, is to think that the future will be better. It is true in every sense. Every thing that human have had improved over time. Car, computer, medical have kept improving. Although mistakes are bound to happen, but in the general direction, things always get better.

When China makes the mistake of going communism, people suffers with less freedom. They do not get to do work on what you like to do. And recent years, we see that China has prospered to a point where she is lending money to the United Stated. She is buying America companies like oil and computer. In the long run, things always get better. It is a true law of nature and everyone can rest assured of it.

In programming, i find that my app naturally pick momentum only after 6 months in the market. It takes me time to perfect the app, to look beautiful and to what the user find helpful. There is a waiting time of 6 months to see any visible even though may be very small result.

The good news is that all big companies, standards, technologies must grow old and die. New and small companies will form to grow, develop and take their places. It is really a natural law in the universe. No matter how strong a ruler is, like the Emperor Qin, he must grow old and die. No one can escape the natural law. And new ruler will rise and take over. And it is how things get better and better. If the new ruler cannot make it, he will soon be replace by a better ruler.

I keep in mind that if my app grows big and popular, it will soon be replaced. I have to refresh my concept, it could be a new app, new technology, new devices that will take form. Keep my mind open. What is growing and what is dying?

In 2013, these are growing:

internet phone, internet pad, smart watches, smart sensor, car with connection to mobile phone, traffic information on car, gps location vehicles, wireless charging, programming on pad. predator drone, mobile dating site.


And dying:

programming on laptop, fighter plane with pilot,
pc, phone, music player, newspaper, PC online dating site


not sure:

With the advance of online social dating like facebook and match.com, locally people are still finding it difficult to find a suitable partner to marry. It is really a long and hard wait. What is the problem? Is it Singapore has no good free online dating site? When coming to dating, people are mainly form in school, dance school, thru friends and relatives.

I believe at end of 2013, there will be significant number of users for transport app. I will have a set of professional apps. Belief that things will be better or hope make life continue.

Friday 8 February 2013

My motivation

For the past few days, I done a little thinking on why am I doing all this? I feel a little loss. Am I happy to create apps that serves many people in London and Singapore. It turns out that I am not that happy for such a cause. To help people avoid standing at the bus stop in the snow? That does not really make me happy. What is the meaning of my effort? It does depress me when the apps that i build do not make enough money for daily use. (maybe just enough for basic food)

But today as I build the map search for nyc subway app. And when i look at my simulator, i feel great. I feel i have create a great app. And that make me happy. And adding color lines to the station will be new and beautiful. That make me even more happier.

Seem like create something great moves me. At least, I do not deceive myself that i want to benefit the world. Stay honest and find the fact and face the truth.

It is always easy to think that customer demand is the most important factor to consider when building something. But creating something for other people does not motivate me more than creating something great and that I can use it myself.

It leads to making transport apps for London and New York is not as easy as I cannot use it myself. But I get to see very creative apps over there. And it does help me in creating a greater app for my use here.

Nevertheless, I fear I may have ignore the demand of the market  as I only focus only great transport app. Customer taste always change and sometimes it changes so slowly in 30 years. It happens to Dell it has changed from economic PC to high design phone and pad. From office market to consumer market. Bill fears he is going to miss the road curve, and ironically, yet he misses it. :)


My unsolved coding iOS

1) In iOS programming, I often need tiny classes with a class. But I do not want to define .h and .m for each tiny class. How can have these tiny class within a UIViewController class?

Android allows tiny classes to be defined in big class activity. Why cannot iOS? e.g .


class a(){

   class b(){

   }

// and you can use b inside a! 
    
}

Update: Just find that struct is not supported in NSMutableArray so Struct is useless in iOS.

2) Often there is a method that i want to use in 2 different class, how do i share them. So that i do not need to edit 2 classes when i want to change the method?

- Have tried Block, it seems like block is similar to a method in class. Why have another thing? It cannot use in 2 different classes.

- Have study interface. it seems like a private method for a class..


@interface ClassName ()- (void)privateMethod;@end


Update on 160213. To have a method use in 2 classes, create the method in a common class. Make the method a class method. And here you go!

Desire & Advertisement

Advertisement is part of online world. Advertisement serves to sell. Before a person buys, her desire must be stirred. An advertisement serves the buyer, promising to fulfil her need.

I have thought of online advertisement for some time since 2007. To use the fact that people buys when they see something that they want. In such a case, youTube has a better chance of serving her user in the form

1. In the short video
2. Display small sign for the use to stop the video
3. Once video is pause, the advertisement related to the static screen appears
4. User can click the link to view the related products film in the video
5. Or he can view them later at the end of the movie

An advertisement that show at the end of the movie is more useful than having the advertisement before the show. It irritates the consumers. In online youtube, users will just click away. Once the clip ends, immediately shows related products links. And users click the link and buy, there is the commission. I think this is the future of youtube or online newspaper.

Adsense gets it right. Using the content of the website, mainly the words, it displays reverent ads. When i read news about a minister appointed to hong kong board, I am like to see travel to hong kong ads.

Ads for transport app has location advantage. In London, easily 4 million people will use the app. Advertisement will be more effective when it can display ads based on location. For example, at a location near to a polytechnic, a online game ads will be more effective.

So it is advertised based on what is nearby. At the moment, admob does not take into location as much as I think so or the number of advertiser is still very small to use location.

I have a mosquito lamp but I do not know how to sell it. But if there is a dengue cluster in Serangoon, and the users are checking bus arrival in that area, the users will benefit to see that new mosquito lamp can help in his peaceful sleep.

The location condition determines the local need. Economy occurs when there is a difference in supply at different location. There are many oil product in the US in 1870. These products will naturally flow to the east who does not have the oil and want them after seeing its use.





Thursday 7 February 2013

NYC subway redesign stages (iOS)

Stage 1: Here is the first stage of the nearby page for NYC subway time app. It has line info for both direction in each station. Easy to read timing in a station using GPS. 070213. To download, the app link is here in iTune.





Stage 2: Now I have group them by stopName. Adding the top row format. And all the lines logo. It looks better. But the data integrity is not yet there. e.g. stop 125th street has 2 locations, 1 for line 1 and the other for line 2, 3. My code does not differentiate them yet. 080213




Stage 3: Choose between the 2. Which is easier to read? The left looks nicer with same size. The right has the ability to extend to more timing and using texts for direction.



Stage 4: Have done with nearby page. Now go to the map search from nearby. As the user moves, the map updates the new stops. 0902113


The way to update a dynamic map search: 

                // there is 2 part to update the map smoothly
                // in the beginning, you have the current set
                // 1. add new mapItem from new set
                // 2. del old mapItem from current set
                // Note: current and new interset a certain region
                // that is left untouched.

Stage 5: label the station for easy identification. There is a need to label the station. I cannot identify them at all. Try transparent background. Settle with white as it does not mix with the background text. 090213






Stage 6: Will be adding lines to make the map better looking..! But how to add 2 lines that run parallel? Apple map lacks transport information such as subway line. So it is good I add in the lines with color. User can find the station easier. The problem is there is no line info in the ways where i can put in different colour. Study more..


Cannot find a easy way to get the line info. So I use light grey for all line. The line shows as one move the pan. way -> relation. May need to combine osm way and osm relation. 2 http to draw lines. Is that too much time? How to get osm to return way with line info? 090213




Stage 7:  Manage to find a way to display the color of every line. The idea comes after I am stuck, take a nap of about an hour, and then sit in the dark for 1 hour. I got the idea suddenly at the first 30 minutes of the sit. Before I sit, I think of all the possibilities. And this idea comes again. It comes before but I discard it as not workable. But later, I think and find it possible. Don't throw away a new idea so fast, try it out with a small experiment. 

The idea is to use the node name which contains the line information. And in the way, I get the first node line as the way line. It is not always right but I think it hits 80% of the time. :) And it looks good. 100213





Stage 8: Just done a rough stop page update. I take efforts to become one with MTA Subway app. It does only 3 timing and headed by general direction. Look like there is some timing incorrect in the photo. 100213. 





Stage 9: new favorite page :) design with my love one on 120213.




Stage 10: Lines with status. Effort is taken to display status for every line instead of group of line e.g. 123 as shown in MTA mobile site. 130213.



Stage 11: Wrapping my work on NY Subway Times. 130213. Will be doing 3 days of testing to ensure good user experience. :0




Summary: take me about 7 days to rebuilt. Have been fun doing the programming and problem solving. Will test for next 3 days. debug and refine. Then submit to iTune for update on my iOS app. The app link is here. Just submit to iTune on 150213 after 3 days of testing and more coding. The update should be available by next friday. :)



Day mrt trip

Make a short trip on mrt and observe

1. A man running for the train. His speed endangers the people around him. He is outside the station and maybe he sees the train coming.

2. Kids making noise in the train at 3pm. They run for the train from the escalator.

3. I see the train coming. I want to know what the the next train. I don't want to run.

4. I just want the 2 timings for paya lebar. The sign is easy. Sign is better than with like up arrow vs the word up.

5. There is too little gate gantries for exist.

6. Can build another stairs away from escalator like Bangkok. Stairs beside escalator, people choose escalator. But if stairs nearer to the person, he may climb the stairs.

7. Advertisement can be more lively like Hong Kong. The overall feeling is hk has bigger walkway. Warmer feeling.

8. Staffs are everywhere to assist people.

Wednesday 6 February 2013

Passion does the work

Passion seems to be the most important factor in business. Combining passion to form your unique product. Without passion in a line, you cannot continue to do it everyday. A business or product can become great if you improve it everyday.

So it is a nature law that koei first product becomes great when he, even if he does it alone, do it everyday for 3 years. Maybe he locates near to his university to get access to library for history and computer book. He learnt C for a year. Program his nobunaga's ambition for 1 years. Adding all the graphics for 1 year. And his wife helps release it in 6 months.

Passion ingredient 1
programming + history = historical game.

Passion ingredient 2
Building + computer = dell computer

Dell has a different passion. He likes computer. No so much on programming but dismantle it and build it. His passion is to build computer. He keeps doing it and the market demands greatly in 1980s.

Koei combines passion in programming and history. There is still hardly any competitors to its product.

Passion combination
- programming and gardening

An app to monitor the environment of a terrarium. The temperature, moisture, the growth, light etc.

- programming and graphic
- programming and accounting
- programming and GPS
- programming and hovering
- programming and history
- programming and bus
- programming and mobile
- programming and missile
- programming and good food
- programming and traffic jam
- programming and dating
- mosquito chaser
- cooling sit or room
- mobile war game

The truth to one destiny is when the things we are doing things that make men a little freer than he was. Or when you have the right motive.

In this case, koei and dell are not doing things to make people free. They are doing things they like. Like is a feeling. And they are just following their feeling.

Come to creative technology, sim combines music and computer to create sound for PC. He grows with PC but misses the mobile phone revolution. His mp3 can hardly fight with apple iPod in design. Square is a comment on creative by my friend. When phone comes to mp3, creative days are over. He is not able to jump from PC to mobile. And he declares war with apple. He lost the war based on consumer. He follows apple to open retail shops but the crux is his product does not appeal to people.

Mosaic says he just follow his feeling and go on to create some greatest music in his short 31 life.

Seem like nature gives each one feeling, something that he likes or resonates with. And all he has to do is to chase it with his life. And it leads to better mankind.

Questions.

What excites me?
What I would like to do in my free time?
What I can keep doing 24 hours? It seems that without passion, one cannot do programming 8 hours a day for even a year. Follow your passion (your feeling will tell you what you like or don't like) and every hour of work is enjoyable. Every moment is pleasure if you focus on now instead of the farther away goal.

Dynamic appeals to me more than static. I like control, robotics, hovering things.

It is good to have 2 likes so you can create something new!

A morning thought..





A perspective on koei

Koei is a popular game that I play long ago. When I read that it is being found in July 1978 and release its first successful game nobunaga's ambition in 1983 march.

I can imagine the difficult in developing such a great game. PC is not easily available in 1980. And it is very expensive. And it game is developed in C language. There is no Internet to find answer. And most of all, it is developed by one or 2 person in about 3 years.

The game 1987 romance of 3 kingdom is so fun that spending years to play. The standard is so high and graphic is so beautiful. I estimate it takes about 3 years with about 1 to 3 people to build.

Until today, there is no competitor in romance of 3 kingdom. The west will not be interested in the Japan and china ancient war game.

The Chinese and Japanese do not have the knowledge to build such great game even today.

Koei founder is so rich to be Japan top 40. I admire greatly his luck, skill and patience to develop these game.

In his time, he takes 3 years to develop a game. And to use a difficult programming language that nobody know even in 1990. Such difficulties to learn English in Japan.

The difficulties overcome turn out to be his greatest advantage. No west competition. No local competition for 30 years. Nobody would want to spend 3 years to develop an app.

There is a passion involved in programming and history stories. His wife is a great help in providing the computer and running the game business while he focus on building.

Lessons
- develop great game. Spend as much days as you can. Take 3 months to develop an app in useful logic, pretty design and solid testing.
- you can do it all by yourself.
- play by your passion. Programming + history = great historical game.
- overcome each difficulties and turn it to be your competitive advantage.

In my transport app development, the difficulties are
- understand local use pattern. I really hope I can fly to London to test my apps.
- use local language. A great Chinese app for Taiwan goes a long way. I can see Taipei app is not that great. And there will be no competition from the west, but many from the Chinese. Maybe the Chinese have not much in iOS. Another great app will be Korean. That will have no Chinese and Western competitors. Korea transport app is well developed in 2012.
- access to data. Most countries have open data now. Not really an issue in another 2 years.
- long programming hour. To really have a good app, spend 3 months on it. In design, graphics, testing and marketing. Most app is being developed in less than a week.
- tired eyes. I cannot continue when my eyes are tired but my mind can continue to think about the problem and reflect. Study the fact and face the truth. And so this blog is being written at 5:30am when I cannot do any more programming withy tired eyes but tireless brain.
- last, find a supportive wife who support you in your work! She gets the money too!

Going for breakfast now!

New job for new industry

The app is a new industry. It creates demand for new job.

App designer
App programmer
App marketer

Transport app is yet to be profitable. It will not be able to support even 1 programmer. But app demand is strong in bank, MNC, government, media. Each project would requires the above profession.

App has users in the range of 10 million. Every one uses an app. Website is only limited to a PC in the house. Or limited to being at the office. App is used any time any where by every one.

Advertisement used to be you come to a place, you see it. Then it becomes, you read the paper in the morning, you see.

And become you use the web, you see it.

Now it becomes, you use your phone, you see it.

Taipei subway visit this month

I will be visit Taipei for 7 nights this month. I hope to experience its subway and bus system during my last 3 free and easy days. Looking forward to it. I will write about my train travel and her several iOS and android app.

One first look, Taipei system is very similar to Singapore. Simple and one line one track. Will update more photo. Do come back for update!

NYC Subway is unique

It is my study of NYC subway that I learn to admire. A user emails me to ask why not follow the MTA subway time app. I admit I make the mistake of not become one with it. And it is my work now to redesign my app to follow MTA.

For example. line 2 and 5 starts from different stations, come together in the middle for several stations and then goes off in a different direction again and finally back to the same line to the same terminal. It gives me the feeling that display line beside every train timing is very important in New York. This principle does not apply to SG and London.

All the transport app are the most 50% similar. They are very different in actual use. NY has 4 tracks system where trains from different lines can travel in the same track. In SG, there is only 1 track system where only one line can travel on one track portion. It does seem very different.

Tuesday 5 February 2013

NYC subway time app design

Start to redesign iOS NYC subway. 7 days is a lot. I am taking it slow this round, focusing on design. To become one with it.

050213
- Study mta app

060213
- Add in OSM nearby
- add in timing
- add in line 1 logo

070213
- Try custom row

080213
- add Map search
- add map line

090213
- pref response for stop page
- pref for line
- add status

100213
- test day 1

110213
- test day 2
- app logo design

120213
- screenshot
- marketing
- submit

Monday 4 February 2013

iOS vs Android

I have been looking at the war between iOS and Android. Who will be the winner? I used to ask the same question in 2007 between Microsoft and Nokia. It turns out that the winner is Apple with her iPhone.

Android is stronger in innovation with its widgets and lots of new manufacturer phone design. Apple today is following Samsung in its mini iPad. It used to be Samsung following Apple.

iOS is still prettier and better designed than android os. It is more responsive and nicer to look at. iPhone still has its value and loyal followers.

Who will win is important. But what is more important is how to use the current conditions where there are 2 equally strong os with Android having the upper hand now. I read that Android has 1 million apps while Apple has only 700 000. Android allows free and open competition while apple controls its app quality.

In the long run, android apps are better but people making less with so many competition. And iphone apps are better designed but getting less users. I fear i am wrong. I will need more fact. Things are changing every 3 months now!

Saturday 2 February 2013

OSM vs TFL api nearby bus stop


It turns out that OSM is not always the best mean to get bus stop nearby. It has lots of information but the local authority TFL api provides more. For example, the osm below

<node id="469760120" lat="51.5256997" lon="-0.1353310">
    <tag k="highway" v="bus_stop"/>
    <tag k="local_ref" v="P"/>
    <tag k="name" v="Euston Square"/>
    <tag k="naptan:AtcoCode" v="490000078P"/>
    <tag k="naptan:Bearing" v="W"/>
    <tag k="naptan:CommonName" v="Euston Square"/>
    <tag k="naptan:Indicator" v="Stop P"/>
    <tag k="naptan:Street" v="EUSTON ROAD"/>
    <tag k="naptan:verified" v="no"/>
  </node>

while TFL api is able to gives
1. bus routes
2. towards where

These are important information for passenger to identify the bus stop and surrounding bus option.

Competitions mean great apps

I love competitions. I may not win in every race but competition does make you a better person. Every time I see a great transport app, I feel so excited. I admire their creativity. I specially admire app design from the US. They are simple and easy. I admire London app next. They are more words in their design. Below are some of great app that I admire greatly.


The beauty of the app is self explaining. No need any words to indicate platform north bound. An upward arrow tells everything. Using the line 1 logo with a green color makes things very easy to identify. There is no words as compared to Circle line in SG. Newly updated photo.


This app uses the OSM and with instant map panning and zooming. It shows the station in white circle. As you zoom out, the stations groups to form a bigger circle. It is beautiful. Found 3 months ago.



This CTA transit app combine bus and subway time into a very simple app. Every thing is so simple! No need any explanation. No advertisement at all! Truly an American designer. It has been around for a year. Do check back again this page. I will post my new great transport app discovery on this page in the future. 

I am always excited to see them, pushing for new frontier, making things simpler. Of course, beautiful. I follow their design principle and will freely share my work. 


My reason for sharing is that it is better to share what I know. These knowledge expires very soon, a few months later they become useless, replaced by better way of doing things. Keeping them open on the Internet benefits other developers and people. In the first, I am able develop my apps quickly because of the knowledge shared online mainly in stack overflow.

Instead, for each sharing, I give thanks. Share all you can!