Friday, June 18, 2010

Error 34 minutes remining waktu install Windows Server 2003

MAAAAAAAN... this is really nuts!

Beberapa waktu yang lalu (gak terlalu lama - belum ada sebulan) - saya membeli komputer untuk server; Processor Intel Core 2 Quad Q8400 (2.66GHz, FSB 1333MHz, L2 Cache 4MB) dengan mo-bo Gigabyte GA-G41M-52L.

... dan waktu saya install Windows Server 2003 (masih 32bit) --- SELALU HANG saat 34 min remaining. Berkali-kali dicobain; gagal terus. Yang terakhir malah saya biarkan hang sampai 45 menit. Tapi si komputer tetap hang.

Support Microsoft seperti biasa tidak membantu. Mereka bilang itu karena driver SATA2 harus di load dulu. Dan untuk me-load, perlu punya driver SATA2 DALAM BENTUK floopy disk! HAAAH?!!! Bweeeek.... floppy disk! dimana kita bisa mencari floppy disk sekarang? Tidak bisa pakai CD ROM/DVD karena 'sudah by design'. Kalau mau pakai CD, driver SATA2 harus di-inject dengan mendownload program (bla-bla-bla... bingung deh pokoknya). Kalau mau mengerjakan sendiri, silahkan lihat article KB sekian-sekian.... (makin bingung).

Dalam keputusasaan, saya coba untuk menginstall Windows XP dulu, baru rencana-nya upgrade ke Windows Server. Harapan saya, semoga driver SATA yang diinstall di XP akan bisa dimanfaatkan oleh program setup Windows Server 2003. Ternyata masih gagal.

Jalan-jalan ke internet juga menghasilkan hasil yang hampir sama. Rata-rata bilang error di menit ke-34 itu karena hardware; berarti SATA2 juga yang jadi masalah. Nah, tapi ada satu forum, yang bilang bahwa itu karena setup Windows 2K3 ada masalah dengan keyboard USB lama! Na lho! Saya masih  pakai keyboard favorite saya -- dan memang betul. Ini keyboard USB lama. Iseng-iseng, saya ganti dengan keyboard PS/2, dan... JALAN! Normal tanpa hang.

Thank God... But this is really NUTS! Cuma gara-gara salah keyboard -- habis waktu sampai 6 jam! Semoga ini bisa membantu Anda; Kalau Anda menginstall Windows dan hang -- terutama saat 34 minutes remaining... cobalah ganti keyboard.

Saturday, June 05, 2010

