 |
|
 |
|
| |
June 2nd, 2010
Znáte ten pocit bezmoci, když nějakou věc rešíte už po třetí a pokaždý vás stojí 20 bodů IQ, máte pogrepovanej celej Gugl, zmateně a kuse se to snažíte natlačit do hlavy všem, který ještě maji náladu vás poslouchat a pořád nemůžete přijít na to, “jak jsem to sakra minule udělal”? Já jo.
Pro mě už klasická situace. Máte server, na kterej x uživatelů s primarní grupou (řekněme vcs) pushuje repozitáře. Aby se zabránilo tomu, aby nově vytvořený branche a upravený soubory byly -w pro zmíněnou grupu, je třeba nastavit umask 0002. To je logický. Jenže kámen úrazu je v tom, že nastavení umasku v /etc/profile nepomáhá. Ano, pro někoho je to zřejmý, protože binárka bzr nespouští žádnej shell. Ááááchjo. Řešení je opravdu jednoduchý. Stačí vytvořit wrapper, kterej pustí umask a pak zavolá bazaar s parametrama, který na wrapper přišly. Čili něco jako:
starenka@xxx:~$ cat /usr/local/bin/bzr
#!/usr/bin/env bash
umask 0002
/usr/bin/bzr "$@"
PS. chtěl bych poděkovat ntz, za to, že mě trpělivě naved’ až ke slovu wrapper a já si vzpomněl, jak už jsem to dvakrát předtím řešil
May 8th, 2010
Jestli patříte mezi lidi, kterým redesign stránky s výsledkama na Google nesedí, je tu celkem jednoduchý řešení. Pokud váš prohlížeč podporuje vlastní CSS pro konkretní stránku, neni nic jednodušího než si “vrátit výsledky pěkně hned doleva, ty vole”. V Opeře stačí pravým tlačítkem na stránce -> Edit site preferences -> Display -> My stylesheet a v dialogu na výběr souboru vybrat vlastní CSS. Nějak jsem to dlouho netestoval, ale zdá se, že dva řádky úplně stačí.
#center_col { margin-left: 0 !important; }
#leftnav { right: 5px; }
Výsledek vypadá nějak takhle:

UPDATE: někde jsem viděl, že “starý hledání” funguje, pokud se za url dohodi &hl=all takže stačí jen upravit string, který se posílá z prohlížeče na Google (např. http://www.google.com/search?client=opera&rls=en&q=starenka+penis+size+vs+hulan+penis+size&sourceid=opera&ie=utf-8&oe=utf-8&hl=all. Nebo taky můžete použít bystroushaakuv GreaseMonkey skript.
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.
February 27th, 2010
Používáte Bazaar? Máte někde na serveru “repozitáře” a potřebujete občas rychle zjistit název projektu, jeji branch/push/merge url a shlédnout rychle log? Nechcete kvuli tomu rozjíždět nějakou megalomanskou věcičku ala Loggerhead, která navíc zobrazuje zdrojáky a tudíž musí být pod heslem? (Aby bylo jasno, Loggerhead je skvělá věc, ale pro vypsaní branchů a jejich url je to overkill). Pak jste tu…… správně. Postačí vám CGI a pár řádek v Pythonu. Nikdy jsem neměl (mimo jiných) grafický nadání, takže jestli vás to hodně mlátí do očí, poslužte si.

December 5th, 2009
Když jsem si cca před tejdnem pořídil další hračičku (G1 s Androidem), nenapadlo mě, že si v tom půjde hrát s Pythonem. A ono jde. A ještě s třeba s Perlem a Ruby atd. Díky ASE je možný víceméně přistupovat k API Androidu pomocí skriptovacích jazyků. Nevím jestli to není v dokumentaci, nebo jsem přihlouplej, ale docela mě vytáčí, že to spousu věcí zatim neumí (pro začátek bych se spokojil třeba jen s odklepávací zprávou). V samotným ase se skripty daji přímo psát, nebo hodit do editoru z barcodu, nicméně doporučuju je psát na počítači a do telefonu je jen pushnout přes adb. Než tedy zjistím, jak se s tím daji dělat i užitečnější věci, doufám, že nepohrdnete jednoduchým skriptem, kterej “toustuje” (”ukazuje krátký informační okýnka”) jídla z jídelníčku u Rozvařilů. Všem kromě mě zcela určitě k ničemu, nicméně jako demonstrace možností nebo inspirace snad postačí.
# -*- coding: utf-8 -*-
import android,re,urllib2
from datetime import datetime
droid = android.Android()
def get_page(url):
try:
d = urllib2.urlopen(url)
return d.read()
except urllib2.HTTPError, e: pass
except urllib2.URLError, e: pass
return False
data = get_page(‘http://www.rozvarilovi.cz/stranka/jidelni-listek’)
if data != False:
data = data.replace(‘\r\n‘,”)
match = re.search(r‘<div align="left">(.*?)</div>’,data)
droid.vibrate(500)
for l in match.groups(1)[0].decode(‘cp1250′).split(‘\n‘):
if l != ”: droid.makeToast(l)
else: droid.makeToast(‘Failed to reach site…’)
droid.exit()
QR kód hír a regulérní zdroj ouvr hír. A proč v nadpisu androidí aplikace? Chtěl jsem pár zajímavejch vypíchnout. Tak snad příště.
« Previous Page — Next Page » |
| |
 | |  |
|
|
|