Enabling “Move to SD Card” Installation on Android

It’s quite simple.

Open your AndroidManifest.xml and add this attribute in the <manifest> element.

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    android:installLocation="auto"
...>

There are two values you can use: auto and preferExternal. Use auto to let the system decide which one to install your application to, whether on the phone storage or external storage such as SD card. Another value, preferExternal, will give the system priority to save your application on the external storage first. If the system can’t install your application on the external storage because of one or more things (full, unmounted, etc.), the system will then decide to store your application to the phone storage.

For more details about this, you can visit the official Android documentation here: App Install Location.

Nudity Detection using JavaScript

To those who are wondering how JavaScript can detect nudity on images and videos:

http://www.patrick-wied.at/static/nudejs/

Please keep ini mind that this is an open-source project so there are lots of improvements to do. Contributions are very welcome whether you want to improve the source codes or just create a nice demo.

I think this is interesting. Let’s make a simple demo.

Blaast at A Glance

Last week, or two weeks ago, Firman of TeknoJurnal contacted me and notified about the new mobile framework called Blaast. I didn’t have any idea about the framework yet. From what I know, Blaast is full of Javascript code, the language I’ve known for quite sometime. He invited me to the event and I agreed to join the event.

Honestly, I have no time to touch Blaast material until the day was come. I have no idea on what should I do before the workshop until he send me an email notifying me to try out to code in Blaast even a simple ‘Hello World’ app. Escaping from the situation, I just print out the material and read it while I’m stuck in the middle of traffic. It helps a lot, but you know, reading docs without getting dirty can be misleading. Continue reading

Google Maps Updates Break the Application Widgets

This morning, I was shocked. Not literally of course. I can’t run the application widget on my Android. The system said, “com.google.settings has stopped unexpectedly…” and you might guess, the famous force close finally run its duty. What’s wrong?

I suspected that I have installed application which cause the widget to break so fast. Driven by curiosity, I traced it using aLogCat and found that there’s a NullPointerException (NPE) logged in the system along with the filename (I don’t remember the filename, I think it’s something like AppWidgetSomething.java) and the line where the NPE happen.

I remembered the last time I was installing Koprol for Android with widget enabled and I thought that was the problem why the system widgets were broken. I uninstalled it and nothing happened. I restart the phone. The widget seems untouched. NPE still happen on the same file with the same line. Continue reading

The Ten Most Visited Sites

I’ve never thought that Facebook is not on my list. I also surprised that I am more technical than I thought. Anyway, this list is just a summary of my browser’s history and I, intentionally, count  visit to those sites. Sounds like I have nothing to do but I have found it was really fun!

I’ve arranged the list from 1 for being the most and 10 for being the less but still stand as the top ten visited sites of my version. Again, the list has nothing to do with my current employment at Yahoo so you’ll see an honest result as other sites will come up at the list. Continue reading

10 Gigabytes of Free Storage on GMail

It was 11.14 pm and I can’t sleep. I opened Firefox and, as usual, checking emails from both Yahoo! Mail and GMail. The speed of the Internet was quite good. I can open Facebook, Koprol and Twitter. Pushed my last (code) change to Github. And sent the replied email. Everything was clearly good.

Logout from GMail, I noticed that there was a number counting up indicating the free storage of GMail. I have nothing to do so I just looking at the number increasing every single second. I saw that the increasing number was somewhat between 4 and 5 with probability like six to ten times of 4 and one time of 5. Interesting.

Then I came up with this little math: Continue reading

Android at (Your) Home

Ready for the next excitement? Last time I watched Google I/O 2011, I was surprised. Not only because the new Ice Cream is out (at Q4 2011 they said), but also its capabilities beyond my own expectation.

Last year, I was imagined that the world was fulfill with every technology available on earth. Smartphones have been successfully ‘intimidate’ our life and become the most important gadget one should not leave without. Android is one of them (beside iPhone, BlackBerry and ready-to-coming Windows Phone 7). Continue reading

Asynchronous Driver

I’ve been driving for years and I found that driving in Jakarta nowadays needs a little more of everything to be done. More skills, more patience, and more time. As the traffic jam always hit everywhere in the town, I should not expect more than 60 kph to move on the road. That’s extremely too fast.

While I’m sitting in the cockpit (seriously, I like to call it ‘cockpit’), I thought of some programming method that can be implemented to reduce the stress.

private class DrivingTask extends AsyncTask<Void, Void, Void> {
    @Override
    protected void doInBackground(Void... params) {
        doDriving();
        return null;
    }
}

public void doDriving() {
    playMusic();
    moveTheCar();
}

I just ignite the engine and start executing these codes:


DrivingTask drive = new DrivingTask();
drive.execute();
 

Simple.

(Suddenly, the car behind me start to honk the horn. Dammit!)

Hello world!

It’s been quite sometime when I try to get this domain, ksetyadi.com. Someone has proposed me some amount of money to sell the domain to me and sadly, I couldn’t afford it. It was 2010 and I don’t even think the price was too overvalued. I just couldn’t afford it.

Nothing wrong with my old domain, kristiono-setyadi.net. I do love the name. But facing the long and complete name as my own domain is somewhat ridiculous. Also disturbing to some other people. Some people just love it. But it didn’t feel comfortable for me. And I still chasing the domain-of-my-own-dream, ksetyadi.com.

April 1, 2011. April Mop is coming. To some people, this day was seriously full of jokes. To me, it means nothing. But I began to think that someone trying to fool me by notifying that ksetyadi.com is now available. Really? I didn’t take it seriously when I opened the who.is site and type ksetyadi.com in it. Surprise! It’s available.

And the rest is history. I only need a few minutes to take the ownership of the domain. And I start to think that if someone trying to rob me with the same amount of money recently proposed for that domain, I could gave them the money. Perhaps.

And now, I don’t want to use Java just to say hello to the world as, you might guess, it takes more than one line just to do a very simple task. Guess what language I’m using below.

alert("Hello World!");

F5.