Microsoft menutup forum-nya yang berbasis nntp - termasuk forum VFP :(

Halo rekan-rekan foxpro Indonesia....
Sedikit berita sedih... Microsoft sejak awal juni kemarin menutup server nntp-nya (microsoft.public.xxxxx ). Sedih karena, jujur, itu adalah tempat hang out saya sejak tahun 2001. Di sana saya mengenal banyak senior-senior foxpro kelas dunia seperti Nancy Folsom, Cindy Winegarden, Steven Wuebe, Igor, Eric Den Doop, Robert Ansell, dll-dll-dll.... dari sana juga saya banyak dapat link-link ke forum-forum lain yang luar biasa. Dari sana juga saya belajar dan bertanya. Singkatnya - kalau ibarat seorang anak, saya merasa 'dibesarkan' oleh forum itu. Dan sekarang microsoft menutupnya.... Dasar b*go!

Anyway, alasan microsoft adalah seperti ini:

Date 5/4/2010
Starting in early summer 2010, Microsoft will begin progressively closing down the Microsoft public newsgroups to enrich conversations in the rapidly-growing forum platform.  This decision is in response to worldwide market trends and evolving customer needs. 

Microsoft continues to invest in forums to reduce customer effort, consolidate community venues and make it easier for active contributors to retain their influence. Forums provide a healthy community environment with less spam and make answers easier to find by customers and search engines.  Additionally, forums offer a better user and off-topic management platform that will improve customer satisfaction by facilitating discussions in a clean space.  

We understand that some newsgroups are still active, and important to the community.  In the coming days and weeks, we will be rolling out tools and resources to minimize disruption to the community discussions. 

We are working diligently on providing additional resources and information in local languages later this week.  In the meantime, please refer to the official Microsoft Newsgroup website http://www.microsoft.com/communities/newsgroups/default.mspx concerning this issue.  The Microsoft Newsgroup website will be made available in additional languages in the next few days.

Singkat cerita, alasan microsoft, forum newsgroup sudah 'ketinggalan jaman' apalagi dengan adanya forum berbasis web dan social network yang sekarang berkembang pesat. Tapi, microsoft lupa keunggulan-keunggulan nntp. Yang sangat saya rasakan selama menggunakan forum newsgroup adalah forum nntp jauh lebih cepat dari forum web karena berbentuk teks mode. Gratis - tidak perlu login-login-an. Dan yang untuk saya paling penting dari dulu; bisa dengan mudah di-download secara offline dengan size yang kecil (sekali lagi-- karena text mode) jadi bisa dipelajari/dibaca sambil dimana saja. Saya ingat dulu sering nge-print thread-thread di forum dan membawa print out itu ke wc untuk di baca sambil 'ngebom'... Ha-ha-ha... jorok sedikit.... Tapi ya, memang begitulah. Saya belajar banyak melalui forum. Dan sekarang ditutup. Untuk saya penutupan forum ini lebih menyakitkan daripada waktu microsoft mengumumkan bahwa VFP10 gak akan ada. MICROSOFT SUUUUUUUUUCCCCCCCCKS! Mungkin memang untuk ke depan kita harus memikirkan alternatif lain selain produk microsoft. Beberapa hari yang lalu, waktu online di forum ubuntu, saya lihat ada signature seorang user di sana; tulisannya gini: "I've been Microsoft free for 322 days". Yah- kira-kira seperti gitu deh... Hmmmmmm............. Kapan ya saya bisa bikin signature seperti itu?

Friday, June 04, 2010

GUID di Foxpro 2.6 for DOS (atau bahkan Clipper)

Halo semua....

Udah tau GUID? Kalau belum, silahkan jalan-jalan ke situs wiki mengenai GUID . Selanjutnya, pernah kepikir gak untuk menggunakan GUID di aplikasi foxpro for DOS? He-he-he... sekarang, triknya; gimana caranya aplikasi DOS bisa bikin GUID? Jawabnya; susah! Harus ambil mac address, bikin random number sesuai dengan algoritma GUID.... wah.. repot deh... Waktu kemarin ini saya memulai project saya, sempet bingung juga tuh.... Tapi untung selalu ada solusi kalau mau sedikit ngulik. Awalnya, saya bikin program kecil ini dengan VFP:
Set talk off

Declare Integer CoCreateGuid In Ole32.Dll ;
    string @lcGUIDStruc

Declare Integer StringFromGUID2 In Ole32.Dll ;
    STRING cGUIDStruc, ;
    STRING @cGUID, ;
    LONG nSize

lcFilename = putfile("File &name:", "", "DBF")

if !empty(lcFilename)
    Create cursor [xGuid] (guid c(36))

    For i = 1 to 100000
        Insert into [xGuid] ;
        Values (NewGuid())
        if i%100 = 0
            wait transform(i) window nowait
        endif

    Endfor

    Select [xGuid]
    Copy to (lcFilename) type FOX2X

    Messagebox("Done", 64, "Generate GUID")
endif

*----------------------------------------------------------------------------
* Function    : NewGuid
* Entry with  : none
* Return with : A valid 36-chars GUID value
*----------------------------------------------------------------------------
Function NewGuid
    local lcStruc_GUID
    local lcGUID
    local lnSize
   
    lcStruc_GUID = Space(16)
    lcGUID = Space(80)
    lnSize = 40
   
    If CoCreateGuid(@lcStruc_GUID) = 0 And ;
            StringFromGUID2(lcStruc_GUID,@lcGUID,lnSize) <> 0
        lcGUID = Substr( Strconv(Left(lcGUID,76),6), 2, 36 )
    Else
        lcGUID = .F.
    Endif
   
    Return lcGUID
Endfunc
Lalu, file tersebut (yang berisi 100,000 GUID) dalam format Fox2x - dengan size sekitar 3.5meg - saya copy-kan ke folder data aplikasi FPD26 saya. Nah.. sekarang saya punya 100,000 GUID yang siap pakai. Untuk aplikasi saya, ini adalah jumlah yang jauh dari cukup untuk transaksi satu hari di satu komputer. Karena GUID selalu unik, kalaupun saya men-generate 10 file GUID untuk 10 komputer, dijamin tidak akan ada GUID yang sama (asal jangan satu file GUID yang sama di-copy ke dua komputer!). Nah, pada saat aplikasi DOS memerlukan Primary key, tinggal ambil data dari guid. Paling gampang, ambil aja field pertama. Setelah ambil, langsung hapus. Jadi field itu tidak akan bisa dipakai lagi.

Mungkin Anda bertanya sekarang, "Untuk apa menggunakan GUID di aplikasi DOS?" Nah... tujuannya, supaya kalau data hasil transaksi di aplikasi DOS itu ditarik ke SQL Server, maka kita tidak perlu lagi mengatur primary key-foreign key. Primary key dan foreign key tinggal pakai dari data asli saja. Toh tidak akan konflik. "Gimana kalau semua GUID di file dictionary-nya terpakai semua?" Yah, jangan sampai terpakai semua dong... Setiap hari isi aja dictionary dengan data GUID baru. Jadi GUID yang ada gak pernah kurang.

"Memangnya ini aplikasi apa sih? Kegunaannya untuk apa? Cara koneksi ke SQL Server-nya gimana?" He-he-he.... saya belum bisa sharing sekarang, karena selain ceritanya panjang, informasi itu juga sekarang masih 'classified' alias rahasia perusahaan... Jadi ide ini saya lemparkan karena untuk saya, ini adalah raw idea alias ide mentah. Aplikasinya? Silahkan berkreasi sendiri.... :)

