VIM: Välise käsu rakendamine valitud blokile
Vali tekstiblokk ära, eriti efektiivne on visuaalne valik (CTRL+V), siis siseesta :!sort ja voila - valitud tekstiblokk filteeritakse läbi ’sort’ nimelise shellikäsu. Abiks, kui sul on pikk nimekiri sarnastest asjadest.
Veebiserver Pythonis - 1 rida :)
- Mine mõnda kataloogi, kus asuvad failid, mida brauseris testida tahad
- user$ python -c “import SimpleHTTPServer;SimpleHTTPServer.test()”
- Point a web browser at localhost:8000, and away you go.
~ PHP-le ei meeldi trellid, karskele ei meeldi viin ~
PHP-s on funktsioon parse_ini_file, mis teeb standardsete INI failide parsimise hästi mugavaks. Reeglina käivad ühe INI faili juurde ka kommentaarid, kus siis seletatakse lahti mõne seadistuse mõte või tähendus. Ja kommentaare tähistab konfifailides ja skriptides tavaliselt # rea alguses. Näiteks nii
[general]
# selle aadressile saadetakse koik teated.
email = keegi@kusagil.ee
server = localhost
Kena kõik. Nüüd võtad kätte ja muudad ühte seadistust, aga jätad vana alles. Lihtsalt igaks juhuks, et ehk läheb kunagi tarvis.
[general]
# selle aadressile saadetakse koik teated.
#email = keegi@kusagil.ee
email = keegi@mujal.ee
server = localhost
Kui nüüd see fail parse_ini_file-st läbi lasta, siis on tulemus tegelikult selline:
Array
(
[general] => Array
(
[#email] => keegi@kusagil.ee
[email] => keegi@mujal.ee
[server] => localhost
)
)
Mõneti ootamatu tegelikult. Selgub, et # rea alguses EI TÄHISTAGI kommentaari. See on täiesti lubatud märk ja PHP parsib seda rida nagu iga teist. Muidugi mõista ei ole mitte kusagil kirjas, et # üldse peaks PHP ini faili kontekstis kommentaari tähistama, see on lihtsalt “Assumption is the mother of all screw-ups” kõige ehedamal kujul. Omades mõningast kogemust konfifailidega, sa lihtsalt eeldad, et # rea alguses on kommentaar. Üldjuhul sellest ei muutugi mitte midagi, sest seadistus nimega #email ei huvita üldiselt mitte kedagi ja ei sega mitte midagi. Aga nüüd järgmine näide:
[general]
# selle aadressile saadetakse koik teated (jäta see tühjaks, kui sa ei soovi teateid saada)
email = keegi@kusagil.ee
server = localhost
Kui nüüd see konfifail parse_ini_file funktsioonist läbi lasta, siis on tulemus:
Array
(
[general] => Array
(
)
)
Miks? Sest selle funktsiooni manuaalis on kirjas järgmine märkus: Note: There are reserved words which must not be used as keys for ini files. These include: null, yes, no, true, and false. Values null, no and false results in “”, yes and true results in “1″. Characters {}|&~![()" must not be used anywhere in the key and have a special meaning in the value.
PHP ei saa selle faili parsimisega hakkama, sest see on vigane! Kui enne sulge sisaldavat ja trelliga algavat rida on veel seadistusi, siis need saad sa kätte, aga pärast seda rida olevaid seadistusi lihtsalt ei ole. Kui sul on error_reporting(E_ALL) ja display_errors On, siis sa muidugi näed ka hoiatust parsimisvea kohta. Aga mõnikord tuleb ette, et veateated on faili suunatud või üldse ära peidetud ja siis jääb selline asi kahe silma vahele.
Ülaltoodust tuleneb ka see, et kui su konfifail on
[general]
esimene
teine=test
siis parse_ini_file saab aru, et “esimene” rida on vigane rida ja jätab selle lihtsalt vahele. Ilma hoiatuseta.
Minul õnnestus igatahes päris tubli tükk aega ära kulutada, et aru saada, miks ühe faili parsimine pooleli jääb. error_reporting oli maha keeratud, sest vahepeal oli vaja ühte mitte väga kvaliteetset koodijuppi jooksutada ja pärast seda oli taha maha jäänudki. Ja paistab, et ma ei ole sugugi mitte ainus, kes sellest teadlik ei ole, sest veeb on põhimõtteliselt täis näiteid, kus seadistusi kommenteeritakse välja just # abil. Korrektne on aga hoopis ; (semikoolon) rea alguses.
Millega süüa NBU faile?
Mul oli arvutis oma vanast telefonist Nokia PC Suitega tehtud backup fail, NBU formaadis. Tahtsin selle sisu üle vaadata, aga PC Suite ise sellist võimalust ei paku või vähemalt ei suutnud ma seda sealt leida. Ja niisama uisapäisada taastada ka seda faili ei taha - mine tea mida pekki keerab.
Niisiis otsisin utiliiti, mis suudaks selle faili inimese jaoks loetavaks teha ja leidsin ka - Noki. Häda aga selles, et prooviversioon piirab igat liiki kirjete arvu, saab kätte ainult 50 kontakti, 50 sõnumit, etc. Ja ühekordse tegevuse eest on natuke tobe $22 ka maksta.
Vaatasin seda faili siis veelkord ja avastasin, et tegelikult on kontaktikirjed seal täiesti vabatekstis olemas, iga kirje VCF formaadis, natuke binaarläbu ka vahel. Töötlemiseks peab nad seal kuidagi eraldama, aga mul oli vaja ainult üle vaadata, nii et probleem lahendatud.
Python easter egg
1. Käivita interpretaator ilma argumentideta
2. Kirjuta import this
Loe tulemust :)
Eriti meeldib mulle sealt järgnev:
If the implementation is hard to explain, it’s a bad idea.
If the implementation is easy to explain, it may be a good idea.
Võrguliideste prioriteet WXP-s
Kui ka sinu läpakas eelistab kasutada WIFIt ka siis, kui saadaval on ka kiirem võrguühendus üle kaabli, siis on lahenduseks “Automatic Metric” väärtuse muutmine - täpsemalt on seda kirjeldatud MS KB-s
Symbian imeb munakive läbi kokteilikõrre
Ma arvasin ka siiani, et Symbian on üks ühtne platvorm ja et sellele on täiesti normaalsed arendusvahendid olemas, aga nagu siit lugeda võib, ei ole see olukord kaugeltki mitte nii roosiline. Ericssonil on oma versioon sellest (UIQ), Nokial on lausa 2 oma versiooni (vanem S60 ja uuem S60 version 3), lisaks on veel mingitel aasia tootjatel oma dialekt ja need kõik on omavahel binaarsel tasandil mitteühilduvad - s.t. kui sa ühe platvormi jaoks asja binaari valmis teed, siis mujal see lihtsalt ei tööta. Ja lisaks veel terve rida muid probleeme (äärmiselt jabur multitasking, veider C++ dialekt, jne, jne).
Lihtsalt masendav.
Thunderbird & vanade kirjade kustutamine
Vaatasin oma meilikasti üle - paari kausta filtreeritakse kirjad, mis pakuvad huvi ainult paari päeva jooksul peale saabumist hiljem võiks nad automaatselt kustu minna ja mõtlesin et oleks väga sheff, kui Thunderbird oskaks nad ka tõesti automaagiliselt ära kustutada.
Ja siis - täiesti meeldiva üllatusena enda jaoks - avastasin, et oskabki! Paremklikk IMAP folderil, Retention policy ja sealt “Delete messages more than 7 days old”. Täpselt nii lihtne ongi.
Postgre WTF
Kui üritad Windowsist “psql”-iga Postgre baasi külge minna ja sul täiesti juhtumisi on C:\ ketta juurkataloogis “dev” kataloog, siis autoriseerimine ei õnnestu, sest psql arvab et tegemist on Unixiga ja üritab “/dev/tty” kaudu parooli küsida. Mis Windowsis aga loomulikult ei õnnestu.
Lähemalt on probleemist ja selle põhjusest räägitud siin: http://paperstack.com/tips/psql_win32_password.html
Minu jaoks lahendas probleemi upgrade 8.0.8 peale.
Down Them All!
Kui sul on juhtumisi vaja mingist veebiserverist alla laadida terve kataloogitäis faile, siis on tuleb appi Firefoxi extension nimega DownThemAll. Mul oli näiteks terve kataloogitäis (umbes 40) pilti vaja endale ära salvestada ja selle extensioni abil sain ma seda teha 2 hiireklõpsuga. Tundub, et nimetet laiendus oskab veel nii mõndagi, aga mul praegu rohkem teda vaja ei läinud.





Recent Comments