31 Jul 2015

Ketidaktahuan merubah atau cara installasi sistem operasi baru ke Galaxy Nexus membuat ponsel ini mengalami bootloop. Beberapa waktu, mungkin hampir 2 bulan nganggur tidak tersentuh karena bingung ngoprek-nya. Bermodalkan LinuxMint dan paket android-tools-adb dan android-tools-fastboot saya mencoba ngoprek ulang Galaxy Nexus disaat orang-orang memperbarui ke Windows 10. Cara installasinya sudo apt-get install android-tools-adb android-tools-fastboot.

Bootloop
Saya pikir setelah proses installasi melalui ClockworkMod urusan selesai. Ternyata ada prosedur yang harus dilakukan sebelum melakukan installasi dari berkas .zip. Intinya setelah Anda push berkas menggunakan perintah adb push miui_GalaxyNexus_4.8.8_4115f7159a_4.2.zip /sdcard/ jangan lupa melakukan Wipe Data/Factory Reset dan Wipe Cache Partition saat sudah masuk ke ClockworkMod Recovery.

Saya sebelumnya lupa melakukan 2 hal tersebut yang mengakibatkan bootloop. Setelah 2 hal tersebut dilakukan hasilnya sukses melakukan installasi miui_GalaxyNexus_4.8.8_4115f7159a_4.2.zip ke Galaxy Nexus.

Masih Kurang Puas
Karena jamannya MIUI v6 saya mencoba memperbarui saja dengan mengunduh miui_GN_fyt_5.7.24_c7dc88c7eb_4.4.zip dan mengunggah ke Galaxy Nexus. Tentu tidak lupa melakukan Wipe Data/Factory Reset dan Wipe Cache Partition sebelum melakukan installasi miui_GN_fyt_5.7.24_c7dc88c7eb_4.4.zip.

Sekilas proses lancar dan tidak terjadi kendala. Saat reboot ternyata bootloop lagi. Berdasarkan pengalaman sebelumnya walaupun bootloop masih ditangani dengan masuk ke recovery, mengetikan perintah adb boot recover. Ternyata muncul galat No Command. Puyeng lagi..... Namun masih bersyukur karena masih bisa mengakses adb shell dan sejenisnya sehingga masih mencari akal supaya bisa diperbaiki.

Fastboot
Ini Fastboot bukan Fastfood.... Hilangnya ClockworkdMod membuang kepanikan tersendiri seakan-akan tidak bisa diselamatkan si-ponsel dan harus lapor polisi terdekat. Coba segala cara telah dilakukan untuk bisa "membenamkan" kembali ClockworkMod ke dalam Galaxy Nexus. Akhirnya menemukan sebuah cara, lagi-lagi cuma mainan adb dan fastboot. Ingat yaa fastboot bukan fastfood, maklum sudah lapar gara-gara mikir Galaxy Nexus.

Ponsel tertancap ke notebook melalui kabel data, jalankan perintah adb reboot bootloader tunggu sebentar, selanjutnya ketikan perintah fastboot devices. Ternyata menghasilkan sebuah keluaran. Langsung saja unduh recovery-clockwork-6.0.4.7-maguro.img di https://www.clockworkmod.com/rommanager.

Tanpa pikir panjang reboot ponsel sehingga dalam kondisi bootloop (biar lebih mantap kalo di-reboot hehehehe). Ketik perintah adb reboot bootloader setelah masuk ke bootloader ketikan fastboot flash recovery recovery-clockwork-6.0.4.7-maguro.img. Reboot lagi dan masih dalam tampilan bootloop, ketikan adb reboot recovery dan mulai melakukan ritual Wipe Data/Factory Reset dan Wipe Cache Partition yang dilanjutkan installasi miui_GN_fyt_5.7.24_c7dc88c7eb_4.4.zip.

Reboot dalam kondisi putus asa karena tertampil seperti bootloop, pulang ke rumah seakan-akan tanpa hasil dan ponsel dibiarkan dalam kondisi menyala. Sekitar 2km berjalan seperti terdengar suara dari Galaxy Nexus, jreeengggg..... terlihat tampilan MIUI v6. Minggir dan menghentikan kendaraan untuk melanjutkan konfigurasi awal MIUI v6 dan saat pulang serasa membawa sekarung uang hahahaha.

Google Play Store
Ngoprek dilanjut dirumah namun disebabkan koneksi tidak stabil dan tampilan peramban bawaan yang selalu mengarahkan bahasa mandarin membuat saya kerepotan. Pagi ini saya coba melalui komputer menemukan sebuah cara supaya MIUI v6 yang terinstall memiliki Google Play Store. Sebelumnya saya pake F-Droid untuk mengunduh beberapa aplikasi kesukaan nan asik. 

MIUI v6 yang terinstall di Galaxy Nexus tidak terinstall Google Play Store. Tanpa Google Play Store seakan-akan masakan tanpa penyedap rasa. Melalui petunjuk di http://en.miui.com/thread-3998-1-1.html akhirnya MIUI v6 di Galaxy Nexus serasa sudah siap tempur. Melihat linimasa banyak yang berhasil memperbarui komputer dengan Windows 10, saya juga sama... Memperbarui ponsel dengan MIUI v6.


 



on 31 Jul 2015 09:26 AM

 

Take a look here:

KF 5 (KDE5) Start Menu Windows 10 Start Menu

And here:

KDE 5 control panel with search Win10 control panel with search

and the internal:

KF5 side tabs Win10 side tabs

and many more…

like the notification, the personalization, the download from theme sites, etc. I just don’t want you to know me more from the screenshots. :-)

Thus, if you are a KDE 5 user, you would found yourself familiar with Windows 10.

The End.

on 31 Jul 2015 08:24 AM

28 Jul 2015

https://userbase.kde.org/KMail/FAQs_Hints_and_Tips#Clean_start_after_a_failed_migration

on 28 Jul 2015 06:59 AM

25 Jul 2015

Saya baru saja menyelesaikan membaca novel Negeri Para Bedebah, karya Tere Liye. Saya suka genre nya. Saya bahkan baru tahu ada genre seperti ini di novel Indonesia. Saya bukan pembaca novel aktif sih, jadi harap maklum kalau kurang update. Bayangkan saja, novel ini sudah terbit 3 tahun lalu, dan saya baru tahu beberapa hari lalu. Teman-teman saya sudah tahu lama. Ada yang sudah baca sejak awal terbit. Ada yang malah kenal dengan penulisnya, Darwis (nama asli Tere Liye). Darwis dulu menjadi asisten dosen teman saya ini sewaktu kuliah.

Beberapa bulan sebelumnya saya juga membaca novel, setelah 6 tahun lebih tidak membaca novel. Novel yang saya baca berbahasa Inggris, judulnya The Circle, karya Deve Eggers. Itupun tertarik baca karena diceritakan oleh seorang teman saya.

Berawal dari ngomongin digital communication buat internal company, lalu ngalor ngidul ngomongin startup, internet dan privasi di internet lalu tersebut lah buku ini. Akhirnya teman saya itu meminjamkan novel bersampul pink ini. *Belakangan saya malah baru tahu dari internet kalau teman saya itu ternyata penulis novel juga. :O

The Circle ini berlatar belakang cerita tentang privasi di dunia internet, atau tepatnya di “Internet of Things” (IoT). Novelnya agak mengecewakan bagi saya karena alurnya terlalu lambat di depan. Saya paling malas kalau sudah baca bagian si Mae (tokoh utama) bergalau-galau ria, apalagi saat bergalau plus berkayak di teluk. Entahlah, bagi sebagian pembaca mungkin ini bagian yang disebut “pendalaman tokoh”, bagi saya sih membosankan aja.

The Circle menurut saya benar-benar mengambil Google sebagai latar perusahaan yang jadi cerita utama. Saya mengikuti cerita The Circle ini dengan membayangkan kantor Google yang sering saya lihat di foto-foto, video dan cerita-cerita. Mungkin Googleplex (kantor pusat Google di Mountain View, California) itu bukan visualisasi yang dimaksud Dave Eggers. Tapi saya memilih begitu saja. Jadi saya bisa tidak terlalu serius membaca detail deskripsi setiap bangunan yang diceritakan.

Kalau The Circle berbasis cerita tentang ribut-ribut soal privasi di Internet (yang masih sering mencuat sampai sekarang), Negeri Para Bedebah menurut saya benar-benar mengambil latar kejadian kisruh Bank Century yang heboh di sekitar 2009 itu. Untungnya saya cukup familiar dengan berbagai konsep dan istilah di dunia perbankan, ekonomi, investasi -setidaknya dalam cakupan yang disebut di novel ini. Dengan begitu saya cukup lancar mengikuti alur cerita ini.

Plot cerita Negeri Para Bedebah cukup memuaskan bagi saya, walaupun sejak awal saya sudah bisa menduga siapa tokoh pengkhianat dan musuh besarnya. Tokoh utamanya si Thomas pun to good to be true.

Tetapi tidak demikian dengan plot cerita The Circle. Tokoh utamanya sih realistis. Tetapi terlalu banyak bagian yang membuat jalan ceritanya menjadi banyak lubang. Tetapi saya cukup senang endingnya tidak seperti yang diharapkan sebagian besar orang.

Dalam Negeri Para Bedebah, menurut saya Tere Liye banyak menitipkan opini-opini pribadinya. Atau lebih tepatnya agak menggurui. Berbeda dengan Dave Eggers, yang menurut saya (tentu saja) ikut menyampaikan opini pribadinya, tetapi membuat pembacanya untuk berpikir sendiri. Singkatnya Eggers membuat kita jadi bertanya-tanya, sedangkan Darwis seperti sedang ceramah. Dan dari yang saya baca-baca di GoodReads.com, novel lanjutan Darwis itu -judulnya “Negeri di Ujung Tanduk”- lebih kental lagi dengan “ceramah” Tere Liye. Saya belum baca sih.

Nah, ada yang tahu gak novel Indonesia yang isinya bukan soal cinta-cintaan, dan plot twist-nya “sesadis” Game of Thrones? Boleh dong tinggalin komentar kalau ada ide.

on 25 Jul 2015 09:10 AM

16 Jul 2015

Selamat Hari Raya Idul Fitri 1436 H

Taqabalallahu Minna Wa Minkum

Minal Aidin Wal Faidzin

Mohon Maaf Lahir dan Batin


Semoga amal ibadah kita diterima oleh Allah SWT. Amin

on 16 Jul 2015 05:00 PM

10 Jul 2015

Sebelum ini saya telah membahas bagaimana menggunakan HHVM dengan Monit. Saat ini saya berusaha mengaplikasikan HHVM dengan Supervisord. Supervisord adalah sebuah aplikasi yang bertugas untuk mengatur proses-proses. Dia mirip dengan uWSGI, unicorn, gunicorn, systemd, dan lain sebagainya.

Eh, systemd? Bukankah systemd sebuah aplikasi init?

Iya, betul! Mereka semua memiliki fungsi yang kurang lebih sama. Namun, supervisord memiliki konfigurasi agnostik dibandingkan systemd. Maklum saja, systemd digunakan untuk sistem juga. Sekarang orang masih merasa ngeri kalau berhubungan dengan sistem. Ya, begitu, deh….

Skenario

Skenario yang digunakan sebagai contoh adalah sebagai berikut:

  • Supervisord akan dipakai untuk meluncurkan 2 proses HHVM.
  • HHVM yang pertama akan dipakai sebagai koneksi utama dengan NGINX.
  • HHVM yang kedua digunakan sebagai cadangan.

Untuk skenario pemasangan virtual host yang dipakai secara beramai-ramai, Anda dapat menyesuaikan dengan kebutuhan.

Pasang HHVM dan Supervisord

Cara memasang repositori Debian 7 dan Debian 8. Untuk Ubuntu dan distro-distro sejenis lainnya silakan cari sendiri. Saya pernah membahas di artikel terdahulu.

Mari pasang secara Debian:

sudo apt-get install hhvm supervisor

Selanjutnya konfigurasi.

Konfigurasi

Untuk konfigurasi HHVM yang sama/generik, saya akan menuliskannya dalam sebuah berkas konfigurasi HHVM. Untuk dua proses HHVM, konfigurasi supervisord akan berisi parameter yang berbeda dalam menjalankan HHVM.

HHVM

Buat sebuah berkas /etc/hhvm/hhvm_generik.ini — saya kurang kreatif memberi nama, silakan ganti dengan nama lain.

; php options

; php options


; hhvm specific
hhvm.server.type = fastcgi
hhvm.server.default_document = index.php
hhvm.log.level = Warning
hhvm.log.always_log_unhandled_exceptions = true
hhvm.log.runtime_error_reporting_level = 8191
hhvm.log.use_log_file = true
hhvm.log.file = /var/log/hhvm/error.log
hhvm.mysql.typed_results = false

hhvm.jit = 1
hhvm.eval.jit_warmup_requests = 1

hhvm.keep_perf_pid_map = 0
hhvm.perf_pid_map = 0
hhvm.perf_data_map = 0

hhvm.server.apc.enable_apc = true

Selanjutnya, konfigurasi berbeda untuk tiap proses HHVM.

supervisord

Konfigurasi untuk proses HHVM utama, /etc/supervisor/conf.d/hhvm.conf

[program:hhvm]
command=/usr/bin/hhvm -c /etc/hhvm/php.ini -c /etc/hhvm/server_wp.ini -m server
     -vPidFile=/var/run/hhvm/pid
     -vServer.FileSocket=/var/run/hhvm/hhvm.sock
     -vRepo.Central.Path=/var/run/hhvm/hhvm.hhbc
directory=/var/www/html
numprocs=1
autostart=true            ; start at supervisord start (default: true)
autorestart=unexpected    ; auto restart if HHVM dies
startretries=3
user=www-data  ; setuid to this UNIX account to run the program

Selanjutnya, saya akan buat konfigurasi untuk proses HHVM cadangan. Saya akan menandai beberapa baris yang berbeda.

[program:hhvm2]
command=/usr/bin/hhvm -c /etc/hhvm/php.ini -c /etc/hhvm/server_wp.ini -m server
     -vPidFile=/var/run/hhvm/pid2
     -vServer.FileSocket=/var/run/hhvm/hhvm2.sock
     -vRepo.Central.Path=/var/run/hhvm/hhvm.hhbc
directory=/var/www/html
numprocs=1
autostart=true            ; start at supervisord start (default: true)
autorestart=unexpected    ; auto restart if HHVM dies
startretries=3
user=www-data  ; setuid to this UNIX account to run the program

Supaya jelas, perubahan yang saya buat untuk proses HHVM kedua:

  • Baris pertama, ubah nama grup proses menjadi hhvm2. Istilah grup proses karena bisa jadi dalam hhvm2 ada beberapa proses.
  • Baris ketiga, ubah nama proses menjadi /var/run/hhvm/pid2
  • Baris keempat, ubah nama socket menjadi /var/run/hhvm/hhvm2.sock]

Saya masih menggunakan konvensi direktori yang lama, /var/run. Untuk konvensi saat ini, sebaiknya ditulis ke direktori /run. Anda sebaiknya membiasakan diri saja dengan direktori itu.

Untuk skenario yang lain, repositori kode HHVM pada baris ke-5 dapat ditaruh pada berkas yang berbeda. Kebetulan saya menggunakan pengguna yang sama, jadi saya menggunakan satu repositori saja.

