July 18, 2007

Programming Ruby Book

Referensi buku buat yang pengen belajar Programming Ruby.
Ruby is a wonderfully powerful and useful language, and whenever I'm working with it this book is at my side.
-- Martin Fowler, Chief Scientist, ThoughtWorks

Programming Ruby
The Pragmatic Programmer's Guide, Second Edition
Dave Thomas, with Chad Fowler and Andy Hunt
Ruby is a wonderfully powerful and useful language, and whenever I'm working with it this book is at my side.
-- Martin Fowl,

Programming Ruby
The Pragmatic Programmer's Guide, Second Edition
Dave Thomas, with Chad Fowler and Andy Hunt

Pages: 864
ISBN: 0-9745140-5-5
Date: Oct 2004
Resources: CodeErrata
Post link to: del.icio.us

Programming Ruby (2nd. Ed.)
The definitive reference manual for Ruby programmers.
Up-to-date and expanded for Ruby version 1.8.
Complete documentation of all built-in classes, modules, and methods.
Complete descriptions of all 98 standard libraries.
200+ pages of new content in this edition.
NEW: Learn more about Ruby's web tools, unit testing, and programming philosophy.
Excerpts

Table of Contents
Containers, Blocks, and Iterators
Package Management with RubyGems
Class Hash reference An example from the Built-in Classes and Modules chapter.
Standard Library excerpts Selected pages from the Standard Library chapter.

Now Shipping!
Purchase
Buy paper book
Buy PDF now (PDF FAQ)
+
Buy book + PDF combo now
Top of Form
(FAQ)
Bottom of Form

About This Book
Would you like to go from first idea to working code much, much faster? Do you currently spend more time satisfying the compiler instead of your clients or end users? Are you frustrated with demanding languages that seem to get in your way, instead of getting the work done? If so, then we've got a language and book for you!
Ruby is a fully object-oriented language, much like the classic object-oriented language, Smalltalk. Like Smalltalk, it is dynamically typed (as opposed to Java or C++), but unlike Smalltalk, Ruby features the same conveniences found in modern scripting languages such as Perl and Python.
The combination of the power of a pure object-oriented language with the convenience of a scripting language makes Ruby a favorite tool of intelligent, forward-thinking programmers.
The Pickaxe book, named for the tool on the cover, is the definitive reference to this highly-regarded language. This Second Edition has more than 200 pages of new content, and substantial enhancements to the original, covering all the new and improved language features of Ruby 1.8 and standard library modules.
The Pickaxe contains four major sections:
An acclaimed tutorial on using Ruby.
The definitive reference to the language.
Complete documentation of all built-in classes, modules, and methods.
Complete descriptions of all 98 standard libraries.
Readers of the First Edition will appreciate the new and expanded content, including: enhanced coverage of installation, packaging, documenting Ruby source code, threading and synchronization, and enhancing Ruby's capabilities using C-language extensions. Programming for the world-wide web is easy in Ruby with new chapters on XML/RPC, SOAP, distributed ruby, templating systems and other web services. There's even a new chapter on unit testing.
This is the definitive reference manual for Ruby, including a description of all the standard library modules, a complete reference to all built-in classes and modules (including more than 250 significant changes since the First Edition). Coverage of other features has grown tremendously, including details on how to harness the sophisticated capabilities of irb, so programmers can dynamically examine and experiment with running code.

July 09, 2007

CDMA

CDMA, Pesaing Baru FDMA dan TDMA pada Sistem Komunikasi Bergerak.
Penjualan ponsel berbasis CDMA kabarnya terus meningkat. Selain karena faktor biaya pulsa yang murah, apa lagi sih keunggulan teknologi multiple access satu ini?

