Planet Kaipang

November 02, 2014

Piko

Pindah ke Ghost

Sekalian sebagai hadiah ulang tahun untuk aktivitas ngeblog (November 2008 - November 2014), akhirnya saya benar-benar pindah ke Ghost. Blog lama diletakkan di pdft.net/wp/. Saya sengaja tidak mengimpor data dari wordpress ke sini karena hasilnya belum begitu sempurna, terutama bagaimana proses impornya mengabaikan bentuk paragraf dari wordpress. Belum ada waktu buat ngoprekin.

Dan tujuan semula blog ini akhirnya ikut berubah. Bukan saja untuk catatan ngoprek, tapi tentang apa saja.

Untuk anda yang ingin mencicipi ghost, barangkali dapat mencoba dengan panduan berikut.

Jika ingin mengenal lebih lanjut tentang Ghost, situs-situs berikut sangat membantu :

Happy blogging!

by Herpiko Dwi Aguno at November 02, 2014 01:39 PM

October 30, 2014

Piko

Ngeblog dengan Ghost di Heroku, Gratis!

Halo,

Pada tulisan ini, saya "meng-Indonesia-kan" panduan yang tertulis di tautan berikut :

http://blog.johnny.io/how-to-get-ghost-running-on-heroku-for-free/

Tulisan ini akan memandu anda bagaimana membangun blog berbasis Ghost dan menumpangkannya di Heroku. Gratis!

Apa itu Ghost?

Tidak seperti platform blogging pada umumnya, Ghost bukan berbasis PHP, melainkan Node.Js. Node.Js adalah platform untuk membangun aplikasi real time, asynchronous, event-driven, menggunakan bahasa Javascript dan engine Javascript v8 dari Google Chrome.

Ghost sangat keren, dirancang untuk ngeblog, tidak yang lain. Salah satu fitur unggulannya adalah menulis secara live preview dengan Markdown.

Dan apa pula itu Heroku?

Heroku adalah web hosting berbasis cloud. Setiap aplikasi yang dikembangkan di Heroku berjalan di atas satu atau lebih dyno. Dyno adalah sebutan Heroku untuk unit virtual yang mem-bekingi aplikasi, mirip dengan gear di Openshift. Sebuah dyno mempengaruhi banyak hal, baik itu CPU, memory, maupun trafik. Akun gratis di Heroku mengizinkan penggunaan 1 dyno untuk setiap aplikasi.

Kebutuhan

Di praktik ini saya menggunakan Ubuntu 14.04. Karena perintah-perintah node pada umumnya sama meski beda sistem operasi, silakan menyesuaikan.

Anda perlu hal-hal berikut ini :

  • Akun Heroku
  • Heroku Toolbelt
  • NodeJs dan Npm
  • Git
  • Versi terakhir dari Ghost

Minimal, anda memiliki pengetahuan dasar mengenai git.

Disklaimer

Sebelum anda melanjutkan, anda perlu tahu kekurangan dari cara ini :

  • Akun gratis di Heroku hanya menyediakan 1 dyno. 1 dyno tidak cukup kuat untuk menahan trafik yang terlalu tinggi. Jika nantinya blog anda terlalu popluer dan butuh trafik lebih, pertimbangkan membeli beberapa dyno lagi.
  • Heroku hanya menerima tumpangan berkas yang bersifat statis, yaitu kode anda dan berkas-berkas statis lainnya. Selain itu bersifat sementara (temporary). Jika ingin mengunggah gambar, unggahlah di tempat lain seperti imgur (tapi ingat, imgur diblok Kominfo), atau lainnya, kemudian tinggal menautkan URL gambar.

Ghost di komputer lokal

Ada dua cara mengunduh Ghost : melalui Npm atau mengunduh langsung. Jika melalui Npm, ghost akan terpasang di ./node-modules/ghost/

$ npm instal ghost

atau

$ wget https://ghost.org/zip/ghost-0.5.3.zip

Kemudian

$ cd ghost/ $ npm install --production

Jalankan ghost :

$ npm start

Sampai di sini, anda dapat mengecek blog baru anda di peramban dengan alamat localhost:2368.

Masih di direktori ghost, anda perlu membuat sebuah berkas yang akan menjelaskan ke Heroku, lingkungan seperti apa yang anda butuhkan. Berkas ini dinamai Procfile.

