 |
|
 |
|
| |
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.
Popularity: 1% [?]
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% [?]
November 28th, 2008

Nedávno jsem na cinanove blogu viděl zajímavej skript, kterej sloužil jako prasátko (pokladnička) málo používanejch příkazů. Docela mě nápad nadchnul a jelikož mi pojetí moc nevyhovovalo, rozhodnul jsem se napsat si vlastní. O co jde. Skript uloží tebou zadaný příkazy do souboru (sqlite) a dovolí je (p)otagovat. Položky je následně možné kopírovat do klipperu (schránka v KDE) nebo pomocí xclipu do schránky Xek. Samozřejmě je můžeš i mazat. Na bonus můžes vypsat všechny tagy nebo položky. Hledá se podle tagu.
Skript je dobré udělat spustitelným, symlinknout do $PATH a symlink zbavit přípony. Tím člověk docílí možnosti spustit skript jednoduše odkudkoliv. Jak používat? Nápověda se zobrazí po zadání shell-fu -h. Hledat podle tagu se dá taky jednodušeji shell-fu tag resp. shell-fu "tag s mezerou".
Pokud nemáte, bude třeba následující balíčky: python, python-sqlite, sqlite3 a volitelně xclip. Zdroják můžete stáhnout tady. Barvy a cestu k databázi si snadno změníte v konstantách na začátku souboru.
Popularity: 19% [?]
November 3rd, 2008
Pokuď někdo generoval XLSko pomocí jinak dobře našláplýho projektu PHPExcel, jistojistě narazil na fakt, že data se ukladají po buňkách(!). Na tom zase není nic moc až tak tragickýho, až na fakt, že musíte nějak vygenerovat i souřadnici buňky. Já jsem zrovna potřeboval procházet buňky od A až po XY a tak vznikla tahle lehce retardovaná funkce. Budiž možná někomu prospěšná. PS. Pokud někdo přišel na způsob jak ukládat data třeba po sloupečkách nebo snad dokonce po řádkách, nechť mě osvítí v komentářích.
function make_column_name ($start_row, $add)
{
$len = strlen($start_row);
if(! is_int($add)) return false;
if($len > 2 || $start_row == ”) return false;
$start_row = strtoupper($start_row);
$last_ord = ord($start_row[$len-1]);
$first_ord = ($len == 1)? false: ord($start_row[0]);
$first_ret_ord = ($len == 1)? 65: $first_ord;
$to_z = 90- $last_ord;
if($add <= $to_z) return ($first_ord)? chr($first_ord). chr($last_ord+ $add): chr($last_ord+ $add);
else
{
$add -= ($to_z+1);
return chr($first_ret_ord+ floor($add/ 26)). chr(65+ ($add% 26));
}
}
Popularity: 9% [?]
June 4th, 2008
… napsal kdysi Abbie Hoffman na obal a začal ji prodávat. Já napíšu jeden řádek a ukradnu všechny soubory v autoindexovaném adresáři na web serveru (nevím přesně jak se tomu vlastně říká - příklad bude zřejmě názornější). Než mě začnete kamenovat, zamyslete se nad tím, jestli každá stařenka, která umí uštrikovat kuklu je automaticky zloděj…
wget -nd -r -l1 -R ‘index*’,‘robots.txt’ –no-parent http://server.com/adresarsautoindexem/ –directory-prefix=/kam/ulozit
Nebyl bych to samozřejmě já, kdybych si to nepřidal do kontextového menu Opery…(pokráceno)
[Document Popup Menu]
....
Submenu, "save content to...", savetoc
...
[savetoc]
Item, junk = Execute program,"konsole","--noframe --notoolbar --nomenubar --vt_sz 90x30 --noclose -e wget -nd -r -l1 -R 'index*','robots.txt' --no-parent %u --directory-prefix=/junk"
Item, down = Execute program,"konsole","--noframe --notoolbar --nomenubar --vt_sz 90x30 --noclose -e wget -nd -r -l1 -R 'index*','robots.txt' --no-parent %u --directory-prefix=/down"
Item, mp3 = Execute program,"konsole","--noframe --notoolbar --nomenubar --vt_sz 90x30 --noclose -e wget -nd -r -l1 -R 'index*','robots.txt' --no-parent %u --directory-prefix=/mp3/000_new"
A už vůbec bych to nebyl já, kdybych na to nejdřív nešel strašnou obklikou. Z nevědomosti a lenosti číst manual wgetu, jsem původně vykuchal svůj celkem povedený pavoučí Python skript a upravil na další který vypisoval všechny odkazy v adresáři, které jsem potom chtěl wgetem stáhnout. Inu kdo nemá v hlavě musí mít v prstech. K nakouknutí v muzeu. V pondělí zavřeno.
Popularity: 18% [?]
Next Page » |
| |
 | |  |
|
|
|