Skip to content

Eemaldame failist tühjad read ja tühjad realõpud

Erisuguses failipõhises andmetöötluses on tihti vaja failist välja visata tühjad read ja/või asjatud tühikud rea algusest ja lõpust. Kui oled Linuxi kasutaja, siis sed tuleb käsureal appi:

sed 's/^ //; s/ $//; /^$/d' miskifail.txt > miskiuusfail.txt

Lihtne selgitus:

  • miskifail.txt - algne fail
  • miskiuusfail.txt - töödeldud fail
  • `s/^ //` - eemaldame tühikud rea algusest
  • `s/ $//` - eemaldame tühikud rea lõpust
  • `/^$/d` - eemaldame tühjad read

Eraldame webm-videost audiofaili

Sul on webm videofail, mis teadupärast koosneb kas VP8 või VP9 videovooost ja ogg või opus audiovoost. Sa tahad sealt kätte saada vaid seda heliosa. Kuna webm näol on tegemist konteineriga, siis pole isegi uuesti kodeerida vaja. Lihtsalt eraldad vajaliku helivoo.

Eeldame, et arvutis on olemas libav (eks midagi sarnast on olemas ka ffmpeg puhul). Esmalt vaatad millest fail koosneb:

avprobe minufail.webm

Eeldusel et eelmise käsu väljundis oli midagi taolist "Stream #0.1: Audio: vorbis, 44100 Hz, stereo" siis eraldame sealt selle soovitud helivoo:

avconv -i minufail.webm -map 0:1 -c:a copy minufail.ogg

Kui avprobe ütles et tegemist oli opus'ega, siis võid panna helifaili laiendiks .opus, aga .ogg peaks ka toimima.

Kuna webm konteiner on natuke modifitseeritud matroska-konteiner, siis peaks sama toimima ka suvalise .mkv failiga. Lihtsalt seal võib leiduda ka muid audiokodekeid (vaata et paned õige laiendi).

Youtube on nüüdsest vaikimisi HTML5 video põhine

Tundub et Google on brauseritootjate, meediaomanike, võrguteenusepakkujate, kasutajate ja veel muude huviliste vahel suutnud mingi sellise tasakaalupunkti leida, kus on võimalik Youtube's Flashi-põhilisele videole öelda "Suured tänud ja head aega".

Paar aastat tagasi oli Youtube's HTML5-põhise video vaatamiseks vaja liituda testprogrammiga. Mõni aeg hiljem piisas sellest et sul oli brauseris Flash kinni keeratud või polnud üldse paigaldatud, siis nüüd ei tohiks viimaste brauseriversioonide puhul enam vahet olla. Youtube peaks esimese valikuna pakkuma võimalust mängida HTML5 videot. Niimoodi väidab Youtube ajaveeb.

Kodekite ja vormingute osas on Youtube's olukord sama kui viimase aasta jooksul - Opera ja Chromium mängivad Webm (VP9), Firefox Webm (VP8) ning IE ja Safari H.264 videot. Alates versioonist 36 oskab Firefox vaikimisi ka MSE'd ning on seega suuteline Youtube's ka VP9-põhist videot mängima (minu vana profiili puhul vajas küll media.mediasource.enabled jah-olekusse panemist).

Airbus A350 XWB võetakse sellel kuul kasutusele

Täiesti uusi lennukeid just väga tihti kastusele ei võeta. Kuid Airbus'il on selline hetk just kätte jõudmas. Peale aastate-pikkust arendust ja paljusid viivitusi anti esimene A350 detsembris Qatar Airways'ile üle ning esimesed kliente teenindavad lennud Doha-Frankfurt liinil toimuvad juba sellel kuul.

Airbus A350 XWB on mõeldud teenindama õhukesi ja keskmise reisijate arvuga pikamaa-liine (versus A380, mis on mõeldud suure reisijate-arvuga kaugliinde jaoks). Ta saab vahetama välja sama tootjafirma varasemad A330 ja A340 mudelid ning konkureerib Boeing'i toodetavate B777 ja B787 (osaliselt ka B747) lennukitega.