Pak, itu aman, ‘kah?

Repositori HHVM itu sendiri adalah sebuah berkas SQLite3. Menurut FAQ SQLite, SQLite3 menggunakan penguncian sistemberkas saat menulis. Sehingga, hanya satu saja proses yang bisa menulis. Sayangnya, untuk sistemberkas NFS dan FAT mekanisme itu tidak terjamin. Ingatlah untuk tidak menaruh berkas repositori di NFS.

Repositori HHVM berukuran sangat besar. Hal ini dapat membebankan untuk skenario inang dengan banyak situs. Untuk menghemat, Anda dapat saja membuat repositori HHVM dengan perizinan grup dapat menulis (0660). Lalu, setiap pengguna yang menjalankan HHVM dimasukkan ke grup itu. Ah, tapi ini di luar skenario dan saya takkan membahas untuk saat ini.

nginx

Ubah upstream NGINX untuk menambahkan satu HHVM sebagai cadangan. Sebagai contoh, saya menaruh upstream dalam sebuah berkas /etc/nginx/conf.d/upstream.conf

# Upstream to abstract backend connection(s) for PHP.
upstream php {
  server unix:/var/run/hhvm/hhvm.sock;
  server unix:/var/run/hhvm/hhvm2.sock backup;
}

Kira-kira begitulah untuk setiap konfigurasi. Selanjutnya, mari menjalankan setiap proses.

Jalankan Semua

Selanjutnya, jalankan proses.

supervisord

Pertama-tama, tambahkan aturan-aturan HHVM yang baru dibuat.

sudo supervisorctl reread
sudo supervisorctl add hhvm
sudo supervisorctl add hhvm2

Baris pertama meminta supervisord untuk membaca ulang konfigurasi. Dua baris selanjutnya menjalankan HHVM.

Oh, iya, kalau misalnya ada perubahan di berkas konfigurasi, jalankan:

sudo supervisorctl update hhvm

Ganti hhvm dengan nama grup proses yang lain.

nginx

Jalankan NGINX seperti biasa.

sudo invoke-rc.d nginx restart

Selesai.

Bacaan Lebih Lanjut

on 10 Jul 2015 03:07 AM

09 Jul 2015

Hari ini Detik.com merayakan ulang tahunnya yang ke-17. Arifin Asydhad, pimred Detik.com menyatakan di usia Detikcom ke 17 tahun ini, mereka akan mulai melakukan serangkain perubahan dan perbaikan. Namun, secara sekilas (saya bukan pengunjung regular Detik), selain meluncurkan tampilan barunya, saya kurang tahu inovasi signifikan baru apa yang dikeluarkan Detik.com.

Arifin mengatakan bahwa sekarang adalah era generasi baru Detikcom, dNewGeneration istilahnya. Generasi baru detikcom yang lebih menonjolkan hal-hal yang positif, inspiratif, inovatif, kreatif, dan solutif. Dengan pernyataan ini, mungkin mayoritas perubahan signifikannya adalah di sisi konten kali ya. (dibanding Okezone yang meluncurkan Warkop, Rubik, dan Metube)

Setidaknya pernyataan alumni Fakultas Peternakan UNPAD ini menguatkan itu:

Ini mungkin semacam reaksi atas maraknya konten-konten ala BuzzFeed yang menyembah pageviews dan visitors itu kali ya. Apalagi media-media online yang mencari sensasi dengan membuat berita-berita seolah-olah benar, judul kontroversial, dengan sarat muatan SARA dan partisan. Namun, karena saya bukan pengunjung reguler Detik, saya gak bisa tahu perubahannya. Mungkin yang sering ngunjungin Detik bisa ngerasain ada perbedaan dari konten-kontennya? Karena sebenarnya perubahan ini sudah dilakukan sejak 1 tahun terakhir katanya.

Saya dulu pembaca reguler Detik. Tetapi (di sekitar tahun 2007/2008), saya merasa kontennya makin lama makin sering data dan faktanya gak akurat. Isinya pun pendek-pendek. Tapi memang kecepatan pemberitaannya (buat saya) nomor satu dibanding yang lain. Menurut saya, buat apa beritain cepat-cepat kalau isinya “serampangan”. Apalagi kalau beritanya sensitif (menyinggung SARA), bisa berabe akibatnya kalau gak cek silang dan dapat info dengan benar.

Saya sempat menduga itu terjadi karena operasional yang kurang terkontrol. Tapi ternyata ini memang diamini oleh petinggi Detikcom kala itu. Menurut bos Detik kala itu, memang itu lah positioning mereka. Sebagai portal berita yang paling cepat memberitakan. “Detik ini juga!” Kalau memang gak akurat, tinggal di-update di -sepotong- berita berikutnya saja. Sementara saya penganut aliran kuno jurnalisme, “Get it first. But first, get it right..” Saya merasa Kompas.com (kala itu) lebih mendingan. Jadilah saya berpindah ke Kompas.com hingga sekarang. Nah, sejak itu saya kurang tahu lagi apakah Detik.com masih seperti yang dulu, atau sudah berubah. **I know, Kompas.com sih gak segitunya juga sebenarnya.

Disclosure: Saya pernah memiliki hubungan kerja dengan Kompas Gramedia. Tapi cerita di atas terjadi sebelum masa hubungan kerja saya dengan Kompas Gramedia.

Persaingan portal-portal berita masih berlangsung ketat. Sejauh ini, Detikcom masih memang posisi puncak. Tapi mudah-mudahan tetap bisa makin berkualitas dan berinovasi. Di US, media-media online sedang bergumul habis-habisan untuk mencari cara mendapatkan revenue tanpa mengorbankan idealisme jurnalismenya. Di Indonesia cepat atau lambat pasti akan terjadi juga. Bersiaplah sebelum itu terjadi. Atau sebenarnya di Indonesia juga sudah terjadi?

Happy sweet seventeen Detik.com.

on 09 Jul 2015 07:30 AM

08 Jul 2015

Shopious.com adalah tempat para penjual di social media (Instagram) mengiklankan barang jualannya. Kalau si penjual di Instagram tersebut sudah menjadi member di Shopious maka barang dagangannya akan otomatis masuk ke dalam listing di Shopious. Semua transaksi jual beli terjadi di luar Shopious.

Jualio.com pada dasarnya adalah marketplace (seperti Tokopedia dan OLX). Para penjual mengunggah barang dagangannya di Jualio, lalu secara otomatis barang dagangannya ini juga akan ditampilkan di social media yang sudah dihubungkan oleh si penjual ke akunnya di Jualio. Semua transaksi jual beli terjadi di dalam Jualio. Jadi pada dasarnya ini Tokopedia+ (karana ada fitur auto-post ke socmed).

Nah, kalau saya lihat ini dua bisnis di sekitar “jualan online” yang saling berkebalikan. Yang satu dari socmed ditampilin ke website, yang satu lagi dari website ditampilkan ke socmed.

*entahlah kalau ternyata pengertian saya mengenai Shopious dan Jualio salah ya. Begitulah pemahaman saya ketika mengunjungi website mereka dan membaca satu per satu page-page nya.

Model Bisnis – Shopious

Pada awal didirikan oleh Aditya Herlambang sih, sebenarnya model bisnis Shopious sama dengan Tokopedia. Mereka bahkan awalnya yakin 1 tahun setelah didirikan bakal bisa menarik 3% dari tiap  transaksi yang terjadi di Shopious.

Tetapi 8 bulan kemudian mereka berganti arah. Tidak lagi jadi marketplace. Startup yang didirikan oleh mantan iOS developer di Pulse ini menggantinya menjadi website tempat ol-shop di Instagram untuk mengiklankan produk-produknya. Keputusan yang tepat menurut saya, marketplace general sudah terlalu ramai. Isinya pemodal dengan duit tak berseri semua. -_-

Dari yang saya baca-baca, ketika mendaftar di Shopious pertama kali, para “sista” di Instagram tidak perlu bayar. Kalau nanti ada pelanggan yang menghubungi dari Shopious, baru deh diminta bayar. Kalau gak mau bayar? Bye bye sist..

Bayarnya berapa? Paling murah Rp 60.000/bln untuk 10 foto produk.


Saat ini kalau saya lihat dari daftar tokonya, paling enggak ada 1.000 toko yang terdaftar. Kalau semuanya ini sudah berbayar, berarti dalam satu bulan paling enggak Shopious mendapatkan revenue Rp 60.000.000,-. Ya, lumayanlah. Buat nggaji “rockstar-full-stack-ninja-RoR-Django-NoSQL-Docker-etc-engineer” masih cukup lah. 😀

Model Bisnis – Jualio

Kalau bicara Jualio, pasti inget Juale.com. Keduanya diprakarsai oleh  Nukman Luthfie, pemain lama di dunia digital Indonesia. Nukman Lutfhie sempat menjabat Direktur di Detik.com, membangun digital agency Virtual Consulting (sekarang berganti nama jadi Virtuco), membangun Musikkamu.com (bersama operator XL), Niriah.com (tutup), PortalHR.com, dll. Saya sendiri belajar banyak dari beliau sejak dari jaman kuliah.

[UPDATE] Sedikit koreksi. Versi asli tulisan ini disebutkan Jualio didirkan oleh Nukman Luthfie. Yang tepat adalah dirikan oleh Fahmi Bafadhal dengan endorser Nukman Lutfhie.

Juale.com adalah layanan pembuat toko online. Tinggal daftar, bayar, maka kita sudah punya “engine” toko online sendiri, dengan domain sendiri. Dan semua toko-toko yang menggunakan engine Juale, produknya akan dikumpulkan semua di Juale.com. Ya kaya Tokopedia, cuma masing-masing penjual punya alamat website sendiri-sendiri dan tampilannya pun masing-masing. Semua penjual ini harus membayar untuk menjadi member di Juale.com.

Sayang Juale akhirnya magudTM. Target market Juale saat itu adalah UKM-UKM yang baru mau masuk ke online. Menurut saya mungkin fokusnya ke UKM-UKM itu salah satu penyebabnya. Sebagai perbandingan, Tokopedia (setahu saya) dibangun dengan target market awal adalah para penjual-penjual di forum KafeGaul.com (tutup). Jadi isinya penjual-penjual yang memang sudah terbiasa dengan dunia online. Plus di Tokopedia penjual tidak perlu membayar untuk membuka toko.

Kembali ke Jualio. Jualio ini menurut saya malah versi mini Juale. Kalau di Juale penjual mendapatkan “website masing-masing”, dan domain masing-masing, di Jualio malah enggak. (Setahu saya sih gitu. Sekarang masih beta, jadi belum bisa kelihatan final nya). Bedanya, di Jualio produknya otomatis di post ke socmed para penjual.

Di Jualio penjual bisa upload informasi produk-produknya. Produknya bisa fisik, maupun digital. Semua transaksi jual beli terjadi di dalam Jualio. Pembayaran bisa via online payment, kartu kredit, maupun transfer bank. Jualio akan mengambil 5% dari produk fisik yang terjual, dan 30% dari produk digital yang terjual.

Target Market

Kalau Shopious sih sudah jelas target marketnya: mereka-mereka yang jualan di Instagram ini, umumnya sudah paham bagaimana cara berjualan via online. Maksudnya cara berjualan online ala Indonesia ya. Yang seringnya nanya-nanya mulu, nawar-nawar mulu, belinya kapan-kapan. Baru order 15 menit yang lalu, udah bolak-balik nge-buzz nanya barang udah dikirim atau belum. Ya gitu lah. Para sista di Instagram lebih pahamlah ini.

Dengan target market seperti itu, Shopious tidak perlu capek mengajari mereka bagaimana berjualan online –ini yang dulu dilakukan Juale.

Selain itu, dengan melepas transaksi di luar Shopious, mereka juga tidak perlu pusing dengan urusan ala-ala rekber (escrow), legalitas pengumpulan dana, refund, dll. Cuma, soal apakah target market ini bisa scale-up atau enggak, itu masih jadi pertanyaan. Kemudian, jika nanti trend nya berubah, para sista tidak lagi jualan di Instagram dan memilih ke marketplace seperti Tokopedia, bagaimana strategi Shopious berikutnya?

Kalau Jualio, saya enggak bisa membaca target marketnya. Selain masih belum dibuka tampilan finalnya, informasi yang saya dapatkan juga terbatas. Mudah-mudahan kali ini “kesalahan” target market di Juale tidak terulang di Jualio.

Dengan fitur otomatis upload ke socmed dari Jualio saya tidak melihat keunggulan signifikan-nya. Kalau socmed para penjual tersebut tidak banyak follower/fans/friends-nya, jadinya gak efektif. Tapi kalau socmednya sudah ramai, buat apa perlu Jualio? Karena ini malah merepotkan penjual. Upload harus ke Jualio, transaksi di Jualio, tawar-menawar (kemungkinan) juga harus di Jualio. Entahlah, saya masih kurang informasi untuk bisa membaca kemana arah Jualio sebenarnya.

Dan.., pertanyaan saya sama dengan soal Go-Jek kemarin. Apakah Shopious dan Jualio mengincar exit? Atau mau long term? 😉

on 08 Jul 2015 08:51 AM

Seperti halnya mantan terindah, aplikasi penting sering kali tidak dapat dilupakan begitu saja. Ia menyeruak masuk kembali dan selalu saja menempati ruang pikiran. Di saat keyakinan melangkah untuk maju, kembali hati jatuh ke relung yang sama.

Inilah kisah dari seorang yang gagal move on dari PHP 5.2 untuk semua saudara/i yang juga gagal move on. CMUNGUDH!

Dari pada menambah ketidakjelasan di hati, berikut asumsi saya agar kita tidak salah paham:

  1. Unduh semua pada satu direktori. Ingat! Satu direktori, jangan terpisahkan.
  2. Semua dilakukan sebagai pengguna biasa, bukan yang berkuasa.
  3. Silakan cari paket-paket pengembang yang diperlukan, saya lupa soalnya. Itu ada di masa lalu. Saya berasumsi Anda sudah memasang paket-paket yang dibutuhkan. Nanti sambil konfigurasi bisa tahu, kok, paket apa saja.

Pasang Paket Yang Dibutuhkan

Lupa saya, tee hee…

Unduh PHP dan Semua Tambalannya

Pada satu direktori, mari unduh berkas-berkas yang dibutuhkan.

export PHP_VERSION=5.2.17

# PHP 5.2
wget "http://museum.php.net/php5/php-$PHP_VERSION.tar.bz2"

# PATCHES
wget https://github.com/TommyLau/docker-lnmpa/raw/master/php/5.2/php-5.2.17-libxml2.patch
wget https://github.com/TommyLau/docker-lnmpa/raw/master/php/5.2/php-5.2.17-openssl.patch

# PHP-FPM
wget "http://php-fpm.org/downloads/php-$PHP_VERSION-fpm-0.5.14.diff.gz" -O php-fpm.diff.gz

ABI dan API XML2 dan OpenSSL berubah pada Debian Jessie, sehingga perlu disesuaikan.

Tambal PHP 5.2

Ekstraksi PHP 5.2 dan masuk ke direktori hasil ekstraksi:

tar xvfj php-5.2.17.tar.bz2
cd php-5.2.17

Di direktori PHP, tambal dengan urutan sebagai berikut:

# Patches for Debian Jessie
patch -Np1 -i ../php-5.2.17-libxml2.patch
patch -Np1 -i ../php-5.2.17-openssl.patch

