Pro začátek, v podstatě vše z následujícího jsem dělal pro sebe a vlastní potěšení. To také vedlo k velké úmrtnosti projektů. Pokud se vám u něčeho zde zdá, že to nevidělo obrazovku již několik století, pak nemusíte být daleko od pravdy.
Vše co zde dávám k dispozici, pokud není v onom projektu stanoveno explicitně jinak, je dáno plně k dispozici k libovolnému užití, šíření, kopírování a měnění, dle libosti každé lidské či jiné bytosti i strojů s inteligencí srovnatelnou nebo vyšší než je inteligence pavouka. Pokud pochybuješ o tom, zda to smíš použít k té či oné věci, pak mě to nevadí. Pokud máš pochybnosti co se týče výsledku srovnání tvé inteligence a pavoučí, pak jdi lovit mouchy.
Jeden prastarý a dávno mrtvý projekt. Umožňovalo to (a ne příliš pohodlně) vytvářet a editovat low-polygon 3D modely a exportovat je v rychle načítatelném formátu. Kdyby někdo projevil značný zájem, můžu se pokusit toto někde vyhrabat. Avšak, pokud se někomu zdá, že je v tom chyba, pak mu nezbude nic jiného než si ji opravit sám.
Knihovnička několika, možná užitečných, tříd do C++. Používá pouze STL a sokety, tudíž by to mělo být přeložitelné kdekoliv. Testováno v provozu na Linuxu, nějaké odrůdě BSD (již si nepamatuji, co to bylo zač) a Windows, pravděpodobně to byly XP, ale u nich si není člověk nikdy jist.
Zde jsou letité stránky z dob zrodu projektu. Jak stránky tak projekt nesou známky učení se nového jazyka.
Sticky je malinká drobnost, kterou jsem si napsal asi za 5 hodin. Umožňuje zapisování schůzek a úkolů a zobrazuje je pro úpravy a vyhledání. Většinu času žije jako malinký obdélníček kdesi v rohu obrazovky a ukazuje 4 čísla (celkový počet záznamů, žlutý počet blížících se, červený počet zmeškaných a modrý počet označených za úkol).
Stáhnout lze samozřejmě zde. Stačí rozbalit, zkompilovat (qmake, make) a zkopírovat vzniklou binárku. Vyžaduje ke své existenci knihovny Qt4.
Doporučuji nastavit, aby žil na všech plochách (sticky, odtud název), byl bez okraje a spouštěl se při přihlášení.
Poslední úpravou bylo, aby se choval rozumě i za použití méně obvyklých barev systému.
Drobná utilitka poskytující možnost čmárat po obrazovce. Už není potřeba si ukazovat prstem a dělat věčné otisky na skle a ničit LCD přetýkáním krystalů do sousedních pixelů. Pomocí tohoto se dá na obrazovku nakreslit cokoliv a to tak, že aplikace pod ní stále žijí.
Návod a data ke stažení na vlastní stránce.
Utilitka pro všechny lidi, co se dokáží zabrat příliš do práce na počítači. Už se ti někdy stalo, že jsi kvůli práci na počítači zapomněl jít do školy, k lékaři, na svatbu, na vlastní svatbu, atp? Pak je toto přesně věcička pro tebe.
Utilitka sloužící na přiřazování přívěškům vláknům u E-mailů. Může pomoci označovat vlákna v diskuzích za ignorovaná, sledovat odpovědi na své E-maily a podobně.
Jabber telnet, zařídí připojení, šifrování a login. Vhodné pro experimentátory a programátory okolo jabberu. Umožňuje též ulehčit vývoj klientských aplikací, protože se postará o tyto obtížné části.
Běží na pythonu (experimentálně zjištěno, že je potřeba verze alespoň 2.4). Není jisté, jestli funguje na jiné platformě než Linux, pravděpodobně by to potřebovalo malé úpravy.
Ke stažení v podobě archivu nebo z gitu na git://vorner.cz/git/jelnet.git.
Nápovědu lze získat po spuštění s argumentem '--help'.
Miniaturní utilitka, která dostane-li XML dokument, tak vysype jeden XML dokument pro každý přímý potomek tohoto dokumentu a jeho vlastní kopií kořenu. Tedy, když dostane:
<xml>
<ahoj/>
<cau/>
</xml>
Pak z něj vypadne:
3
<xml>
<ahoj/>
</xml>
3
<xml>
<cau/>
</xml>
Číslo vždy udává kolik řádků má následující XML dokument, aby jej nebylo třeba parsovat a stačilo jej jednoduše odpočítat.
Užitečnost této věci není, jak by se mohlo zdát, nulová. Pomáhá oddělit jednotlivé stanzy XMPP protokolu tak, aby šly zpracovat pomocí DOM parseru. Pokud ti toto nic neříká, pak pro tebe neplatí první věta tohoto odstavce.
Ke stažení je zde.
Věc, která vznikla jako zápočtový program při mém studiu. Není nikterak zvlášť užitečná, ale vypadá celkem hezky. Prostě to zobrazuje křižovatku na které jezdí autíčka.
Stáhnout je možno zde. Mělo by to obsahovat veškerou dokumentaci.
Jednou mi došla trpělivost s amarokem (přeci jen, nemyslím si, že potřebuji databázi na udržování playlistu), tak jsem si napsal vlastní přehrávač (tedy, ono to nepřehrává, ono to jen pouští přehrávací programy jako mplayer se správnými parametry). Návod se mi k němu psát nechce, tak ti to k něčemu bude asi jen jestli umíš číst haskell a bash.
Stáhnout to je možné zde.
Některé počítače mají stále stejné připojení k síti. Avšak jiné, týká se to především počítačů přenosných, své připojení velmi často mění a je vhodné mít něco, co si bude jednotlivá nastavení pamatovat.
Jednou z nejjednodušších věcí může být program, který si pamatuje jednotlivé profily a umí je přepínat. K tomu slouží tento program.
V mnoha případech člověk chce, aby daný proces nemohl běžet vícekrát v jeden okamžik. Zamykání pomocí souborů je dosti nešťastné (zůstávají tam ty soubory občas, když je zamčeno, musí se chvíli počkat, …). Runq pomáhá překonat toto.
Centrální částí runq je runq-server. Ten spouští požadované procesy a zařizuje, že jen jeden od každého druhu je spuštěn.
Další částí je runq-client. Spouští se:
runq-clien druh příkaz parametry příkazu
Druh určuje, se kterými dalšími příkazy je neslučitelný, příkaz a parametry příkazu jsou to, co by se spustilo normálně. Do a z procesu se dá obvyklým způsobem posílat text. Posílání binárních dat nebylo odzkoušeno.
Poslední částí je runq-wrapper. Pouští se stejně jako runq-client, jen spustí server, pokud ještě neběží.
Stáhnout lze zde.
Malý útržek bashe, který přiměje cd, aby si pamatovalo historii. Kromě toho umožňuje mít aktivní adresáře. Jednak vypíše při vstupu do adresáře obsah souboru TODO, pokud existuje, a jednak spouští skripty .activedir.
Stačí stáhnout útržek, umístit ho někam a sourcenout ho z .bashrc.
Použití příkazu cd je zcela stejné, jako bylo doteď, jen pokud vstoupí do aktivního adresáře (se skriptem), tak ho provede. Přibyl příkaz hist. Pokud je spuštěn bez parametrů, vypíše historii navštěvovaných adresářů.
vorner@tarantula ~ $ hist
3:/home/vorner
2:/etc
1:/home/vorner
0:/home/vorner/prog
Nalevo od každého adresáře je číslo (nejmenší čísla jsou nejpozději navštívené adresáře). Pokud se hist spustí s tímto číslem, přejde do příslušného adresáře.
Další příkaz, který přibyl, je hback. Ten se vrátí na poslední položku v historii a z historii ji smaže (tedy, historie funguje jako zásobník).
Pokud má někdo potřebu řekněme simulace padání žárovek, pak není problém mě kontaktovat a dohodnout se, budu pravděpodobně ochoten napsat.
Webová aplikace, která umožňuje uchovávat databázi hierarchicky uspořádaných entit a vést o nich diskusi. Lze najít jednak nasazené, jednak jako zdrojové kódy, měly by být snadno modifikovatelné pro jiné druhy entit a adres. Projekt má jen anglickou stránku, stejně je kód třeba upravit a ten je anglicky celý.
Remake je náhrada make a snaží se být jednodušší na použití s menším množstvím černé magie. Jeho anglická verze je k nalezení zde.
Mám bluetooth sluchátka, do kterých pouštím zvuk pomocí Pulse Audia (přes alsu to neumí přehrávat více zvuků najednou). Bohužel, to se se sluchátky baví až poté, co jsou připojená. hcitool sice vyrobí spojení po bluetooth, ale nevyrobí žádnou službu, takže spojení zase hned skončí, je potřeba se připojovat přímo k a2hp profilu. To lze provést třeba BlueManem, což má ale horu nevýhod. Jednak musí běžet stále, takže zabírá místo v trayi a paměti, je potřeba do něho klikat (nejde připojit z příkazové řádky ani ze skriptu).
Poté, co mi došla trpělivost, tak jsem napsal tenhle kousek perlu.
Pro zprovoznění je potřeba jednak mít nainstalovaný perl a modul Net::DBus.
Druhá věc, která je potřeba, je nastavení adresy zařízení (proměnná devname v skriptu). Tato adresa se dá získat například zavoláním hcitool scan a vyměněním dvojteček za podtržítka.
Pokud je skript zavolán s parametrem off, sluchátka odpojí. V opačném případě je připojí.
Co skript neřeší je párování a zadávání pinu. To je potřeba provést jen jednou a měl by k tomu stačit například program hcitool a simple-agent, který je přiložen k BlueZ.
Rozšíření promptu v bashi, které ukazuje detaily o aktuálním adresáři. Hlavní, co ukazuje jsou informace o gitu, ve kterém se nachází. Motivovalo mě to, že jsem stále zapomínal pushnout změny. Vypadá nějak takto:
19:18 vorner@gargoyle ~/.mutt/git-synced/scripts (master 11 2 +1) 20%
$
Informace zobrazené jsou:
Samozřejmě, pokud některá informace není k dispozici (např. aktuální adresář není v gitu), odpovídající informace se nezobrazují. Naopak, umí toho zobrazovat ještě trochu víc, ale to nechť je překvapením.
K jeho zprovoznění stačí stáhnout chytrý skript v perlu, nainstalovat potřebné moduly (pravděpodobně jen common::sense) a zařadit tento kousek do .bashrc:
result_print() {
RESULT=$?
/home/vorner/.mutt/git-synced/scripts/git-prompt.pl "$RESULT" "`jobs -l 2>/dev/null`"
}
PS1="\`result_print\`\n$ \[\033[00m\]"
Snad jedinou nevýhodou je, že při vstupu do většího repozitáře to chvíli hrabe na disk, než všechny potřebné věci zjistí.