May 072011
 

Cica astazi era programat sa inceapa Google Code Jam 2011.

Am aflat din intamplare mai devreme si m-am inscris.

Cica mai sunt 6 ore din runda de inceput.

Sa vedem daca fac toate cele 100 puncte.

Regulile sunt asemanatoare cu Facebook Hacker Cup si acum am inteles de ce zicea toata lumea ca Facebook a copiat mult de la Google. Oricum pare mult mai bine organizat.

Jan 122011
 

S-au afisat rezultatele de la Facebook Hacker Cup si de runda de calificare au trecut doar 5749 oameni. In nici un caz nu m-as fi asteptat la mai putin de 10000; estimam chiar vreo 15000 – 20000.

La mine au revenit cu problema 2 si acum ei zic ca n-as fi rezolvat-o corect. Am insa dupa parerea mea singurul algoritm care ar fi mers dar se pare ca nu voi reusi niciodata sa aflu ca nu raspund ei la nici un email. Poate vor afisa mai tarziu felul in care trebuiau rezolvate problemele.

Numarul mic de persoane calificate a fost foarte probabil si principalul motiv pentru care au eliminat in ultima zi limita de 6 minute pentru submit-area output-ului.

Dupa runda 1 trebuie sa ramana 3000. Runda I se desfasoara online; sunt 3 subrunde de cate 3 ore: sambata de la 17 la 20 prima runda, de la 23 la 02 a doua si duminica de la 23 la 02 a treia, ore foarte bune de altfel. Din fiecare subrunda se califica primii 1000 oameni. Daca te-ai calificat, nu mai partici la urmatoarea subrunda.

Fiind asa putini calificati, mai putin de 3000 cred ca vor trece in runda 2, cred ca in jur de 2000.

Asteptand sa fie mai bine anul viitor, nu este chiar o veste rea pentru ca am mai multe sanse :D .

Acum ar fi interesante niste statistici pe tari :)

Jan 112011
 

Si iata ca a venit vremea sa punem si solutiile la concurs Hacker Cup organizat de Facebook.

http://drealecs.programel.ro/workspace/facebook/hackercup/

Puteti sa testati, verificati sau sa cititi codul sursa. Rezolvarile nu sunt optimizate. Daca sunt intrebari, le astept.

LE: In sfarsit dupa 8 ore am primit si email de la facebook:

Congratulations! You qualified to advance in the Facebook Hacker Cup Qualification Round and are eligible to compete in Online Round 1.

You passed the following problems: Double Squares, Peg Game, Studious Student

Deci acum avem si certitudinea ca rezolvarile sunt corecte.

Jan 112011
 

Degeaba a fost mare tam-tam. Au inceput cu stangul.

Regulile erau simple:

Se prezenta problema cu exemple

Fiecare om isi dezvolta algoritmul, programelul, chestia lui care sa faca ce cerea problema. O testa cu exemple, testa cu ce vrea el si cand era gata trecea la actiune:

- downloada fisierul de intrare: input.txt . Din acest moment avea un counter de 6 minute in care trebuia sa

- uploadeze un output.

Suna frumos totul pana au inceput sa apara problemele. Foarte multi n-au citit regulile si s-au repezit sa downloadeze fisierul de input. Evident au pierdut. Ultima zi, Facebookul a scos limita de 6 minute. Acum au putut sa treaca oricine ca scripturi pentru macar o problema gaseau pe internet. Altii care n-au aflat ca s-a scos limita au pierdut desi poate ar fi putut sa castige si ei si poate erau mai buni decat altii.

Problema cea mai grava a fost la problema “Peg Game”. Enuntul fara exemple nu ar fi fost prea concludent. Exemplele si ele erau la limita fiind necesare ajustari anormale de realitate. In ultimele cateva ore au schimbat chiar si exemplele pentru ca se pare ca unele dintre ele nu corespundeau cu cerintele :)

In 20 minute pun si linkul cu rezolvarile.

Jan 102011
 

O sa pun solutiile la cele 3 probleme; dupa ce expira runda insa :D . Adica dupa ora 2. N-ar fi corect ca toata lumea sa poata trece de runda asta degeaba.

Au fost 3 probleme:

1. Double Squares – in care trebuiau formate combinatii de sume de patrate.

2. Peg Game – cel mai greu dintre ele in care trebuia sa calculezi pozitia de unde poate pleca o bila astfel incat sa aiba probabilitatea mai mare sa pice pe o anumita coloana

3. Studious Student – in care trebuiau aranjate cuvinte sa se obtina un cuvant minim lexical.

Bine ar fi sa va salvati fisierele de input si textul de output sa puteti compara cu rezultatele de peste casteva ore cand pun linkurile de rezolvare.

Success. Mai sunt 8 ore.

Jan 082011
 

Si m-am apucat de programat algoritmi :)

Super distractie de fapt. Si-mi place.

Ideea e ca Facebook-ul s-a gandit sa organizeze un concurs anual:  Facebook Hacker Cup. Te inscrii, participi online si in runda finala chiar te duci undeva la ei (nu c-as ajunge in runda finala.)

Acum de vreo 2 ore a inceput runda de calificare: Hacker Cup Qualification Round. Cititi acolo detalii mai multe dar e fun.

Practic e vorba de programare cu tot ceea ce vine de aici, algoritmi, optimizari etc.

Distractie pe cinste. Success tuturor.

Sep 302010
 

Invatam si muncim sau invatam muncind?

M-am hotarat acum ceva timp sa ma apuc de programare, in sensul ca sa muncesc ca developer/programator. Cu programarea m-am jucat de acum 12 ani cand am descoperit-o. Am dezvoltat multe proiecte, suplimentare la munca sau personale dar niciodata nu am lucrat ca programator.

