Wednesday, April 30, 2014

pyxll: Python Addin untuk MS Excel

Setelah membahas library Python & PHP untuk baca-tulis Excel. Perlu juga diketahui addin Python untuk Excel, sehingga kita bisa membuat script otomasi di file Excel dengan bahasa Python. Selama ini saya hanya menggunakan visual basic MS Office untuk otomasi di file Excel.

Informasi selanjutnya:   https://www.pyxll.com/index.html

Tuesday, April 29, 2014

Python & PHP Library untuk MS Excel

Akhir-akhir ini pekerjaan ofisial saya banyak terkait extract data dari file Excel (xls atau xlsx) dan output ke file Excel. Berikut daftar library yang paling cocok untuk pekerjaan tsb.

PHP

PHPExcel (CodePlex)

Satu-satunya library yang bisa mengakomodasi segala keperluan saya untuk memproses file Excel dari PHP.
Fitur PHPExcel lengkap dari baca-tulis (dalam beragam format: xls, xlsx, csv, html, pdf), formatting-printing, menghandle Excel formula dan charting.
Sumber: https://phpexcel.codeplex.com/

Selain PHPExcel, Anda dapat menemukan proyek library lain untuk MS Office di GitHub PHP Office https://github.com/PHPOffice/

Python

Untuk Python pilihannya banyak, tetapi saya masih sulit menemukan sekelas PHPExcel di PHP.

OpenPyXl

Library untuk baca-tulis file Excel 2007 xlsx/xlsm. Fitur meliputi baca-tulis, formatting, charting dan handle formula Excel. Openpyxl diklaim sebagai port PHPExcel di atas untuk Python.
Sumber:  http://pythonhosted.org/openpyxl/#

PHP-Excel

Library terbagi menjadi 3 modul: xlrd untuk baca file excel, xlwt untuk menulis/membuat file excel dan xlutils untuk mengcopy atau modifikasi file excel yang ada.
 
Sumber: http://www.python-excel.org/, http://pythonhosted.org/xlutils/


 

Monday, March 03, 2014

Cara efektif menguras battery laptop

Beberapa hari ini batteray laptop saya terasa cepat habis. Sebelum membuangnya dan beli batteray baru, apalagi diakhir bulan :), ada baiknya kita perbarui kondisi laptop kita.  Membeli batteray baru adalah langkah terakhir.

Caranya adalah memakai sampai habis batteray kemudian di-charge ulang sampe penuh. Kita bisa cari di internet berbagai cara 'mencuci' batteray seperti itu. Satu tahapan yang harus dilakukan adalah memakai batteray sampai habis, alias menguras batteray. Bagi yang pernah melakukannya, pasti pernah merasakan lamanya menguras batteray. Berikut cara menguras yang lumayan cepat:

  1. Cabut sumber power AC, alias cabut power adaptor dari laptop.
  2. Buat tingkat kecerahan display ke maximum. Sepertinya ini cara paling cepat menguras batteray laptop Anda.
  3. Nyalakan koneksi wifi Anda, buka website yang otomatis memperbarui penampilan, seperti skore pertandingan olahraga ESPN
  4. Nyalakan juga bluetooth, kalau laptop Anda memilikinya
  5. Cari aplikasi yang bisa berjalan di background. Jalankan mereka. Kalau bisa lebih dari satu aplikasi. Misal, GoogleDesktop, yang melakukan indexing file-file komputer Anda. (ini salah satu aplikasi favorit saya, tetapi juga penyebab utama batteray laptop saya terkuras ;) Lainnya seperti antivirus, atau program-program drive-cloud seperti Dropbox, Google Drive dll.
  6. Gunakan semua koneksi USB laptop. Sambungkan konektor USB laptop ke peralatan seperti mouse, player DVD, hardisk external.
  7. Kalau CD/DVD player, gunakan untuk memutar musik atau video. Santai saja kalau videonya agak tersendat atau muncul flicker, itu tandanya batteray laptop Anda akan terkuras kurang dari 30 menit.
Selamat mencoba.

Friday, February 28, 2014

Membuat Symbolic Link di Windows 7

Fig 1. MKLINK.EXE

Sebagai programer yang banyak bekerja dengan command-line, baik untuk mengeksekusi tools pembantu, atau pun untuk otomasi, seringkali kita ingin berpindah dari satu folder ke folder lain, atau ingin mengakses secara cepat suatu file tanpa menghiraukan path file sesungguhnya. Maka kita memerlukan Symbolic Link file atau folder tersebut di folder kita bekerja sekarang.  