Monday, April 19, 2010

PENGHAPUSAN RECORD DI DBF = Ingat: SET DELETED ON!

DBF adalah format standard table yang mulai dikembangkan sejak pertengahan tahun 1960-an (Wow! Selama ini banyak yang bilang DBF dikembangkan sejak tahun 80-an! --- Saya gak akan cerita panjang. Silahkan baca di http://www.foxprohistory.org ). Pada waktu itu (jujur- saya juga belum lahir), semua mengenai komputer identik dengan MAHAL. Harga mengakses komputer mahal. Media penyimpanan mahal. Operasional komputer mahal. Dan proses-proses yang sekarang sederhana, waktu itu juga MAHAL. Kata MAHAL (expensive) disini, bukan hanya berarti uang. MAHAL juga bisa berarti membutuhkan proses yang panjang, sedemikian rupa sehingga si komputer tidak dapat mengerjakan hal lain kecuali hal yang ‘mahal’ itu. Nah, penghapusan record adalah salah satu dari proses yang mahal itu. Kenapa?

Coba lihat diagram di samping. Katakanlah ada file database dengan 8 record. (Catatan: untuk menyederhanakan, kita akan mengasumsi data setiap record disimpan secara sequential. Kita juga tidak akan membahas struktur index, jadi diasumsi file database ini adalah file sequential tanpa index).
Nah, coba bayangkan apabila ada penghapusan record. Katakanlah, record 3 dan record 5 dihapus. Kira-kira apa yang akan terjadi?









Okay. Anda bisa lihat efeknya pada gambar di sebelah ini? Tempatnya jadi kosong alias bolong. Nah, karena record-record ini ada di dalam satu file, apa yang akan dilakukan oleh operating system untuk meng-klaim space kosong ini?













Yup. Operating system akan 'menulis ulang' file tersebut dan menyusun ulang isinya seperti pada gambar di samping.

Okay. Anda lihat efeknya? Berapa besar 'biaya' untuk membangun ulang sebuah file? Yang pasti, lupakan multi user. Bagaimana caranya bisa ada dua user yang mengakses satu file kalau file itu dihapus lalu ditulis ulang oleh salah satu user? Atau, gak usah ngomong jauh-jauh multi user deh... Katakanlah hanya satu user. Tapi record yang ada bukan 8; melainkan 800,000 record. Na lho! Anda bisa bayangkan berapa banyak rewrite yang harus dilakukan hanya untuk menghapus satu record (yang di mata orang awam/client, "sistem kita sederhana kok!" --- sounds familiar?)
Jadi, apa yang dilakukan oleh orang-orang yang menciptakan system logic database xBase pada jaman kuda belum ada buntut dulu? Anda pasti bisa menebak! YUP. Mereka membuat sistem database sedemikian rupa sehingga apabila ada penghapusan, record yang dihapus TIDAK dihapus secara fisik, melainkan HANYA DITANDAI bahwa record tersebut sudah dihapus. Tujuannya, pada saat yang dianggap aman, atau saat sistem komputer tidak sedang bekerja, barulah proses penghapusan secara fisik dilakukan (ini yang kita kenal sekarang dengan proses PACK).
Sekarang kita kembali ke dunia VFP yang kita kenal. Database VFP juga masih menggunakan dasar-dasar xBase, jadi tetap ada kasus seperti di atas. Record pada table DBF yang dihapus, juga hanya akan 'ditandai' oleh VFP. Record tersebut masih bisa dikembalikan dengan perintah RECALL. Kalau kita ingin sistem menampilkan record yang sudah ditandai tersebut, berarti kita beritahu VFP dengan perintah SET DELETED OFF. Kalau kita ingin 'menyembunyikan' record yang sudah ditandai, berarti kita berikan perintah SET DELETED ON. Nah, sejauh ini simple kan? Jadi apa yang menyebabkan begitu banyak pertanyaan dan kasus-kasus di forum yang berhubungan dengan record yang ditandai-tapi-belum-dihapus ini? Biasanya masalah yang muncul tidak jauh dari kasus berikut:

1. Record yang sudah dihapus, masih ngotot muncul

2. Record yang sudah dihapus ikut terhitung

3. Mau masukin record baru jadi gak bisa karena katanya record tersebut sudah ada. Saat di-check... ternyata sudah di-delete -- tapi belum di-pack....

4. Perintah SET DELETED ON sudah diberikan di awal program, tapi kok gak ngefek ya?

5. Ini lebih aneh lagi... SET DELETED ON sudah diberikan, udah jalan dengan baik... Tapi kok tiba-tiba VFP mengembalikan SET DELETED ke OFF??? Wah.. ini sih pasti bug VFP!

Programmer-programmer VFP sangat terkenal dengan kelihaiannya ngulik sana-sini. Maklum... maskot VFP kan rubah, jadi gak heran kalau lihai. Apa saja kelihaian programmer VFP untuk mengakali kasus di atas?
1. Habis DELETE, langsung PACK.

2. Keluar program/masuk program = PACK dulu dong.... Bisa kita akalin dengan proses PACK wajib dilakukan saat mau posting harian (keren banget namanya = posting... padahal kita cuman minjem istilah akuntansi untuk ngebersihin sampah kan?)

3. Yang ini sedikit lebih advance; JANGAN gunakan DELETE! bikin field sebagai flag untuk record-record yang dihapus.

4. Ada cara satu lagi yang cukup mantap: "Di sistem kami, semua transaksi langsung dibukukan. Tidak ada istilah DELETE. Yang ada adalah RETUR. Jadi apabila ada kesalahan, sistem tetap memiliki catatan"

Gak tau apa lagi deh... tapi yang pasti, masalah utama adalah programmer tidak tau atau gagal menggunakan SET DELETED ON/OFF untuk mengelola record yang dihapus.  Kenapa gagal? Karena banyak programmer VFP yang tidak tau bahwa:
1. SET DELETED OFF adalah nilai default VFP

2. Perintah SET DELETED ON/OFF hanya memiliki scope di data session dimana perintah tersebut diberikan. Jadi kalau Anda menggunakan Private Data Session di form Anda, setiap kali Anda harus menset preferensi Anda dengan memberikan perintah SET DELETED ON (atau OFF -- biarpun sebenarnya kalau preferensi Anda OFF ya jelas tidak perlu -- kan sudah default?)

3. Setelah SET DELETED ON atau OFF berlaku, maka semua table dan perintah yang digunakan akan mengikuti aturan tersebut. Ini berarti, apabila Anda membuat SELECT query saat SET DELETED OFF, maka record yang sudah terhapus akan... YUP. AKAN TERBAWA - dan tidak ada tanda bahwa record itu sudah di-delete! Bagaimana bila setelah query tersebut Anda memberikan SET DELETED ON? Apakah hasil query (cursor) akan terpengaruh? NOPE! Record di cursor tidak diberi tanda deleted kan? Jadi ya dianggap itu adalah record yang valid. Nah.. satu lagi nih yang sering dilupakan... Local view pada dasarnya adalah... SELECT QUERY! Jadi kasus SET DELETED ON yang gak ngefek juga dengan mudah terjadi di Local View. Gimana ngakalinnya? Silahkan lihat point berikut....

4. Karena peletakkan SET DELETED ON sangat penting, pastikan Anda sudah men-set preferensi SET DELETED ON ini sebelum Anda membaca data. Karena umumnya aplikasi kita menggunakan form (tentu saja pengecualian bila Anda membuat COM+ -- Tapi kalau Anda udah bisa bikin aplikasi COM+ dan masih bingung dengan SET DELETED, itu namanya kebangeten), jadi saya akan membahas penggunaan SET DELETED di form.

Apa yang dijalankan dulu waktu form VFP dipanggil? Yang pertama adalah event BeforeOpenTable yang ada di Data Environment. Setelah itu, event Load dari form. Kemudian berturut-turut: Init, Show, dan Activate. Untuk mempermudah mengingat, biasanya saya bilang urutannya mBOk-LISA.
Jadi, kalau Anda menggunakan Data Environment, berarti Anda membuka table dari Data Environment, ada dua alternatif:
1. Berikan perintah SET DELETED ON di event BeforeOpenTable yang ada di Data Environment
2. Kalau Anda membuka local view dari DE, Set property NoDataOnLoad di Data Environment table. Lalu, setelah Anda secara eksplisit memberikan perintah SET DELETED ON, refresh data dengan fungsi REQUERY()
Saya pribadi, lebih suka me-load data (table atau view) dari event Load. Jadi, sebelum me-load table atau view apa-pun, berikan dulu perintah SET DELETED ON. Setelah perintah itu, baru berikan perintah USE... untuk membuka table atau view.

Okay. Saya rasa segini saja yang bisa saya share. Untuk membuat post ini saja sudah hampir satu setengah jam. Jadi sudah melewati batas break saya... Ha-ha-ha... Ya ndapapalah... sekali-kali.
Sebagai penutup, saya berharap artikel yang saya buat ini bisa bermanfaat untuk rekan-rekan programmer Microsoft Visual FoxPro. VFP ROCKS!





Friday, March 19, 2010

MySQL Workbench, Linux, MySQL, myphpadmin

Halo rekan-rekan. Sekarang udah jam 23. Dari tadi jam 9, saya ngerjain hal yang sangat tidak produktif: Bergulat dengan pinguin dan berusaha membuat lumba-lumba mau main lompat-lompatan dengan rubah yang sedang berlari di atas jendela. Fiuuuh... cape deh.. sampai sekarang masih belum selesai. Lagi nunggu download nih... Jadi saya pikir, sambil nunggu download, saya berbagi dengan teman-teman semua. Semoga suatu saat bisa berguna.

By the way, sebenarnya apa yang membuat saya tertarik dengan linux dan mysql. Teman saya bang armen, bilang 'Better late than never'. Jujur aja, sebenarnya minggu lalu saya tidak tertarik. Tapi akhir-akhir ini memang ada beberapa perkembangan baru; 1) Ada client yang ingin menekan lisensi, karena ada sekitar 75 PC untuk POS, dan ada 5 server. Kalau gak pakai Window$ original, dia khawatir. Kalau pakai Windows, dia tekor. Jadi saya mau coba Linux yang harga lisensi nya sangat tidak terkalahkan alias gratis :) 2) Dua minggu terakhir ini, banyak sekali post di Forum fox-id mengenai MySQL begini lah, MySQL begitu-lah... Sulit koneksi. Koneksi lambat, dll-dll... Jadi saya juga penasaran.

