Karena internet adalah hidup

Tuesday, January 29, 2013 0 Comments

Ceritanya, saya berniat untuk menulis blog menggunakan HH saya. Bukan sembarang posting, tapi posting normal yang ditulis dari HH; sehingga membuat jadi abnormal eh, spesial. Apa pasal? Kalau misalkan kuota internet saya normal, mungkin saya lebih memilih menikmati menulis menggunakan PC atau Lappie. Sebenernya saya bisa juga menggunakan HH saya untuk menyebar WiFi, kemudian menulis via Lappie. Tapi, menurut pengalaman, sayang HH, karena menggunakan HH yang difungsikan sebagai tethering, mengurangi masa hidup batere. Terlebih, istilahnya 'menjadikan HH sebagai modem' sangat tidak etis menurut saya. Sayang HH judulnya hahaha..

Kembali ke topik. Saya jadi ingat dengan sebuah postingan berita di detik (kalau tidak salah) mengenai sebuah novel yang ditulis menggunakan BlackBerry. Mengapa? Karena yang pada beli bilang, kurang lebih 'saya menghabiskan uang untuk barang yang percuma'.. Semoga tulisan ini tidak mengandung atau menyiratkan *ketidakbergunaan*. Toh, semua komentar negatif silahkan membaca halaman 'About' di pojok kanan atas hahaha..

Jadi, biasanya, saya menggunakan internet dari provider Semarpret dengan paket unlimited-nya yang cukup *wah*, kala itu. Tapi, seiring dengan berjalannya waktu, provider ini semakin ngaco. Kualitas jaringan segitu segitu saja, sementara promosi gencar gencaran, yang menghasilkan slogannya menjadi sebuah ironi.

Keinginan untuk memberontak pasti ada. Terbukti dengan saya akhirnya memutuskan untuk membeli sebuah modem GSM. Singkat kata, saya mencoba provider 3, gara gara seorang tetangga kos membawa (baca : mencoba) sebuah modem dengan provider yang sama dan membuat saya terkagum kagum atas kecepatan yang didapat. Cepat. Inilah ternyata yang membuat gaya hidup saya berubah. Sebelumnya, saya sudah terbiasa menggunakan paket unlimited dan dengan adanya reformasi, maka mindset saya terpaksa dirubah serba memikirkan kuota. Saya masih kurang terbiasa dengan model streaming YouTube, download, surfing dengan perasaan was-was hahaha.. Walhasil, di masa transisi ini saya mengalami collapse-internet alias kehabisan kuota. Padahal saya orangnya sangat bergantung dengan internet. Hidup saya, social-life saya, kerjaan saya, hiburan saya, bahkan jadinya sedih saya juga si internet ini. Bisa dibilang she's my life. Dan dengan kondisi seperti ini (kehabisan kuota), I just dunno what to do. Hampa (baca : bingung mau ngapain). Alhasil, tidur lebih awal (biasanya). Tapi untungnya saya masih ada paket internet di HH. Ya makanya bisa bilang kalo HH bisa di tethering, tapi sayang.. Soalnya udah ngalamin. Ngalamin kuota regular habis. Ngalamin kuota midnight menipis dan susah aksesnya. Biasa,, jam midnight adalah jam jam istirahat.
Untungnya di kantor ada akses internet, meskipun kurang puas gegara akses yang di-share alias buat rame-rame (gregetnya kurang). Tapi masih mendinglah daripada gak sama sekali. Eh, ada yang lain ding.. Temenku masih ada yang bisa ditebengin :D

Phew.. Just can't live without internet..

btw, yassalaaam.. saya niat banget ini nulis sedemikian panjang make HH.. :D

Dan btw lagi, di blogger for mobile ini ndak ada formatting text nya (versi lengkap) kayaknya. Yassalaaam..

Regex.. is a must

Thursday, January 17, 2013 4 Comments

Regex, yang merupakan 'nickname'-nya regular expressions, merupakan suatu hal yang 'sesuatu' banget. Hari ini (lirik tanggal di pojok kanan atas komputer), Rabu (16/1), saya bertemu lagi dengan dia (regex --red.) dalam rangka konversi antara (lagi-lagi) 'LOAD DATA INFILE' ke mysqlimport, masih nyambung dengan tulisan yang kemaren. Sebenarnya tidak harus sih, mysqlimport menggunakan regex, cuman dalam kasus saya, saya musti menyesuaikan isi file, yang itu akan lebih efektif dan efisien kalau dikerjakan menggunakan regex. 

Bagi yang belum tahu regex, bisa main main ke tempat ini : http://www.regular-expressions.info/. Kalau berbasis hasil pencarian google menyoal regex, kemungkinan besar dia yang nongol paling atas. Sedikit mengulas 'apa dan bagaimana', jika kita pernah melakukan pencarian file menggunakan format *.txt (atau sejenis), itulah regex dalam formasi sederhana yang sudah kita kenal.

