Monday, May 25, 2015

Setting and resetting Default Apps

Was playing with a map app. The map application offers to take pictures. When the option is clicked, it prompts to choose which camera app to use. Being curious, I select "always use" option and did not notice the prompt after that.

I tried to go through all the menus and settings but just could not find the setting to unset the default app. Going to the internet to search for "unset default app" for the map app does not help. It did not have anything that is related to resetting the default.

Going on a hunch, I tried looking for "Android reset default app". There are a lot of people talking about it. I hit jackpot.

Unlike windows programs where all the settings are within the program itself, Android have different ways of doing things. You can set the default app in another app but to reset it, you have to go back to "settings", "application management" and select the application to reset. Just click on the app and scroll down. You will find a "reset default" button. Choose it and the work is done.

You may ask "what about other apps which I want to keep the default camera setting". Well, you are out of luck.



Sunday, May 24, 2015

Simple Restful Web Services

I was trying to use PHP CURL library to access a web services. In the process I found a useful library that makes using CURL very easy. It is called Httpful (https://github.com/nategood/httpful). The library is useful if you don't mind the many duplicate functionality.

In the process of testing, I was wondering whether CURL actually posts the XML. Since I did not want to access any real time web services, I decided to use PHP to get the posting. Naturally it failed. The standard global variables $_POST[] does not contain any content neither does $_RESPONSE[]. I search the internet and discovered that the post is more like posting a file rather than posting a form. There is a PHP function to get this kind of content.

After successfully retrieving the content, I was wondering whether I can make this functionality work like a very simple restful web services. I began to write a proper PHP page to simulate the web service. The following are the scripts for posting and the restful web services page. The XML request and response are dummy values which is stored as a simple variable, It is not in the scope of this blog to show how to create XML in PHP.

The posting page :-

include "httpful.phar";
//error_reporting(E_ALL);
//ini_set('display_errors', 1);
$url="http://localhost/sampleresponse.php";
$authenticate = "jonathan@mail.commypassword";

$response = \Httpful\Request::Post($url)
    ->body($authenticate)
    ->mime("XML")
    ->autoParse(false)
    ->expectsType("XML")
    ->send();
$xml= new SimpleXMLElement($response);
$sessionid=$xml->xpath("//userSessionId")[0];
if ($sessionid==""){
    die("Error User does not exist or password is wrong.");
}

The restful response :-

include "httpful.phar";
$postText = file_get_contents('php://input');
$xml= new SimpleXMLElement($postText);
$auth=$xml->xpath("//AuthenticateRequest")[0];
if ($auth){
$user=$xml->xpath("//userId")[0];
.
.
.
if ($verified) {
    die("
             Sdt7tXp2XytTEVwHBeDx6lHTXI3w9s+M
       
");}};

Well, it is simple straightforward PHP turned into restful web services. Obviously CURL could post user credentials itself while posting the request. This is a simple example.

Not everyone have a web server. In the case of user just want to access the restful web services via the browser, they could simply write a Javascript AJAX function to do the posting. There are plenty of examples in the internet that shows you how to do posting in AJAX. It will not show it here.

For more security, it is best to use HTTPS for the web services.



Sunday, May 03, 2015

Traffic Lights at Junctions

Recently there is a discussion on Facebook Group on the above subject. The discussion is quite extensive. I will give an account on the facts discuss and add a few points not discussed.

In modern cities roads are primarily meant for cars. Pedestrian walks were added to facilitate pedestrian transports. On some old roads pedestrian still share with cars. Express ways are for the sole use by cars only.

LTA does not leave pedestrians without the means too. First, there are pedestrian crossings guided by traffic light. Many busy roads have on-request buttons so as to keep cars moving more smoothly. Minor roads does not have button control. It just switch on and off regularly.

Zebra crossings are actually pedestrian priority crossings. It is usually found near schools. Pedestrian bridges span across roads so that it will not disrupt car traffic. Similarly, underpass for pedestrians serve the same purpose.

There are a number of junctions near MRTs that are fitted with senior citizen card reader so that it will give senior citizens extra time to cross the road.

Some roads are closed at specific time just for pedestrians. It is not just during festive seasons. Some place like Holland Village have permanent time slots for this purpose.

As usual, every group are biased towards their own stand point. It is not wrong to behave this way as it will check the balance of the transportation facility based on their own interest. However, most people does not look at the standpoint of the other side.

During my study at a seminary, the Dean Dr. Roger Capps have a specific assignment for the Masters degree students. They are to take on the role of the opposition and argue from that stand point. His reason is that if the student can't even withstand his own argument against his own belief, how would he/she able to go out and face the real world. Obviously it is super tough to be in the shoe of the opposition to one's conviction. Sun Tze have this rule "知己知彼,百战百胜。" (Know yourself, know your enemy, you will always win). Its an analogy that pass the time test.

Back to our point on traffic light. It is this lesson that I learned that keeps me reminded that I should not look only on my stand point. The lesson applies to every one too. Obviously, we would want the traffic light to favor pedestrians. However, it means that cars will suffer. If you have to drive through the city, you will know how it feels to stop at every traffic light. There are lots of people earning a living driving vehicles. It is, therefore, imperative that a balance must be maintained. Although, the priority is given to cars, but there are a number of avenues where pedestrians were given due consideration. We should accept the fact that not all things will work in our favor. We complained against cars but cars also complained against us too.

LTA should not stop making life better for pedestrians too. There are other countries that favor pedestrians to cars.  LTA have to look at what is done and see if it can be implemented here too. However, just because other did it does not means that it is applicable here. Each country have their own unique setup. It works in one place does not means that it works everywhere.




Saturday, May 02, 2015

Silent Majority

In society there are a large number of people usually does not voice out or act openly. They are usually called the "Silent Majority". Their opinions are usually unknown since they do not act or voice out. It is, therefore, very difficult to find out what is their opinion on a specific issue unless a very large scale anonymous opinion poll is conducted.

Those people in the "silent majority" usually composed of the following

1. Those who just don't care.
2. Those who are indifferent to the issue.
3. Those who are against.
4. Those who are pro activity but does not want to take part.
5. Those who are afraid.
6. Those who are too timid to act.
7. Those who are too tied down/busy to act.

When one stands out and say he/she speaks for the "silent majority", The implication is that he/she is speaking on behalf of "all" of them. It is actually true only for those who are agreeable to the action but do not act. He/she cannot claim to speak on behalf of all "silent majority". Since they are "silent", how can you know whether you are truly speaking on behalf of "all".