Sistem yang multiple access (MA) adalah sistem yang dapat melayani banyak pelanggan (user) secara bersama-sama (simultan). Agar terjadi multiple access, maka harus tersedia kanal-kanal/saluran-saluran yang jumlahnya lebih dari satu. Jika pada saat yang sama terdapat 10 pelanggan yang ingin dilayani, maka diperlukan kanal sebanyak 10 buah pula. Dengan sistem multiple access yang bagus, tidak akan terjadi antrean panjang dan macet. Secara umum, bisa saja sistem multiple access diterapkan dalam berbagai bidang kehidupan, seperti sistem pembayaran di loket, teller bank, dan sebagainya. Tapi pada kenyataannya, penerapan pada bidang telekomunikasilah banyak memunculkan multiple access baru. Tren sistem telepon seluler mendongkrak pemakaian access untuk sistem komunikasi bergerak (mobile system). Kemajuan yang dicapai oleh seluler bahkan melebihi sistem komunikasi lain seperti telepon cordless (sekarang juga lagi musim), paging (yang dulu ngetop tahun 1970-1980-an), dan PCS (personal communication standard). Perkembangan telepon seluler yang kian menjadi-jadi dengan berbagai fasilitas ciamik yang andal (semacam MMS, mobile Internet, dan lain- lain), menyebabkan semakin getolnya pencarian-pencarian sistem multiple access baru yang lebih tanggap dan cepat dalam melayani banyak pelanggan Hingga saat ini dua teknik pendahulu yang masih digunakan adalah FDMA (frequency division multipleaccess) dan TDMA (time division multiple access). Pengguna teknik FDMA cukup banyak juga. Salah satunya adalah telepon seluler berbasis AMPS, yang di Indonesia dipakai pada awal munculnya telepon seluler. AMPS (advanced mobile phone system) adalah sistem seluler Amerika Serikat pertama (dan analog) yang dikembangkan oleh AT&T Bell Laboratories pada akhir tahun 1970-an. Pemakai teknik TDMA pun juga cukup banyak. Salah satunya adalah telepon seluler berbasis GSM, yang sekarang lagi marak di Indonesia. GSM yang mulanya adalah singkatan dari Groupe Spe’cial Mobile diganti menjadi Global System for Mobile Communication untuk keperluan pemasaran yang lebih luas. Ia merupakan standar seluler digital generasi kedua yang dikembangkan oleh Eropa untuk menyatukan sistem selulernya. Bermula dengan dikenalkan pada pasar Eropa tahun 1991, kini GSM telah menjadi standar terpopuler di dunia untuk radio seluler baru dan peralatan komunikasi pribadi. Karena kepopuleran itulah, teknik TDMA ikut terdongkrak dan seolah "kagak ade matinye".
Akan tetapi waktu terus berjalan, dan pesaing-pesaing baru selalu akan muncul untuk mengganti pemain lama. Salah satunya adalah teknik CDMA (code division multiple access). Dengan lebih banyak kelebihan (dan sedikit kekurangan), teknik yang diusung oleh US Narrowband Spread Spectrum (IS-95) ini, mulai berkembang dan terus berkembang. GSM yang tidak tinggal diam, tentu akan berusaha mempertahankan takhtanya. Kita saksikan saja persaingan yang kian marak ini dan barangkali untuk beberapa dekade, kita sementara menjadi penonton saja.

FDMA
FDMA adalah sistem multiple access yang menempatkan seorang pelanggan pada sebuah kanal berbentuk pita frekuensi (frequency band) komunikasi. Jika satu pita frekuensi dianggap sebagai satu jalan, maka FDMA merupakan teknik "satu pelanggan, satu jalan". Pada saat pelanggan A sedang menggunakan jalan itu, maka pelanggan lain tidak dapat menggunakan sebelum pelanggan A selesai. Jadi, kalau dalam waktu yang bersamaan ada 100 pelanggan yang ingin berkomunikasi dengan rekannya, maka sudah tentu diperlukan 100 pita frekuensi. Kalau setiap pita memerlukan lebar 30 Kilo Hertz (kHz) dan frekuensi yang digunakan berawal dari 890 Mega Hertz (MHz), maka:
• Pita frekuensi kanal 1 mulai dari 890 MHz hingga 890,030 Mhz
• Pita frekuensi kanal 2 mulai dari 890,030 MHz hingga 890,060 MHz
• Pita frekuensi kanal3 mulai dari 890,060 MHz hingga 890,090 MHz • dan seterusnya. Sedangkan lebar total seluruh pita yang digunakan adalah: 100 x 30.000 Hz = 3.000.000 Hz = 3 MHz. Artinya, jika frekuensi yang digunakan mempunyai batas bawah 890 MHz, maka batas atasnya adalah 893 MHz. Akan tetapi, frekuensi yang tersedia untuk komunikasi bergerak dibatasi oleh peraturan yang ada karena frekuensi-frekuensi lain pasti digunakan untuk jatah keperluan yang lain pula. Sementara jatah frekuensi yang ada pun harus dibagi antarpenyelenggara telepon seluler. Karena itu, untuk memperbanyak kapasitas dengan jumlah kanal yang terbatas, digunakan trik-trik tertentu sesuai dengan strategi si penyelenggara.

TDMA
TDMA Berbeda dengan FDMA yang memberikan satu pita frekuensi untuk dipakai satu pelanggan, TDMA memberikan satu pita frekuensi untuk dipakai beberapa pelanggan. Jadi kanal-kanal komunikasi dirupakan dalam bentuk slot-slot waktu. Slot waktu adalah berapa lama seorang pelanggan mendapat giliran untuk memakai pita frekuensi. Satu slot waktu digunakan oleh satu pelanggan. Slot-slot waktu ini dibingkai dalam satu periode yang disebut satu frame. Jadi misalkan ada 10 pelanggan yang masing-masing adalah A, B, C, D, E, F, G, H, I, dan J, maka dalam satu frame terdapat 10 slot waktu yang merupakan giliran tiap pelanggan untuk menggunakan pita frekuensi yang sama. Proses komunikasi multi-access dilakukan dengan menjalankan frame ini berulang- ulang sehingga akan muncul urutan giliran pemakaian saluran seperti:A-B-C-D-E-F-G-H-I-J-A-B-C-D-E-F-G-H-I-J-A-B-C-dan seterusnya. Tentu saja harus ada pembatasan jumlah pelanggan yang menggunakan satu pita frekuensi ini. Jika tidak dibatasi, periode frame akan terlalu panjang dan akibatnya timbul komunikasi terputus-putus yang mengganggu pembicaraan. Karena sifatnya yang tidak kontinyu (tidak terjadi pemakaian pita frekuensi terus menerus oleh satu pelanggan dalam satu periode pembicaraan), maka teknik TDMA hanya dapat mengakomodasi data digital atau modulasi digital. Sehingga sinyal-sinyal analog yang akan dikirim, harus diubah menjadi format digital dahulu.

