Coding Wisdom #1

  1. If it’s not tested, it doesn’t work.
  2. Source control is your friend – make sure you use it.
  3. Just because you wrote it doesn’t mean you own it — don’t be offended if someone else on your team has to change your code.
  4. Don’t reinvent the wheel, library code is there to help.
  5. The fastest code is code that’s never executed — look for early outs.
  6. Just because you didn’t write it doesn’t mean it’s crap.
  7. Source code is just a hint to the compiler about what you want to do, it won’t necessarily do it (e.g. You might declare a function as inline but the compiler doesn’t have to obey).
  8. Code that’s hard to understand is hard to maintain.
  9. Code that’s hard to maintain is next to useless.
  10. “Whilst I’m editing this file I’ll just…” is a great way to introduce feature creep and bugs.
  11. The neater your code layout, the easier it is to read. The easier it is to read, the easier it is to understand and maintain.
  12. Code is not self documenting. Help others by adding comments to guide them. You may understand it now but what about in 5 years time?
  13. Bad Code can and will come back to haunt you.
  14. There is no such thing as a 5 minute job. It’ll always take at least half a day.
  15. Magic numbers are bad.
  16. Constants don’t take up storage, they’re compile time text substitutions.
  17. Project management will always want you to do twice as much in half the time.
  18. If there is a bug, the user will find it.
  19. A code review is not a criticism.
  20. It’s not the quantity of code that matters, it’s the quality. Any idiot can bang out 40k line of code but that doesn’t make it fit for purpose.
  21. The true cost of poorly written code is in the maintenance.
  22. Eat your own dog food — fixing bugs in your own code helps you code better and improves your understanding.
  23. Code rots over time.
  24. If the user didn’t ask for a feature, don’t add it.
  25. If it’s not tested, it doesn’t work (yes, I know I’ve included that twice but it’s really important)

Quoted from: Drew Eckhardt @ What are some of the most basic things every programmer should know?

Uang Pecahan Rp. 2000

Hari ini (9 Juli 2009), Bank Indonesia resmi mengeluarkan pecahan uang baru senilai Rp. 2000.

Uang pecahan baru tersebut bergambar Pangeran Antasari (Pahlawan Nasional asal Banjarmasin, Kalimantan Selatan) dengan gambar bagian belakang Tarian Adat Dayak. Uang tersebut akan berlaku sebagai alat pembayaran yang sah mulai tanggal 10 Juli 2009. Pemilihan gambar pada uang tersebut mengacu kepada desain uang kertas sebelumnya yang bertemakan Pahlawan Nasional. Hal ini sebagai bentuk apresiasi kepada para pahlawan dan untuk turut serta melestarikan budaya bangsa.

Uang kertas baru pecahan Rp2.000 berwarna dominan abu-abu dengan unsur pengaman berupa tanda air bergambar Pangeran Antasari dengan benang pengaman yang tertanam di kertas uang dan bertuliskan BI2000 berulang-ulang yang akan memendar merah di bawah sinar ultraviolet. Uang kertas pecahan baru ini juga mengakomodasi kebutuhan para tuna netra dengan menyediakan kode tertentu (blind code) di samping kanan bagian muka uang yaitu berupa kotak persegi panjang yang dicetak secara intaglio.

Pecahan 2000 rupiah

Pecahan 2000 rupiah

sumber asal duratia.net

Masalah baru buat para programmer
Programmer pasti tau program untuk menghitung uang kembalian. Salah satu hal yang kadang bikin ribet adalah pecahan uang Rp. 20.000. Nah sekarang, ada pecahan Rp. 2.000. Program untuk menghitung uang kembalian pasti tambah panjang. 😀

Programming is like sex …

Programming is like sex, one mistake and you have to support it for the rest of your life.

Michael Sinz

Though I don’t really understand what it means, but I do agree on the last part: one mistake and you have to support it for the rest of your life. Because, it really happen to me. 😦 (sad)
I have a program which I made 10 years ago, the first year I learn programming. The program was good. But, after years of learning process, I realize how bad my code on that program.
Now, after 10 years, the bug is enormous and many people still depend on my program.

What can I do? I can’t tell them to stop using my program. But, can’t say no to them when they ask me to fix the error. 😦 (sad)

Dibutuhkan: Staff Programmer

JayaMandiri GemaSejati (JG Motor), perusahaan dibidang sales & service untuk YAMAHA. Sehubungan dengan perkembangan perusahaan dibidang teknologi informasi. Saat ini kami membuka lowongan untuk staff programmer dengan ketentuan-ketentuan umum sebagai berikut:

  • Memiliki kemampuan programming PHP & JAVA.
  • Familiar menggunakan program-program berbasis OpenSource & Networking
  • Bisa bekerja dalam tim
  • Usia max 30 tahun

Bagi yang berminat, lamaran bisa dikirimkan ke:

JayaMandiri GemaSejati Motor
Dept. HRGA
Jl. BKR 5
Bandung.

Lamaran diterima selambat-lambatnya pada 23 January 2008

MS Access – MySQL Zero-Length String Problem

I use MS Access to connect to my MySQL database, using MyODBC.

Here is a “simple” problem that give me quite a headache.

  • I create a table on MySQL database with VARCHAR field, NOT NULL
  • I link my table on my MySQL to MS Access.
  • I create a form based on that table.
  • Somehow, MS Access always treat Zero-Length String as NULL. I cannot find any option to make MS Access Zero-Length String value as “Zero-Length String”. So, if I try to empty a control that links to a VARCHAR field, an error pop up with message: “You tried to assign Null value to a variable that is not a Variant data type”.

For a while, I come up with this solution:
Set form KeyPreview property to Yes
Then insert some code in Form_KeyUp:

Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
If Len(ActiveControl.Text) = 0 Then ActiveControl = ""
End Sub

