Senin, 30 November 2009

Ruby on Rails 2.3.5 Dirilis

Rails 2.3.5 telah dirilis dimana telah dilakukan penghilangan bug dan sebuah celah keamanan. Selain itu, versi ini juga dipastikan kompatibel dengan semua versi 2.3.x yang telah dirilis. Berdasarkan blog resmi dari Ruby on Rails, ada tiga hal utama dalam versi 2.3.5 ini.

1. Meningkatkan kompatibilitas dengan Ruby 1.9
Pada Rails versi-versi sebelumnya, ada beberapa buah bug yang menyebabkan Rails tidak dapat kompatibel secara penuh dengan Ruby 1.9. Pada versi ini bug tersebut telah dihilangkan, sehingga menjadi lebih kompatibel dengan Ruby 1.9.

Sabtu, 28 November 2009

Web Spidering Dengan Gem Spidr

Spidr adalah library Ruby web spider yang bersifat serba guna yang didesain agar mudah digunakan dan cepat pada saat pemrosesan. Spidr dapat melakukan spider / crawler pada tag a, iframe, dan frame di sebuah atau banyak domain sekaligus dimana menggunakan nokogiri untuk melakukan parsing HTML pada halaman web yang dikunjungi.

Jumat, 27 November 2009

WebROar - Aplikasi Server Berbasis Ruby yang Baru

Pada tanggal 25 November 2009 yang lalu, WebROaR untuk pertama kalinya resmi dirilis sebagai open source dengan versi 0.2.3. Tujuan utama dari WebROar adalah membuat deployment dari aplikasi Ruby on Rails menjadi lebih mudah dan memberikan solusi untuk melakukan monitor terhadap performansi dari aplikasi serta melakukan tracking terhadap exception yang terjadi dengan difasilitasi admin panel yang sederhana dan mudah.

Celah keamanan XSS pada method strip_tag()

Saat ini terdapat celah keamanan Cross-Site Scripting (XSS) ditemukan pada Rails method strip_tag(). Celah keamanan ini memungkinkan terjadinya serangan terhadap pengguna Internet Explorer. Permasalahan ini disebabkan oleh HTML::Tokenizer yang memiliki bug saat melakukan parsing terhadap non-printable karakter ASCII.

Berdasarkan rorsecurity yang mengacu pada laporan pada google group rubyonrails-security, celah keamanan ini telah diperbaiki pada Rails 2.3.5 dan versi 2.2.x. Celah keamanan ini tidak berpengaruh pada aplikasi yang tidak menggunakan method strip_tag(). Jadi sangat disarankan untuk upgrade jika aplikasi anda menggunakan method strip_tag().

Hasil dari method strip_tag() dapat melewati fungsi escaping pada Rails yang umumnya dipakai:

<%= h(strip_tag(...)) %>



Rubinius 1.0.0RC1 Dirilis

Seperti yang kita tahu, bahasa pemrograman Ruby bisa diimplementasikan dengan Rubinius. Sebagai salah satu intepreter atau implementasi bahasa Ruby, saat ini Rubinius telah mencapai versi 1.0.0RC1.

Download
tarball
repositori github

Build Rubinius
Rubinius menggunakan LLVM untuk mengimplemantasikan JIT compiler dan secara default LLVM adalah disable. Untuk melakukan enable LLVM, gunakan opsi --enable-llvm pada saat menjalankan rubinius

Running dari dalam direktori source
Jalankan

./configure

atau

./configure --enable--llvm

kemudian jalankan

rake

Install Rubinius

./configure --prefix=/path/ke/install/direktori

atau

./configure --enable-llvm --prefix=/path/ke/install/direktori

Kemudian buat simbolik link atau masukkan /path/ke/install/direktori ke PATH sistem operasi anda.



Rabu, 25 November 2009

Phuby on Phails - Kode PHP menggunakan Ruby on Rails

Ingin menjalankan PHP menggunakan Ruby on Rails? mungkin video ini bisa menjadi jawaban anda. Hanya dengan sedikit konfigurasi, yaitu menambahkan kode di bawah ini pada direktori config/environment.rb

config.gem 'phuby'
require 'phuby/init'

Kemudian jalankan perintah:

ruby script/generate phps



Lebih Lanjut:
http://github.com/phails/phails

http://github.com/tenderlove/phuby



Selasa, 24 November 2009