Limbaje de programare … sa vedem ce-am folosit pana acum.

Prima data a fost Pascalul :) ; Turbo Pascal. Asa se incepea pe vremea mea. Incepusem sa-l invat si nici calculator nu aveam. Cand mi-am luat calculator am facut si primele joculete: XsiO si avioane(ca alea de pe hartie).

Apoi a venit C, C++. Nu m-a atras niciodata in mod special. Deja venise vremea facultatii, aveam alte lucruri de facut. Calculatorul era pentru jocuri in principal. L-am studiat si atat. Desi el este la baza tuturor, dar nu mi-a placut niciodata sa scriu cod in C (si nici in assembler).

PHP. Am inteles care era treaba cu el in 2-3 zile intr-o vacanta de vara. Si odata cu el am inceput si cu bazele de date; evident MySQL. Cand am avut ocazia sa-l folosesc, cam peste juma’ de an, cand m-am apucat sa fac cate ceva la Otter, l-am descoperit mai bine. Deja faceam rapoarte, il conectam la Oracle/Wizcount. Dupa ce-am venit la Stefanel, si mai multe cu el, importuri, exporturi, automate sau manuale, rapoarte, tooluri – un adevarat intranet. A ramas limbajul in care fac ceva repede daca operatiunile sunt mai complexe si nu pot fi facute in excel. E si normal – e scripting language, e rapid de scris si folosit.

In el am facut micile mele proiecte, cu pluginul de cURL spargeam parole la useri de torrent, scripturi automate pe siteuri si multe alte chestii d-astea rapide.

Are el si OOP dar nu l-am folosit decat o singura data sau de doua ori cand a fost un proiect mai complex. Dac-ar fi sa lucrez ca programator in PHP, evident ca va trebui sa folosesc partea de OOP. Sunt multicele frameworkuri construite. Oricum OOP n-am invatat in profunzime decat cand am ajuns la Java, dar pana acolo mai e…

Perl. Alt scripting language. Similar cu PHP-ul dar orientat mai spre scripting decat spre web. Cel putin asa l-am folosit eu. Am spart conquiztador, facusem un bot care rula mereu, se juca cu oamenii si tinea minte raspunsurile. Cateva zile am rulat 5 boti continuu si ajunsesera sa raspunda la 95% din intrebari. Evident castigau toate jocurile si s-au prins astia de la protv si i-am banat. Ideea nu era a mea, ma inspirasem de la RST – RomanianSecurityTeam.

Platforma .Net. Adica Visual Basic, C#, C++.  Uneori e bun si un exe (sau un dll) care sa faca treaba. Si astfel m-am apucat de lucrat in ele descoperind frameworkul, OOP-ul, threadurile :) .  Am facut cate ceva, si pentru munca, si pentru mine. Facusem programelul de trisat la sah care analiza pachetele in timp ce te jucai pe YahooChess si folosea un engine de sah ca sa-ti propuna in real-time ce mutari sa faci. Pe la munca alte programele de import/export care se conectau cu diferite dll-uri la baze de date. Interesant

Java. Acum un an m-am apucat sa invat si Java. Intelesesem eu ca e bun ca limbaj, dar cum eu sunt un utilizator de Windows, nu prea m-a atras. Am facut un curs la Cisco (in UPB) si atunci am deprins tainele OOP-ului. Toate sunt obiecte :) . Am facut un proiect la sfarsit care mi-a placut. Scanam cu multi clienti cu multe threaduri ip-urile din romania pentru VNC cu parole banale. Clientii comunicau cu un server iar datele le stoca serverul intr-un db. 10 milioane de ip-uri le terminam de scanat in 30 ore.

Saptamana trecuta mi-am dat examenul de certificare SCJP si evident l-am luat; cu 55 raspunsuri corecte din 60. Gata, sunt certificat de Oracle ca programator in Java. Asa si? Si nimic. Am cunostinte dar nu si experienta. Trebuie sa invat sa lucrez in Java, sa am experienta, sa invat Spring, Struts, Hibernate si altele. Si unde sa invat? Asta e intrebarea si sa sper ca raspunsul nu se va lasa mult asteptat. Aplic la joburi cu java de cateva zile, pana acum nimic.

Trebuie sa gasesc un angajator pe care sa-l intereseze si oameni cu putina experienta dar care au cunostinte si potential de viitor. Nu m-ar deranja dac-ar fi in afara tarii.

Pana atunci voi face tot proiecte personale, ceva mai mari sper eu. Acum invat cum sta treaba cu Spring-ul.

Oricum, de cand cu Oracle care a cumparat Sun, limbajul promite multe pe viitor. Si mai imi si place.

Trebuie sa fac programare. Si sa plec de la Stefanel.

Aug 162010
 

Dupa parerea mea stiu destula java sa iau certificarea si dupa cele 4-5 luni care au trecut de cand am facut cursul la CISCO.

Pe 31 martie era ultima zi in care se putea cere un voucher de 40$ in loc de 300$ prin programul SAI (acum nu mai exista. teoretic a fost inclus in Oracle Academy) si am aflat atunci si-am cerut. Dupa 4 luni mi-au dat si voucherul si trebuie sa-mi dau certificarea la un centru de testare Prometric. Intamplarea a facut sa fiu la cineva care avea o carte buna si am luat-o si eu in format electronic. E vorba de “Sun Certified Programmer for Java 6 Study Guide – SCJP (Exam 310-065)” de Kathy Sierra si Bert Bates. Asa ca mi-am zis ca ar fi foarte bine s-o studiez. Are ea vreo 1000 pagini dar e placuta la citit si cred c-am facut o treime din ea.

Sa vedem daca dupa ce-o sa-mi iau certificarea o sa-mi gasesc ceva munca in domeniu.

Pun cartea si aici – download.