Thursday, December 27, 2012

Experiment: Durata de viata a becurilor (I)

Poate mi se pare mie, dar prea se ard becurile astea asa zis ecologice. Ar fi o problema daca ar fi doar ele, dar din pacate eu vad ca si alte tipuri de becuri se ard.

Cand spun ca prea se ard e clar ca asta se intampla cam des, cel putin in perceptia mea.

Ce incerc eu sa fac este sa loghez momentul cand schimb becurile, tipul becului si pe cat posibil momentul cand becul se arde.

Pe langa aceste lucuri de bun simt pentru realizarea experimentului este posibil sa mai adaug si alte elemente precum pretul si magazinul de achizitie. Daca acest lucru tinde sa devina mai mare decat e prevazut atunci e probabil sa realizez un proiect pe sourceforge, in care sa arunc ideile.

Orice sugestie e binevenita.

--------
Locatia instalatiei cu becuri: Bucatarie
Configuratia instalatiei:
  • 4 becuri in linie dreapta de la E la V. 
  • Identificator 0 primul bec ... Identificator 3 ultimul bec.
{Identificator + locatie} ar putea fi cheie primara daca sql-ul din mine nu-i destul de prafuit.

27 Decembrie 2012, schimbat Becul cu Id-ul 1 din Bucatarie. Tip bec: G9, Lampa Halogen, 35W (Facut Importat din China de Lohuis Romania)

Software development: Dealing with legacy code - The Zorro Approach

Like most of software developers today, I inherit code.

Of course, I also write new code and stuff but there are situations when legacy code must be fixed, updated, improved and so on. The bad part is that you rarely get to meet the original author of the modules you'll need to work at.

Well, in this situations, I think one should accept some facts about legacy code:
  • it is usually considered good code
  • it has been tested
  • has brought and most likely still brings money to the company
  • because of the above a rewriting decision is unlikely to happen with it
So what do you do when you need to add new functionality, fix some issues that didn't happen until now?

As a child I watched the Zorro series and all that the main character did after catching the bad guys was putting the "Z" from Zorro mark. This is what you should do with software that worked and now encountered unexpected cases. Only touch it where it is not working. Do not try to reorganize code that worked for many years, unless you covered all the cases.

Usually you will need to get familiar with that code. This probably takes months/years in order to reach a good level of understanding.


So here are my recommendations for such cases (I call this the Zorro approach):
  • consult original authors or responsible people for guidance
  • prefer local hacks to code refactoring/rewriting, unless rewriting is approved and easy to do
  • keep documentation about what you did (you or someone else may need that later)
  • always have tests (no matter what type: unit tests, validation tests, subsystem tests, etc) to check the code
  • always run tests that worked with the previous version of code
  • for each hack/patch always add a test with documentation about the problem
  • tests imply that previous functionality shouldn't be affected; so don't affect previous functionality
  • be proud ?!
  • avoid this if possible :)

Wednesday, October 10, 2012

Help Google adding correct street numbers in maps

I stumbled upon a nice way of distributing tasks implemented by Google. It's about street numbers, which in most of the navigation applications are problematic. Google is trying to fix this by giving you this refined CAPTCHA mechanism:

Each time you post to a blog comment you get this CAPTCHA (if you get it).

I imagine that these images are in a database which associates them to:

* street
* gps coordinate
* direction (left/right)
* ...

I completed with a wrong number and got no complains :)

Happy mapping Google!

Saturday, October 6, 2012

Which image looks more messy?



Created with this dumb python script:

#!/usr/bin/python

import random
import sys

def write_pgm(filename, width, height, buf):
    header = "P2\n#%s\n%d %d\n255" % (filename, width, height)

    f = open(filename,"wt")
    f.write(header)

    bufsize = len(buf)
    for i in range(bufsize):
        if i % width == 0:
            f.write("\n")
        f.write( "%03d " % (buf[i]) )

    f.close()


if __name__ == "__main__":

    random.seed()

    w=320
    h=240

    stains=32

    # uniform mess
    buf=w*h*[0]
    for i in range(stains):
        n = random.randrange(w*h)
        buf[n] = 255

    write_pgm('uniform.pgm',w,h,buf)

    # concentrated mess (only the upper part)
    buf=w*h*[0]
    for i in range(stains):
        n = random.randrange(w*h/10)
        buf[n] = 255

    write_pgm('concentrated.pgm',w,h,buf)

