Minggu, 11 Desember 2011

Evolution of Geek

Kemarin dapet gambar yang lucu, isinya mengenai evolusi geek. Digambar ini diceritakan bahwa sampai tahun 50-an istilah "geek" hanya spesifik disebutkan untuk mereka yang tergila-gila pada teknologi atau sub-cultures. Asal kata "geek" sendiri berasal dari kata "gecken" yang digunakan pada abad ke 18 untuk menyebut kepada pemain sirkus yang beraktik untuk mematahkan leher ayam hidup. It's weird.

Namun seiring perkembangannya, istilah "geek" tersebut meluas. Tidak hanya melulu ditujukan kepada mereka yang tergila-gila pada teknologi. Istilah "geek" saat ini lebih ditujukan kepada mereka yang amat sangat menggemari hal-hal yang sedang ia geluti. Berikut ini adalah gambarnya :




Nah, itu beberapa tipe "geek" yang baru-baru ini muncul. Kalau saya boleh pilih, mungkin ini beberapa tipe "geek" saya :

  • Computer Geek : Ngga cuma komputer sih, gadget juga. 
  • Internet Geek : Keliling dunia cuma dengan klak-klik-klak-klik. It's awesome!
  • Tech Geek : Belum punya product apple :( .. as soon as  i hope :)
  • Academic Geek : Menjadi akademisi sekaligus praktisi adalah keinginan saya. Seperti pak @onnowpurbo atau pak @rahard sepertinya menarik :)
  • Book Geek : woooow.. minimal sebulan sekali harus ke toko buku. Walau buku yang lama belum kebaca sepenuhnya. Tapi saya pikir nambah koleksi buku itu harus.
  • Video Game Geek : Akhir-akhir ini ga sempet main. Cuma sempet main game-game kecil aja
  • Film Geek : Kayaknya semua orang deh kalo yang ini. Film udah jadi kebudayaan umat manusia, bahkan sebelum ada pita film buat merekam sejarah umat manusia udah sering bikin pertunjukan cerita di panggung.
Heeem. kalau gitu, yang mana tipe geek anda? :D

Senin, 05 Desember 2011

(dasar) fungsi javascript

Sekedar ingin melist fungsi javascript yang sejauh ini telah saya ketahui.

- $('#bla_bla_bla').html("isi apa aja boleh");
Fungsi ini berfungsi untuk menyisipkan element html kedalam suatu tag id/class 

- $('#bla_bla_bla').val("isi apa aja boleh");
Fungsi ini berfungsi untuk menyisipkan suatu nilai  ke dalam type input (textfield, textarea) yang diberikan inisial id bla_bla_bla

- $("#bla_bla_bla").show();
Fungsi ini akan menampilkan element tag yang tadinya disembunyikan atau tidak muncul. Biasanya digunakan untuk pop up notifikasi.

- $("#bla_bla_bla").hide();
Kebalikan dari fungsi show, yaitu menyembunyikan element yang tadinya tampil.

 $("#bla_bla_bla").data(dataku, { nama: afif, nim: 1006826225});
Fungsi ini akan menyisipkan data pada element html dan dapat dipergunakan kembali oleh element html yang lain. Untuk lebih jelasnya kesini

Heem, masih banyak sebenernya. Tapi berhubung itu yang paling sering dipakai dan sekarang waktu makan siang sudah hampir habis maka saya cukupkan sampai disini. Kalo mau lihat yang yang lengkapnya ada di situs resminya disini


Sabtu, 26 November 2011

perbedaan type submit dan button

Kemarin saya mendapatkan error sederhana yang cukup memakan waktu. Memang kesulitan dalam mendevelope aplikasi yang sebelumnya telah di bangun oleh orang lain adalah kita harus mempelajari behaviour developer sebelum kita tersebut. Karena setiap orang pasti memiliki pola dan design tersendiri dalam mengkonstruksi algoritma yang ada didalam pikirannya masing-masing.