$ touch Procfile

Karena Ghost membutuhkan lingkungan Node.Js, baris pertamanya isikan :

web: NODE_ENV=production node index.js

Transmisi data dari komputer lokal ke Heroku menggunakan Git. Mari buat repository git anda untuk ghost.

$ git init $ git add --all $ git commit -m "first commit"

Silakan login ke Heroku dengan perkakas Heroku Toolbelts.

$ heroku login

Anda akan dimintai akun email dan password Heroku. Setelah berhasil login, namai apps anda di Heroku.

$ heroku create namanda-ghost

Kemudian anda perlu menyunting berkas config.js, pada bagian

production : {...

Ada 3 parameter yang perlu diperhatikan :

  • url : isikan dengan url herokuapp.com anda
  • host : '0.0.0.0'
  • port : process.env.PORT

Lihat contoh potongan kode di bawah ini.

production: {
        url: 'https://namaanda-ghost.herokuapp.com',
    mail: {},
    database: {
        client: 'sqlite3',
        connection: {
            filename: path.join(__dirname, '/content/data/ghost.db')
        },
        debug: false
    },

    server: {
        // Host to be passed to node's `net.Server#listen()`
        host: '0.0.0.0',
        // Port to be passed to node's `net.Server#listen()`, for iisnode set this to `process.env.PORT`
        port: process.env.PORT
    }
},

Kemudian unggah kode anda :

$ git push heroku master

Sampai di sini, anda dapat mengecek blog ghost anda yang sudah mengudara di internet dengan alamat namaanda-ghost.herokuapp.com

Menggunakan PostgreSQL sebagai basis data

Secara bawaan, Ghost menggunakan SQLite sebagai basis data. Dan seperti yang sudah dijelaskan sebelumnya, tumpangan di Heroku hanya menerima berkas yang sifatnya statis. Jadi, bagaimanapun data diinput / modifikasi, nanti tetap balik seperti semula. Kita harus memindahkan basis datanya ke luar.

Heroku menyediakan PostgreSQL untuk basis datanya, gratis. Mari manfaatkan.

Masih di direktori yang sama,

$ heroku addons:add heroku-postgresql:dev

Anda akan mendapatkan keluaran semacam :

Attached as HEROKU_POSTGRESQL_XXX_URL

Catat string XXX karena akan digunakan di perintah selanjutnya,

$ heroku pg:promote HEROKU_POSTGRESQL_XXX

Sekarang kita perlu meminta detail basis data dari Heroku untuk disisipkan ke config.js.

$ heroku config

Outputnya seperti di bawah ini (hanya contoh) :

HEROKU_POSTGRESQL_VIOLET_URL: postgres://dbmxyhuxgh:Nqf20t9tDDrstfVdbupA1araNw@ec2-54-83-204-78.compute-1.amazonaws.com:5432/dclkggan2qs8c8

Dari informasti tersebut, berikut keterangannya :

  • user :dbmxyhuxgh
  • password : Nqf20t9tDDrstfVdbupA1araNw
  • host : ec2-54-83-204-78.compute-1.amazonaws.com
  • port : 5432
  • database : dclkggan2qs8c8

Sunting berkas config.js dan ganti bagian database di production menjadi seperti berikut :

    database: {
        client: 'postgres',
        connection: {
            host     : 'host',
            user     : 'user',
            password : 'passwd',
            database : 'database',
            charset  : 'utf8'
        }
    },

Isikan host, user, passwd, dan database dengan informasi yang diperoleh sebelumnya.

Sekarang kita perlu menyunting berkas lain, package.json, untuk menambahkan dependensi ke postgress. Tambahkan pg persis di bawah mysql (versi saat tulisan ini dipublish adalah 3.6.2). Jangan lupa tanda koma di akhir baris "mysql":"... .

"validator": "3.4.0",
"xml": "0.0.12",
"mysql": "2.1.1",
"pg": "3.6.2"

Simpan kode anda. Kemudian unggah.

$ git add --all $ git commit -m "change db to postgres" $ git push heroku master

Cek lagi blog anda yang sudah kembali mengudara dengan basis data postgres. Cobalah menulis sesuatu. :)

Kalau ada galat?

Jika ada galat seperti di bawah ini :

