ROSEdu Summer of Code 2012

Programul de lucru pe vară la proiecte Open Source, de acasă, inițiat acum 5 ani de către ROSEdu, continuă cu forțe proaspete!

Anul acesta, miza crește pentru studenți, prin bursa de 1000 € și desigur prin provocările tehnice ridicate de proiectele propuse.

Ce trebuie să faci dacă vrei să fii unul dintre participanții la acest program:

  • să manifești interes pentru unul dintre proiectele software propuse
  • să aplici: nu-i greu, te pregătești, scrii aplicația, ceri feedback și convingi
Ce vei câștiga de pe urma RSoC:
  • experiență de lucru într-un proiect software
  • experiență în lucrul cu o comunitate
  • libertatea de a sta acasă/la munte/la mare plătit
Dacă nu v-am convins, mâine la 14:00 este o prezentare în EC004 despre RSoC 2012!



Donații de Crăciun pentru copii, în Poli

Anul acesta intenționăm să continuăm Inițiativa de Crăciun și sperăm, cu

ajutorul celor care vor să se implice, să realizăm ceva cel puțin la fel

de frumos ca în anii trecuți.

Pe scurt, pentru cei care nu au avut ocazia anii trecuți, inițiativa

noastră constă în colectarea de cadouri: haine, cărți, rechizite, orice

este la îndemână și ar putea folosi unor copii care nu au posibilitatea

unei vieți decente.

Colectarea are loc până în ultima săptămână de școală (23 decembrie

2011) în ED422 și în EG106 (Laborator IXIA), Facultatea de Automatică și

Calculatoare, UPB.

Pentru mai multe informații, puteți folosi site-ul inițiativei[1]. Suntem și pe Facebook, la [2].

[1] http://donatii.cs.pub.ro/

[2] https://www.facebook.com/donatii.copii




AppStream Software Center on Fedora

Watching software-center code changes, this one came into my attention: an effort from Giovanni Campagna into bringing Software Center to Fedora, using the PackageKit backend I’ve been working on this summer.

It’s nice to see someone showing interest, and also picking up the code :) .

I must definitely get the time to fix my experimental OBS build, and see the openSUSE version running again. For the record, there is room for improvement on the performance part (especially starting up speed).




De ce computer science? Partea a treia

Și cea din urmă, Facultatea.

Generala am terminat-o ca programator BASIC, liceul ca programator PHP, facultatea … imediat.

Încă din primele zile de Calculatoare, am văzut că să am propriul CMS, nu e chiar atât de cool. Mihai, de exemplu, avea propriul MMORPG; fiecare dintre colegii cu care îmi petreceam timpul știa câte ceva cool. Vlad părea că știe mai multe decât proful de USO, când începea să dea din gură despre personalități din Computer Science. Și nu știam aproape de loc vorbi engleză. Și nu citeam slashdot și credeam că xkcd e typo.

La USO aveam ubuntu în laborator, erau chiar CD-uri pe care le puteam lua acasă. Din al doilea semestru, am făcut GNU/Linux (Ubuntu) sistemul de operare principal. Și nu m-am uitat înapoi :) . După cursul de USO, am rămas cu două lucruri: Linux e cool și Linux e free pentru că dezvoltat deschis de către voluntari. Din dorința de a da ceva înapoi comunității, și pentru că erau la îndemână, am început să contribui cu traduceri. Și am făcut asta destul de mult timp, unii chiar râdeau zicând că “Alex nu scrie cod, Alex face traduceri”.

Am fost acolo când ROSEdu prindea contur*) și am participat sub la diverse activități de-a lungul timpului: ca programator al WoUSO, organizator Ubuntu Install Fest, coordonator al Cursului de Dezvoltare Liberă, responsabil cu prezența web (pasiune veche). Am intrat în Echipa Ubuntu România și Grupul pentru Software Liber. Abia în primul an de master am aplicat și participat la Google Summer of Code, dând astfel înapoi comunității FOSS și cod, nu numai traduceri :) .

În facultate am învățat (din nou, de data asta bine, fără influențe ++) C. Apoi Java și câte ceva din alte limbaje. Prin anul 4 am ales Python ca limbaj de bază. Am rezolvat o groază de teme și am luat habar de computer science.