Symbolic Link adalah file atau folder simbolik yang menunjuk ke file atau folder sesungguhnya di sistem file. Bila Anda pengguna sistem operasi Unix-based, maka konsep ini familiar. Bila Anda pengguna Windows, konsep ini mirip dengan shortcut.

Shortcut hanya berlaku di desktop, sehingga bila Anda klik shortcut tersebut, maka File Explorer akan mengarahkan Anda ke folder fisik sesungguhnya. Bila Anda di mode command-line (CMD.EXE), kita tidak bisa berikan perintah CD (Change Directory) ke shortcut.
Misalnya kita buat shortcut file dari File Explorer untuk direktori "devel", seperti Fig 1. di bawah ini.

Fig 1. File shortcut untuk direktori "devel"
Maka misalnya, bila kita ingin menjalankan perintah CD, kita akan gagal.
Fig 2. Gagal masuk shortcut suatu folder dengan di console CMD
Solusinya adalah memanfaatkan tools mklink.exe, junction.exe atau linkd.exe. Artikel ini membahas solusi dengan tools mklink.exe. Sebagaiman Fig 1. di atas.

Fig 3. Opsi-opsi perintah MKLINK
Biasanya kita akan sering menggunakan opsi /D, untuk membuat symbolic link ke suatu folder. Tetapi jangan lupa, kita perlu previlige Administrator untuk menjalankan perintah ini. Oleh karenanya, kita harus menjalankan perintah CMD.EXE dengan 2 cara:

Cara pertama, dari Windows Start --> "Command Prompt", atau kalau "Command Prompt" tidak muncul, dari Windows Start --> All Programs --> Accessories --> Command Prompt.
Kemudian klik tombol kanan mouse, dan pilih "Run as Administrator"


Cara kedua, dari Windows Start, ubah input "search program" dengan "CMD", kemudian tekan Control+Shift Kiri+Enter.

Untuk membuat symbolic link dengan nama "folderA" untuk folder "C:/Program/FolderB" maka kita dapat memberikan perintah sebagai berikut di konsole CMD.EXE

 mklink \D folderA C:/Program/FolderB

Hati-hati:
Padanan perintah mklink.exe di unix-based (GNU) adalah perintah ln. Hanya saja, letak argumen link dan target terbalik.


Wednesday, February 19, 2014

Lingkungan pemrograman portabel dengan Vagrant

Bekerja sebagai programer dalam suatu tim lebih dari 8 orang sering membuat saya, sebagai sys-admin dan pemimpin teknis, harus kerja keras menyiapkan lingkungan yang bisa digunakan banyak orang dengan banyak preferensi. Tidak semua programer bekerja di lingkungan hardware dan software yang sama, bahkan sistem operasi  yang mereka gunakan juga berbeda. Setiap update hasil pekerjaan, integrasi dan testing, error dan bug seringkali terjadi karena konfigurasi system yang berbeda, misal: path dari command/perintah/program, konfigurasi database, konfigurasi aplikasi, library dll/so yang terinstal dlsb. Setelah pekerjaan coding selesai pun, instalasi ke sistem akhir juga menjadi masalah karena perbedaan lingkungan ini.

Hal yang sama juga terjadi saat saya harus mengelola kelas dengan sesi eksperimen pemrograman atau paling tidak demo. Setiap peserta/siswa memiliki laptop/komputer yang berbeda-beda. Biasanya sesi awal eksperimen habis waktu untuk menyelesaikan masalah instalasi dan konfigurasi tools. Oleh karenanya lebih suka menggunakan IDE/tools portable seperti Eclipse IDE, teks editor Notepad++ portable atau Sublime Text (favorit saya sekarang). Saya juga lebih suka menggunakan lingkungan shell seperti Cygwin atau semisalnya. Untuk web server saya lebih suka XAMPP (WAMPP atau LAMPP), sebab karena portabilitas mereka.

Sampai akhirnya saya install Virtual Box. Kami bisa saling berbagi image system, dan bisa bekerja di system yang memiliki kemiripan tinggi dengan target system dimana software kami akan diinstal. Permasalahannya adalah konfigurasi untuk bridging antara system image di Virtual Box dengan system operasi yang kami gunakan sebagai lingkungan pengembangan tidak semudah yang dibayangkan.

