Happy 7th of August Everyone!

Yabba Dabba Doooooo!!! This is one of the most significant day of the year for me. It’s a time to be thankful, reflect and most importantly taking a moment to step out of the routines and introspect. I am another year closer to my personal goals. Amongst many, I’m very grateful that during the last 1 year, everything is going upwards steadily. It’s actually one of the best years in my life. I learned to code in another mobile platform, that’s a biggie! A platform I was disappointed before but now has shown great potential. Another reason for me to learn the platform was because of data in Urbanesia’s mobile web speaks loud and clear. ...

August 7, 2011 · Batista Harahap

Tweeting #JustForFun

Java is an interesting fat lady if ur into BBW PHP is a supermodel still figuring out her identity JavaScript is a transvestite in Thailand: sexy, hot but not a woman still C is the girl that got away Objective C is someone you'd marry if you just spend more time understanding her Ruby is a definitely the best one night stand ever Bash is ugly but always there when you need her SQL can handle anything, works best on a threesome with NoSQL NoSQL is marriage material if only she understood me better Basic is the one we all shagged :p Virginity is a luxury lost over n over with developers alike with each new Hello World Python is muscular like her name but will u date muscular all the time? Your call lol Perl is autistic in her own space, mysterious and ur still finding reasons to get close to her Cassandra is sweet, exotic but doesn't speak english, but I guess love is universal :p

August 4, 2011 · Batista Harahap

Blackberry Coordinates From Cell Tower

I’m beginning to like coding in Blackberry since now an official JDE for Mac is available. Then I decided to have a look and prepare myself for some rather annoying but pleasant surprise from Blackberry’s JDE. To be honest, I don’t like Blackberry’s behavior of complicating simple things. But then I learned a lot from the codes. Urbanesia is a location based service and therefore location is very important. I’ve been trying out a few ways to get the device’s location and after all the things I’ve tried, I resorted into plain GMM solution. Blackberry’s location API was too slow to get a fix on the device’s location. Nevertheless, the codes are included as well. ...

August 4, 2011 · Batista Harahap

Mid 2011 - Learning Curves

It’s not exactly Mid 2011, almost a month has passed but I feel it’s still reasonable to title this blog post as it is. In the most cliche way of saying this: A lot has happened. One effort that stands out from all the others is keeping complicated from being complicated. Everything that has been going on for the last 6 months is inspired by a quote saying: Less is More. ...

July 17, 2011 · Batista Harahap

Trying Out Mac OS X Lion - Gold Release

This weekend is spent trying out and figuring out the latest Mac OS X evolution which is Lion. It’s my second time installing Lion, the first time was with the first seed released by Apple. This time is the so called Gold Release that will most likely be prime candidate for a full release. I got this DMG from the usual suspects and while reading its installation instruction, I was glad to know that it doesn’t involve any DVD disc to do so. The DMG was already enough and on my 10.6.7 Snow Leopard, I mounted the DMG and followed the instructions. I choose to upgrade my Snow Leopard to Lion. To my surprise, it was dead easy. ...

July 10, 2011 · Batista Harahap

Google Analytics JS - Here's a Non JS Fix

This will be the second time I once again dissect what is really happening with Urbanesia’s analytic results. The first time I dealt with it, we ended up breaking our own sacred oath not putting any inline Javascript with our HTML. Well now, we ended up not using any Javascript (in the future). These past few weeks our servers recorded an increase compared with previous months and somehow Google Analytics is not showing anything unusual. Our requests/second increased significantly with our application and CDN servers, this is a clear example of true users accessing our website. ...

June 9, 2011 · Batista Harahap

Android - AsyncTask Is A Beauty - Part 2

Here goes the second part of a short tutorial of how beautiful AsyncTask is, the first tutorial is here. Now that we’re moving up to our second activity which is Hacktivate, a brief description about it is that this activity essentially puts all the data retrieved previously and populate a custom layout ListView. To make reading and understanding easier, here are the codes first before anything else. package com.bango.acerid; import java.io.IOException; import java.util.ArrayList; import java.util.List; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import org.jsoup.Jsoup; import android.app.Activity; import android.content.Intent; import android.graphics.Bitmap; import android.os.AsyncTask; import android.os.Bundle; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.ListView; import android.widget.TextView; import android.widget.AdapterView.OnItemClickListener; public class Hacktivate extends Activity { private String jsonStr = ""; private JSONObject json; private List images = new ArrayList(); private List titles = new ArrayList(); private List writers = new ArrayList(); private List dates = new ArrayList(); private List links = new ArrayList(); private List body = new ArrayList(); private List description = new ArrayList(); private ArticleAdapter adapter = new ArticleAdapter(); private List l = new ArrayList(); @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.hacktivate); Bundle the = getIntent().getExtras(); jsonStr = (the != null) ? the.getString("listData") : ""; parseJson(jsonStr); ListView articleList = (ListView) findViewById(R.id.list); articleList.setAdapter(adapter); final Intent i = new Intent(this, PostViewer.class); articleList.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView<?> parent, View v, int position, long id) { i.putExtra("wvUrl", links.get(position)); i.putExtra("wvBody", body.get(position)); Hacktivate.this.startActivity(i); } }); } private void parseJson(String j) { try { json = new JSONObject(j); JSONArray rss = json.getJSONArray("rss"); int max = rss.length(); for(int i=0; i...

May 26, 2011 · Batista Harahap

Android - AsyncTask Is A Beauty - Part 1

Since last weekend, I’ve been coding more on Android and although the topic about AsyncTask is nothing new, I just wanna bring it up again to appreciate its simplicity and more importantly in real world usable best practice. So I decided to create an RSS client from FeedBurner and this time to get feeds from AcerID.com. The application basically loads all the feeds with its first Activity, show it with the second activity and another helper Activity to send direct emails for questions related with Acer products. Do mind the layout, it’s quite plain but it’s usable nonetheless. So before going on with the tutorial, I’m gonna show some screenshots from and MDPI emulator running Eclair and XHDPI emulator running HoneyComb. ...

May 26, 2011 · Batista Harahap

CodeIgniter Session With Memcache + Anti Bots!

Last night was a thrilling change of routine. Urbanesia was crippled because of the unprecedented growth of our MongoDB databases. I must admit that MongoDB is like Memcache with steroids, well it overdosed. MongoDB doesn’t have any mechanism to limit its memory usages, the only limit we can define is the size of its individual files. Therefore, something must be done! The second flaw was with CodeIgniter by design. By default, CodeIgniter uses its own Session handling mechanism either by using cookie and or database. The database types supported were limited to drivers available for CodeIgniter. Well we hacked it to use MongoDB a few months ago. ...

April 26, 2011 · Batista Harahap

Startup Kitchen - Bandung Ventures Night 2011 @ ITB Comlabs

Last Friday, 8 April 2011, I represented Urbanesia as one of the startups East Ventures has invested upon to present about how we do our everyday lives. It is more about how me manage innovation from ideas to execution. Ideas are cheap because here in Indonesia, problems are abundant. Execution is priceless, you never know! Startup Kitchen - Bandung Ventures Night 2011 ...

April 12, 2011 · Batista Harahap