Au venit vremurile cool, cu domeniu prenume.nume.ro, cu linkedin, CV și facebook.

Acum termin masterul de securitatea rețelelor informatice complexe. Lucrez pentru mine: programez, administrez, documentez, coordonez, plănuiesc și fac asta cu plăcere.

-

Nu am o concluzie pentru această mini-serie; un clișeu de genul: “follow your dream”, nu-și are rostul – habar nu aveam în clasa cincea ce-i ăla inginer în calculatoare și ce face un astfel de om. În plus, acesta nu este un sfârșit, ci doar un punct intermediar, o piatră de hotar :) .

Thanks for reading.




De ce computer science? Partea a doua

Partea a doua: ani de liceu.

În clasa a noua, pentru că intrasem la liceul bine cotat din Curtea de Argeș, pentru că știam să cer și findcă mai mereu am avut noroc, am primit de la mătușa mea primul meu PC: vechiul ei laptop Toshiba, 486 DX4, cu floppy și windows 95. Dura între 3 și 5 minute să pornească. N-avea touchpad ci trackpoint, la fel ca thinkpad-ul din prezent :-) . Făcea ca un motan, dar era al meu.

La gazda unde stăteam, aveam internet, tot cu țârâita, dialup-ul genial (nu mai știu de ce zic genial, am impresia că era ieftin) de la Connex, Xnet. Cu toate astea, baza pentru ce am învățat legat de programare, nu venea de pe internet, ci din ediția tipărita a PC Magazine (cineva adusese niște teancuri cu reviste vechi de 5 ani). Erau super, multe articole conțineau bucăți de cod; smalltalk (dar nu înțelegeam boabă), cât și Assembly – despre care cum-necum știam câte ceva. Țin minte că am citit și un articol despre Java, cu multe buzzwords, ca despre o tehnologie extraterestră.

La școală, secția Matematică-Informatică intensiv (privin înapoi, mi se pare exagerat acest intensiv), ni se preda, instrucțiune cu instrucțiune, limbajul C. Îi ziceau C++, pentru că foloseam cin>> și cout<<, dar era mostly C. După ce am rescris spânzurătoarea ca să folosească în întregime setul ASCII, iar victima să arate a om, am început să cochetez cu ideea de a scrie un joc interactiv și grafic. Primul snake era din caractere @ și nu se termina niciodată. Din reviste am furat codul assembly care mă aducea din DOS într-un mod grafic VGA (320×200, 256 de culori) și în care puteam scrie direct în memoria video – fiecare număr între 0 și 255 reprezenta o culoare. Am definit un format de imagine (gen PPM) și am scris un editor banal de astfel de imagini. Apoi am făcut Pacman, scris în C++, obiectual (după o carte veche și groasă), cu double buffering și scrolling (harta mai mare decât ecranul VGA), o combinație între Pacman și Dina, cu animăluțe semiinteligente. Îmi pare așa rău că am pierdut codul. Îmi plăcea să programez, să fac lucruri care se mișcă, să primesc laude pentru asta.

Undeva pe la acest moment, am schimbat laptopul pe o placă de bază + procesor și carcasă; apoi pe rând, am luat rami, harddisk, monitor și restul de bucățele, până mi-am făcut calculatorul meu.

Pe la sfârșitul clasei a zecea, profa de informatică mi-a dat spre documentare un mic curs de HTML, PHP și MySQL. Cât de cool mi s-a părut la acel moment, când aveam net cu lingurița, să pot să scriu eu site-uri, și nu orice fel de site-uri, ci dinamice. Cam pe aici s-a terminat pasiunea pentru jocuri VGA. Mi-am făcut propriul CMS, XL_ES (xl’s easy site, xl eram eu, de la Alex, nu de alta).

xlesInterfața era o clonă a Gmail-ului (am avut cont de Gmail în 2005, fratele lui Alex avea trei invitații, două ni le-a dat nouă). Cu toate astea, știa articole, categorii, pagini, atașamente, redirectări, file browser, templates, un mic wordpress. Privind înapoi, nici nu știam că există WordPress. Am vrut blog, l-am scris. Era atât de simplu pe vremea când vorbeam PHP :P .

