Git-flow Cheatsheet

Bagi anda yang sering menggunakan Git sebagai alat untuk kontrol versi (Version Control) project anda pasti sudah terbiasa dengan operasi-operasi branching, tagging dan lainnya di Git.

Namun sering kita jumpai bahwa kita tidak konsisten memanfaatkan semua fitur itu dan kebanyakan hanya bekerja di cabang Master saja. Meskipun tidak ada salahnya, namun membiasakan diri dengan konsep bahwa kode project yang siap rilis, yang dalam tahap pengembangan, penambahan fitur baru itu seharusnya berada dalam cabang terpisah.

Salah satu contoh baik penggunaan Git dalam software development adalah sebuah pola yang digunakan oleh Vincent Driessen seorang developer dari Belanda dengan tulisannya yang cukup terkenal mengenai pola Git yang dia pakai disini.

Continue reading

Easy Task Queue on Google Appengine

Kali ini saya akan ngobrol sedikit tentang python web development di Google Appengine, yaitu tentang memanfaatkan Task Queue.

Apa itu Task Queue?, Task Queue kalau diterjemahkan ke bahasa Indonesia bisa kita sebut sebagai Antrian Tugas/Antrian Prosess, dimana akan sangat berguna ketika kita akan melakukkan proses-proses yang berat dan panjang di dalam satu request.

Saya akan langsung saja kasi kasus penggunaan nya, belakangan ini saya terlibat dalam sebuah Fun project dengan seorang teman dimana membuat sebuah web dengan memanfaatkan API dari Facebook.

Continue reading

Fun CSS scripting dengan LESS css

“Akhirnya scripting CSS ga ngebosenin lagi bro…”

Mungkin cuma itu kata yang tepat buat saya untuk mengungkapkan perasaan yang timbul pas pertama kali coba coding CSS dengan LESS CSS.

Buat yang belum tahu apa itu LESS, anda web developer / Front-end web developer? wajib tau lah bro.. silahkan cek disini http://lesscss.org. Jadi LESS adalah sebuah pre-processor yang berbasis Javascript dimana berfungsi untuk membuat / menambahkan kemampuan baru pada script CSS.

Dimana sebelum nya CSS bersifat statis, dengan sintak monoton, pengulangan-pengulangan sintak terus terjadi, dan aturan-aturan yang begitu-begitu saja pasti ada yang akan merasa cepat bosan kalau harus coding CSS terus seharian tanpa henti, penglaman pribadi bro :D.

Continue reading

Automated Django Deployment dengan Fabric

Sepanjang pengalaman saya dengan Django, hal termudah untuk deploy Django ke live server adalah dengan hosting di WebFaction atau cloud hosting nya Heroku.

Kedua layanan hosting tersebut sudah menyediakan tool khusus untuk mempermudah kita mengupload dan mengkonfigurasi Django dan bisa live hanya dalam beberapa menit (Heroku) dengan Git interface nya.

Sedangkan WebFaction yang memiliki kontrol panel yang bisa saya bilang genius, Install Django menjadi super mudah hanya dengan beberapa klik di control panel nya.

Untuk yang menggunakan VPS/Dedicated server sendiri pasti ceritanya berbeda, semua kemudahan tersebut diatas pastilah tidak ada, semua harus dikonfigurasi sendiri, dan apabila perlu update, harus login via SSH ke server dan kadang harus restart project secara manual juga.

Continue reading

Trello, project management/tracking yang simple dan mudah digunakan

trello-logo

Kali ini saya sedang tidak ingin blogging tentang masalah teknikal :) jadi saya akan akan bicara tentang hal lain saja.

Saya akan mengulas sedikit tentang Trello, Trello adalah sebuah layanan berbasis web dimana bisa membantu kita dalam memanage project yang kita kembangkan baik itu sendiri atau dalam suatu team.

Jadi Trello seperti sebuah dinding virtual dimana kita bisa menempelkan berbagai Ide, Todo-list, progress, Bug dll yang bisa dipantau oleh anggota team, dan dikerjakan oleh anggota team yang bersangkutan/ditugaskan.

Continue reading

Django Tips: Django Development dengan Virtualenv

Karena Django tidak lain adalah sebuah python framework yang dikemas dalam sebuah paket(package), maka untuk menjalankannya pun django harus berada di dalam python path. Silahkan baca artikel saya mengenai Python Path bagi yang belum begitu paham mengenai python path.

Di sisi lain python hanya mengijinkan satu program/package/module yang sama di Python path nya, ini artinya tidak mungkin kita menjalankan program python yang sama dalam satu lingkungan python, yang menyebabkan anda tidak akan bisa menjalankan dua atau lebih versi Django sekaligus. Karena pasti akan konflik. Karena mungkin suatu saat anda ingin mencoba Django versi lain dari versi sekarang yang anda pakai.

SOLUSI : Virtualenv

Mulai sekarang, apabila anda belum memakai Virtualenv untuk mendevelop proyek Django anda, maka anda harus menggunakannya. Bahkan saya sarankan sebelum anda mulai dengan Django, alangkah baiknya anda mengenal Virtualenv terlebih dahulu.

Apa itu Virtualenv?

Continue reading

Django Web Framework – Part 5 | Django ORM

ORM atau Object Relation Mapper, merupakan penjabaran suatu tabel data di database adalah suatu Object, dimana object ini memiliki nilai, atrribute dan fungsi-fungsi sendiri.

Jadi dengan menggunakan Django built In ORM ini, mengakses data di database menjadi sangat mudah, tidak(jarang) diperlukan lagi penggunaan code SQL secara langsung, dan kelebihan lainnya adalah, Django mendukung berbagai jenis database seperti SQLITE, PostgreSQL, Mysql dll..

Yang menjadikannya sangat powerful adalah, ketika kita akan menggunakan atau mengganti jenis database. Misal untuk development kita cukup pakai SQLite3 aja sudah cukup, nah ketika sudah mau kita online kan/fase Deployment maka tinggal ganti saja settingan database nya ke Mysql misalnya itu menjadi sangat mudah dan simple.

Continue reading

Django Web Framework – Part 4 | Django Admin

Semua pasti sudah tau, dalam pengembangan sebuah aplikasi berbasis web, pembuatan bagian admin adalah bagian yang paling membosankan dan sangat berulang-ulang untuk setiap project.

Dengan Django, kebosanan itu bisa sedikit dihilangkan karena Django menyediakan halaman Admin untuk memanage website kita tanpa kita harus membuatnya dari awal.

Django membuatkan halaman admin secara otomatis, dengan membaca metadata dari Model yang kita sudah buat, dengan login ke admin semua fungsi Add, Edit, Delete sudah disediakan dengan otomatis. Ini akan sangat menghemat tenaga karena kita bisa fokus untuk pengembangan code untuk presentasi ke pengunjung website daripada harus menghabiskan banyak waktu membuat halaman admin dari awal.

Continue reading

Django Web Framework – Part 3 | Plugable Apps

Apa yang dimaksudkan plugable apps? jadi maksudnya adalah sebuah project/website/web aplikasi adalah kumpulan dari beberapa aplikasi yang saling berhubungan atau bisa juga jalan sendiri-sendiri.

contoh kongkrit nya misalkan sebuah website untuk Blogging, web ini bisa dibangun dari beberapa Django Apps misalnya aplikasi untuk menangani Komentar, Post, RSS Feed dan Sitemap, itu bisa saja merupakan aplikasi-aplikasi yang berbeda namun kita hubungkan sehingga menjadi satu project/produk utuh.

Continue reading