Nah, pada aplikasi yang sedang saya kerjakan (yang sebelumnya telah dikerjakan orang lain), terdapat dua behaviour yang berbeda. Ada yang mengkonstruksi pembuatan tabel pelaporan didalam javascript dan ada yang didalam controller (Codeigniter). Masalahnya muncul ketika saya hendak membuat sendiri laporan tabel pada javascript. Tabel yang saya buat telah terbentuk dan sempat muncul beberapa saat dan akhirnya menghilang. Padahal saat saya membuat tabel tersebut di dalam fungsi controller muncul dengan sempurna. Saya sempat dipusingkan dengan hal ini.

Usut punya usut, ternyata terdapat sedikit perbedaan yang cukup berbeda, dan saya cukup bodoh :D Jika pada pembuatan tabel di fungsi controller, button actionnya bertipe "submit".

 <input id="dg_pasien_cari" name="cari" value="Cari" type="submit"> 
Dan fungsi membuat table yang berada pada javascript menggunakan button action bertipe "button".

<input type="button" id="rm_pekerjaan_cari" value ="Buat Laporan">

Lalu apa perbedaan mendasar dari dua tipe tersebut, sejauh yang saya tahu saat ini adalah:

1. Jika menggunakan button bertipe "submit" maka button akan menggenerate method yang terdapat dalam form action. Jadi dalam hal ini fungsi submit yang terdapat dalam suatu form pasti mengerjakan form actionnya. Bahkan jika kita tidak mendefinisikan fungsinya (misal, anda hanya membuat tag <form></form>). Maka secara default, form akan memiliki method "get" dan mengirimkan nilai-nilai yang terdapat didalam form tersebut.

2. Sedangkan button yang bertipe "button" tidak mesti menjalankan method yang ada didalam form tersebut. Biasanya kita menggunakan button bertipe "button" ini jika kita ingin mendefinisikan aksi apa yang akan dilakukan button tersebut kedalam javascript. Dalam hal ini saya mengintervensi fungsi button tersebut dengan "id".

Nah, mulai kelihatan kesalahannya. Saya hendak membuat pembentukan tabel di dalam javascript namun menggunakan aksi bertipe submit. Maka aplikasi pertama kali akan menuju kepada javascript, dalam javascript tersebut meminta method POST dan memanggil data-data lalu mengkonstruksi tabelnya, kemudian tabel tersebut disisipkan kedalam html. Tapi karena menggunakan method submit prosesnya tidak berhenti disitu, setelah tabel dalam javascript muncul didalam html, button submit tersebut kemudian menjalankan method form actionnya. Nah pada bagian inilah tabel yang saya buat tiba-tiba menghilang. Karena form action tersebut merefresh halaman htmlnya.

Jika dirunut maka prosesnya seperti ini :

button klik --> button memicu action javascriptnya --> javascript menjalankan post dan mengambil data-data -->javascript mengkonstruksi table --> javascript menyisipkan tabel tersebut kedalam html --> tabel muncul --> button memicu form action --> form action menjalankan fungsinya ("post" atau "get") --> halaman ter-refresh --> tabel menghilang!!!

Haha, ini kan dasar banget. Kok bisa-bisanya ya.. Ya, stupid of me! Tapi kan memang begitu, belajar adalah sebuah perjalanan dari satu kebodohan menuju ke kebodohan berikutnya *ngelesnya kayak bajaj*

Anda bertanya, lalu gimana solusinya? ya tinggal ganti type "submit" menjadi "button". Kesimpulannya,
1. Jika ingin membuat tabel di javascriptnya gunakan type "button" agar form methodnya tidak ikut tergenerate

2. Jika ingin membuat tabel di dalam fungsi php/controller, gunakan type "submit". 

Cukup sekian penjelasannya, semoga bisa mencerahkan. Kalau ada penjelasan saya dirasa kurang tepat atau salah. Bisa tolong ditegur dan diberi masukan yang lebih baik. Sekian.


Salam.   



Rabu, 23 November 2011