So anyway, ini yang udah saya kerjakan dari tadi jam 9:
1. Install MySQL Workbench. Tadi udah di-download di kantor. Hanya 19++ Megs saja.
2. Install MyODBC Connector. Tadi siang juga sudah di dl. 4++ Megs saja.
3. Buka VMWare, jalankan uBuntu Server, secara otomatis MySQL service juga jalan.
4. Launch MySQL Workbench. Hmmm... Looks great and sophisticated. :) Coba koneksi... GAGAL! Pesannya: Cannot connect to mysql server on 192.168.0.2 (10060)
5. Cari tau kenapa.... pusing juga... Ternyata harus mengedit my.cnf. Gimana cara meng-edit-nya? Kalau di DOS dulu ada file EDIT untuk mengedit text. Di Windows, ada Notepad... Kalau di ubuntu? Pakai command editor yang namanya "VI". Aneh sekali. Mau ngetik susah. Tombol INS ternyata sangat berpengaruh. Mau nge-save? Ho-ho-ho... Ketik ':', lalu ketik 'W' ... Hmmmm... jadi ingat waktu pakai DEBUG dulu.... Nge-save-nya juga pakai -w
6. Katanya harus di-edit. IP 127.0.0.1 diganti dengan 0.0.0.0. Okay... Sudah. Lalu restart service mysql, coba lagi dengan MySQL Workbench... GAGAL LAGI... tapi sekarang pesannya udah ganti. Setelah tanya oom google, ternyata harus update user table yang ada di mysql. Cara termudah adalah dengan phpmyadmin. Jadi, mari kita install phpmyadmin.
7. Perintah sudo apt-get install phpmyadmin menghasilkan error... Kenapa lagi ya? Oooo... kelihatannya uBuntu mencari package yang ada di CD-ROM. Mari kita mount CD-ROM uBuntu... Sudah di mount. MASIH TIDAK BERHASIL INSTALL. Tanya lagi oom google
8. Oooh.. katanya, harus edit sources.list. Oke deh.. edit lagi dengan command editor VI. Wah, udah pakai beberapa kali, akhirnya jago juga pakai VI :D
9. Sudah di-edit, masih gak bisa. Hmmm.... coba deh, kita update program aptitude-nya.. Jadi sudo aptitude update. Naaa. download deh... gak tau berapa mega.
10. Sudah download beres, sekarang, sekali lagi kita coba sudo apt-get install phpmyadmin . Naaah... sekarang bisa. Download lagi... 42 mega...
11. Installasi udah beres. Sekarang lagi configure apache2... Hmmm... apache2 kan web server. Jadi kelihatannya saya akan bisa meng-konfigurasi MySQL dari web browser ya? Hmmm... gimana caranya.. Oh... Ternyata, tinggal ketik http://192.168.0.2/phpmyadmin . Beres. Tinggal isi credential user ID mySQL dan password-nya...
12. Udahan ah blogingnya... Mau nyobain lagi nih... Senangnya weekend... Besok gak harus ke client, jadi bisa memanfaatkan waktu sebaik-baiknya untuk belajar. Yah, sampai malam minggu besok deh... Hari minggu udah harus siap-siap lagi. Dapur harus ngebul kan? :D