Flash-back
Ada komunikasi satu arah antara 2 software 'serupa namun tak sama' dari software versi desktop ke aplikasi versi web dengan menggunakan text file. Dulunya menggunakan 'LOAD DATA INFILE' sudah cukup menyelesaikan masalah. Tetapi, berhubung sejak Ubuntu 12.04 mulai menyertakan Mysql dengan 'LOAD DATA INFILE' yang di-disable, maka musti memikirkan cara lain. Ketika masalah upload file ke database sudah ditangani, ada kasus lagi bahwa boolean antara yang desktop dengan yang web berbeda, sehingga perlu konversi.

MYSQLIMPORT di windows

Wednesday, January 16, 2013 0 Comments

Setelah menggunakan mysqlimport di linux (baca : Ubuntu), akhirnya berkesempatan juga (terpaksa) menjajal mysqlimport versi Windows. Lho? Adakah yang berbeda? Pada awalnya saya pikir hanya dengan menggunakan full-path ke file mysqlimport.exe-nya sudah menyelesaikan masalah. Namun ternyata, setelah dicoba, eng-ing-eng.. Gagal. Duh!

Dengan syntax yang sama :
$ mysqlimport --user=root --password=password --delete
--fields-optionally-enclosed-by='"'--fields-terminated-by=';'
--fields-escaped-by='' --lines-terminated-by='\n' --local
database table.txt 
ternyata tidak bekerja dengan baik.

Saya menggunakan WAMPSERVER sebagai web server-nya. Karena 'musti' fullpath (bisa juga sih, setting global environment atau apapun dulu itu namanya; cuma karena terlalu ribet, jadinya yang simple aja, make full path), script saya otomatis jadi seperti ini :
shell_exec("D:\wamp\bin\mysql\mysql5.5.8\bin\mysqlimport.exe
--user=root --password= --fields-optionally-enclosed-by='\"'
--fields-terminated-by=';' --fields-escaped-by=''
--lines-terminated-by='\n' --local --delete
database
path/to/file");
Script di atas akan menghasilkan output yang sama seperti kalau hanya mengakses
D:\wamp\bin\mysql\mysql5.5.8\bin\mysqlimport.exe 
Bahkan dengan mengaksesnya langsung di command prompt sekalipun. Tentu, dengan menyesuaikan scriptnya, menghilangkan '\' yang tidak perlu.

[HOW-TO]
Setelah berpusing ria beberapa jam,  ketemulah solusinya. Seperti biasa, solusi yang sangat menjengkelkan dan sebenarnya sangat simple : me-replace semua ' (apostrophe) menjadi " (double-quote)

Meskipun pengen teriak sekeras-kerasnya, tetapi ada satu kepuasan tersendiri bisa solving masalah dengan usaha sendiri :D

Alternative to 'disabled-LOAD-DATA-INFILE' MYSQL

Tuesday, January 15, 2013 0 Comments

Mysql versi 5.5, mulai menonaktifkan fitur LOAD DATA INFILE, karena terkait masalah keamanan, katanya. Dan itulah sumber masalahnya. Bukan saya saja, hampir kebanyakan user di seluruh dunia yang sudah terbiasa memakai kenyamaman ber-LOAD-DATA-INFILE, mengalami trauma serupa *bahasa dialih-lebay-kan*
LOCAL works only if your server and your client both have been
configured to permit it. For example, if mysqld was started with
--local-infile=0, LOCAL does not work. See Section 6.1.6, 
“Security Issues with LOAD DATA LOCAL”.
Saya menggunakan Ubuntu 12.04, yang otomatis menyertakan MySQL versi 5.5 dengan LOAD DATA INFILE dinonaktifkan di reponya (default). Sayang sekali. Padahal salah satu sistem yang saya kembangkan cukup bergantung dengan adanya fitur tersebut. Dan itu cukup membuat repot! Bagaimana kalau besok diinstal di Ubuntu yang baru? Bagaimana jika anu? Bagaimana jika blah-blah-blah.. Tapi akhirnya saya dapat juga jawabannya.

Extend phpMyAdmin time out

Monday, January 14, 2013 0 Comments

[How To]
Here you are :
  1. Go find phpmyadmin's config.inc.php
    Ubuntu version (from repo/ not lampp)
    $ sudo gedit /etc/phpmyadmin/config.inc.php
  2. Add these lines to the bottom of the file
    $cfg['LoginCookieValidity'] = 60*60*24;
    ini_set('session.gc_maxlifetime', $cfg['LoginCookieValidity']); 
  3. Restart apache
    $ sudo service apache2 restart
  4. Done and continue your work :D

Note : if with above trick, still doesn't work, try to edit /etc/phpmyadmin/config.inc.php file, then search for
$cfg['Servers'][$i]['auth_type'] = 'cookie';
 then edit / add the following
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'your_mysql_username';
$cfg['Servers'][$i]['password'] = 'your_mysql_password';