# Patch for PHP-FPM
zcat ../php-fpm.diff.gz | patch -Np1

Saya malas bikin berkas tambalan. Lakukan saja ini untuk memperbaiki skrip konfigurasi dalam mencari pustaka Freetype:

sed -i 's/freetype2\/freetype/freetype/' configure

Konfigurasi PHP 5.2 untuk Siap Dikompilasi

Pada proses ini, mungkin ada paket pengembangan yang lupa terpasang. Silakan ditelusuri saja.

CFLAGS="-O3 -pipe -march=native -mtune=native -fomit-frame-pointer" './configure'  '--prefix=/opt/php52' '--with-config-file-path=/opt/php52/etc' '--disable-debug' '--with-zlib' '--with-pcre-dir' '--with-gd' '--with-jpeg-dir=/usr' '--with-png-dir=/usr' '--with-zlib-dir=/usr' '--with-freetype-dir=/usr' '--enable-gd-native-ttf' '--with-ldap' '--enable-soap' '--enable-sockets' '--enable-sysvmsg' '--enable-sysvsem' '--enable-sysvshm' '--enable-zip' '--with-mcrypt' '--with-xmlrpc' '--enable-mbstring=shared' '--with-openssl=shared' '--with-mysql=shared' '--with-gettext=shared' '--with-zend-vm=GOTO' '--enable-bcmath' '--with-snmp=/usr' '--with-xsl' '--enable-fastcgi' '--enable-fpm' '--with-mysqli' '--with-libdir=lib/x86_64-linux-gnu'

Yang terpenting ada dua:

CFLAGS=”-O3 -pipe -march=native -mtune=native -fomit-frame-pointer”
ini optimasi kompilasi. Lakukan baris ini bila kompilasi dilakukan pada mesin yang sama atau lingkungan yang sama dengan mesin tujuan.
‘–with-libdir=lib/x86_64-linux-gnu’
Debian Jessie menaruh pustaka 64-bit tidak lagi di /usr/lib64, tetapi di /usr/lib/x86_64-linux-gnu.

Anda dapat juga mengganti direktori pemasangan sesuai selera Anda. Misalnya, Anda penggemar FHS sehingga menggunakan /usr/local atau di tempat lain.

‘–prefix=/opt/php52′
Tempat pemasangan PHP 5.2, Anda dapat mengganti ini sesuai selera.
‘–with-config-file-path=/opt/php52/etc’
Konfigurasi berkas. Anda dapat menaruhnya di /etc/php52, misalnya, agar konsisten dengan Debian.

Sebelum kompilasi, ubah pustaka XML2 dan SSL yang hendak ditautkan ke PHP pada Makefile

sed -i 's/-lxml2 -lxml2 -lxml2/-lcrypto -lssl/' Makefile

Selanjutnya, PHP siap untuk dikompilasi.

Kompilasi dan Pasang PHP

Kompilasi dan PHP 5.2

make -j"$(nproc)"
sudo make install

Sampai sini saya pikir untuk konfigurasi PHP FPM dan pemasangan berkas init tidak perlu saya tulis, ‘kan?

Silakan tulis di komentar kalau memang perlu saya buatkan tutorial memasang skrip SystemD dan Sysvinit.

Ucapan Terima Kasih

Terima kasih kepada

on 08 Jul 2015 08:31 AM

07 Jul 2015

[Ilustrasi: Ahmad Hammoud – ahmadhammoudphotography | flickr.com]

So startups out there listening—if you want to fizzle, like Circa, or have a slim chance of being acquired, like Wavii, Summly, and Pulse, do more or less the same. But if you can solve the real  problems that have faced news organizations since news first made its way online, you may have a  chance of making it on your own. Do what no one else can do: find new ways to profit off the news. Otherwise, you’re in it with the rest of us.

~Wired.com

Wired membahas tentang Circa yang akhirnya menyatakan akan magudTM. Circa adalah startup penyedia berita dalam bentuk mobile application. Berbeda dengan ala-ala BuzzFeed, UpWorthy, dll yang fokus ke gimana caranya dapat trafik sebanyak-banyaknya, Circa fokus ke isi berita yang straightforward, fokus ke fakta dan informasi yang penting. Well, sayangnya Circa salah melihat peluang. Bukan bagaimana cara menyampaikan konten yang jadi masalah, tapi gimana cara mendapatkan uang dari konten tersebut.

Kalau di Indonesia sih, pasarnya belum seperti di US. Makanya portal-portal berita itu juga masih lincah bermain-main headline ala-ala BuzzFeed demi mengejar trafik. Kalau trafik sudah tinggi (Alexa tinggi), tinggal jualan ads banner atau “native-ads” a.k.a advertorial deh.

Saya setuju dengan Wired. Kalau ada startup yang tahu cara memonetisasi media online dengan tidak bergantung pada “tweaking” headline dan konten ala BuzzFeed, niscaya akan jadi “disruptor” bisnis media online.

on 07 Jul 2015 08:01 AM
Pertama kali belajar Linux dimulai dengan kelebihan Linux yaitu saat menulis sebuah perintah dalam terminal. Menggunakan Linux kita bisa menulis beberapa perintah yang ditulis dalam 1 baris perintah saja. Awalnya saya tidak percaya kelebihan tersebut. Dicoba dengan 2 perintah jadi 1 baris perintah ternyata berhasil.

Tidak sekedar itu saja ternyata dalam 1 baris perintah bisa berbagai perintah yang merupakan kombinasi beberapa fungsi. Sebagai contoh, setiap proses yang berjalan memiliki sebuah ID. Biasanya langkah manualnya adalah menjalankan perintah ps ax kemudian mencari proses yang dicari. Setelah dicari proses tersebut ingin dihentikan dengan perintah kill. Gambaran langkahnya sebagai berikut:
1. ps ax atau ps axu atau ps ax|grep NamaProses
2. kill -9 ID-Proses

Jika ingin dikombinasikan dan dimasukan dalam shell script maka perintah tersebut menjadi ps ax| grep 'NamaProses' | grep -v 'grep' | awk '{print $1}' | xargs kill -9. Baris perintah ini saya masukan ke dalam shell script dan terasa lebih efektif.
on 07 Jul 2015 02:20 AM

06 Jul 2015

[Foto: kompas.klasika | flickr.com]
Saya baca di blog ini, di salah satu paragrafnya kurang lebih disebut, “Sampai sekarang Go-Jek belum mau membuka siapa investornya.” Saya baru kepikiran. “Hah, masak sih?”. Di era startup rame-rame ngomongin siapa investor mereka, atau diakusisi siapa, beberapa bahkan menyebutkan nominalnya, saya juga baru sadar kalau Go-Jek sepertinya tidak ramai dibicarakan siapa investornya.

Sejauh yang saya dapatkan informasinya baru Northstar Group, via NSI Ventures, yang menginformasikan Go-Jek sebagai portofolio investasi mereka. Ini tercantum di situs resmi Northstar, maupun NSI Ventures.

*Northstar adalah perusahaan private equity (sejenis Saratoga, TRG gitu kali ya kalau di Indonesia). Kalau NSI Ventures adalah perusahaan venture capital. Beda private equity sama venture capital apa? Googling aja ya. Haha.

Kalau melihat awal-awal Go-Jek launching dulu tahun 2010, sebenarnya liputannya cukup lumayan. Mereka sempat diliput oleh The Labana Post The Jakarta Post. Di situ disebutkan nama Arthur Benjamin sebagai angel investor Go-Jek. Tapi anehnya, salah satu petinggi Go-Jek yang sekarang bahkan gak tahu nama itu. Perkiraan saya sih, Arthur sudah tidak lagi menjadi investor di Go-Jek. Kok bisa? Mungkin yang berikut ini bisa jadi penjelasannya.

Para Pendiri Go-Jek

Go-Jek, didirikan oleh Nadiem Makarim, Brian Cu and Michaelangelo Moran. Sebelum mendirikan Go-Jek, Nadiem bekerja di McKinsey, Brian Cu bekerja di BCG, sementara Michaelangelo bekerja sebagai Web Interactive Designer freelancer.

Nah ini yang menarik. Go-Jek itu dari berbagai liputannya, disebut bahwa mereka didirikan di sekitar Juni 2010. Hingga 2011, beritanya masih keluar di media. Termasuk artikel di The Jakarta Post tadi. Tapi, sejak 2011 akhir, bisa dibilang Go-Jek agak meredup dari pemberitaan.

Penyebabnya? Saya gak tahu persis. Yang jelas, setelah mendirikan Go-Jek di 2010, Nadiem dan Brian justru bekerja di Rocket Internet untuk membangun Zalora.com. Nadiem bergabung ke Zalora di November 2011, dan Brian bergabung di Januari 2012. Mereka direkrut oleh Rocket Internet untuk membangun Zalora Indonesia (fashion e-commerce).

*Sudah bukan rahasia lagi memang kalau Rocket Internet gemar mengambil tim dari mantan karyawan perusahaan konsultan manajemen. Nadiem ex-McKinsey, dan Brian ex-BCG. Dua nama besar perusahaan konsultan.

Saya enggak tahu pastinya ketika Nadiem bergabung ke Rocket Internet, Go-Jek statusnya bagaimana. Apakah memang vakum atau malah dibangun ulang. Kalau beneran dibangun ulang gak heran kalau akhirnya Arthur Benjamin sudah tidak lagi tercatat sebagai pemilik saham.

Lalu setelah keluar dari Zalora, gimana kelanjutannya? Nah ini menarik juga. Setelah keluar dari Zalora, Nadiem juga belum memilih fokus dengan Gojek-nya. Di April 2013 lulusan MBA Harvard ini malah bergabung ke Kartuku, menjabat sebagai CIO. Setahun di Kartuku, barulah Nadiem kembali fokus ke Gojek.

Brian Cu? Setelah keluar dari Zalora, lulusan National University of Singapore ini memilih berkarir di GrabTaxi sejak Juni 2013. Iya, GrabTaxi yang itu.., yang juga meluncurkan GrabBike, pesaing utama Go-Jek.

Ini menarik. Melihat timeline catatan karir mereka di Linkedin, sepertinya Brian Cu juga tidak lagi memiliki saham di Go-Jek.

The New Go-Jek

Di 2015 ini, Go-Jek mulai ramai lagi. Kalau dulu pesannya harus via telpon, sekarang sudah bisa via aplikasi, ala-ala Uber. Walaupun aplikasinya menurut saya kualitasnya masih jauh dari Uber.

Mengapa aplikasinya kualitasnya masih jauh? Beberapa kali saya gunakan, aplikasinya suka error sendiri. Pesen Gojek, nunggu agak lama, terus muncul notifikasi pengemudi sudah dapat, sedang dalam perjalanan. Tapi informasi pengemudinya kosong. Gak ada nama maupun nomor telpon. Posisinya? Di laut. Tapi pernah juga berhasil dengan mulus sih.

Lalu ini yang paling parah, seringkali (dapat cerita) aplikasinya bisa diakali sendiri oleh pengemudi Gojek-nya, maupun oleh pengguna jasanya. Pengemudi Go-Jek nya bisa dapat 800rb sehari dengan ngakalin aplikasinya. Ini abang-abang Go-Jek nya sendiri lho yang cerita. Penumpangnya? Well.., gitu deh. Biar jadi PR orang teknologinya Go-Jek lah ini.

Soal investor, seperti disebutkan tadi, strateginya Nadiem agak beda dengan kebanyakan startup lainnya. Di beberapa media, Nadiem menyatakan kalau enggan membuka informasi investor Gojek. Bukan soal nominal saja, tapi soal siapa investornya. CFO nya Gojek pun waktu saya tanya tidak bisa memberikan informasi, confidential katanya.

Pertumbuhan Gojek sepertinya luar biasa tahun ini. Download aplikasinya sudah lebih dari 500rb. Jumlah mitra abang ojeknya pun sudah 10rb lebih, tersebar di 4 kota.

Pertanyaan dasar saya cuma satu, ini Gojek mau ngincer exit, atau memang mau dijalankan long term ya? 😉

PS: Terus, Michaelangelo Moran gimana? Well, kata info user di Wikipedia (ini saya quote ya) “Michaelangelo Moran is a son of a bitch and janitor based currently in San Francisco”. Saya yakin ini pasti becandaan sih. Entah oleh dia sendiri (yang memang pekerja kreatif), atau temen-temennya. 😀

on 06 Jul 2015 09:19 AM
Lama sekali bisa terkoneksi secara langsung dengan printer. Seringnya mengambil memanfaatkan printer yang terkonfigurasi untuk bersama-sama. Pertama kali konfigurasi atau menambahkan printer HP LaserJet P1102 di LinuxMint 17.1 lancar jaya tidak ada kendala sedikit pun. Cukup memanfaatkan HPLIP Toolbox tinggal klak-klik sudah beres proses penambahan printer.

2 hari kemudian komputer saya perbarui ke LinuxMint 17.2. Proses pembaruan tidak ada kendala sama sekali, terbilang lancar. Namun setelah selesai proses pembaruan muncul masalah tidak bisa terhubung dengan HP LaserJet P1102. Padahal HPLIP-nya menggunakan versi lebih tinggi yaitu v3.15.2.

Permasalahannya ternyata belum terinstallnya Driver Plug-in untuk HPLIP v3.15.2. Pastikan unduh terlebih dahulu Driver Plug-in di https://www.openprinting.org/download/printdriver/auxfiles/HP/plugins/ yang disesuaikan versinya. Saya memilih hplip-3.15.2-plugin.run. Selanjutnya pada bagian pilihan Plug-in Installation pilih Select and install an existing local copy of the plug-in file dan arahkan Driver Plug-in yang telah terunduh. 

Proses installasi saya ikuti dan akhirnya saya bisa memulai mencetak menggunakan HP LaserJet P1102 dari LinuxMint.

on 06 Jul 2015 08:52 AM

Bagi yang sudah pernah berurusan dengan situs yang berat, Anda pasti juga jengah dengan kelakuan PHP-FPM. Ada beberapa solusi yang saat ini tersedia:

Beberapa waktu yang lalu saya sudah membahas tentang uWSGI. Sekarang, saya mau mencoba teknologi HHVM. Doakan saja supaya saya tidak malas dan juga mau mencoba HippyVM dan PHP7-FPM sehingga saya bisa menuliskan untuk Anda.

Pasang HHVM

Cara pasang HHVM di berbagai sistem operasi ada di sini. Saya asumsikan hendak dipasang di sistem operasi Debian Jessie.

sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0x5a16e7281be7a449
echo deb http://dl.hhvm.com/debian jessie main | sudo tee /etc/apt/sources.list.d/hhvm.list
sudo apt-get update
sudo apt-get install hhvm

Perintah-perintah ini pada intinya memasang kunci paket repo HHVM dan menambahkan repo tersebut ke daftar repositori sistem. Kemudian, perbaharui daftar paket yang tersedia dan pasang HHVM.

Selanjutnya, ubah konfigurasi HHVM di /etc/hhvm/server.ini menjadi

; php options

pid = /var/run/hhvm/pid