Bye all... :)

Thursday, March 18, 2010

This fox try to run along with the penguin

Halo rekan-rekan foxer... Selama ini saya tidak pernah betul-betul serius dengan Linux dan MySQL. Tapi kelihatannya dalam waktu dekat ini saya akan mempertimbangkan MySQL untuk production. Jadi, saya menginstall Linux dan MySQL di laptop saya. Dan inilah ceritanya....
1. Okay. Keputusan untuk menginstall Linux di laptop saya. Eh, tentu saja tidak langsung di hard disk. Nanti production gimana? Gampang.. gunakan saja Sun VirtualBox.

2. Next, pertama kali pilih dulu distro apa... Hmmm.. di library, saya punya Sidux, Fedora, Centos, dan uBuntu. Pilih yang mana ya? Setelah melihat internet, ternyata yang paling banyak penggunanya - hmm... maksud saya yang paling banyak saya temukan -- adalah uBuntu. Jadi uBuntu lah yang terpilih.

3. Install uBuntu... Ups... Setelah diinstall, pikir-pikir, ngapain juga saya install x-window nya? Interface gnome memang lumayan okay. Serasa pakai Macintosh. Tapi.. Untuk apa GUI-nya? Jadi saya pergi ke http://www.ubuntu.com/GetUbuntu/download dan men-download distro server-nya (Linux uBuntu 9.10 Karmic Koala).

