szz blogja

Hangfelismerés

A hangzó anyag szövegfelismerése már volt téma itt, de szeretném letisztázni az eddigi eredményeket, s esetleg ötleteket gyűjteni újrakra. Annak is örülnék, ha lenne lehetőség visszajelezni a Google hangfelismerőjének, hogy (szerintem) mi lett volna a helyes eredmény egy-egy mondat felismeréseként. Az eljárásom tehát a következő:

  1. Van egy kiindulási hangfájlunk (MP3, de még jobb, ha valami tömörítetlen fajta)
  2. Ezt feldarabolom, lehetőleg mondatonként, és FLAC fájlokká alakítom
  3. A darabokat elküldöm a Google-nak (tudva, hogy milyen típusú a küldött fájl)
  4. Az eredményt összefűzöm és megszűröm az obszcén vagy tudottan félreértett kifejezésektől
  5. Kézzel feljavítom a válasszöveget, teszek bele központozást és nagybetűket.
  6. A végeredményt egy szintaktikai javítószkriptnek vetem alá.

A részletek:

Fejléces .csv fájl beolvasása sqlite adattáblába

Sokáig ügyeskedtem azzal, hogy egy fejléccel rendelkező .csv fájlt hogy érdemes sqlite adattáblába olvasni. Csináltam táblagyártó szkriptet így-úgy-amúgy, megoldottam a fájl fejlécsorának az adatok közül való kiküszöbölését (tail -n +2)... míg aztán rájöttem, hogy erre már van kész eszköz. Csak nem úgy hívják, hogy sqlite, hanem úgy, hogy spatialite; de ugyanazzal az sqlite adatbázissal tud bánni (parancssorból vagy qui felületen).

http://sqlite.1065341.n5.nabble.com/How-do-you-load-a-csv-and-skip-the-…

Hangfelvétel telefonnal

Az történt tegnap, hogy egy Égből pottyant mesét olvastam föl és mentettem el Sony Xperia telefonom hangrögzítője segítségével. Később (a mese letöltése után) egy másik fájlként néhány rövid mondatot is rámondtam.

Amikor a rövidebbik fájlt is át akartam tenni számítógépre, azt tapasztaltam, hogy a mesefölolvasás hangfájlja látszik a számítógépről, a másik nem.

Újraindítottam mindent (telefont, számítógépet), hogy nehogy valami gyorstár téma bezavarjon, de továbbra is változatlan volt a helyzet. Sőt, egy másik számítógépen is ugyanezez volt a látvány. A telefonon ott van két fájl, a számítógépen csak az egyik látszik.

Az ideális metróajtók

Még régebben készítettem egy oldalt, ahol az látszik, hogy ha siet az ember, akkor hová célszerű állni a budapesti metróban (hányadik kocsi hányadik ajtajához). Ilyenkor ugyanis közel lesz a mozgólépcső. Érdemes elmenteni a telefonba is, ha gyakran metrózol :-).

Ma utaztam először az új, fehér Alstrom szerelvényben. Tényleg csöndes, és intelligens az ülőhelyek kialakítása is (egyértelmű, hogy mi egy-egy ember helye). A kapaszkodórúd is igen elegáns, elágazik háromfelé, majd újra összeér.

Ha épp nem akarsz kockulni

Időnként komoly erőfeszítésbe kerül, hogy gyerekeimnek olyan alternatívát ajánljak a szabadidő értelmes eltöltésére, ami nincs kapcsolatban informatikával, elektronikával. Lehet persze kirándulni, mozogni sokféleképpen, ám érdemes megfontolni az alábbi lehetőséget is.

Régebben, míg megvolt a budapesti Tűzraktér, volt ott cirkusziskola is. Ez aztán feloszlott, ám egy lelkes tanár vállalta, hogy a jól bevált ügyeket a szabad ég alatt is kipróbálhatjuk. Egy ilyen nyílt téri cirkusziskolai alkalmon készültek ezek a képek.

Régi gépre linux; Live USB rendszer perzisztens változtatásokkal