; hhvm specific 
hhvm.server.file_socket=/var/run/hhvm/hhvm.sock
hhvm.server.type = fastcgi
hhvm.server.default_document = index.php
hhvm.log.level = Warning
hhvm.log.always_log_unhandled_exceptions = true
hhvm.log.runtime_error_reporting_level = 8191
hhvm.log.use_log_file = true
hhvm.log.file = /var/log/hhvm/error.log
hhvm.repo.central.path = /var/run/hhvm/hhvm.hhbc
hhvm.mysql.typed_results = false

; Generate JIT codes sooner!
hhvm.eval.jit_warmup_requests = 1

; Disable Perf debugging
hhvm.keep_perf_pid_map = 0
hhvm.perf_pid_map = 0
hhvm.perf_data_map = 0

Ada beberapa perbedaan dengan konfigurasi biasa. Berikut yang penting:

  • Saya memilih untuk menggunakan socket dari pada port TCP karena lebih aman dalam menentukan hak akses.
  • Saya menyuruh HHVM untuk segera mengaktifkan optimasi dari sejak awal. Hal ini mengakibatkan peladen agak lama di awal.
  • Saya mematikan fungsi profiling. Fungsi ini berguna kalau Anda mau men-debug kode PHP Anda yang dieksekusi oleh HHVM. Kemungkinan besar, Anda terlalu malas seperti saya. Fungsi ini hanya akan memenuhi /tmp dengan berkas peta performa.

Pasang NGINX

Pertama-tama, pasang NGINX:

sudo apt-get install nginx

Set upstream NGINX ke HHVM di berkas /etc/nginx/conf.d/upstream.conf

# Upstream to abstract backend connection(s) for PHP.
upstream php-hhvm {
  server unix:/var/run/hhvm/hhvm.sock;
}

Lalu, buat sebuah blok konfigurasi /etc/nginx/php-hhvm

location ~ \.(hh|php)$ {
    try_files $uri =404;

    fastcgi_keep_conn on;
    fastcgi_pass   php-hhvm;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include        fastcgi_params;
}

Ini saya ambil dan modifikasi sedikit dari hhvm.conf yang biasanya terpasang saat kita memasang HHVM.

Nah, setiap Virtual Host yang mau menggunakan, tinggal mengikutkan berkas php-hhvm di dalam berkas konfigurasinya. Misalnya, kita buat sebuah berkas /etc/nginx/sites-available/default

server {
	# Anything not directed at specific host will hit "Welcome to nginx"
	listen 80 default_server;
	server_name _;
	
	root /var/www/html;
	index index.php index.html index.htm;

	location / {
        	try_files $uri $uri/ /index.php?$args ;
	}

        include php-hhvm;

}

Jangan lupa, ini cuma contoh! Untuk mesin produksi, tolong ubah berkas direktori dan tambahkan beberapa aturan untuk menghindari injeksi.

Selanjutnya, pasang seperti biasa ala Debian:

sudo ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/default
sudo invoke-rc.d nginx reload

Beres.

Eits! Nanti dulu, Kisanak! Supaya situs tetap berjalan, mari pasang Monit untuk memonitor keberadaan HHVM. Menurut pengalaman saya, awal-awal HHVM rentan terhadap aplikasi yang harus dinyalakan ulang.

Pasang Monit

Pasang Monit.

sudo apt-get install monit

Buat konfigurasi Monit untuk HHVM di /etc/monit/conf.d/hhvm yang isinya:

check process hhvm with pidfile /var/run/hhvm/pid
  group hhvm
  start program = "/usr/sbin/service hhvm start" with timeout 60 seconds
  stop program = "/usr/sbin/service hhvm stop"
  if failed unixsocket /var/run/hhvm/hhvm.sock then restart
  if mem > 400.0 MB for 1 cycles then restart
  if 5 restarts with 5 cycles then timeout

Untuk dapat memonitor Monit, langkah opsional yang dapat diambil adalah dengan mengubah 3 baris berikut pada /etc/monit/monitrc

set httpd port 2812 and
   use address localhost  # only accept connection from localhost
   allow localhost        # allow localhost to connect to the server and

Kalau pada konfigurasi Jessie, baris-baris itu mulai dari baris ke-130.

Setelah selesai, muat ulang Monit:

invoke-rc.d restart monit

Kalau mau lihat Monit, silakan ketik:

sudo monit status

Tentunya, langkah opsional dikerjakan. Bila tidak, maka Monit tak dapat dilihat.

Selesai!

on 06 Jul 2015 08:48 AM

Python Library to read email from live, hotmail, outlook or any microsoft email service, just dowload to yout python script folder. This library using Imaplib python to read email with IMAP protocol.

go here : https://github.com/awangga/outlook

Example

To get latest Unread Message in inbox :

import outlook
mail = outlook.Outlook()
mail.login('emailaccount@live.com','yourpassword')
mail.inbox()
print mail.unread()

To get latest Unread Message in Junk :

import outlook
mail = outlook.Outlook()
mail.login('emailaccount@live.com','yourpassword')
mail.junk()
print mail.unread()

Retrive email element :

print mail.mailbody()
print mail.mailsubject()
print mail.mailfrom()
print mail.mailto()

on 06 Jul 2015 08:23 AM

04 Jul 2015

power, fantasy

Arif Syamsudin

yes, it is true power. but it is a reality.

waktu pertama kali keluar iklannya, nyatanya barang yang diiklanin ngga' langsung ada di toko. masih inget sama tulisan saya sebelumnya? di tulisan tersebut saya sempet nulis hape keren. ya nyatanya memang keren sich. merknya memang merk lokal. speknya memang ngga' terlalu muluk2. hapenya memang hape entry level. jadi harganya pun lumayan terjangkau.



mito. mito a68 power fantasy. yang sangat menarik perhatian saya adalah asupan energi yang disediakan oleh hape ini. kapasitas baterenya 4000 mah. klaimnya, kalo mau, bisa dipakek buat power bank. kalo rela :d. walaupun spesifikasi perangkatnya rendah, tapi nyatanya kinerja perangkat tidak mengecewakan. orang bilang, ada harga, ada rupa. ya, kenyataannya seperti itu. tapi sekali lagi, dengan harga yang ditawarkan, kinerjanya masih cukup bagus.

ram yang disediakan hanya 512mb. sedangkan internal storage disediakan sebesar 4gb. begitu diterima di tangan, sisa penyimpanan tinggal setengahnya, karena program pre-installed-nya juga lumayan banyak. tinggal di-uninstall aja sich, ada sedikit banyak ruang tambaha untuk pasang-pasang program yang diinginkan. layar sudah 5inci. enak digenggam di tangan. di dalam boks-nya, kita akan mendapatkan kabel data, unit adaptor charger, earphone, dan kabel usb-on-the-go. iya, hape ini sudah mendukung usb-on-the-go. jadi untuk urusan transfer berkas tinggal salin berkas ke dalam usb, dan colok menggunakan kabel tersebut. jreng...tinggal salin. colokan tersebut jugak bisa dipakek sebagai media untuk isi ulang hape lain.

huft. there you go. 4000 mah adalah kunci. pemakaian normal dengan koneksi wifi serta data yang terkoneksi 24 jam, hape tetap nyala hampir 2 hari. iya. dengan harga yang entry level saya bisa mendapatkan ketahanan pemakaian yang mungkin sama dengan hape2 kelas di atas hape ini. oia, di dalam boks, juga terdapat tambahan casing penutup batere. kualitasnya ngga' abal2, well crafted.
banyak yang mungkin meng-under estimate hape ini karena semata-mata ber-merk lokal. tapi yakinlah, kualitasnya ngga' kalah koq. sama bagusnya dan sama rapihnya seperti hape kelas non-entry level lainnya. oia, hape ini sudah dilengkapi dengan sistem operasi android kitkat 4.4.2. jadi, ngga' terlalu jadul2 amat. sekarang, di lazada (bukan ngiklan lho), hape ini sudah dijual dengan harga kurleb 800rb-an.

data diambil dari http://www.hargahandphone.biz/2014/05/mito-a68-fantasy-power.html

monggo, silahkan dieksplor sendir untuk merasakan power-nya hape ini ;).

update:
pengisi daya pada hape ini punya fitur auto cut-off. jadi kalo pengisian daya sudah penuh, maka daya listrik yang mengalir ke hape untuk pengisian beterai, otomatis terputus. demikian.
on 04 Jul 2015 06:18 AM

24 Jun 2015

Rejeki iku ora iso di tiru, senajan podo lakumu, senajan podo dodolanmu, senajan podo kerjomu, hasil sing ditompo bakal bedo,  iso bedo ning akehe bondho, iso ugo ono ning roso lan ayeme ati yo iku sing jenenge nasib. Kabeh iku soko  trisnane  Gusti kang Maha kuwasa, sopo temen bakal tinemu sopo wani rekoso bakal Gayuh […]
on 24 Jun 2015 09:33 AM

who knows

Arif Syamsudin

semuanya bermula dari pengumuman di salah satu milis blogger yang kebetulan saya ikuti. isinya adalah tentang program berbagi pengalaman tentang asus zenpower 10050mAh. well, i'm excited. sebetulnya ngga ' berharap banyak sama program-program seperti ini. hampir ngga' pernah dapet atau menang kegiatan-kegiatan seperti ini. kembali ke laptop...untuk ikut program tersebut, cukup dengan mengisi data diri kita serta alasan mengikuti program tersebut di sini, https://goo.gl/2ydaQT. berbekal bismillah, saya coba mengisi formulir tersebut. dan semoga alam memberkati.


namun semua berubah...ketika negara api menyerang. siang tadi saya mendapatkan satu kejutan yang membuat saya jadi sumringah. sebetulnya, seperti yang saya tuliskan pada lembar pendaftaran kegiatan, saya ngga' pernah berfikir untuk memiliki bank tenaga, karena saya pikir, saya bukan pelancong. asupan tenaga listrik untuk mengisi baterai cukup bisa saya dapatkan via kantor dan rumah. atuh, hape saya ngga' canggih-canggih amat. terakhir, saya malah menggunakan hape yang daya tahan baterainya luar biasa, nokia e63 :).

namun, lagi, ketika asus yang ditawarkan, saya berfikir...menarik kalo saya bisa memiliki produk ini. ditambah ukuran daya yang disediakan oleh bank tenaga. 10050 mah cuy! ah...saya harus mencari tahu dulu apa arti dari angka tersebut, biar paham kalo ditanya :D. kalo kita kembali ke laptop, begitu pulang nganter bocah periksa, istri saya berujar, "eh ini ada kiriman paket buat bapak." meh, saya ngga' pesen apa-apa perasaan. belanja terakhir ketika saya mesen hape keren ini (tunggu ulasannya :)).

masih akibat dari negara api menyerang, ternyata yang ngga' saya sangka-sangka bisa dipegang tangan. asus zenpower 10050 mah. huhu!!! bener-bener berkah ramadhan dhe (halah, ra ono hubungane, lek!) hehehe. udah dibongkar-bongkar dan diliat. nah, tinggal tulis ulasannya dhe. karena masih baru, belom sempet dicoba jugak cuy. karena itu, mari ditunggu sama-sama kiranya ulasan yang bisa saya berikan untuk "keajaiban" yang saya dapet tersebut ;).
on 24 Jun 2015 08:18 AM

22 Jun 2015

Ternyata dalam 1 basisdata banyak tabel yang serupa. Maklum hanya punya akses 1 basisdata. Sehubungan dalam rangka bersih-bersih makanya diputuskan menghapus semua tabel dalam basisdata. Cara paling mudah memang hanya menghapus basisdata dengan perintah drop database NamaBasisData.

Kebutuhannya basisdata masih ada hanya tabel saja yang dihapus. Berikut langkah untuk menghapus semua tabel dalam 1 basisdata:
1. Membuat berkas hapus-semua-tabel.sh, vim.tiny hapus-semua-tabel.sh.
2. Dalam berkas hapus-semua-tabel.sh isinya seperti dibawah ini
#!/bin/bash
MUSER="$1"
MPASS="$2"
MDB="$3"
 
# Detect paths
MYSQL=$(which mysql)
AWK=$(which awk)
GREP=$(which grep)
 