4. Linux di Virtual Box ter-install. ah.. tapi ternyata setup network-nya gak bisa. Virtual Network-nya tidak bisa di-detect di uBuntu. Sun VirtualBox saya ternyata versi lama. Jadi harus update Virtual Box ke versi baru... 70 Mega? Hmmm... malas ah... apalagi forum dan dokumentasi-nya agak kurang okay. Jadi saya beralih ke VMWare 7.0. Install VMWare, install ulang uBuntu server. Yup. Langsung jalan. Dan ethernet-nya? Mari kita lihat dengan perintah ifconfig. Perfect. Langsung ada eth0, dan IP-nya sudah di set.... :)

5. Sekarang saya perlu download MySQL. Eh... ternyata dulu pernah download. Ada kok. MySQL 4.1 dalam format tar.gz... Eh.. tapi sebentar dulu.. Gimana caranya meng-copy dari folder Windows ke folder Linux? Dan setelah masuk ke Linux, gimana cara install-nya ya? Terus, bakal cocok gak? Hmmm.....

6. Ah.. pusing-pusing... Mendingan download aja MySQL versi terbaru langsung dari Linux. Caranya gimana ya? Oooh.. gampang... Coba tanya Oom Google... WAH??? Tinggal ketik sudo apt-get install mysql-server??? Kok gampang ya? Kirain bakal susah! Eh, tapi berarti, Linux yang ada di dalam virtual machine harus ada koneksi internet. Should be easy. Share koneksi 3G-saya, lalu, coba cek linux lagi...