Egy régi gépre kellett (korban hozzá illő) linuxot feltennem, ideiglenes célra. Kitűnő választásnak bizonyult a szép, kiforrott, 4.2.v.2 verziójú Puppy Linux, mert pehelykönnyű, és lehetővé teszi a változtatások elmentését egy fájlba (pl. pendrájvra), amit a következő betöltéskor felhasznál. Persze az itt emlegetettek közül is lehetett volna próbálkozni egyikkel-másikkal...

Az Ubuntu linux "perzisztensítése" (állapottartóvá tétele) először nem magától értetődő az alapértelmezett indítólemez-készítővel. Jól át kellett gondolnom a dolgot, hogy ráérezzek, hogy a "Tárolás a fenntartott szabad helyen" jelenti azt, amire szükségem van. Elsőre megtévesztő volt az "Eldobva leállításkor, hacsak nem menti máshová" szövegrészlet is...

Feltöltött fájltípus: kliens vagy szerver oldalon dől el?

Most botlottam egy érdekes problémába.
Csináltam egy php alapú webalkalmazást, ahová fel kell tölteni egy .csv fájlt.
A biztonság kedvéért ráellenőrzök a fájl típusára is:

Ha ez a ($_FILES["file"]["type"] == "text/csv"), akkor továbbengedem a futást.
A linuxos böngészőmből simán lefutott egy adott inputra a program. Egy ismerősöm azonban Microsoft Windows operációs rendszer alól futtatta ugyanezzel a fájllal a webalkalmazást, és neki hibát adott. Az ő kedvéért be kellett tennem:
|| ($_FILES["file"]["type"] == "application/vnd.ms-excel")

Azt hittem korábban, hogy ezt a szerver dönti el, hogy az adott fájl milyen típusú. Ezek szerint ez nem így van.

Egyébként az utóbbi időben törekszem arra, hogy a parancssori szkriptjeimet átültetem webes alapúvá, hogy szakavatatlanok is tudják használni az intraneten. (Nagy segítség ehhez az exec() parancs, aminek visszatérési értéke is van.)

Arch linux a fedélzeten

A nyári szabadságom két hete után (melyből néhány napot a kiváló könyvtárral és medencékkel rendelkező Rosinantéban, egy elérhető (árú), örömforrásokban igen gazdag, vidéki éttermiség számára is ajánlott helyen töltöttem) ma volt az első munkanapom: ezt pedig teljes egészében Arch linuxszal töltöttem.

Az elmúlt években csak az Ubuntuig jutottam el munkahelyileg (legalábbis olyan szinten, hogy biztos lehettem abban, hogy minden üzembiztosan megy -- beleértve PCoIP-s vmware-t és Tandem emulátort és egyéb szkripteket), de most átléptem ezt a küszöböt, és valami szép linuxot is el tudtam kezdeni használni.

Svájci bicska - perl

Miközben azon igyekeztem, hogy egy korábbi blogbejegyzésem kapcsán felmerült éles-adat-életlenítéshez valami karatker-rotációt végezzek, találtam egy remek weboldalt, amelyen különféle perl trükkök láthatóak. Nekem élmény volt: http://www.math.uiuc.edu/~hildebr/computer/perltips.html

Ugyanis időről időre újra előkerül munkám során, hogy perlt használjak, de aztán a perlmentes hetek alatt sokat felejtek. Jó egy ilyen oldal, ahol a lényegesebb dolgok össze van foglalva.

Amúgy számomra az alapértelmezett svájci bicska inkább a php (még apróbb feladatokra is) vagy persze a bash, megspékelve cut-grep-sort-uniq-sqlite3-bc-diff parancsokkal. Ha vannak lelkes "használd inkább ezt!" hozzászólók, akkor ne kíméljetek.

Takarítsunk a lemezen

Amikor kezd megtelni a merevlemezem, megszáll az ihlet, hogy gyorsan kiderítsem, melyek a feleslegesen őrzött nagy fájlok. Régebben a KDE alapú filelight programot használtam efféle áttekintő vizsgálatokra. Aztán rájöttem, hogy megvan erre a Gnome alapú eszköz is: baobab. Bizonyos helyzetekben azonban a parancssori megoldásnak párja nincs.