if [ $# -ne 3 ]
then
echo "Usage: $0 {MySQL-User-Name} {MySQL-User-Password} {MySQL-Database-Name}"
echo "Drops all tables from a MySQL"
exit 1
fi
 
TABLES=$($MYSQL -u $MUSER -p$MPASS $MDB -e 'show tables' | $AWK '{ print $1}' | $GREP -v '^Tables' )
 
for t in $TABLES
do
echo "Deleting $t table from $MDB database..."
$MYSQL -u $MUSER -p$MPASS $MDB -e "drop table $t"
done
 
3. Simpan dan dijalankan menggunakan format, sh hapus-semua-tabel.sh NamaUser Password NamaBasisData.

on 22 Jun 2015 04:56 AM

16 Jun 2015

oke sekarang katakanlah sudah sukses dengan usahanya
sudah bisa memiliki apa yang diimpikan
sudah bisa membeli apa yang diinginkan

kemudian merasa strategi dan teknik2 marketing dan penjualannya berhasil menjadikan bisnisnya sukses seperti sekarang..
trus apa bedanya dengan qorun?

sejatinya antara kesuksesan berbisnis dan kehamilan adalah sama-sama merupakan rizki yang memang sudah ditetapkan oleh Allah..

kalau kita merasa sukses dengan usaha kita,
maka ketahuilah
diluar sana ada yang usahanya lebih gigih dari kita,
diluar sana ada yang modalnya lebih kuat dari kita
diluar sana ada yang marketing dan promosinya lebih jor-joran dari kita
diluar sana ada yang tim nya lebih solid dan lebih jago dari tim kita
diluar sana ada yang sistemnya lebih terstruktur daripada kita

namun kenyataannya sukses lebih memilih kita...
kenapa demikian?

sebenarnya hal tsb semata-mata lebih kepada kemurahan yang Allah berikan kepada kita sehingga kita bisa mendapatkan kesuksesan dalam bisnis...
adapun strategi atupun langkah2 yang kita jalankan hanya lah sarana saja, tidak menentukan apapun..

lihat saja orang hamil, kehamilan tersebut bukanlah dari kemampuan kita, itu semata-mata kemurahan Allah yang diberikan kepada kita.
adapun langkah2 menuju kehamilan  baik pernikahan, hubungan suami istri, masa-masa subur, mengucapkan doa seblum berhubungan dll adalah hanyalah sarana saja, tidak menentukan kemudian langsung bisa hamil dan berhasil mendapatkan anak.

diluar sana ada orangtua yang belum dikaruniai anak walau langkah dan strategi nya disiapkan dengan sebaik mungkin, dengan fasilitas yang lebih baik, punya kekayaan berlebih sehingga bisa konsultasi ke dokter lah, berlibur honeymoon lah dll namun kenyataanya belum juga dikaruniai kehamilan ataupun anak

sebaliknya ada orangtua yang cuman ala kadarnya saja namun anaknya bisa sangat banyak, bahkan bisa jadi tiap tahun hamil terus

terus mendingan kita sante aja dong kl gt,
toh rizki udah takdir, udah ada jatahnya masing2

tentu tidak, coba aja ga usah nikah, trus mau dapet anak dari mana.
ga berhubungan suami istri, trus mau dapet anak dari mana...
bisa kok tinggal ngangkat anak, ya anak angkat nasabnya beda, dan itupun sudah suatu action, bukan nyante2
bisa kok bayi tabung, atau donor sperma dll ya sama aja tetep itu effort bukan nyante-nyante

kesimpulannya kesuksesan bisnis kita sejatinya semata-mata adalah kemurahan yang diberikan Allah untuk kita, bukan dari kerasnya upaya, gigihnya perjuangan kita membangun bisnis dll

namun perlu diingat bahwa banyaknya harta belum tentu tanda kebaikan/kemuliaan seseorang dan belum tentu tanda keberkahan. ingat anak2 yang hamil diluar nikah, itu mereka juga diberikan anak, ataupun suami istri yang sebelum berhubungan tidak membaca doa langsung grabak grubuk aja, mereka juga diberikan anak. semua sama-sama merasakan kemurahan rizki dari Allah.

rumah makan yang sama-sama bersih, enak, mahal, strategis ada yang diberi kesuksesan oleh Allah dan ada yang tidak
rumah makan yang sama-sama kurang bersih, rasanya standar, tempatnya mojok kedalam juga sama, ada yang diberi kesuksesan dan ada yang tidak.
orang nikah baik-baik, berhubungan suami istri dengan baik, sesuai syariah dan tidak melanggar yang tidak diperbolehkan, keadannya jg sama, ada yang kemudian diberi keturunan ada yang tidak.

tidak ada kemampuan dari kita sama sekali, tidak ada algoritmanya sama sekali yang kemudian bisa digunakan untuk pasti bisa mendapatkan kehamilan dari upaya kita tersebut.

jadi aneh kalau kemudian kita merasa suksesnya bisnis kita adalah semata-mata karena strategi dan langkah2 yang kita jalankan.

ingat keberkahan harta tidak dilihat dari banyaknya harta atau sedikitnya harta yang dimiliki
namun dilihat dari seberapa taat nya kita kepada Allah dengan harta yang dimiliki, entah sedikit entah banyak....

kalau miskin, tapi dengan kemiskinan tsb menjadikan dia lebih dekat kepada Allah, maka kemiskinannya tersebut adalah rizki yang barokah untuknya
kalau kaya, tapi dengan kekayaan tsb menjadikan dia lebih dekat kepada Allah, maka kekayannya tersebut adalah menjadi rizki yang barokah untuknya...

kalau harta kita bertambah, misalnya 5 tahun yang lalu kita hanya punya apa dan sekarang kita sudah punya apa, namun yang terjadi adalah kita rasanya males sekali kalau mau beribadah, males ke masjid, males sholat berjamaah, suka menunda-nunda sholat, diakhir-akhirkan, jarang ikut kajian menuntut ilmu agama, jarang baca quran, jarang sholat duha, sholat malam ditinggalkan bolong-bolong dll
terus pertanyaanya inikah yang namanya rizki yang barokah, inikah yang namanya sukses berbisnis?

semoga kita semua bisa mendapatkan rizki yang barokah, entah sedikit ataupun banyak asal barokah, yakni yang mendekatkan kita kepada Allah.

on 16 Jun 2015 02:13 PM

15 Jun 2015

setelah menjalani kehidupan sebagai amfibi untuk beberapa lama, ya sebenernya kerjaan udah enak sesuai passion sampai akhirnya momen itu tiba. sebuah momen dimana membuat saya memutuskan untuk resign dari bekerja untuk full usaha. kondisinya gaji saya waktu itu 5jt-an kemudian penghasilan dari usaha 20jt-an yang mana sebenarnya saya gak lagi gelisah seperti dulu, dimana dulu kl kerja penginnya pindah2 ke tempat yang bisa mendapatkan tawaran gaji yang lebih tinggi.

namun dengan usaha, niatan utk kerja jadi lebih tenang karena gak perlu khawatir dengan gaji berapapun karena sudah terpenuhi dari usaha, jadi bisa lebih fokus dan tenang dalam bekerja karena sifatnya hanya untuk menyalurkan passion saja.

namun ya waktu bergulir dimana mungkin memang suatu ketika bagi yang menjalani kehidupan sebagai amfibi akan menemui momen ini.

momen dmana kita akhirnya harus rela utk melepaskan pekerjaan kita untuk menuju kehidupan sepenuhnya di dunia usaha.

momen saya waktu itu adalah dimana saya mendapatkan project ratusan juta, nilai yang waktu itu tidak pernah terbayangkan sebelumnya dibenak saya. nolnya banyak banget yang membuat dunia kerja saya goyah.

walaupun akhirnya momen ini malah membuat terpuruk, berdarah-darah. kehidupan setelah resign menjadi semakin mengerikan. kalau sebelum resign tenang, sekarang full pikiran gak tenang, gelisah sana sini. project yang ratusan juta tersebut banyak sekali masalahnya disana sini sampai akhirnya selesai dalam waktu setahunan lebih, menderita sekali dalam mendelivernya, banyak memakan korban yang kemudian membuat angka ratusan juta tersebut jadi tidak bernilai sama sekali karena dibagi waktu bulanannya jadi rugi. uang tabungan yang saya miliki sudah terkuras habis, kondisinya stress berat saya waktu itu, bahkan terlintas pikiran konyol bunuh diri, gila lah masalahnya seolah-olah tidak pernah selesai silih berganti yang saya tidak bisa memikirkan lagi musti apa lagi yang harus saya lakukan. temen2 lah yang menguatkan saya, support dan pertolongan mreka besar artinya bagi saya.

belum selesai sampai disitu, selesai pekerjaan dideliver pun, pembayaran turut bermasalah, molor sampai setahun berikutnya, total 2x lebaran dari awal mulai sampai pembayaran diterima sepenuhnya. sampai pemberi kerjaan ke saya malah sempat ngilang dari kantornya, kantornya kosong pindah ke tempat lain diluar jakarta yang kita tidak ada pemberitahuannya sama sekali, yang lagi2 kita juga musti berdarah darah ngejar penagihannya, kita uber pindah kemana kantornya.

suram lah melewati masa-masa tersebut, sudah sampai pada titik dimana saya sudah sampai menyerah pasrah. pagi siang malam terus menerus dalam kegelisahan. gila, kehidupan pasca resign dari yang sebelumnya tenang nyantai menjadi penuh gejolak dan permasalahan yang seolah tiada ada akhir penyelesainnya... kehidupan yang sebelumnya surplus, stabil diposisi atas menjadi menukik tajam, minus, terpuruk berhutang dimana-mana...

alhamdulillah akhirnya project tersebut bisa terselesaikan dengan baik, semua pihak puas dengan pekerjaannya kecuali kita yang babak belur habis-habisan penuh luka, tapi yang penting bisa lega agar saya bisa berganti menuju kehidupan sesudahnya...

momen yang membuat saya resign dari kehidupan amfibi menjadi full dunia usaha ini sangat tidak menyenangkan untuk dijalani. namun saya tidak menyesalinya, saya bersyukur momen yang buruk inilah yang membuat kehidupan saya kemudian menjadi lebih baik setelahnya. pelaut yang handal bukan yang berlayar di air yang tenang, namun yang berlayar di lautan ganas penuh ombak yang terus menghantam. penderitaan demi penderitaan yang harus saya alami dan rasakan menjadikan pembelajaran bagi saya sehingga bisa lebih terlatih dalam terjun didalamnya.

setiap orang butuh momen untuk berpidah kearah yang lebih baik
entah itu momen perpindahan dari lulus kuliah menuju ke dunia kerja
ataupun mungkin juga momen dari dunia kerja untuk memulai menuju ke dunia usaha
dan mungkin juga momen dari kehidupan amfibi menuju ke dunia usaha sepenuhnya...

momen itu, entah penuh derita ataupun menyenangkan dalam masa perpindahannya bertujuan untuk menggerakkan roda kehidupan kita.

momen pertama kali masuk kerja sangat ditunggu-tunggu, banyak yg memulai dengan kebahagiaan dihari pertama kerja

momen pertama kali terjun ke dunia usaha, mulai variatif, ada yg jalannya mulus, senang, bahagia dan ada juga yang terpuruk gagal dalam memulai usahanya. namun kalau usahanya gagal masih ada backupnya, masih ada kepastian yakni masih dapat pemasukan dari gaji bulanannya

momen pertama kali terjun sepenuhnya dunia usaha, semakin tidak jelas kepastiannya, musti banyak-banyak berdoa hehehe. yang pasti adalah bagi yang menyukai hal2 yang sifatnya menantang, maka hal ini semakin memacu adrenalinnya, semakin bersemangat dalam memulainya, semakin menjadikan hidup menjadi lebih hidup... kayak orang bungee jumping, menakutkan namun seru dan tidak sabar utk segera melompat...



siapapun itu, butuh momen, entah apapun bentuknya momen itu..


on 15 Jun 2015 05:16 PM

14 Jun 2015

kali ini yang kedua adalah rumah.

sewaktu saya masih kerja kantoran, waktu itu gaji 5jt, saya berfikir gmana caranya beli rumah sedangkan harganya ratusan juta, katakanlah rumah pinggiran jakarta tipe sederhana aja 250jt-an. kalau nabung maka butuh waktu 5th kalau gajinya ditabung semua, tapi kalau dipake makan ngekos, transport dll maka bisa 10th baru bisa kebeli rumah. dan bisa jadi 10th kemudian ketika kekumpul 250jt, rumah yg seharga 250jt sudah menjadi 400jt.

atau katakanlah dengan gaji ccie maka bisa dapetlah 30jt sbulan di indonesia misalnya, maka gak mungkin juga kl dah ccie seleranya rumah sederhana yang 250jt-an, kemungkinan yang menengahlah diatas 800jt-an, bukan yang mewah eM eM an keatas, maka sama perlu waktu 3th-nan kalau uangnya smua ditabung, kalau dipakai keperluan sehari-hari ya perlu 6th-nan, dimana 6th kdepan bisa jadi dah tembus 1M-an keatas rumahnya, nabung lagi ya gak ketemu lagi...

maka solusi umum yang sering dipakai orang adalah menyerahkan diri dengan suka rela kepada jeratan syetan, yakni riba kredit kpr entah bank konvensional maupun riba bank syariah dalam waktu belasan tahun. banknya senang, ridhlo.... orang yang kpr riba juga senang dan ridhlo hanya saja Allah tidak ridhlo dengan perbuatan tersebut, istilahnya orang pacaran suka sama suka, namun dimurkai Allah.



cuman ya namanya juga manusia, saya jg banyak dosanya hehe....
kesimpulannya kalau saya cuman kerja kantoran, maka tinggal tunggu waktu aja kapan akan menjeratkan diri kepada syetan,

solusi yang pertama adalah dengan hidup mulia sebagai kontraktor, walau sering dicibir bahwasanya sayang uangnya yang buat ngontrak, bisa dipakai buat kredit kpr. dan ini alhamdulillah berhasil saya jalani selama beberapa tahun tanpa bergeming melawan godaan-godaan tawaran-tawaran perumahan2 yang sering buka stand dimana-mana khususnya di mal-mal

solusi yang kedua adalah dengan jalan lain, misalnya menjadi karyawan yang extra ordinary, yang punya prestasi super, karena prestasi biasa aja gak bisa, harus super. sehingga bisa sering dapet extra bonus yang bernilai wah. cuman sayangnya saya cuman karyawan biasa2 saja belum bisa yang seperti itu. maka jalur lain yang saya tempuh waktu itu adalah dengan memulai usaha.
kerja sembari usaha alias amfibi istilahnya...senin-jumat kerja, sabtu-minggu usaha

sampai akhirnya bener-bener resign dan sepenuhnya usaha

dan alhamdulillah kemudian jalan utk bisa membeli rumah menjadi terbuka, akhirnya melalui jalur usaha, bisa punya rumah tanpa perlu kredit kpr riba

kalau saja waktu itu saya mengambil gampangnya saja, langsung ngambil kredit kpr riba, maka bisa jadi saya baru bener2 bisa punya rumah riba yang lunas setelah belasan tahun kedepan.

dan saat menjalankan usaha, alhamdulillah juga ga tertarik sedikitpun untuk minjem uang ke bank. akan konyol lagi kalau kemudian untuk ngembangin usahanya pake acara minjem ke bank, bisa lolos dari mulut buaya masuk ke mulut harimau....

semua tinggal seberapa yakin kita dengan Allah, alhamdulillah berkat kemudahan Allah semata bisa selamat dijauhkan dari rumah riba diatas....

semoga kita semua diberi kemudahan oleh Allah untuk dapat membeli rumah dengan cara yang diridhloi Allah.
on 14 Jun 2015 10:36 PM
#!/bin/bash case "$1" in 'on'|'off') networksetup -setsocksfirewallproxystate Wi-Fi $1 networksetup -setsocksfirewallproxystate Ethernet $1 ;; *) echo "Usage: sudo $0 on|off" exit ;; esac networksetup -getsocksfirewallproxy Wi-Fi networksetup -getsocksfirewallproxy Ethernet
on 14 Jun 2015 06:12 AM

13 Jun 2015

dua alasan utama yang kemudian mengubah hidup saya.....

1. rumah
2. edukasi

saya mulai dari yang kedua dulu, edukasi yakni mendidik anak...



dari sejak saya kecil, ibuk saya punya banyak usaha yang dijalankan silih berganti... jualan kacang rebus, jualan jajanan, jualan nasi, jualan bakso, salon, jualan lele, jualan rambutan, jualan durian dll yang mungkin ada beberapa lain yang saya tidak mengingatnya lagi...

dari kesemua bisnis tersebut tidak ada yang sukses, namun apakah kemudian gagal...
salah pola pikir jikalau tidak sukses maka berarti gagal
padahal gagal adalah langkah2 yang mau tidak mau harus ditempuh baru kemudian bisa sukses

gak mungkin orang belajar gambar langsung bagus, mau gak mau harus merasakan yg namanya gagal nggambar bagus, alias pasti melewati fase nggambar jelek. baru setelah terlatih menggambar, jam terbang belajar banyak, baru deh bisa menggambar bagus..

gak mungkin orang belajar programming langsung bikin aplikasi yang bagus, mau gak mau, suka gak suka harus merasakan yang namanya error, compile gak jalan dll. baru setelah terlatih ngoding, jam terbang ngoding tinggi, baru deh bisa bikin aplikasi yang bagus.

maka gak mungkin mau bisnis tapi maunya yang langsung sukses,
tanpa mau melewati fase gagal, tidak suka mengalami kegagalan berbisnis, takut kl rugi dll
konyol, pemikiran aneh, kbanyakan ngunyah mie instan

nah dengan kegigihan ibuk saya, jatuh bangun dalam menjalankan usaha, saya sebagai anak yang melihat dan terlibat didalamnya, ikut mbantuin ibuk mbungkusin kacang presto atau jajanan dalam plastik kecil2 kemudian dirapatkan/ditutup dgn lilin, kemudian ikut mbantu dateng ke warung2 buat nitip dijual dll secara tidak langsung belajar, action langsung, otodidak, merasakan langsung seperti apa sih jualan itu.....

dan hasilnya saya ketika memulai usaha ya tinggal mulai aja, langsung usaha aja... gak pake itung2 an bisnis plan lah, gak pake itung2 an untung rugi, gak mikir panjang, plenang plening mulu dll

demikian juga ke anak saya, saya gak perlu mikir kmana-mana ketika mulai usaha, mulai saja biar anak saya ngeliat bapaknya usaha, walaupun misalnya nantinya gagal, anak akan ngelihat dan belajar.
misal ibuk saya gagal, saya gagal, ya insya Allah anak saya akan sukses dengan usahanya.....

bulan lalu saya jualan celana sepatu dll yang untungnya paling duaribu tigaribu gak nyampe 10rb, orang2 pada ngatain, jualan kayak gak niat gitu, kalau untung sgitu ngapain jualan, cuman bikin capek aja, saya jualan jg cuman dirumah, hari pertama jualan sepatu dateng duhur, isya udah ludes, berikutnya jualan celana 200 pcs, dateng asar, subuh udah ludes, berikutnya ngambil celana lagi 150 pcs datang asar, sehabis isya udah ludes......

untungnya dbanding penghasilan saya dari yg lain jelas bagai bumi dan langit lah... cuman bukan itu tujuannya, saya ketika melihat anak saya menata barang dagangan, merapikan uang, melayani yang beli dan sampai suatu saat anak saya berkata "pah, besok jualan apa lagi pah" pah besok kita jualan ini ya pah, pah ayuk pah jualan dst nya ini kebahagiaan tersendiri bagi seorang bapak spt saya...

rosulullah juga waktu kecil sudah diajarkan berdagang bersama pamannya sampai ke negeri syam...

saya tidak tau akan menjadi apakah nantinya anak saya, kalau cita2 nya sih pengin jadi guru seperti bapaknya dan ibunya dan embahnya hehehe tapi kemudian karena temen2 sekolahnya cita2nya pada pengin jadi dokter, kemudian dia bilang ke saya pah aku cita2 nya mau jadi guru sama dokter ya pah karena temen2 pada mau jadi dokter hehe... ya semoga nanti kalau jadi guru bisa seperti embahnya alias ibuk saya, yang dari sekian banyak usaha yg gagal dijalankan akhirnya yang berhasil adalah di bisnis properti, punya banyak ruko2 yang disewakan, yang gak perlu diapa2 in aja penghasilannya udah jauh melebihi gajinya sebagai seorang guru, dan juga seperti bapaknya yang juga seorang guru hehe...


on 13 Jun 2015 11:31 PM

12 Jun 2015

@gangsarkopi akan menyelenggarakan #kelassharing 2 hari berturut-turut. Diawali dengan hari ini, 12 Juni 2015 pukul 18.30. Topik hari ini adalah Remote Sysadmin yang akan memberikan gambaran tentang peluang, kesiapan keahlian dan tantangan menjadi freelance sysadmin.

Sedangkan topik untuk besok, 13 Juni 2015 pukul 15.00 tentang SDN (Software-defined Networking) yang akan memberikan gambaran dasar SDN, protokol dan alat bantu. Acara ini tidak dipungut biaya, silakan mendaftar disini.


on 12 Jun 2015 03:02 AM

06 Jun 2015

Saya akan membahas posting Om JP tentang integrasi Nginx, Uwsgi dan PHP dengan cara puppet. Sebelumnya mohon dengan sangat membaca dulu blog di Om JP.

Kemudian silakan install puppet yang sudah saya jabarkan di blog ini, kemudian install module nginx dengan cara

root@server: ~# puppet module install jfryman-nginx

Dengan asumsi hanya menggunakan satu server (tidak menggunakan node definition ataupun class dan module) maka silakan sunting berkas /etc/puppet/manifests/site.pp. Dan isikan seperti berikut:

package { [
    'uwsgi',
    'uwsgi-plugin-php',
    ]:
    ensure => installed,
    }

service { 'uwsgi':
    ensure => running,
    enable => true,
}
file { '/etc/uwsgi/apps-enabled/':
    ensure => present,
    owner => 'root',
    source => 'puppet:///uwsgi/',
    recurse => true,
    require => Package['uwsgi-plugin-php'],
    notify => Service['uwsgi'],
    }
nginx::resource::vhost { "$::fqdn":
  ensure => 'present',
  www_root => '/srv/www',
  autoindex => 'on',
  try_files => [ '$uri', '$uri/', '/index.php?args' ],
 }

nginx::resource::location { 'location1_fqdn':
 ensure => present,
 vhost => "$::fqdn",
 location => '~.php$',
 www_root => '/srv/www/',
 location_cfg_append => {
    include => 'uwsgi_params',
    uwsgi_modifier1 => '14',
    uwsgi_pass => 'unix:/tmp/uwsgi_webphp.sock',
 },
}

include nginx

Selanjutnya silakan buat foler di /etc/puppet/files/ dan buat berkas init.ini di dalamnya yang berisikan seperti dibawah:

[uwsgi]
socket=/tmp/uwsgi_webphp.sock
pidfile2=/tmp/uwsgi_webphp.pid
daemonize=/var/log/uwsgi/webphp.log
plugins=php

chdir=/var/www
cheaper=4
close-on-exec=1
harakiri=360
max-requests=128
processes=8
master=1
uid=www-data
gid=www-data
chmod=666
log-5xx=1
vacuum=1
post-buffering=8192M

Simpan dan jalankan puppet agent

sudo puppet agent --test

dan silakan akses http://localhost/index.php maka hasilnya kurang lebih sama dengan punya Om JP.

on 06 Jun 2015 03:01 PM

04 Jun 2015

User group dengan puppet

Mahyuddin Susanto

Sepertin yang telah saya singgung pada tulisan sebelumnya tentang menghapus user di 100 node server, dengan puppet menghapus user di 100 node menjadi sangat mudah. Anda tidak perlu login ke semua node server, yang anda kerjakan hanya menuliskan beberapa baris code di puppet.

Pada tulisan kali ini saya akan membahas tentang manajemen user dengan puppet.

Membuang user yang ada.

Untuk menambahkan user atau sekedar memastikan properti dari user, puppet sangat mendukung. Contohnya dalam code berikut user ani akan dibuang di semua server:

user { 'ani':
    ensure => absent,
    home => '/home/ani',
    managehome => true,
 }

Penjelasan:
User ani dipastikan absen karena terdapat ‘ensure=>absent’, managehome dibutuhkan untuk memastikan bahwa $HOME direktori ani juga dibuang.

Membuat User

Untuk menambahkan user cukup ubah absent menjadi present, contohnya untuk user budi

 user { 'budi':
    ensure => present,
    home => '/home/budi',
    managehome => true,
        shell => '/bin/bash',
 }

Dari code diatas, ada tambahan shell, yaitu mendefinisikan shell yang akan digunakan oleh pengguna. Jika anda tidak mengatur shell, maka akan dibuatakan shell /bin/sh

Password

Untuk melakukan penentuan password pada user, dapat menggunakan kolom password, seperti pada kode dibawah.

user { 'cika' :
 ensure => present,
 shell => '/bin/bash',
 managehome => yes,
 comment => 'Cika Juga',
 password => '$1$RQVI1gQL$V8DCkOeyBo.49dCE4DyCE0'
}

Untuk password user cika, saya menggunakan password ‘cikajuga‘, password tersebut dalam format hash. Untuk meghasilkan password dalam format hash dapat gi buat dengan perintah sebegai berikut:

root@master:~# openssl passwd -1
Password:
Verifying - Password:
$1$RQVI1gQL$V8DCkOeyBo.49dCE4DyCE0

SSH keys

Dalam puppet kita juga dapat mengatur kunci ssh yang digunakan, contoh penggunaan ssh key dapat dilihat dalam kode dibawah:

   ssh_authorized_key { 'dita_jumbox_ecdsa':
        user => 'dita',
        type => 'ecdsa-sha2-nistp256',
        key  => 'AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBIsT232WPROxL+Sid0lIr96uOk0rl/Rp6YVrQZNkwBLIa9OJXAk55QDoyFePvRc0xxevKCbcZbmVG2kpm6zsSgM='
    }

hasilnya, dalam home direktori dita akan terdapat berkas ssh authorized_keys (~dita/.ssh/authorized_keys). Nah bagaimana caranya agar hanya kunci ssh yang terdaftar di puppet saja yang boleh tercantum di ~dita/.ssh/authorized_keys ? untuk itu, kita harus menambahkan isian ‘purge_ssh_keys => true,

on 04 Jun 2015 05:06 PM

30 May 2015

Install puppet di Debian

Mahyuddin Susanto

Intro

Puppet adalah software untuk mengatur infrastuktur yang membantu administrator untuk membuat otomatisasi pada semua node server, membuat template, menghindari perintah berulang-ulang. Pada kehidupan nyata, system administrator harus memastikan bahwasanya semua servernya memilik aplikasi terbaru dari repository. Jika system administrator (sysadmin) hanya memanage kurang dari lima server, maka akan mudah bagi sysadmin untuk login ke setiap node dan menjalankan perintah yang dapat memastikan servernya up to date. Bayangkan apabila sysadmin memegang 100 server! tentunya akan menyita waktu bagi sysadmin untuk melakukan login ke semua node.

Contoh lain, puppet dapat melakukan manajemen user, sebuah perusahaan mempunyai dua orang sysadmin yaitu Amin dan Budi. Amin salah satu dari sysadmin tersebut akan mengundurkan diri (resign), umumnya setiap sysadmin memiliki user sendiri-sendiri pada setiap node server. Apabila perusahaan tersebut mempunyai seratus node, Budi harus memastikan bahwasanya login untuk Amin sudah dihapus setelah Amin dinyatakan resmi tidak bekerja pada perusahaan. Nah bagaimana teknisnya? apakah Budi akan melakukan login ke semua server dan membuang user admin? bisa sih, tapi mau kah Budi login ke seratus server? Cara yang gampang bisa menggunakan software manajemen tool semacam puppet.

Persiapan

Pada tulisan kali ini, saya menggunakan Debian Jessie di Virtualbox, saya asumsikan bahwasanya Debian telah terpasang di Virtualbox. Domain yang akan saya pakai adalah puppet.id
Note: Untuk mengakali proses dns resolving, kita dapat mengakali nya di berkas /etc/hosts. Berikut adalah isi dari /etc/hosts pada master:

127.0.0.1       localhost
127.0.1.1       puppet master puppet.puppet.id master.puppet.id

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Membuat puppet master

Tahap pertama adalah membuat puppet master, beberapa alternatif untuk membuat puppet master, bisa menggunakan passangger atau dari binary puppet master. Saya akan menggunakan puppet master untuk kali ini. Untuk hostname pada puppet master saya menggunakan nama master.puppet.id

Silakan login ke server master untuk memulai pemasangan. Pada tahap ini kita akan melakukan refresh database paket dan pemasangan ntp.

root@master:~# apt-get update && apt-get dist-upgrade -y && apt-get install ntp -y

Langkah selanjutnya adalah mengunduh binary untuk repository puppet dan pemasangan puppetmaster.

root@master:~# cd /tmp/
root@master:/tmp# wget http://apt.puppetlabs.com/puppetlabs-release-jessie.deb
root@master:/tmp# dpkg -i puppetlabs-release-jessie.deb
(Reading database ... 30917 files and directories currently installed.)
Preparing to unpack puppetlabs-release-jessie.deb ...
Unpacking puppetlabs-release (1.0-11) over (1.0-11) ...
Setting up puppetlabs-release (1.0-11) ...
root@master:/tmp# apt-get update && apt-get install puppetmaster -y

Matikan service puppet master terlebih dahulu:

root@master:~# service puppetmaster stop
 * Stopping puppet master                                                [ OK ]

Langkah selanjutnya adalah mengatur pengaturan dari puppet yang terletak di /etc/puppet/puppet.conf, silakan buka berkas tersebut dan edit seperti pada tampilan dibawah:

[main]
logdir=/var/log/puppet
vardir=/var/lib/puppet
ssldir=/var/lib/puppet/ssl
rundir=/var/run/puppet
factpath=$vardir/lib/facter
#prerun_command=/etc/puppet/etckeeper-commit-pre
#postrun_command=/etc/puppet/etckeeper-commit-post
certname = puppet.puppet.id
dns_alt_names = master.puppet.id,puppet
[master]
# These are needed when the puppetmaster is run by passenger
# and can safely be removed if webrick is used.
ssl_client_header = SSL_CLIENT_S_DN
ssl_client_verify_header = SSL_CLIENT_VERIFY

Membuat sertifikat

Setelah kita mengatur puppet, langkah selanjutnya adalah membuat sertifikat SSL untuk puppet, puppet dalam proses nya akan menggunakan sertifikat dalam berkomunikasi dua arah dari master ke client. Untuk membuat sertifikat SSL dapat menggunakan perintah berikut,:

root@master:/tmp# rm /var/lib/puppet/ssl/* -rf
root@master:/tmp# puppet master --verbose --no-daemonize

Dari perintah tersebut puppet akan membuat SSL, dan tekan tomcol CTRL + C untuk menghentikan proses.

Info: Creating a new SSL key for ca
Info: Creating a new SSL certificate request for ca
Info: Certificate Request fingerprint (SHA256): E2:B6:CB:85:41:BE:57:66:9F:4C:0B:E7:72:BD:B3:7E:7B:DB:9D:BD:84:B1:19:7F:CD:85:C1:58:18:67:BB:AE
Notice: Signed certificate request for ca
Info: Creating a new certificate revocation list
Info: Creating a new SSL key for puppet.puppet.id
Info: csr_attributes file loading from /etc/puppet/csr_attributes.yaml
Info: Creating a new SSL certificate request for puppet.puppet.id
Info: Certificate Request fingerprint (SHA256): EC:8C:D3:62:48:CD:FD:20:4F:48:D0:E0:3C:38:66:4B:BA:0C:D6:23:28:10:33:68:E1:9B:5B:55:E0:0D:66:2B
Notice: puppet.puppet.id has a waiting certificate request
Notice: Signed certificate request for puppet.puppet.id
Notice: Removing file Puppet::SSL::CertificateRequest puppet.puppet.id at '/var/lib/puppet/ssl/ca/requests/puppet.puppet.id.pem'
Notice: Removing file Puppet::SSL::CertificateRequest puppet.puppet.id at '/var/lib/puppet/ssl/certificate_requests/puppet.puppet.id.pem'
Notice: Starting Puppet master version 3.7.2
^CNotice: Caught INT; calling stop

Jika tampilan shell menunjukkan tampilan seperti diatas berarti sertifikat SSL sudah dibuat, silakan pastikan dengan menggunakan perintah dibawah.

root@master:/tmp# puppet cert list -all
+ "puppet.puppet.id" (SHA256) 36:68:90:27:2D:9B:17:5B:E1:57:E7:C4:9A:85:9C:1B:0D:40:DE:06:88:FC:68:96:60:F5:C9:00:2E:42:82:55 (alt names: "DNS:master.puppet.id", "DNS:puppet", "DNS:puppet.puppet.id")

Kemudian start daemon puppet dengan mengetikkan

root@master:~# service puppetmaster start
 * Starting puppet master                                                [ OK ]
root@master:~#

Memasang puppet agent

Kita akan memasang puppet agent di node master dan di client. Untuk node master, kita dapat langsung ke tahap pemasangan puppet-agent.

root@client1:/tmp# wget http://apt.puppetlabs.com/puppetlabs-release-jessie.deb
root@client1:/tmp# dpkg -i puppetlabs-release-jessie.deb
root@client1:/tmp# apt-get update && apt-get install puppet -y

Langkah selanjutnya adalah mengatur puppet agent agar terkoneksi ke puppet master. Silakan ubah berkas pada /etc/puppet/puppet.conf seperti pada tampilan dibawah.

[main]
logdir=/var/log/puppet
vardir=/var/lib/puppet
ssldir=/var/lib/puppet/ssl
rundir=/var/run/puppet
factpath=$vardir/lib/facter
certname=client1.puppet.id

[master]
# These are needed when the puppetmaster is run by passenger
# and can safely be removed if webrick is used.
ssl_client_header = SSL_CLIENT_S_DN
ssl_client_verify_header = SSL_CLIENT_VERIFY

[agent]
server = master.puppet.id

Note:
Apabila anda memiliki masalah dalam koneksi ke master, misalnya masalah dns maka untuk mengakalinya alah menambahkan IP master ke /etc/hosts. Dengan ip master adalah 192.168.2.1 maka isian dari /etc/hosts adalah sebagi berikut:

127.0.0.1       localhost client1
192.168.2.1  puppet master puppet.puppet.id master.puppet.id

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Langkah selanjutnya adalah membuat sertitikat pada client1 dan mendaftarkan sertifikat tersebut ke master. Untuk itu silakan ketik perintah seperti dibawah:

root@client1:~# puppet agent --test
Info: Creating a new SSL key for client1.puppet.id
Info: Caching certificate for ca
Info: csr_attributes file loading from /etc/puppet/csr_attributes.yaml
Info: Creating a new SSL certificate request for client1.puppet.id
Info: Certificate Request fingerprint (SHA256): 96:C2:9E:DF:AF:C5:CB:E6:73:D3:DC:CC:32:21:66:14:6C:42:EC:D5:EB:52:DD:E5:BC:1B:F7:FD:53:6F:F9:A0
Info: Caching certificate for ca
Exiting; no certificate found and waitforcert is disabled

Selanjutnya, pada sisi node master kita harus melakukan tanda tangan ke sertifikat client1, sebelumnya cek apakah ssl adalah benar yang dimaksud dengan perintah sebagai berikut:

root@master:~# puppet cert list
  "client1.puppet.id" (SHA256) 96:C2:9E:DF:AF:C5:CB:E6:73:D3:DC:CC:32:21:66:14:6C:42:EC:D5:EB:52:DD:E5:BC:1B:F7:FD:53:6F:F9:A0

Terlihat bahwa fingerprint dari ssl client1 adalah sama, maka langkah selanjutnya adalah melakukan tanda tangan dengan perintah sebagai berikut:

root@master:~# puppet cert sign client1.puppet.id
Notice: Signed certificate request for client1.puppet.id
Notice: Removing file Puppet::SSL::CertificateRequest client1.puppet.id at '/var/lib/puppet/ssl/ca/requests/client1.puppet.id.pem'

Cek kembali pada master, bahwa sertifikat tersebut sudah tertandatangani dengan tanda + di depah client1.puppet.id

+ "client1.puppet.id" (SHA256) 1D:22:8F:AF:74:4A:4A:45:AC:64:58:D3:65:15:00:32:E1:71:28:9C:41:C1:2C:33:06:34:F7:93:8F:14:BC:D3
+ "puppet.puppet.id"  (SHA256) 36:68:90:27:2D:9B:17:5B:E1:57:E7:C4:9A:85:9C:1B:0D:40:DE:06:88:FC:68:96:60:F5:C9:00:2E:42:82:55 (alt names: "DNS:master.puppet.id", "DNS:puppet", "DNS:puppet.puppet.id")

Kembali ke client1, silakan eksekusi puppet kembali untuk menerima sertifikat yang sudah di tanda tangani dengan perintah sebagai berikut:

root@client1:~# puppet agent --test
Info: Caching certificate for client1.puppet.id
Info: Caching certificate_revocation_list for ca
Info: Caching certificate for client1.puppet.id
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Caching catalog for client1.puppet.id
Info: Applying configuration version '1432997774'
Info: Creating state file /var/lib/puppet/state/state.yaml
Notice: Finished catalog run in 0.02 seconds

Kemudian start daemon puppet agent

root@master:~# service puppet restart
 * Restarting puppet agent                                               [ OK ]
root@master:~#

Note: Apabila terdapat warning pada console tentang ‘puppet not configured to start’, silakan sunting berkas /etc/default/puppet dan ubah START=no menjadi START=yes
Selamat client dan master sudah terkoneksi! Untuk pemasangan puppet agent pada master dapat mengikuti proses diatas.

Testing puppet

Langkah selanjutnya adalah membuat berkas pada semua node untuk memastikan bahwasanya puppet terpasang dengan baik. Kita akan membuat berkas di /home/HELLO dengan konten yang akan kita tentukan, untuk itu silakan buka berkas /etc/puppet/manifests/site.pp kemudian silakan tambahkan isian sebagai berikut:

file { '/home/HELLO':
        ensure => present,
        content => 'Hello this is test file',
}

Kemudian test dari client dan server dengan perintah sebagai berikut:

Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Caching catalog for client1.puppet.id
Info: Applying configuration version '1432998118'
Notice: /Stage[main]/Main/File[/home/HELLO]/ensure: created
Notice: Finished catalog run in 0.05 seconds

Dan pastikan bahwasanya isian dari berkas /home/HELLO adalah ‘Hello this is test file’

root@client1:~# cat /home/HELLO
Hello this is test file

Penutup

Mudah bukan? pada tulisan selanjutnya akan kita bahas puppet lebih lanjut

on 30 May 2015 03:08 PM

12 May 2015

Tips Git Untuk Pemula

Rolly Maulana Awangga

Ada beberapa tips disini:

1. SERING COMMIT, ada perubahan dan selesai dikerjakan maka COMMIT. ada typo? benerin lalu commit, jangan digabung sama yang lain
2. 1 COMMIT 1 issue, bukan sekian issue 1 commit, commit
3. Sebelum PUSH wajib PULL,git push ? git pull dulu, pastikan ngga ada conflict
4. Kalo ada conflict harus dibenerin dulu, jangan push kalo ngga paham
5. Sering2 git status dan git diff, lihat mana yang belum di commit dan adakah yang belum di push
6. Sering2 PUSH (ingat yang ke 3), jangan biarkan akhir hari masih ada yang belum di PUSH
7. Jangan git add . tapi git add
8. Jangan git commit -a tetapi git add dulu baru git commit
9. mau udahan coding? git status, git diff dulu, commit yang belum, commit nya pilah2 (7 dan 8), lalu git pull dan git push (3)
10. besok nya ngapain ? git pull dulu yang pertama mah,git status, git diff.

Ganti repo origin dengan yang baru, yang lama di rename
git remote rename origin ngoprek
git remote add origin git@github.com:username_ente/voip-id.git
Setelah itu set default dengan opsi -u untuk diawal saja setelah add repo baru/ganti repo
git push -u origin master
git pull -u origin master

Jika Ingin Tambah repo baru untuk di merge
git remote add mainrepo git@github.com:antonraharja/voip-id.git
git pull mainrepo master
git push
sebelum lanjut coding di local repo

Cek config all
git config -l

Set Up Git Profile

git config –global user.name “Firstname Lastname”
git config –global user.email “your_email@youremail.com”

Integrating git with Sublime Text

https://scotch.io/tutorials/using-git-inside-of-sublime-text-to-improve-workflow


on 12 May 2015 01:31 PM

04 May 2015

OpenVPN Server and Create Client

Rolly Maulana Awangga

apt-get install openvpn openssl
cd /etc/openvpn
cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0 ./easy-rsa
nano easy-rsa/vars

# easy-rsa parameter settings

# NOTE: If you installed from an RPM,
# don’t edit this file in place in
# /usr/share/openvpn/easy-rsa —
# instead, you should copy the whole
# easy-rsa directory to another location
# (such as /etc/openvpn) so that your
# edits will not be wiped out by a future
# OpenVPN package upgrade.

# This variable should point to
# the top level of the easy-rsa
# tree.
export EASY_RSA=”/etc/openvpn/easy-rsa”

#
# This variable should point to
# the requested executables
#
export OPENSSL=”openssl”
export PKCS11TOOL=”pkcs11-tool”
export GREP=”grep”
# This variable should point to
# the openssl.cnf file included
# with easy-rsa.
export KEY_CONFIG=`$EASY_RSA/whichopensslcnf $EASY_RSA`

# Edit this variable to point to
# your soon-to-be-created key
# directory.
#
# WARNING: clean-all will do
# a rm -rf on this directory
# so make sure you define
# it correctly!
export KEY_DIR=”$EASY_RSA/keys”

# Issue rm -rf warning
echo NOTE: If you run ./clean-all, I will be doing a rm -rf on $KEY_DIR

# PKCS11 fixes
export PKCS11_MODULE_PATH=”dummy”
export PKCS11_PIN=”dummy”

# Increase this to 2048 if you
# are paranoid. This will slow
# down TLS negotiation performance
# as well as the one-time DH parms
# generation process.
export KEY_SIZE=1024

# In how many days should the root CA key expire?
export CA_EXPIRE=3650

# In how many days should certificates expire?
export KEY_EXPIRE=3650

# These are the default values for fields
# which will be placed in the certificate.
# Don’t leave any of these fields blank.
export KEY_COUNTRY=”ID”
export KEY_PROVINCE=”JB”
export KEY_CITY=”Bandung”
export KEY_ORG=”Astrajingga”
export KEY_EMAIL=”awangga@passionit.co.id”
export KEY_EMAIL=awangga@passionit.co.id
export KEY_CN=kududiganti
export KEY_NAME=kududiganti
export KEY_OU=kududiganti
export PKCS11_MODULE_PATH=kududiganti
export PKCS11_PIN=1234

. ./easy-rsa/vars
./easy-rsa/clean-all
cd easy-rsa
ln -s openssl-1.0.0.cnf openssl.cnf

cd ..
./easy-rsa/build-ca OpenVPN
./easy-rsa/build-key-server server
./easy-rsa/build-key client1
./easy-rsa/build-dh

now create config and copy the files from ./easy-rsa/keys/ or ./easy-rsa/2.0/keys/ to /etc/openvpn

for server :

ca.crt | server.crt | server.key | dh1024.pem

# [server.conf]
port 1194
proto tcp
dev tun
ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key
dh /etc/openvpn/dh1024.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
client-to-client
keepalive 10 120
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
verb 3

for client : ca.crt | client1.crt | client1.key

# [client.conf]
client
dev tun
proto tcp
remote ipaddressofserver 1194
resolv-retry infinite
nobind
user nobody
group nogroup
persist-key
persist-tun
mute-replay-warnings
ca ca.crt
cert client1.crt
key client1.key
ns-cert-type server
comp-lzo
verb 3

To create other client just :

. ./easy-rsa/vars

./easy-rsa/build-key client2


on 04 May 2015 10:11 AM

30 Apr 2015

Beberapa pergeseran diterapkan dalam pembangunan pendidikan 2010-2014 adalah: Perubahan wajib belajar menjadi hak belajar Kesetaraan dalam pendidikan Pendidikan komprehensif Perubahan fungsi sekolah negeri menjadi sekolah publik Perubahan dasar perencanaan pendidikan yang berdasarkan suplai menjadi berdasarkan kebutuhan ad.1. Paradigma wajib belajar pendidikan dasar sembilan tahun digeser menjadi hak belajar pendidikan dasar sembilan tahun yang menjamin kepastian […]
on 30 Apr 2015 03:46 PM

Tak harus jago SEO untuk bisa mendongkrak pencarian Google kepada situs kita ada beberapa cara yang simple seperti saya referensikan dibawah ini :

1. Editing Template

2. Setting Meta


on 30 Apr 2015 07:37 AM

27 Apr 2015

Pindah

Mahyuddin Susanto

March is my last month working for RADNET!

Sudah 3 tahun saya bekerja untuk RADNEt, dan maret merupakan bulan terakhir saya. Awalnya saya berkerja di radnet karena ada info dari **** (saya lupa) kalau pak Noor butuh orang Network dan atau Sysadmin. Iseng saya langsung kontak saja via email, alhamdulillah saya langsung dipanggil dan diterima.

 

Bekerja di Surabaya adalah salah satu impian buat saya (why not Djakarta?), apalagi berkerja di ISP. Ternyata di sini saya berkerja mengisi kekosongan karena staff yang sudah senior pindah ke cabang bandung.

And the story begun.. setelah berkerja di radnet sebulan, saya langsung nikah. Well, saya termasuk orang yang telat nikah loh. Dan Setahun kurang sehari dari pernikahan anak saya lahir.

Memang berat meninggalkan RADNET karena di radnet suasana kekeluargaan yang kental dan banyak pelajaran yang saya ambil. Namun bagaimanapun juga saya harus pindah untuk melanjutkan mimpi saya selanjutnya.

Kemana?

Akhirnya saya di terima di Wowrack, masih di surabaya juga kok. Wowrack merupakan perusahaan yang melayani cloud, vps, hosting dan lain lain, agak berbeda dengan radnet.

Doakan saya sukses yah.

on 27 Apr 2015 09:08 PM

26 Apr 2015

Screen Shot 2015-04-26 at 7.51.49 AM

I use gmail for sending every email from my laravel apps, but seriosly there is an error if i go to forgot password or reminder password function.

The solution is just comment out the check conditional in library of swiftmailer

if (!$reversePath = $this->_getReversePath($message)) {
$this->_throwException(new Swift_TransportException(
‘Cannot send message without a sender address’
)
);
}

and add:

$reversePath = $this->_getReversePath($message);

Screen Shot 2015-04-26 at 7.44.35 AM


on 26 Apr 2015 01:04 AM

24 Apr 2015

Enchanted

Arif Syamsudin

Jadi...SLiMS punya fitur yang namanya spell checker. Pemeriksa ejaan. Hmmm...word suggestion macam yang ada di mesin pencari. Jadi kalo salah memasukkan kata-kata, akan ada saran penggunaan kata-kata. Nah, pada SLiMS, untuk bisa mengaktifkan fitur ini, yang harus diperhatikan adalah:

a) Harus menggunakan sistem operasi GNU/Linux

