Re: [id-ruby] Analisis Mengapa Kultur NULL dibudidayakan?
Arie Kusuma Atmaja [EMAIL PROTECTED] writes: Saya sering melihat di plugin2x, di codes banyak tukang koding, di komunitas rails itu sering membuat field dengan NULL. (bukan dilarang dengan NOT NULL ataupun :null = false). Ada analisis tentang ini? Pro dan kontranya. dbdebunk.com YS.
Re: [id-ruby] [help] svn commit failed
adit [EMAIL PROTECTED] writes: mohon maaf sebelumnya kalo OOT [EMAIL PROTECTED] trunk]$ svn ci -m change appointments app/helpers/appointments_helper.rb svn: Commit failed (details follow): svn: MKACTIVITY of '/svn/dev/!svn/act/47d85b8a-f866-440c-a0f5-4fe2a10f958a': Could not parse response status line (http://svn.blabla.com) Saya tidak pernah memakai svn, tapi dari error messagenya, sepertinya svn berhasil mengirim requestnya, tapi tidak bisa parse status line dari response (status line itu line yang mengandung HTTP response code seperti 404, 403, dll.). Kalau dari komputer yang lain bisa, coba cek apakah webdav servernya di set untuk ALLOW dari komputer tertentu saja. Coba juga cek apakah semua komputer menghubungin webdav server yang sama (siapa tahu hostname-ip address lookup nya di override melalui /etc/hosts). YS.
Re: Balasan: [id-ruby] iAsk: showing UTC as PST with to_pst ?
Arie Kusuma Atmaja [EMAIL PROTECTED] writes: On 11/04/2008, Yohanes Santoso [EMAIL PROTECTED] wrote: Kenapa tidak simpan UTC dan produksi PST seperlunya? (1) Cos I want to save the default time as UTC. I only need to show only reporting systems based by PST. Supaya memastikan saya mengerti jelas apa yang Arie bicarakan, saya akan kasih sebuah contoh menurut pengertian saya. Kalau tidak benar, tolong koreksi: Arie punya sebuah saat. Untuk gampangnya kita bilang bahwa saat yang Arie punya itu adalah saat yang sama dengan saat di mana saya sedang menulis kalimat ini. Saat ini bisa di representasikan sebagai 2008-04-11 13:11 UTC atau 2008-04-11 06:11 PDT (PDT karena sedang daylight savings time, jadinya tidak ada 2008-04-11 06:11 PST). Yang UTC untuk di simpan ke persistent storage dan yang PDT untuk di pakai di reporting. Karena itu Arie mau punya dua method yang mengeluarkan representasi berbeda? ``created_at`` mengeluarkan representasi UTC, dan ``created_at_pacifictime`` mengeluarkan representasi PST atau PDT (tergantung apa ada daylight savings time atau tidak). Kalau nanti ingin mendapatkan representation dalam timezone lainnya, apakah akan ada ``created_at_wib``, ``created_at_wita``, ``created_at_wit``, dst.? YS just in case if in the future team wants to change time again based by European Time. Then what shall we do if we don't have an original time backup. You got any suggestions, nome? Well, I actually haven't tried that new rake thing as tzinfo's been included in rails edge (inside code, course it's super easy only to do rake time bla bla on Terminal or outside the app but that's only impressing business guys and they'll say: whoaaa fancy looking, oooh it's cute, arie, such adorable bla bla bla ||= which usually turned to be unexpected I/O to me) -_- YS
Re: [id-ruby] var = nil if false; p var.nil? #= true | bug of the day ?
Arie Kusuma Atmaja [EMAIL PROTECTED] writes: I tested it using Ruby 1.8.6 patch 111 and also Ruby 1.9.0 (revision 15968). var = nil if false var.nil? #= true I actually saw it from tobi's blog, then I discussed with a perler who loves ruby as well, here's a copy paste. (Bottomline: is it a feature or a bug) 12:57:18 PM Rie!: how come it's not a bug :-B var should be undefined local var Feature. Mekanisme yang sama memungkinkan expresi ini: def foo a = a || 2 end Untuk assignment, the destination variable selalu dibuat dahulu dan bound ke value ``nil`` jika sebelumnya tidak ada, sebelum mengevaluasi expresi di sisi kanan. Maka dari itu, reference ke ``a`` di sisi kanan tidak erroring out. 12:57:51 PM edpratomo: try to post that to ruby-talk :-) i believe you will get it's not a bug replies It's not a bug. 12:56:01 PM Rie!: it's just like the stupid param variable is still available outside of the block/yield Contoh? YS
Re: Balasan: [id-ruby] iAsk: showing UTC as PST with to_pst ?
Arie Kusuma Atmaja [EMAIL PROTECTED] writes: On 11/04/2008, Yohanes Santoso [EMAIL PROTECTED] wrote: Supaya memastikan saya mengerti jelas apa yang Arie bicarakan, saya akan kasih sebuah contoh menurut pengertian saya. Kalau tidak benar, tolong koreksi Exactly. Correct. Kalau nanti ingin mendapatkan representation dalam timezone lainnya, apakah akan ada ``created_at_wib``, ``created_at_wita``, ``created_at_wit``, dst.? could be, but then i'm thinking of how to organize my codes to be much better and cleaner though, or I'll usually be strict to the team by asking : hey will you change time zone again? :( otherwise i'll just make it as a default one PST only. Jadinya, apakah Arie akan buat methods seperti: add_decimal add_hexadecimal add_octal Di mana: 4.add_decimal(6) # == 10 4.add_hexadecimal(6) # == 0xa 4.add_octal(6) # == 012 Capek dong... YS
Re: [id-ruby] iAsk: showing UTC as PST with to_pst ?
Edwin Pratomo [EMAIL PROTECTED] writes: --- Edwin Pratomo [EMAIL PROTECTED] wrote: just found this: http://tzinfo.rubyforge.org/ rgds, Edwin. Unfortunately, timezone definition is influenced more by political than natural reasons. So, using tzinfo, which has its own timezone database, separate from the system's database, will introduce yet another thing to maintain. When the US timezone definitions were changed two years ago, we had to patch hundreds of Windows machine and also JRE instances because Sun's JRE used a separate timezone database. This unnecessarily doubled up the maintenance effort. YS.
Re: [id-ruby] iAsk: showing UTC as PST with to_pst ?
Rie! [EMAIL PROTECTED] writes: Does anybody out there know how to change UTC to PST? I've been banging my heads on the wall since yesterday and what I know is only set time to PST instead of UTC. Please help.. m:x arie$ script/console Loading development environment (Rails 2.0.2) Time.zone = #TimeZone:0x211c608 @utc_offset=-28800, @name=Pacific Time (US Canada) Time.zone.now = Thu, 27 Mar 2008 03:37:05 PDT -07:00 Time.now = Thu Mar 27 18:37:21 +0800 2008 a = Time.now = Thu Mar 27 18:41:20 +0800 2008 a.to_pst I only need to show that a in PST instead of UTC. Any ideas? Ruby's Time class understands only two timezones: UTC and local. Local timezone is determined throught the value of the TZ environment variable. It is a very simple class meant as a thin wrapper of the number of seconds since UNIX epoch. There are several alternatives for doing timezone manipulations: 1. DateTime. It's too complex for me. If you know how to use it, good for you. 2. http://tzinfo.rubyforge.org/. Simple to use, but it uses its own timezone database instead of the system's. So, while it can be used portably, it also requires maintenance because timezone information changes. 3. Rails' TimeZone class. Not much experience here. The web site above says that it does not support daylight savings time which makes it useless. 4. And lastly my favourite: http://www.a-k-r.org/ruby-tzfile/. It has a simple interface, and uses the system's timezone information. The disadvantage is it uses its own Time class which means various enhancements to Ruby's Time class is not usable. Still, porting enhancements for Ruby's Time to TZInfo's Time is straightforward enough. As an example, below is my port of the Time#iso8601 enhancement. irb require 'tzfile-instrument.rb' true irb PacificTime = TZFile.create(US/Pacific) PacificTime irb EasternTime = TZFile.create(US/Eastern) EasternTime irb PacificTime.at(EasternTime.now.to_i) Fri Mar 28 13:00:06 PDT 2008 (1206734406+0 -07:00:00 US/Pacific DST) irb EasternTime.now Fri Mar 28 16:00:15 EDT 2008 (1206734415+0 -04:00:00 US/Eastern DST) irb PacificTime.at(EasternTime.now.to_i).iso8601 2008-03-28T13:00:37-07:00 $ cat tzfile-instrument.rb require 'tzfile' module TZFile class Time def iso8601_tzoffset t = current_data.tt.gmtoff sign = t 0 ? '-' : '+' t = t.abs t, sec = t.divmod(60) hour, min = t.divmod(60) return sprintf(%s%02d:%02d, sign, hour, min) end def iso8601 strftime(%Y-%m-%dT%H:%M:%S)+iso8601_tzoffset end end end YS.
Re: [id-ruby] rescue stmt modifier
Edwin Pratomo [EMAIL PROTECTED] writes: foo = %w(foo bar baz).collect do |fn| fn = #{fn}.txt fh = File.open(fn, 'r') rescue next nil fh = File.open(fn, 'r') rescue (next nil) content of #{fn} end YS
Re: [id-ruby] rescue stmt modifier
Yohanes Santoso [EMAIL PROTECTED] writes: Edwin Pratomo [EMAIL PROTECTED] writes: foo = %w(foo bar baz).collect do |fn| fn = #{fn}.txt fh = File.open(fn, 'r') rescue next nil fh = File.open(fn, 'r') rescue (next nil) Alternatively, since no-argument 'next' evaluates similarly as 'next nil': fh = File.open(fn, 'r') rescue next YS
Re: [id-ruby] [ask]xml 2 yaml and vice versa
jadol [EMAIL PROTECTED] writes: salam,.. saya mau menanyakan tentang cara converting xml to yaml, setelah hunting d google saya hanya menemukan script untuk conversi dari yaml to xml saja, Di blog entry yang sama juga dijelaskan xml - yaml. Saya rubah codenya sedikit dengan membuang yang tidak diperlukan: require 'yaml' require 'xmlsimple' good_xml = %{ groceries breadWheat/bread breadQuadrotriticale/bread /groceries} puts doc = XmlSimple.xml_in good_xml pp doc puts doc.to_yaml YS
Re: [id-ruby] 7 alasan saya kembali ke C setelah 2 tahun menggunakan Rails ;-)
Arie Kusuma Atmaja [EMAIL PROTECTED] writes: Yohanes Santoso wrote: Sirajuddin Maizir [EMAIL PROTECTED] mailto:siroj100%40gmail.com writes: our platform are the solution to all computational problem ever exist. silahkan tebak sendiri komunitas yg mana :P Komunitas lisper. Hadiah saya? +1 lisper selalu mendapat sanjungan prestisius dari banyak macam komunitas termasuk perl ruby. Prestasi yang menurut saya overrated karena itu menyebabkan banyak yang masuk ke dunia lisp dengan harapan bahwa kemampuan mereka akan bertambah secara otomatis begitu menginjakkan kakinya di dunia lisp. Osmotic learning, kata kami. Bakar buku dan minum abunya. Ngaku-ngaku dan jadi pandai. Benar-benar jago kalau bisa. Lagipula email saya sebelumnya tidak serius. Tidak ada platform yang bisa menyelesaikan semua computational problems. boleh sambil show up URL nya sebagai pameran di depan id-rubyist ? URL apa? YS.
Re: [id-ruby] 7 alasan saya kembali ke C setelah 2 tahun menggunakan Rails ;-)
Sirajuddin Maizir [EMAIL PROTECTED] writes: our platform are the solution to all computational problem ever exist. silahkan tebak sendiri komunitas yg mana :P Komunitas lisper. Hadiah saya? :) YS.
Re: [id-ruby] [tanya] RESTful rails
Lukman Salim [EMAIL PROTECTED] writes: YS, thanks untuk penjelasan anda. Maksud saya web service adalah seperti yang anda maksud, hanya tambahannya tidak hanya dengan SOAP karena sekarang juga banyak menggunakan RESTful interface. Nah kalau aplikasinya tidak mengekspos web service ke luar, tentunya bahaya seperti GET untuk delete bisa diminimalkan karena seluruh HTTP request ada dalam kontrol developer sendiri, kecuali bila ada non user (seperti robot) yang juga ikut2an menelusuri URL link di halaman web kita. Inipun sebenarnya harusnya dilapisi dengan dialog konfirmasi sehingga tidak benar2 terjadi perubahan dalam sistem (yang seharusnya tidak terjadi pada GET request). Tapi memang kalau kita bisa disiplin dengan prinsip REST untuk setiap aplikasi tentunya ini yang terbaik ya. Saya sekarang hanya mau menegaskan bahwa yang melarang melakukan GET-to-DELETE adalah HTTP spec, bukan REST principles, karena GET adalah HTTP construct dan sudah di spec untuk menjadi safe method. Memang, jika dev punya total control ke bagaimana service itu di-access, anda bisa violate HTTP spec seenaknya. Tapi pertanyaannya adalah kenapa lakukan itu. Jika tetap mengikuti HTTP spec dan nanti kebutuhan bertambah sehingga perlu menambah cache atau search engine atau barang2x lainnya, anda bisa memakai off-the-shelf products seperti squid, lucane, dll. YS.
Re: [id-ruby] [tanya] RESTful rails
Aditya Agustyana [EMAIL PROTECTED] writes: tetapi bukankah sebetulnya HTTP DELETE PUT pun belum banyak diadopsi oleh browser ?, Untuk HTTP webservice yang dimaksudkan untuk dipakai oleh web browser, biasanya disediakan alternative lain untuk DELETE dan PUT dengan di-tunnel melalui POST. Kotor dan sayangnya tidak ada cara standard untuk melakukan tunelling ini. Tapi bisa dimengerti sebagai langkah terpaksa. BTW, browser sekarang bisa melakukan PUT dan DELETE melalui XHR. Tapi tentunya ini membutuhkan JS support. di buku tersebut ruby script /generate scaffolding_resouce projects-nya pun ketika melakukan delete update sebetulnya hanya memanipulasi HTTP_POST, jd dengan kata lain masih menunggu waktu sampai metoda RESTful benar2 full diadopsi oleh browser ? GET, POST, DELETE, PUT adalah methods dari HTTP, bukan dari REST ataupun methods itu berciri RESTful. Tidak semua applikasi yang memakai methoda HTTP sesuai dengan spec HTTP (RFC 2616) itu RESTful, dan juga tidak semua applikasi RESTful memakai HTTP. Memang kadang2x susah membedakan antara HTTP dan REST, tapi mereka tetap dua hal yang berbeda. YS.
Re: [id-ruby] [tanya] RESTful rails
Hendy Irawan [EMAIL PROTECTED] writes: hasilnya apabila web application tidak RESTful adalah ... Because by formal specification di HTTP : GET request itu NON-destructive!! GET being a safe method (RFC 2616 9.1.1) adalah property dari HTTP, bukan dari REST. YS.
Re: [id-ruby] OOT, antara XML-RPC, SOAP dan REST ?
Kukuh TW [EMAIL PROTECTED] writes: Sorry ini OOT, Cuma mau tanya aja buat yang berpengalaman membuaat aplikasi web services, kira-kira lebih banyak digunakan mana, Antara XML-RPC , SOAP dan REST ? REST bukan sebuah product seperti XML-RPC dan SOAP, tapi sebuah architecture design, sebuah philosophy. Sedangkan XML-RPC dan SOAP adalah product concrete. XML-RPC biasa dipakai untuk menerapkan RPC dan SOAP untuk membuat sebuah RPC protocol. Tapi tentunya tidak ada larangan untuk memakai XML-RPC atau SOAP sesuai philosophy REST untuk membuat 'REST-ful' system. Jadinya, saya tidak tahu bagaimana menjawab mana yang lebih banyak digunakan karena mereka bukan hal yang sama. Biarpun begitu, saya utarakan bahwa WWW adalah aplikasi dari philosophy REST. Jadinya kalau mau hitung banyak2xan implementasi, REST pemenangnya. Jika anda mau membuat web services untuk dipakai oleh berbagai macam clients di Internet, implementasikanlah service anda dengan HTTP secara REST-fully. Jika web service anda hanya untuk intranet, lakukanlah apa yang paling praktis. YS.
Re: [id-ruby] [tips+sharing] errtheblog cheatsheet
Arie Kusuma Atmaja [EMAIL PROTECTED] writes: Yohanes Santoso wrote: Kenapa tidak? Untuk image file, preference saya adalah menyimpannya di database, tapi dengan caching di filesystem. Karena berat. Ditulis dengan tanda kutip karena sampai detik tulisan saya ini diketik untuk diposting malam-malam, saya masih belum punya data perhitungan pasti sendiri apakah file image yang ditaruh di file system lebih cepat diakses ketimbang ditaruh di database, apa yang saya sebut di dua kata di awal alinea ini adalah berdasarkan perasaan. So feel free to shake it. Tentunya resources yang tersedia di _local_ filesystem lebih gampang diambil daripada di _remote_ database. Ini bukan hal yang mengejutkan karena ini adalah prinsip dasar caching: resources yang sering dipakai atau mahal untuk diambil disimpan di tempat yang lebih murah untuk diambil. Keuntungan menyimpan semua images di database adalah maintenance jadi murah, misalnya hanya perlu backup satu tempat, yaitu database. Akses jadi lebih mahal, tapi bisa di-counter dengan caching. Dengan begitu data tetap di satu tempat, dan network traffic dan database load tidak tinggi. Yang saya pernah lihat malah ada di server pakai NFS segala (jujur saya belum tau banyak sampai detil2nya sih, intinya dikasihtau kalau untuk direktori image bahkan pakai di-mount dulu (dipisah-pisah) supaya tidak memberatkan kinerja satu mesin skrip yg sedang bekerja). Kenapa bisa disebut data tetap di satu tetap sehingga load tidak tinggi? Bukankah justru malah jadi lebih tinggi? Data di satu tempat, di dalam database, tapi berhubung setiap applikasi instance caching di local filesystem mereke sendiri, network traffic dan database load berkurang. * Write tables to cache data for reports that span months and years. It.s much faster than re-generating a year.s worth of reports every time a page is loaded. Data yang sudah tua mungkin juga bisa dipindahkan ke archive database. Ehm, ini dia fitur mantap. Sudah pernah terpikir gak ya tentang desain business process-nya, mis. untuk project CMS aja misalkan, untuk data yang tua, mis. sudah berusia 2 sampai 3 tahun lalu, itu digenerate otomatis ke HTML biasa (dengan tetap mempertahankan kemampuan easy search dan dapat secara akurat seperti halnya pakai database biasa). itu satu. yang kedua, file image yang sudah tua juga dapat di archive. Apa yang dilakukan dengan data yang sudah tua tentunya tergantung domainnya. Di industri saya, ada hukum bahwa semua data harus disimpan setidak2xnya 7 tahun. Tapi mungkin di domain lainnya data2x tua bisa di-summarise seperti Arie tulis diatas dan aslinya dibuang. YS.
Re: [id-ruby] REST lagi
Hendy Irawan [EMAIL PROTECTED] writes: Mencoba mengembalikan lagi diskusi REST Kalo sudah make 4 method HTTP tersebut sesuai dengan fungsinya... Bisa dibilang aplikasi tersebut sudah selangkah (?) menuju REST Ya, menuju. Apalagi dengan mengimplementasikan Atom Publishing Protocol, sudah dipastikan aplikasi tersebut REST-oriented karena Atom sendiri RESTful... (ato RESTish?) Menggunakan sesuatu yang RESTful di dalam sebuah implementasi tidak menyebabkan implementasi itu automagically jadi RESTful juga. Malah, seperti saya sebut di thread lainnya, implementasi yang menggunakan sesuatu yang traditionally tidak diasosiasikan dengan REST-ness, seperti XML-RPC atau SOAP, tetap bisa jadi RESTful. Ini bukan mengatakan bahwa APP tidak butuh diadopsi. APP adalah protocol yang bagus dibuat oleh orang2x yang benar2x mengerti REST. Adopsinya juga makin meningkat dan applicabilitynya lebih daripada hanya sekedar untuk feed. Contohnya, untuk project pribadi saya sedang membuat APP gateway ke IMAP server. Tapi yang dimaksud adalah APP tidak bisa mencakup semua process di sebuah system: tidak semua process bisa di-reduce in terms of list/collection manipulation. YS.
Re: [id-ruby] Re: OOT searching free darcs hosting was Re: blast...
Arie Kusuma Atmaja [EMAIL PROTECTED] writes: Yohanes Santoso wrote: Free darcs hosting? Apa artinya? Kan cuma perlu tempat untuk taruh file? Bahkan plain hostingpun bisa dipakai. Facilitas special apa yang kamu cari? ya fasilitas2x seperti yang biasa svn users (dan segala vcs2x user lain) dapatkan gratis plus segala kemudahan2xnya. kalau sudah punya plain hosting sendiri atau server sendiri sih saya gak usah cari-cari lagi yo. I just wish that rubyforge.org and/or sourceforge support other than svn and cvs, so that I can choose whatever cvs I want/like (like darcs) :( Maksud saya adalah, kenapa tidak bisa pakai free web hosts seperti yang ditulis di: http://www.free-webhosts.com/ karena yang dibutuhkan hanya file upload and download capabilities. Tidak butuh seperti CVS server. Apakah ada pertimbangan lainnya yang saya tidak sadar? YS.
[id-ruby] Re: git+bzr
Hendy Irawan [EMAIL PROTECTED] writes: Ini skema Git: app/ == parent folder. berisi git repo+branch+working copy * .git/ == repo + semua branch, dalam format filesystem git * . == working tree Ini Bazaar dalam modus normal: app/ == parent folder. berisi branch bazaar * .bzr/ == branch data + repository untuk branch ini juga * .. == working tree Ini Bazaar dalam modus repository: app/ == superparent folder. * .bzr/ == repository+branch data utk semua branch * branch1/ == working tree untuk branch1 * branch2/ == working tree untuk branch2 * branch3/ == working tree untuk branch3 Diagram ini sangat membantu. +1 Untuk melengkapi: arch: /somewhere/archive/ (sebuah repository) /somewhere/else/branch1/ == working tree untuk branch1 /somewhere/else/branch1/{arch} == branch data untuk branch1 /somewhere/else/branch2/ == working tree untuk branch2 /somewhere/else/branch1/{arch} == branch data untuk branch2 Untuk membuat branch baru, kamu tag dari existing branch dan checkout branch baru itu. Bisa cp -a tapi harus rubah beberapa hal manually. Sejak terakhir kali Hendy menyebut bzr beberapa bulan yang lalu, saya berpikir mungkin saya perlu lihat2x lagi dunia DVCS karena kelihatannya arch memang sudah tua dan gampang dipakai karena saya sudah terbiasa (saya sudah pakai itu 6 tahun). Siapa tahu ada improvement lainnya. Maka yang pertama lainnya saya lihat adalah darcs dan ternyata jadi suka karena gampang dan 'elegant' karena semua branches dari semua projects sama derajatnya. Sekarang saya hampir exclusively memakai darcs. Masih ada beberapa project di arch, tapi mereka inactive ones. Perkenalan darcs bagi yang masih mengikuti thread yang panjang ini: Darcs sendiri tidak mempunyai konsep traditional hierarchical branches di mana ada sebuah mainline branch, yaitu trunk, dan branches, sub-branches, sub-sub-branches, dst. 'Branch' di darcs adalah kumpulan patches. Branch1 mungkin ada patches foo, bar. Branch2 ada patches foo, bob, buz. Semua branch bisa di merge sama branch lainnya, bahkan dari project yang berbeda. Misalnya sebuah branch di project Firefox bisa di merge dengan branch lain di project MSWord. Hasilnya mungkin tidak masuk akal, tapi process mergingnya tidak beda dengan merging branches dari project yang sama. Jadinya untuk darcs: a_branch/== working tree a_branch/.darcs/ == repository yang mengandung patches yang membentuk sebuah branch Buat branch baru: cp -a a_branch another_branch YS
Re: [id-ruby] Newbie tanya ruby
Mulyadi Asyauqi [EMAIL PROTECTED] writes: Hi All, Aku pingin belajar ruby neh, ada yang bisa kasih pencerahan gak, aku ada beberapa pertanyaan : 1. Kalo aku mo belajar ruby di linux kira-2 apa saja yang harus aku lakukan? Mungkin bisa mulai dari salah-satu dokumen yang disebut di: http://www.ruby-lang.org/id/documentation/ YS.
Re: [id-ruby] [OOT-Hendy-bzr-lagi] was Toombila
Hendy Irawan [EMAIL PROTECTED] writes: bzr branch trunk kantor ... bzr branch kantor kantor-rahasia ... bzr branch trunk edge-banget cd edge-banget bzr merge ../kantor ... o iya, yg ini malah lupa ngereply *d'oh* tanya: itu kalau branch begitu hen, lah tapi kan source code kantor rahasia setelah di push tetepan ada di server juga trus semua jadi tetap bisa lihat dong? ato gw salah? cmiiw iya... salah :) di Bazaar, setiap branch itu ya satu branch sendiri. Jadi nggak kayak git, di mana satu repository bisa berisi puluhan bahkan ratusan branch. Kalo di Bazaar, satu branch ya satu URL. Jadinya sepertinya git sama seperti arch: membedakan antara repository dan branch. Ini juga mirip kebanyakan VCS lainnya karena memang ini pandangan traditional dari sejak jaman CVS. Sedangkan bazaar sepertinya meniru darcs dimana satu directory/repository adalah satu branch. Di darcs, membuat branch adalah: cp -a kantor kantor-rahasia. YS.
Re: [id-ruby] [OOT-Hendy-bzr-lagi] was Toombila
Hendy Irawan [EMAIL PROTECTED] writes: Yohanes Santoso wrote: iya... salah :) di Bazaar, setiap branch itu ya satu branch sendiri. Jadi nggak kayak git, di mana satu repository bisa berisi puluhan bahkan ratusan branch. Kalo di Bazaar, satu branch ya satu URL. Jadinya sepertinya git sama seperti arch: membedakan antara repository dan branch. Ini juga mirip kebanyakan VCS lainnya karena memang ini pandangan traditional dari sejak jaman CVS. Sedangkan bazaar sepertinya meniru darcs dimana satu directory/repository adalah satu branch. Di darcs, membuat branch adalah: cp -a kantor kantor-rahasia. YS. Saya tidak setuju dengan deskripsi di atas, kalo git mirip kebanyakan CVS lainnya dari zaman CVS. Subjectnya dari mirip kebanyakan CVS lainnya dari zaman CVS bukan git, tapi adalah perbedaan antara repository dan branch. Tepatnya, dari konteks percakapan, adalah: lokasi repository dan lokasi sebuah branch instance itu berbeda, mirip kebanyakan VCS lainnya dari jaman CVS. YS.
Re: [id-ruby] [Lowongan Rubyist] Ada yang yang mau saya refer ke Luar Negri?
Arie Kusuma Atmaja [EMAIL PROTECTED] writes: Klik OP3 / ShotCode web: www.shotcode.com blog: blog.shotcode.com wap: mob.shotcode.com Kalau berminat, jangan tunggu atau mikir macam-macam lagi, langsung aja hubungi saya (boleh lewat email atau telpon saja langsung). Don't worry, be happy, it's time to fly around this planet, pals! Mas, ganti kerjaan jadi makelar pekerjaan ya? YS.
Re: [id-ruby] [tanya || titipan] apakah symbol di GC?
Arie Kusuma Atmaja [EMAIL PROTECTED] writes: apakah symbol di GC? Tidak di ruby yang sekarang. YS.
Re: [id-ruby] Restful API
Herryanto Siatono [EMAIL PROTECTED] writes: Julius, REST.FUL itu asal katanya dari REST (Representational State Transfer), basically simple XML over HTTP, each operation is identified by a unique URL. Apa basis definisi itu? RESTful API tidak harus pakai XML atau HTTP. HTTP adalah satu (bukan satu2xnya) protocol yang menunjang implementasi RESTful API. Lalu juga phrase yang benar adalah RESTful API, bukan REST API karena 1. APInya mempunyai sifat2x yang memenuhi constraintnya REST. 2. REST adalah sebuah philosophy dan style, bukan sebuah specific product. Kalau principles dari REST di-terapkan, kamu bisa dapat specific product yang bisa disebut REST-ful API. Constraintnya yang harus dipenuhi ada 4: quote [1] identification of resources; [2] manipulation of resources through representations; [3] self-descriptive messages; and, [4] hypermedia as the engine of application state. /quote -- section 5.1.5 in http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm More about REST: http://en.wikipedia.org/wiki/REST Entry Wikipedia ini lupa membahas constraint #4. http://microjet.ath.cx/WebWiki/2007.05.11_Hypermedia%2cTheForgottenAspectOfREST.html -Original Message- From: id-ruby@yahoogroups.com [mailto:[EMAIL PROTECTED] On Behalf Of julius sirait Sent: 03 August 2007 10:42 To: id-ruby@yahoogroups.com Subject: [id-ruby] Restful API Halo Teman2 id-ruby, Kami lagi mau bikin API buat web app yang kami develope. 1. ada yang pernah bikin API buat web app? bisa share gak pengalamannya? khususnya dengan rails. Apa aja yang harus dipertimbangkan. Susah untuk menyebut apa saja yang harus dipertimbangkan. Sebab pertimbangannya begitu banyak dan sudah tidak dipikirkan secara sadar lagi. Satu yang saya ingat dan tetap sadar adalah efisiensi protocol. Maksud saya bukan effisiensi as in size lalu compress semua communication. Tapi maksudnya adalah economy of message exchanges. Anda harus mengindentifikasikan frequently-used functionality dan buat message set anda sebegitu rupa untuk memenuhi functionality itu dengan minimum message exchanges. Contoh: misalnya ada shopping cart API. Functionality yang paling sering dilakukan adalah menyediakan daftar belanjaan berikut jumlah masing2x item dan harganya, dan mungkin harga total. Semua informasi ini bisa didapatkan hanya dengan satu kali exchange. Itu efisien. API yang tidak efisien mungkin mengharuskan anda bolak-balik ambil harga, jumlah dan daftar secara terpisah. 2. jujur, saya gak bisa bilang ngerti maksudnya restful API. apa itu restful API? apa kelebihannya? Simple and straightforward. You can implement one with the minimum number of external libraries. Easier debugging. Automatically scalable (at least the frontend, the backend is still constrained by decisions made in your implementation). YS.
Re: [id-ruby] Restful API
julius sirait [EMAIL PROTECTED] writes: thanks yah semua. saya gak pernah pake SOAP. tapi pernah pake xmlrpc. kalau di xmlrpc, kita sebutkan nama methodnya di message yang kita kirim kan. nah kalau di REST, cuman ada verb GET, POST, PUT, dan DELETE. Nah, apakah ke empat verb itu cukup untuk bikin API apa aja? http://bitworking.org/news/201/RESTify-DayTrader
Re: [id-ruby] [ask] xrails
Beberapa system call punya error message yang distinguishable. Misalnya, di linux (dengan glibc), exec() failure error messagenya punya pattern macam ini: prog name: no such file or directory. Jadinya exact error message berguna untuk diagnosa. Coba juga ``strace path to ruby'' untuk memastikan system call yang fail dan juga mungkin ketemu kenapa fail. YS
[id-ruby] Overkill
Ucapan 'overkill' bisa dipakai untuk menggambarkan sebuah solusi yang jauh lebih memadai daripada yang dibutuhkan dan kadang2x malah jadi tidak masuk akal. Contohnya adalah: http://www.ibm.com/developerworks/linux/library/l-gperf.html. Jika membutuhkan ilustrasi untuk disisipi di tengah2x article itu, coba ini: http://www.uoregon.edu/~ftepfer/SchlFacilities/TireSwingTable.html. *geleng2x kepala* Memang, mereka mungkin memilih argument processing untuk contoh aplikasi gperf, tapi yang menakutkan adalah mereka tidak bilang sama sekali bahwa itu contoh. Jadinya seakan2x mereka memang serius memakai gperf untuk argument processing. Dan sepertinya begitu. YS.
Re: [id-ruby] [tanya] pengulangan belongs_to
Aditya Agustyana [EMAIL PROTECTED] writes: coba kayak gini malah error :( Bisa dijelaskan errornya apa. Apakah ada error message? Kalau ada apa itu? Apa yang terlihat di layar? Apakah komputernya hang? Class Avatar def initialize belongs_lists=%w(hair body hand foot face) belongs_lists.each do |bl| belongs_to bl.sym,:foreign_key=bl,:class_name=Asset coba: belongs_to #{bl}_asset.sym,:foreign_key=bl,:class_name=Asset end end end
Re: [id-ruby] Re: Handle duplicate-post di rails
Maaf saya baru sadar bahwa Inung sudah menyediakan solusi yang mirip duluan. Jadinya maaf tidak sebut Inung di email saya yang sebelumnya. Perbedaan terbesar solusi saya dan Inung sepertinya dimana submit ID (atau ':random_string' kalau memakai istilah Inung) di simpan. Di solusi Inung, itu disimpan di dalam session data. Di saya, itu disimpan di sebuah permanent storage yang tidak berhubungan dengan session data. Ini reflektif dari kepercayaan saya bahwa di Internet, komunikasi sebisanya stateless. Jadinya tidak ada concept session di dalam interaksi. YS.
Re: [id-ruby] Symbol di Ruby (Rails)
dhendy ferdian [EMAIL PROTECTED] writes: dari sisi bahasa pemrograman sebenernya apa sih tujuan fungsional dari symbol di ruby, Symbol adalah sebuah object yang mempunyai identitas dan bisa di-access dengan namanya. Identitas sebuah symbol terkait pada namanya. Dua symbol dengan nama yang sama mempunyai identitas yang sama. Satu2xnya property Symbol yang berguna adalah identitasnya. Karena itu, symbol dipakai di berbagai macam applikasi karena applikasi identitas itu universal (bisa dipakai di mana saja). Symbol sendiri tidak special; yang mungkin membuat dia spesial adalah bagaiman penerimanya memperlakukan dia. Tentu saja ini berarti tiap2x penerima memperlakukan symbol object semau masing2x. klo saya baca2 reference ruby banyak yang bilang klo symbol lebih konsisten (menghemat memory) Ya dan tidak. Ya-nya: Dalam implementasi ruby yang sekarang, symbol objects adalah singleton objects. Artinya hanya ada satu symbol object dengan identitas yang sama. Berhubung identitas sebuah symbol object terkait dengan namanya, dan isi sebuah string object bisa melambangkan sebuah nama, maka kamu bisa menyimpan sebuah isi dari sebuah string hanya sekali saja. Ini berbeda dengan string, yang mana biarpun ada dua yang mempunyai isi yang sama, masing2x memakan tempatnya sendiri. Tidak-nya: sayangnya di implementasi ruby yang sekarang symbol tidak pernah di garbage-collect. Jadinya misalnya anda memakai trik di-atas yaitu menaruh isi sebuah string sabagai nama sebuah symbol, biarpun anda sudah tidak membutuhkan isi string itu lagi, tempat yang sudah dipakai untuk menyimap isi itu sebagai namanya symbol object tidak akan dibebaskan. Bagaimanapun juga, saya harap anda tidak terlalu terpukau pada pemikiran di atas. Menurut saya pemikiran itu menyamarkan tujuan (intent) programmer, padahal kemampuan dan kebutuhan meng-komunikasi tujuan itu sangat penting, jauh lebih penting daripada menghemat beberapa bytes. selain itu symbol sebagai literal syntax Nama sebuah symbol bisa ditulis secara literal asal di-prefix dengan ':' dan namanya disusun dengan peraturan yang hampir sama seperti menyusun nama identifier biasa: harus mulai dengan huruf, tidak mengandung spasi, tidak mengandung beberapa karakter tertentu seperti tanda '-', dll. Biarpun nama sebuah symbol yang bisa ditulis secara literal terbatas, tetapi sebenarnya tidak ada batasan penamaan asal tidak dilakukan secara literal. Sebuah symbol bisa dinamakan apa saja. saya ada kebingungan ketika implementasi symbol di rails contoh kasus : --- 1. string atau symbol ? data = {:name = ''my content} data = {'name' = ''my content} - apa perbedaan symbol dengan string (knp ga pake string aja) Saya harap penjelasan saya di atas bisa menjawab pertanyaan ini. - sebaiknya pake string atau simbol? Tergantung. Jika saya mau membuat jelas bahwa 'my content' itu adalah sebuah nama, saya akan pakai {:name = 'my content'}. Jika misalnya saya mendapatkan 'name' dan 'my content' dari pengguna dan saya mau meng-assosiasikan mereka, saya kana pakai {'name' = 'my content'}. Contohnya: example code print Masukan pertanyaan: question = gets print Masukan jawaban: answer = gets p {question = answer} /code Masukan pertanyaan: Siapakah dhendy ferdian? Masukan jawaban: Seseorang yang suka belajar. {Siapakah dhendy ferdian?=Seseorang yang suka belajar.} /example --- 2. kasus ketika definisi layout layout :blog klo diganti string jadi error layout 'blog' --- error - berarti symbol disini digunakan untuk memanggil fungsi Ini terserah pada method layout mau berlaku apa terhadap symbol/string value yang diterimanya. - berarti symbol tidak bisa digunakan untuk pengganti string Terserah method layout. 3. ketika bikin migration create_table :accounts do |t| t.column :name, :string t.column :password, :string end - berarti symbol juga bisa digunakan untuk mewakili nam tabel atau field Terserah method create_table. Untuk saya, ini contoh yang jelek untuk penggunaan symbol karena nama table dan kolom lebih sesuai jika diperlakukan sebagai opaque data karena penamaannya tidak ada relevansinya ke coding. Tablenya bisa disebut 'account', atau 'account1', atau 'account3', atau 'frobitiz', dan code behaviour masih tetap sama. Saya tidak peduli table dan kolumn mau dinamai apa di database selama saya bisa mendapatkan data yang saya perlukan. Sedangkan, saya peduli apakah type column itu :string atau :integer atau macam lainnya karena itu akan mempengaruhi bagaimana saya menerima dan memprocess data. Tentunya ada yang tidak setuju dengan pendapat saya di atas. Tidak ada hukum yang pasti untuk mengatur penggunaan symbol; penggunaan symbol adalah seni. 4. ketika bikin include Article.find(:all, :include = [:comment,:user]) - bisa digunakan dalam
Re: [id-ruby] bazaar
[EMAIL PROTECTED]:~/project/hobo/manual/mine$ bzr --version Bazaar (bzr) 0.15.0 Baguslah akhirnya kelihatannya lumayan fungsional sekarang. Saya sendiri memakai predecessornya, arch, sejak 6 tahun yang lalu, dan kelihatannya Bazaar membuat banyak penyerderhanaan untuk beberapa aktifitas umum. YS.
Re: [id-ruby] gmn supaya efisien
[peringatan: yang baca melalui web interface, set message display optionnya untuk memakai Fixed-Width Font, kalau tidak code2xnya tidak karuan identasinya. yang baca melalui proper email client, set untuk memilih menayangkan content text/plain dan bukan text/html]. Kusno Mudiarto [EMAIL PROTECTED] writes: barusan ketemu ilham, cuman saya nggak tahu seberapa berbahaya. Terlalu bahaya karena merubah fundamental behaviournya NilClass yang diperlukan untuk fail-fast. Kenapa tidak: def fronobitz yield rescue NoMethodError nil end end fronobitz { a[:user][:id] } % if session[:user] % % if session[:user][:id].to_i==params[:id].to_i% nah teman2 ada yg punya solusi gak gmn spy IF-nya cuma satu ajah ? % if session[:user] and session[:user][:id].to_i==params[:id].to_i % atau % if fronobitz{session[:user][:id]}.to_i==params[:id].to_i % yang akan berkelakuan salah karena nil.to_i = 0 kecuali jika tidak ada id yang valuenya 0 (0 is a special value). Merubah kelakuan NilClass seperti ini memang kelihatannya harmless karena contoh2xnya memang trivial. Tapi perlu diingat bahwa contextnya NilClass itu global. Pada umumnya, ide jelek untuk merubah kelakuan standard classes seperti NilClass ini karena kode2x harus bisa setidak2xnya bertumpu pada beberapa behaviour yang concrete. YS.
Re: [id-ruby] closure in java (Re: rompi ruby)
Arie Kusuma Atmaja [EMAIL PROTECTED] writes: I ran into them properly for the first time in Smalltalk where they're called Blocks. Lisp uses them heavily. Essentially a closure is a block of code that can be passed as an argument to a function call. http://www.martinfowler.com/bliki/Closure.html Ini definisi ngawur yang bagi saya terlalu gatal untuk diacuhkan karena tidak ada mention tentang property paling important yaitu captures of surrounding lexical environment padahal dia pake property ini di beberapa contoh di page itu. Property inilah yang membuat closure unik. Kalau tidak passing block of code seperti dia bilang tidak ada bedanya dengan using callback technique. Closure - a closure is a function that captures the lexical environment in which it was created. GuySteele and GeraldSussman in the 1970s discovered the EquivalenceOfClosuresAndObjects? through their invention of the SchemeLanguage. -- http://c2.com/cgi/wiki?TransactionClosureObject Guy Steele dan Gerald Sussman adalah pencipta Scheme, bahasa pertama yang introduce the concept of closure. Ya, Scheme adalah LISP. Martin Fowler seharusnya sebelum sebut Lisp uses them heavily harus research dulu origin dari closure. Bentuk syntaticnya (be it in 'block of code', 'function', 'procedure', 'anon function', 'inner class', etc.) is not important kerena biarpun closure pertama2x dari Scheme, concept itu sudah di-reimplement di banyak bahasa lainnya yang syntaxnya berbeda. Yang penting hanya property of capturing of surrounding lexical environment[1]. Ini dari Scheme language spec, R5RS[2]. Concept yang dijelaskan berikut adalah concept yang di-re-implement di languages lainnya: To each place where an identifier is bound in a program there corresponds a region of the program text within which the binding is visible. The region is determined by the particular binding construct that establishes the binding; if the binding is established by a lambda expression, for example, then its region is the entire lambda expression. Every mention of an identifier refers to the binding of the identifier that established the innermost of the regions containing the use. If there is no binding of the identifier whose region contains the use, then the use refers to the binding for the variable in the top level environment, if any (chapters 4 and 6); if there is no binding for the identifier, it is said to be unbound. -- http://www.schemers.org/Documents/Standards/R5RS/HTML/r5rs-Z-H-6.html#%_sec_3.1 YS. Footnotes: [1] Functionality over form. [2] Notice bahwa di seluruh R5RS tidak ada kata 'closure' sama sekali. Kenapa begitu saya tidak pasti. Yang patut diperhatikan juga adalah spesifikasi tentang concept 'closure' di atas tidak ada di original Scheme paper 'Scheme: an interpreter for extended lambda calculus.' (tahun 1975). Spesifikasi di atas baru terlihat di R3RS (3rd revision of the original paper, tahun 1986). Tapi concept closure sendiri sudah di-implement dari sejak implementasi Scheme pertama (sebelum tahun 1975). Mungkin karena meraka melihat itu hal yang logis dan tidak terhindarkan di lingkungan dimana variables are lexically-scoped, mereka tidak melihat kenapa harus ada namanya.
Re: [id-ruby] closure in java (Re: rompi ruby)
Yohanes Santoso [EMAIL PROTECTED] writes: Saya mau bahas sedikit apa yang saya quote dari R5RS mengenai closure karena ada beberapa hal yang mungkin membingungkan karena specific ke Scheme. To each place where an identifier is bound in a program there corresponds a region of the program text within which the binding is visible. Semua bounded identifier (variable name, class name, etc.) punya lexical scope. Kata 'region' dipakai daripada scope karena sudah ada pengertian dari bab Introduction bahwa Scheme adalah lexically-scoped language. Dan region itu maksudnya a region of code as it appears on the source code. Pemakai emacs tentunya tidak asing lagi dengan kata region. The region is determined by the particular binding construct that establishes the binding; Scopenya ini tergantung sama bagaimana bounded identifier itu di-bound. Misalnya identifiernya itu adalah variable name, scopenya tentunya beda dengan identifier untuk class name. Bahkan juga jenis variable juga mempengaruhi scopenya. Contohnya, di ruby local, instance, class variables semuanya scopenya beda2x. if the binding is established by a lambda expression, for example, then its region is the entire lambda expression. Ini Scheme specific. Every mention of an identifier refers to the binding of the identifier that established the innermost of the regions containing the use. Identifier binding di-determine dari scope paling dekat lexically. Jadinya misalnya ada module Foo class Foo p Foo end end Foo di line ke 3 refers ke class Foo, not module Foo. If there is no binding of the identifier whose region contains the use, then the use refers to the binding for the variable in the top level environment, if any (chapters 4 and 6); Kalau tidak ada containing scope yang mengandung binding untuk identifier itu, cari bindingnya di top-level environment. Ini analognya adalah global scope di Ruby. Containing scope adalah scope apa saja yang mengandung identifier itu. Contoh: module Foo1 class Foo end end module Foo class Foo p Foo end end Untuk Foo di 'p Foo', containing scopesnya adalah: class Foo::Foo, module Foo. class Foo1::Foo dan module Foo1 bukan containing scopesnya. if there is no binding for the identifier, it is said to be unbound. Unbound bukan berarti error. Ada languages yang bisa inspeksi apakah sebuah identifier bound atau tidak. Ada juga languages atau implementations yang bisa lakukan custom handling kalau mendeteksi penggunaan unbound identifier (berguna untuk debugging). YS.
Re: [id-ruby] ruby daemons ?
uud ashr [EMAIL PROTECTED] writes: Maaf nih tanya lagi. Misalkan di nix, saya punya script ruby, kemudian saya jalankan. Tapi saya jalankan sebagai backgroud process, itu dah jadi daemon? Ya. Daemon itu terminology yang loose jadinya mencakup banyak macam process. Saya pikir criteria terpenting yang harus dimiliki oleh sebuah process sebelum bisa dipanggil 'daemon' adalah: process itu memang dimaksud untuk hidup tanpa tergantung pada login session. Kriteria lain2xnya, semacam disconnected dari stdin,stdout,stderr, adalah consequence dari kriteria di paragraph sebelumnya, dan tidak selalu benar (daemon yang dijalankan oleh daemontools atau runit (atau mungkin juga apple launcher) tidak disconnected dari stdin, stdout, stderr). YS. On 5/21/07, Yohanes Santoso [EMAIL PROTECTED] wrote: Yohanes Santoso [EMAIL PROTECTED]yahoo-id-ruby%40microjet. ath.cx writes: terus menerus tanpa menganggu user. Jika anda memakai Windows, kemungkinan besar process2x yang ada di system tray adalah daemon. Ralat: ... kemungkinan besar icon2x yang ada di system tray melambangkan daemon processes. Tapi banyak juga daemon processes yang tidak dilambangkan dengan icon2x di system tray. YS. [Non-text portions of this message have been removed]
Re: [id-ruby] ruby daemons ?
uud ashr [EMAIL PROTECTED] writes: Ruby daemon ini buat apa ya? Bukannya sebenernya kita bisa bikin aplikasi pake ruby statefull, gak mati2 kayak daemon, pake Thread. Di banyak OS, daemon adalah background process. Di Windows, kesamaan paling dekat adalah service. Daemon dan thread adalah dua hal berbeda yang tidak berhubungan. Daemon biasanya dipakai jika sebuah process mau jalan terus menerus tanpa menganggu user. Jika anda memakai Windows, kemungkinan besar process2x yang ada di system tray adalah daemon. Sedangkan Ruby Thread dipakai sebagai salah satu cara untuk mempunyai beberapa stream-of-execution dengan mudah di dalam sebuah process. YS. On 5/15/07, Aditya Agustyana [EMAIL PROTECTED] wrote: baru aja aku install gem daemons http://rubyforge.org/projects/daemons/, tapi pas mau pake, ku cari2 dokumentasinya koq ndak ada yak, temans di sini ada yg tau gak ? makasih sebelumnya [Non-text portions of this message have been removed]
Re: [id-ruby] ruby daemons ?
Yohanes Santoso [EMAIL PROTECTED] writes: terus menerus tanpa menganggu user. Jika anda memakai Windows, kemungkinan besar process2x yang ada di system tray adalah daemon. Ralat: ... kemungkinan besar icon2x yang ada di system tray melambangkan daemon processes. Tapi banyak juga daemon processes yang tidak dilambangkan dengan icon2x di system tray. YS.
Re: [id-ruby] Perl, PHP, Ruby, Java, Python, Majuuu Jalan...!
Yohanes Santoso [EMAIL PROTECTED] writes: tapi yang lebih menarik itu, pertanyaannya: kenapa pake jruby? apakah karna performance? atau apa? Karena Java library. JRuby juga menggunakan JVM threading yang kemungkinan besar memakai native threading di OS anda. Jadinya bisa take advantage of multiple CPUs. Baru ingat beberapa lagi: JIT dan generational GC. JRuby bisa compile ruby code ke JVM bytecode yang mana bisa di compile ke native code dengan JIT. Generational GC ideal untuk server apps. Di generational GC, memory area dibagi ke beberapa generasi dari paling tua ke paling muda. Object yang umurnya tua masuk ke generasi tua yang stabil dan tidak usah sering2x dicek. Object yang umurnya muda masuk ke generasi muda. Bagusnya adalah, object berumur muda, biasanya dibuat karena responding to a request. Begitu request selesai, objectnya biasanya sudah tidak dibutuhkan lagi. Life-cyclenya singkat. Jadinya waktu garbage collecting, bisa limit aktivitas collecting ke generasi muda dulu karena mereka lebih volatile dan lebih besar kemungkinan bisa di collect daripada object tua. Tidak usah ngecek semua objects, jadinya lebih efisien. Lagian juga karena generational GC periodically compact the memory (dalam rangka membagi2x memory are ke beberapa generasi), memory fragmentation juga jadi low. YS