Wednesday, August 8, 2012

Negustoria la romani

Eu(E): Vreau lapte batut marca X?
Vanzator(V): Nu avem.
E: Dar de care aveti?
V: Y la cutie, Z la bidon... Dar Z e cel mai bun. Eu din asta cumpar.

-------

E: Vreau si eu baterii marca X (marca cunoscuta)
V: Avem marca Y (prima oara cand aud de ea). Sunt cele mai bune. Eu din astea folosesc si tin cel mai mult.

------

E: Bocancii astia cum sunt?
V: Sunt foarte buni. Cel mai bun raport calitate pret.

[ ma uit pe net, caut si vad numai probleme... mai ales la magazinul ala ]


~~~~~~~~~~

Astept cu interes si alte intalniri cu acesti negustori innascuti.

E: Vreau si eu un pachet de prezervative?
V: Astea-s cele mai bune. Le folosesc in fiecare seara.

E: Vreau si eu hartie igienica. Ce aveti?
V: Asta e cea mai buna. Cu asta ma sterg la cur si o folosesc si pe post de servetel.

~~~~~~~~~~~~~~

Exista oare o replica mai penibila decat "asta folosesc si eu" sau asta e "cea mai buna". Cum dracu sa vinzi ceva cand nu stii nici sa prezinti produsul?

Ca sa continuam Ce stim sa facem?

Negustorie: FAIL!

Friday, August 3, 2012

Ce stim sa facem?

Frunzarind aiurea site-urile nu vad efectiv nimic interesant. Nimeni nu spune nimic, doar relateaza, doar copiaza rezultate/stiri de pe alte siteuri, rareori ceva interesant.

Vad oameni panicati cu referendumul, comentarii infierbantate din ambele tabere, declaratii care mai de care mai dure si amenintatoare... nimic.

Stau si ma gandesc? Ce stie natia asta sa faca? Ce face ea efectiv cand nu copiaza stiri (fara sa dea sursa de multe ori), cand nu traduce stangaci si cu greseli gramaticale de pe site-uri straine, cand nu sparge seminte, cand nu urla la microfoane ca cutare fura si altul e prost... Ce avem de oferit pentru a ne crea o imagine de tara non-africana?

Pai sa vedem:

Fotbal - FAIL (ultra FAIL)!
Nu stim, suntem praf. Aici nu (mai) existam. Era o data (da, asa trebuie sa inceapa relatarea) o echipa de fotbal care a ajuns in 1994 in sferturile cupei mondiale. De mentionat ca echipa aia a fost educata intr-un sistem in care se impunea disciplina. Vezi disciplina dupa 1990. Vad cum si-o fura echipele noastre "valoroase" prin diverse competitii si apar zeci de articole care sa explice esecul, sa spuna ca uneori e nevoie si de "noroc", nu e suficient sa fii mai bun. Evident noi suntem praf, dar daca spui asa ceva nu se mai uita bizonii si scade "reitingu".
Nu pricep cine dracu se uita la fotbal la tv de se discuta mereu cine o sa difuzeze meciurile din divizia a. Si recent am inteles ca mai toate televiziunile-s pe pierdere, deci wtf...

Gimnastica - almost WIN!
E clar ca e mai bine decat la fotbal, dar promovarea lasa de dorit. Daca vrei sa vina copiii de mici sa faca performanta, fa-ti reclama. Ia antrenorii, abureste ceva cu medalii, munca, dedicatie, chestii. Eu nu am vazut un articol legat de gimnaste si de antrenament de mai bine de 4-5 ani. Pai asa ne promovam? Eu as aparea de minim 2-3 ori pe an cu un mesaj bine gandit, frumos impachetat, in care imi fac reclama. Cer prea mult ca o data la 4 luni sa iesi si macar sa lauzi noile achizitii de personal, de echipament, dotari, whatever?

Scoala - FAIL!
Avem olimpici internationali cu rezultate intr-o tara in care nici 50% nu ia bacul. Banuiesc ca asta e o problema nu? Este, evident. E clar ca sistemul asta favorizeaza oarecum oamenii care nu prea au nevoie de scoala. Si atunci care e rolul lui? E clar ca in loc sa fie convinsi mai multi sa invete, se intampla contrariul. Nu poti sa dai vina doar pe elevi, ar fi trecut mai multi bac-ul, mai e si sistemul.

