14 ianuarie 2012

Can I have all the database in a spreadsheet please?

If you're a programmer, you were asked for this. Probably several times.

If you're a PHP programmer, you probably ended up using comma separated values for convenience.

My problem: exporting tens of thousands of records from the database to a spreadsheet using PHP.

CSV would be a nightmare for this. It's enough to say new lines, escape characters, the need to set filters when opening, differences between Microsoft Excel and LibreOffice and that fills your plate.


I haven't been able to find a proper library to write OpenDocument spreadsheets using PHP. All the libraries that I found, created the document in memory which is a big no for my problem. So I created a simple library that writes the file directly on the disk. And as a bonus, there's a simple php script that you can use to export directly a query's results to a OpenDocument spreadsheet.

And of course, it's free open source software, download it from here if you need it.

Here's to a good start of my second free project.

16 noiembrie 2011

After Mozcamp 2011

Did a short recap during the state of l10n session, details here.

Boot 2 Gecko (B2G) is an ambitious project to replace binary apps found on your Android phone with simple html pages and widgets. It's not an OS on its own, but the rendering engine gecko running on Android with a lot of new APIs . You will be able to design your home screen in plain html. Can't think why Google didn't think of this before.

Adapting to change was an interesting roundtable session. Lessons learned: be prepared for the change, always know why the change is needed, be aware of what discomfort change can cause to others, accept uncertainty.

Vito talked about translation with a TM, TM being a highly unused in the l10n world and without I couldn't imagine doing l10n. However, I found that anything else than ICE matches is only leading to mistakes. If you'd have a text to translate, e.g. "File:", a fuzzy match would be "File"; people often don't see the colon and leave it like that. Also even ICE match always need review. I know it's tempting, but in software you can't pretend that you'll have texts that will always be translated in the same way. A simple example is the text "Edit". It can be a menu, it can be a button. When it's a menu, you'd say in Romanian "Editing", because if you click it, there's no editing action. When it's a button, you'd keep it as Edit, as it's an action. Also, one interesting example is the File->New->Email account menu. Translating New does not work in Romanian because the words should be reversed, e.g. Email account menu that is new. To fix this, I often translate New with Create and that way I can keep that flow, e.g. Create -> Email account.

Chris Heilmann talked about how to be a kick-ass speaker. Really inspiring, the main point was that all these contributors should be on the stage of the country they live in. There shouldn't be a need to get people from outside to do the talks. Audio available, listening is highly recommended. Chris is also behind developer-evangelism.com which is a really great handbook for developers that are thinking of doing some evangelism.


Axel had a presentation about designing l10n tools.

Christ Heilmann again on browserid and apps. browserid.org (name subject to change) is a openid like service that is based on your email address instead of the usual openid url which normal people can't relate to. You register at browserid.org with an existing email address and you get an account there. All websites that have a button login with browserid, will use that account. And it's really simple to use browserid on your website. If you're too lazy to build your authentication system, check it out.

Had lunch with the other Romanian folks present at Mozcamp. It's always hard to count how many Romanians are really present there. Because you have romanians working from abroad as interns or even employees and they work directly for Mozilla, rather than contribution for the Romanian community in particular. So I always manage to find one Romanian at these events that I haven't heard of or seen before.

PDF.js is a Javascript library used by a Firefox extension to display PDF files inside your browser without Adobe Reader, using plain html 5. Online demo of PDF.js available here, Firefox extension available here. This is really impressive, the effort is huge, but well worth it.

Finally I listened to a presentation about how wikimedia does l10n. It's a really open approach that I admire, but it would not work in desktop software. You really need to make sure that the localized software is of quality because the software might sit like that on computers for up to years.




10 noiembrie 2011

Heading to MozCamp 2011 @ Berlin

I was invited by Mozilla to attend MozCamp 2011 in Berlin.

I've worked a lot lately on Narro improvements because the Narro instance hosted on Mozilla servers is used by more locales and because I'm not getting any younger and wanted to do more and faster. If you're reading this, attending too and got some questions, don't hesitate to contact me.

It's been 4 years since my first meeting of this type and I can say that after each meeting I get back with a lot of ideas and with batteries recharged for what gets me to these meetings in the first place: cotributing to open source software development.

Have you tried that yet ?

26 iunie 2011

30 de ani

30 de ani.

25 de ani de învățat dintre care doar 12 ani de școală. Am început să învăț să scriu și să citesc la 5 ani, odată cu sora mea care e cu un an mai mare ca mine și mergea deja la școală. De atunci, școala a fost doar un loc de distracție și orice problemă o cursă spre a-i găsi rezolvarea.