Airbus A350 XWB toodetakse kolmes variandis ning sõltuvalt mudelist ja konfiguratsioonist võib reisijate arv varieeruda 270 ja 475 vahel ning lennukaugus ulatuda 15300 kilomeetrini.

Ka meie lähinaaber Finnair on tellinud 19 A350 lennukit ning juba sel aastal on ka eesti klientidel selle uue ja tehnoloogiliselt innovatiivse lennukitüübi lendudele sattuda.
A350 XWB esmalend Tolouse's 2013

Eesti keel ja arvutimaailm

Anto Veldre kirjutas kaks aastat tagasi hea artiklisarja "Infoühiskonnast hereetiliselt". Selle kolmas osa käsitles eesti keele tulevikku moodsa infomaailma kontekstis. Artikli lõpus on asjalik ja konkreetne tegevuskava, mis kindlasti viiks meid sinnapoole, et eesti keel paarikümne aasta pärast oleks enamat kui köögikeel.

Sattusin seda täna uuesti lugema ning pean kurbusega tõdema, et mitte midagi pole paari aastaga muutunud. Avalikku meediaruumi jälgides ei tule mulle meelde et mõnigi neist ettepanekutest oleks teoks saanud ning artiklis toodud negatiivsed näited poleks enam asjakohased.

Kustutame mälupulga tühjaks

Praktikas on tihti vaja mõne mälupulga kogu sisu mõistlikult turvalisel viisil tühjendada. Linuxis käiks see kõige lihtsamal viisil käsurealt nii (olles administraatori õigustes):

shred /dev/sdx -n 5 -v

Vajalik /dev/sdx vaata järgi näiteks df käsuga, kuid tavalise ühe kõvakettaga arvuti puhul oleks üldjuhul /dev/sdb (praktikas on mälupulgal tihti vaid üks partitsioon ja /dev/sdb1 toimib ka). Võti -n kirjutab kõik üle 5 korda ja -v näitab mida ta parasjagu teeb.

Programm shred loomulikult kolmetäheliste organisatsioonide huvi vastu ei aita, kuid harju keskmise huvilise vastu küll ning teeb seda viisil, mis arvestab välkmälude tavapärase hajutatud kirjutamise (wear leveling) loogikaga ehk teisisõnu kirjutab äärest ääreni.

Tabelite suurused Postgresql andmebaasis

Teinekord on selgust vaja saada mis tabelid haaravad andmebaasis suurima mahu. Selline lihtne päring on abiks (näitab ära ka toast-tabelid):

SELECT nspname || '.' || relname AS relation, pg_size_pretty(pg_relation_size(C.oid)) AS size
FROM pg_class C
LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace)
WHERE nspname NOT IN ('pg_catalog', 'information_schema')
ORDER BY pg_relation_size(C.oid) DESC
LIMIT 25;

Kui toast-tabeleid pole eraldi vaja, siis vaata infot nii:

SELECT nspname || '.' || relname AS relation, pg_size_pretty(pg_total_relation_size(C.oid)) AS total_size
FROM pg_class C
LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace)
WHERE nspname NOT IN ('pg_catalog', 'information_schema')
AND C.relkind <> 'i'
AND nspname !~ '^pg_toast'
ORDER BY pg_total_relation_size(C.oid) DESC
LIMIT 25;

Kui aga tahad näha indeksite kasutust, siis nii (allikas Evan Hoffman):

SELECT schemaname, tablename,
pg_size_pretty(pg_relation_size(schemaname || '.' || tablename)) AS size_p,
pg_total_relation_size(schemaname || '.' || tablename) AS size,
pg_size_pretty(pg_total_relation_size(schemaname || '.' || tablename)) AS total_size_p,
pg_total_relation_size(schemaname || '.' || tablename) - pg_relation_size(schemaname || '.' || tablename) AS index_size,
(100*(pg_total_relation_size(schemaname || '.' || tablename) - pg_relation_size(schemaname || '.' || tablename)))/CASE WHEN pg_total_relation_size(schemaname || '.' || tablename) = 0 THEN 1 ELSE pg_total_relation_size(schemaname || '.' || tablename) END || '%' AS index_pct
FROM pg_tables
ORDER BY size DESC LIMIT 25;

