29 Sep 2014

Ada teori diet atkins, diet keto (low-carb), diet low-fat, food combining, diet low-calorie, 3-hours diet, intermittent-fasting, paleo diet, dst..dst. Masing-masing teori ini sebagian besar dicetuskan oleh mereka yang punya latar belakang akademik yang bukan sembarangan. Masing-masing teorinya pun didukung dengan berbagai riset yang diklaim ilmiah. Masing-masing punya pengikut, dan masing-masing punya cerita sukses……. dan cerita gagal.

Lalu mana sebenarnya teori diet yang paling tepat, yang paling cepat menurunkan berat badan?

Tunggu.

Pernah lihat atau minimal dengar tentang buku-buku atau seminar cara jadi kaya? Pernah menemukan orang-orang yang mengikuti petunjuk dari buku atau seminar tersebut lalu berhasil? Ada juga yang gagal?

Lalu sebenarnya mana teori tentang cara jadi kaya ini yang benar?

Kurang lebih jawabannya sama dengan yang di atas tadi menurut saya.

on 29 Sep 2014 09:13 AM

26 Sep 2014

Al Yankovic dalam album terbarunya, “Mandatory Fun”, membuat sebuah lagu terbaru, “Mission Statement”. Lagu “Mission Statement” berbicara mengenai jargon-jargon kosong korporasi untuk menjelaskan arah yang hendak dicapai oleh sebuah perusahaan (korporasi).

Video klip ini dibuat oleh Truescribe dalam waktu 10 bulan. Menariknya, mereka pun merasa beruntung dengan adanya parodi olok ini. Mereka melakukan kontemplasi mengenai hal-hal yang sering terjadi ketika mempresentasikan ide di dalam korporasi.

Bekerja dengan Al mengajari mereka mengenai pentingnya keaslian dalam sebuah ide. Sering kali, kita menggembor-gemborkan fitur dan capaian tetapi sebenarnya itu hanyalah istilah-istilah pinjaman dari orang lain. Hal ini yang membuat sebuah pesan tak dapat tersampaikan dan kredibilitas pun dipertanyakan.

Sebagai seorang artis dan bukan pengamen, Al Yankovic jelas sekali membuat sebuah karya yang jenius dan dalam. Bahkan kaum profesional yang dioloknya pun mendapatkan pesan dan terinspirasi. Bukankah itulah tujuan seorang artis?

on 26 Sep 2014 06:34 AM

25 Sep 2014

Saya belum mengetahui efek yang lebih besar ketika mengetikan perintah, env x='() { :;}; echo vulnerable' bash -c "echo this is a test" pada Terminal. Ketika dicoba pada mesin virtual dengan sistem operasi yang lebih tua dari sistem operasi yang saya gunakan setiap hari tenyata muncul pesan:
vulnerable
this is a test
Berhubung mesin yang saya gunakan setiap hari selalu dimutakhirkan jadi saat menjalankan perintah diatas maka munculnya berbeda, seperti:
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x'
this is a test
Daripada pening dan bingung, SEGERA mutakhirkan versi Bash Anda ke versi 4.2x atau yg lebih tinggi.
on 25 Sep 2014 10:21 AM

24 Sep 2014

Ceritanya lagi belajar Oracle pake ASM, saat coba menaikkan ASM secara manual (karena tiba-tiba saat server dinyalakan ASM nya nggak naik otomatis) muncul galat seperti dibawah ini:

-bash-3.2$ . oraenv
ORACLE_SID = [orcl] ? +ASM
The Oracle base for ORACLE_HOME=/u01/app/oracle/product/11.2.0/grid is /u01/app/oracle

-bash-3.2$ asmcmd
Connected to an idle instance.
ASMCMD> startup
ORA-01078: failure in processing system parameters
ORA-29701: unable to connect to Cluster Synchronization Service
Connected to an idle instance.

Solusinya :

Keluar dari asmcmd, kemudian jalankan command di bawah ini (jangan lupa pastikan SID=+ASM)

-bash-3.2$ crsctl start resource ora.cssd
CRS-2672: Attempting to start 'ora.cssd' on 'dbserver'
CRS-2679: Attempting to clean 'ora.diskmon' on 'dbserver'
CRS-2681: Clean of 'ora.diskmon' on 'dbserver' succeeded
CRS-2672: Attempting to start 'ora.diskmon' on 'dbserver'
CRS-2676: Start of 'ora.diskmon' on 'dbserver' succeeded
CRS-2676: Start of 'ora.cssd' on 'dbserver' succeeded

kemudian coba start kembali ASM via “asmcmd”.

-bash-3.2$ asmcmd
Connected to an idle instance.
ASMCMD> startup
ASM instance started

Total System Global Area  284565504 bytes
Fixed Size                  1336036 bytes
Variable Size             258063644 bytes
ASM Cache                  25165824 bytes
ASM diskgroups mounted

ASMCMD> exit

Kemudian coba start database “orcl” nya.

-bash-3.2$ . oraenv
ORACLE_SID = [+ASM] ? orcl
The Oracle base for ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1 is /u01/app/oracle

-bash-3.2$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on Wed Sep 24 09:47:41 2014

Copyright (c) 1982, 2009, Oracle.  All rights reserved.

Connected to an idle instance.

SQL> startup
ORACLE instance started.

Total System Global Area  347340800 bytes
Fixed Size                  1336456 bytes
Variable Size             297798520 bytes
Database Buffers           41943040 bytes
Redo Buffers                6262784 bytes
Database mounted.
Database opened.

Selamat…

on 24 Sep 2014 07:33 AM

19 Sep 2014

Sebelum Ini

Ada beberapa syarat untuk dapat Memasang Deadlight.

  1. Sudah memasang PlayOnLinux.
  2. Sudah membeli/berniat membeli Deadlight dari STEAM. Saya tak sudi membantu pembajakan.
  3. Rasa haus mau belajar dan bermain.
  4. Semua dimulai dari Halaman Depan.
    PlayOnLinux front page

    PlayOnLinux front page

Selanjutnya proses pemasangan sederhana, kok. Intinya ada tiga kegiatan:

  1. Memasang WINE
  2. Memasang Lingkungan WINE untuk Steam.
  3. Memasang Steam
  4. Memainkan Deadlight

Gampang, bukan?

Memasang WINE

Untuk memasang WINE gunakan langkah seperti berikut.

  1. Dari Halaman Depan, buka menu Tools ⇒ Manage Wine versions
  2. Pastikan Anda ada di tab Wine versions (x86) untuk Wine 32-bit. Kebanyakan permainan masih memakai pustaka 32-bit.
    PlayOnLinux-WINE version Installer - 01 Pick Version

    PlayOnLinux-WINE version Installer – 01. Pick Version

  3. Pada tab tersebut, pada bagian Available Wine versions: pilihlah versi 1.7.24-LeagueOfLegendsCSMT dan tekan tombol “>” untuk dipasang.Saya tidak tertarik kepada LoL. Tetapi, teknologi CSMT membuat instruksi OpenGL berjalan secara paralel sehingga menghasilkan gambar lebih cepat.
  4. Terakhir, wisaya akan menanyakan konfirmasi Anda. Langsung saja Next.
PlayOnLinux-WINE version Installer - 00 Intro

PlayOnLinux-WINE version Installer – 00. Intro

 

Saya tidak sempat mengambil cuplikan proses pemasangan karena prosesnya di tempat saya terlalu cepat. Bukannya mau menyombongkan diri, tapi memang demikian. Setelah ini pun Wine yang kita inginkan telah tersedia.

Memasang Lingkungan WINE untuk Steam

Sekarang saatnya memasang Steam:

  1. Dari Halaman Utama pilih tombol Configure untuk membuka PlayOnLinux configuration
  2. Pada laman PlayOnLinux configuration, pilih tombol New untuk membuat sebuah lingkungan Wine baru. Menarik sekali kalau PlayOnLinux menamakan sebuah lingkungan Wine sebagai sebuah Virtual Drive.
    PlayOnLinux Configure page

    PlayOnLinux Configure page

  3. Pada laman Virtual Drive creator, tinggal Next saja.
    PlayOnLinux VirtualDrive creator

    PlayOnLinux VirtualDrive creator

  4. Seperti yang disebutkan sebelumnya, permainan Windows banyak menggunakan pustaka 32-bit. Maka, demi menjaga kompabilitas tinggi, langsung saja kita konfigurasikan Wine kita untuk lingkungan 32-bit.
    PlayOnLinux's Virtual Drive: Choose Architecture type

    PlayOnLinux’s Virtual Drive: Choose Architecture type

  5. Pilih Wine versi 1.7.24-LeagueOfLegendsCSMT.
    PlayOnLinux's Virtual Drive: Choose WINE Version

    PlayOnLinux’s Virtual Drive: Choose WINE Version

  6. Masukkan nama Lingkungan Wine yang baru dibuat.
    PlayOnLinux's Virtual Drive: Enter Wine's Environment name

    PlayOnLinux’s Virtual Drive: Enter Wine’s Environment name

  7. Sudah selesai.

Selanjutnya tutorial dimulai dari halaman PlayOnLinux configuration. Sebagai contoh, lingkungan WINE yang dipakai adalah “steamjp”. Iya, saya kurang kreatif dalam memberi nama. :)

Memasang Steam

Dari laman PlayOnLinux configuration, pilih lingkungan Wine yang baru saja kita pasang (contohnya, “steamjp”, lalu:

  1. Dengan “steamjp” terpilih, buka tab Install Components dan cari dan pilih Steam.
    PlayOnLinux configuration - Install Component - Steam

    PlayOnLinux configuration ⇒ Install Component ⇒ Steam

  2. Pilih tombol Install untuk memasang. Nanti PlayOnLinux akan menjalankan instalasi Steam. Pasang Steam seperti biasa. Oh, iya! Supaya gampang, saya memasang Steam pada direktori C:\Steam agar mudah diakses.
  3. Selesai.

Setelah itu, saatnya memainkan Deadlight.

Memainkan Deadlight

Pertama-tama, jalankan Steam pada lingkungan WINE. Ada setidaknya dua cara untuk menjalankan Steam:

  1. Cara keren dengan Command Line.
  2. Cara biasa dengan pemilih berkas.
  3. Cara unik dengan Task Manager.

Cara Keren

Cara keren dengan Command Line:

  1. Cara keren dengan menggunakan Command Line. Dapat dibuka dari tab Wine, pilih Command Prompt
    PlayOnLinux configuration - Wine - Command Line

    PlayOnLinux configuration ⇒ Wine ⇒ Command Line

  2. Dari Command Line, masuk ke direktori Steam dan jalankan Steam.exe.
    PlayOnLinux: Run Steam from command line

    PlayOnLinux: Run Steam from command line

Cara Biasa

Agar lebih mudah, sebaiknya Anda buat pintasan agar mudah diakses. Caranya, dari tab General pilih Make a new shortcut for this virtual drive untuk membuat tautan.

Selanjutnya, untuk menggunakan cara biasa dengan pemilih berkas:

  1. Buka tab Miscellaneous dan pilih Run a .exe file in this virtual drive
    PlayOnLinux: Run Steam from Miscellaneous

    PlayOnLinux: Run Steam from a file chooser

  2. Pilih Steam.exe untuk dieksekusi dan pilih Open.
    PlayOnLinux: Select Steam.exe to execute it.

    PlayOnLinux: Select Steam.exe to execute it.

  3. Steam pun berjalan.

Selesai.

Cara Unik

Steam pun dapat digunakan dengan menggunakan Task Manager. Bagi Anda yang terbiasa di Windows, Task Manager biasanya dinyalakan dengan kombinasi tombol CTRL+ALT+DEL. Untuk dapat menjalankan Task Manager:

  1. Buka tab Wine dan pilih Task manager
  2. Dari Task Manager, FileNew Task (Run…)
  3. Pilih Steam.exe dan jalankan.

Saya sengaja tidak bikin cuplikan karena gambarnya sama saja dengan Task Manager di Windows. Cuma, bedanya ini berjalan di GNU/Linux

Terakhir

Saya menggunakan MESA dari GIT dengan tambalan dari grup IXIT untuk Gallium Direct3D tracker (fitur ini tidak terpakai). Selain itu, spesifikasi komputer saya cukup tinggi:

  • AMD FX(tm)-8350 Eight-Core Processor @ 4GHz.
  • MSI 990FXA-GD80 dengan BIOS AMI versi 13.4.
  • Patriot Division 4 Viper Xtreme, 16GB (4x4GB) 1866 MHz
  • AMD Radeon HD 5770 (Juniper) dengan memori 256MB.

Selanjutnya, saya memakai konfigurasi grafis tinggi.

Deadlight's Display Settings

Deadlight’s Display Settings

Hasilnya? Tidak ada patah-patah sama sekali. Berikut galeri yang menyertai.

In-Game captured before making into the Hospital. Deadlight opening title, front page. Deadlight Credit

 

on 19 Sep 2014 03:54 PM
PlayOnLinux front page

PlayOnLinux front page

Cara paling gampang adalah dengan memasang dari repositori:

$ sudo apt-get install playonlinux

atau

$ sudo emerge -aq playonlinux

Selesai.

Versi Terbaru

Untuk versi terbaru, dapat menggunakan yang dari GIT. Saya sarankan untuk sudah memasang PlayOnLinux yang sudah ada di distro terlebih dahulu. Hal ini agar paket-paket ketergantungannya dipasang.

Jika sudah, langsung saja kloning repo GIT-nya:

$ git clone https://github.com/PlayOnLinux/POL-POM-4 playonlinux
Cloning into 'playonlinux'...
remote: Counting objects: 43849, done.
remote: Compressing objects: 100% (110/110), done.
remote: Total 43849 (delta 58), reused 0 (delta 0)
Receiving objects: 100% (43849/43849), 62.93 MiB | 982.00 KiB/s, done.
Resolving deltas: 100% (23122/23122), done.
Checking connectivity... done.

Nanti kalau mau memainkannya tinggal:

$ ./playonlinux/playonlinux

Atau sesuaikan dengan tempat Anda berada. Selesai!

Yak, sudah. Kok, bengong? Kurang panjang? :P

on 19 Sep 2014 02:09 PM
Sudah lama tidak berkunjung ke laman Proxmox, ternyata sudah gedhe. Proxmox saat ini telah merilis versi 3.3 dengan berbagai fitur baru dan menarik, http://pve.proxmox.com/wiki/Roadmap#Proxmox_VE_3.3. Sempat terbesit kehawatiran jika upgrade ke versi lebih tinggi terjadi masalah yang berujung install ulang. Berani tidak berani pokoknya saya harus meng-upgrade ke versi lebih baru.

Persiapan utama adalah mematikan semua virtual mesin. Selanjutnya dapat mengikuti langkah berikut:
2. Ubah hak aksesnya supaya dapat dijalankan, chmod 755 pve-upgrade-2.3-to-3.0.
3. Pastikan koneksi internet lancar kemudian jalankan perintah ./pve-upgrade-2.3-to-3.0.
4. Setelah selesai reboot server.
5. Tambahkan repositori deb http://download.proxmox.com/debian wheezy pve-no-subscription.
6. Upgrade dengan mengetikan perintah apt-get update && apt-get dist-upgrade.

Jika sudah selesai pastikan bahwa Proxmox yang kita gunakan sudah menggunakan versi 3.3 menggunakan perintah pveversion -v |grep pve-manager maka akan muncul seperti dibawah ini.
pve-manager: 3.3-1 (running version: 3.3-1/a06c9f73)

on 19 Sep 2014 09:06 AM

10 Sep 2014

Mungkin tiap hari kita sudah sering mendengar istilah ILC. Namun istilah ILC ini pertama kali saya dengar pada tahun 2002 saat pertama kali saya bergabung dengan KPLI Jogja. Di kalangan penggiat Linux, ILC lebih dikenal dengan sebutan Indonesia Linux Conference.

Tahun ini ILC akan diselenggarakan di Sinjai, Sulawesi Selatan. Tidak terasa acara ILC tinggal menunggu hari. Mungkin teman-teman KPLI Sinjai saat ini sudah mulai menyibukan diri mempersiapkan diri sebagai tuan rumah. Rangkaian acara ILC 2014 dimulai hari Jumat, 12 September 2014 dengan acara Pelatihan Firefox OS. ILC 2014 akan berakhir pada tanggal 14 September 2014 yang ditutup dengan wisata bersama. Rangkaian acara ILC 2014 secara lengkap dapat dilihat di http://www.linuxconf.web.id/acara/.
on 10 Sep 2014 04:30 PM

Konversi .pub di Linux

Dedy Hariyadi

Saya belum menemukan padanan aplikasi untuk membuka sebuah dokumen yang berekstensi .pub. Mencoba "bakar menyan" dapat petunjuk yang ceritanya serupa. Intinya berkas .pub dikonversi menggunakan layanan daring di www.pdfonline.com. Setelah terkonversi dapat diunduh dan dicetak. :)