Belajar

Belajar adalah perjalanan dari satu kebodohan menuju ke kebodohan berikutnya
 - Pijar Kalam

Senin, 21 November 2011

Wawancara dengan Founder #startuplokal

Hari ini pas lagi browsing-browsing ringan.. Eeh nemu wawancara yang oke banget. Berguna banget buat mereka yang ingin serius terjun ke dunia digital. Salah satu kutipan yang bikin saya "angguk-angguk kepala" adalah ini:
jika anda developer yang hebat sekali, tapi tidak punya strategi marketing, maka kemungkinan untuk monetisasi (menghasilkan uang) jauh lebih kecil ketimbang jika anda seorang marketer yang hebat sekali tanpa ada developer. ~ Natali, founder #startuplokal

Sumber laman wawancara selengkapnya ada disini 
Semoga menginspirasi anda juga :)
Salam..

Jumat, 18 November 2011

IT company in Indonesia. Why?



Sebenernya sudah banyak yang mengemukakan hal seperti judul diatas. Mulai dari mereka yang masih terjun ke bisnis IT maupun yang sudah banting setir ke lini bisnis yang lain yang masih dekat dengan kata digital dan internet. 

Seminggu kemarin kelas saya didatangi oleh dosen tamu yang telah malang melintang di dunia e-commerce. Beliau salah satu dari founder www.gantibaju.com. Sebuah website e-commerce di bidang clothing namum memberikan mekanisme design yang unik. Design kaos-kaos yang berada pada web ini didatangkan dari para designer Indonesia yang meng-uploadkan karya mereka ke web tersebut. Web tersebut secara rutin mengadakan event-event lomba design yang awardnya adalah dipampangnya design mereka pada kaos yang akan diproduksi dalam jumlah terbatas, uang tunai, dan royalti sebesar 10% dari hasil penjualan. Yang menariknya lagi, design-design dari kaos tersebut harus bernuansakan dengan nasionalisme. Beliau bernama Aria Rajasa Masna (@rajasa).

Dia menceritakan pengalamannya dalam  membangun bisnis. Salah satunya adalah bisnis yang "core bussiness"-nya IT. Namun setelah kurang lebih setahun berjalan, akhirnya gagal juga. Akhirnya dia beralih ke industri kreatif dan e-commerce. Dan hasilnya adalah site  www.gantibaju.com tersebut sebagai  Pemenang International Young Creative Enterpreneur (IYCE) 2011.

Di Indonesia cukup banyak perusahaan-perusahaan IT dengan skala kecil sampai dengan menengah. Namun yang benar-benar besar dan bercita rasa Indonesia jarang ditemui. Ditempat saya bekerja sekarang pun sekarang demikian. Kira-kira kenapa ya IT company di Indonesia jarang ada yang benar-benar besar seperti di Tokyo atau Silicon Valley. Kebanyakan bertebaran dalam lini-lini yang kecil. Jika saya boleh berpendapat sebagai orang awam mungkin point-pointnya adalah:

1. Tidak berfokus pada pengembangan produk. Ya, kebanyakan IT company di Indonesia adalah konsultan yang menyediakan jasa pengembangan teknologi pada client yang artinya hanya penyedia jasa. Produk teknologi yang dihasilkan sifatnya eksklusif untuk client tersebut. Sekali developt, sekali mengucur dana, setelah itu selesai. Tidak ada proses duplikasi profit disini. Saya ambil pembanding aplikasi ERP SAP. Perusahaan cukup membuat satu produk yang "serius" yang di maintenance secara terus-menerus. Client/konsumen dari mana saja pun bisa memakai aplikasi yang sama tanpa harus developt ulang. Ya, memang untuk membuat produk tidaklah mudah. Harus ada dana besar di awal untuk R&D serta uji pasar. 

2. SDM yang minim (kuantitas maupun kualitas). Banyak universitas/tempat pendidikan yang bergenre "Teknologi". Namun  anehnya cukup sulit untuk mencari SDM yang sesuai dengan requirement industri saat ini. Kalau pun ada, dari segi skill dan attitude dipertanyakan. (statement ini membuat saya berkaca terhadap diri sendiri..hehe )