Karena apa? Karena baru di sistem operasi ini saya ngopreknya :D. Eh, ini juga masukan dari lead programmer SLiMS sich, karena konfigurasinya lebih mudah di sistem operasi yang satu ini, katanya.

Bagaimana caranya? silahkan pasang paket php5-enchant. Setelah paket tersebut dipasang, aktifkan ekstensi php5-enchant ke dalam berkas php.ini. tambahkan baris ini pada bagian extension:

extension=php_enchant.so

Setelah ditambahkan, jangan lupa untuk me-mula-ulang layanan apache:

$ sudo service apache2 restart

b) Aktifkan spell checker di dalam berkas sysconfig

Setelah enchant terpasang, aktifkan fungsi spell checker di dalam sysconfig.inc.php. Silahkan lihat pada baris 156 yang isinya:

$sysconf['spellchecker_enabled'] = false;

ubah "false" menjadi "true". Lalu simpan hasil perubahan.

c) Aktifkan kemudian via konfigurasi sistem

Setelah diaktifkan via sysconfig, aktifkan melalui menu System > System Configuration di dalam menu administrasi SLiMS.

Nah...setelah semua langkah di atas dilakukan...maka hasil pemeriksaan ejaan bisa dinikmati pada SLiMS :).

Gambar 1. Hasil pemeriksaan ejaan.