7. Wah-wah-wah.. ternyata saya harus rubah IP address Linux. Sharing koneksi tadi merubah IP. Nah.. sekarang gimana caranya merubah IP di Linux... Mari kita tanya Oom Google... http://www.howtogeek.com/howto/ubuntu/change-ubuntu-server-from-dhcp-to-a-static-ip-address/

 8. IP Beres. Coba nge-ping ke fox-id...
Mantaaaafff...

9. Sekarang, tinggal jalankan sudo apt- tadi... Coba kita lihat.. Apakah semudah yang dikatakan?
YUP... Ternyata memang semudah itu. Gambar disamping ada yang saya garis kuning. Yang saya garis kuning itu adalah command yang salah. Ternyata kurang kata install... Dasar Command Line.... Ha-ha-ha... Yang kedua (yang di beri box merah) adalah command yang betul. Tinggal download 22 mega... Hmmmm... Jadi saya tinggal dulu untuk post blog ini

10. By the way, waktu saya ngetik sampai point 8 (atau 7) di atas, ternyata download udah selesai. Cepat juga. Dan langsung terinstall lagi!

11. WOW... sekarang tinggal menyelesaikan post di blog, lalu coba MySQL ODBC. Tapi sekarang udah jam 01.15.... Tidur dulu ah... Mimpiin fox balapan sama pinguin.. Menang siapa ya???

