Re: [id-ruby] Analisis Mengapa Kultur NULL dibudidayakan?

2008-05-27 Terurut Topik Yohanes Santoso
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

2008-04-16 Terurut Topik Yohanes Santoso
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 ?

2008-04-11 Terurut Topik Yohanes Santoso
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 ?

2008-04-11 Terurut Topik Yohanes Santoso
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 ?

2008-04-11 Terurut Topik Yohanes Santoso
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 ?

2008-03-31 Terurut Topik Yohanes Santoso
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 ?

2008-03-28 Terurut Topik Yohanes Santoso

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

2008-02-22 Terurut Topik Yohanes Santoso
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

2008-02-22 Terurut Topik Yohanes Santoso
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

2008-02-19 Terurut Topik Yohanes Santoso
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 ;-)

2007-11-02 Terurut Topik Yohanes Santoso
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 ;-)

2007-11-01 Terurut Topik Yohanes Santoso
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

2007-10-02 Terurut Topik Yohanes Santoso
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

2007-09-26 Terurut Topik Yohanes Santoso
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

2007-09-25 Terurut Topik Yohanes Santoso
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 ?

2007-09-19 Terurut Topik Yohanes Santoso
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

2007-09-19 Terurut Topik Yohanes Santoso
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

2007-09-19 Terurut Topik Yohanes Santoso
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...

2007-09-19 Terurut Topik Yohanes Santoso
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

2007-09-19 Terurut Topik Yohanes Santoso
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

2007-09-18 Terurut Topik Yohanes Santoso
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

2007-09-18 Terurut Topik Yohanes Santoso
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

2007-09-18 Terurut Topik Yohanes Santoso
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?

2007-08-28 Terurut Topik Yohanes Santoso
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?

2007-08-14 Terurut Topik Yohanes Santoso
Arie Kusuma Atmaja [EMAIL PROTECTED] writes:

 apakah symbol di GC?

Tidak di ruby yang sekarang.

YS.


Re: [id-ruby] Restful API

2007-08-03 Terurut Topik Yohanes Santoso
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

2007-08-03 Terurut Topik Yohanes Santoso
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

2007-07-31 Terurut Topik Yohanes Santoso
 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

2007-07-29 Terurut Topik Yohanes Santoso
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

2007-07-27 Terurut Topik Yohanes Santoso
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

2007-07-24 Terurut Topik Yohanes Santoso
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)

2007-07-14 Terurut Topik Yohanes Santoso
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

2007-07-13 Terurut Topik Yohanes Santoso
 [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

2007-07-11 Terurut Topik Yohanes Santoso
[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)

2007-06-18 Terurut Topik Yohanes Santoso
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)

2007-06-18 Terurut Topik Yohanes Santoso
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 ?

2007-05-24 Terurut Topik Yohanes Santoso
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 ?

2007-05-21 Terurut Topik Yohanes Santoso
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 ?

2007-05-21 Terurut Topik Yohanes Santoso
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...!

2007-05-18 Terurut Topik Yohanes Santoso
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