CDMA
Teknik CDMA adalah temuan yang lebih baru dibandingkan dengan FDMA dan TDMA. Teknik CDMA berawal pada tahun 1949 ketika Claude Shannon dan Robert Pierce (yang banyak jasanya untuk kemajuan teknologi telekomunikasi saat ini) menyampaikan ide dasar CDMA. Teknik ini merupakan temuan yang brilian karena kanal yang satu dengan lainnya tidak dibedakan dari frekuensi/FDMA atau waktu/TDMA yang secara awam lebih mudah dipahami, melainkan dengan perbedaan kode. Jadi pada CDMA, seluruh pelanggan menggunakan frekuensi yang sama pada waktu yang sama. Dalam diagram blok CDMA tampak bahwa data input dari satu pelanggan dikalikan dengan salah satu dari banyak kode PN (pseudo noise). Jumlah kemungkinan kode yang dihasilkan oleh generator kode PN identik dengan jumlah kanal yang disediakan. Jika generator kode PN mampu menghasilkan 100 kode, maka sebanyak itu pula kanal yang diperoleh. Oleh modulator hasil perkalian antara input data dengan kode PN ditumpangkan pada sinyal RF (radio frequency) agar dapat dikirim lewat udara. Di penerima, demodulator memisahkan sinyal pesan dari sinyal RF yang ditumpanginya. Sinyal pesan yang mengandung kode ini dicocokkan dengan kode PN di penerima. Sinyal pesan akan dipisahkan dari kode dan diteruskan jika kode PN pada sinyal masuk sama dengan kode PN pada penerima. CDMA (juga disebut DSSS/ direct sequence spread spectrum) merupakan salah satu dari dua jenis teknik murni spread spectrum multiple access (SSMA). Jenis lainnya dikenal sebagai FHMA (frequency hopping spread spectrum). Kedua jenis ini tergolong SSMA karena sinyalnya tersebar (spread) pada spektrum pita frekuensi yang lebar. Pada CDMA, penyebaran sinyal diperoleh akibat proses perkalian data input (yang mempunyai waktu perubahan lambat) dengan kode PN (yang mempunyai waktu perubahan cepat). Walaupun pita frekuensinya lebar, tegangan sinyal yang dihasilkan sangat kecil, menyerupai noise (bising) yang selalu menyertai gelombang radio. Sehingga apabila dimonitor oleh penerima lain, sinyal yang dipancarkan oleh pengirim berbasis CDMA hanya berupa noise (seolah-olah menunjukkan ketiadaan sinyal pancar) yang tidak mengganggu sinyal lain. Sifat CDMA yang lain adalah kemampuannya untuk tahan terhadap jamming (penutupan oleh sinyal yang lebih kuat) pada pita frekuensi sempit. Hal ini terjadi karena jamming pada pita frekuensi sempit itu tidak akan mengganggu sinyal-sinyal CDMA yang tersebar di pita frekuensi lain. Biar begitu jika diterapkan pada telepon seluler, CDMA mempunyai masalah yang disebut near-far problem. Masalah ini terjadi akibat pemakaian pita frekuensi yang sama pada waktu yang sama. Akibatnya, pelanggan yang paling dekat dengan base station (BTS) akan mendominasi BTS karena sinyalnya diterima (oleh BTS) paling besar dibandingkan dengan pelanggan lain yang jaraknya lebih jauh. Bagi pelayanan yang baik, hal itu tidak diharapkan. Untuk mengatasinya dipakailah teknik power control. Teknik ini menyebabkan BTS memerintahkan ponsel pelanggan untuk mengurangi daya pancar (secara otomatis) ketika sinyalnya diterima paling besar. Sehingga seluruh pelanggan di areal cakupan BTS akan diterima dengan besar sinyal yang sama.

CDMA dapat dikombinasikan dengan teknik lain untuk menjadi teknik hibrid semacam: FCDMA yang merupakan kombinasi dari FDMA dan CDMA, TCDMA yang merupakan kombinasi dari TDMA dan CDMA. Juga ada DS-FHMA yang merupakan kombinasi dari CDMA/DSSS dengan FHMA. Jadi, dunia komunikasi bergerak akan terus melejit dan melahirkan teknologi terbaru. Tidak hanya fitur-fitur ponsel, tetapi juga dukungansaluran telekomunikasi.< /P>

PRIHADI MURDIYAT Mahasiswa S2 Telekomunikasi Multimedia ITS