Thank you guys and gals for reading!

FOX ROCKS!!!!

Friday, March 05, 2010

Welcome 2010

Okay guys and gals... judulnya memang udah telat. Sekarang udah bulan Maret. Tapi heck, ini adalah post pertama saya tahun 2010. Jadi ya udah. Tetap Welcome 2010. :D

Anyway, saya sangat bersemangat dengan tahun 2010 ini. Ada banyak rencana besar di depan. Anak saya yang kecil masuk SD. Wow... so many exciting things. Sejak Januari kemarin juga sudah banyak exciting things. Salah satu-nya saya mengalami patah kaki... :D Yup. Betul-betul patah. Di gips selama satu bulan! Weks..... Betul-betul luar biasa yang namanya gips itu. Jalan kemana-mana harus pakai tongkat.... Pokoknya rasanya sengsara banget. Tapi untungnya.... (selalu untung... itulah orang timur. Kita selalu untung :D ).. Untungnya yang patah bukan tangan atau jari... Jadi selama bulan Januari saya tetap bisa menggunakan laptop, dan - Puji Tuhan - masih ada dua client baru yang masuk bulan Januari.. (lumayan... untuk nutupin biaya berobat... ongkos ke dokter dan nge-gips rp 700,000 -- Belum obatnya yang muahal-muahal....).

So anyway, ada pelajaran yang saya dapat selama saya sakit. I think I share it with you guys...
1. Setiap kali ke dokter, saya harus foto rontgen dulu (X-Ray). Sekali X-Ray Rp 120,000. Dari ruangan X-Ray, saya ke ruang praktek dokter. Si dokter kemudian akan mempelajari foto x-ray itu, lalu bilang, "Pak, coba lihat tuh patahan-nya... lumayan nih.. sudah mulai bagus... Tapi harus hati-hati ya Pak. Masih harus dijaga. Gips-nya kita ganti ya Pak. Sudah mulai longgar nih...." dst.dst...
Yang saya perhatikan; saya tidak pernah menawar; "Dok... gak usah x-ray deh...", atau "Dok, masa dokter cuma ngomong gitu-gitu aja dan lihat foto kaki saya --- yang saya juga bisa lihat --- minta bayaran sampai segitu sih?" Saya gak nawar. Kenapa? Ya karena saya mau sembuh. Saya juga nurut sama si dokter. Karena saya percaya sama expertise beliau. Nah... yang saya renungkan, bayangkan betapa nikmatnya kalau kita bisa menciptakan perasaan seperti itu pada client kita. Mereka menghargai expertise kita. Dan kita juga tidak ragu-ragu memberi 'nilai' pada diri kita sendiri.

2. Foto disamping adalah foto si dokter waktu mau ngelepas gips. Itu alat yang digunakan untuk membuka gips yang kerasnya seperti batu. Ampun deh waktu digips. Saya sampai gak bisa nginjek kopling. Jadi gimana cara saya pergi-pergi ke sana kemari? Yah, terpaksa pakai supir. Lumayan tuh, bayar supir. Hitung-hitung hampir 2jt habis untuk supir. Tapi ini yang saya pelajari... Justru kalau saya lihat jadwal saya bulan Januari dan Februari, jadwal saya sangat padat. Bener-bener gak ada waktu santai... Sekarang malah saya lebih santai. Jujur, ada perasaan bersalah juga pada diri sendiri. Kemarin ini istri saya bilang, "Kemarin waktu pakai supir, rasanya jadwalnya strict terus. Kok sekarang molor?" Hmmmm...... saya baru sadar... Saat pakai supir, istilah "waktu adalah uang" betul-betul bisa diartikan secara harafiah. Tiap hari supir datang. Harus dibayar. Jadi saya harus efektif. Ini refleksi juga buat saya. Dan saya sekarang bertekad untuk lebih efektif lagi. Doa-in ya teman-teman :)

Yah, jadi beginilah awal 2010 yang sangat exciting. Looking forward for a great times this year. Wish you all the same! Happy New Year guys and gals! TETAP SEMANGAT!!!!