Archive | Computer tech. 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

Machine to Machine Technology

M2M is about enabling the flow of data between machines and machines andultimately machines and people. Regardless of the type of machine or data, information usually flows in the same general way — from a machine over a network, and then through a gateway to a system where it can be reviewed and acted on.

Within that basic framework, there are many different choices to make suchas how the machine is connected, what type of communication is used, and how the data is used. Even though it can be complex, once a company knows what it wants to do with the data, the options for setting up the application are usually straightforward.

When it comes to the finer points of machine to machine communication, every deployment is unique. However, there are four basic stages that are common to just about every M2M application. Those components are:

  1. Collection of data
  2. Transmission of selected data through a communication network
  3. Assessment of the data
  4. Response to the available information

1) Collection of Data

The intelligence of a monitored machine may be as simple as a temperature sensor, level indicator or contact closure, or it may be an industrial computer system with a Modbus communication port.

The process of M2M communication begins with taking data out of a machine so that it can be analyzed and sent over a network. Monitoring a “dumb” machine may mean directly connecting to and monitoring one or more limit switches, contact closures or analog outputs. With an intelligent electronic device, it may be possible to simply connect to the equipment’s serial port and ask for the data.

The goal of the M2M hardware is to bridge the intelligence in the machine with the communication network.

An intelligent wireless data module is physically integrated with the monitored machine and programmed to understand the machine’s protocol (the way it sends and receives data).

If the monitored machine is configured as an intelligent master device, it may treat the M2M device as a simple wireless modem, loading it up with data and then instructing it to transmit that data to the network. If the machine is just a collection of switches and sensors or is an intelligent slave device, the M2M device can act as the master device. In this mode, it takes charge by periodically polling the device by reading the sensors and switches or by sending data requests through the serial port.

In a high end application like a major electric utility substation, it may be necessary to send a constant stream of real time data describing the machine or process. But in many cases, this is not necessary or worth the cost. In these cases, the M2M device should minimize the amount of data to be sent by constantly reviewing the data, comparing it against programmable
alarm limits or setpoints, and then only transmitting real time information when a reading is out-of-limits.

In addition the application will typically be programmed to send complete data updates on a time scheduled basis or anytime upon request from the web server.

2) Transmission of data through a communication network
There are several good options for transporting data from the remote equipment to the network operation center. The cellular network, telephone lines, and communication satellites are all common solutions.

The telephone may be the best choice if a line is already installed and the cost can be shared with other uses. Its disadvantage is usually the ongoing monthly cost and sometimes the cost and difficulty of installation.

Satellite may be the most expensive solution, but is often the best or only solution for monitoring equipment in very remote areas.

The wide spread coverage of the cellular network is the main reason M2M is getting so much attention these days, and it’s usually the method that fits best. There are several methods of sending data over the cellular network.
CDMA and GPRS are both widespread in North America today and their coverage areas continue to grow. The advantage of these systems is the ability to send large amounts of data frequently. The costs continue to drop.

Connecting to the cellular or satellite network typically requires the use of a gateway. A gateway receives the data from the wireless communication network and converts it so that it can be sent to the network operation center, often over the Internet or by a frame relay (phone line) connection. Data security features such as authentication and access control can be managed by the gateway and the application software.

The gateway also has an important role when the flow of data is reversed, going from a network to the machine for data requests and remote control. The gateway still functions as a protocol converter, but this time it takes high-bandwidth Internet protocols and converts them to low-bandwidth wireless protocols so the data is optimized for transfer over a cellular
network.

For companies deploying an M2M application, the gateway, the application software, and the data warehouse can be housed internally or can be hosted by a third party in a network operations center. In many cases, the hosted model may be more attractive because of the high cost involved in setting up the infrastructure and managing the network. Since the upfront cost is often lower with the hosted model, the payback can be faster and the solution can be deployed in less time.

3) Assessment of the data

Data from a company’s networked machines usually shows up in one of two places: in an enterprise software application the company already uses, or in a standalone system designed specifically for M2M.

Today’s deployments tend to favor standalone systems for applications such as remote monitoring because most M2M application providers specialize in providing these and there can be additional costs involved with integrating new data into existing systems.

Still, the vast majority of opportunities for M2M center around taking data out of machines and integrating it with operational data. For example, remote monitoring data can be incorporated into customer-relationship management systems for logging service and maintenance history.

4) Response to the available information
1. Whether the application is standalone or part of a larger system, the common goal is to automate a business process by automating the flow of data to the people and systems that have a need to know. The technology should enable sending the right data to the right place in the right way depending on the circumstances. It should also present data to individual users based on their specific function in the business process. For example, an HVAC system monitor might e-mail a routine maintenance request for an adjustment or lubrication to Siegfred and an emergency voice call for a thrown belt or tripped breaker to Roy.

A modern farmer who has automated irrigation systems operating in different locations can now be constantly aware of their operation based on short messages that are relayed to his pager or cell phone.

Of course, none of this technology is specific to M2M; the whole purpose of business software is to keep people from having to do everything manually. The new element that M2M brings to the picture is that now companies have new data to work with, data that is central to the way they operate and the value they provide.

article are crawled from http://www.m2mcomm.com/about/what-is-m2m/index.html

 

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

Ijin Kabid Informasi dan Publikasi KemDikNas terkait Aplikasi KBBI Reference

Terkait informasi release Aplikasi KBBI Reference Android App yang diposting awal November lalu, penulis sempat mengirim email kepada Kementrian Pendidikan Nasional Indonesia (badan.bahasa[at]kemdiknas.go.id) terkait ijin penggunaan API Aplikasi KBBI Daring (Dalam Jaring) mereka.

