Projekty

Edit3D

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.

Vorlib

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

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).

Instalace

Stáhnout lze samozřejmě zde. Stačí rozbalit, zkompilovat (qmake, make) a zkopírovat vzniklou binárku. Vyžaduje ke své existenci knihovny Qt4.

Nastavení

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.

Folia

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.

Bully

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.

thread_tag

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ě.

Jelnet

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'.

Xplit

K čemu To je

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.

Crossing

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.

Clue Play

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.

NetProfile

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.

Runq

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.

CrazyCD

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.

Instalace

Stačí stáhnout útržek, umístit ho někam a sourcenout ho z .bashrc.

Používání

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).

Drobnosti dle požadavku

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.

PCI ID database

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

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.

Připojovátko bluetooth sluchátek

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.

Zprovoznění

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.

Použití

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.

Git prompt

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í.