URL Monitoring Script

URL Monitoring yang dibuat oleh Isaacs sangat berguna bagi yang ingin URL apa saja yang di-request ketika mengakses sebuah situs. Untuk menjalankan script ini, anda diharuskan melakukan instalasi tcpdump terlebih dahulu. Selain itu, sepertinya script ini hanya berjalan di atas sistem operasi UNIX dan turunannya.





Sabtu, 21 November 2009

Akses Akun Gmail Dengan Gem ruby-gmail

Gem ruby-gmail dari Daniel Parker memngkinkan anda untuk mengirim dan menerima email dari akun Gmail anda. Gem tersebut berkomunikasi dengan Gmail menggunakan IMAP dan memungkinkan kita untuk membaca email dengan status unread atau read, menghapus, menandai sebagai spam, menambah label, dan mendapatkan attachment pada email. Untuk mendapatkan seluruh email dengan status unread, cukup dengan kode.

#!/usr/bin/ruby

require 'rubygems'
require 'gmail'

username = "YOUR_USERNAME"
password = "YOUR_PASSWORD"
gmail = Gmail.new(username, email)
unread_message = gmail.inbox.emails(:unread)

puts "All unread messages"
for mail in unread_message
puts "----------------------------------"
puts "From: #{mail.message.from}"
puts "Subject: #{mail.message.subject}"
end

Requirements ruby-gmail
- ruby
- net/smtp
- net/imap
- gem shared-mime-info

Instalasi ruby-gmail

gem install ruby-gmail -s http://gemcutter.org




Jumat, 20 November 2009

Ruby on Linux vs Ruby on Windows

Benchmarking Ruby pada sistem operasi Linux dan Windows ini dilakukan oleh Antonio Cangiano. Dalam benchmark yang dilakukan olehnya, ada beberapa kondisi yaitu:
  1. Sistem Operasi yang digunakan adalah Windows XP SP3 dan Ubuntu 9.04 32 bit
  2. Versi Ruby yang digunakan untuk testing adalah ruby 1.8.6 (2009-03-31 patchlevel 368) [i386-mingw32], ruby 1.9.1p129 (2009-05-12 revision 23412) [i386-mingw32], Ruby 1.8.6 (built from source di Linux) and Ruby 1.9.1 (built from source di Linux).
  3. Menggunakan Ruby Benchmark Suite dimana akan memberikan report terbaik dalam lima kali running, dengan timeout 300 detik setiap iterasi

Kamis, 19 November 2009

Download Gratis Rails Magazine #4

Rails Magazine edisi keempat telah beredar, selain berisi interview dengan Matz, Koichi Sasada, Yehuda Katz, David Heinemeier Hansson, dan Thomas Enebo, ada penjelasan mengenai backgound processing menggunakan delayed_job.



Solusi Otorisasi sederhana dengan CanCan

Ryan Bates membuat CanCan dengan tujuan memudahkan kita melakukan otorisasi pada aplikasi Ruby on Rails apa saja yang boleh diakses oleh pengguna situs anda. Seluruh permission yang dibutuhkan berada pada sebuah lokasi khusus, sehingga membuat nyaman untuk melakukan konfigurasi. Selain dapat digunakan sebagai gem, CanCan dapat digunakan baik sebagai Rails plugin. Untuk info lebih lanjut bagaimana instalasi serta penggunaannya, silahkan kunjungi http://github.com/ryanb/cancan

Rabu, 18 November 2009

Phuson Passenger 2.2.6 Dirilis

Phusion Passenger adalah modul untuk web server Apache dan Nginx untuk melakukan deployment Ruby on Rails. Salah satu fitur tambahan dalam versi ini adalah Autodetection memberikan prioritas lebih banyak untuk Rack dibanding dengan Rails. Hal ini membuat ketika terdapat berkat config.ru ketika menggunakan custom Rack middleware akan dianggap sebagai Rack application dan bukan sebagai Rails application. Untuk keterangan lebih jauh, silahkan kunjungi blog resmi dari Phusion Passenger.

Langkah-Langkah Upgrade ke versi 2.2.6 via Gem

gem install passenger

Untuk pengguna Apache, kemudian jalankan.

passenger-install-apache2-module

Atau untuk pengguna Nginx, jalankan.

passenger-install-nginx-module