Berhubung menggunakan layanan daring sebenarnya konversi bisa dilakukan di sistem operasi MS Windows, Mac OS atau Linux dengan bantuan peramban kesayangan Anda. Jika ada yang menemukan aplikasi di Linux untuk membuka dokumen .pub bisa meninggalkan di komentar.
on 10 Sep 2014 09:14 AM

SEMUA INI DAPAT MERUSAK TELEPON ANDA, LG G2. SAYA TIDAK BERTANGGUNG JAWAB ATAS RUSAKNYA TELEPON ANDA. RISIKO TANGGUNG SENDIRI!

Setelah mencoba-coba beberapa AOSP, LG G2 saya menjadi rusak dan tidak dapat digunakan. Saya pun mengembalikan ROM LG G2 saya ke kondisi awal seperti yang saya ceritakan sebelumnya. Saya pun mencoba mengulangi menjalankan apa yang telah saya lakukan sebelumnya. Namun, kali ini saya coba jalankan versi mudah dan terintegrasi dalam satu entri agar mudah dibaca keseluruhan.

Diasumsikan kondisi awal adalah LG G2 dengan ROM Kit Kat (4.4.2) asli dari pabrikan (D80220B).

[Perhatian, setelah ini banyak gambar cuplikan. Pastikan kuota Internet Anda cukup dan hati Anda cukup lapang menunggu proses pemuatan laman ini. Terima kasih kepada Bapak (hampir mantan) Menkominfo!]

Unduh Terlebih Dahulu

Agar memudahkan tutorial ini, sebaiknya Anda sudah mengunduh berkas-berkas yang diperlukan dalam tutorial ini agar sekali jalan. Berkas-berkas itu, antara lain:

  1. D802_AutoRec.apk
  2. KK_Baseband_D802.zip
  3. CloudyG3_1.3.zip
  4. LG_G3_BIONIC.zip
  5. LG_G3_DALVIK.zip
  6. QuickWindow_Fix_V2.zip
  7. LGMessage_fix.zip

Saya berharap sebelum memulai, pastikan bahwa berkas-berkas ini sudah diunduh ke LG G2 Anda.

Memasang Recovery ROM

Sumber bacaan: AutoRec: Kit Kat Recovery Installer

Untuk dapat memasang Recovery ROM yang telah terkustomisasi perlu dilakukan dua proses secara berurutan:

  1. Memasang izin admin (rooting/jailbreaking) pada LG G2.
  2. Memasang ROM Recovery yang telah terkustomisasi. Saya menggunakan Philz Recovery ROM.

Memasang Izin Admin

Memasang izin admin (rooting/jailbreaking) adalah proses penjebolan perangkat agar dapat menjalankan tindakan yang membutuhkan kewenangan admin (root/Administrator/super user). Pada umumnya perusahaan pembuat perangkat telepon mematikan fungsi ini. Untuk dapat memodifikasi telepon, maka fungsi ini perlu diaktifkan.

ROOT LG G2 dapat dilakukan dengan menggunakan ioroot seperti yang dijelaskan pada tulisan saya yang lalu.

Memasang ROM Recovery Terkustomisasi

Untuk memasang ROM Recovery dapat menggunakan AutoRec, sebuah aplikasi yang dibuat oleh cloudyfa, seorang pengembang di Forum XDA. Sayangnya, APK aplikasi ini tak dapat ditaruh di Google Play. Android umumnya tidak secara baku mengizinkan APK selain dari Google Play Store dipasang ke perangkat. Selanjutnya mengaktifkan pemasangan dari luar Google Play Store.

Mengaktifkan Pemasangan Di Luar Google Play Store

Sebelum memasang AutoRec, pastikan LG G2 Anda dapat memasang APK dari sumber selain Google Play Store. Caranya:

  1. Masuk ke Pengaturan
  2. Pada bagian Umum pilihlah Pengamanan
  3. Pada bagian Pengamanan, pastikan pilihan Sumber tak dikenal tercentang.
    I know this is a LG G3 settings, but it is the same as LG G2.

    I know this is LG G3 settings, but it is the same as LG G2. Tick the “Unknown sources”

Setelah itu, lanjutkan dengan memasang AutoRec.

Memasang AutoRec

Pasang APK AutoRec dari Forum XDA, caranya:

  1. Pergi ke halaman unduhan AutoRec dan unduh D802_AutoRec.apk ke LG G2 Anda.
  2. Buka berkas yang sudah diunduh dengan menggunakan Pengelola File dan pilih APK tersebut untuk menjalankan aplikasi.
    Click the AutoRec APK to install it

    Click the AutoRec APK to install it

  3. Pilih Instal ketika keyakinan Anda dipertanyakan.
    Click Install to proceed

    Click Install to proceed

  4. Setelah selesai, buka aplikasi dengan menekan Buka.
    Click Open to open AutoRec after installing it.

    Click Open to open AutoRec after installing it.

Sekarang saatnya menjalankan AutoRec.

Menjalankan AutoRec

AutoRec melakukan proses-proses berikut ini; 1) memasang versi aboot.img terdahulu yang bisa digunakan untuk memasang ROM terkustomisasi; 2) memasang TWRP, salah satu ROM Recovery yang terkustomisasi. Berikut caranya:

  1. Pada saat pertama kali menjalankan aplikasi akan ditanyakan izin menjalankan AutoRec sebagai admin.
    Click Allow to allow AutoRec runs as super user.

    Click Allow to allow AutoRec runs as super user.

  2. Kalau ditanya apakah Anda benar-benar mau melakukannya, pilih saja YES.
    Select YES for confirmation.

    Select YES to confirm custom recovery installation.

  3. AutoRec akan memasang Loki (semacam pemintas agar ROM Terkustomisasi dapat dipasang). Selanjutnya, pilih Flash Recovery untuk memasang TWRP.
    AutoRec running lokifying and install a custom kernel.

    AutoRec running lokifying and install a custom kernel.

  4. Setelah memasang TWRP, akan ditanyakan untuk melanjutkan masuk ke Recovery (TWRP) atau keluar dari aplikasi. Pilih To recovery untuk masuk TWRP atau pilih exit untuk keluar.

Selanjutnya memasang Philz Touch Recovery.

(Opsional) Memasang Philz Touch Recovery

Sumber bacaan: Philz Touch 6 Recovery How to Install

TWRP Main Menu

TWRP Main Menu

Sebenarnya menggunakan TWRP pun sudah bisa. Tapi, banyak yang menyarankan untuk memasang Philz Touch Recovery untuk LG G2. Hal ini karena Philz merupakan TWRP yang dimodifikasi untuk perangkat LG G2.

  1. Masuk ke Recovery LG G2. Caranya, entah dengan cara: 1) menyolok ke komputer dan mengetik “adb reboot recovery” dari komputer;2) dengan menu di AutoRec tadi; atau3) dengan menyalakan kembali sambil menahan tombol Daya dan Volum Turun.
  2. Di TWRP tekan tombol Install.
  3. Pilih install zip from sdcard.
  4. Pilih philz_touch_6.48.4-d802.zip.
  5. Seret jari Anda pada tombol Swipe to flash untuk memasang Philz Touch Recovery.
    Swipe your finger on the blue button and drag your finger to the right.

    Swipe your finger on the blue button and drag your finger to the right.

  6. Setelah itu, tekan tombol kembali sampai ke menu utama TWRP.
  7. Terakhir, untuk masuk ke Philz, pilihlah Reboot dan lalu pilih Recovery.

Maka apa bila tak ada aral melintang, maka sistem akan masuk ke Philz Touch Recovery.

Philz Touch 6 Recovery 6.48.4 main menu

Philz Touch 6 Recovery 6.48.4 main menu

Selanjutnya memasang ROM dan konfigurasi yang saya suka.

Memasang ROM Kesukaan Saya

Setelah memasang ROM Recovery yang terkustomisasi, saatnya memasang ROM LG G2 yang menurut saya bagus. Dari awal saya memiliki Android, saya selalu menganggap sistem operasi bawaan pabrik biasanya lambat, penuh aplikasi yang tak dibutuhkan, dan lawas. Dari Nexian Journey (A890)Sony Ericsson Xperia Mini Pro (Mango/SK17i), bahkan sampai iRobot (WM8505) yang dibelikan teman di Shenzhen tak pernah lepas dari modifikasi.

Untuk LG G2, setelah saya coba-coba beberapa ROM, saya pun berkesimpulan bahwa CloudyG3 paling optimal untuk kebutuhan saya. Tentunya, versi yang saya pasang bukan versi yang begitu saja. Saya memodifikasi beberapa bagian dari CloudyG3. Saya menambahkan: 1) pustaka Bionic dan Dalvik teroptimasi; dan 2) QuickWindow (aplikasi LG G2) untuk menggantikan Quick Circle (aplikasi LG G3).

Urutan memasang ROM dengan konfigurasi kesukaan saya secara garis besar dapat dijabarkan, yaitu:

  1. Menghapus seluruh partisi (System, Data, Cache, Dalvik Cache) kecuali Internal Storage sebelum memasang ROM.
  2. Memasang Baseband Kit Kat.
  3. Memasang CloudyG3 1.3.
  4. Memasang Bionic dan Dalvik.
  5. Memasang QuickWindow.
  6. Masuk ke sistem dan mengubah Dalvik menjadi ART.

Memasang CloudyG3

Sumber bacaan: CloudyG3 1.3

CloudyG3 adalah sebuah ROM untuk LG G2. Pengembangnya mengambil ROM LG G3 dan mengonversi ROM tersebut agar dapat dijalankan ke LG G2. Dengan menggunakan CloudyG3 sebenarnya seperti menyulap LG G2 menjadi LG G3. Cuma bedanya, ROM terkustomisasi ini lebih ringan dan teroptimasi.

Saya sudah pernah membahas cara memasang CloudyG3 dengan TWRP. Kali ini saya mencoba membahasnya dengan menggunakan Philz. Asumsi saya, kita sedang berada di halaman utama Philz. Berikut langkahnya.

Hapus Semua Partisi, Kecuali Internal Storage

Internal Storage itu adalah partisi yang terlihat ketika kita mencolokkan LG G2 ke komputer atau perangkat lain. Biasanya, kita mengunduh dan menaruh berkas-berkas ke situ, termasuk ROM. Itu sebabnya, cukup sisakan partisi itu dan hapus yang lainnya. Sebab, partisi yang lainnya akan diisi dengan sistem baru dari ROM yang kita pilih.

Cara hapus:

  1. Dari menu utama, pilih Wipe Data/Factory Reset
    Select Wipe Data/Factory Reset to delete all the partitions, except Internal Partition

    Select Wipe Data/Factory Reset to delete all the partitions, except Internal Partition

  2. Pilih Clean to Install a New ROM
    Clean to Install a New ROM

    Select Clean to Install a New ROM

  3. Pilih Yes, I will install a new ROM!
    Yes, I will install a new Rom!

    Select Yes, I will install a new Rom!

Setelah proses penghapusan sistem berhasil, kembali ke halaman depan Philz dengan memilih tombol kembali. Selanjutnya, demi menghemat tulisan ini, saya tak tampilkan cuplikan menu halaman depan Philz.

Pasang Baseband Kit Kat (Stock oleh CloudyFA)

Baseband adalah sebuah partisi khusus yang berisi informasi radio dan konfigurasi pabrik yang digunakan di telepon. Baseband penting untuk setiap ROM. Ada kalanya ROM berdasarkan AOSP atau Cyanogen menggunakan baseband yang berbeda dengan baseband bawaan perangkat.

Cara pasang:

  1. Dari menu utama pilih Install Zip
    Select Install Zip to install the ROMS.

    Select Install Zip to install the ROMS.

  2. Pilih Choose zip from /sdcard
    Choose zip from /sdcard

    Select Choose zip from /sdcard

  3. Pilih KK_Baseband_D802.zip
    Pick KK_Baseband_D802.zip

    Pick KK_Baseband_D802.zip

    Pemasangan
  4. Pilih Yes – Install  KK_Baseband_D802.zip
    Yes - Install KK_Baseband_D802.zip

    Select Yes – Install KK_Baseband_D802.zip

Selanjutnya pasang CloudyG3.

Memasang CloudyG3

Cara pasangnya sama dengan memasang Baseband, yakni:

  1. Dari menu utama pilih Install Zip
  2. Pilih Choose zip from /sdcard
  3. Pilih CloudyG3_1.3.zip
    Select CloudyG3_1.3.zip

    Select CloudyG3_1.3.zip

  4. Pilih Yes – Install CloudyG3_1.3.zip

Hmm… semakin lama saya semakin malas membuat cuplikan. Kira-kira sampai poin ini pemasangan komponen yang lain hanya repetisi saja. Begitu, deh. :-)

Memasang Pustaka Teroptimasi

Sumber bacaan: [Mod] [Nexus 5] Dalvik+bionic library optimization – Flashable

Saya sebenarnya sudah menjelaskan pada tulisan sebelum ini. Saya akan coba jelaskan lebih lengkap. Terutama alasan mengapa ini perlu.