Anda dapat mengecek log-nya dengan perintah,

$ heroku logs

by Herpiko Dwi Aguno at October 30, 2014 05:26 PM

October 29, 2014

Piko

Bimbang

Ketemu sama teknologi baru, saya ini mudah bimbang. Sekarang lihatlah Ghost, platform untuk ngeblog yang katanya Wordpress Killer. Just a blogging platform, katanya? Bullshit itu, terlalu merendah. :D

Blog ini memang berjalan di atas ghost. Kelihatan biasa saja ya. Tunggu deh sampai lihat dalemannya bagaimana. Dan saya pun bimbang, setelah ngeblog dengan Wordpress sejak tahun 2008 (sekarang blog.pdft.net), perlukah saya bermigrasi ke Ghost?

Awalnya, blog ini saya dedikasikan untuk catatan ngoprek saja (dan dengan tulisan ini, dedikasi tersebut dilanggar). Tapi repot benar menulis di dua tempat (halah, kayak rajin ngeblog saja). Lama-lama, saya tidak tahan.

Blog saya yang Wordpress pagerank-nya sudah 3. Eh, apakah saya masih peduli sama yang namanya pagerank? Nampaknya tidak. Dulu pagerank itu serasa karma di Plurk. Sekarang? Sekarang orang-orang pada sibuk guling-guling di socmed.

Balik lagi ke tujuan ngeblog sekarang. Selain buat ngeksis, buat apa? Buat menulis dokumentasi (tentang apa pun) yang semoga bermanfaat buat orang lain. Selama Ghost mempermudah, mengapa tidak?

Mari dipikir-pikir lagi,

Enaknya :

  • Sederhana
  • Dirancang agar empunya fokus menulis
  • Dibangun dengan node.js, lingkungan yang sedang disukai dan didalami oleh penulis
  • Markdown!

Nggak enaknya :

  • Sederhana
  • Tidak ada fitur arsip, pencarian
  • Dibandingkan dengan Wordpress, lemah di SEO
  • Tidak mendukung komentar (mesti bawa-bawa platform komentar pihak ketiga seperti disqus, facebook, atau google+)
  • Hostingnya tidak gampang. Besok kalau Heroku (mudahan tidak) menutup layanan gratisnya atau bangkrut, saya yang nangis kejer mau ditaruh dimana ini blog.

Bagaimana bisa sederhana masuk ke dua kategori yang bersebrangan? Itulah yang bikin bimbang dan sekarang saya sedang buang-buang waktu mengekspor data dari blog Wordpress saya ke JSON untuk diimpor lagi ke sini.

Wooosaaaaah!

by Herpiko Dwi Aguno at October 29, 2014 04:45 PM

October 27, 2014

Piko

Halo Dunia!

Yey, ini adalah blog pertama saya yang jalan di atas ghost! Karena 1 dyno di heroku sama sekali tidak mumpuni untuk banyak pengunjung, blog ini saya dedikasikan untuk catatan ngoprek belaka.

Jadi apa tulisan selanjutnya?

Mungkin saya akan mencoba menulis cara membangun blog ghost di heroku, mengalihbahasakan tulisan yang telah memandu saya : http://blog.johnny.io/how-to-get-ghost-running-on-heroku-for-free/

Tes...

Tahu nggak sih, menulis pakai markdown di ghost benar-benar keren!

console.log("Halo dunia!")

by Herpiko Dwi Aguno at October 27, 2014 06:54 PM

Welcome to Ghost

You're live! Nice. We've put together a little post to introduce you to the Ghost editor and get you started. You can manage your content by signing in to the admin area at <your blog URL>/ghost/. When you arrive, you can select this post from a list on the left and see a preview of it on the right. Click the little pencil icon at the top of the preview to edit this post and read the next section!

Getting Started

Ghost uses something called Markdown for writing. Essentially, it's a shorthand way to manage your post formatting as you write!

Writing in Markdown is really easy. In the left hand panel of Ghost, you simply write as you normally would. Where appropriate, you can use shortcuts to style your content. For example, a list:

  • Item number one
  • Item number two
    • A nested item
  • A final item

or with numbers!

  1. Remember to buy some milk
  2. Drink the milk
  3. Tweet that I remembered to buy the milk, and drank it

