Archive | geeking around RSS for this section

Accomplished SaaS course from UC Berkeley

Earlier this whole March, I joined an online free course from University California, Berkeley. The topic is Software as a Service, an interesting issue that just become popular lately. The program is hosted in https://www.coursera.org/ , as a part of joint experiment by three top Universities of USA, Stanford University; University of Michigan; and UC Berkeley.

For SaaS course itself, I think they prepared it quite good that it covers enough part of the issue in just 5 weeks. Thanks to Armando Fox and David Patterson, two professors of UCB, as with their efforts, this great online course is possible. The program itself is delivered in Video and .ppt presentation materials that covers precisely five chapters; from introduction to Software as a Service to some kinds of agile development methods, which are Behaviour Driven Development and Test Driven Development.

Throughout the course, the two professors oblige students to use Ruby (and Rails) as a language for assignment projects. Two choices are whether we want to work in a pre-built Virtual Machine or from the Amazon Web Service (they partnered with AWS to give away $10 voucher for students who passed first assignment). It also encourages students to use heroku, a popular online Platform as a Service (PaaS), that also supports Ruby on Rails for deployment.

There are four assignments and three quizzes that will determine students’ final score. For the first assignment, it’s designed to make the students get familiar with Ruby. To be frank, this Ruby thing is new to me, and it took one full weekend for me to get used with the language (it’s more flexible than Python, good but a little bit confusing). Second assignment asked students to improve a “Rotten Tomatoes”-like website with added functionalities (this one is called Rotten Potatoes 😉 ), and deploy it to the heroku. Btw, here’s my attainments for the project http://narutocuk.herokuapp.com/movies. Last but not least, the third and last assignments tested us the knowledge of Behaviour Driven Development and Test Driven Development by using handy frameworks called cucumber and RSpec. So, in this context, during a software development, the developers (or teams) are encouraged to develop set of tests first before actually developing the functionalities. Also, cucumber is a great tool where we can define set of tests in plain English text:

Scenario: restrict to movies with 'PG' or 'R' ratings
 Given I check the following ratings: PG, R
 And I uncheck the following ratings: G, PG-13, NC-17
 When I press "Refresh"
 Then I should see the following ratings: PG, R
 And I should not see the following ratings: G, PG-13, NC-17

This cucumber tool depends greatly on extensive Regular Expression string parsings. It helps to minimize technical gap between development team and the clients. And as for the score, I did a quite good job on the assignments (deducted points on last assignment as I submitted it late, and perfect score on others), but unfortunately not on the quizzes. I didn’t realize that it was a one-time attempt test, that when I did it and had an errand, I left many numbers unanswered and it gave me a bad score.

Anyway I finished the course until the end, and roughly two weeks after the last quiz, a mail came to my gmail with a Statement of Accomplishment in pdf format. I think it’s fair enough for me, and I got a new knowledge too 🙂

Here’s how the Certificate looks like: SaaS Class Statement of Accomplishment

Advertisements

Publishing Open Source Project: Android Coming Holidays

git remote add origin git@github.com:antonrifco/Coming-Holidays.git

After finalizing fix and minor enhancement, now Coming Holidays Android App is Version 1.0. Good news, it’s also an Open Source Project now. It is hosted on https://github.com/antonrifco/Coming-Holidays
or, directly from github console: git@github.com:antonrifco/Coming-Holidays.git

Actually the application itself is quite simple. I made it only one week on after office hours. Even so, I hope by publishing it as Open Source, I can share the experience of developing Android Application with other Android die Hard fans.

