Archive for April, 2008

Python Tips

Setelah beberapa waktu bekerja dengan Google AppEngine, akhirnya saya memberanikan diri untuk menulis sedikit tips tentang bahasa pemrograman Python

  1. Gunakan spasi sebagai indent. Apakah itu 4 spasi (umumnya) atau 2 spasi atau 8, terserah anda. Jangan gunakan tab. Ini untuk memudahkan mendebug aplikasi biar anda pindah2 platform, dengan konsisten menggunakan indentasi spasi tertentu, biar kode anda di transfer kemana2, dibuka dengan editor apa aja, indentasi tetep N spasi.
  2. Python itu case-sensitive. true adalah identifier, sedang True adalah boolean bernilai benar. Begitu juga dengan False dan None
  3. Assigning Multiple Values anda bisa:
    (a,b,c) = (1, 2, 3)
  4. Manfaatkan List Comprehension, daripada:
    lines = 'Hello World'
    words = []
    for word in lines.split(' '):
        words.append(word.strip())
    

    anda bisa juga menggunakan:

    words = [word.strip() for word in lines.split(' ')]
  5. Scoping
    i = 1
    def do_it():
        i = i + 1
    

    program diatas akan gagal karena anda memodifikasi variabel global / diluar fungsi do_int. Ini implementasi yg bener:

    i = 1
    def do_it():
        global i
        i = i + 1
    
  6. Terakhir: Easter Egg
    >>> from __future__ import braces
      File "<stdin>", line 1
    SyntaxError: not a chance
    

Wednesday, April 30th, 2008 | Tags: Articles, python | 2 Comments

Customer Service

Sejak saya mendapat account Google Appengine, saya ga berhenti kagum dengan implementasi dan operasional dari perusahaan satu ini. Pelayanan yg lumayan memuaskan, sekalipun AppEngine adalah hosting gratisan. Contoh kasus:

Pada tanggal 28 April 2008 2:31 pagi, saya dapet email dari google-appengine-downtime-notify karena aplikasi sempet mengeluarkan error 500 terus2 an selama 20 menit. Begini isi email nya:

On April 27th at 11:38am Pacific about 40% of requests to App Engine
applications were returning 500s for a period of 20 minutes that ended
at 11:58am Pacific time. We have identified and resolved the issue. We
apologize for any inconvenience, please let us know if you have any
questions.

Email ini bertanggal: Sun, 27 Apr 2008 12:31:18 -0700 (PDT), diterima oleh gmail saya tanggal: Sun, 27 Apr 2008 12:31:39 -0700 (PDT). Berarti segera setelah permasalahan teratasi, CS nya appengine mengirimkan informasi ke customernya kalau ada masalah dan udah di atasi. Padahal saya sendiri ngga tau apakah appengine saya down atau tidak. Salut terhadap pelayanan si Google AppEngine Team. Biar gratisan tapi serius menanganinya.

Semoga hosting2 di Indonesia mau meniru perilaku Google ini.

PS:
Bukan posting sindiran.

Monday, April 28th, 2008 | Tags: Rants, Weblog | 3 Comments

gFreeComment - Comment Sharing App

Setelah semedi kira2 3 hari 3 malam dari terakhir saya menerima email ini, akhirnya preliminary release dari aplikasi saya yg berbasis appengine kelar udah. Namanya gFreeComment, konsepnya adalah sharing comment. Mirip shoutbox yang biasa kita liat di sidebar blogger2, bedanya adalah data tersimpan di google.

Btw, thanks buat developer Django karena telah membuat framework yg bisa di implement dan sangat mempercepat proses development aplikasi

Link: http://gfreecomment.appspot.com/

NB:
Untuk testing silahkan kesini

Tuesday, April 22nd, 2008 | Tags: Weblog | 1 Comment

Re: Invitation to try Google App Engine

Seingat saya, sekitar pertengahan minggu kemaren, saya mendaftar untuk mendapatkan account Google App Engine. No reason, cuman iseng aja. Eh, emailnya datang hari ini dari Google, saya di approve.

Date: Fri, 18 Apr 2008 12:35:33 -0700
Received: by XX.XXX.XXX.XX with SMTP id t10mr2365785ane.XX.1208547333173; Fri,
	18 Apr 2008 12:35:33 -0700 (PDT)
Subject: Invitation to try Google App Engine
From: appengine.noreply
To: ferdhie

Hello,

Thanks for signing up to try Google App Engine!  Your account has been
activated, so you can begin building applications!

To start creating applications with Google App Engine, simply follow
this link (you may need to sign in with your XXXXXX Google Account):

http://appengine.google.com/

Thanks!
The Google App Engine Team

Masalahnya, saya belum kepikiran mo bikin apa. Jadi saya minta pendapat pembaca semua, enaknya bikin apa? Dalam pemrograman Python tentunya, secara appengine hanya men-support python.

Saturday, April 19th, 2008 | Tags: Weblog | 7 Comments

Work at Home

Kemaren, 18 April 2008, saya mencoba untuk melakukan sesuatu yg belum.. eh pernah ding, cuman belum ta tulis di blog, mencoba untuk work @ home. Yah, sekali2 kan gpp.. Sebenernya bukan sengaja sih, Tapi secara baru tidur jam 4 pagi, bangun nya molor, sekitar jam 11. Begitu bangun, bikin kopi trus telpon manajer. Bilang: "Saya ga ngantor hari ini bos, td malem baru tidur sekitar jam 4." Dia jawab: "OK, ndang waras…" Eh, sapa yg ijin sakit?? Aneh…

