March 6th, 2010
Jsou situace, kdy prostě někdě neco ujede, někde se něco připlete a ne vždy to člověk v IDE bere na vědomí. Provádění syntax checku před komitem mi přijde jako docela dobrej nápad. Unit test a TDD křídla, který mi určitě rádi poví, že tohle už by mělo součástí testů atd. blatytyblaa prosím, aby mě nechali žít v bludu, že testy někdy prostě třeba nejsou. Hooky pro Bazaar se píšou fakt krásně, takže ho spíchnout je docela zábava. Hooky jsou normální pluginy, takže patří do ~/.bazaar/plugins. Komentovat těch pár řádek netřeba. V případě PHP a Ruby, kde se používá CLI, binárka a grep bude asi trošku skřípot na Windows, ale imho nebude problém to pořešit jinak (jsem línej a navíc mě to netíží). Bastlení zdar.
January 25th, 2009
Fontů není nikdy dost. Nedávno jsem nabádal ke scizení ryze českých fontů a dneska si vezmem na mušku můj oblíbený server DaFont.com. Hloupoučkým pavoučkem najdeme všechny odkazy ke stažení, uložíme je do souboru a stáhneme, třeba wgetem. Pavouk:
#!/usr/bin/ruby
require ‘uri’
require ‘net/http’
base_url = ‘http://www.dafont.com/alpha.php?nb_ppp=50&lettre=’
(‘a’..‘z’).each do |letter|
tar = base_url+letter
html = Net::HTTP.get_response(URI.parse(tar))
matches = html.body.scan(%r{<a href=".*?lettre=[a-z]&page=([0-9]{1,3}).*?">}m)
max = matches == [] ? 2 : matches.max[0].to_i+1
page = 1
begin
tar = base_url+letter+‘&page=’+page.to_s
html = Net::HTTP.get_response(URI.parse(tar))
matches = html.body.scan(%r{.*?<a.*?class="dl".*?href="(.*?)">Download}mi)
puts matches
page += 1
end until page == max
end
pustíme pavouka ruby dafont.rb > /tmp/dafont a pustíme wget:
wget -nc -i /tmp/dafont
January 24th, 2009
Na DPP byl bagrem vyštrachán pěkný seznam čidel, moniturujících teplotu vzduchu, silnice a rychlost větru na místech v Praze (abych to uved’ na pravou míru - bagr hledal ceny jízdenek a našel čidla. To, že ceny jízdenek mimo P0 nenašel je nasnadě…). Stránka se mi celkem zamlouvá. Ne, že bych nějak dal na teploty, ale v souvislosti s trochou volnýho času, kterýho se mi teď dostává, jsem se rozhod’ konečně zkusit první “Hello čidlo!” v Ruby. První kontakt mě docela znechutil, protože jak se zdá Ruby < 1.9.1 trpí dětskejma nemocema spojenýma s délkou řetězce v unicode. Za pomoci deepje a Googlu mi trvalo půl hodiny, než se mi to podařilo vyřešit. Zlatý prciny (PHP,Python).
#!/usr/bin/ruby
$KCODE="u"
require ‘uri’
require ‘net/http’
require ‘jcode’
data = "http://www.dpp.cz/flash/data/meteo.xml"
xml = Net::HTTP.get_response(URI.parse(data).host, URI.parse(data).path)
if xml.code == ‘200′ then
matches = xml.body.gsub(‘0.0′,‘—’).
scan(%r{.*?<name>(.*?)</name><air>(.*?)</air><road>(.*?)</road><wind>(.*?)</wind>}mi)
puts "\nčidlo\t\tvzduch\tsilnice\tvítr\n[kde]\t\t[°C]\t[°C]\t[m/s]\n————————————-"
for place in matches
padd = place[0].jsize > 7?"\t":"\t\t"
puts place[0]+padd+place[1]+"\t"+place[2]+"\t"+place[3]
end
else puts ‘!!ERR: Failed to fetch ‘+data
end