Kami juga menggunakan kontrol revisi seperti SVN dan Git. Tetapi mereka hanya menyelesaikan masalah sinkronisasi kode, bukan menyelesaikan masalah konfigurasi system. Tetap saja rekan-rekan tim memiliki konfigurasi database yang berbeda, misalnya: port, username dan password.

Tetapi, tetap saja saya, sebagai sys-admin, harus memastikan bahwa semua orang memiliki konfigurasi yang sama. Hal ini seringkali membuat saya frustasi. Sampai akhirnya saya berkenalan dengan Vagrant beberapa bulan ini.

Vagrant
Vagrant adalah tool untuk membuat dan mengkonfigurasi lingkungan pengembangan (software) yang ringan, reproducible dan portabel. Artinya, tidak ada lagi sakit kepala karena konfigurasi XAMMP, lingkungan virtual (virtual box) dan bekerja secara remote via SSH+FTP. Dengan satu file konfigurasi Vagrant akan mengerjakannya semua untuk kita. Selain itu kita bisa mengakses/mengedit source code kita dari OS dengan editor kesayangan kita selayaknya bekerja di lokal. Semua perubahan source-code akan disharing ke lingkungan virtual.

Instalasi dan dokumentasi di situs Vagrant sendiri cukup jelas bagi para pemula seperti saya.

Tuesday, February 04, 2014

Sublime Text: some useful keyboard shortcuts to remember

Sublime Text 2, adalah editor programmer favorit. Berikut beberapa shortcuts keyboard yang banyak digunakan:


  • ctrl+d - (** favorit) memilih kemunculan string yang terpilih. Sering saya gunakan untuk memulai multiple-cursor, sehingga saya bisa mengedit beberapa tempat (multipe cursor) secara simultan. Multiple-cursor ini adalah salah satu fitur terbaik yang menjadi alasan saya pindah ke Sublime Text.  
  • alt+f3, (** favorit) memilih seluruh kemunculan string yang terpilih, sehingga kita memilih multiple-cursor sebagaimana ctrl+d di atas.
  • ctrl+k, ctrl+b - (favorit) toggle sidebar (ditampilkan atau tidak)
  • f11 - toggle fullscreen
  • shift+f11 - (favorit) toggle Distraction Free, hanya menampilkan editor SAJA, sehingga kita tidak terganggu dengan window/menu lain (salah satu fitur yang juga membuat saya jatuh hati ke Sublime Text)
  • alt+. - menutup tag otomatis (mis: html)
  • ctrl+shift+p - menampilkan panel overlay "command"
  • ctrl+alt+p - menampilkan panel pemilih project
  • ctrl+p - (* favorit) menampilkan panel overlay "goto file", kita bisa jump ke file/code snippet (salah satu yang juga menyebabkan saya pindah ke Sublime Text)
  • ctrl+r - (* favorit) menampilkan panel overlay "goto method", kita bisa jump ke method yang diinginkan.
  • ctrl+g - (* favorit) menampilkan panel overlay "goto line",jump ke line tertentu
  • ctrl+; - (* favorit) menampilknna panel overlay "goto variable", jump ke variable tertentu
  • ctrl+shift+up - menukar posisi baris code dengan baris di atasnya
  • ctrl+shift+down - menukar posisi baris code dengan baris di bawahnya
  • ctrl+/ - toggle comment (per baris)
  • ctrl+shift+/ - toggle commen block (per blok)
  • ctrl+shift+d - menduplikasi baris
  • ctrl+` - menampilkan panel konsole
  • ctrl+space - autocomplete snippet yang sekarang terpilih
 Di package Emmet
  •  tab - (** favorit) menghasilkan format html berbasis syntax emmet, mempercepat coding html.

Catatan:
** favorit: paling favorit
* favorit: sering dipakai

favorit berbintang satu atau dua, adalah salah satu sebab saya meninggalkan editor lainnya.

Wednesday, January 29, 2014

NodeJS di dalam Meteor

Secara internal framework Meteor dibangun di atas NodeJS. Saat bekerja dengan Meteor, sebagai developer seringkali kita tidak peduli lagi NodeJS. Tetapi ada kalanya kita perlu tahu dimana path dari NodeJS. Ini langkah-langkahnya:
  1. Cari versi dari Meteor kita, kita namakan RELEASE. Maka dia terletak di ./.meteor/release/[RELEASE].release.json
  2. Lihat nilai dari key "tools", kita namakan TOOL_ID
  3. Maka path dari NodeJS adalah ./.meteor/tools/[TOOL_ID]/bin/node