Pada dasarnya, email ini dikirim penulis dengan maksud untuk mendapatkan ijin formal mengenai penggunaan logic KBBI pada situs Kemdiknas. Sebagai developer aplikasi yang baik, tentu tidak etis jika kita menggunakan fasilitas buatan pihak lain tanpa ijin. Mereka tentu sudah mengeluarkan effort yang cukup besar (dana, SDM, dkk) untuk menghadirkan KBBI daring tersebut. Pastinya mereka akan senang jika hasil usaha tersebut dapat berguna dan dimaksimalkan kegunaannya oleh banyak pihak. Disini penulis berusaha untuk menghadirkan aplikasi KBBI kepada audiens yang lebih luas, pengguna layanan Mobile Android. Selain itu, tentu penulis “sedikit berharap” agar dapat menjalin kerjasama yang lebih membangun dengan pihak Kementrian Pendidikan Nasional Republik Indonesia 🙂

nb: aplikasi dapat diunduh pada https://market.android.com/details?id=net.antonrifco.kbbi . Penulis membuka peluang bagi semua pihak untuk bekerja sama dalam mengembangkan fitur-fitur aplikasi. Mohon kontak via email.

Berikut isi pembicaraan dengan  Kabid Informasi dan Publikasi Dra. Wahyu Trihartati, M.Pd.

—–

—– Original Message —–
From: “Anton Rifco” <email>
To: “badan bahasa” <badan.bahasa@kemdiknas.go.id>
Sent: Wednesday, November 9, 2011 10:43:14 PM
Subject: Informasi Publishing Aplikasi Gratis Android KBBI dalam jaringan (daring)

Dengan hormat,

Melalui email ini saya ingin memberitahu dan meminta ijin resmi dari Kemdiknas mengenai dirilisnya aplikasi Android KBBI online atau dalam jaringan (daring).
Aplikasi tersebut dapat diunduh melalui pranala https://market.android.com/details?id=net.antonrifco.kbbi

Sebagai informasi, saya mendevelop aplikasi Android ini dengan tujuan agar pengguna layanan mobile Indonesia dan Asing dapat dengan mudah mengakses Kamus KBBI Daring ciptaan Kemdiknas Indonesia. Aplikasi tersebut dirilis secara gratis, dan terbuka bagi masyarakat umum yang ingin berkontribusi untuk melalui pengayaan fitur.

Sekian pemberitahuan dari saya. Harap maklum.

Terima kasih.

—————————————————————–

Balasan:

On Nov 24, 2011 10:02 PM, “Badan Bahasa” <badan.bahasa@kemdiknas.go.id> wrote:

Yth. Saudara Anton R Susilo

Surat Saudara telah kami terima. Berikut jawaban kami atas pertanyaan Saudara.

Pada dasarnya, semua konten yang kami tampilkan dalam Laman Badan Pengembangan dan Pembinaan Bahasa (Badan Bahasa) bertujuan memberi layanan kepada masyarakat. Untuk itu, kami tidak berkeberatan bahwa Saudara telah membuat aplikasi KBBI android untuk kepentingan yang bersifat nonkomersial. Namun, apabila Saudara memperdagangkannya untuk memperoleh keuntungan, penentuan harga harus seizin Badan Bahasa.

Atas perhatian Saudara, kami ucapkan terima kasih.

Kabid Informasi dan Publikasi,

Dra. Wahyu Trihartati, M.Pd.

————————————————————

Balasan:

2011/11/24 Anton Rifco
Dengan hormat,

Terima kasih atas perhatian dan ijin Kemdiknas.

Saat ini aplikasi tersebut bisa didownload secara gratis, melalui Android Market http://market.android.com/details?id=net.antonrifco.kbbi
dan bersifat Open Source.

Sebagai informasi, saat ini aplikasi masih diusahakan untuk terus dikembangkan, agar bisa diintegrasikan dengan fungsi lainnya (translate, synonim, dkk).

Saran, kritik dan informasi dari Kemdiknas terkait ide pengembangan aplikasi akan sangat berharga bagi evolusi fungsi aplikasi.

Terima kasih

releaseV0.9 KBBI Reference, Android application

Untuk kebutuhan referensi terhadap kata/istilah dalam bahasa Indonesia, aplikasi Android KBBI Reference ini dapat diberdayakan. Aplikasi bisa didownload melalui Android Market.

Saat ini aplikasi sudah bisa melakukan lookup istilah dalam bahasa Indonesia untuk dicari definisinya pada database Kamus Besar Bahasa Indonesia, oleh Departemen Pendidikan Republik Indonesia. Kemudian, aplikasi juga akan mentranslate defisini tersebut ke dalam bahasa Inggris (untuk keperluan referensi silang). Saat ini, translasi ke bahasa Inggris tersebut menggunakan API Microsoft Bing Translate.

Ke depannya, banyak fitur tambahan yang ingin diimplementasi, diantaranya:
1. Saving historical lookup to persistence.
2. Personalisasi translasi ke dalam bahasa pilihan terkonfigurasi.
3. UI enhancement: pilihan default Activity ketika aplikasi startup (Dashboard atau halaman lookup), gesture input, dll.
4. Text to Speech dan Voice Input
5. Reverse lookup, dari bahasa pilihan ditranslate ke bahasa Indonesia, kemudian dicari definisinya pada database KBBI.

Bagi teman-teman yang tertarik untuk berkontribusi / untuk enhancement aplikasi, bisa menghubungi melalui email antonDOTrifcoATgmailDOTcom

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