Karena pustaka Android itu Kode Sumber Terbuka (Open Source Software) dan bukan Perangkat Lunak Bebas (Free Software), semua orang bisa saja mendistribusikan binari tanpa menyertakan kode sumber. Dalam hal ini, Qualcomm sebagai penyedia keping untuk perangkat Android dan beberapa pabrik menyediakan binari yang terkompilasi secara optimal untuk perangkat buatannya. Untungnya, karena ini Android, pustaka binari tersebut bisa dipakai di perangkat lain dengan spesifikasi yang (hampir) sama.

Ada dua pustaka yang ditawarkan: BIONIC dan Dalvik. Kalau pada pemasangan sebelumnya saya hanya memasang BIONIC, kali ini saya memasang juga Dalvik. Supaya kalau mau tetap di Dalvik atau kembali dari ART ke Dalvik, perangkat menggunakan pustaka yang teroptimasi.

Memasang Pustaka Bionic yang Teroptimasi

Sumber bacaan: Bionic (perangkat lunak)

Bionic adalah Pustaka C yang digunakan oleh sistem Android. Karena lisensi yang digunakan Bionic adalah BSD, maka Google memilih pustaka ini ketimbang GLIBC yang menggunakan LGPL. Lisensi BSD lebih ramah terhadap produk-produk tertutup (proprietary).

Untuk memasang Bionic:

  1. Dari menu utama pilih Install Zip
  2. Pilih Choose zip from /sdcard
  3. Pilih LG_G3_BIONIC.zip
  4. Pilih Yes – Install LG_G3_BIONIC.zip

Selanjutnya Dalvik.

Memasang Pustaka Dalvik yang Teroptimasi

Sumber bacaan: Dalvik (perangkat lunak)

Semua aplikasi Android adalah aplikasi Java. Aplikasi Java dijalankan oleh mesin JVM. Dalvik adalah mesin JVM yang menjalankan aplikasi-aplikasi tersebut di Android.

Awal mulanya Google menggunakan JAMVM. Namun, kemudian secara gradual pindah ke Dalvik. Kini, Google akan melakukan transisi lagi ke ART.

Cara pasang Dalvik:

 

  1. Dari menu utama pilih Install Zip
  2. Pilih Choose zip from /sdcard
  3. Pilih LG_G3_DALVIK.zip
  4. Pilih Yes – Install LG_G3_DALVIK.zip

Selanjutnya memilih ART.

Mengaktifkan ART

Ada di artikel sebelum ini.

Intinya:

  1. Pilih Pengaturan ⇒ Umum ⇒ Opsi pengembang
  2. Pilih Pilih waktu operasi
  3. Pilih Pakai ART
  4. Nyalaulangkan LG G2 dan tunggu agak lama.

Selanjutnya memasang Quick Window.

Memasang QuickWindow

Sumber bacaan: [MOD]QuickWindow Apps for G3 Ported Roms

LG membuat QuickCircle untuk perangkat LG G3-nya dan QuickWindow untuk LG G2-nya. Kedua aplikasi ini berguna untuk menampilkan layar kecil ketika tutup telepon (tambahan yang dapat dibeli) menutup perangkat. Dengan menggunakan tutup khusus ini, pengguna tak perlu membuka teleponnya untuk mengakses beberapa informasi.

Sayangnya, tutup telepon ini berbeda bentuk antara QuickCircle dan QuickWindow. Saya juga tak tertarik membeli tutup khusus untuk QuickCircle. Itu sebabnya, saya perlu mengganti aplikasi QuickCircle dengan QuickWindow agar sesuai dengan tutup telepon yang saya miliki.

(Opsional) Memasang ZIP QuickWindow

Sayangnya, ketika saya sudah panjang lebar menjelaskan, ternyata CloudyG3 versi 1.3 sudah menyertakan QuickWindow. Ya, sudah, tetap saja memasang QuickWindow demi kepuasan batin.

 

  1. Dari menu utama pilih Install Zip
  2. Pilih Choose zip from /sdcard
  3. Pilih QuickWindow_Fix_V2.zip
  4. Pilih Yes – Install QuickWindow_Fix_V2.zip

Selanjutnya, pasang QuickWindow Message Fix:

 

  1. Dari menu utama pilih Install Zip
  2. Pilih Choose zip from /sdcard
  3. Pilih LGMessage_fix.zip
  4. Pilih Yes – Install LGMessage_fix.zip

Selanjutnya memasang aplikasi-aplikasi yang kompatibel.

Memasang Aplikasi-aplikasi QuickWindow

Sumber bacaan: Quick Circle Apps

Aplikasi QuickWindow yang dipasang masih sedikit. Untungnya, ada pengembang di XDA yang membuat aplikas-aplikasi tambahan untuk memperkaya QuickCircle/QuickWindow. Silakan saja diunduh dari Google Play Store. Nanti dapat dipilih maksimal 6 dari aplikasi-aplikasi tersebut.

Cara mengubahnya dari:

  1. Pilih Pengaturan ⇒ Umum ⇒ Aksesoris
  2. Pilih Casing QuickCircle ⇒ Pilih aplikasi
  3. Beri tanda centang untuk maksimal 6 aplikasi yang tersedia untuk aktif di QuickCircle.
  4. Pilih Simpan

Nantinya yang muncul pada QuickWindow adalah ikon-ikon dari aplikasi yang kita telah pilih.

Optimasi Baterai

Untuk bisa tahu keunggulan ROM ini perlu penyesuaian beberapa hari. Hal ini karena sistem operasi mempelajari kelakuan pemakai perangkat. Untuk mengaktifkan fitur ini, silakan:

  1. Pilih Pengaturan ⇒ Umum ⇒ Baterai
  2. Aktifkan Pengisian daya pintar dengan memberi tanda centang.
    Enable smart charging based on our behavior.

    Enable smart charging based on our behavior.

Kata Terakhir

Yak, demikian akhirnya. Panjang dan lama sekali waktu yang diperlukan untuk menulis ini. Saya sendiri sudah mencoba mengulang memasang ini dari awal. Memang, beberapa konfigurasi hilang. Tapi, saya menemukan banyak hal baru.

Hasilnya? Ya, selain banyak fitur, terutama pada pemakaian normal saya bisa mendapatkan waktu aktif lebih dari 1 hari! Cuplikan tersedia!

Battery usage with several social media and two email accounts active.

Battery usage with several social media and two email accounts active.

Beberapa media sosial yang saya aktifkan, misalnya: Telegram, WhatsApp, LINE, BBM, Twitter, dan Instagram. Ada 2 akun surel yang aktif pula. Semua itu saya aktifkan sinkronisasi akunnya. Hasilnya, tetap irit.

Selamat mencoba dan berhati-hatilah.

 

 

 

 

on 10 Sep 2014 08:06 AM

09 Sep 2014

Pada bulan Mei lalu, saya mendapat kesempatan untuk presentasi dalam PyCon APAC 2014. Ini merupakan proposal pertama saya dalam PyCon. Masih banyak yang bisa diperbaiki! Saya masih perlu banyak belajar.

Brian Curtin, salah seorang direktur PSF, menulis di dalam blog, tentang bagaimana menulis proposal PyCon. Selamat membaca, semoga bermanfaat.

on 09 Sep 2014 08:26 PM

Rilis Video DebConf14

Zaki Akhmad

Komunitas Debian baru saja usai dengan debconf14. Tim video sudah merilis video konferensi ini. Wow, bananastastic!.

Saya jadi teringat, bagaimana saya berusaha membuat rekaman video kopdar Python Indonesia dengan segala keterbatasan sumber daya yang ada. Salut lah untuk tim video debconf14.

Di Indonesia sebenarnya saya lihat banyak pengguna Debian. Teman-teman di UI/ITB, misalnya. Namun belakangan dengan munculnya Ubuntu, saya kira generasi muda di Indonesia rasanya jadi lebih banyak yang menggunakan Ubuntu. Err tapi setahu saya sekarang teman-teman Blankon menggunakan Debian sebagai sistem base.

Selamat menonton! Bagi yang sudah menonton, tulisan resensi video akan berguna.

on 09 Sep 2014 06:43 AM

08 Sep 2014

Menurut Kevin McNamee seperti yang saya kutip dari Detikinet bahwa ponsel cerdas berbasis Android target paling mudah bagi malware. Pada pertemuan hari kedua pelatihan analisa malware di ID-SIRTII/CC membongkar malware yang terdapat di Android menggunakan AMOS. 

Tim Laboratorium Malware ID-SIRTII membuat sistem operasi berbasis Xubuntu untuk menganalisa malware yang disebut AMOS. Saat ini AMOS masih dalam pengembangan ke versi 2. Saat pelatihan saya mengunakan AMOS v1. Materi tentang AMOS dapat dilihat dibawah ini.

Masih seperti pertemuan pertama, saat membongkar kode-kode malware yang tetap dicari adalah mesin CNC sebagai penampung informasi-informasi penting pengguna ponsel. Dalam membongkar malware tidak cukup dengan 1 alat bantu saja, maka dari itu perlu ketekunan dalam menganalisa.

Seusai acara tidak ada salahnya foto bersama narasumber hari kedua dan sebagian peserta karena ada beberapa yang sudah pulang terlebih dahulu.
on 08 Sep 2014 05:23 AM

05 Sep 2014

Saya terkejut ketika saya membandingkan FLAC yang saya hasilkan dengan teknik sebelumnya ternyata sedikit berbeda dengan WAV dan data mentah CD. Hal ini dikonfirmasi juga oleh beberapa tulisan. Awalnya, banyak yang mengira ini efek plasebo karena sampai saat ini belum terbukti. Tapi, telinga berkata lain.

Kendati demikian, saya tetap memilih FLAC karena FLAC adalah format terbuka yang didukung oleh banyak perangkat. Saya, sih, mau coba menggunakan Wavpack, APAC, atau ALAC. Tapi, berhubung format-format tersebut eksotis, ya, saya urungkan niat.

Saya pun sekarang mengubah teknik saya dan benar-benar menggunakan bchunk. Untuk kesederhanaan, saya menggunakan contoh CD 2 dari Ultimate Worship 2014 yang saya miliki seperti artikel sebelumnya. Persiapan pun sama seperti artikel sebelumnya. Hanya langkah intinya yang berubah sedikit.

Inti Tulisan Ini

Pertama-tama, gunakan bchunk untuk memisahkan PCM mentah menjadi WAV:

bchunk -v -w "Various - Ultimate Worship 2014 [Disc 2].bin" tmp.cue out

Setelah itu, gunakan FLAC untuk mengubah WAV menjadi FLAC. Saya menggunakan konfigurasi baku saja tanpa embel-embel.

flac *.wav

Sisipkan tag ke dalam semua berkas FLAC.

cuetag.sh tmp.cue *.flac

Tambahkan tag-tag lainnya:

metaflac --set-tag='DISCTOTAL=2' --set-tag='DISC=2' --set-tag='album_artist=Various Artists' --import-picture-from=front.jpg out*.flac

Ganti nama berkas FLAC dengan yang lain:

lltag --yes --no-tagging --rename '%n. %a - %t' `ls out*.flac`

Selesai sudah!

Kata Terakhir

Anda sudah dapat memindahkan berkas-berkas FLAC tersebut. Hapus saja berkas-berkas WAV yang telah terbuat. Hasil FLAC ini jauh lebih baik dari sebelumnya.

Oh, iya, catatan terakhir. Komputer yang saya gunakan telah saya set ALSA-nya untuk menggunakan 44,1KHz bukan 48KHz seperti umumnya. Ini karena saya selalu mendengarkan lagu dari CD yang saya beli.

 

on 05 Sep 2014 08:45 AM

02 Sep 2014

masih ngomongin ngebangun usaha.
seperti artikel sebelumnya, sangat kecil kemungkinannya ketika memulai usaha, kemudian bisa langsung sukses.
yang sudah-sudah pasti gagal dan gagal lagi, gagal terus dan terus.
entah karena sepi, gak laku, kurang rame ataupun kurang sesuai target yang diinginkan

berikut beberapa mantan usaha yang sudah pernah saya jalani, gagal, kurang berhasil dan sudah saya tinggalkan tanpa pernah saya sesali...
- jualan kacang presto
- jualan nasi
- Pe eS an
- studio musik
- bikin web
- nulis buku
- jualan komputer
- kursus internet
- rental cd software
- google ads
- jualan anime naruto
- jualan dvd tutorial
- dll

ketika gagal, terjatuh dan kemudian bangkit lagi, kita sudah jauh lebih kuat, lebih terlatih, lebih berilmu daripada saat kita awal memulai.

seperti halnya orang belajar naik sepeda, ketika terjatuh semangat sekali untuk bangun kembali dengan satu keyakinan, saya coba lagi, tinggal dikit lagi saya akan bisa...

maka tips nya
1. sedini mungkin melatih diri memulai usaha, tujuannya buat menghabiskan jatah gagal dulu, karena apa? karena pasti gagal tidak mungkin tidak. usia2 anak sekolah adalah usia ideal untuk memulai usaha, usia anak kuliahan dah agak terlambat, tapi tidak mengapa. usia orang bekerja jg tetap masih bagus untuk mulai

2. kalau belajar berenang, jangan langsung pilih di lautan, minimal di kolam renang yang dangkal dulu.

banyak saya dengar kerja dulu buat kumpulin modal dulu yang banyak, kalau dah kumpul terus usaha, yang begini dah pasti gagalnya berdarah-darah, gak siap gagal, uangnya habis

gak percaya silahkan tanya yang abis dapet pesangon trus bikin usaha, yang abis jual tanah warisan trus dipake modal usaha dll tanpa pernah punya pngalaman usaha sebelumnya, banyak yg gagalnya parah.

untuk awal belajar usaha, jangan langsung di modal puluhan juta, ratusan juta dst nya, main di modal recehan dulu. ingat dalam usaha yang harus banyak bukanlah modal, ini pemikiran yang salah dan sesat.

yang lebih pas, yang harus banyak adalah keuntungan serta manfaat. contoh dulu saya jualan dvd tutorial untungnya bisa dapet jutaan padahal modal cuman 1 box dvd kosong yang harganya gak nyampe 50rb untungnya ratusan persen jauh diatas modalnya.
on 02 Sep 2014 10:35 PM

28 Aug 2014

Wanita Memang Menggoda

Dedi Gunawan

Kisah pilu seorang tabiin yg hafidz qur'an namun murtad pd saat berjihad. Hny krn asmara..

Lelaki gagah itu mengayunkan pedangnya menebas tubuh demi tubuh pasukan romawi. Ia adalah seorang tabiin (270H) yg hafal qur'an. Namanya adalah sebaik-baik nama, Abdullah bin Abdurrahim.