Want to link to a source? No problem. If you paste in a URL, like http://ghost.org - it'll automatically be linked up. But if you want to customise your anchor text, you can do that too! Here's a link to the Ghost website. Neat.

What about Images?

Images work too! Already know the URL of the image you want to include in your article? Simply paste it in like this to make it show up:

The Ghost Logo

Not sure which image you want to use yet? That's ok too. Leave yourself a descriptive placeholder and keep writing. Come back later and drag and drop the image in to upload:

Quoting

Sometimes a link isn't enough, you want to quote someone on what they've said. It was probably very wisdomous. Is wisdomous a word? Find out in a future release when we introduce spellcheck! For now - it's definitely a word.

Wisdomous - it's definitely a word.

Working with Code

Got a streak of geek? We've got you covered there, too. You can write inline <code> blocks really easily with back ticks. Want to show off something more comprehensive? 4 spaces of indentation gets you there.

.awesome-thing {
    display: block;
    width: 100%;
}

Ready for a Break?

Throw 3 or more dashes down on any new line and you've got yourself a fancy new divider. Aw yeah.


Advanced Usage

There's one fantastic secret about Markdown. If you want, you can write plain old HTML and it'll still work! Very flexible.

That should be enough to get you started. Have fun - and let us know what you think :)

by Herpiko Dwi Aguno at October 27, 2014 02:31 PM

October 26, 2014

Piko

October 25, 2014

Piko

Mengapa Saya Suka Psikologi dan Membenci Psikolog

Bukan bidang ilmu yang saya tekuni, hanya saja saya senang membaca-baca tentang psikologi. Penyakit-penyakit psikologi begitu menarik.

Namun saya selalu panik bila bertemu psikolog, karena mereka seolah-olah terlalu banyak tahu tentang diri saya. Rasa-rasanya mereka sulit dikelabui. Ini rasanya seperti pelanggaran privasi kan? #loh

by pdft at October 25, 2014 02:39 PM

Memigrasikan Database Eplaq ke GNU/Linux

Perhatian : Eplaq secara resmi dirilis untuk sistem operasi Windows. Meskipun secara teknis hal ini sama saja, penulis tidak bertanggung jawab terhadap kesalahan yang mungkin terjadi.

 

Yak, ini kelanjutan dari catatan yang ini.

Jadi ceritanya banyak keluhan sejak server tersebut menggunakan virtualisasi. Boro-boro Windows Server, kami pakai Windows 7 bajakan yang notabene untuk desktop. Maksa banget ya? Masalah utamanya bagi saya adalah, Windows tidak nyaman untuk di-remote dari jarak jauh. Secara natif, tidak ada SSH, SCP, dan utilitas khas Unix lainnya. Sebenarnya masih banyak alasan-alasan lain mengapa saya ngebet ke GNU/Linux. Tapi mari langsung saja.

Eqvet lebih mudah dimigrasikan ke GNU/Linux karena password root databasenya sudah diketahui. Sementara Eplaq tidak demikian. User dan password databasenya diproteksi sehingga kita tidak mungkin mengekspor dan mengimpor database dengan cara normal.

Tapi kalau saya tetap ngotot pindahin ke GNU/Linux?

Pakai cara kasar. Bawa saja semua berkas SQL-nya mentah-mentah. Eplaq versi sekarang (per tanggal catatan ini ditulis) menggunakan MySQL versi 4.1. Lawas banget, tidak tersedia di distribusi yang umum sekarang. Jadi silakan siapkan distribusi apa saja, hapus semua paket yang berkaitan dengan X. Di sini saya menggunakan Ubuntu 12.04.

$ sudo apt-get remove xserver-xorg-core

 

Unduh MySQL 4.12 dan kompail. Saya memasangnya di /usr/local/mysql, jadi :

wget https://downloads.mariadb.com/archives/mysql-4.1/mysql-4.1.22.tar.gz
tar -xvf mysql*
cd mysql*
./configure --prefix=/usr/local/mysql/

 

Di saya, ada galat berikut saat configure :

./configure --prefix=/usr/local/mysql/

.

.

.

No curses/termcap library found

 

