 |
|
 |
|
| |
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
Popularity: 24% [?]
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
Popularity: 16% [?]
January 7th, 2009
Dost často potřebuju mít definovaný různý hostnames pro různý wifi sítě, ke kterým se připojuju. Problém, jak jistě tušíte, je v tom, že vetšina sítí má podobnej rozsah a tudíž hostname “milacek” na vaší domácí síti může v práci klidně směrovat na šéfův počítač. Nenabádám ke vzpourám, ale některý představy by se měli típnout už v zárodku. Aby jsem těmhle kolizím předešel, po každém připojení na wifi se mi k defaultním hosts přihodí ještě specifické pro danou síť. Samozřejmě to není převratná myšlenka, ale na amatérskýho krotitele tučňáků po necelým roce 24ek v ZOO nemůžete čekat víc. Ehm.
prekvizity:
- wifi je na wlan0 (změn si dle potřeby)
- v ~/hosts je:
- minimálně soubor _hosts, kde jsou univerzální hosts (vaše hostname atd.)
- soubor(y) s názvem ESSID, pro který chcete mít ještě další definovaný hostnames
- skript (níže) uložit, udělat spustitelným a zkopírovat pod rootem do /etc/network/if-up.d
#!/bin/sh
ssid=`iwconfig wlan0 | grep ESSID | cut -d\ " -f2`
cp /home/starenka/hosts/_hosts /etc/hosts
if [ -f /home/starenka/hosts/" $ssid" ];
then echo "\n #==$ssid specific==\n" >> /etc/hosts; cat /home/starenka/hosts/"$ssid" >> /etc/hosts
fi
Popularity: 19% [?]
January 6th, 2009
Potřeboval jsem nutně “tuhletu přejížděčku” a nechtělo se mi guuuglovat a guuglovat. Není to samozřejmě nic extra, ale za deset minut jsem nebyl schopnej spáchat nic lepšího. Tipy se zobrazují u všech elementů se třídou tip a s atributem alt, který je textem tipu. Tip cca klonuje pozici prvku, ke kterému patří a taky přebírá jeho šířku. Pokud to není žádoucí, navrhuju prostudovat volání metody clonePosition().
JavaScript:
document. observe(‘dom:loaded’, function() {
$$(‘*.tip[alt]’).each(function(el){
el.observe(‘mouseover’, show_tip.bindAsEventListener(el))
}, this);
$$(‘*.tip[alt]’).each(function(el){
el.observe(‘mouseout’, hide_tip.bindAsEventListener(el))
}, this);
});
function show_tip(ev)
{
var tip = Builder.node(‘div’, {
style: ‘display:none;position:absolute;’,
id: ‘tip’
},Builder.node(‘p’,this.readAttribute(‘alt’)));
$(‘wrap’).appendChild(tip);
Element.clonePosition(tip,this,{ offsetTop:20, setHeight: false});
new Effect.SlideDown(tip,{duration:0.1});
ev.stop();
}
function hide_tip(ev)
{
new Effect.SlideUp(‘tip’,{duration:0.1});
ev.stop();
Element.remove(‘tip’);
}
Trošku CSS:
#tip { border: 1px solid #B38E5F; background: #FFCB87; }
#tip p { padding: 3px;}
Popularity: 18% [?]
January 3rd, 2009

Kdo by neznal LOLcats a legendární ICanHasCheezburger. Fotešky (nejen) čičinek doplněný LOLspeakem. Některý kousky opravdu stojí za to archivovat a tak jsem se rozhod to vzít načisto - projdu feed a stáhnu obrázky, které ještě nemám. Ideální příhodit do cronu a rozšířit si svojí colekshun.
wget -O /tmp/icanhazf http://feedproxy.google.com/ICanHasCheezburger
perl -e ‘while (<>) { ~ /<img.*?src=\”(.*icanhas.*jpg)\”/; print $1."\n"; }’ /tmp/icanhazf | uniq > /tmp/icanhaz
wget -nc -i /tmp/icanhaz && rm /tmp/icanhaz /tmp/icanhazf
Dá-li Ceiling Cat, tak konečně dopíšu prohlížeč posledních LOLků a pochlubím se s ním. Jen jsem teď na vážkách, jestli to nebude stylovější psát v LOLPythonu.
Popularity: 14% [?]
Next Page » |
| |
 | |  |
|
|
|