3. Menjadi ilmuwan adalah cara buruk dalam mencari uang (hal khusus di Indonesia). Pemicu terbesar dalam inovasi teknologi adalah hadirnya para ilmuwan-ilmuwan yang terus bekerja siang dan malam untuk wajah dunia yang lebih baik. Para ilmuwan tersebut mendermakan seluruh hidupnya untuk hal tersebut, sehingga hal logis jika mereka didanai besar untuk object penelitiannya (dalam hal ini pemerintah harus berperan). Di Novel Dan Brown yang Deception Point pun disebutkan bahwa organisasi luar angkasa NASA  adalah organisasi yang boros dalam membebani APBN Amerika. Bagaimana dengan Indonesia? heeem.. Banyak para rocket-scientist kebanggaan tersebut yang minggat dari sini untuk membangun karir dan melakukan penelitian di luar. 

Saya cukupkan sampai 3 point diatas, walau sebenarnya masih banyak lagi yang lainnya. Dan yang terpenting sekarang, sebagai seorang praktisi teknologi mari kita sama-sama mencari solusinya. Demi wajah bumi pertiwi yang lebih baik dan sejajar di mata bangsa-bangsa lain. Untuk point diatas, ada yang mau menambahkan???

Minggu, 13 November 2011

Isi ulang printer canon IP1980

Baru saja saya melakukan percobaan isi ulang printer Canon iP1980. Antara takut gagal dan salah, karena cartrigde untuk printer ini cukup mahal. Jika beli keduanya harganya hampir sama dengan membeli printer baru. Untuk catridge warna dihargai sekitar 190 ribu, sedangkan untuk catridge hitam dihargai 150ribu. Harga baru printernya sendiri hanya sekitar 500 ribu. Apakah ini trik marketing biar printer mereka laku? ya wajar-wajar saja sih, setiap perusahaan memiliki strategi marketingnya masing-masing. 

Disini saya ngga membahas tata caranya, karena saya juga ngikutin dari link berikut:

Kedua teknik diatas sudah cukup jelas menurut saya, dan saya mengikuti langkah-langkah di dalam link tersebut. Alhamdulillah berhasil.. Oh iya, ada satu yang agak bingung sih, kalo isi ulang tinta warna ada 3 lubang yang masing-masing berisi warna dasar red-green-blue. Nah saya agak kebingungan lubang mana saja yang berisi warna yang pas, kalau salah-salah isi bisa-bisa warnanya jadi error dan tercampur. Melayanglah uang 190 ribu :( Ada yang tahu posisi warna dari ketiga lubang tersebut?

Sabtu, 12 November 2011

Sebuah mesin tua (Acer Aspire 4720z)

Masih ingat saat itu, 2008 silam. Setelah hampir setahun menjadi anak kuliahan di Bandung. Bergelut dengan dunia yang baru, dengan dunia yang sangat amat dekat dengan perangkat yang bernama "komputer". Waktu itu penunjang segala keperluan tugas-tugas kuliah saya hanyalah sebuah PC dari jaman SMP, PC dengan processor Intel Celeron, dengan RAM sebesar 256 Mb. Jika dengan keberadaan software dan penetrasi internet bisa dikatakan bahwa PC tersebut tidak relevan lagi di jaman sekarang. Sekarang PC Celeron tersebut masih ada wujudnya, namun tidak difungsikan lagi. Ya, sebenarnya bisa untuk dipakai untuk sekedar "nyala". Kemarin saya coba untuk install ulang dan sepertinya ada kendala di optikal disknya. Kebetulan saya punya DVD external, saya pikir ini tidak akan menjadi masalah. Saya masukan CD OSnya, kemudian masuk BIOS untuk mensetting boot from USB. Tapi apa yang terjadi saudara-saudara??? BIOS tersebut tidak memiliki pilihan untuk boot from USB. Sangat disayangkan.



Sebagai mahasiswa IT dengan PC tentu sangat merepotkan kala itu. Kami yang dijejalkan tugas-tugas tanpa henti, yang kesemuanya membutuhkan bantuan komputer terpaksa harus pulang pergi kost-kampus hanya untuk mengerjakan tugas. Sangat tidak flexible! Tapi hikmah memang lebih sering muncul di keadaan-keadaan yang seperti itu, susah, bosan, lelah, sulit. Mengingat masa susah akan membuat kita bersyukur di masa depan. Saya pun sangat menantikan kehadiran laptop sebagai pendamping hari-hari saya. Setelah sekian lama berdoa, Allah menjawab doa saya. Allah mengabulkannya lewat ayah saya. Beliau membelikan laptop saya dari dana pensiunnya. Dana pensiun hasil dari kerja selama puluhan tahun, untuk sebuah laptop. Maka dari itu jangan pernah bertanya betapa berharganya laptop ini bagi saya. Nilai sebuah barang memang tidak selalu ditimbang dari nilai instristik yang melekat dari barang tersebut. Yang paling berharga bagi barang adalah nilai sejarahnya. Nilai dari mana barang tersebut berasal, siapa yang memberinya, dan seberapa dekatnya menemani hari-hari kita. Maka jangan heran jika ada seseorang yang rela menyimpan bungkus coklat di dompetnya hanya karena coklat tersebut pemberian dari orang yang disukainya (untuk hal ini sangat banyak kasus, atau mungkin anda sendiri juga yang melakukannya :) )