Pasang saja paket libncurses5-dev dari lumbung resmi. Berikutnya, atur-atur semuanya sampai MySQL-nya siap pakai (termasuk passowrd root dan segala macam). Setelah MySQL-nya oke, stop service-nya, kemudian salin berkas MySQL dari Eplaq yang sekarang (Windows). Mestinya terletak di C:\Program Files\MySQL\MySQL-versi\data\. Salin semua isi direktori data tersebut ke /usr/local/mysql/var/

Setelah disalin, perbaiki permissionnya :

$ sudo chown -R mysql:mysql /usr/local/mysql/var/

 

Jalankan lagi service MySQL-nya. Yey, sekarang database Eplaq sudah up di GNU/Linux (meskipun tidak bisa login).

Mungkin di saat ngatur-ngatur pertama kali MySQL-nya, anda sempat menyalin berkas my.cnf ke /etc/ atau menggunakan file konfigurasi bawaan sebelumnya (jika sebelumnya sempat memasang MySQL dari lumbung resmi, bukan versi 4.1). Pilih salah satunya, hapus yang lain, kemudian sunting. Ada baris yang penting untuk ditambahkan di sini :

Ini berkaitan dengan case sensitive di nama tabel. Eplaq dikembangkan di Windows, mungkin pengembangnya tidak terlalu peduli dengan perbedaan huruf besar kecil antara query di kode dengan nama tabel sebenarnya di database. Tapi saat dibawa ke Unix-like, hal ini tidak bisa ditoleransi.

lower_case_table_names=1

 

Meskipun kita tidak bisa masuk ke MySQL-nya (karena user passwordnya diproteksi dari pusat), untungnya databasenya sudah dikonfigurasi supaya bisa di-remote dari mana saja.

skip-name-resolve

 

Baris di atas penting untuk masalah performa, silakan baca-baca di sini : http://dev.mysql.com/doc/refman/5.0/en/host-cache.html

Pointing

Sekarang mari kita pindah ke Windows sebentar (client / PC Pelayanan). Pada aplikasi Eplaq, arahkan databasenya ke IP server tersebut. Voila! :D

Memperbarui Database dari Pusat

Kendala yang mungkin timbul setelah dimigrasikan ke GNU/Linux adalah update database dari pusat. Selama ini, updatenya dirilis dengan berkas executable (*.exe) yang akan menyalin beberapa berkas sql secara mentah (*.frm) ke tempat semestinya.

Jadi berikut prosedur yang mungkin dilakukan untuk menganggulangi kendala ini :

0. Update dirilis

1. Stop service MySQL di GNU/Linux, salin berkas mentah sql ke Windows virtual.

2. Jalankan update di Windows virtual

3. salin berkas mentah sql di Windows virtual ke GNU/Linux.

4. Jalankan service MySQL di GNU/Linux

5. Selesai. Repot ya?

Jadi saya sengaja tidak menghapus Windows virtualnya agar bisa digunakan sewaktu-waktu.

 

Update :

Eplaq versi sekarang sudah bisa mengupdate database langsung dari aplikasi, langsung memodifikasi database. Tidak lagi menggunakan berkas executable terpisah. Eh, tapi nggak tau deh nantinya bagaimana. :P

by pdft at October 25, 2014 12:55 PM

October 23, 2014

Blek

Menuju Sinjai

Menuju Sinjai

Saya masih ingat kapten kapal itu, yang kami tumpangi. Masih seusia saya, dan anak buah kapalnya adalah saudara-saudaranya semua. Beberapa masih berusia belasan tahun. Bagi sukunya, kapal adalah usaha keluarga. Maka dialah yang melanjutkan, sebagai anak pertama.

Siang menjelang sore, setelah seharian sama sekali tidak terlihat daratan, hanya air yang batasannya langit di horizon, siluet gunung Bawakareang mulai menampakkan dirinya, dua jengkal dari horizon. Warnanya masih samar-samar biru pucat, berlatar langit yang sedikit lebih muda birunya. Pertanda, masih cukup lama kami bisa menginjak tanah hitam.

Piko yang berbincang-bincang dengan kapten kapal nyeletuk, “Pak, di sini nggak ada bajak laut ya?”

Mendengar itu, kapten kapal terdiam sesaat kemudian tertawa. Saya ikut tertawa kemudian berujar, “Sebenarnya kapal ini kategorinya kapal bajak laut juga. Kita ini kan penumpang ilegal!” Kembali kapten kapal tertawa.