Gambar 2. Hasil ketika klik hasil saran
on 24 Apr 2015 02:02 PM

19 Apr 2015

Sudah lama saya tidak menggunakan Ubuntu di lapi, bukan berarti menggunakan OS lain melainkan menggunakan rasa Xubuntu :)

Berhubung lapi lama sudah diacak2 anak2 (lagi), sdh waktunya untuk ganti lapi baru :D  — jadi, sebenarnya ini artikel pamer lapi baru! :P

Ubuntu

Saat lapi baru diterima, versi Ubuntu adalah masih beta2. Saya sempat ragu untuk menggunakan versi ini karena versi beta biasanya berisi banyak kutu kaki. Benar saja, begitu proses instal selesai dan masuk ke Ubuntu yg muncul adalah kotak dialog “Problem Report”. Terus, saat buka OpenOffice, sistem langsung logout. :( Namun begitu di-update, problem2 tsb menghilang sama sekali. Hore!

Apa yg harus diinstal? Klo saya sih wajib install: apache2, php5, mysql-server, mysql-common, phpmyadmin dan openvpn-network-manager. Ha ha ha, namanya juga untuk web app development! Namun ga garing2 amat, warzone2100 juga saya install menemani AD0 dan Steam.

Masalah brightness dan fungsionalitas tombol2 sepesial spt volume up-down, brightness up-down, dll yg saya temui saat install Ubuntu di lapi2 sebelumnya tidak saya temukan kali ini.

Jadi, secara umum Ubuntu Vivid Vervet berjalan mulus di Lenovo Z40-75 PID.

Screenshot from 2015-04-19 22:46:45

Apa yg baru dari Vivid Vervet? Hm… Apa ya? Saya tidak menemukan sesuatu yg sangat spesial dalam versi baru ini walau ada artikel: The five biggest changes in Ubuntu 15.04, Vivid Vervet

Oh ya, kemarin malam (18/4) saat update, tulisan “development branch” versi sudah menghilang.

Lenovo Z40-75 PID

Review tentang lapi ini bisa dilihat di sono! Untuk membandingkan dg hasil review tsb amat sulit bagi saya karena saya pake Ubuntu, yg di sono pake Windows. :)