19 ani de la primul walkman și prima piesă preferată
. Era Queen - I want it all. Acum am peste 15 mii de piese preferate și muzica e parte din fiecare zi pe care o trăiesc. Îmi place muzica bună și la nivelul potrivit. Care de multe ori e prea tare pentru ceilalți.

18 ani de la prima iubită
. Simona. Ne plimbam pe străzile pustii seara fiindcă toată lumea se uita la Dallas. Mici cadouri, strigat de jos către etajul 4, cățărat în copaci după o floare, prima persoană din afara familiei tale pe care o iubești, n-ai cum să uiți momentele alea.

17 ani de la primul aparat foto. Compact, alb negru, nu-i mai țin minte marca, luat de la o consignație (mai ține cineva minte cuvântul?!) cu bani adunați de mine. S-a născut o nouă pasiune și azi car după mine vreo 5kg: un DSLR, 2 obiective, trepied și bliț extern.

4 ani de electronică
. 16 ore din 24, era o pasiune și-mi amintesc și azi cum am spart un candelabru bucurându-mă de primul meu emițător radio făcut cu mâinile mele, piesă cu piesă.

12 ani de când am pus prima dată mâna pe un calculator
. 12 ani de când am aterizat în fața unui calculator cu Norton Commander într-un laborator la facultății de calculatoare din politehnică. A doua zi mi-am luat un calculator și am pus Windows 98 pe el. După câteva zile am pus Windows 95 OSR 2. Apoi Windows 95 pe 16 biți. Apoi DR-DOS, FreeDos după care toate sistemele de operare care erau atunci și după câteva luni lucram la sistemul meu de operare.

Evident că școala rămase în urmă, așa că au fost 12 ani de anul I de facultate. Calculatoare, Electronică și Telecomunicații, Științe economice. Toate pasiuni pentru mine, la toate eșec pentru că mie nu-mi place să scriu după dictare. Sunt autodidact și mânat de pasiune să învăț până la epuizare tot ce îmi trezește interesul. Nu suport mult timp o casetă care merge la turație mică ca și cum casetofonul nu mai are baterie. După atâta amar de vreme, e momentul să accept că diploma pentru mine e doar o hârtie pe care nu voi avea niciodată interes suficient să o obțin, așa că cei 12 ani se termină aici.

11 ani de programare.
De la luat de pe net exemple de cod cu un modem de 33600 biți pe secundă(!), în Pascal, C, C++, Visual Basic, JavaScript, BASH, Perl, PHP, JAVA, JavaScript la mai mare. Sunt un hacker. Asta înseamnă că dacă ceva nu merge sau ar putea merge mai bine, mă dau peste cap să fac asta să se întâmple. Așa că orice s-o mai inventa, că e Ruby, Python, dacă e o problemă de rezolvat, o voi rezolva fie ce-o fi.

11 ani de Linux.
De la umblat pe serverele altora cu un terminal, la primul CD cu RedHat Linux 6.3 instalat pe calculatorul meu. Am început să folosesc un sistem de operare la care contribuiau o grămadă de oameni fără să ceară ceva în schimb. Asta m-a mânat spre 5 ani de voluntariat în domeniul ăsta, în special traducerea de software în limba română și promovarea folosirii diacriticelor. Am contribuit la RedHat, Fedora, Opera, OpenOffice.org, OpenSUSE, Mozilla, Gnome și orice progrămel pe care puneam mâna și nu era în română, nu funcționa cum trebuie sau avea nevoie de ceva ce puteam oferi.

9 ani de Alexandra.

7 ani de Gmail.
7 ani de când am adresa asta de email și peste trei mii de conversații.

8 țări vizitate în 3 ani.
Slovenia, Bulgaria, Ungaria, Canada, Austria, Spania, Cehia și Belgia. Asta în mare parte mulțumită Mozilla, care sponsorizează cei mai activi contribuitori să participe la întâlniri ale contribuitorilor Mozilla. E extraordinar să fi într-o sală unde sunt peste 200 de oameni care contribuie voluntar la proiectul Mozilla.

3 ani de Lingo24. E compania care a reușit să mă țină mai mult de un an. Fiindcă an de an am primit o provocare nouă, ultima fiind să conduc departamentul de IT.

Aproape 3 ani de la prima mașină.

10 luni de salsa
. Aproape un an de salsa, bachata și cha cha. E mai mult decât un curs, e un stil de viață și vezi asta când intri într-un club în care se dansează salsa.

1 an de management.
Un an în care deja am făcut un schimb de oameni și un an de când zi de zi mă dau peste cap pentru ca lucrurile să meargă cum îmi plac mie să meargă: aproape perfect.


Au fost decizii bune și unele mai puțin bune, încălzirea e făcută, e momentul să alerg.