Description about Coming Holidays v1.0 ( https://market.android.com/details?id=net.antonrifco.comingholidays ):

Waiting for Holidays?!? Install Coming Holidays App to track upcoming Holidays!
Coming Holidays helps users to track nearest Holidays (Public and Private one). A nice-looking countdown should inform users how near they are from a free fooling around day. Finally, an annoying daily alert at stress-peak time (2p.m) will persistently remind People that life is not Yet over. There’s still Upcoming Holidays..

About Coming Holidays Version 1.0:
-. Fix “Alert get up on random time”
-. Fix “Nearest holiday should always days after today 00:00”
-. Fix Incomplete Deleting leave problem
-. Project hosted as Open Source on https://github.com/antonrifco/Coming-Holidays yeayy!

Announcement Coming Holidays Android App Release Candidate-1

Image

Waiting for Holidays?!? Install Coming Holidays App to track upcoming Holidays!
Coming Holidays helps users to track nearest Holidays (Public and Private one). A nice-looking countdown should inform users how near they are from a free fooling-around day. Finally, an annoying daily alert at stress-peak time (2p.m) will persistently remind People that life is not Yet over. There’s still Upcoming Holidays..

What’s in this version:

Version 0.9:

  • Keep track Holidays from following countries: China, Germany, France, Hongkong, Indonesia, India, Japan, South Korea, Singapore, UK, US
  • Automatically detect location (country) based on MCC of GSM (No GPS required)
  • Track upcoming Holidays and give Countdown
  • Able to add Personal Leaves to the list of Holidays
  • Give alert for Holidays until the next 3 days. Alert Notification will start at 2p.m local time.
  • Fun!

Download at: Android Market

le Me: Berburu Roshan

Here’s a photo of le Me, imagining as a Warcraft DotA hero, Jah’rakal just before fighting with the Roshan. I used to play DotA a lot during my college time and early work life as a freshy. I realized that this had taken much of my time, so I decided to quit. So, here’s a post to memorize those fun time with friends!

“Jah’rakal: Hunting Roshan”

The Troll Warlord is a pure fighter, able to attack from a distance or up close, where he becomes stronger overall and may also bash. He capitalizes on attack speed, being able to strike and move quickly, as well as enhance his allies to sometimes do the same. Jah’rakal can also Blind his opponents, making it difficult for them to land attacks. Additionally, successive attacks landed on a target enable greater focus for Jah’rakal, greatly increasing his attack speed. If he is able to acquire items and momentum soon enough, there aren’t many fighters who can best him.

nb: the picture of  le me is taken in Henderson Wave, Singapore.

Analisa terhadap bug “Could not fetch content, sorry” dari Twitter SMS Telkomsel, Axis, dan Esia

Belakangan, beberapa teman yang saya follow pada jaringan sosial Twitter memposting kalimat yang unik dan serupa pada timeline mereka, yakni “Could not fetch content, sorry”

Beberapa hal seragam pada “pelaku” postingan tersebut ialah:
1. Posting dikirim via txt, sebuah aplikasi twitter SMS kerja sama antara twitter.com, third party Content Provider, dan Operator telekomunikasi.
2. Kebanyakan dari mereka merasa pernah terdaftar pada layanan di atas. Entah melalui pendaftaran REG sms, maupun paket bundling nomor prepaid.
3. Dari yang saya tahu, teman-teman yang mengalami masalah ini, mendaftar pada layanan twitter SMS dari Telkomsel, Axis, dan Esia (atau ada yang lain?)

Berikut adalah analisa blackbox yang saya pikirkan (tanpa mengetahui arsitektur solusi sesungguhnya masing2 operator):
-. Solusi twitter SMS ini dikerjakan oleh third party dari Operator telekomunikasi yang bekerja sama dengan twitter.com
-. Sms MO (request) yang masuk dari pelanggan (melalui suatu shortcode) dilanjutkan operator ke Content Provider via API HTTP
-. Sebagian atau seluruh solusi SMS gateway dari Operator ini menggunakan Kannel

Dari mana sesungguhnya text “Could not fetch content, sorry” ini berasal?

Text tersebut sebenarnya berasal dari Kannel. Ini merupakan known bug dari aplikasi SMS gateway tersebut ketika berusaha untuk mem-forward isi sms ke sebuah HTTP URL, namun webserver-nya me-redirect request ke alamat lain. Sampai saat ini, Kannel belum bisa menangani use case tersebut ( www.kannel.org/pipermail/users/2006-August/000356.html)

Jadi, untuk menuju pada solusinya, ketiga Operator tersebut (atau ada yang lain?) harus menganalisa apakah use case yang disebutkan di atas terdapat pada layanan Twitter SMS ini.

-just my 2cents-
CMIIW

Suatu hari di Kebun Binatang

Suatu hari di kebun binatang…

Cula

A: Nyamm…nyamm…nyamm…. Masbro, masbro. Gmana nih kalian pada betah apa di tanah rantau begini? Enak pulang kampung kali ya, bisa garap sawah enya ama engkong yang luas sepanjang mata melihat. Bisa jadi tuan di rumah sendiri gituhh…

B: Hmmm,,, iyeee juga ya masbro! Kagak betah gw disini. Tanahnya sempit dan semuanya serba mahall! Udah gitu ngesot dikit udah negara sebelah ajee.

C: Ah eluu eluu padee,, enakan juga disini! Nyari makan ga perlu berantem dulu. Mau jalan2 gak pake macet. bisa naek MRT kemana-mana serba deket dah! Apalagi disini hidupnya lumayan nyaman. Ntu liat deh si Monyet, sampe makan ajee disuapin. Asikk dahhh!

nyemott

Monyet: Ahhhh,,, berisik yee elu elu pade. nyamm…nyamm…!

begitulah ceritanya… 🙂

Note: Kedua gambar tersebut diambil di Kebun Binatang Singapore di suatu hari di bulan September 2011 🙂

The Reconstruction of Social Mindset

So in the era of information, people get used to engage on social media apps, like twitter. There, they can do almost anything the want, gather as many information they like, and especially to share any idea or data that they think useful,  cool or even funny. Here’s the main power, they actually can choose to follow any friends that are popular, or tends to give good information to them. Often, they stop following another users that give trashy tweets or words. Unconsciously, this list of information is shaping their mindset. So, if they read information about good promotion in a nearby place, most probably they would go there. It’s a big deal, I think. This can help us to unravel the mystery of marketing science. On another word, if we can compile the list of what a twitter user read on their twitter client, we can (with a help of assumptions) extract their mindset. Moreover, if they are active users, the process of this called “mindset extraction” can be better accurate.

Here, the idea is to create a portal that inputs a valid twitter username, then tries to compile the list of tweets from its following users that they possibly read (in a realtime, of course).

timeline

Potential obstacle

So after we know who are the twitter users that a user is following, next action is to compile all the tweets in a timeline. So, what if one of the users is a private users.

-> Here we need to create a dummy twitter user that tries to follow all the user in the twitterland. So that our engine is always able to see what any people say in twitter, via this dummy user.

“Actually, twitter limits the number of following that a user can do (compared to its follower)”

Another problem is when the user blocks tweets from one or more users from their twitter client, we aren’t exactly able to know. It’s become a problem because we made assumption that these tweets also shape the mindset, while actually they are not (because the users never see these tweets). Maybe a very complex Artificial Intelligent (AI) algorithm could solve the problem. Basically it is to smartly assume the interaction between a user (A) and another user that it follows (B). For instance, supposed that if user B mentions user A in the tweets, and they always be ignored. Here, we can roughly assume that the user B is blocked by user A. It’s a very raw example actually.

I don’t know exactly how to implement this, maybe just like I said before, it’s complex! 🙂

*this simple idea is too fancy, I know, to reach the goal of extracting mindset from people. But maybe starting from this basic idea, and to expand it to even bigger realm of logical, it becomes possible.

*twitter.com has actually made this possible to see what other user see on their timeline. Goto: http://twitter.com/username ,choose tab Following, then click View as Following.