A közismert du programnak van egy interaktívabb (ncurses alapú) változata, az ncdu, amivel igazán kiválóan lehet rátapintani a törlendő "nagy falatokra". Kérdőjel (?) használatával súgót ad; leginkább csak az r (frissítés - refresh) és a d (törlés - delete) billentyű kellett, no meg a mozgásra használt gombok.

Az rlwrap sokoldalúsága

A napokban csodálkoztam rá az rlwrap sokoldalúságára. Igazi mazsola a parancssori világ száraz kalácsában!
Egy példa, amit bash-ből lehet használni szövegbekérésre (s az alapértelmezett változat felvillantására):

order=$(rlwrap -S 'Your pizza? ' -H past_orders -P Margherita -o cat)

De lehet használni arra is, hogy érzékeny adatok parancssorba írásakor a jelszó ne kerüljön bele a historyba, vagy hogy az adatbáziskezelő kimenetét lehessen szűrni vagy less-szel görgetni... A részletek a man oldalon, pl. az Examples részen: http://linux.die.net/man/1/rlwrap
(Megj: a fenti orderes példa szintaktikai hibásan jelenik meg a man oldalon; egyrészt ` balra dőlő aposztróf kell (ezt én dollár+zárójellel cseréltem le), másrészt a -H előtt szóköz írandó.)

Tudáskiegészítés

Konkrétan az a helyzet, hogy nagyjából egyedül küzdök a linuxaimmal (Ubuntu, Arch, CentOS). Időnként szembesülök azzal, hogy egészen kicsi híja annak, hogy valami praktikus fennakadás megoldódjon, amikkel már hetek-hónapok óta küzdök (vagy megszoktam, hogy valami csak az egyik linuxon megy).

Odáig eljutottam, hogy már munkahelyi környezetben is tudom használni az Arch linuxomat (azaz lényegében utolérte a konfigurációs "szépsége" az Ubuntuét, amit már másfél éve használok).

Ami még kellene:
- A VPN kliens (automatizáltságának a) belövése.
- Az egyik munkahelyi szobámban megkeseríti az életem a proxy; vannak módszereim a megoldásra, de hátha van még profibb út.
- Szeretném érdemben használni a git-et a mindennapok során...
- Kíváncsi vagyok, más hogyan használja az Amazonos virtuális gépeit.
- A médialejátszás trükkjei is érdekelnének
- Érdekelnének apró parancssori trükkök, hogy ki mit hogyan szokott megoldani (cserébe pár finomsággal én is ki tudok rukkolni). Kedvenceim a grep, cut, rlwrap, paste, sort, uniq, sqlite3, bc, meld, geany, ssh, sshfs, bash huncutságok
- Persze tájékozódási pontokat is gyűjtök (webhelyek formájában), pl. effélékre gondolok: https://github.com/lazierthanthou/my-ubuntu-setup

Oracle parancssor ügyesítése

Megírom első blogbejegyzésem. :-)

Nagy szerencsémre a munkahelyemen rám van bízva, hogy milyen operációs rendszert és milyen eszközöket használok. Így aztán különféle linuxokon dolgozom; alapvetően Ubuntun, és néha (főleg, ha túl sokat fagyogat a LibreOffice vagy Apache OO, akkor) rákattanok a (még messze nem olyan kényelmesre belőtt) Archlinuxra. Egyébként föltett szándékom, hogy előbb-utóbb kitaposom ezt az Archlinuxot is, de hát a munkaidőből nem szeretek erre elvenni időt, így aztán ez tolódik, tolódik...

Ubuntun használtam tehát az Oracle sqlplus-t. Zavart, hogy nem megy az előző parancs szerkesztése (felfelé nyíllal), meg a kurzor gombok, delete... így aztán rákerestem a témára, és találtam egy remek kis írást. Az hagyján, hogy sikerült lefordítani, (és az sqlplus-szal azonos könyvtárba másolással) beüzemelni a gqlplus-t, ami az sqlplus felhabosítása, de még ennél is jobban tetszett, hogy van olyan, hogy "readline wrapper", azaz rlwrap. Van egy alkalmazásod, ami a szerkesztést illetően buta, mint a föld ( = sqlplus vagy akár a cpan), és egyszerűen becsomagolod a readline-ba.