Keimanannya tak diragukan. Adakah bandingannya didunia ini seorang mujahid nan hafal quran. Namun lacur akhir hayatnya mati dalam kemurtadan dan hilang hafalannya melainkan 2 ayat saja yg tersisa. Yaitu surah al hijr ayat 2-3, rubamaa yawaddulladziina kafaru lau kaanu muslimiin, dzarhum ya`kulu wayatamatta'u wayulhihimul amal-fasaw faya'lamuun. (Org2 kafir itu diakhirat nnt sering menginginkan andai didunia dulu mrk muslim. Biarkanlah mrk mkn dn senang2, dilalaikan oleh angan2 kosong belaka, kelak mrk akan tahu akibatnya).

Seolah ayat ini adalah kutukan sekaligus peringatan اَللّه yg terakhir namun tak digubrisnya. Apakah penyebabnya?

Penyebabnya adalah wanita. Inilah kisahnya;

Pedangnya masih berkilat2 memantul sinar mentari. Masih segar berlumur merahnya darah org romawi. Ia hantarkan org romawi itu ke neraka dg pedangnya. Tak disangka nantinya dirinyapun dihantar ke neraka oleh seorang wanita romawi, tdk dg pedang melainkan dg asmara. Kaum muslimin sedang mengepung kampung romawi. Tiba2 mata Abdullah tertuju kpd seorang wanita romawi di dalam benteng. Kecantikan dan pesona wanita pirang itu begitu dahsyat mengobrak-abrik hatinya. Dia lupa bahwa tak seorangpun dijamin tak lolos su'ul khotimah.

Dia lupa bahwa maksiat dan pandangan haram adalah gerbang kekufuran. Tak tahan, iapun mengirimkan surat cinta kpd wanita itu. Isinya kurang lebih: "Adinda, bgm caranya agar aku bs smp ke pangkuanmu?" Perempuan itu mjwb: "Kakanda, masuklah agama nashrani maka aku jd milikmu."

Syahwat telah memenuhi relung hati Abdullah sampai2 ia mjd lupa beriman, tuli peringatan dan buta alquran. Hatinya terbangun tembok anti hidayah.

Khotamallaahu 'ala qulubihim wa'ala sam'ihim wa'ala abshorihim ghisyawah...
Astaghfirullah, ma'adzallah. Pesona wanita itu telah mampu mengubur imannya di dasar samudra. Demi tubuh cantik nan fana itu ia rela tinggalkan islam. Ia rela murtad.

Menikahlah dia didalam benteng. Kaum muslimin yg menyaksikan ini sngt terguncang.

Bgm mungkin? How come? Bgm bisa seorg hafidz yg hatinya dipenuhi alqur'an meninggalkan اَللّه dn mjd hamba salib? Ketika dibujuk utk taubat ia tak bs.

Dikatakannya bhw ia telah lupakan qur'an kecuali 2 ayat diatas sj dan ia bahagia hidup berlimpah harta dan keturunan bersama kaum nashrani. Dalam keadaan spt itulah dia sampai wafatnya.

Ya اَللّه seorang hafidz nan mujahid saja bs Kau angkat nikmat imannya berbalik murtad jika sudah ditetapkan murtad, apa lg hamba yg bnyk cacat ini. Tak punya amal andalan.

Saudaraku, doakan aku dan aku doakan pula kalian agr اَللّه lindungi kt dr fitnah wanita dan fitnah dunia serta dihindarkan dr ketetapan yg buruk diakhir hayat.

Ma taraktu ba'di fitnatan adhorro 'ala ar rijaal min nisaa...

"Tidaklah aku tinggalkan setelahku fitnah yg maha dahsyat bahayanya bagi lelaki kecuali fitnah wanita" (muttafaq 'alaih).

Disarikan dr tulisan DR. Hamid Ath Thahir dlm buku Dibawah Kilatan Pedang (101 kisah heroik mujahidin)
on 28 Aug 2014 01:04 PM

Intro

Pada tulisan kali ini, saya akan membahas tentang replikasi master-slave di mysql pada Ubuntu (Catatan: Di debian pun dengan cara yang sama). Untuk melakukan replikasi kita membutuhkan setidaknya dua buah host, pada kali ini saya menggunakan dua mesin dengan rincian:

  • master 192.168.57.27
  • slave 192.168.57.7

Setup mysql

Dengan asumsi kita mempunyai hak ases sudo dan belum terpasang maka kita harus melakukan pemasangan mysql server dengan cara sebagai berikut:

udienz@ubuntu:~$ sudo apt-get install mysql-server -y

Membuat pengguna replika

Dalam replikasi, kita membutuhkan user yang mempunyai hak untuk melakukan ke semua/satu database. Untuk itu silakan lakukan perintah dibawah ini pada master dan slave:

udienz@ubuntu:~$ mysql -u root -p

Anda akan di tanyakan kata sandi dari root, silakan isi kata sandi root anda. Setelah itu silakan ketik perintah dibawah ini:

mysql> create user 'penyalin'@'%' identified by '17agustusmerdeka!';
Query OK, 0 rows affected (0.00 sec)

mysql> grant replication slave on *.* to 'penyalin'@'%';
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> 

Mengatur master

Untuk mengatur salah satu mesin menjadi master, silakan mengikuti langkah berikut:

udienz@master:~$ sudo cp /etc/mysql/my.cnf /etc/mysql/my.cnf.orig
udienz@ubuntu:~$ sudo vim /etc/mysql/my.cnf

Langkah selanjutnya adalah mengubah harga dari variabel berikut:

  • server-id, silakan tanda # dibuang (yang biasanya di sebut dengan tanda komentar) dan diberikan nilai idientik dan tidak boleh sama dengan server lain
  • log_bin, silakan menghilangkan tanda # sehingga menjadi log_bin = /var/log/mysql/mysql-bin.log
  • bind-address, silakan di isi dengan ip yang ada atau 0.0.0.0 untuk running di semua ip yang tersedia di mesin.
  • Saya menambahkan isian untuk mengatur agar mysql tidak mereplikasi dan tidak memasukkan beberapa database ke log.

Dan berikut adalah perbedaan dari pengaturan yang saya buat

udienz@master:~$ diff -Nurp /etc/mysql/my.cnf.orig /etc/mysql/my.cnf
--- /etc/mysql/my.cnf.orig	2014-08-28 11:48:09.054434158 +0700
+++ /etc/mysql/my.cnf	2014-08-28 11:50:40.920524933 +0700
@@ -44,7 +44,7 @@ skip-external-locking
 #
 # Instead of skip-networking the default is now to listen only on
 # localhost which is more compatible and is not less secure.
-bind-address		= 127.0.0.1
+bind-address		= 192.168.57.27
 #
 # * Fine Tuning
 #
@@ -84,10 +84,18 @@ log_error = /var/log/mysql/error.log
 # The following can be used as easy to replay backup logs or for replication.
 # note: if you are setting up a replication slave, see README.Debian about
 #       other settings you may need to change.
-#server-id		= 1
-#log_bin			= /var/log/mysql/mysql-bin.log
+server-id		= 1921685727
+log_bin			= /var/log/mysql/mysql-bin.log
 expire_logs_days	= 10
 max_binlog_size         = 100M
+
+binlog-ignore-db=information_schema
+binlog-ignore-db=phpmyadmin
+binlog-ignore-db=performance_schema
+replicate-ignore-db=performance_schema
+replicate-ignore-db=test
+replicate-ignore-db=information_schema
+
 #binlog_do_db		= include_database_name
 #binlog_ignore_db	= include_database_name
 #

Kemudian cek kondisi master dengan perintah berikut:

mysql> show master status;
+------------------+----------+--------------+--------------------------------------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB                                 |
+------------------+----------+--------------+--------------------------------------------------+
| mysql-bin.000001 |      969 |              | information_schema,phpmyadmin,performance_schema |
+------------------+----------+--------------+--------------------------------------------------+
1 row in set (0.01 sec)

Dari hasil diatas mohon untuk mengingat hasil dari File yaitu mysql-bin.000001 dan Position yaitu 969 karena nantinya akan berguna bagi slave.

Langkash selanjutnya adalah mengexport database yang ada pada mesin master untuk diimport pertamakali di slave. Kenapa? dengan asumsi database sudah ada di master yang kemudian di slave, maka slave membutuhkan posisi start awal untuk melakukan replikasi, buka dari posisi awal database di master melainkan posisi sekarang di master.

udienz@master:/tmp$ mysqldump -u root -p pdns > pdns.sql
Enter password: 
udienz@master:/tmp$ ls -lah
total 16K
drwxrwxrwt  2 root   root   4.0K Aug 28 12:23 .
drwxr-xr-x 22 root   root   4.0K Aug 27 11:30 ..
-rw-rw-r--  1 udienz udienz 5.7K Aug 28 12:23 pdns.sql

Pengaturan slave

Silakan mengatur mysql di slave, pada intinya hampir sama dengan master, namun terdapat penambahan opsi relay-log dan server-id yang berbeda. Pada slave saya perbedaan dari config awal adalah sebagai berikut:

udienz@slave:~$ diff -Nurp /etc/mysql/my.cnf.orig /etc/mysql/my.cnf
--- /etc/mysql/my.cnf.orig	2014-08-28 12:25:37.864440783 +0700
+++ /etc/mysql/my.cnf	2014-08-28 12:27:19.495167636 +0700
@@ -44,7 +44,7 @@ skip-external-locking
 #
 # Instead of skip-networking the default is now to listen only on
 # localhost which is more compatible and is not less secure.
-bind-address		= 127.0.0.1
+bind-address		= 192.168.57.7
 #
 # * Fine Tuning
 #
@@ -84,10 +84,17 @@ log_error = /var/log/mysql/error.log
 # The following can be used as easy to replay backup logs or for replication.
 # note: if you are setting up a replication slave, see README.Debian about
 #       other settings you may need to change.
-#server-id		= 1
-#log_bin			= /var/log/mysql/mysql-bin.log
+server-id		= 192168577
+log_bin			= /var/log/mysql/mysql-bin.log
+relay-log               = /var/log/mysql/mysql-relay-bin.log
 expire_logs_days	= 10
 max_binlog_size         = 100M
+binlog-ignore-db=information_schema
+binlog-ignore-db=phpmyadmin
+binlog-ignore-db=performance_schema
+replicate-ignore-db=performance_schema
+replicate-ignore-db=test
+replicate-ignore-db=information_schema
 #binlog_do_db		= include_database_name
 #binlog_ignore_db	= include_database_name
 #

Restart daemon dari mysql dan import database dari master.

udienz@slave:~$ scp -r 192.168.57.27:~/pdns.sql . 
The authenticity of host '192.168.57.27 (192.168.57.27)' can't be established.
ECDSA key fingerprint is 4a:2b:a5:69:ee:98:72:f2:7a:e1:ff:22:09:83:ee:73.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.57.27' (ECDSA) to the list of known hosts.
udienz@192.168.57.27's password: 
pdns.sql                                                                                                                          100% 5827     5.7KB/s   00:00    
udienz@slave:~$ sudo /etc/init.d/mysql restart
 * Stopping MySQL database server mysqld                                                           [ OK ] 
 * Starting MySQL database server mysqld                                                                                                                     [ OK ] 
 * Checking for tables which need an upgrade, are corrupt or were 
not closed cleanly.
udienz@slave:~$ mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
mysql> create database pdns;
Query OK, 1 row affected (0.00 sec)

mysql> exit
Bye
udienz@slave:~$ mysql -u root -p pdns < pdns.sql 
Enter password: 

Masuk lagi ke mysql di slave untuk mengatur server master yang akan di replika

udienz@slave:~$ mysql -u root -p
mysql> slave stop; 
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> CHANGE MASTER TO MASTER_HOST = '192.168.57.27', MASTER_USER = 'penyalin', MASTER_PASSWORD = '17agustusmerdeka!', MASTER_LOG_FILE = 'mysql-bin.000001', MASTER_LOG_POS = 969; 
Query OK, 0 rows affected (0.07 sec)

mysql> slave start;
Query OK, 0 rows affected (0.00 sec)

Kemudian cek status dari slave, pastikan bahwa Slave_IO_Running dan Slave_SQL_Running mempunyai nilai YES

mysql> show slave status \G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.57.27
                  Master_User: penyalin
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000001
          Read_Master_Log_Pos: 969
               Relay_Log_File: mysql-relay-bin.000002
                Relay_Log_Pos: 253
        Relay_Master_Log_File: mysql-bin.000001
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB: 
          Replicate_Ignore_DB: performance_schema,test,information_schema
           Replicate_Do_Table: 
       Replicate_Ignore_Table: 
      Replicate_Wild_Do_Table: 
  Replicate_Wild_Ignore_Table: 
                   Last_Errno: 0
                   Last_Error: 
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 969
              Relay_Log_Space: 409
              Until_Condition: None
               Until_Log_File: 
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File: 
           Master_SSL_CA_Path: 
              Master_SSL_Cert: 
            Master_SSL_Cipher: 
               Master_SSL_Key: 
        Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error: 
               Last_SQL_Errno: 0
               Last_SQL_Error: 
  Replicate_Ignore_Server_Ids: 
             Master_Server_Id: 1921685727
1 row in set (0.00 sec)

mysql> 

Dan pastikan di master sudah ada slave yang tersambung

mysql> show slave hosts;
+-----------+------+------+------------+
| Server_id | Host | Port | Master_id  |
+-----------+------+------+------------+
| 192168577 |      | 3306 | 1921685727 |
+-----------+------+------+------------+
1 row in set (0.00 sec)

Jika terdapat problem silakan ketik

SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1; SLAVE START;

Bagaimana membuktikan kalau replikasi master-slave nya berhasil? silakan membuat database baru di master, atau membuat record baru di master. maka akan tampil di slave.

master

mysql> INSERT INTO domains (id, name, master, last_check, type, notified_serial, account) VALUES ('', 'ubuntu-xxx.com', NULL, NULL, 'NATIVE', NULL, NULL);
Query OK, 1 row affected, 1 warning (0.10 sec)

slave

mysql> select * from domains;
+----+----------------+--------+------------+--------+-----------------+---------+
| id | name           | master | last_check | type   | notified_serial | account |
+----+----------------+--------+------------+--------+-----------------+---------+
|  2 | ubuntu-xxx.com | NULL   |       NULL | NATIVE |            NULL | NULL    |
+----+----------------+--------+------------+--------+-----------------+---------+
1 row in set (0.00 sec)
on 28 Aug 2014 06:11 AM

27 Aug 2014

Lihat Penerapan Powerdns untuk blocking situs porno (part 1) untuk part 1

Download list situs porno.

Untuk mendapatkan list situs porno, saya menggunakan urlblacklist sebagai acuan. Silakan download pada halaman berikut

ubuntu:/tmp$ w3m http://urlblacklist.com/cgi-bin/commercialdownload.pl?type=download&file=bigblacklist
ubuntu:/tmp$ ls -1
bigblacklist.tar.gz
ubuntu:/tmp$ tar -xzvf bigblacklist.tar.gz
ubuntu:/tmp$ cd blacklists/porn/
ubuntu:/tmp/blacklists/porn$ ls
domains  expressions  urls
ubuntu:/tmp/blacklists/porn$ mv domains domains-dump

Langkah selanjutnya adalah memastikan bahwa daftar domain tersebut (filename domains) memiliki content yang benar dengan syarat merupakan domain , bukan PTR maupun daftar IP.

ubuntu:/tmp/blacklists/porn$ egrep -v -e '[0-9]$' -e '^\.' domain-dump |  sed -e '/\//d' > domains

Penjelasan:

  • Egrep merupakan perintah untuk menampilkan kontent dengan kondisi tertentu
  • -v merupakan kebalikan dari match, contoh secara umum bila kita ingin mengetahui ada kata linux di berkas, cukup dengan perintah ‘grep linux *’. Jadi bila menerapkan -v maka yang terjadi adalah ‘semua dimunculkan kecuali xxxx’
  • -e ‘[0-9]$’, merupakan regex yang memastikan bahwa tidak ada dalam daftar yang mempunyai akhiran numerik. Ini untuk mengantisipasi dalam daftar mengandung IP address
  • -e ‘^\.’, expresi ini akan mencari kondi dimana dalam daftar tersebut mempunyai awalan ‘\.’ dibaca ‘slash dan titik’. contoh \.udienz.my.id
  • domain-dump, berkas yang berisikan daftar domain
  • sed -e ‘/\//d’, merupakan perintah untuk membuang karakter / di akhiran domain, contoh: udienz.my.id/

Langkah selanjutnya adalah bagaimana caranya dari daftar domain berikut (dalam hal ini isi dari berkas domains) diimport ke powerdns. Dikarenakan powerdns menggunakan mysql record dalam melakukan tugasnya, maka kita tinggal membuat membuat semacam database untuk daftar domain porno. Saya membuat bash script kecil kecilan untuk import domain ke database.

Catatan: Bila diperhatikan dari script diatas, perhatikan letak berkas domains yang berisikan daftar domain porno.

Setelah saya eksekusi script diatas, pastikan di mysql database sudah tersedia records dns nya dengan cara sebagai berikut:

ubuntu:~$ mysql -u pdns -p17agustus pdns -e 'select * from domains limit 0,10;'
+----+---------------------------+--------+------------+--------+-----------------+---------+
| id | name                      | master | last_check | type   | notified_serial | account |
+----+---------------------------+--------+------------+--------+-----------------+---------+
|  1 | -xxx.com                  | NULL   |       NULL | NATIVE |            NULL | NULL    |
|  2 | 0--0--7--hardcoresex.dk   | NULL   |       NULL | NATIVE |            NULL | NULL    |
|  3 | 0--ass-cinema-newsp.da.ru | NULL   |       NULL | NATIVE |            NULL | NULL    |
|  4 | 0--bondage.dk             | NULL   |       NULL | NATIVE |            NULL | NULL    |
|  5 | 0--fightingshaving.da.ru  | NULL   |       NULL | NATIVE |            NULL | NULL    |
|  6 | 0--foodwarez.da.ru        | NULL   |       NULL | NATIVE |            NULL | NULL    |
|  7 | 0--gratis.dk              | NULL   |       NULL | NATIVE |            NULL | NULL    |
|  8 | 0--lesbians.dk            | NULL   |       NULL | NATIVE |            NULL | NULL    |
|  9 | 0--oralsex.dk             | NULL   |       NULL | NATIVE |            NULL | NULL    |
| 10 | 0--sex.dk                 | NULL   |       NULL | NATIVE |            NULL | NULL    |
+----+---------------------------+--------+------------+--------+-----------------+---------+

Pastikan juga domain nya mempunyai record A/NS/SOA di database dengan cara sebagai beikut (misal domain 0–sex.dk dengan domain id 10):

ubuntu:~$ mysql -u pdns -p17agustus pdns -e 'select type,content from records where domain_id = '10' limit 0,10;'
+------+----------------------------------------------------------------------------------+
| type | content                                                                          |
+------+----------------------------------------------------------------------------------+
| SOA  | pdns.sby.rad.net.id hostmaster.sby.rad.net.id 2014082716 10800 1800 604800 86400 |
| A    | 127.0.0.1                                                                        |
| NS   | localhost                                                                        |
| MX   | 0--sex.dk                                                                        |
| A    | 127.0.0.1                                                                        |
+------+----------------------------------------------------------------------------------+

Cek juga dengan dig

ubuntu:~$ dig any @localhost 0--sex.dk

; <<>> DiG 9.9.5-3-Ubuntu <<>> any @localhost 0--sex.dk
; (2 servers found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 35740
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 2800
;; QUESTION SECTION:
;0--sex.dk.			IN	ANY

;; ANSWER SECTION:
0--sex.dk.		3600	IN	SOA	pdns.sby.rad.net.id. hostmaster.sby.rad.net.id. 2014082716 10800 1800 604800 86400
0--sex.dk.		3600	IN	MX	0 0--sex.dk.
0--sex.dk.		3600	IN	NS	localhost.
0--sex.dk.		3600	IN	A	127.0.0.1

;; Query time: 2 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Wed Aug 27 17:31:12 WIB 2014
;; MSG SIZE  rcvd: 159

Selamat pdns anda sudah bisa melakukan bloking situs porno!

on 27 Aug 2014 10:34 AM

Untuk membloking situs porno, sebenarnya bisa dilakukan dengan powerdns. Berikut adalah langkah langkahnya.

Persiapan sistem

Sebelum memasang powerdns, alangkah baiknya memastikan sistem telah mendapatkan database paket terbaru. Saya menggunakan sumber dari buaya.klas.or.id untuk mendapatkan paket Ubuntu seperti dibawah:

Silakan simpan di /etc/apt/sources.list, kemudian update system.

$ sudo apt-get update
$ sudo apt-get dist-upgrade -y

Instalasi powerdns

Silakan ketik perintah dibawah ini untuk melakukan instalasi powerdns.

ubuntu:~$ sudo apt-get install mysql-server -y

Pada saat instalasi mysql-server kita akan ditanya kata sandi untuk mysql-server, kali ini saya menggunakan kata sandi merdeka. Selanjutnya melakukan pemasangan powerdns dan backendnya.

ubuntu:~$ sudo apt-get install pdns-server pdns-backend-mysql -y

Pada saat istalasi kita akan di beripilihan untuk mengatur database paket pdns-backend-mysql dengan dbconfig-common, saya memilik untuk YES. Kemudian silakan isikan katasandi mysql, dan memasukkan lagi kata sandi mysql untuk paket pdns-backend-mysql, kali ini saya menggunakan password 17agustus. Silakan pengaturan powerdns dengan perintah berikut:

ubuntu:~$ sudo cat /etc/powerdns/pdns.d/pdns.local.gmysql.conf 
# MySQL Configuration
#
# Launch gmysql backend
launch=gmysql

# gmysql parameters
gmysql-host=localhost
gmysql-port=
gmysql-dbname=pdns
gmysql-user=pdns
gmysql-password=17agustus
gmysql-dnssec=no
# gmysql-socket=

Dikarenakan kita tidak menggunakan bind sebagai backend, maka kita harus mendisable pengaturan bind. Kemudian mengatur agar powerdns bisa menjadi resolver dengan menambahkan kolom recursor.

ubuntu:~$ cd /etc/powerdns/pdns.d/  
ubuntu:/etc/powerdns/pdns.d$ sudo mv pdns.simplebind.conf pdns.simplebind.conf.disabled
ubuntu:/etc/powerdns/pdns.d$ cd ..
ubuntu:/etc/powerdns$ sudo cp pdns.conf pdns.conf.orig
ubuntu:/etc/powerdns$ sudo sed -i -e '/^#/d' -e 's/ //g' -e '/^$/d' pdns.conf
ubuntu:/etc/powerdns$ sudo cat pdns.conf
allow-recursion=127.0.0.1, 192.168.0.0/16
config-dir=/etc/powerdns
daemon=yes
disable-axfr=yes
guardian=yes
local-address=0.0.0.0
local-port=53
module-dir=/usr/lib/powerdns
setgid=pdns
setuid=pdns
socket-dir=/var/run
version-string=powerdns
recursor=8.8.8.8:53
include-dir=/etc/powerdns/pdns.d
ubuntu:/etc/powerdns$ sudo service pdns restart
 * Restarting PowerDNS Authoritative Name Server pdns

Langkah selanjutnya adalah mencoba apakah powerdns dapat berfungsi sebagai resolver dengan cara sebagai berikut:

ubuntu:/etc/powerdns$ host ubuntu.com localhost
Using domain server:
Name: localhost
Address: 127.0.0.1#53
Aliases: 

ubuntu.com has address 91.189.94.156
ubuntu.com mail is handled by 10 mx.canonical.com.

Tips: Bila anda mempunyai network lain secarai client, anda dapat menambahkan network nya di isian allow-recursion

Selanjutnya di part 2

on 27 Aug 2014 08:32 AM

26 Aug 2014

Failed to run Bumblebee

Ronald Gautama

I have the common issue. When I try to run something through optirun, I get the following: [13395.278406] [ERROR]Cannot access secondary GPU - error: [XORG] (EE) intel(0): [drm] failed to set drm interface version: Permission denied [13]. [13395.278522] [ERROR]Aborting because fallback start is disabled. Specification: Ubuntu GNOME 14.04 NVIDIA Corporation GeForce GT 520M Nvidia 331 […]
on 26 Aug 2014 04:27 AM

25 Aug 2014

Now let’s try to write simple code.
Open your Arduino IDE and type the codes below. I will not explain about the coding in this article yet. Just try it first.
This code will tell arduino to turn on and turn off the led light on arduino board or supply 5 volt to pin 13 every 1 second continuously.

———————————————————————————-
/* Program: Hello Word!!
   Code by: Taufan     */

const int pinLED = 13; // set pinLED as integer (number) with value13
void setup() {
pinMode(pinLED, OUTPUT); //set pin number 13 as Output.
}

void loop() {
digitalWrite(pinLED, HIGH); //supply voltage 5 volt via pin 13
delay(1000); //delay (keep turn on) for 1000 milli second (1 second).
digitalWrite(pinLED, LOW); //turn off the voltage at pin 13.
delay(1000); // keep turn off for 1 second
//repeat again.. (loop)
}
———————————————————————————-
After you type the codes, you verify it first or upload it to arduino board to run the program.
To verify the program, just click the ‘verify button’ with sign ‘‘. Verify mean, it only check if there is any error codes.
arduino_05
Or, you can press ‘Upload button’. It will verify and upload the codes at the same time to Arduino board.
arduino_06

Compiling in process…
arduino_07

Compiling and uploading the codes to arduino board is done. You can see the information at the bottom. Your total codes is 1,076 bytes of 32,256 byte maximum that you upload to arduino.
arduino_08

You can check the result at your arduino board. The program will tell arduino board to turn on the led light for 1 second, turn it off for 1 second then turn it on again. It will be repeated until we upload another code to the arduino board. The codes will stay in the board even the power source is plug off.
arduino_09
arduino_10

You can insert the Led light directly to pin 13. The long leg is Anode (+) and Short Leg is Cathode (-). It’s recommended to use resistor to decrease the current otherwise it will burn your Led. But, you don’t need it for pin 13 in arduino. It has built in resistor already.
arduino_11
If you want to try with LED light, plug in the long leg to pin 13 and the short leg to GRN (ground) pin.
arduino_12
arduino_13
Well… happy trying.


on 25 Aug 2014 09:01 PM

Before we start, I will explain a bit about few terminologies that you should know first.

Since Arduino is a type of a micro-controller, so what is Micro-Controller?
Micro-controller is a small computer on single integrated circuit board containing a processor core, memory and programmable input/output peripherals. Processor is the brain that do the process for all instructions given from the programmer. Memory is the temporary place to keep all instructions before processed by the processor. And programmable input/ouput mean that we can program Arduino to do something and change it with new program in the future.

What is the benefit using Arduino?
You can program arduino to control anything. From the simple one, light on an LED light to more complicated one. You can use it to monitor the temperature, wind speed, home automation (Music, TV, Fan, Pump, Lamps, water plant), check gas leaking, motion sensor, light sensor, heart beat sensor, robot etc. etc..
The limitation from the implementation arduino is your idea.

What you should know if you want to use Arduino?
You have to know at least basic C programming language and basic function of electronics like transistor, resistor, diode, relay, AC power and DC power. Because basically arduino is only supply and receive electric DC current through its pins, digital and analog. Just simple like that.

What are the types of Arduino?
First generation of manufactured Arduino is NG (new generation). NG used the Atmega8 chip running at 16MHz, 6K memory and run at 19200 baud. The next version was Diecimila with Atmega168 chip, 16MHz, 16 kilo byte (K) memory but still still run at 19200 baud.

In 2009 Duemilanove was released with Atmega328, 32K memory and run at 57600 baud. There is a good thing in this version. The power supply can be switched from USB to DC. Finally Arduino can be stand alone.

All of the above version use 2KB bootloader and FTDI (FT232RL) chip to control the USB interface. FT232RL is royalty free driver but it is only act as USB port. You can can’t use it with keyboard, mouse, MIDI etc.

In 2010, we got Uno. Uno in Italian mean ‘One’. It’s named to mark the upcoming release of Arduino 1.0. The Uno and version 1.0 will be the reference versions or Arduino. Uno still use Atmega328 but has smaller bootloader (521bytes) mean that you get another additional 1.5K free extra flash memory for programming. It also has atmega8u2 chip to replace FT232RL which allows various type USB interface. Now it runs at 115K baud. You can upload your codes in 3 seconds.

Arduino Uno board (front side)
ArduinoUnoFront

Arduino Uno board (back side)
ArduinoUnoBack
Until this version, Arduino chip only can run at max 16Mhz because it’s only 8-bit. May be it is not really intended for fast processing. Arduino also is still open source electronics prototyping platform for the software and the hardware.

When I write this article, Arduino Uno has already got revision 2 and revision 3.

In revision 2, there is additional resistor pulling the 8U2 HWB line to ground, make it easier to put into DFU (Device Firmware Update) mode. Mean, now you update your firmware without need to replace the chip.

In revision 3, added SDA and SCL pin that are near to the AREF pin and 2 other new pins placed near to the RESET pin, the IOREF that allow ‘shields’ to adapt to the voltage provided from the board. Atmega16U2 replace the 8U2.

Summary

Microcontroller ATmega328
Operating Voltage 5V
Input Voltage (recommended) 7-12V
Input Voltage (limits) 6-20V
Digital I/O Pins 14 (of which 6 provide PWM output)
Analog Input Pins 6
DC Current per I/O Pin 40 mA
DC Current for 3.3V Pin 50 mA
Flash Memory 32 KB (ATmega328) of which 0.5 KB used by bootloader
SRAM 2 KB (ATmega328)
EEPROM 1 KB (ATmega328)
Clock Speed 16 MHz

You can power Arduino Uno using USB connection or an external power supply. The power source is selected automatically. The external (non USB) power can come from an AC-to-DC adapter or battery. The board can operate on an external supply of 6 to 20 volts.
The recommended range is 7 – 20volts.
If the supply is lower than 7 volts the 5V pin may supply less than 5 volt and the board maybe unstable.
If the supply is more than 12 volts, the voltage regulator may over heat and damage the board.


What OS that I can use to upload codes to the Arduino?
You can use Linux, Mac or Windows.
The good thing is for Mac and Linux user, you don’t have to install the driver. Unfortunately for Windows you have to do manually (update the .INF file).

I don’t know if it apply to Mac. I’ve tried with Windows and Linux. The speed of uploading code in Linux is much faster compare to Windows.

Before I explain further about Arduino, it will be easier if we experience it ourself. In this tutorial I use Arduino Uno. To write the codes and upload it into Arduino board you need an open source Arduino IDE (Integrated Development Environment) application.

You can download it free from www.arduino.cc .
The last version that I downloaded is arduino-1.0.5-linux32.tgz.

How to install Arduino IDE in Linux Ubuntu?
There are few files library that need to be installed before you can run the arduino IDE.
These library files are:
-gcc-avr
-avr-libc
-avrdude
-openjdk-6-jre

You can install are the libraries through Linux Terminal.
Make sure you are connected to the Internet.
Open you Linux Terminal, then type the command below:

taufanlubis@taufanlubis:~$ sudo apt-get install gcc-avr avr-libc avrdude
[sudo] password for taufanlubis:
Reading package lists… Done
Building dependency tree
Reading state information… Done
The following extra packages will be installed:
binutils-avr
Suggested packages:
avrdude-doc task-c-devel gcc-doc gcc-4.2
The following NEW packages will be installed:
avr-libc avrdude binutils-avr gcc-avr
0 upgraded, 4 newly installed, 0 to remove and 7 not upgraded.
Need to get 14.6MB of archives.
After this operation, 52.8MB of additional disk space will be used.
Do you want to continue [Y/n]? y
WARNING: The following packages cannot be authenticated!
binutils-avr gcc-avr avr-libc avrdude
Install these packages without verification [y/N]? y
Get:1 http://archive.ubuntu.com/ubuntu/ lucid/universe binutils-avr 2.20-2 [3,966kB]
Get:2 http://archive.ubuntu.com/ubuntu/ lucid/universe gcc-avr 1:4.3.4-1 [5,347kB]
Get:3 http://archive.ubuntu.com/ubuntu/ lucid/universe avr-libc 1:1.6.7-1ubuntu2 [5,117kB]
Get:4 http://archive.ubuntu.com/ubuntu/ lucid/universe avrdude 5.10-1ubuntu1 [198kB]
Fetched 14.6MB in 14min 48s (16.5kB/s)
Selecting previously deselected package binutils-avr.
(Reading database … 172336 files and directories currently installed.)
Unpacking binutils-avr (from …/binutils-avr_2.20-2_i386.deb) …
Selecting previously deselected package gcc-avr.
Unpacking gcc-avr (from …/gcc-avr_1%3a4.3.4-1_i386.deb) …
Selecting previously deselected package avr-libc.
Unpacking avr-libc (from …/avr-libc_1%3a1.6.7-1ubuntu2_all.deb) …
Selecting previously deselected package avrdude.
Unpacking avrdude (from …/avrdude_5.10-1ubuntu1_i386.deb) …
Processing triggers for man-db …
Setting up binutils-avr (2.20-2) …
Setting up gcc-avr (1:4.3.4-1) …
Setting up avr-libc (1:1.6.7-1ubuntu2) …
Setting up avrdude (5.10-1ubuntu1) …
taufanlubis@taufanlubis:~$
taufanlubis@taufanlubis:~$ sudo apt-get install openjdk-6-jre
[sudo] password for taufanlubis:
Reading package lists… Done
Building dependency tree
Reading state information… Done
The following extra packages will be installed:
icedtea-6-plugin icedtea-netx icedtea6-plugin
Suggested packages:
icedtea-plugin
The following NEW packages will be installed:
icedtea-6-plugin icedtea-netx
The following packages will be upgraded:
icedtea6-plugin openjdk-6-jre
2 upgraded, 2 newly installed, 0 to remove and 5 not upgraded.
Need to get 924kB of archives.
After this operation, 844kB of additional disk space will be used.
Do you want to continue [Y/n]? y
WARNING: The following packages cannot be authenticated!
icedtea6-plugin openjdk-6-jre icedtea-netx icedtea-6-plugin
Install these packages without verification [y/N]? y
Get:1 http://security.ubuntu.com/ubuntu/ lucid-security/main icedtea6-plugin 6b21.2.3-0ubuntu0.10.04.1 [936B]
Get:2 http://security.ubuntu.com/ubuntu/ lucid-security/main openjdk-6-jre 6b31-1.13.3-1ubuntu1~0.10.04.1 [219kB]
Get:3 http://security.ubuntu.com/ubuntu/ lucid-security/main icedtea-netx 1.2.3-0ubuntu0.10.04.1 [508kB]
Get:4 http://security.ubuntu.com/ubuntu/ lucid-security/main icedtea-6-plugin 1.2.3-0ubuntu0.10.04.1 [197kB]
Fetched 924kB in 54s (17.1kB/s)
(Reading database … 174112 files and directories currently installed.)
Preparing to replace icedtea6-plugin 6b20-1.9.10-0ubuntu1~10.04.2 (using …/icedtea6
plugin_6b21.2.3-0ubuntu0.10.04.1_all.deb) …
Unpacking replacement icedtea6-plugin …
Preparing to replace openjdk-6-jre 6b20-1.9.10-0ubuntu1~10.04.2 (using …/openjdk-6-jre_6b31-1.13.3-1ubuntu1~0.10.04.1_i386.deb) …
Unpacking replacement openjdk-6-jre …
Selecting previously deselected package icedtea-netx.
Unpacking icedtea-netx (from …/icedtea-netx_1.2.3-0ubuntu0.10.04.1_i386.deb) …
Selecting previously deselected package icedtea-6-plugin.
Unpacking icedtea-6-plugin (from …/icedtea-6-plugin_1.2.3-0ubuntu0.10.04.1_i386.deb) …
Processing triggers for hicolor-icon-theme …
Processing triggers for desktop-file-utils …
Processing triggers for python-gmenu …
Rebuilding /usr/share/applications/desktop.en_US.utf8.cache…
Processing triggers for menu …
Processing triggers for man-db …
Processing triggers for python-support …
Setting up openjdk-6-jre (6b31-1.13.3-1ubuntu1~0.10.04.1) …
Setting up icedtea-netx (1.2.3-0ubuntu0.10.04.1) …
update-alternatives: using /usr/lib/jvm/java-6-openjdk/jre/bin/itweb-settings to provide /usr/bin/itweb-settings (itweb-settings) in auto mode.
Setting up icedtea-6-plugin (1.2.3-0ubuntu0.10.04.1) …
Setting up icedtea6-plugin (6b21.2.3-0ubuntu0.10.04.1) …
Processing triggers for menu …
taufanlubis@taufanlubis:~$

After all library files are installed then you can extract the arduino IDE files and run the application.
In order to do that, just go your download folder, select the file, right-click mouse button then select “Extract Here” menu to extract the zip file.
arduino_01

You will get ‘arduino-1.0.5′ folder.
arduino_02

Go inside the folder and there is file name ‘arduino’. That’s the shell script file that we need to run to get the arduino IDE screen. Just double click the file.
arduino_03

If everything run smoothly, you will the screen below.
The default port is COM1. You have to tell Arduino IDE which Arduino type that you have.
arduino_04

Connect your arduino using the USB cable.
arduino_4a

Go to ‘Tools > Board‘ menu then select your arduino type.
On the right buttom screen you will the connection status.
arduino_04c

My arduino is connected via/dev/ttyACM0.
arduino_04b
That’s it. Now you are connected and ready to upload your codes.


on 25 Aug 2014 08:56 PM

Screen Shot 2014-08-25 at 2.37.04 PM
By default instalation of apache and php in centos 6.3 or ther el6. to have php can use email function to send email by script. you must be set the selinux boolean setting. by typing this :

[root@postel ~]# sestatus -b | grep -i sendmail
httpd_can_sendmail on
logging_syslogd_can_sendmail off
[root@postel ~]# setsebool -P httpd_can_sendmail 1
[root@postel ~]# setsebool -P httpd_can_network_connect on


on 25 Aug 2014 07:38 AM

23 Aug 2014

Hari-hari yang melelahkan karena sempat menyita pikiran dan pertimbangan pelaksanaan Kurikulum 2013 atau KTSP 2013. Kenapa saya masih memakai istilah KTSP? Bukankah KTSP hanya sampai KTSP 2006? Mari kita lihat sebentar apa yang ada dan tertera pada Peraturan Menteri Pendidikan dan Kebudayaan Republik Indonesia (Permendikbud RI) No. 81A Tahun 2013 yang ditetapkan pada tanggal 27 […]
on 23 Aug 2014 06:39 PM

22 Aug 2014

sumber foto : kompas.com – KOMPAS/RIZA FATHONI

Tadinya saya membaca di Kompas.com, Dahlan Iskan (Menteri BUMN) menyatakan Karen Agustiawan mundur dari posisinya sebagai CEO Pertamina. Tentunya banyak spekulasi yang beredar karena informasi ini. Dahlan Iskan lalu menjelaskan kalau Karen mundur karena mau mengajar di Harvard. Dahlan tidak menyebut Karen jadi dosen sih, cuma “mengajar”.

Kalau di Tribunnews.com, judul beritanya menyebutkan “Jadi Dosen Harvard Karen Agustiawan Mundur dari Pertamina”.

Tetapi saya tidak menemukan satupun media online yang melakukan cek silang ke Harvard untuk mengkonfirmasi hal ini. Dan entah kenapa, untuk hal ini saya begitu penasaran hingga saya mengirimkan email ke bagian PR nya Harvard (seperti tercantum di situsnya Harvard.edu) untuk mengkonfirmasi hal ini.

2 hari kemudian, inilah jawaban dari Daniel Harsha (Associate Director for Communications and Government Relations, Harvard Kennedy School) :

The Ash Center for Democratic Governance and Innovation is pleased to announce Ms. Karen Agustiawan’s appointment as a Senior Visiting Fellow at the Asia Energy and Sustainability Initiative (AESI) at the Harvard Kennedy School.  AESI is a research based collaboration among the School’s Ash Center, Belfer Center, and the Sustainability Science Program.  As a Senior Visiting Fellow, Ms. Agustiawan will conduct research relating to the intersection of innovation, energy policy and technology, and environmental outcomes in Asia.

For more information on AESI, please visit the program’s website at: www.ash.harvard.edu/Home/Programs/Institute-for-Asia/AESI

Daniel Harsha
Associate Director for Communications and Government Relations
Ash Center for Democratic Governance and Innovation
Harvard Kennedy School
79 John F. Kennedy Street, Box 74
Cambridge, MA 02138

Apa itu Senior Visiting Fellow? Silahkan googling sendiri ya. :P

on 22 Aug 2014 09:24 AM

18 Aug 2014

SLiMS mailing settings

Arif Syamsudin

Sampai beberapa waktu lalu, saya pribadi, dan beberapa rekan masih belum tau, bagaimana memecahkan masalah setelan surel pada SLiMS, supaya SLiMS dapat berkirim notifikasi melalui surel menggunakan SMTP pribadi. Maksudnya SMTP pribadi, adalah SMTP yang didapat ketika berlangganan hosting.

Biasanya kami merekomendasikan untuk menggunakan SMTP yang bebas didapat menggunakan layanan SMTP bebas dari Google [0]. Untuk bisa mengakses SMTP dari Google, cukup dengan menggunakan akun Google (atau maksudnya Gmail) yang Anda miliki. Dengan memasukkan kredensial akun yang Anda miliki, maka Anda bisa segera menggunakan SMTP tersebut.

Namun, sayang khan, apabila Anda memiliki layanan SMTP berbayar namun tidak digunakan? Buat saya sich sayang :D. Nah, sebelumnya kami memiliki permasalahan, di mana, SLiMS tidak bisa mengirimkan notifikasi apabila menggunakan SMTP berbayar tersebut. Ternyata, solusinya cukup sederhana. Terima kasih kepada mbah Yono yang sudah mengingatkan :).

/** * Mailing Settings
 */
$sysconf['mail']['enable'] = true;
$sysconf['mail']['server'] = 'ssl://smtp.gmail.com:465'; // SMTP server
$sysconf['mail']['server_port'] = 465; // the SMTP port
$sysconf['mail']['auth_enable'] = true; // enable SMTP authentication
$sysconf['mail']['auth_username'] = 'admin'; // SMTP account username
$sysconf['mail']['auth_password'] = 'admin'; // SMTP account password
$sysconf['mail']['from'] = 'admin@localhost';
$sysconf['mail']['from_name'] = 'SLiMS Administrator';
$sysconf['mail']['reply_to'] = &$sysconf['mail']['from'];
$sysconf['mail']['reply_to_name'] = &$sysconf['mail']['from_name'];

 Perhatikan baris ini, $sysconf['mail']['server'] = 'ssl://smtp.gmail.com:465'; // SMTP server. Untuk bisa menggunakan SMTP berbayar, silahkan hilangkan bagian porta (yang ditunjukkan dengan ":465), sehingga penulisannya menjadi:
$sysconf['mail']['server'] = 'ssl://smtp.domain.com'; // SMTP server
Pada baris berikutnya, $sysconf['mail']['server_port'] = 465; // the SMTP port, pastikan porta yang Anda gunakan, merupakan porta SSL yang direkomendasikan oleh hosting yang Anda langgan. Selebihnya, silahkan sesuaikan dengan setelan penggunaan POP3/IMAP dan SMTP yang diberikan oleh hosting yang Anda langgan.

Nah, kalau sudah begitu, Anda bisa menggunakan SMTP yang Anda langgan melalui hosting untuk digunakan oleh SLiMS :). Selamat berkarya!


Bahan bacaan:
[0] https://www.digitalocean.com/community/tutorials/how-to-use-google-s-smtp-server
 
on 18 Aug 2014 01:27 PM

exclude folder

Arif Syamsudin

Ceritanya, mau mengkompres satu direktori aplikasi. Di dalam direktori aplikasi tersebut, ada satu direktori yang tugasnya menyimpan berkas-berkas dijital yang jumlahnya tidak sedikit. Pernah, satu waktu, mengkompres direktori dengan menyertakan direktori yang menyimpan berkas tersebut, hasilnya? Proses kompresi berjalan lama, dan hasilnya jadi sangat besar. Direktori penyimpan berkasnya sendiri tidak terlalu penting, apabila tidak disertakan.

Lantas, bagaimana caranya mengkompres direktori aplikasi tersebut, tanpa menyertakan direktori penyimpan berkas tersebut? Gunakan fungsi "exclude" pada perintah kompresi. Kebetulan, direktori aplikasi tersebut akan saya kompres menggunakan ekstensi .tar.gz. Jadi, perintah yang saya masukkan adalah:
$ sudo tar -cvzf [output] [nama direktori]  --exclude "/lokasi/direktori/yang/diexclude"

  • -cvzf merupakan opsi kompresi dengan keluaran .tar.gz (kskss);
  • [output] merupakan nama berkas hasil kompresi. Misal, jreng.tar.gz (bisa diisi dengan nama berkas yang lain, bebas, terserah Anda);
  • [nama direktori], diisi dengan nama direktori yang akan dikompres. Misal, jreng (karena nama contoh sebelumnya jreng.tar.gz. Silahkan isi dengan nama lain, bebas, terserah Anda); 
  • --exclude merupakan opsi untuk meniadakan direktori, yang diikuti dengan;
  • "/lokasi/direktori/yang/diexclude". Perhatikan pada bagian "/diexclude" tidak ada garis miring yang mengikuti. Memang harusnya seperti itu. Jadi, pada bagian tersebut, sekali lagi, tidak ada garis miring penutup.
Dan hasilnya? Memuaskan :). Proses kompresi bisa berjalan lebih cepat. Karena kebetulan, tanpa menyertakan direktori penyimpan berkas tersebut, keluarannya hampir 1/2gb :(.
on 18 Aug 2014 01:11 PM

16 Aug 2014



Ketika kita kecil dulu belum bisa naik sepeda, kemudian memutuskan belajar naik sepeda, apakah kemudian langsung sukses atau gagal, jatuh dulu dari sepeda?

Ketika kita kecil dulu belum bisa menulis, kemudian memutuskan belajar menulis, apakah kemudian langsung bisa sukses membuat tulisan yang bagus atau gagal, berakhir coret2an ceker ayam?

Ketika kita kecil dulu belum bisa baca quran, kemudian memutuskan belajar iqro, apakah kemudian langsung bisa sukses membaca quran dengan baik, atau gagal, bacanya salah2

Ketika seseorang memutuskan belajar pemrograman, apakah langsung sukses membuat program aplikasi atau gagal dengan, banyak error disana sini.

Ketika seseorang memutuskan belajar elektronika, apakah langsung sukses membuat rangkaian elektronik, membuat robot dll atau gagal, rangkaiannya kebakar, solderannya jelek dll

Ketika seseorang memutuskan belajar adzan, apakah langsung bagus atau gagal suaranya fals ataupun malah lupa lafadznya.



Maka bagaimana ketika seseorang memutuskan berbisnis? Langsung sukses besar ataukah kegagalan yang akan ditemui, maka jawabannya adalah JELAS…

Kerelaan berteman dengan kegagalan inilah yang tidak mudah, tidak semua orang menginginkannya, apalagi mereka2 yang saat kuliah/sekolah selalu dapet nilai bagus, mentalnya jelas tidak pernah terlatih untuk hal yang demikian, makanya wajar banyak ditemui yang ipk nya pas2an malah banyak yg berhasil membangun usaha, walaupun yg ipknya bagus juga banyak yg berhasil. Mereka yang pas2an sudah sering belajar menerima kegagalan, sudah terlatih dapet nilai jelek, sudah terlatih dianggap kurang berprestasi, malah ada juga yang dianggap sebagai anak yang bermasalah dsb nya.

Terlatih dengan kegagalan-kegagalan itulah yang kemudian membuat seseorang bisa berhasil dengan bisnisnya, sebagaimana halnya jatuh bangunnya belajar bersepeda, karena dia mau untuk jatuhlah yang kemudian menyebabkan dia bisa naik sepeda. Mau untuk menggambar yang jelek lah yang kemudian bisa membuat seseorang bisa menggambar yang bagus. Mau untuk salah2 dalam menulis lah yang kemudian membuat seseorang bisa memiliki tulisan yang bagus. Mau untuk masak yang gosong, keasinan yang rasanya gak enaklah yang kemudian membuat seseorang bisa memasak dengan sangat enak.



Semakin kita terlatih dengan kegagalan, membuat kita belajar dan akhirnya bisa berhasil..

Kembali untuk yang akan memulai usaha, mau untuk gagal? Hmmm ....
on 16 Aug 2014 03:04 AM

15 Aug 2014




Pada semester 2 ini ada 5 mata kuliah yang diambil. 4 mata kuliah di depok dan 1 mata kuliah di salemba. Dari hari awal kuliah hingga tengah semester cukup berat untuk dijalani. Mulai dari hari kamis siang ketemu mata kuliah hitung2 an matematika yang nilai UTS nya cuman dapet nilai 28 hehehe. Kuliahnya selesai jam 3 sore kemudian istirahat sebentar dikosan temen kemudian jam 5 sore naik kereta ke kampus salemba. Kuliah mulai jam 7 hingga 9 malem….kalau pas capek ya nginep dikosan temen kl gak ya pulang naik angkot dari salemba ke stasiun jatinegara, trus pindah angkot ke cawang uki trus naik elf ke cileungsi, nyampe rumah ya jam 11 –an malem lah. Dah gitu besok jumatnya kuliah lagi yang isinya pemrograman, fiuh…. Pulangnya malem2 mulu abis maghrib dan seringnya hujan sehingga kadang hujan2 an dari depok sampe ke cileungsi atau pake jas hujan ditengah2 petir yang menggelegar. 

Semangat menjalani kuliah juga sudah tidak lagi sesemangat semester 1, bisa karena factor usia ataupun sebenarnya karena tidak ada lagi motivasinya, dibilang perjuangan ya berjuang untuk apa sudah mulai pudar.. dah gitu yang utama tidak ada mata kuliah yang cocok lah, ibarat makan ya ditelan aja sudah gak ada rasanya.

Makanya kalau ada temen yang tanya2 kuliah, saya berikan penjelasan dulu bahwasanya kalau kuliah jangan berharap ilmu, kalau nyari ilmu/keahlian itu adanya di tempat kursus, kalau kuliah ya nyari temen, nyari ijasah dll. Sehingga ekspektasinya ttg kuliah agar bisa diturunkan biar tidak kecewa dikemudian hari.

Setelah UTS, berbagai macam keajaiban terjadi. sangat ringan sekali menjalaninya. Ada mata kuliah yang dari uts hingga uas cuman masuk 2x aja trus kuliah jg mulai nyante, uas jg gak ada lagi ngerjain soal, tapi lebih ke presentasi2 aja. Enak dah saya cuman numpang nama aja hehe, njelasin bagian yang gampang. Ada yang ngerjain soal tp cukup dikerjakan dirumah, bisa gugel2. Ajib dah baru kali ini enak banget uas nya…. Nyantai bingiit tanpa tekanan. Yang nilai uts nya cuman dapet 28, uas nya bisa dapet 86 hehe lumayan cuman numpang nama aja dan yg pnting selamet bisa lulus kuliah, ga perlu ngulang.
on 15 Aug 2014 03:54 PM

06 Aug 2014

sportdio
Seorang teman bercerita, di samping kerjaannya sebagai analyst IT, dia bersama 3 orang temannya meluncurkan toko sepatu online, Sportdio.com namanya. Kata “sport” di Sportdio sendiri digunakan sejak awal karena memang rencananya jika sudah cukup besar, mereka bisa ekspansi tidak hanya menjual sepatu, namun tetap di sekitar produk olahraga.

E-commerce bukanlah suatu hal yang baru, termasuk di Indonesia. Banyak yang sudah meluncurkan toko online. Mulai dari skala perorangan, paruh waktu, sampai dengan yang didukung oleh grup bisnis besar yang “dananya tak terbatas”. Mulai dari skala iseng-iseng, penjual serius sampai dengan distributor besar atau importir mungkin. Sportdio.com sendiri masuk kategori penjual serius, tetapi untuk saat ini belum masuk ke grup bisnis besar.

Para pendiri Sportdio adalah 4 orang anak muda, teman lama sejak jaman SMA. 2 dari antara mereka saat ini masih bekerja fulltime di perusahaan. 2 lagi sudah fulltime mengurusi Sportdio. Kenapa 2 orang tadi tidak resign dan fulltime juga di Sportdio? Apa mereka nggak serius? Nah, justru karena serius maka 2 orang masih tetap kerja sebagai karyawan. Dari perhitungan mereka, sebagai pemain baru, akan banyak dana yang diperlukan untuk belanja modal, operasional dan marketing. Dengan tetap bekerjanya sebagian dari tim mereka, maka paling tidak dalam kondisi tanpa penjualan pun, mereka masih tetap bisa beroperasi normal.

Secara bisnis, Sportdio.com sudah mencatatkan sejumlah transaksi tiap bulannya. Saya tidak tahu angkanya, yang jelas belum sebesar Zalora, Blibli, dan e-commerce kaliber raksasa lainnya itu.

Dengan konsep mereka yang fokus ke sepatu, tentu mengingatkan kita pada Zappos.com yang awalnya juga adalah toko sepatu online. Dan memang salah satu dari tim Sportdio juga pernah membaca bukunya Tony Hsieh (CEO Zappos). Bisa jadi mungkin inspirasinya memang dari Zappos.

Namun, jika merujuk pada Zappos, dari berbagai wawancara dengan Tony Hsieh maupun Nick Swinmurn (founder Zappos), kita ketahui kalau mereka pun sempat mengalami masa-masa di mana mereka hampir bangkrut. Tidak sekali dua kali. Tony Hsieh harus menjual apartemen-apartemennya satu demi satu demi menutup aliran kas Zappos. Bahkan 6 tahun sejak didirikan, Zappos belum mencapai BEP (Break Even Point). Nah, bukan tidak mungkin, Sportdio.com pun harus mengalami masa-masa ini. Karena seperti bisnis retail lainnya, biasanya pekerjaan berat di awal itu adalah marketing, yang dalam bentuk apapun tetap tidak sedikit biayanya.

Melihat keseriusan teman saya ini, apalagi salah satu dari timnya sebelumnya bekerja di salah satu perusahaan retail terbesar di Indonesia, saya rasa potensi mereka untuk bisa “mencuri” kue e-commerce di Indonesia cukup besar. Bukan tidak mungkin mereka akan jadi Zappos-nya Indonesia. Tinggal masalah berapa lama mereka kuat untuk “bakar duit” sebelum mencapai titik BEP, dan tentunya “duit siapa” yang mau dibakar? ;)

on 06 Aug 2014 04:35 AM

29 Jul 2014

Selamat Hari Raya Idul Fitri 1435 H

Taqabalallahu Minna Wa Minkum

Minal Aidin Wal Faidzin

Mohon Maaf Lahir dan Batin


Semoga amal ibadah kita diterima oleh Allah SWT. Amin

on 29 Jul 2014 02:04 PM

24 Jul 2014

Halo netizen, sudah lama saya tidak menulis artikel di blog ini, dengan alasan yang sama seperti setiap kali saya ungkapkan setelah lama absen menulis, yaitu kesibukan di kantor dan peranan saya sebagai kepala rumah tangga. :D

Dalam kesempatan kali ini saya baru mengenal istilah "Market(ing) Driven Product Development (MDPD)". Istilah ini pertama kali saya dengar dalam rapat internal kantor, dimana sebenarnya saya baru sadar kalau model business perusahaan tempat kerja saya sekarang ini adalah MDPD.

Padahal setelah memahami apa itu MDPD dan saya melihat kembali CV saya, ternyata saya sudah pernah bekerja di beberapa Perusahaan IT di Indonesia dengan model seperti ini. Tapi istilah resminya "baru tau". :p
Read More »
on 24 Jul 2014 01:06 AM

16 Jul 2014

Akhirnya, setelah sekian lama, kini komunitas Python Indonesia menerima donasi!

Ide ini sudah lama dilontarkan namun baru bisa dieksekusi baru-baru ini. Wow, ternyata jalan dari ide untuk dieksekusi begitu panjang.

Donasi ini pun masih menggunakan rekening a/n pribadi. Belum atas nama organisasi. Yang saya tahu, jika ingin membuka rekening atas nama organisasi maka organisasi harus berbadan hukum. Dan … jalan menuju organisasi berbadan hukum juga masih panjang.

Satu organisasi komunitas di Indonesia yang sudah berbadan hukum yang saya tahu adalah Wikimedia Indonesia. Saya sendiri menjadi menjadi anggota Wikimedia Indonesia. Tapi sayangnya energi saya sudah habis untuk bisa aktif dalam Wikimedia Indonesia. Ingin sekali datang, minimal datang ke RUA, tapi sudah tak ada waktu lagi :|

Sebenarnya, selama ini “donasi” sudah ada. Mulai dari perusahaan yang menyediakan tempat (dan makanan!) untuk kopdar. Lalu para pembicara-pembicara yang bersedia berbagi ilmu. Dan tentu termasuk mereka yang datang dan meluangkan waktu. Dalam kopdar Agustus 2014 nanti, teman-teman malah berencana mengadakan codesprint proyek members.

Semoga langkah donasi ini bisa menjadi satu dari seribu langkah untuk kontribusi komunitas F/OSS di Indonesia.

on 16 Jul 2014 07:49 AM

In POSIX OS (LINUX or MAC OSX), you have a terminal which is used to type some command to remote your server using ssh command.
You can create a local Socks Proxy forwarding traffic directly to your server, so you can bypass internet filtering by your country ISP.
in your POSIX box terminal just add comman -D port (ex. -D 1080), like this :

$ssh -D 1080 user@host.com

Alternatifely you can add port forwarder to your server proxy(you can setup a Tinyproxy) on the Internet using command

$ssh -L 8035:localhost:8035 user@host.com
so with this command, local computer on port 8035 will forward to proxy server port 8035


on 16 Jul 2014 04:16 AM

14 Jul 2014

Semarak pemilu dan pilpres 2014 kali ini menyisakan satu bagian yang sangat mengganggu saya: media online penyebar fitnah.

Media-media jenis ini, sering membuat cerita narasi yang kontroversial. Dengan menghubungkan beberapa kejadian nyata dan fakta, dibumbui beberapa imajinasi dan cerita fiktif, dibuatlah artikel yang seolah-olah benar. Tidak lupa media abal-abal ini mendiskreditkan media-media besar yang sudah belasan atau puluhan tahun dianggap kredibel.

Biasanya media-media ini isinya sangat kental dengan nuansa provokasi berbau SARA. Tokoh-tokoh dengan latar belakang SARA tertentu diangkat profilnya dan dihubung-hubungkan dengan cerita fiktif lainnya. Kadangkala mereka melakukan rekayasa pengubahan gambar (image editing) demi memuluskan fitnah dan provokasi ini. Sambil tak lupa menuduh pihak lain lah yang melakukan rekayasa gambar.

Mereka yang Terpelajar

Saya maklum kalau mereka yang “termakan” tulisan-tulisan seperti ini adalah mereka yang secara pendidikan kurang, atau akses mereka ke media informasi yang akurat kurang. Jadi kemampuan mereka menyerap, mencerna dan memverifikasi informasi terbatas.

Yang sangat menyedihkan, mereka-mereka yang berpendidikan tinggi, sarjana dari kampus ternama, bahkan pernah melanjutkan studi tingkat tinggi di negara maju, menempati posisi tinggi di institusi ternama.. –pun ikut “termakan” cerita dan tulisan-tulisan abal-abal ini. Sedih sekali saya.

Sebenarnya, seringkali hanya dengan sedikit googling pun kita sudah bisa mengetahui bahwa tulisan tersebut nyata-nyata bohong. Dan lebih parah lagi, media yang sudah beberapa kali terbukti nyata-nyata berbohong, tetap dijadikan referensi oleh mereka yang dikatakan “terpelajar”.

Ada juga yang lucu, ada saja orang yang aktif menyuarakan di social media agar jangan termakan cerita HOAX (berita / tulisan fiktif dan fitnah), padahal selama ini orang tersebut sering membagikan tulisan dari media-media HOAX di akun social medianya. Lucu.

Saya tidak menyangkal kalau ada media besar dan kredibel yang condong ke pihak-pihak tertentu. Tetapi setidaknya mereka tidak “ngarang-ngarang berita yang nyata-nyata bohong”. Dan ini bukanlah pembenaran untuk menebar fitnah membabi buta.

Yang saya khawatirkan, jika propaganda fitnah seperti ini terus berlangsung, bahkan skalanya semakin masif, tidak menutup kemungkinan sebagian warga negara kita yang mentalnya masih “labil” itu akan bergerak liar. Akan banyak penumpang gelap jika hal ini terjadi.

Batasi Kebebasan Pers?

Di sisi lain.., saya juga tidak setuju jika kebebasan pers kembali dikungkung seperti jaman Orde Baru. Mungkin memang ini harga yang harus dibayar untuk kebebasan pers, tetapi janganlah kita mundur.

Semoga masyarakat kita semakin dewasa. Punya kemampuan mencerna dan memverifikasi tulisan dengan lebih baik.

on 14 Jul 2014 07:18 AM

04 Jul 2014

Paket iSCSI Initiator di Solaris 11 adalah paket default, jadi secara default paket ini sudah terpasang di Solaris 11, dalam tulisan ini iSCSI target yang digunakan adalah Openfiler (10.10.10.10).

Berikut ini adalah langkah-langkahnya :

1. Aktifkan servis iSCSI Initiator.

# svcadm enable svc:/network/iscsi/initiator:default

2. Proses discover ke server Openfiler.

# iscsiadm modify discovery -t enable
# iscsiadm add discovery-address 10.10.10.10:3260
# iscsiadm list discovery-address
Discovery Address: 10.10.10.10:3260

# iscsiadm list discovery-address -v 10.10.10.10
Discovery Address: 10.10.10.10:3260
        Target name: iqn.2006-01.com.openfiler:tsn.faec29fc8675
                Target address:    10.10.10.10:3260, 1

# iscsiadm list target -S
Target: iqn.2006-01.com.openfiler:tsn.faec29fc8675
        Alias: -
        TPGT: 1
        ISID: 4000002a0000
        Connections: 1
        LUN: 0
             Vendor:  OPNFILER
             Product: VIRTUAL-DISK
             OS Device Name: /dev/rdsk/c9t2d0

# iscsiadm add static-config iqn.2006-01.com.openfiler:tsn.faec29fc8675,10.10.10.10,1

3. Periksa apakah sudah ada disk baru yang terdeteksi.

# devfsadm -i iscsi
# echo | format
Searching for disks...done

AVAILABLE DISK SELECTIONS:
       0. c8t0d0 <VMware-Virtual disk-1.0-20.00GB>
          /pci@0,0/pci15ad,1976@10/sd@0,0
       1. c9t2d0 <OPNFILER-VIRTUAL-DISK-0 cyl 1303 alt 2 hd 255 sec 63>
          /iscsi/disk@0000iqn.2006-01.com.openfiler%3Atsn.faec29fc86750001,0
Specify disk (enter its number): Specify disk (enter its number):

4. Selanjutnya buat pool dari disk yang baru.

# zpool create pool01 c9t2d0
# zpool status

Demikian mudah-mudahan bermanfaat.

on 04 Jul 2014 06:39 AM

01 Jul 2014

Ini adalah catatan singkat ketika mencoba zfs on linux menggunakan Debian Wheezy 64bit.

# export http_proxy="http://10.10.10.10:8080"
# wget http://archive.zfsonlinux.org/debian/pool/main/z/zfsonlinux/zfsonlinux_2%7Ewheezy_all.deb
# dpkg -i zfsonlinux_2~wheezy_all.deb
# apt-get update
# apt-get install debian-zfs

Sebelum membuat zpool dan zfs filesystem, periksa terlebih dahulu ketersediaan disk yang akan digunakan. Referensi penggunakan dev name bisa dilihat disini.

# ls -l /dev/disk/by-id
total 0
lrwxrwxrwx 1 root root  9 Jun 24 13:53 ata-VBOX_CD-ROM_VB2-01700376 -> ../../sr0
lrwxrwxrwx 1 root root  9 Jun 24 13:53 ata-VBOX_HARDDISK_VB1b819de6-c4ebd9c9 -> ../../sda
lrwxrwxrwx 1 root root 10 Jun 24 13:53 ata-VBOX_HARDDISK_VB1b819de6-c4ebd9c9-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10 Jun 24 13:53 ata-VBOX_HARDDISK_VB1b819de6-c4ebd9c9-part2 -> ../../sda2
lrwxrwxrwx 1 root root  9 Jun 24 13:53 ata-VBOX_HARDDISK_VB3799f7e8-5bcf2348 -> ../../sdb
lrwxrwxrwx 1 root root  9 Jun 24 13:53 ata-VBOX_HARDDISK_VB7c68ec7c-fc5720ad -> ../../sdd
lrwxrwxrwx 1 root root  9 Jun 24 13:53 ata-VBOX_HARDDISK_VB8399c68e-f7e62a5b -> ../../sde
lrwxrwxrwx 1 root root  9 Jun 24 13:53 ata-VBOX_HARDDISK_VBfe4b158a-3dd881f5 -> ../../sdc
lrwxrwxrwx 1 root root  9 Jun 24 13:53 scsi-SATA_VBOX_HARDDISK_VB1b819de6-c4ebd9c9 -> ../../sda
lrwxrwxrwx 1 root root 10 Jun 24 13:53 scsi-SATA_VBOX_HARDDISK_VB1b819de6-c4ebd9c9-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10 Jun 24 13:53 scsi-SATA_VBOX_HARDDISK_VB1b819de6-c4ebd9c9-part2 -> ../../sda2
lrwxrwxrwx 1 root root  9 Jun 24 13:53 scsi-SATA_VBOX_HARDDISK_VB3799f7e8-5bcf2348 -> ../../sdb
lrwxrwxrwx 1 root root  9 Jun 24 13:53 scsi-SATA_VBOX_HARDDISK_VB7c68ec7c-fc5720ad -> ../../sdd
lrwxrwxrwx 1 root root  9 Jun 24 13:53 scsi-SATA_VBOX_HARDDISK_VB8399c68e-f7e62a5b -> ../../sde
lrwxrwxrwx 1 root root  9 Jun 24 13:53 scsi-SATA_VBOX_HARDDISK_VBfe4b158a-3dd881f5 -> ../../sdc

Mulai membuat zpool (datapool)

# zpool create -f datapool mirror ata-VBOX_HARDDISK_VB3799f7e8-5bcf2348 ata-VBOX_HARDDISK_VB7c68ec7c-fc5720ad
# zpool status
  pool: datapool
 state: ONLINE
  scan: none requested
config:

        NAME                                       STATE     READ WRITE CKSUM
        datapool                                   ONLINE       0     0     0
          mirror-0                                 ONLINE       0     0     0
            ata-VBOX_HARDDISK_VB3799f7e8-5bcf2348  ONLINE       0     0     0
            ata-VBOX_HARDDISK_VB7c68ec7c-fc5720ad  ONLINE       0     0     0

errors: No known data errors

Menambahkan disk hotspare pada pool datapool, tujuan hotspare ini agar pada saat terjadi kerusakan disalah satu diks pool, maka akan langsung digantikan oleh disk hotspare.

# zpool add -f datapool spare scsi-SATA_VBOX_HARDDISK_VBfe4b158a-3dd881f5
# zpool status
  pool: datapool
 state: ONLINE
  scan: none requested
config:

        NAME                                           STATE     READ WRITE CKSUM
        datapool                                       ONLINE       0     0     0
          mirror-0                                     ONLINE       0     0     0
            ata-VBOX_HARDDISK_VB3799f7e8-5bcf2348      ONLINE       0     0     0
            ata-VBOX_HARDDISK_VB7c68ec7c-fc5720ad      ONLINE       0     0     0
        spares
          scsi-SATA_VBOX_HARDDISK_VBfe4b158a-3dd881f5  AVAIL

errors: No known data errors

Selanjutnya bermain dengan zfs filesystem.

# zfs list
NAME       USED  AVAIL  REFER  MOUNTPOINT
datapool   112K  7.81G    29K  /datapool

# zfs create datapool/data01
# zfs list
NAME              USED  AVAIL  REFER  MOUNTPOINT
datapool          149K  7.81G    29K  /datapool
datapool/data01    30K  7.81G    30K  /datapool/data01

Eksperimen menggunakan snapshot dan clone di zfs

# zfs snapshot datapool/data01@tuesday

# zfs list -t snapshot
NAME                      USED  AVAIL  REFER  MOUNTPOINT
datapool/data01@tuesday      0      -    30K  -

# zfs clone datapool/data01@tuesday datapool/data01_new

# zfs list
NAME                  USED  AVAIL  REFER  MOUNTPOINT
datapool              180K  7.81G    31K  /datapool
datapool/data01        30K  7.81G    30K  /datapool/data01
datapool/data01_new     1K  7.81G    30K  /datapool/data01_new

# zfs rollback datapool/data01@tuesday

Mantab!, fungsi-fungsi tersebut berjalan dengan baik, saat nya bereksperimen lebih lanjut.

on 01 Jul 2014 04:24 AM

Bahan Lokakarya “Oracle Solaris 11 System Administration” di Universitas Ibnu Chaldun Bogor, 22 Juni 2014.

on 01 Jul 2014 03:37 AM

28 Jun 2014

MacBook Pro dengan processor arsitektur 64bit kebanyakan sudah mendukung ram diatas 8GB, untuk itu saya memberanikan diri untuk upgrade ke 16GB, macbook pro dengan ram 16GB ternyata membuat tidak stabil, kadang Macbook mati sendiri bila menggunakan Battery, jika menggunakan Power Adaptor masalah ini tidak terjadi.
Saya sendiri menulis blog ini masih dalam proses testing. Beberapa cara sudah saya gunakan seperti memeriksa keadaan hardware dengan AHT untuk memeriksa semua kondisi hardware dan reset NVRAM/ PRAM sudah saya lakukan, tapi masalah mati mendadak masih terjadi, jika menggunakan Battery.
Reset NVRAM ini digunakan untuk mereset semua pengaturan yang tersimpan dalam modul memory pengaturan hardware, reset NVRAM hanya ada di semua perangkat Apple komputer keluarga MacBook, iMac, MacPro, MacMini. Untuk petunjuk reset NVRAM/ PRAM pada MacBook Pro sebagai berikut :

Reset NVRAM/ PRAM : 




1. Matikan Macbook kemudian tekan tombol berikut pada keyboard Macbook.
2. COMMAND + R
3. OPTION + P
4. Tekan tombol power secara bersamaan sebelum suara booting khas apple keluar, tunggu hingga 5 detik tetap tekan tombol yang sama sampai komputer hidup ulang untuk kedua kali, kemudian biarkan sampai masuk ke desktop.

Proses reset NVRAM sudah mencapai sekitaran 3 minggu setelah penggantian ram masih terjadi masalah yang sama, Padahal semua kondisi hardware dalam keadaan normal, sudah saya cek dengan menggunakan AHT. Langkah terakhir setelah saya cari cari di forum Apple, solusi dari masalah saya, untuk coba untuk reset SMC, reset SMC ini diperlukan jika hardware kita kacau seperti yang saya alami, masalah pada hardware memang bermacam-macam untuk reset SMC bisa memulihkan menjadi normal kembali.
Masalah yang terjadi biasanaya adalah, battery tidak terdeteksi, pengisian battery yang tidak normal, temperatur dan Fan tidak bekerja secara normal bisa menggunakan reset SMC.
Untuk reset SMC sebagai berikut :

Reset SMC Macbook Pro : 



1. Matikan MacBook, lepaskan magsafe kemudian pasang Magsafe kembali.
2. Tekan tombol pada keyboard OPTION + CONTROL + SHIFT (tombol bagian kiri). 
3. Secara bersamaan menekan tombol power, tunggu 3 detik kemudian lepaskan.
4. Hidupkan Ulang seperti biasa dengan menekan tombol power.

Kesimpulan hardware saya tidak terjadi kerusakan, dan hanya memory SMC yang kacau dengan penambahan hardware baru RAM 16GB, setelah selesai reset SMC masalah diatas tidak terjadi lagi dan Macbook sudah bisa di ajak kerja lagi dengan normal.
Untuk solusi bila terjadi masalah sepeti saya jangan panik keburu-buru membawa ke dokter komputer, periksa baik-baik komputer anda, lakukan langkah-langkah seperti reset hardware (reset SMC dan NVRAM/ PRAM). Sepengalaman saya menggunakan Apple jarang terjadi rewel seperti komputer lain, penangangan hardware apple juga cukup mudah :)


on 28 Jun 2014 02:29 AM

27 Jun 2014

Blog Pemrograman

Zaki Akhmad

Pagi ini saya membaca tulisan yang menurut saya sangat bagus. Tulisan A. Jesse Jiryu Davis, Write an Excellent Programming Blog. Saya sempat bertemu dengan Jesse dalam PyCon APAC 2014, walau saya tak sempat bercakap-cakap langsung dengannya.

Saya kutip bebas bagian-bagian yang saya suka:

I want you to write. Not just code. Also words.

Thinking by writing.

Dari pengalaman saya menjadi maintainer planpin selama ini, sungguh sulit mendapatkan penulis yang bisa konsisten menulis. OK, tidak mulai dari kualitas, tapi kuantitas dulu saja. Kualitas bisa dibangun dengan kuantitas yang terus menerus ditingkatkan.

Memang, sifat tulisan ini bukanlah sesuatu yang dibayar. Bukan seperti menulis di kolom koran. Tapi bukankah menulis itu jadi satu bagian penting dalam komunitas open source? Bagaimana ide/gagasan disebarkan, bagaimana diskusi dilakukan, dan bagaimana koordinasi dilakukan.

Saya pun sadar, saya masih harus belajar menulis (dan juga membaca!) kode dengan lebih baik.

on 27 Jun 2014 04:35 AM