Kemudian dia diam. Menatap siluet gunung Bawakareang di depannya. Di tengah suara angin yang menderu keras dan percikan ombak yang pecah di haluan, dia berkata dengan nada sendu.

“Tapi bajak laut sebenarnya itu aparat. Sering, kami dicegat langsung di tengah laut. Walau surat-surat lengkap, ada saja kesalahan yang ditemukan buat jadi uang…”


by Black_Claw at October 23, 2014 07:21 AM

October 20, 2014

Piko

Jangan Dipuji, Dibenci Saja

Banyak teman-teman saya yang suka memuji-muji secara berlebihan dan tidak mengambil hikmah dari mengapa dia akhirnya memuji demikian.

Salah tingkah saat dipuji itu sungguh tidak enak dan saya sama sekali tidak menyukainya, terlebih ditambah kesadaran bahwa saya belum ada apa-apanya dibanding beberapa orang yang saya kenal.

Jika saya mengenal dekat orang yang dalam hal-hal tertentu lebih cakap dari pada saya, mencapai lebih banyak prestasi dari pada saya, lebih maju dari saya, maka saya akan berusaha membencinya. Saya benci dikalahkan. Saya sukar ngalah. Maka saya jadikan dia rival, dalam artian yang positif. Paling banter saya hanya bilang, “Wogh, keren!”, tapi kemudian “Sialan!”.

Jika dia membahas sesuatu yang tidak saya mengerti dan membuat saya merasa bodoh, saya juga akan membencinya dan berusaha mencapai tingkat pengetahuan yang sama sehingga akhirnya saya mengerti apa yang dibahas itu.

Pada akhirnya, saya membenci terlalu banyak orang, dan hidup saya seperti jalan setapak yang panjang sekali dimana saya terus-menerus berlari seolah dikejar anjing.

Woosaaaaah!

 

by pdft at October 20, 2014 02:38 PM

Smaug at its best achievement of overheating

118 derajat celcius, woohoooooooooo!

Saya mengakui bahwa rata-rata produk komputer dari HP (bukan Compaq ya) cukup bandel. Tapi mengenai rancangan, itu hal yang berbeda. HP Pavilion dm3 milik saya adalah salah satu produk cacat dari HP yang diakui secara luas. Secara tampilan, komputer ini menarik sekali dan berasa pegang Macbook. Serba logam. Tapi tahu nggak sih? Fungsi case logam ini bukan supaya elegan, tapi inilah heatsink dari prosesor laptop ini.

Yoi. Saya nggak salah tulis. Heatsink yang nempel ke procesor itu diangin-angini sama kipas kecil yang tidak punya sumber udara. Jadi sama sekali tidak berguna. Di bawah case logam ini, ada banyak ruang udara kosong yang bagus sekali tempat bersemayam udara panas, yang kemudian menyalurkan panasnya ke case, atas dan bawah. Rasakanlah mengetik di atas bara 50 derajat celcius. Dipangku sama panasnya.

Kalau benar itu isu tentang memangku laptop menyebabkan mandul karena radiasi panasnya, berarti saya sudah tidak bisa diharapkan lagi. #eh

Jadi kemarin saya terpaksa melubangi bagian bawah case untuk ventilasi tambahan, membuat cacat produk cacat ini. Dan hasilnya hari ini adalah..

Yak, sama saja.

Halo, ada yang jual Macbook bekas?

by pdft at October 20, 2014 02:21 PM

October 12, 2014

Piko

Silicon Valley Season 1 : Github & Reverse Engineering

Kalau ada di Github, ngapain repot-repot reverse-engineering? Meski tidak menutup kemungkinan menyimpan binary atau private repo di Github, tetep aja kedengaran aneh. :P

by pdft at October 12, 2014 09:04 AM

October 10, 2014

Ukang

Balada Pembenihan Ikan lele

 Dompu merupakan salah satu Kabupaten di Pulau Sumbawa, Provinsi Nusa Tenggara Barat, dimana kondisi serta suhu tidak jauh dari 10 (sepuluh) Kabupaten/Kota di NTB. Panas... ya Panas, apalagi semakin ke timur.





Indukan lele yang siap dipijah.











 Kolam Pijahan Lele 1 Jantan dan 1 Betina.








by Furkan Samadha (noreply@blogger.com) at October 10, 2014 07:10 PM