Spitale - FAIL!
Du-te sa iti iei nu stiu ce reteta de la medic (spital de stat). Ditai coada, batrani, femei, copii si o asistenta care IMPARTE bonuri de ordine (hartii cu numere scrise cu pixu'). Dar nu imparte mereu, ci doar cand o gasesti pe acolo, ca face si alte rahaturi/freaca mentolul. Nu se stie. Solutia e sa te duci direct la privat si rezolvi rapid problema. Time is money! Praf, again.

IT-stuff - almost WIN!
Aici deja e complicata treaba. Fara firme din exterior o sugem fara drept de apel. Ca tot is in domeniu pot sa zic ca deja e foarte greu sa gasesti un om competent. Hai sa presupunem ca-l gasesti, trebuie sa il si convingi sa vina. Vad cum se aplica metode vestice de angajare intr-o tara estica prin excelenta (semi-fail). De ex: se pierd angajati cu potential doar din simplul motiv ca "(s)he doesn't fit the profile", asta fiind o analiza facuta din avion, doar citind cv-ul. Probleme-s multe aici, si cred ca datorita excelentei noastre scoli se vor inmulti si acutiza in scurt timp (mai putin de 5 ani) Suntem prea putini ca sa ne laudam cu ceva de proportii.

Datul cu parerea - WIN!
Suntem activi pe forumuri, comentam, ne agitam, injuram, atacam persoane doar de dragul de a le ataca, futem in gura, amenintam cu datul in judecata, vin cu "raketzii dupe tine"... Nu oferim argumente, ca nu avem. Mai bine oferim "concluzia" la care am ajuns: s_ugi p_ula, muist uslist, basist imputit, esti praf, esti un idiot, esti bou etc.

Asteptarea salvatorilor - WIN!
Behai in fata blocului, la coltul strazii, pe borduri, in parcuri, o arzi pe net acasa in timpul zilei? Spargi seminte si faci covor de coji jos? Te-ntelegi cel mai bine cu cainele? Esti specimenul perfect pentru viitoarea masa de manevra. Stai linistit, asta e ideea, they say jump you say how high...

Jurnalism - FAIL!
jurnalisti corupti, santajisti, oameni fara coloana, agitatie, dezinformare, relatari contradictorii. Evident, depinde pe ce site/ziar te uiti. Prea putini care au de gand sa isi faca meseria cat de cat obiectiv. Intuiesc si sper falimentul presei scrise. Asta cu toate ca online-ul nu e, inca, un mediu pentru care lumea sa fie dispusa sa plateasca.

Agricultura - FAIL!
Ne rugam sa ploua pe timp de seceta, si cand ploua ne rugam sa se opreasca. Care e diferenta intre agricultura de acum 100+ de ani si cea din prezent? Un sistem de irigatie nefunctional, furat si dus la fier vechi. Atat.

Wednesday, July 18, 2012

19 ani de invatamant romanesc (pe capitole)

Acum ca am terminat in mare istorisirile despre anii petrecuti in cei 19 ani de invatamant m-am gandit sa aranjez totul pe capitole, astfel incat cei curiosi sa poata rasfoi fiecare etapa parcursa de subsemnatul.

Ca sa fie clar, eu sunt unul din aia care a invatat, dar nu s-a omorat facand asta. Puteam sa invat si mai mult (asta e clar!), mai ales in facultate, dar am preferat sa ma apuc de altele (chiar daca pe multe nu le-am terminat).

(I) Clasele primare (click)

Am mentionat in treacat si gradinita dar n-am pus-o la contorul de 19 ani. Mintile noastre necoapte nu au fost invatate nimic util, valabil in societate: cum se trece strada, reguli minime de igiena... totul a venit din exterior.

Am invatat bazele cu care vom invata mai tarziu: scris, citit, calcule aritmetice simple (adunari/inmultiri). Nimic altceva.

(II) Generala (click)

Am dat de mai multi profi. Devenea interesant sa vezi diverse abordari, diverse experiente de viata. Metodele de invatat prin bataie erau inca practicate.

(III) Liceul (click)

Am invatat ce inseamna sa alergi dupa note. Asta pentru ca in generala nu prea aveam concurenta, cel putin la chestiile care ma interesau (mate, fizica, chimie) si faceam fix ce voiam, ce imi placea. Era clar, la liceu nu mai eram chior in tara orbilor. Aceasta concurenta se manifesta prin: invat azi, maine uit, dar am nota. Sa nu fiu inteles gresit, asta se intampla oarecum si prin generala, dar in liceu practica asta a atins nivelul de arta.

Incepea lumea sa fie oarecum orientata, doar disperatii invatau la toate.

(IV) Admiterea la facultate (click)

Unele facultati stiau cum sa faca bani "vanzand" mascat unele problele de la examen printr-o culegere aparuta cu cateva luni inaintea examenului. Inca existau facultati cu probleme organizatorice grave (vorbim de anul 2001).

(V) Anul I la Poli (click)

Mda, caminele din regie, vai de soarta lor, dar plm, no money for rent. O mare dezamagire facultatea de automatica si calculatoare, cel putin in primul an. Parca nu imi ajunsese liceul cu toate bullshiturile, imi trebuia si aici sa o lalai cu materii inutile. Se punea accent pe toceala... trist dar adevarat. Unii profi nu puteau sa discute cu tine decat teorie, la atat se rezuma competenta lor - valabil pentru toti anii de studiu, aproape fiecare an avand cate o "materie de toceala".

Dar comparativ cu liceul aveai libertate totala, aveai libertatea sa nu inveti nimic sau sa inveti sa iei bursa. Erai stapan pe situatie. Nu stiu daca era intr-adevar un lucru bun pentru toti...

Internetul curgea, roedu ne ajuta sa downloadam tot ce voiam, de la porneturi la jocuri, filme sau documentatii...

(VI) Anul II la Poli (click)

Am dat de spagari, adica din aia nesimtiti, care toata lumea stia ca te ajutau sa treci contra unui pret corect (200 $/Euro parca). Am dat peste oameni frustrati, a caror fericire era efectiv supararea studentului.

Am inceput sa imi pun problema pentru prima oara daca e pe bune facultatea asta, daca am nimerit unde trebuie, adica eu vedeam ca nu invat nimic, pentru ca tot mai lucram la cateva proiecte si parca nu avea legatura cu tampeniile din faculta (electronice, fizici, matematici...) decat tangential.

(VII) Anul III la Poli (click)

Fraier si rabdator fiind, am sperat ca ceva se va schimba in facultatea aia. Chiar mi-am facut sperante dupa ce am vazut ce materii am pus pe contractul de studii. Mda, doar numele era de ele. Cu mici exceptii, toate erau facute de dragul de a se alinia cu facultatile din diverse colturi ale lumii in care chiar se face ceva. Nu mai vorbim de experienta profilor in domeniu... unii erau oricum preocupati de afacerile personale.

Au fost si oameni competenti, dar deh, nu cu exceptiile defilam. Degeaba pui tu o umbreluta colorata unui cacat, nu devine deodata cocktail, tot cacat ramane.

(VIII) Anul IV la Poli (click)

Scoala + munca = obositor. Dar e posibil la Poli, chiar daca nu calci decat rareori pe la scoala (si atunci obligat). Asistentii erau majoritatea studenti si ii cam durea in cot. Satul de bullshit mi-am ales specializarea cea mai simpla, nu mai aveam chef de stat la facut tone de teme a caror utilitate nu reuseam sa o vad.

(IX) Anul 5 la Poli (click)

Un semestru lejer si un semestru pentru diploma. Lejer lejer... Si sustinerea lucrarii de diploma a fost o gluma proasta, chiar mai proasta decat facultatea. Puteam sa nu fac nimic si tot treceam.

(X) Master la Poli (click)

Nu stiu de ce, dar poate pentru ca era gratis... Daca as fi facut o facultate la distanta cred ca as fi trecut mai des decat la master. Cu toate astea am avut niste note care m-au surprins cand m-am uitat pe foaia matricola. Habar nu am la ce foloseste... dar oricare "absolvent" de master poate confirma ca a fost o frectie. Dar bani de la stat au venit? Pai da!

Trageti voi concluziile!

Eu m-am gandit ca nu mai are sens sa le trag, desi ma gandeam la ceva solutii.

Solutia pe scurt: INVATA cat mai multe SINGUR! Daca poti sa ii inveti si pe altii INVATA-I! Comunica, fa-te remarcat in alte cercuri: forumuri, job, intalniri, conferinte etc. Doar asa vei intelege cum sta treaba cu adevarat. Pentru joaca inocenta si fara urmari/castig/experienta exista facultatea.