Anyway, back to topik. Work @ home ternyata bisa menambah produktifitas. Saya pribadi jadi lebih konsen untuk coding. Daripada di kantor yg diributkan dengan masalah2 sepele semacam, leptop temen yg heng, atau udara panas karena AC ga bisa nyala secara kalau di nyalakan listrik langsung njeglek, dst

Hasilnya, project saya kelar… Tinggal upload doang, eh tapi ga bisa kalo lewat speedy. Hrs dr IP kantor. Nvmind …

Friday, April 18th, 2008 | Tags: Weblog | 4 Comments

3 Yg Perlu Dipunyai IT Perusahaan

IT Departemen dalam sebuah perusahaan, menurut saya perlu memiliki 3 fasilitas di bawah yang akan saya sebutkan untuk bertahan.

  1. E-Mail & Mailing-List

    Informasi yang penting bisa disampaikan secara langsung dari Manager ke bawahan tanpa harus bertemu muka. Seandainya manager lagi jalan, bawahan lagi sibuk ngoprek kerjaan di kantor, langsung aja kirim email untuk ini dan itu. Email juga terdokumentasi sehingga dokumen lama ngga akan hilang.

    Untuk mailing list berguna banget apabila pengumuman itu bersifat umum. Daripada ngetik satu per satu alamat email kolega anda, mending kirim sekali di milis.

    Jadi, apabila perusahaan anda belum punya email kantor, segera daftarin deh, banyak kok yg gratis semacam Google Apps

  2. Source Control

    Software semacam Subversion atau CVS yg free sudah bisa membantu team IT dalam bekerja secara team. Karena tanpa ini akan sangat susah bagi programmer itu mengerjakan task-task nya tanpa harus mengoverwrite kerjaan orang lain. Dan susah bagi team leader nya untuk me-review kerjaan dia.

    Lagipula, dengan software ini, mudah banget untuk melihat perubahan-perubahan, source dari versi ke versi, dsb. Instalasi software sangat mudah, cost nya free dan ada release untuk setiap sistem operasi. Jadi ga ada ruginya kan? Selain 10-30 menit waktu instalasi dan sedikit membaca manual nya.

  3. Framework

    Implementasikan framework-framework yang sudah ada, atau bikin framework sendiri. Keuntungannya menggunakan framework adalah ketergantungan perusahaan pada programmer tertentu akan hilang bila framework sudah ada. Cukup cari programmer baru yang mampu mempelajari framework internal, atau punya kemampuan framework X. Keuntungan lain adalah dengan framework, programmer yg kurang kemampuannya di bahasa pemrograman tertentu akan sangat terbantu produktivitasnya karena ngga dia ngga perlu mempelajari bahasa ini dalam waktu singkat. Cukup API dari framework saja. Tambahan lagi: Reuse. Komponen di framework selalu bisa di gunakan kembali di project2 lain.

Kali ini pas 3. Tapi kalau dirasa perlu, akan saya tambahkan di masa yang akan datang.

Monday, April 14th, 2008 | Tags: Articles | 9 Comments

3 Skill Tambahan Buat Programmer

Seorang programmer, selain harus bisa melakukan tugasnya (memprogram), juga paling ngga harus memiliki 3 skill tambahan dibawah untuk mendukung tugas2 nya. Antara lain:

  1. Mengerti SQL

    Dalam memprogram, sering banget kita bersinggungan dengan relasional database. Operasi database hampir selalu pakai SQL, kecuali jika kita menggunakan database model lain semacam SimpleDB, LDAP atau CouchDB, lain ceritanya. Tanpa pengetahuan mendasar tentang SQL, index dan trik2 database lain, aplikasi yang dihasilkan menjadi kurang optimise

  2. Mengerti Jaringan

    Apa itu IP, bagaimana konsep untuk mengirim data dan menerima data dari jaringan, port dan basic routing adalah skill dasar jaringan yang perlu dipelajari oleh programmer sebagai tambahan persenjataan untuk menghajar problem2 dalam aplikasinya.

  3. Regular Expression

    Pattern matching, akan sangat mempermudah kita dalam melakukan validasi data dan operasi string dengan efisien. Jadi, segera pelajari Regex bila anda belum.

  4. Tentang Sistem Operasi

    Memory (simpan variabel ini di heap atau tinggalkan saja di stack), File system (Untuk write file di *nix perlu write permission, maksimum jumlah file dalam direktori di BSD adalah 32k), Proses (apa itu proses, apa itu thread) dan sedikit tentang concurrency (Locking file, locking database table / rows, semaphore, mutex). Ini vital bagi seorang programmer, kita bikin aplikasi yg berjalan di sistem operasi. Jika kita ngga tau bagaimana sistem operasi itu bekerja, bagaimana kita akan membuat aplikasinya??

  5. Tentang Version Control

    Apakah CVS, Perforce, Subversion atau Source Safe, silahkan pelajari itu. Software ini sangat membantu dalam bekerja dan mempermudah bila kita bekerja secara team.

  6. (Buat Web Programmer) Protokol HTTP

    Memprogram aplikasi web tanpa mengetahui bagaimana seluk beluk protokol HTTP adalah konyol.

Eh, kok lebih dari 3, gpp… Anggep aja bonus.

Sunday, April 13th, 2008 | Tags: Articles | 7 Comments