Saat pake lscp, kecepatan CPU yg terbaca cuma min 1.1GHz dan max 1.9GHz :(

Penasaran, saya instal stress dan cpupower.

Buka dua Terminal

term1$ watch sudo cpupower monitor
term2$ stress -c 1 --timeout 10s

Screenshot from 2015-04-20 00:23:04

term2$ stress -c 4 --timeout 10s

Screenshot from 2015-04-20 00:24:07

Hm… bisa juga dia jalan di atas 3GHz :)

Bagi saya, yg tidak nyaman di Lenovo Z40-75 adalah tombol “klik” dari touchpad yg lumayan keras dan posisi tombol “End” yg berjauhan dari tombol panah. Karena kebiasaan dg lapi lama maka saya sering tekan tombol “PgDn”. :(


Filed under: Linux, Ubuntu, Umum Tagged: Laptop, Linux, Review, Ubuntu
on 19 Apr 2015 04:07 PM

12 Apr 2015

OCSP Stapling di nginx

Mahyuddin Susanto

Dalam artikel ini saya akan mengaktifkan OCSP Stapling di nginx, syaratnya nginx harus mempunyai versi minimal 1.3.7.

Saya menggunakan startSSL dalam praktek kali ini. Baiklah kita mulai dengan mengunduh CA bundle dari startSSL.

mkdir /etc/nginx/ssl
cd /etc/nginx/ssl
wget -O - https://www.startssl.com/certs/ca.pem https://www.startssl.com/certs/sub.class1.server.ca.pem | tee -a ca-startssl.pem> /dev/null

Langkah selanjutnya adalah menambahkan parameter di vhost nginx, karena saya menggunakan vhost domain mahyudd.in maka biasanya filenya akan terletak di /etc/nginx/site-avaliable/mahyudd.in.conf. Silakan sesuaikan dengan config anda.

  ssl_stapling              on;
  ssl_stapling_verify       on;
  ssl_trusted_certificate   /etc/nginx/ssl/ca-startssl.pem;

Simpan dan test dari terminal

$ echo QUIT | openssl s_client -connect mahyudd.in:443 -servername mahyudd.in -status 2> /dev/null | grep -A 17 'OCSP response'| grep -B 17 'Next Update'
OCSP response:
======================================
OCSP Response Data:
    OCSP Response Status: successful (0x0)
    Response Type: Basic OCSP Response
    Version: 1 (0x0)
    Responder Id: C = IL, O = StartCom Ltd. (Start Commercial Limited), CN = StartCom Class 1 Server OCSP Signer
    Produced At: Apr 11 13:33:15 2015 GMT
    Responses:
    Certificate ID:
      Hash Algorithm: sha1
      Issuer Name Hash: 6568874F40750F016A3475625E1F5C93E5A26D58
      Issuer Key Hash: EB4234D098B0AB9FF41B6B08F7CC642EEF0E2C45
      Serial Number: 056CADC897AF49
    Cert Status: good
    This Update: Apr 11 13:33:15 2015 GMT
    Next Update: Apr 13 13:33:15 2015 GMT

Test secara online dapat dilakukan di Qualys. Hasilnya adalah sebagai berikut:

ocsp

 

Selamat mencoba

on 12 Apr 2015 09:47 AM

11 Apr 2015

Mewujudkan Impian

Dedi Gunawan


Sejarah selalu mencatat orang pertama

Misalnya yang menginjakkan kaki pertama kali dibulan, maka orang akan mengingat neil armstrong namun tidak mengingat siapa yang kedua padahal waktu itu neil armstrong tidak sendirian

Pun demikian dengan penaklukan gunung everest yang pertama kali dicatat sejarah dan diingat adalah dilakukan oleh Edmund Hillary pada tahun 1953.

Saat sesi wawancara semua wartawan ramai mewancarai edmund hillary hingga kemudian ada salah satu wartawan yang jeli dan bertanya kepada Tenzing Norgay yang merupakan pemandu Edmund Hillary dalam menaklukkan everest.

Anda kan yang memandu edmund hillary, tentu anda yang berada di depan hillary?
Ya benar, saya memang berada di depan edmund hillary untuk memandunya jawab tenzing norgay

Nah tentu mustinya anda yang lebih dulu menginjakkan kaki di puncak everest?
Sepanjang perjalanan memang saya selalu berada di depan edmund hillary, namun sesaat sebelum mencapai puncak, saya mempersilahkan edmund untuk melangkahkan kaki didepan saya sehingga dia bisa berhasil menjadi orang pertama yang menaklukkan puncak everest tersebut.

Kenapa anda lakukan itu, bukankah anda lebih punya peluang untuk mencatatkan diri dalam sejarah sebagai orang pertama yang menaklukkan everest?
Sesungguhnya mencapai puncak everest adalah impian seorang edmund hillary, bukan impianku. impianku adalah untuk membantu mewujudkan impiannya....

Aha I’ve finally found my true passion..... (minimal utk saat ini, entah nanti)
Sungguh cerita ini kalau untuk saya kereen bingiiiit....
Ini yang aku cari selama ini..

Dulu jaman sekolah juara kelas, juara menggambar juga berprestasi lah, mengalami sendiri bagaimana jadi juara, dipuji, jadi anak pinter dll
tapi kok merasa sepertinya ada hal lain entah apa  yang sebenarnya lebih kuinginkan dari sekedar itu. efeknya mulai ketika sma jadi gak terlalu tertarik lagi utk berprestasi, mulai malas dan beberapakali bermasalah dengan guru2.
Demikian juga ketika bisa ccie dll, sebuah prestasi besar dalam hidup. Tapi kok kayaknya ada hal lain yang lebih kuinginkan...hal yang lebih menantang, yang lebih seru

Dan aha ketemu.... Mewujudkan impian seseorang....

Ternyata ini yang selama ini tanpa saya sadari sudah saya jalani dan saya merasa lebih excited dengan ini.

Merubah seseorang yang biasa2 menjadi seseorang yang luar biasa.

okelah bisa ccie adalah hal yg besar, 
tapi nulis buku ccie adalah hal yg lebih besar lagi
membantu mewujudkan impian seseorang,. ccie dengan usia termuda menjadi hal yg lebih seru lagi
membantu mewujudkan impian seseorang,. ccie pada usia pensiun, lebih keren lagi

mendobrak hal2 yang bagi orang lain ini adalah kesulitan besar, dan mengantarkan mereka menuju impian mereka ternyata lebih seru, lebih keren, lebih menggairahkan, lebih menantang dan lebih berwarna pilihannya..

Salah satu tujuan saya mendirikan pesantren networkers adalah untuk memunculkan para rockstar engineer sejak usia dini, yang nantinya akan memiliki kontribusi besar, memberi manfaat besar untuk dunia networking indonesia kelak...



Tidak bisa cepat, butuh waktu setidaknya 5-10 tahun kedepan karena mereka2 ini hanya lulusan smk yang biasanya kalau di kantor umumnya ya kalah bersaing dengan yang lulusan anak kuliahan..
Namun mereka sudah belajar networking dengan tepat diusia yang lebih awal, tinggal masalah waktu aja yang akan mengantarkan mereka. 

Daripada dipuji sana sini dengan apa yang sudah mereka capai saat ini, mereka lebih butuh untuk direndahkan, dicaci maki, dicap negatif seperti misalnya alah cuman lulusan smk, atau alah belajarnya cuman ngonfig2 aja, atau alah belajarnya cuman dikarbit aja atau bermasalah dengan sekolah, konflik dengan sekolah, kasus gak masuk sekolah, dicap anak nakal, kalau nerangin grogi terus, bahasa inggris masih belepotan aja gaya dll yang beginian ini jamu, pahit tapi sangat penting untuk membentuk mental dan karakter mereka kedepan.

Saya guru, namun bukan pengajar... Bukan mengajar dikelas menerangkan ini itu, saya lebih suka mengarahkan mereka, menujukkan apa yang perlu untuk mereka lakukan. karena hasilnya akan lebih dapat dirasakan daripada mengajar menerangkan sesuatu dari pagi hingga sore yang kemudian hari berikutnya sudah dilupakan para siswa.

kesuksesan saya untuk sekarang ini adalah ketika nantinya mereka-mereka berhasil mengalahkan saya 
dan saya akan menjadi sangat-sangat bangga, penuh perasaan kebahagian ketika memperoleh kekalahan itu.


on 11 Apr 2015 03:28 AM

08 Apr 2015



Komunitas SLiMS Jakarta kembali mengadakan kegiatan Sinau SLiMS. Kegiatan ini merupakan wadah bagi siapa saja yang berniat mempelajari aplikasi untuk perpustakaan, SLiMS. Mari belajar bersama dan meningkatkan kompetensi kepustakawanan di bidang teknologi informasi.
TOPIK
Kelas pemula: Modul Bibliography dan Master File (Tutor Dimas)
Kelas Lanjutan: UCS dan Nayanes (Tutor: Dudu)
WAKTU
Sabtu 18 April 2015
Pukul: 09.00-12.00 WIB
TEMPAT
Galeri Foto Jurnalistik Antara
Jl. Antara No. 59 Pasar Baru Jakarta Pusat
Nb: Peserta diharapkan membawa laptop masing-masing (+modem gsm untuk kelas lanjutan)
Investasi:
- Gratis dan Terbuka Umum
- Investasikan waktu Anda untuk Ilmu
Informasi lebih lanjut hubungi Hubungi Saifuloh HY (085217298195) dan Danies (+62 856-8806-361)
website: slimsjakarta.web.id
twitter: @slimsjakarta
email: komunitas@slimsjakarta.web.id
*Diambil langsung dari posting-an situs SLiMS Jakarta
on 08 Apr 2015 01:03 PM

29 Mar 2015

Tagihan tahunan

Fajran Iman Rusadi

Sekarang sudah bulan Maret dan ini artinya amplop hijau dari Gemeente alias pemerintah daerah dan amplop putih/biru dari Waternet akan datang! Amplop2 ini berisi Acceptgiro alias formulir pembayaran terkait bbrp hal xD Barhubung jumlahnya cukup signifikan, mari kita sekalian lihat dan catat apa aja sih yang ditagih.

Amplop pertama datang dari Gemeente. Dari sekian banyak hal yang bisa ditagih, yang sekarang relevan untuk saya adalah yang berikut ini. Oya angka2 ini bisa berubah tiap tahunnya dan yang saya pakai ini adalah untuk tahun 2015.

  • Onroerende-zaakbelastingen (OZB) alias pajak bangunan. Jumlahnya itu sekian persen (tepatnya 0,06228%) dari nilai properti yang (sepertinya) dihitung/ditentukan dari Gemeente. Jadi andai nilai rumah adalah 100 ribu euro, maka yang bakal ditagih adalah sekitar €63.

    Fun fact: di Amsterdam sini status tanah itu nyewa! Jadi kalau kita beli rumah, ya itu cuma tuk bangunannya aja. Si tanah tetep dimiliki oleh Gemeente (kayanya sih). Tiap daerah punya aturan sendiri termasuk yang status tanahnya adalah hak milik juga.

  • Afvalstoffenheffing yaitu uang kebersihan. Besarnya tergantung jumlah orang yang tinggal di sebuah alamat dan uniknya pilihannya cuma dua yaitu sendiri atau lebih dari satu orang xD Tuk tahun 2015 ini, si Gemeente bakal nagih €240 tuk satu orang dan €320 jika ada lebih dari satu orang.

  • Rioolheffing untuk saluran pembuangan. Besarnya dipukul rata sama semua yaitu sebesar €149.41.

Contoh hal lain yang bisa ditagih tapi gak relevan tuk saya itu pajak anjing. Jadi tiap orang yang memelihara anjing bakal harus bayar sekian euro.

Selain si Gemeente, Waternet yang ngurusin segala hal yang terkait dengan air juga punya tagihan tahunan. Ada dua/tiga hal yang ditagih oleh Waternet:

  • Watersysteemheffing atau pajak air. Besar tagihannya akan disesuaikan dengan properti/tanah yang kita punya. Tuk pemilik bangunan, sama seperti pajak bangunan di atas, besarnya akan dihitung berdasar nilai bangunan sebanyak 0,017089%.

  • Zuiveringsheffing atau Verontreinigingsheffing tergantung kondisi koneksi bangunan dengan saluran pembuangan. Komponen tagihan ini dipakai untuk pemurnian air yang “tercemar” oleh penghuni bangunan xD Besarnya dihitung berdasar jumlah pencemar, alias jumlah orang. Kalau cuma satu orang, akan dikenai tagihan sebesar 1 unit dan kalau ada dua atau lebih, tagihan akan datang untuk 3 unit pencemar. Tahun 2015 ini, ongkosnya adalah €53,76 per unit.

Kalau angka-angka di atas dijumlah semua, akan bikin puyeng jika mesti dibayar sekaligus. Untung aja si Gemeente (sayangnya si Waternet ngga demikian) menyediakan bbrp metode pembayaran. Dibayar sekaligus, dalam 2 kali pembayaran, atau 8 kali namun dengan tagihan otomatis. Sepertinya juga tiap bulan mesti menyisihkan sekian euro supaya gak terkaget2 setiap bulan Maret/April xD

Kalau ada yang salah2 atas penjabaran di atas, tolong kasih tau ya :D

on 29 Mar 2015 07:26 PM