Scriam pe blog. Foloseam yahoo messenger shi eram convins k limba romana s scrie oriqm imi tună. Articolele erau fie poze cu fratimio, fie poezii, fie linkuri găsite, fie cereri de melodii (știe cineva cum se numește melodia cu versul …), fie tot felul de lamentări sau anunțuri. În perioada asta am făcut site-ul liceului și am fost gata-gata să intru într-un proiect în echipă (cu Alex și Andrei, precum și Tase, care ne aducea pizza și cărți, în schimbul programării).

A fost fain în liceu, la un moment dat am testat chiar Linux (tipul care făcea rost de CD-uri cu filme, avea în catalog și Red Hat, pe 6 discuri, am zis să încerc). N-a mers mouse-ul, am renunțat. Apoi am dat cu nasul de ubuntu warty, același rezultat. Windows XP mergea mai bine :) . La un moment dat, am tradus un progrămel freeware (nu mai știu ce făcea, avea legătură cu look’n'feel-ul XP-ului), am trimis traducerea și a fost acceptată. Super achievement.

Și așa, pe neștire, a venit peste mine facultatea. Ultimul post pe blog l-am scris dintr-un internet caffe de lângă universitate, în perioada admiterii. Cu titlul “S-a terminat (aproape)”, habar nu aveam că încheia o perioadă.

De ce computer science? Pentru că am redus opțiunile la Cibernetică și Automatică. Pentru că la Cibernetică păreau grele subiectele. Pentru că mi s-a spus că la Calculatoare e cel mai greu. Pentru că am intrat :-) .




De ce computer science? Partea întâi

Nu strică niciodată să pui memoria la încercare; plus exercițiul scrisului este unul benefic, și-mi face chiar plăcere.

Partea întâi a acestei serii: Școala generală.

Eram în Școala Generală (cu clasele I-VIII din Galeș), în clasa a V-a (1999) când am deschis prima dată un calculator. Erau două HC-uri în cabinetul de Biologie și Informatică: unul negru, cu toată logica în tastatură și programe pe casetă audio și un mic TV pe post de monitor, și unul alb, care avea două unități de dischetă, din acelea mari, de 5 1/4 inchi.

Cel negru avea un joc, ceva cu un avion care evita obstacole, trăgea în inamici și lăsa bombe pe sol. Nu m-a prins niciodată. Cel alb, avea pe o dischetă sistemul de operare, un soi de DOS. Țin minte doar că mesajele de POST erau datate cu un an înainte de 1987, anul nașterii mele. Mai mult decât DOS, putea fi programat, avea GWBASIC, un interpretor de BASIC. Inutil de adăugat că ecranele erau verde/negru, tastaturile nu aveau tasta Super (windows), totul mirosea a plastic vechi și totodată nou.

În prima oră, proful, Mihai Vasile, ne-a vorbit despre componentele unui calculator și principiul de funcționare. O săptămână mai târziu, aflam despre „algoritm”, înșirarea de acțiuni, sau schemele cu dreptunghiuri și cu romburi. Mi-aduc aminte că ne-a prezentat algoritmul lui Euclid pentru aflarea celui mai mare divizor comun. Și ora următoare am avut lucrare, să-l reproducem. Am fost praf și asta m-a motivat să încerc mai mult să înțeleg (proful era tipul cool, abia ieșit din facultate, cu 10, poate 12 ani mai mare decât noi, care cred că făcea informatică la o școală generală de la țară, de plăcere). După ceva timp, în laborator, colegii făceau coadă la HC-ul negru, pentru a juca avioane, iar eu profitam de acea oră pe săptămână, cât puteam să explorez gwbasic. Era interesant de programat: câteva cuvinte cheie, fiecare linie începea cu declarația numărul de linie; programam din 100 în 100 pentru că sigur uitam lucruri, iar apoi puteam modifica folosind indecșii nefolosiți. Când nu mai puteam insera cod, foloseam GOTO undeva în viitor (cred că asta se numește spaghetti programming).

Primul meu program, la care am lucrat săptămâni (câte o oră pe săptămână), a fost spânzurătoarea în ASCII. Cuvântul secret era hardcodat, nici vorbă de spânzurătoare, ci doar un progressbar cu “=”-uri care se transformau în “#”-uri. Era cool și eram mândru.

