Fetching Android CyanogenMod sources on a 512 MB VM

Last night, I synced CyanogenMod’s Android source code into my laptop. It took ~12 hours to complete. The Internet connection I have is 6 Mbps and to download ~9 GB of source code shouldn’t take that long. So I created a 512 MB VM on my Digital Ocean account. I opted for the US$ 5/month VM which is a 1 Core, 512 MB RAM and 20 GB SSD. The VM DOES NOT have any swap space. ...

July 28, 2013 · Batista Harahap

Church and Technology

Had an eventful night and for the first time in my life, I am of service to my Church. A few weeks ago, I read about the Church’s Database team needing help in technical areas. Always wanted to somehow offer myself for service and the chance is now. Last week was the first meeting talking about what the general concepts are. I was surprised really. The Church elders always seem like they are a few generations behind but the meeting last week showed none of it. The participants are from different age groups and the discussions were very open minded in content and also most definitely concept. ...

July 24, 2013 · Batista Harahap

Lost and Found

Over the years, a lot has changed since I first venture into making opportunities available for myself. Throughout most of the years, there is only 1 thing staying consistent: hunger. Call it a hunger to better myself in more ways mostly personally which impacts directly into my professional life. My first intro to programming was as early as my first instinct to get to know how to speak English. Subtitles in past TV serials helped me a lot and my Grandparents, they talked in English sometimes but mostly left me to figure it out on my own. That was the first time I learned by myself how to understand a foreign language. ...

July 23, 2013 · Batista Harahap

Python 2.7.5 on CentOS 6.x

For the last few months, I’ve been coding in Python relentlessly. It’s new to me and it just makes sense. The one thing I really like is keeping codes and logic simple. You can comment Python’s OOP implementation but then again, everyone got a favourite right? Most of the servers I handle everyday are CentOS 6.x distros with Python 2.6.x preinstalled by the system. You DON’T wanna upgrade it through yum or any other method, you will break the whole system. So here’s to how get Python 2.7.5 working. ...

July 17, 2013 · Batista Harahap

Google Adsense and Facebook Ads Annoyances

I have been having questions every time I am served ads by Google Adsense for the last few months. With Adsense, essentially everywhere you go on the Internet, you are followed by it. Almost any website with ads I visited were serving them from Adsense. It is annoying! Not because of the nature of being served ads but because of being served the same ads over and over. My first reaction when I began realizing how annoying this has been was to figure how Adsense can pull something like this. The amount of data that would need to be analyzed at run time is just huge and I’m sure that’s still an understatement. Technically, this is one of the better feats of how technology on the internet is growing and implemented like never before. I mean, just a few years ago, Big Data isn’t as cool as it is today, back then terms like Data Warehouse is more common. Sounded more like SDLC while in college: Obsolete and enterprisey. ...

July 6, 2013 · Batista Harahap

Accident Happens

Just a few days ago, an accident happened. It was 4 AM and I am moving this blog over to CloudKilat. Already got the MySQL dump transferred, would need to have the whole site rsync-ed to the new server. So I did it. Without me realizing, I misplaced the source and destination ending up the new server’s home directory rsync-ed to the original server. A fundamental mistake. Luckily, as I said above, the MySQL dump is already safe at hand so to rebuild another Wordpress blog would be a matter of configurations. ...

July 1, 2013 · Batista Harahap

SSL Audit - Top Indonesian Websites

I came across Qualys SSL Labs a few minutes ago while reading through Hacker News. Immediately triggered my interest to question how secure top websites in Indonesia when it comes to their SSL. Urbanesia Since I am at Urbanesia, the first goto is clear. Typed in Urbanesia.com and the initial audit result was needs more work. So the audit results came back as a B. The server didn’t mitigate BEAST attack and that’s the main reason the grade was dropped. After a little digging up, the ciphers were the culprit and to mitigate the problem, nginx needs to be configured like below. ...

June 26, 2013 · Batista Harahap

Means To an End

It has been quite a while since my first Hello World in BASIC and I have since absorbed a few more languages to my liking. Back in college, C and C++ were 2 of the primary languages taught which is fine. But then, there’s this junior who asked me: “Why do I have to learn something nobody can see?”. That guy asked a very valid question. For some, crunching codes into you favorite editor with only you and the machine communicating is of the utmost fun but for others, it’s not as fun. So with this particular question, one can conclude that either you’re gonna code more in backend or frontend is pretty much answered, but that’s topic for another day. ...

June 21, 2013 · Batista Harahap

Universal OAuth 1.0 Provider in Python with Redis -€“ Stage 2

Been doing some more work with this OAuth 1.0 Provider and as it turns out, my implementation so too lean. Having said that, it’s exactly what I aimed for in the beginning: A simple lean OAuth 1.0 Provider implementation without getting buried over the concept of OAuth itself. This iteration still have more things to be introduced. As pointed by willhn at GeekTalk.in here, OAuth 1.0 allow the OAuth authorization data to be passed through HTTP Authorization Header and POST. RFC 5849 documentation states the standard here. At the current 0.3.0 version, Authorization data are picked up only from Authorization Header. ...

June 10, 2013 · Batista Harahap

Naive Bayes Classifier in Python v1.0.4

Just finished work on a Naive Bayes Classifier in Python. Was interested to benchmark Python performance with large data sets. Also had the chance to get to know more about Cython. Indeed as a C extension, it increased performance. So this project all started from my own implementation in PHP here. As it turns out, PHP is more performant than Python as of version 1.0.4 of this library. But there are differences. The Python module redis available at PyPi is not compiled as a C extension while the PHP counterpart is definitely a C extension. So the bottleneck here I suspect is with the Redis client. Expect some more enhancements to the Redis clients in future versions. ...

June 7, 2013 · Batista Harahap