Ikatan emosional terhadap suatu barang pun terakumulasi sepanjang perjalanannya. Yang paling memberikan manfaat dan yang paling lama dipakai, biasanya memiliki tempat yang spesial di kehidupan. Tak terkecuali laptop saya ini, Acer Aspire 4720z. Sebuah gadget yang biasa saja, tertanam processor dual-core T2390 (1.86 Ghz), dengan RAM 1 Gb, dan harddisk sebesar 320Gb. Peforma biasa-biasa saja, namun sudah cukup lama menemani saya bergelut dengan teknologi, menghibur hari-hari, menemani mengerjakan tugas sampai larut malam, aaah tak terasa ya 4720z, sudah 3 tahun lebih kita bersama :) Kondisi sekarang kamu problem di LCD yang sudah terlihat bercak putih dan DVD ROM yang telah lemah, tapi itu semua nggak menggantikan posisi 4720z, kehidupan kan bukannya harus saling melengkapi kekurangan kan ya?(setidaknya sampai ada rezeki lain buat beli gadget baru). Sesuatu yah, semoga 4720z awet-awet aja kedepannya, menemani saya berkarya dan produktif.. amiiiinn..




Senin, 07 November 2011

Setting multiple virtual host pada localhost dengan XAMPP


Pernahkah anda membuat virtual host pada localhost anda? Jika belum saya akan menjelaskannya sedikit. Virtual host merupakan sebuah metode pada localhost anda untuk memberikan penamaan inisial. Biasanya saya menggunakan metode ini untuk mengembangkan aplikasi berbasis MVC (saya menggunakan framework Codeigniter).

Inisial ini diperlukan agar aplikasi yang kita kembangkan mendapatkan simulasi cara kerja selayaknya pada server hosting nanti. Sehingga meminimalkan hal setting-mensetting pada proses migrasi dari localhost ke hosting nantu. Misalkan jika menggunakan cara biasa biasanya kita mengakses
http://localhost/aplikasiSaya/login

Namun dengan bantuan virtual host ini kita bisa memberikan nama URL tanpa menggunakan kata2 localhost dan sama persis dengan versi hosting
http://www.sim-rumahsakit.dev

(domain tidak menggunakan yang .com atau yg lain karena takutnya browser malah menunjuk ke alamat yang ada di internet. Jadi nama domainnya juga virtual saja ya.)