Jammit - Industrial Strength Asset Packaging Library for Rails

Jammit adalah asset packaging untuk Rails yang dapat melakukan kompresi terhadap berkas CSS dan Javascript serta image anda. Selain itu, Jammit memiliki fitur yang unik yaitu dapat menggunakan image dalam situs anda dan melakukan embed ke berkas CSS. Keuntungannya adalah dapat mengurangi jumlah berkas / file yang digunakan untuk melakukan render sebuah halaman situs.

Draft "Rails in a Nutshell" Gratis Baca Online

Rails in a Nutshell, Buku yang dibuat oleh Cody Fauser, James MacAulay, Edward Ocampo-Gooding, dan John Guenin diterbitkan oleh O'reilly seharusnya diterbitkan, namun berhubung Rails 3.0 segera dirilis, penerbitannya ditunda. Kabar baiknya, dengan begitu, maka buku ini akan menjadi buku pertama yang menggunakan Rails 3.0. Jika anda tertarik untuk membaca, silahkkan kunjungi http://rails-nutshell.labs.oreilly.com/

RubyMine 2.0 dan MacRuby 0.5 Dirilis

JetBrains, salah satu pembuat IDE terkemuka, telah merilis RubyMine 2.0 bulan ini. Ada banyak fitur tambahan yang ada dalam versi ini, salah satu hal yang menarik dari rilis ini adalah memudahkan dalam testing menggunakan Cucumber, Shoulda and RSpec.

Sedangkan bagi pengguna Mac, MacRuby 0.5 beta2 telah dirilis, untuk info lebih lanjut mengenai versi ini, dapat dilihat di blog resmi MacRuby.

Selasa, 17 November 2009

Gemcutter, A New Official Default RubyGems

Gemcutter baru tahun ini muncul, namun Gemcutter telah menjadi default Ruby Gem repositori karena kelebihannya dalam mengatur gem-gem dibanding repositori yang lain. Repositori yang lain, seperti RubyForge dan GitHub, akan tetap memberi pelayanan terhadap repositori miliknya beberapa waktu ke depan. Bagi anda yang akan membuat gem, direkomendasikan menggunakan Gemcutter sebagai gem hosting anda.

Langkah-langkah menggunakan ke Gemcutter.

gem install gemcutter
gem tumble

Ruby on Rails - Hello World Project

Artikel ini ditujukan bagi pemula Ruby on Rails dan diasumsikan Ruby on Rails telah ter-install. Seperti biasa, untuk belajar, dimulai dari hal sederhana, yaitu menampilkan kata "Hello, World!". Berikut ini adalah langkah-langkah-nya

Buat Ruby on Rails Project

rails helloworld

setelah project di-generate, masuk ke dalam direktori helloworld.

cd helloworld

Di dalam direktori helloworld, akan berisi seperti di bawah ini.

aji@slacky:~/projects/ruby/trunk/ror/helloworld$ ls
README app/ db/ lib/ public/ test/ vendor/
Rakefile config/ doc/ log/ script/ tmp/

Senin, 16 November 2009

Dasar-Dasar MVC pada Ruby on Rails

Ada beberapa hal yang mendasar di Ruby on Rails tentang MVC-nya. Sebelumnya, jika artikel ini ada yang kurang, mohon ditambahkan.

Model
  • Untuk melakukan akses terhadap model, menggunakan huruf pertama menggunakan huruf besar. Misal, User.name dimana name adalah method dari model user.
  • Method new digunakan untuk membuat objek baru tapi tidak tersimpan dalam database, sedangkan method create akan menyimpan dalam database. Misal, User.new(:name => 'aji') tidak akan tersimpan, tapi User.create(:name => 'aji') akan tersimpan dalam database.
  • Asosiasi belongs_to memiliki arti link-ke tabel lain, sedangkan has_one di-link-dari tabel lain.

Minggu, 15 November 2009

Ruby on Rails Overview

Seperti yang kita tahu, Rails adalah web development framework yang dibangun dengan bahasa pemrograman Ruby. Ada beberapa hal yang perlu diketahui tentang Rails, berikut ini saya mencoba menjelaskan sedikit overview dari Ruby on Rails