Muudame kataloogitäie piltide suurust ja nime

Sul on näiteks kataloogitäis jpg-faile, mida on vaja sobitada ühte suurusesse. Selline lihtne toiming aitab (kui sul on muud vormingud, siis tee vajalikud asendused ning ära unusta tõstutundlikkust ja loomulikult convert käsule vajalikke võtmeid juurde lisada).

convert *.jpg -resize 600 -set filename:f 'prefiks-%t' '%[filename:f].jpg'

Siin näites resize 600 teeb kõik pildid 600 piksli laiuseks ning kõrguse sätib vastavalt algse faili proportsioonidele. Kõiki muid variante leiad Imagemagick Resizing or Scaling lehelt. Set filename ... aga moodustab uue faili nime algsest nimest (seda teeb %t) ilma laiendita ning paneb ette sõna prefiks (kirjuta sinna mida vaja või pane ta lõppu kui vaja). Kõiki asendusi saad vaadata lehelt Imagemagick Format and Print Image Properties.

Kui convert käsk midagi huvitavat ei tee, siis on ehk imagemagick arvutist puudu (või otsiteest väljas) ja "aptitude install imagemagick" lahendab olukorra (midagi sama on ka rpm-distrote jaoks ning leidub ka installikas maci ja windowsi jaoks). Siin on soovitus meelega convert, mitte mogrify käsu kohta (esimene jätab vaikimisi vanad failid alles, teine mitte).

Linuxile on saadaval uue renderdusmootoriga Opera

Teatavasti loobus Opera enam kui aasta tagasi oma renderdusmootorist ning võttis kasutusele WebKit'ist kahvlisse aetud Blink'i. Samaga ilmusid ka uued Opera versioonid Windowsi ja Mac OS X platvormidele (Opera versioonid alates 15'st). Opera Linuxi variant jäi aga Presto-põhise 12.16 juurde.

Selle aasta alguses võeti ka Opera Linuxi-arendus jälle ette ning eile ilmus esimene Opera versioon Linuxile (v 26). Arendajad ise ütlevad et toimib vaid Ubuntus, kuid minul töötab probleemitult ka Debianis ning ilmselt ka muudes .deb põhistes distributsioonides (näiteks Mint). Kes tunneb huvi, siis asi hargneb siit deb.opera.com. Kui seni tuli installida pakk nimega opera, siis nüüd on nimeks opera-stable ning praktikas tähendab see et uus ja vana Opera saavad Linuxis kõrvuti eksisteerida (vana versiooni kasutamine pole turvalisuses mõttes küll hea idee).

Kui varem pole olemas polnud, siis paigalduse käigus lisatakse süsteemi ka pepperflashplugin-nonfree, mis on wrapper-skript PPAPI-põhise flashi plugina lisamiseks (laeb alla Google Chrome ning pakib sealt lahti vaid flashi plugina).

CUPS'i ehk Linuxi printerite seadistamine eemalt

Sul on mingid Linuxiline arvuti, kus on vaja printereid eemalt seadistada (seda juhib deemon nimega cupsd). Võid sinna arvutisse sisse logida ja käsurealt möllata või seadistada, et selle arvuti cupsd lubab end veebiliidesest seadistada.

Kuna tavaliselt seda vaja teha üliharva, siis hoopis lihtsam lahendus on ssh tunnel, mille teed oma arvutis käsurealt nii (miskimasin on see, kus vajad seadistamist):
ssh root@miskimasin -T -L 6631:localhost:631

Ja siis võtad oma arvuti veebibrauseri ette:
localhost:6631
ning teed mis vaja. Kui kõik on valmis, siis paned käsurealt Ctrl+C abil ssh tunneli kinni.

Arvuti võib lauaarvuti, sülearvuti või nutitelefon - peaasi, et seal toimivad sshd ja cupsd. Proovinud ei ole, aga sama peaks toimima ka Mac OS X puhul (kui sshd on lubatud).