Nah, yang biasanya jadi masalah adalah ketika kita sudah membuat satu virtual host pada localhost. Maka aplikasi kita yang lain, yang berada pada htdocs jadi tidak bisa diakses. Terutama yang masih menggunakan awalan localhost. Waktu belum tahu caranya saya biasanya mengganti-ganti pada file C:\WINDOWS\system32\drivers\etc dan C:\xampp\apache\conf\extra\httpd-vhosts setiap kali mau berkunjung ke aplikasi lain. Tentu hal ini akan sangat merepotkan, apalagi bagi kita yang suka develop lebih dari satu aplikasi.

Nah, alhamdulillah. Saya menemukan cara bagaimana caranya membuat multiple virtual host pada localhost kita. Caranya adalah
  1. Membuat virtual hosts entries
Bukalah file x:\\apache\conf\extra\httpd-vhosts.conf. Kemudian tambahkan konfigurasi ini pada file tersebut


<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot D:/srv/xampp/projects/testproject/public
ServerName www.testproject.dev

<Directory "D:/srv/xampp/projects/testproject/public">

Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>

</VirtualHost>

Konfigurasi diatas diibaratkan project yang anda kerjakan berada pada folder /projects/testprojects/public dan inisialnya menggunakan www.testproject.dev. Setelah menambahkan konfigurasi tersebut, jangan lupa untuk menambahkan konfigurasi untuk server localhostnya, yaitu:


<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot D:/srv/xampp/localhost
ServerName localhost

<Directory "D:/srv/xampp/projects/testproject/public">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Konfigurasi localhost diatas mesti ditambahkan, agar semua aplikasi yang berada pada htdocs anda masih bisa untuk diakses. Oke, lanjut ke step ke dua

2. Edit windows hosts file

Konfigurasi hosts file anda. Letak file hosts file pada system Windows ada di C:\WINDOWS\system32\drivers\etc\hosts. Setelah anda buka file tersebut, daftarkan dua server yang telah anda daftarkan:
127.0.0.1 localhost
127.0.0.1 testproject

Nah, rampung sudah pembuatan virtual host pada localhost anda. Sekarang coba saja mengakses www.testprojects.dev. Pasti akan menunjuk aplikasi testprojects pada htdocs anda. Jika anda ingin menambahkan inisial lain, caranya sama. Tambahkan saja pada file httpd-vhost dan host anda. Sekian tutorial dari saya.. Semoga bermanfaat :D


ref : http://ailoo.net/2008/07/set-up-multiple-virtual-hosts-on-xampp-for-windows/

Saya melupakan hal kecil pada tutorial ini. Jangan lupa untuk meng-uncomment statement ini :

##NameVirtualHost *:80

Hilangkan tanda pagarnya menjadi

NameVirtualHost *:80


Sabtu, 05 November 2011

Postingan Pertama

Assalamu'alaikum...
Memang tidak ada kata terlambat dalam belajar. Walau saya merasa terlambat untuk membuat blog yang dikhususkan untuk ulasan IT. Mengingat saya adalah praktisi IT, namun sampai saat ini belum pernah punya blog yang saya khususkan untuk merangkum ilmu-ilmu yang saya dapatkan sepanjang perjalan saya bergelut dengan teknologi.

Saya juga adalah pemilik blog di sajakhari.wordpress.com. Disini saya agak sekuler dalam memisahkan antara kecintaan saya terhadap sastra dan teknologi. Saya nggak ingin mencampur-adukan dua dunia itu dalam satu blog. Alhasil, saya buatlah blog ini yang khusus didedikasikan bagi teknologi, ulasan-ulasan dan tutorial.

Semoga bisa saling berbagi ilmu, oh iya blog ini dibuat bertepatan dengan malam Idul Adha. Jadi karena momentnya tepat, saya mengucapkan Selamat Idul Adha 1423 H. Semoga dengan ini kita bisa semakin memaknai arti pengorbanan dan keikhlasan.

Salam :)