It works for me. I wonder if someone out there can come up with better solution.
Anyone?

First Look on SOAP

It’s my first time a I learn Simple Object Access Protocol (SOAP). Gilaaaa…! Pusing! 😦

Tehnologi Internet … terus berkembang. Berbagai standar baru bermunculan. Klo ngga mau belajar … ketinggalan dah! Kebetulan, lagi butuh bikin program buat sinkronisasi data dilokal & internet pake PHP. Jadi … SOAP is the answer! Tapi … Oh my … puyeng neh! … I hope I can make it on time, before deadline.

Klo misal punya cewe yang bisa PHP + WSDL + SOAP … bahagia kayaknya! bisa jadi temen curhat.

Programmer Needed

Dicari!

  • Programmer, freelance. Bisa menjadi rekan kerja untuk beberapa project pembuatan program.
  • Durasi pengerjaan project diperkirakan 1 tahun.
  • Diharapkan menguasai DELPHI (tapi program laen juga boleh).
  • Berdomisili di Bandung.
  • Mampu bekerja sebagai team.
  • Pengalaman tidak penting, yang penting tidak mudah putus asa.
  • Optional: Wanita, berpenampilan menarik, max 27 tahun.

Bagi yang berminat, silahkan tinggalkan pesan pada komentar dan mengisi kolom e-mail pada komentar.

ITB – JSP Workshop – :( agak me********an

Write once, run every where.

Begitu katanya moto dari JAVA.
Sabtu, 2 Desember 2006, jam 8.00-15.00. ITB JSP Workshop. Sudah sejak lama saya ingin mempelajari pemrograman basis JAVA, dan dilingkungan kerja saya, agak sulit menemukan “teman belajar”, yang bisa JAVA. Jadi, begitu saya mendapat undangan untuk workshop ini … saya cukup antusias untuk mengikuti workshop ini, jadinya untuk satu hari ini saya izin cuti kerja.

Biaya pendaftaran Rp. 35.000, Relatif murah. Workshop diadakan oleh HMIF ITB, LABTEK V ITB.

Setelah lebih dari 5 jam utak-atik JSP ini, … akhirnya saya memutuskan. SAYA TIDAK AKAN MENGGUNAKAN JAVA (termasuk juga JSP, tapi mungkin kecuali klo emang bener kepepet :D).

Menurut saya JSP cocok bagi Anda, hanya jika:

  1. Anda sebelumnya menggunakan JAVA sebagai bahasa utama Anda.
  2. Mengembangkan software berskala enterprise yang menggunakan berbagai macam perangkat dengan platform yang berbeda.
  3. Anti-Microsoft & nge-fans banget dengan OOP.
  4. Butuh tantangan lebih.

Saya rasa, bagi Anda yang sebelumnya adalah pengguna PHP, VB, DELPHI, atau … bahasa lainnya, mempelajari JAVA (untuk keperluan profesional) rasanya akan cukup sulit.

Disamping konsepnya yang BERBEDA, gaya pemrogramannya pun “total” berbeda. Dan untuk programmer setua diriku ini … rasanya agak “sulit”. Saya lebih baik mempelajari .NET dari pada harus mempelajari JAVA. .NET walaupun sama beda, tapi setidaknya developer tools nya lebih baik dibanding JAVA. Lagi pula (dari apa yang saya pelajari tadi), saya merasa untuk bidang perkerjaan saya dibidang web development, JSP tidak jauh lebih baik dari pada PHP. Jadi dari pada mempelajari hal baru yang tidak jelas, lebih baik mengasah yang sudah ada.

Tidak ada yang salah dengan JAVA. Karena JAVA sendiri di desain untuk keperluan cross platform, jadi bagi orang yang kurang faham mungkin akan tampak agak ribet. Tapi, (menurut pendapat pribadi) memang jadinya untuk melakukan hal “kecil” jadi butuh kerja “lebih” (kalau dibanding bahasa pemrograman lain).

JAVA sangat OOP, relatif butuh lebih banyak coding. Tapi, untuk developmen jangka panjang dan sistem yang dikembangkan oleh banyak orang, hal itu sangat berguna. Tapi, … untuk programmer freelance (seperti saya) yang ngejar cepet, rasanya agak kerepotan. Jadinya saya lebih memilih developer tool yang lebih easy to use, simple (tapi tetap powerfull).

Terlepas dari soal JAVA-nya itu sendiri. Saya … agak sedikit kecewa dengan workshop kemarin (maaf). Saya merasa para panitianya kurang siap dalam mempersiapkan workshop ini. Saya percaya mereka adalah mahasiswa-mahasiswa terbaik dibidangnya. Tapi, saya pesimis, saya percaya mereka belum pernah benar-benar mengunakan JSP untuk membuat suatu project yang serius. Malah beberapa panitia gagal menjawab pertanyaan sederhana seputar pemrograman, misal bagaimana caranya konversi data string ke integer, atau penanganan data yang di submit menggunakan method POST dan GET. 😦 mengecewakan!
Biaya sih memang murah, tapi kalau di bandingkan dengan waktu yang harus saya berikan (6 jam lebih) untuk workshop ini … rasanya agak rugi. Kalau mau ngulik sendiri … 1-2 jam juga bisa dapet. 😦

Tapi meskipun demikian, bukan sesuatu yang kecil kalau mereka bisa memanage suatu acara yang terbuka untuk umum seperti itu. Kerja mereka cukup baik, tapi semoga saja workshop laen kali lebih baik lagi ;).

Tapi, meskipun demikian, ada 1 pelajaran penting yang saya dapat hari ini. GW GA AKAN PAKE JAVA, kecuali klo emang kepepet.