11.15.06

TortoiseSVN 1.4.1 se ruši

Posted in Bugs, Hrvatski (Croatian) at 5:59 pm by Željko Filipin

svn.png

Upravo sam instalirao TortoiseSVN 1.4.1 i stalno se ruši. Update, commit, bilo što. Kad sam vratio na 1.4.0 sve radi kako treba.

02.13.06

Pitati pametno

Posted in Hrvatski (Croatian), Self Education at 1:30 pm by Željko Filipin

Svi koji koristimo open souce (Ruby, Watir…) (i ne samo mi) trebali bi znati kako pitati pametno (tako da dobiješ odgovor).

Chris McMahon je to spomenuo na wtr-general listi.

02.09.06

Ruby: (Dubinski) Kopiraj objekt

Posted in Hrvatski (Croatian), Ruby at 1:24 pm by Željko Filipin

Želio sam napraviti objekt. Zatim ga kopirati. Zatim promijeniti kopiju bez mijenjanja izvornika. Ali nisam znao kako. Kad god nešto ne znam, pitam wtr-general listu. Poslao sam pitanje. Pa sam pomislio da bi bilo lijepo kad bi objasnio zašto želim kopirati objekt. Ali, objašnjenje se odužilo, pa sam ga stavio na moj blog.

Dobio sam odgovor. “Probaj Object#clone”. Može li biti tako jednostavno?! Može. Ipak, to je Ruby. Ali ne, nije tako jednostavno. Nije radilo. Izvorni objekt se mijenjao sa svojim duplikatom.

class Page
attr_accessor :texts
def initialize(url, texts)
@url, @texts = url, texts
end
end

page_view = Page.new(”app.com/view.aspx”, ["File > View"])

page_view_after_add = page_view.clone
page_view_after_add.texts < < "File added."

puts page_view.inspect
puts page_view_after_add.inspect

Rezulat:


#<Page:0×2820ae0 @url=”app.com/view.aspx”, @texts=["File > View", "File added."]>
#<Page:0×2820a98 @url=”app.com/view.aspx”, @texts=["File > View", "File added."]>

Ali sad sam znao gdje gledati. Upisao sam “ri Object#clone” i “ri Object#dup” u Command Prompt (čak sam pogledao i na http://www.ruby-doc.org/core/). Kaže (na oba mjesta, i za Object#clone i za Object#dup):

“Proizvodi plitku kopiju objekta – kopiraju se objektove varijable instance (kako ovo prevesti?), ali ne i objekt na kojeg se odnose.”

Dakle, stvara “plitku” kopiju. To mi ne treba. Trebam “pravu” kopiju.

Google mi je pomogao. Potražio sam “ruby copy object” i našao http://www.rubygarden.org/ruby?Make_A_Deep_Copy_Of_An_Object.

Tajna riječ je “dubinsko” kopiranje.

Dodao sam ovo klasi Page (i zamijenio page_view.clone sa page_view.deep_clone) i dobio sam što sam trebao!

def deep_clone
Marshal::load(Marshal.dump(self))
end

Rezulat:


#<Page:0x4c1dd10 @url="app.com/view.aspx", @texts=["File > View"]>
#<Page:0x4c1dc50 @url="app.com/view.aspx", @texts=["File > View", "File added."]>

Ne razumijem kako radi, i nije me briga, sve dok radi.

« Previous entries Next Page » Next Page »