Undeva aproape de vacanța de vară, ne-a vizitat (în timpul unui cerc școlar, sau alt eveniment) un PC. Rula Windows 98, avea Paint, un soft de e-learning și jocul Hercules. Cât de diferit și „de ultimă generație” părea.

Anul următor din generală, n-am mai făcut informatică. Au venit niște 486 cu dischetă de 1,44 inchi, cu Mario, Dina, Supaplex și multe alte jocuri, precum și Paint cât cuprinde. Țin minte că o dată sau de două ori am scăpat de la ore pentru a instrui pe cineva în laboratorul de informatică; nu aveam calculator acasă, dar mă descurcam de minune cu windows 95 – citisem o carte, “introducere în Microsoft Windows 95″.

Și pentru că toate lucrurile bune se termină, spre finalul școlii a venit și un calculator cu unitatea centrală tower (pe verticală). Era Pentium 4, avea 64 MB de RAM și rula Windows XP. Avea și un modem, pe care l-am instalat și prin care am descoperit internetul. Da, cu țârâita. Da, când nu ocupa unica linie telefonică a școlii. Și da, de multe ori fără imagini, pentru că dura o veșnicie să se încarce. Nu-mi aduc aminte foarte multe din acele timpuri, doar sentimentul de descoperire a ceva cu totul nou (le fel ca atunci când am jucat Hercules color). Perioada cu acest computer m-a învățat Word și Excel (cineva trebuia să știe și din ăstea într-o școală).




PackageKit backend for Software Center: pencils down report

Software Center in openSUSE

Software Center with PackageKit backend in openSUSE Factory

Today the official coding period of GSoC 2011 ends. It’s been a four months journey, with challenges, failures and achievements, but nevertheless fun :-) .

You may be wondering what is the status of my project; here it goes: current version of Software Center can be tested in openSUSE Factory; it can populate its database with data from an AppStream XML; it shows application information (fetched from the package manager); it installs and removes software, in the same friendly manner the ubuntu does (showing progress, handling dependencies).

Moreover, my patches to gobject-introspection, PackageKit and obviously software-center, are all upstream and released; kudos to the project managers and the community for helping me get them there.

There are still parts that need work; some of then have been intentionally left with lower priority from my initial plan, in order to get a functional version up by the end of the program; others weren’t covered by the planed feature set. These are: performance (current version is rather slow on first load, and also on showing list, due to many resolve calls), transaction history (it can be implemented using the almighty PackageKit), reviews (currently these are fetched from ubuntu servers), screenshots (same as reviews). Software Center itself passes a period of active development and changes, once its fancy Gtk+3 interface stabilizes, more work can be done into polishing the <other-distro> experience.

Although I’m generally happy with the result of the project, since this is a report, I want to outline what differed from my expectations and slowed me down from bringing a full feature set cross-distro Software Center:

  • fast development – when I started hacking on software-center’s GUI, it was pygtk Gtk+2 based; a Gtk+3 branch existed, but was far from being usable; under the last few weeks, it was merged, and actively developed into a newly designed interface (which will become software-center 5.0);
  • Gio, GLib, GMenu, GObject, usually libs starting with a capital G, which introspection bindings are about to stabilize; having to get them from trunk, and dealing with API breakage;
  • waiting for the pygobject release; when it came, it broke my pygtk mixed work (since static vs GI are no longer permitted in the same program – which is the right choice. btw), and left me with no working GUI; luckily, I took the best advices on IRC, and also software-center devs fixed things along, so that the new UI isn’t affected by the underlying changes.

Something worth mentioning in this finale post is that OBS totally rocks.

Overall, I hope this effort won’t stop here, and with a bit of luck, it will be shipped by your favorite distribution :D

PS: for more implementation/testing/plan details, I have created this page on openSUSE wiki, please check it out.




PackageKit backend for Software Center: week 11 status report

This week in three short achievements:

- personal OBS project (playing around, tutored by DimStar), work in progress

- code tide-up, ready for merging into master

- features, usage and testing documentation, work in progress

I’m now focusing on the gtk3 part, and also documenting things around. Packaging has decreased priority, waiting for the pygobject release.

And done ;-)