Filosofi Rails
- DRY --"Don't Repeat Yourself". Tidak melakukan penulisan kode yang sama berulang kali. Inilah salah kelebihan Rails, yaitu membuat developer web sedikit menulis kode.
- Convention Over Configuration. Rails lebih mementingkan konvensi dalam penulisan kode, seperti huruf pertama besar untuk merepresentasikan nama model. Sehingga tidak diperlukan konfigurasi yang banyak untuk membangun aplikasi.
- REST (Representational State Transfer). Merupakan best pattern untuk aplikasi web dengan cara melakukan pengaturan aplikasi dengan resource dan standard HTTP verb.

Dokumentasi Gem dan Ruby on Rails

Ada dua buah dokumentasi yang harus sering anda baca selain dokumentasi API RoR resmi, yaitu:

Dokumentasi Gem
Dokumentasi Gem merupakan dokumentasi yang di-generate berdasarkan gem-gem apa saja yang anda install. Untuk membuat dokumentasi gem, ketikkan perintah sebagai berikut.

gem server

Setelah selesai, buka web browser anda dan ketikkan http://localhost:8808 untuk membaca dokumentasi gem yang telah di-generate.

Dokumentasi Aplikasi Ruby on Rails
Dokumentasi ini merupakan dokumentasi yang di-generate berdasarkan aplikasi Ruby on Rails yang dibuat dan plugin yang digunakan, jadi misalkan aplikasi anda memiliki controller products dengan action show, maka otomatis akan dimasukkan ke dalam dokumentasi. Untuk membuat dokumentasi ini, lakukan langkah-langkah berikut.

cd rails-app-anda
rake rails:freeze:gems
rake doc:rails

Hasil perintah di atas akan menghasilkan dokumentasi pada direktori doc/api. untuk membaca dokumentasi, buka dengan web browser berkas doc/api/index.html .

Sabtu, 14 November 2009

How to Update Ruby on Rails

Saya asumsikan anda melakukan instalasi Rails menggunakan RubyGems dan terhubung ke internet. Untuk melakukan update atau upgrade Ruby on Rails, cukup ketikkan perintah berikut:

gem update rails

Setelah selesai, dua langkah ini bersifat opsional / tidak wajib.
1. lakukan update juga pada aplikasi Rails anda.

cd your-rails-app
rake rails:update

2. Dikarenakan RubyGems menyimpan versi lama library-library Rails anda, maka untuk hapus versi yang lama dapat dilakukan dengan cara.

gem cleanup

Senin, 09 November 2009

Tips untuk Belajar Ruby on Rails

Setelah beberapa waktu lalu saya membuat artikel bagaimana cara instalasi Ruby on Rails, ada beberapa tips dari saya untuk mempelajari Ruby on Rails yang merupakan web application framework yang dibuat oleh David Heinemeier Hansson:

  1. Kunjungi situs http://wiki.rubyonrails.org/ dan http://guides.rubyonrails.org/. Kedua situs tersebut merupakan situs resmi dari RoR dan sangat mudah dipahami oleh pemula.
  2. Jika sudah mulai membuat sebuah aplikasi dengan RoR, sering-sering kunjungi http://api.rubyonrails.org. Sesuai namanya, situs tersebut menjelaskan Application Programming Interface (API) pada RoR.
  3. Untuk meningkatkan kualitas sebagai Ruby on Rails programmer, kunjungi http://railscasts.com/. Situs tersebut menyediakan video-video yang bermanfaat untuk meningkatkan kemampuan RoR anda.
Semoga bermanfaat!

Minggu, 01 November 2009

Why Not in English?

In Indonesia, Ruby Programmer's still quite rare compared to PHP or Java programmers. In addition, sites or blogs about Ruby programming language that written in Indonesian is still quite rare too, maybe under ten sites. So it is difficult for the beginner who is less fluent in English language learning Ruby. That's why I write this blog in Indonesian language with the aim to help programmers in Indonesia who are beginners to learn about Ruby programming language as well and all things related to Ruby. :-)

About Railsmine

This blog is dedicated for Ruby community in Indonesia written in Indonesian language. Why? Because most people in Indonesia do not speak fluent English and not many blogs about Ruby written in Indonesian language too.

Railsmine is inspired by Ruby Inside.

About Me
profile pic
I'm a big fan of Slackware Linux, blogger and technologist who works with Ruby on Rails and JQuery to develop Bukalapak. I'm currently helping my friend to develop his web app as my side project. Feel free to contact me: kunto.aji.kr at gmail dot com.