<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>mknod /dev/blog c 1 3 &#187; computers</title>
	<atom:link href="http://blog.technostoic.net/category/computers/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.technostoic.net</link>
	<description>Dave Null is my close friend</description>
	<lastBuildDate>Mon, 06 Sep 2010 19:55:27 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>yak shaving anonymous</title>
		<link>http://blog.technostoic.net/2010/09/06/yak-shaving-anonymous/</link>
		<comments>http://blog.technostoic.net/2010/09/06/yak-shaving-anonymous/#comments</comments>
		<pubDate>Mon, 06 Sep 2010 19:55:27 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[computers]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://blog.technostoic.net/?p=531</guid>
		<description><![CDATA[Nu stiu cum se face, da' fac ce fac si ma trezesc ca plec de la o idee relativ simpla si ajung la ditamai lista de scriptulete si configuri si 'jde manpages citite. Adica bunul simt imi spune ca e tot vina mea, da' zau daca stiu solutii mai simple la problemele astea. Si pentru [...]]]></description>
			<content:encoded><![CDATA[<p>Nu stiu cum se face, da' fac ce fac si ma trezesc ca plec de la o idee relativ simpla si ajung la ditamai lista de scriptulete si configuri si 'jde manpages citite. Adica bunul simt imi spune ca e tot vina mea, da' zau daca stiu solutii mai simple la problemele astea. Si pentru ca tind sa tratez si blog posturile tot asa (si data fiind prioritizarea, ajung din an in pasti sa am timp sa documentez cum imi lace ceva interesant), iaca scriu doar in mare ce si cum, si daca ii pare cuiva interesanta vreuna din povesti, detaliez (sau fac ceva slide-uri pt. rlug meet).</p>
<ul>
<li>la munca avem un fisier cu parolele de root criptat cu gpg, si ma plictisisem sa tot copy-paste de-acolo, asa ca mi-am manarit ssh-ul sa imi ruleze via LocalCommand un scriptan care imi gaseste parola corecta si o baga in X11 selection</li>
<li>si ca tot eram aici, mi-am facut configul de ssh din bucati si un makefile care le aduna (momentan doar concatenare, dar sper sa apuc sa fac ceva parsare mai decenta, in principal pentru ca ssh_config nu stie de grupuri ca sshd_config)</li>
<li>n-am gasit un plugin decent de nagios care sa verifice utilizarea in inodes a filesystemelor, asa ca am scris unul (ma rog, luat unul de pe net si grefata functionalitatea in el). Inca o data m-am lamurit ca mai am multe de invatat despre SNMP (adica inca nu mi-e clar daca sa bomban sau sa fiu uimit de ce-am gasit).</li>
<li>si latest yak shaving operation e scrierea unui hook de pre-commit de CVS (da, unii mai folosesc asa ceva). Spre deosebire de restul 3 pe care le-am adus la o forma utilizabila azi, pe asta abia l-am pornit (si sper sa-l rezolv fie in seara asta fie maine).</li>
</ul>
<p>No, daca intereseaza pe cineva detalii despre vreo chestie de mai sus, ask si incerc sa detaliez, altfel iar ma aberez degeaba <img src='http://blog.technostoic.net/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p>PS1: "yak shaving" e o expresie pe care am pescuit-o de la niste programatori si care descrie acele "paranteze" monumentale care intervin intr-o operatie care parea relativ simpla la inceput. Sau cum zicea un prieten, "n-ai o ceapa, tai un pui".</p>
<p>PS2: ca sa vedeti cat de grava e boala asta, voiam sa caut pe net o definitie draguta pt. "yak shaving" si am realizat dupa 10 minute ca se intampla din nou <img src='http://blog.technostoic.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.technostoic.net/2010/09/06/yak-shaving-anonymous/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>perl away</title>
		<link>http://blog.technostoic.net/2010/08/31/perl-away/</link>
		<comments>http://blog.technostoic.net/2010/08/31/perl-away/#comments</comments>
		<pubDate>Mon, 30 Aug 2010 22:19:15 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[computers]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://blog.technostoic.net/?p=527</guid>
		<description><![CDATA[(Da, stiu ca n-am mai scris de mult, sorry). Uite problema pe care am avut-o azi: sa se ia un script existent care sterge dintr-un maildir mailurile mai vechi decat o data specificata in linia de comanda si sa se ajusteze sa ia si parametru de tip "X days ago". Sounds pretty easy. And it [...]]]></description>
			<content:encoded><![CDATA[<p>(Da, stiu ca n-am mai scris de mult, sorry).</p>
<p>Uite problema pe care am avut-o azi: sa se ia un script existent care sterge dintr-un maildir mailurile mai vechi decat o data specificata in linia de comanda si sa se ajusteze sa ia si parametru de tip "X days ago".</p>
<p>Sounds pretty easy. And it is. Da' mi s-a facut mila cand am vazut ca scriptul (perl) se uita intr-un maildir cu sute de mii de fisiere si itereaza peste `ls -g -G -U --time +%Y%M%d`, asa ca m-am induplecat si l-am rescris (zic eu) mai elegant.</p>
<p>In primul rand mi-am zis ca e pacat sa faci mega-liste cu ls si ca poti gasi ceva metoda decenta de a face asta direct din perl. Cu ce traversezi frumos structuri de fisiere? Cu File::Find, of course! E in core? Este de la 5.0, nu e nevoie de instalare. Un super feature al lui File::Find e ca exista un programel care se cheama find2perl care accepta (aproape orice fel de) argumente pentru GNU find si returneaza un program perl care face aceeasi chestie cu File::Find (ocazie cu care mi-am adus aminte ca in Higher Order Perl era un capitol foarte dragut cu ce poti face cu stilul asta de callbacks, ar trebui sa-l recitesc). Bonus points ca am descoperit ca stat() face cache la filehandle in _ ca sa poti face repede mai multe teste succesive pe acelasi fisier. Useful trick.</p>
<p>Boon, acum aproape ca avem un script decent, ramane sa-i fac si partea de UI, anume stabilita semnificatia argumentelor. Mi-am adus aminte ca Damien Conway avea niste sfaturi utile in Perl Best Practices, asa ca am recitit capitolul cu pricina (bine ca port dupa mine exemplare electronice pirat ale cartilor din biblioteca), ocazie cu care am adaugat si Getopt::Long in lista de dependinte (don't worry, tot core module). Am adaugat ici-colo niste defaults si niste mesaje, si <a href="http://blog.technostoic.net/prune_maildir.pl.html">iaca scriptuletul</a>. Nu e cine stie ce, dar mi-a dezmortit putin mintea (sunt gripat zilele astea) si, sper eu, va fi mai usor de citit/debugat de catre urmasi. Maine fac si niste teste de performanta, sunt curios cum se comporta fata de versiunea dinainte.</p>
<p>PS: Am cautat cateva minute si n-am gasit niste template-uri decente de usage(), help() si eventual POD pt. subrutine. "Decent" inseamna "nu trebuie musai sa fie CPAN-friendly, dar cat sa arate ok la un --help sau perldoc". Please share.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.technostoic.net/2010/08/31/perl-away/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>sysadmin day 2010</title>
		<link>http://blog.technostoic.net/2010/07/30/sysadmin-day-2010/</link>
		<comments>http://blog.technostoic.net/2010/07/30/sysadmin-day-2010/#comments</comments>
		<pubDate>Fri, 30 Jul 2010 09:48:09 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[computers]]></category>

		<guid isPermaLink="false">http://blog.technostoic.net/?p=524</guid>
		<description><![CDATA[Anul asta n-am prea mult timp de "ziua noastra", dar dau cateva linkuri de sezon: Pagina oficiala deja celebrul "sysadmin song" ... mai completez chestii pe masura ce-mi mai vin in minte...]]></description>
			<content:encoded><![CDATA[<p>Anul asta n-am prea mult timp de "ziua noastra", dar dau cateva linkuri de sezon:</p>
<ul>
<li><a href="http://www.sysadminday.com/">Pagina oficiala</a></li>
<li> <a href="http://deadtroll.com/sysadmin/">deja celebrul "sysadmin song"</a></li>
<li>... mai completez chestii pe masura ce-mi mai vin in minte...</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.technostoic.net/2010/07/30/sysadmin-day-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>devops humor</title>
		<link>http://blog.technostoic.net/2010/07/19/devops-humor/</link>
		<comments>http://blog.technostoic.net/2010/07/19/devops-humor/#comments</comments>
		<pubDate>Mon, 19 Jul 2010 07:54:35 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[computers]]></category>
		<category><![CDATA[quickies]]></category>

		<guid isPermaLink="false">http://blog.technostoic.net/?p=518</guid>
		<description><![CDATA[Banuiesc ca dintre putinii mei cititori se gasesc cativa care sa urmareasca fenomenul Devops (sau DevOps? sau ##devops? whatever). Le recomand trei id-uri de twitter care sunt in ultima vreme un soi de lolcats pt. mine: @ShitMyDevOpSays, @devops_borat, @DBAHULK (call me sick, dar rad la cam toate glumele de-acolo, cum ar fi: "If you like [...]]]></description>
			<content:encoded><![CDATA[<p>Banuiesc ca dintre putinii mei cititori se gasesc cativa care sa urmareasca fenomenul Devops (sau DevOps? sau ##devops? whatever). Le recomand trei id-uri de twitter care sunt in ultima vreme un soi de lolcats pt. mine:</p>
<p><a href="https://twitter.com/ShitMyDevOpSays">@ShitMyDevOpSays</a>, <a href="https://twitter.com/devops_borat">@devops_borat</a>, <a href="https://twitter.com/DBAHULK">@DBAHULK</a></p>
<p>(call me sick, dar rad la cam toate glumele de-acolo, cum ar fi: "If you like masturbate on Java, I use nosql and tell you also like masturbate on Ruby, Clojure and TDD. #hunch")</p>
<p>Have fun <img src='http://blog.technostoic.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.technostoic.net/2010/07/19/devops-humor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>cand n-are omul de lucru, isi face</title>
		<link>http://blog.technostoic.net/2010/05/09/cand-n-are-omul-de-lucru-isi-face/</link>
		<comments>http://blog.technostoic.net/2010/05/09/cand-n-are-omul-de-lucru-isi-face/#comments</comments>
		<pubDate>Sun, 09 May 2010 11:42:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[computers]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://blog.technostoic.net/?p=506</guid>
		<description><![CDATA[Cei care mai umbla prin locul de pierzanie numit #mumu sunt relativ la curent cu faptul ca saptamana asta a ajuns serverul pentru care am facut atata tam-tam acum ceva vreme. Pentru mine partea grea abia incepe. Cateva zile la rand au durat "negocierile" hardware (intrucat daca pui la un loc diverse componente pretentioase, nazurile [...]]]></description>
			<content:encoded><![CDATA[<p>Cei care mai umbla prin locul de pierzanie numit #mumu sunt relativ la curent cu faptul ca saptamana asta a ajuns <a href="http://blog.technostoic.net/2010/03/24/campania-donatii-pt-server/">serverul pentru care am facut atata tam-tam</a> acum ceva vreme. Pentru mine partea grea abia incepe. Cateva zile la rand au durat "negocierile" hardware (intrucat daca pui la un loc diverse componente pretentioase, nazurile se multiplica), dar pot anunta ca suntem (oarecum) in faza in care toate avem un server functional dpdv. hardware si testam configuratia. Vorbesc la plural pentru ca desi chipurile e treaba mea asta, sunt un whiner si cer mereu sugestii si ajutorul altora (dar macar sunt un whiner recunoscator).</p>
<p>Nu stiu exact cam cat mai dureaza (multumesc inca o data celor de la <a href="http://ines.ro/">Ines</a> si pe aceasta cale ca ma lasa sa tin amandoua masinile in paralel pana ma scarpin in cap), dar la <a href="http://wiki.lug.ro/mediawiki/index.php/%C3%8Ent%C3%A2lnirea_RLUG_Mai_%2710">intalnirea de joi</a> planuiesc sa improvizez (hopefully tot asistat, macar din public) un segment despre cum a mers si ce probleme am avut pana atunci. Cu poze, screenshoturi si live demo (well,  ssh pe obiectul in cauza). Asa ca va invit sa veniti sa vedeti unde-s banii dumneavoastra <img src='http://blog.technostoic.net/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p>PS: sugestii sunt oricand binevenite, asa ca daca e vreunul interesat de amanunte operationale, dati-mi de stire si va pun la curent.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.technostoic.net/2010/05/09/cand-n-are-omul-de-lucru-isi-face/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>campania &#8220;Donatii pt. server&#8221;</title>
		<link>http://blog.technostoic.net/2010/03/24/campania-donatii-pt-server/</link>
		<comments>http://blog.technostoic.net/2010/03/24/campania-donatii-pt-server/#comments</comments>
		<pubDate>Wed, 24 Mar 2010 19:40:37 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[computers]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://blog.technostoic.net/?p=494</guid>
		<description><![CDATA[Am publicat adineauri asta si pe RLUG, dar zic si aici pt. mai multa vizibilitate (haha): ---88--- So, daca va intereseaza in mod direct un ftp.lug.ro modern, cu spatiu pentru mai multe distributii si arhitecturi, stiti ce aveti de facut.]]></description>
			<content:encoded><![CDATA[<p>Am publicat adineauri asta si pe RLUG, dar zic si aici pt. mai multa vizibilitate (haha):</p>
<p>---8<-------------------------------------------------------<br />
Subject: Campania "Donatii pentru server"<br />
From: Petru Ratiu <rpetre@gmail.com><br />
To: Romanian Linux Users Group <rlug@lists.lug.ro></p>
<p>Hello,</p>
<p>Dupa cum majoritatea dintre voi stiti deja, serverul actual care gazduieste listele de discutii si mirrorul ftp.ines.lug.ro abia mai respira. Asadar, am ajuns, dupa 6 ani in care actualul server si-a facut datoria, in situatia de a-l inlocui cu unul nou-nout pentru a ne putea continua fara probleme discutiile pe liste, uploadurile si downloadurile.</p>
<p>Avand in vedere ca am beneficiat cu totii de ajutor venit via listele de discutii ale RLUG si a mirrorurilor ftp.lug.ro, si pentru ca sigur v-ati intrebat cum sa ajutati si voi la rindul vostru pe ceilalti, avem azi, iata, un motiv concret sa aratam din nou ca suntem o comunitate serioasa (sic!).</p>
<p>Asadar, dupa lungi dezbateri, am ajuns la concluzia ca Prolinux, care se ocupa de aceasta campanie (prin rpetre, wolfy si cmatei) are nevoie pentru achizitionarea serverului comunitatii RLUG de circa 2600 euro, masina respectiva urmand a fi achizitionata (prin intermediul unui dealer care ne face serviciul de achizitie fara a percepe vreun comision) de la unul dintre importatorii de echipamente Supermicro (http://www.elko.ro -- care nu vind direct catre end useri ).<br />
Componentele asupra carora am convenit sint urmatoarele:</p>
<p>- sasiu Supermicro 836TQ-R800B;<br />
- placa de baza Supermicro X8ST3-F-B;<br />
- procesor  Intel E5504;<br />
- memorie Kingston 2*2 GB, ECC;<br />
- 9 discuri Western Digital WD15EARS.<br />
(In vederea reducerii costurilor ne-am asumat riscul de a folosi discuri de clasa desktop, chiar daca sint mai putin fiabile decit cele de tip "enterprise".)</p>
<p>Propunerile de componente si discutiile premergatoare alegerii le puteti vedea la http://wiki.lug.ro/mediawiki/index.php/Hardware_Requirements  si respectiv la  http://wiki.lug.ro/mediawiki/index.php/Discu%C5%A3ie:Hardware_Requirements .</p>
<p>In acest moment situatia sumelor de care dispune Prolinux este urmatoarea:</p>
<p>Target aproximativ: 11000 RON ( 2200 EUR + TVA )<br />
Sumele donate pana la aceasta ora: 800 RON, dupa cum urmeaza:<br />
*  200 RON - anonim<br />
*  500 RON - anonim<br />
*  100 RON - anonim<br />
Donatii promise, inca nevirate: 1500 EUR, dupa cum urmeaza:<br />
*  1000 EUR - anonim<br />
*  500 EUR - anonim</p>
<p>Nota: Intrucit unii donatori si-au exprimat dorinta de a ramine anonimi, i-am lasat asa si pe cei care nu si-au exprimat explicit dorinta de a fi mentionati.</p>
<p>Restul de bani pana la suma de 11000 RON speram sa il strangem cu ajutorul donatiilor voastre, a membrilor inscrisi pe listele RLUG, cel tirziu 3 saptamani de la data depunerii avansului, in contul:</p>
<p>Asociatia Prolinux<br />
RO69 PIRB 4246 7240 0500 1000<br />
Piraeus Bank Romania<br />
Agentia Chibrit</p>
<p>De asemenea, Prolinux e eligibila pt. donarea a 2% din impozit (detalii: http://wiki.lug.ro/mediawiki/index.php/Doilasuta ) si accepta sponsorizari.</p>
<p>Tin sa mentionez ca restul banilor (in cazul in care va exista un rest) va ramane "la vedere" in contul asociatiei Prolinux. Mai mult, la cerere, oricine poate verifica situatia facturilor/chitantelor referitoare la aceasta achizitie.</p>
<p>Va multumesc anticipat pentru efort,</p>
<p>--<br />
Ratiu Petru<br />
Trezorier, Asociatia Prolinux</p>
<p>------------------------------------------------------->8---</p>
<p>So, daca va intereseaza in mod direct un ftp.lug.ro modern, cu spatiu pentru mai multe distributii si arhitecturi, stiti ce aveti de facut.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.technostoic.net/2010/03/24/campania-donatii-pt-server/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Prezentari cu S5 &#8211; partea a 2-a</title>
		<link>http://blog.technostoic.net/2010/03/17/prezentari-cu-s5-partea-a-2-a/</link>
		<comments>http://blog.technostoic.net/2010/03/17/prezentari-cu-s5-partea-a-2-a/#comments</comments>
		<pubDate>Wed, 17 Mar 2010 17:57:12 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[computers]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://blog.technostoic.net/?p=478</guid>
		<description><![CDATA[Dupa cum ziceam in articolul de ieri, toate bune si frumoase cu slide-urile in S5 (chiar, dat fiind ca nu sunt diapozitive, mai are rost sa le zicem "slide-uri"? Oh well...), dar formatul are doua dezavantaje care se vad dupa prezentarea propriu-zisa: nu e single-file, ceea ce face putin mai dificil copiatul prin alte parti, [...]]]></description>
			<content:encoded><![CDATA[<p>Dupa cum ziceam in <a href="http://blog.technostoic.net/2010/03/16/prezentari-cu-s5-partea-1/">articolul de ieri</a>, toate bune si frumoase cu slide-urile in S5 (chiar, dat fiind ca nu sunt diapozitive, mai are rost sa le zicem "slide-uri"? Oh well...), dar formatul are doua dezavantaje care se vad dupa prezentarea propriu-zisa: nu e single-file, ceea ce face putin mai dificil copiatul prin alte parti, si nu poate fi usor uploadabil pe slideshare (sunt unii carora le pasa). Raspunsul la aceste situatii ar fi un pdf.</p>
<p>S5 vine cu stylesheeturi pt. print dar, guess what, sunt gandite pentru hartie, nu pentru ecran. Adica apare frumos textul pe pagina, eventual cu headere si footere, fara "efecte". Ceea ce are foarte multa noima la o prezentare propriu-zisa, cu mult content, dar la cea a mea cu cate doua vorbe per slide, ies niste pagini goale (sunt putin vinovat pt. ca am introdus un page break dupa fiecare slide, la prima incercare de a face print to file).</p>
<p>Solutia ar fi randarea cu un browser propriu-zis care sa faca toate pozitionarile,si luata cate o captura de ecran la fiecare click. Daca pana acum ceva vreme, asta ar fi fost munca manuala,  se poate automatiza cu Selenium, asta fiind si o ocazie foarte faina de a ma juca cu aceasta tehnologie <img src='http://blog.technostoic.net/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p><a href="http://seleniumhq.org/">Selenium</a> (sau cel putin selenium-rc cu care m-am jucat) e o aplicatie care porneste un browser si interactioneaza cu el intr-un mod destul de apropiat de un utilizator uman, fiind o aplicatie gandita pentru testarea site-urilor dependente de JS si CSS, la care abordari traditionale gen WWW::Mechanize nu functioneaza.</p>
<p>Din cauza ca selenium-rc nu e impachetat pentru Debian (exista un RFP, bugul <a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=552096">#552096</a>, poate s-o gasi un binevoitor), am downloadat arhiva <a href="http://seleniumhq.org/download/">de la ei de pe site</a>, e vorba de fapt de un singur .jar. Dupa aceea am facut un program in perl care sa-l manipuleze (folosind modulul WWW::Selenium, din pachetul libtest-www-selenium-perl) si care sa dea clicuri si sa salveze screenshoturi.</p>
<p>Inainte sa trec la programul propriu-zis, cateva precizari:</p>
<ul>
<li>am laptop dual-stack, asa ca java s-a legat doar pe [::1] implicit, iar WWW::Selenium se supara daca-i dau adrese dintr-astea, asa ca a trebuit sa rulez un sysctl net.ipv6.bindv6only=0 inainte;</li>
<li>ca sa nu depind de Xorg, am folosit Xvfb (aptitude install xvfb) pentru a avea un framebuffer separat. L-am pornit cu o rezolutie ceva mai "speciala" ca sa obtin rezolutia pe care o voiam la screenshot (maximize minus toolbars), mi-au iesit 141 de pixeli pe verticala si 0 pe orizontala, dar YMMV;</li>
<li>xvfb a fost pornit cu Xvfb :99 -screen 0 800x741x24 -ac si lasat in background, dupa care am pornit selenium cu DISPLAY=:99 java -jar selenium-server.jar, lasat si el in background;</li>
<li>la incarcarea paginii dau un refresh, intrucat rutina de font scaling din ui/default/slides.js are uneori probleme cu gecko care se rezolva la refresh (documentat si in cod);</li>
<li>am pus un sleep de 0.15 sec (fair dice roll value) intre clickuri, intrucat imi ieseau unele screenshoturi incomplete si am zis ca de la repozitionarea css-ului, aparent a ajutat;</li>
<li>am incercat cu diverse scamatorii de selectori sa obtin slide-ul curent, dar din cauza ca n-aveam cum obtine via xpath sau css selectors (in cazul particular al S5, din cauza ca jongleaza cu proprietati de css dupap care nu pot face query-uri directe), asa ca m-am folosit de variabilele din javascript direct, cu get_eval. De notat ca scriptul presupune ca n-am vreo secventa pe ultimul slide si face un singur screenshot;</li>
<li>n-am reusit (nu stiu de ce) sa fac trigger direct la eventul "onclick", asa ca dau click pe div-ul "master" la coordonatele (10,10) - iarasi fair dice roll, cat sa n-ajunga in dreapta jos sa risc sa dea peste controalele de navigare;</li>
<li>dupa ce am salvat png-urile, le-am  concatenat intr-un PDF cu imagemagick, cu "convert /tmp/slides-*png slides.pdf"</li>
</ul>
<p>Uite si perlachele:<br />
<code> </code></p>
<pre>#!/usr/bin/perl -w
use strict;
use warnings;

use WWW::Selenium;
use Time::HiRes;

sub screenshot {
    my ( $sel, $basename, $id ) = @_;
    $sel-&gt;capture_entire_page_screenshot(
        $basename . sprintf( '%02d', $id ) . '.png', '' );
    Time::HiRes::usleep(150);
}

my $url = 'file:///home/petre/Desktop/slides-februarie/index.html';

my $rc = WWW::Selenium-&gt;new(
    host        =&gt; 'localhost',
    port        =&gt; 4444,
    browser     =&gt; '*firefox',
    browser_url =&gt; 'http://localhost/',
);

$rc-&gt;start;
$rc-&gt;open($url);
$rc-&gt;window_maximize;
$rc-&gt;refresh;
$rc-&gt;wait_for_page_to_load(1000);
my $last_slide = $rc-&gt;get_eval('window.smax');
my $num        = 1;

screenshot( $rc, '/tmp/slides-', $num );

while ( $rc-&gt;get_eval('window.snum') &lt; ( $last_slide - 1 ) ) {
    $rc-&gt;click_at( q{//div[@class='presentation']}, '10,10' );
    screenshot( $rc, '/tmp/slides-', ++$num );
}

$rc-&gt;stop;
</pre>
<p>Cui ii place cu culori, e disponibil si <a href="http://blog.technostoic.net/s5-selenium.html">in format html</a>. Ask me anything! <img src='http://blog.technostoic.net/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.technostoic.net/2010/03/17/prezentari-cu-s5-partea-a-2-a/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Prezentari cu S5 &#8211; partea 1</title>
		<link>http://blog.technostoic.net/2010/03/16/prezentari-cu-s5-partea-1/</link>
		<comments>http://blog.technostoic.net/2010/03/16/prezentari-cu-s5-partea-1/#comments</comments>
		<pubDate>Tue, 16 Mar 2010 20:47:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[computers]]></category>

		<guid isPermaLink="false">http://blog.technostoic.net/?p=475</guid>
		<description><![CDATA[Pentru ca am fost intrebat cum am facut prezentarea de joi "ca arata misto", o scurta introducere a S5: S5 vine de la "simple standards-based slide show system", un format de prezentari dezvoltat si publicat de Eric Meyer (cunoscut pentru cartile sale legate de CSS), bazat pe XHTML, CSS si JavaScript. Motivul pentru care mi-a [...]]]></description>
			<content:encoded><![CDATA[<p>Pentru ca am fost intrebat cum am facut <a href="http://blog.technostoic.net/2010/03/16/datorii/">prezentarea de joi</a> "ca arata misto", o scurta introducere a S5:</p>
<p>S5 vine de la <a href="http://meyerweb.com/eric/tools/s5/">"simple standards-based slide show system"</a>, un format de prezentari dezvoltat si publicat de Eric Meyer (cunoscut pentru cartile sale legate de CSS), bazat pe XHTML, CSS si JavaScript. Motivul pentru care mi-a placut este ca separa cat se poate de mult continutul de stil si ca se bazeaza pe niste tehnologii pe care pot zice ca le cunosc cat de cat bine (ceea ce din pacate nu pot afirma despre Latex, de exemplu). De fapt, cunostinte de JS sau CSS nu sunt necesare decat pt. hackuri mai avansate, stilurile vin sub forma de arhive care contin un template xhtml si toate css-urile si js-urile necesare, asa ca in principiu ramane doar sa "fill in the blanks". Stilurile sunt in general gandite sa se comporte diferit pe ecran si pe hartie (ceea ce e foarte fain in principiu, dar la slide-uri seci dpdv. content nu e nemaipomenit, dar despre asta mai tarziu), iar pozitionarea cu css reuseste sa se descurce decent pe orice rezolutie. Javascriptul se ocupa sa mearga cam toate metodele de navigare, si creaza inclusiv un drop-down dragut cu slide-urile in dreapta jos pt. navigare rapida.</p>
<p>Site-ul proiectului contine <a href="http://meyerweb.com/eric/tools/s5/primer.html">un tutorial</a> care poate fi urmarit de oricine are niste cunostinte de baza despre editat HTML (adica cam toata lumea), asa ca nu ma lungesc foarte mult in explicatii si ma rezum la ce am facut eu in plus:</p>
<ul>
<li>Recomandarea este sa downloadezi arhiva cu template-ul si sa lucrezi pe ea, unele stiluri au hardcoded cateva cai prin headerul paginii xhtml (ceea ce m-a cam  facut sa stramb din nas cand am vrut sa schimb tema, dar e relativ usor de depistat care-s diferentele).</li>
<li>Am rezistat tentatiei de a edita css-ul original sau de a pune formatari de prezentare in html, am inclus un stylesheet cu cele cateva overrides in sectiunea &lt;head&gt; a html-ului.</li>
<li>Pentru crearea efectului de "punct-cu-punct" la bulleted lists, se adauga la &lt;ul&gt;-ul care le contine clasa "incremental". Nu e specific listelor, se poate pune clasa asta pe orice container si va afisa "on click" succesiv elementele din el (chestia asta nu e in reference, dar pare suportata de mai multe stiluri "in the wild")</li>
<li>Ca sa nu fie probleme "de diacritice, mai trebuie adaugat in pagina o declaratie  &lt;?xml version="1.0" encoding="UTF-8"?&gt; (si &lt;meta http-equiv="Content-type" content="text/html;charset=UTF-8" /&gt; ca nu strica). Don't ask me why, pe mine m-a ajutat.</li>
</ul>
<p>In the end,  consider ca a fost foarte rapid de scris, dat fiind ca nu mi-am batut de loc capul cu "cum sa arate" pana n-am terminat continutul, care a fost banal de transpus din outline-ul meu cu liniute in div-uri de html. Daca o sa mai inventez niste prezentari cred ca o sa mai caut pe net teme ca sa am "zoo", e un format din ce in ce mai popular.</p>
<p>Postul urmator va fi despre cum m-am straduit sa satisfac si doritorii de "pdf cu slide-urile pe slideshare". Sper ca va fi un success story, dar oricum, am dat cu nasul de tehnologii foarte interesante.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.technostoic.net/2010/03/16/prezentari-cu-s5-partea-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Datorii</title>
		<link>http://blog.technostoic.net/2010/03/16/datorii/</link>
		<comments>http://blog.technostoic.net/2010/03/16/datorii/#comments</comments>
		<pubDate>Tue, 16 Mar 2010 10:51:06 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[computers]]></category>
		<category><![CDATA[quickies]]></category>

		<guid isPermaLink="false">http://blog.technostoic.net/?p=471</guid>
		<description><![CDATA[Desi am zis luna trecuta ca postez prezentarea pentru februarie si fac alta, am fost fie lenes fie ocupat si n-am mai apucat,astfel incat la intalnirea RLUG de joia trecuta am prezentat cu nerusinare materialul din februarie Dat fiind ca l-am facut cu S5, e un html care arata frumos doar pe ecran, momentan incerc [...]]]></description>
			<content:encoded><![CDATA[<p>Desi am zis luna trecuta ca postez prezentarea pentru februarie si fac alta, am fost fie lenes fie ocupat si n-am mai apucat,astfel incat la intalnirea RLUG de joia trecuta am prezentat cu nerusinare materialul din februarie <img src='http://blog.technostoic.net/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' />  Dat fiind ca l-am facut cu S5, e un html care arata frumos doar pe ecran, momentan incerc sa lucrez la o metoda de-a-l face pdf ca sa-l pot pune pe slideshare sau pe wiki.</p>
<p>Pana una-alta, prezentarea e <a href="http://ratiu.info/petre/slides-februarie/">aici</a>, nu e mare lucru de capul ei, dar e ceva <img src='http://blog.technostoic.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Daca necesita lamuriri, lasati un mesaj.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.technostoic.net/2010/03/16/datorii/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>devops sau probleme pe care nici nu stiai ca le ai</title>
		<link>http://blog.technostoic.net/2010/03/05/devops-sau-probleme-pe-care-nici-nu-stiai-ca-le-ai/</link>
		<comments>http://blog.technostoic.net/2010/03/05/devops-sau-probleme-pe-care-nici-nu-stiai-ca-le-ai/#comments</comments>
		<pubDate>Thu, 04 Mar 2010 22:43:41 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[computers]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://blog.technostoic.net/?p=465</guid>
		<description><![CDATA[De vreo 2-3 zile m-am trezit iarasi in valtoarea familiarei dispute intre webdev si webops ("ce atata automatizare si scripting, just do it, te complici prea mult"). Azi m-au cam tot mancat degetele sa scriu despre ce inteleg eu prin change management si cand devin necesare toate chestiile inutile pe care le tot implementeaza diversi [...]]]></description>
			<content:encoded><![CDATA[<p>De vreo 2-3  zile m-am trezit iarasi in valtoarea familiarei dispute intre webdev si webops ("ce atata automatizare si scripting, just do it, te complici prea mult"). Azi m-au cam tot mancat degetele sa scriu despre ce inteleg eu prin change management si cand devin necesare toate chestiile inutile pe care le tot implementeaza diversi sysadmini, dar nu s-au cristalizat suficient ideile dincolo de stadiul de flama.</p>
<p>Intamplator (sau nu, necunoscute sunt caile subconstientului), am dat in seara asta de un nume nou la o fiilozofie mai veche: DevOps (cu grup pe Linkedin si hashtag pe twitter pentru ca suntem in 2010). Ca sa nu ma lansez in definitii penibile, recomand <a href="http://dev2ops.org/blog/2010/2/22/what-is-devops.html">http://dev2ops.org/blog/2010/2/22/what-is-devops.html</a> si <a href="http://www.slideshare.net/jallspaw/10-deploys-per-day-dev-and-ops-cooperation-at-flickr">http://www.slideshare.net/jallspaw/10-deploys-per-day-dev-and-ops-cooperation-at-flickr</a> (cartulia verde a lui J. Allspaw imi sta de vreo 2 ani in biblioteca si imi da siguranta ca nu e imposibil sa ai o infrastructura sanatoasa).</p>
<p><strong>Update</strong>: Am gasit adineauri film cu prezentarea cu pricina, la <a href="http://velocityconference.blip.tv/file/2284377/">http://velocityconference.blip.tv/file/2284377/</a>, abia sunt pe la jumatate, dar e mult mai misto decat m-as fi asteptat. Go watch it.</p>
<p>Desi nu-s foarte de acord cu unele din uneltele "la moda" ale comunitatii (prefer cfengine in loc de puppet/chef, iar cucumber-nagios ma lasa rece, de exemplu), importanta e filozofia si modul de a pune problema. Si poate, poate, developerii or sa ciuleasca urechile daca le explicam ca e "agile" si "cloud" <img src='http://blog.technostoic.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Am deja vreo 20 de resurse noi de studiat, dar as fi curios daca e si pe la noi potentialul pt. o comunitate gen <a href="http://www.devops.info/">http://www.devops.info/</a>. Reply/e-mail/IM/IRC/ping/tweet me if you like this <img src='http://blog.technostoic.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.technostoic.net/2010/03/05/devops-sau-probleme-pe-care-nici-nu-stiai-ca-le-ai/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
