Se afișează postările cu eticheta computatoare. Afișați toate postările
Se afișează postările cu eticheta computatoare. Afișați toate postările

miercuri, 20 octombrie 2010

Kill Em All

Discutie in chat room:
DBA: bai vedeti ca moare cpu-ul pe serverul de Oracle vorbiti cu sysadminul sa omoare ceva procese
[chatroom]: pai ce procese?


DBA-ul ruleaza glance si le da rezultatul:
User CPU % Thrd Disk Memory Block Process Name PID Name ( 800% max) Cnt IOrate RSS/VSS On
--------------------------------------------------------------------------------
cimprovagt 24371 root 786.9 17 0.0 33.8mb 38.8mb PRI
glance 2645 nbxadba 5.7 1 0.0 27.1mb 30.9mb STRMS

La care astia din chat:
[chatroom]: sysadmin, please kill glance is not needed for owr run and it is using all CPU

q.e.d.


marți, 25 mai 2010

Hai la cod, la cod, la cod! (3)

Oare cind o intelege lumea ca double-checked locking e clever but broken?! Asta ca sa nu mai vorbim de singleton in general... O fi chiar asa de greu?!

Iaca ce am gasit mai deunazi intr-o clasa care e prin definitie accesata de multiple threaduri...
Adicatelea cam ca la 1907: ar cam vrea sa impropietareasca taranii cu cite o bucatica de pamint... Numa' ca s-ar putea sa le-o cam dea pe aceeasi!

public static UHRoutingServices getInstance() throws UHException
{
if (m_instance == null)
{
synchronized (UHRoutingServices.class)
{
if (m_instance == null)
{
m_instance = new UHRoutingServices();
}
}
}
return m_instance;
}

vineri, 21 mai 2010

Hai la cod, la cod, la cod! (2)

Adicatelea cine e obectele, cine e primitivele si ce vrea ele. Se putea mai complicat?! (Java6)
public static Integer getCustomerSegment(Long i_customerID) {

Long segment = null;

segment = Long.valueOf(String,valueOf(hash(i_customerID)));
segment = Long.valueOf(String.valueOf(convertLongTo10Bit(segment)));

return new Integer(segment.intValue());
}

public static long hash(Long toHash) {
...
}

private static Integer convertLongTo10Bit(Long i_long) {
...
}

Hai la cod, la cod, la cod! (1)

Din ciclul "cine n-are un StringBuffer sa-si cumpere" sau "ce e StringBuffer-ul si la ce (nu) e bun el".
Apropos, codul e pentru Java6 si single-threaded :D


@Override
public String toString()
{
StringBuffer buffer = new StringBuffer();
buffer.append("m_processInstanceID = " + m_processInstanceID);
buffer.append(" m_firstReplicationProcessUnitID = " + m_firstReplicationProcessUnitID);
buffer.append(" m_segmentGroupID = " + m_segmentGroupID);
buffer.append(" m_cycleCode = " + m_cycleCode);
buffer.append(" m_fromSegmentID = " + m_fromSegmentID);
buffer.append(" m_toSegmentID = " + m_toSegmentID);
buffer.append(" m_custDBConnectCode = " + m_dbConnectCode);
buffer.append(" m_usageDBConnectCode = " + m_usageDBConnectCode);
return buffer.toString();
}

joi, 6 mai 2010

Mare-i America

Printre minunatele intimplari cu care imi petrec eu zilnic orele la servici se gaseste una care raspunde la numele de spotcheck. Mai precis echipele de la diverse aplicatii trebe sa isi vire nasurile in environmentele nou create sau upgradate si sa incerce sa vada daca totul e bine pe acolo. Asta in ideea ca se vor mai elimina din potentialele probleme intilnite de testeri si/sau de clienti.
Asa ca deci cum imi veni o mareata cerere de spotcheck suflec minecutzele frumos si zic sa ma apuc sa-mi cistig banutzul zilnic. Numa ca ce sa vezi pentru aplicatia mea lipseau datele environmentului din tabelul trimis. Nu-i bai tragem un mail frumos si intrebam de indicatii...

Nici un raspuns. Ne bagam pe chat intern al firmei aici e intotdeauna o gramada de lume, io nu stiu din ce draq mai traieste Facebook-ul.

De aici incolo nu mai comentez... Va las placerea lecturii... Cu spelling mistake-uri cu tot.


Radu Popa(10:56:36 AM): Heather what is the server and user/password for XACCT environment?
Radu Popa(10:56:48 AM): it is not clear at all from the meeting request
Heather Wood(10:57:18 AM): radu. why do you need to check XACCT?
Radu Popa(10:57:53 AM): because it was in the list that you sent; if you do not want to be checked, why did I get the invite?!
Heather Wood(10:58:53 AM): you are on the list of spot checkers. that is why. but, we have not had any upgrades to this application for this release.
Radu Popa(10:59:25 AM): ok... so, there is no spot check needed for XACCT? please confirm
Heather Wood(10:59:35 AM): I can't tell you what you need to check. I need you to tell me if one is needed.
Heather Wood(11:00:00 AM): upgrade on training usually only includes Enabler
Radu Popa(11:00:52 AM): I am sorry, but I do not understand you... Was an environment created or upgraded for XACCT? If this is the case it needs to be spotchecked, if not there is nothing to check
Heather Wood(11:01:23 AM): I just pulled up the chart... same one as in the emai. we do not have XACCT
Heather Wood(11:01:36 AM): that's why that column is blank
Radu Popa(11:01:41 AM): ok; thanks for clearing it up

joi, 18 martie 2010

Sincronizare intre 2 calendare Outlook

Se dau doua conturi pe servere Exchange diferite cu calendarele aferente, accesate de pe compuri diferite. Meetinguri ca la balamuc in ambele calendare. Aproape imposibil de urmarit update-urile si/sau alarmele pentru meetinguri. Concluzia: nashpa! Cam un sfert din meetinguri se duc naibii pentru ca aflu prea tirziu de spre ce se mai intimpla cu ele.

Solutia: Google Calendar Sync. Adicatelea un programel care se instaleaza pe cele 2 compuri, acceseaza calendarul Outlook (MAPI?) si il sincronizeaza cu calendarul Google. Sincronizarea poate fi uni- sau bidirectionala. Conectind ambele conturi de Exchange la acelasi cont Google am reusit sa sincronizez cele doua calendare Outlook.

What can I say? One more for Google!

vineri, 12 martie 2010

jukefly

Nu stiu cit, cum si cit de mult ati aflat despre jukefly, dar daca nu, sau nu prea mult, simt o nevoie imperioasa sa va spun eu.
Smecheria cu pricina este un player de muzica. Etete mare smecherie! Mare intr-adevar, pentru ca face cam tot ce (mi)-ar trece mie prin capatzina ca ar trebui sa faca. Mai precis:
- cinta (doh!)
- are un search ultra, xtra, cashcaval care chiar functioneaza iar rezultatele sint grupate dupa artist, album si inca paishpe mii de criterii
- afiseaza versurile melodiei curente
- afiseaza biografia trupei/artistului
- arata si un video clip al melodiei respective sau macar citeva poze
- are linkuri catre magazine online pentur cumparat albumul cu pricina
- salveaza liste de preferinte muzicale; listele se pot trimite/share-ui (oops!)
- interfata e superba si mai suporta si teme

Acuma de unde are domne jukefly-ul asta atita muzica si informatii pe masura?! Pai asta e mishto: totul e din surse publice de pe web! Adica muzica propriuzisa vine de la youtube si last.fm, versurile de la x site-uri care le au stocate pe undeva, informatiile despre formatii de la last.fm, wikipedia, etc, etc, etc. Carevasazica jukefly face cam ce ar face o persoana reala interesata de o piesa muzicala: ar asculta bucata respectiva si ar mai obtine si o multime de info despre formatia care o cinta, eventual versuri, albumul pe care a aparut, etc.
Sincer mie mi se pare un mash-up de info extraordinar de util si bine facut. Ca sa nu mai zic de interfata!

Plus, fix aceleasi servicii le poti avea si pentru colectia de muzica de pe calculatorul propriu si personal. Adica face streaming la muzica ta si o poti asculta oriunde ai acces la net. Mare brinza, nu? Streaming media servere sint destule! Da, dar halelalte nu prea pot lucra offline! Adica, poti sa asculti la birou muzica de acasa fara sa ai calculatorul de acasa deschis... Cum? Pai serverul de streaming are grija ca atunci cind esti online sa incarce metadate despre colectia ta muzicala pe serverele jukefly si sa iti asigure redarea acelorasi melodii, din surse publice (sau de la peers? - probabil ca nu), cind esti offline! OK, nu o sa functioneze pentru ascultat ultima creatie pe care ai inregistrat-o azi dimineata cind urlai in dus, dar daca vrei muzica o sa mearga :)

Inca un plus: taman au scos o aplicatie si pt iPhone pentru accesul la jukefly. (De ce aplicatie? Pentur ca Stve Jobs zice ca Flash-ul e un caca maca si nu s-a deranjat sa-l puna pe iPhone). OK, la cit imi place mie de Apple ma mai gindesc daca asta e un plus...

Ce urmeaza? Pai zic chiar ei: concert information, chat, fan-clubs, internet-radio, etc. Etc-ul ala imi place cel mai tare :)

P.S.: pentru cei cu inclinatii mai tehinice jucaria are interfata grafica in Flex si backend-ul in RoR

marți, 17 noiembrie 2009

Project Natal

Ziceam acu ceva timp de hal mai tare soft de care am auzit vreodata. Numai ca se pare ca la computatoare nu prea se exista "hal mai tare". Decit eventual pe termen scurt, sau pe un domeniu restrins.

Anyways, ieri am citit despre Project Natal, ultima gaselnitza de la Microsoft. Nu le-am mai zis Micro$oft, pentru ca, desi probabil ca sint o droaie de $ in joc, mi se pare ca e chiar o chestie extraordinara. Si imi aduc aminte de o declaratie a lui Bill Gates de acum ceva ani cind spunea ca dintre competitori ii este frica numai de Nintendo. Pe vremea aia Nintendo era la nivel de Super Mario, XBox nu exista, iar Playstation se juca cu chestiunea in tzarina, asa ca toata lumea a zis ca Bill s-a dus cu pluta. Iata ca intre timp Nintendo a facut Wii, XBox a fost (este) un hit, iar MS merge mai departe si se pare ca o sa scoata pe piata un proiect fabulos.

Din cite stiu cutiutzele cu pricina au fost livrate la dezvoltatorii de jocuri in Iunie, asa ca ma astept ca de Craciun sa le putem cumpara din magazine. Si tare imi vine sa cred ca ma apuc si eu de jocuri pe calculator :D

joi, 12 noiembrie 2009

Out of my league

Se facea ca sint la un training. Se vorbeste despre AbInitio o scula de ETL, se pare ca cea mai rapida de pe piata. Se mai vorbeste ca ar fi de ordinul sutelor de ori mai rapida decit orice alta chestie similara. De ce doar se vorbeste si nu se stie? Pentru ca abinitio-shii astia sint de o secretoshala ceva de groaza. Pentru conformitate uitati-va doar la abinition.com. Site comercial mai sarac in informatii greu de gasit.

Cum sint eu mai circotash din fire si cum subiectul ETL-urilor ma pasioneaza de mult am (incercat sa) intrat in tot soiul de discutii cu tipii care conduc trainingul, incercind sa aflu cit mai multe. Mi s-a raspuns amabil, atit cit stiau si ei, iar cind au simtit ca nu mai stiu, sau ca nu mai vor/pot sa spuna mi-au sugerat sa trimit un email la help deskul lor.
Obisnuit cu modul in care merg treburile prin organizatiile mari am trimis in dorul lelii un mail la adresa respectiva. Mare mi-a fost mirarea cind intr-o jumatate de ora am primit si raspuns.

Frumusetea vine acuma... Deci, eu sint Gica de la firma Cucu SRL, care intr-adevar e client dar nici pe departe printre cei mai importanti, n-am nici o treaba direct cu produsul respectiv, e prima data cind apelez la HD-ul lor si, cu toate astea, primesc raspuns in jumatate de ora. Suna deja bine, nu?
Si totusi... Cel mai fain devine cind vezi cine iti raspunde la mail. Pai cine sa fie vreun amarit din Bangalore platit cu 1 dolar pe zi, care nu stie decit sa noteze ce zici tu... Ei bine de data asta nu, domnul care mi-a raspuns la email se numeste Chris Arnesen, e american get-beget, cercetator post doctorand la Carnegie Melon, doctor in Fizica la MIT si licentiat in Fizica la California Institute of Technology. (Pt. conformitate: http://www.linkedin.com/pub/chris-arnesen/a/868/606)

Asta e omul care mi-a raspuns mie la Help Desk... Oare cine face design si dezvoltare la astia?!!!

joi, 15 octombrie 2009

Just another day....

Carevasazica doua rapoarte ruleaza bine merci, ruleaza si al treilea numai ca e gol. In log zice ca "query"-urile cu pricina n-au gasit nimic prin tabele. Nada. Zip.
OK, asa o fi... Lansam broasca (tu-i arhanghelii ma-sii lu' cui la inventat!), copy&paste la query-ul din log... Ce sa vezi?! Iaca intoarce o gramada de row-uri. Putin important ce scrie in ele, important e ca aduce ceva iar maretzul raport apare gol. Ce sa fie? Ce sa fie?

Greseala (pana) prostului? Nope, e aceeasi baza de date. Vreun sinonim aiurea? Ntzz... Draq sa-l ia de raport, devine chiar enervant. Ce ne facem fratilor ca e in productie, nu se mai poate rula inca odata... In sfirsit il generam cumva intr-un environment de test, copiem datele in productie si end-of-story.

Zici.. .Toata lumea se intreaba cum de s-a intimplat fenomenul. Toata lumea isi da cu parerea care mai de care, idei peste idei, presupuneri peste presupuneri. Rezultate: nada, zip. Binenteles, ca in orice film, apare Fat Frumos, Bruce Willis, Rambo sau cum vreti sa-i ziceti lu ala care-i bate pe toti de se aduna cadavrele cu lopata din jurul lui. In cazul de fata un viteaz Group Leader dintr-o tzara de o culoare mult mai inchisa decit cred eu ca e normal sa fie o tzara. Inca un hint: ii mai zice lumea si subcontinent. La tzara, nu la GL. Anyways, gagiul se gindeste puternic, cu totul vreo 10 minute, si debiteaza senin, cu spelling mistakes cu tot: "there is a good possibility of memory corruption affecting the variables to used to select data in for the remaining reports. Please check if you can find any cause for such behavior – that may have impacted the remaining reports".

Daca mai conteaza va mai zic si ca aplicatia cu pricina e in Java, adica asa din principiu te-ai gindi de doua ori inainte sa deschizi gura despre probleme cu memoria. Da' sa vedem cam ce zice nenishorul: "niscai omuletzi mici si verzi s-au bagat prin memoria lu programu matale si acolo i-a corupt pe bietzii bitzihsori, functionari la stat, care isi vedeau linistitzi de treaba. Matalutza, ca vajnic organ (de ordine), nu organizezi un flagrant sa-i prindem pe tradatorii de neam? Ca nenorocitii corup si restul populatiei!".
Oare cita ceatza tre sa fie in mintea - se exista oare?! - ta, ca sa debitezi asemenea elucubratzii?!

Restul e BAU...

marți, 13 octombrie 2009

Care mai aveti veleitati de fotograf...

... lasati-va! Taman se pare ca a aparut hal mai tare program care se ruleaza pe vreun computator. Cel putin din ce am vazt eu...

Ca sa nu va mai plictisesc cu vorbe, iete aci:



Cum zicea un amic: "software... nu interfata pt baze de date". Culmea culmilor: exista soft si in afara aplicatiilor enterprise!

P.S.: se pare ca chestie e chiar pe bune desi pare rupta din StarTrek http://cg.cs.tsinghua.edu.cn/montage/home.htm

vineri, 24 aprilie 2009

Programming Languages Poll

Legat de postarea anterioara si nu numai, acum ca Java s-ar putea sa devina istorie cit de curind sau oricum o sa-si piarda din avint, ce limbaj credeti ca o sa devina mainstream?

Eu votez cu ceva functional... As inclina spre Scala, dar ruleaza pe JVM :) Ceva predictii?

marți, 21 aprilie 2009

Total Eclipse of the SUN

Deci, indiferent de parerile altora, eu ma simt in doliu... In doliu dupa SUN... Mi se pare incredibil ca o firma ca asta a reusit sa se duca naibii pe cont propriu si ca hraparetzii de la Oracle au pus mina pe ea. Probabil ca asa e viata, dar parca as fi preferat IBM-ul, daca tot era sa fie un cumparator.
Oracle ma nerveaza asa din principiu, cu Larry cu tot... Iar de cind au inceput sa haleasca in Java stack cu atit mai mult. Nu era de ajuns ca au nenorocit BEA?!

Anyways, se apre ca e cazul sa ma apuc de limbaje noi... Chiar daca Java supravietuieste, pentru mine si-a pierdut tot factorul de "cool language".

duminică, 18 ianuarie 2009

New development methodologies for the 21st century

Intr-o Duminica plina de amoc, pazind citeva idioate de scripturi carora le ia ore bune sa updateze niste tabele la fel de idioate, intre telefoane disperate de la tot soiul de manageri punind clasica intrebare: "What's the status? si neasteptind raspuns, prin agitatia celor din jurul meu (toata lumea misuna injur ca sint sefi mari prezenti in preajma si da bine sa fii agitat)... Cam asta ar fi environmentul in care, tot browse-uind netul pentru ceva interesant, am gasit in cele din urma un blog post cu exact titlul de mai sus.
Cetesc ce cetesc si e chiar interesant asa ca mai google-esc un pic si gasesc explicatii suplimentare. Si ce sa vezi aproape toate aceste maretze metodologii le aplicam si eu cu succes fara macar sa stiu :)
Asa ca deci ia sa vedem ce se propune pentru secolul cu pricina ca TDD, agile, XP si alte alea sint fumate de mult.

Favorita mea este binenteles ADD, dar trebuie sa recunosc ca in mareatza organizatzie in care lucrez DBD este mult mai folosita, de multe ori impreuna cu GMPM si variante de CYAE. Cum nu stiti ce siint astea?! Iete aci:
Asshole Driven development (ADD) - Any team where the biggest jerk makes all the big decisions is asshole driven development. All wisdom, logic or process goes out the window when Mr. Asshole is in the room, doing whatever idiotic, selfish thing he thinks is best. There may rules and processes, but Mr. A breaks them and people follow anyway.
Cover Your Ass Engineering (CYAE) - The driving force behind most individual efforts is to make sure than when the shit hits the fan, they are not to blame.
Development By Denial (DBD) - Everybody pretends there is a method for what’s being done, and that things are going ok, when in reality, things are a mess and the process is on the floor. The worse things get, the more people depend on their denial of what’s really happening, or their isolation in their own small part of the project, to survive.
Get Me Promoted Methodology (GMPM) - People write code and design things to increase their visibility, satisfy their boss’s whims, and accelerate their path to a raise or the corner office no matter how far outside of stated goals their efforts go. This includes allowing disasters to happen so people can be heroes, writing hacks that look great in the short term but crumble after the individual has moved on, and focusing more on the surface of work than its value.

Alti autori (clasici in viata) elaboreaza despre valoarea si puterea CPDD (Copy&Paste Driven Development) si MDD (Meeting Driven Development). Ce sa mai vorbim de RDD (Resume Driven Development) si despre sindromul NIH (Not Invented Here)?! Oricum un loc de cinste au patternurile CPMP pentru Real Software Engineering.

Asa ca deci, dragi co-clapacitori, daca va aflati vreodata, si o sa va aflati, pazind scripturi/programe idioate care nu fac mare brinza dar dureaza o multime, petrecindu-va weekendul in cimpul muncii, raspunzind la intrebarile managerilor mai mici sau mai mari, daca se agita lumea prea tare in jurul vostru, daca vreuna din astea sau altele mai grave se intimpla deci, faceti-va timp si mai studiati un pic metodologiile de dezvoltare pentru secolul 21.
Pentru ca evident daca treceti prin vreuna din situatiile de mai sus este numai si numai pentru ca nu sinteti la curent cu ultimele progrese in domeniu :D

vineri, 16 ianuarie 2009

Kakaldinho

Criza domle! Criza mare di tat! Bate vintu prin redactii si pe aiurea... Asa tare bate ca ce le dadu prin bostan la amicii de la gsp.ro: sa publice o stire despre Ronaldinho!
Pai si ce ar fi prima data?! Nope... Da' se pare ca intre timp dintzosu s-a mutat la AC Milan si se facea ca aprigii nostri gazetari n-au facut rost de poze cu fizicul individului infofolit in tricoul rosso nero.

Nu-i bai! Romanul e frate cu codru si mai nou cu Photoshopul... asa ca deci si prin urmare, un baietzel din curtea Mazetei Sporturilor dadu din mouse cu avint deosebit si potrivi din condei capatzina lu' Ronaldinho pe un corp in uniforma milaneza. Treaba bunicica tehnic, exceptind o pozitie cam nefireasca a capatzinii cu pricina, numa ca ce sa vezi: mufa negricioasa a lui Ronaldinho a fost plantata pe un corp albicios! Iete strutzo-camila se exista: albul cu cap de negru! Ba parca chiar se pare a fi corpul lui Kaka chestia alba de sub capatzina lui Dinho...

Sa-ti fie de bine si la mai mare mazeta care esti! Io zic sa va tineti bine de scaune ca urmeaza Beckham grefat pe Seedorf... sa vezi ce-o sa-l placa Victoritza.

Pentru conformitate vedeti aici, pina se prind gogomanii sa scoata pagina de pe site.

joi, 4 decembrie 2008

Me + Chuquicamata = Love

Strabatut asa de un incipient fior de apropitar de blog, ma pune naiba sa ma uit pe Google Analytics sa vad cam cine, ce si (mai ales) cum se joaca pe site-ul pe care-l cititi chiar acum.
Interesante statistici, ce sa zic... Iaca asa aflu ca blogul meu e citit de oameni din fix 15 tari, printre care una interesanta de tot: ii zice (not set). Hopa, carevasazica se exista si adrese IP pe care nici maretzul Google nu poa' sa le identifice?! Sau n-are voie sa spuna cui apartin? Da' ce draq ar putea cauta asemenea smecheri pe blogul meu?

Daca treci si la statistica pe orase distractia se extinde exponential... Cel mai fain mi se pare ca am cel putin un cititor in Chile, mai precis in Chuquicamata. De Jos probabil :)
Wikipedia sa traiasca asa ca aflu ca sta e o mina de cupru care se remarca prin folosirea unor camioane imense. Pai ce Miron Cozma, ce plantat de flori in fata la National, minerul chilian din Chuquicamata e cel mai tare ortac. Nu numai ca stie sa citeasca, dar il intereseaza intens blogurile despre viata romanilor in America... De preferinta chiar scrise in romaneste :D
(OK, pentru linistea prietenilor IT-isti sa zicem ca respectivu "cetitor" e un bot. Da' chiar si asa... cine draq are servere care ruleaza botzi in Chuquicamata?!)

vineri, 7 noiembrie 2008

Got Zink?

De citeva zile citesc Crash Proof a lui Peter Schiff, la sugestia unui amic. Nu-i zic astia degeaba Dr. Doom, e de rau ce propavaduieste asta... America e indatorata pina in git (adevarat de altfel), nu mai are industrie manufacturiera (din nou adevarat), trade deficit e imens (foarte adevarat), dolarul isi pierde statutul de "reserve currrency" (posibil), guvernul american falsifica cifrele privitoare la inflatie (foarte credibil, tinind cont de cenzura de aici), chinezoii incep sa consume intern si nu mai au atita nevoie de piata americana (se pare ca da), exportul de informatie si tehnologie nu il poate suplini pe cel de produse (oare?!) , etc, etc, etc... Mai multe "etc-uri" pentru ca mai are o multime de argumente.
Acestea fiind ipotezele, concluzia e una singura: America se indreapta fix spre colaps financiar, de unde nu mai iese decit greuceanu de tot... Solutia, cel putin in viziunea lui Schiff: cumparati aur si ingropati-l in curte, nu tineti dolari ci euro, de bursa apropiati-va doar pemtru actiuni ale altor firme decit cele americane.

O fi, n-o fi... Chiar nu ma cred suficient de calificat sa-mi dau cu parerea... Ce pot sa zic sint doua lucruri: primul ar fi ca firma lui Schiff nu o duce chiar grozav, scade la bursa si pierde clienti pe capete - deci chiar daca prognoza lui e buna, solutiile nu par cele mai indicate, iar al doilea ca se pare ca sint inca domenii in care industria americana duduie din plin.

Ca de exemplu industria chimica si mai precis R&D-ul acestei industrii... Un exemplu: Zink Imaging! Cine-s astia? Un start-up desprins din Polaroid - care apropos a revenit dupa rasunatorul faliment din 2001 - care a inventat ceva grozav dupa mintea mea: tiparirea fara cerneala! Mai precis pe hirtia speciala folosita de imprimantele lor sint deja prezente vopseluri in culorile de baza, iar prin incalzirea si combinarea lor se poate genera culoarea dorita. Procesul complet este descris aici. Dracesc de simplu si eficient.
Exista deja o imprimanta, Polaroid binenteles, bazata pe acest principiu, disponibila la Amazon pentru aproximativ $100. Hirtia e cam $10 pentru 30 de coli. Deocamdata se pare ca sint unele probleme cu redarea culorii si dimensiunea imaginii este foarte mica, 2x3 inch. Avantajul ar fi ca e o solutie portabila, numai buna pentru snap-shot-uri. Are si bluetooth, asa ca se poate conecta si la un mobil.
Alt produs care trebuie sa apara cit de curind este un aparat foto cu imprimanta incorporata, dar daca vreti sa visati cu adevarat uitati-va la Zink World.

Asa ca deci, tinind cont ca R&D-ul pare sa duduie, imi aduc aminte de o replica din Marile Canioane a lui Dan Grigorescu: intr-un magazin de electronice, prin Seattle cred, intra in vorba cu vinzatorul si ajung impreuna la concluzia ca aproape toate chestiile vindute in magazin sint japoneze... "Pai, asa ca american, nu va e frica ca la un moment dat economia americana o sa fie in pericol din cauza asta? Adica importati tot, nimic nu se mai fabrica in America..."; "Nu", raspunde tipul, "Chiar deloc!"; "Pai cum asa?!" se mira profesorul nostru. "Pai", zice Joe The Plumber, "cite premii Nobel au japonezii si cite avem noi?!".

Acuma e drept, Dan Grigorescu scria pe la sfirsitul anilor 70 si de atunci cam tot ce gasesti de vinzare in America pare a fi fabricat pe undeva in Asia, da' parca tot mai multe premii Nobel au americanii... :D

miercuri, 15 octombrie 2008

Times they are a-changin'...

"Come gather 'round people
Wherever you roam
And admit that the waters
Around you have grown
And accept it that soon
You'll be drenched to the bone.
If your time to you
Is worth savin'
Then you better start swimmin'
Or you'll sink like a stone
For the times they are a-changin'"
-- Bob Dylan, Times They Are A Changing


Se schimba intr-adevar si mai ales la computatoare... Pai numa acu citiva ani (luni?) era showul dupa lume sa-ti instalezi un environment de dezvoltare pe compul personal, cu librarii, IDE, web server, DB, source control, etc. Binenteles dupa ce reuseai laptopul cu pricina devenea mai lent decit nationala de fotbal a Romaniei, hard diskul incepea sa se umple, registrii windowsului se enervau si alte fitze de sezon. Asta ca sa nu mai zic de citi bani ai fi datorat daca luai tot softul pe bune :D
Cum erai insa un programator viteaz te duceai repejor pe Linux si dupa ce iti faceai ceva nervi, mai ales venind ca mine din lumea MS, reuseai sa instalezi toate (cam) cum vroiai. Normal acuma aveai dual boot ca doar mai vroiai si sa vezi un film HD si sa joci nu stiu ce minune si placa de sunet sa scoata 7.1 si placa video sa foloseasca toata memoria, ba chiar si touchpad-ul sa mearga cum ar trebui.
Asta trecind total pe linga alte aplicatii dragalase de gen Office, client de mail si calendar, alea de prelucrare grafica, editare video si mai stiu eu ce mai aduna omul pe acasa. Deci de problema cu licentele am mai zis, da?

Anyways, la un momentan (moment dat in traducere) incepura sa para tot soiul din magariile pe care le-ai fi instalat local, moka. Pe net. Am numit aici Google Mail si Docs si altele din aceeasi categorie. (Apropos, io zic ca cele mai tari faze din astea is alea de la Zoho, cam le dau clasa la variantele Google).
Cam pe la aceeasi perioada a inceput sa-mi incolteasca si mie idea unui IDE online configurat cu tot ce trebuie, source control, DB, environment de test. Cam toate cele de care pomeneam in primul paragraf. Mai mult de jumate din oamenii la care le-am povestit chestia cu pricina au murit de ris la idea unui Eclipse online, mai ales cu environment de test si toate cele.
Timp sa ma apuc de chestia respectiva n-am avut niciodata si nici suficienta tragere de inima.

Se pare insa ca s-au gasit unii care sa faca taman chestia asta. Mai precis SUN. Iete un fragment dintr-un mail primit de la ei chiar astazi:

"EZQual Virtual Lab
We have set up a secure, remote, on-line test facility designed to make it easier for you to develop, test and qualify applications on Solaris 10 or OpenSolaris and MySQL for free!

The Virtual Lab features pre-installed SPARC or x86 processor-based Sun servers with Sun Studio Development Tools, Java SE, Sun's Cool Stack, MySQL, Solaris 10, OpenSolaris and more. Access them conveniently with Sun's Secure Global Desktop Software. It's all provided to you as a valued Partner - could it get any easier? No servers to install, no OS installations; you're ready to go and can sign up today!

> Learn More"

So? Vrea cineva sa "Learn more"? Eu unul de-abia astept sa-mi bag nasul in ce au de oferit... 'cause I still believe that SUN will shine!

"The line it is drawn
The curse it is cast
The slow one now
Will later be fast
As the present now
Will later be past
The order is
Rapidly fadin'.
And the first one now
Will later be last
For the times they are a-changin'"

Outlook quircks

It just so happened that Outlook died on me this morning. No warning, no nothing. Just couldn't connect to the mail server anymore. 'Till today Outlook was one of the best behaving MS apps I have worked with; not much issues there.

Anyways, I have deleted my account, put the settings again, restart Outlook, restart Windoze... Nothing helped. Finally, I've got the idea to delete and recreate the mail profile form Control Panel. Guess what? This worked! Why? God and Bill know...

luni, 13 octombrie 2008

Bijection

Considerata de multi cea mai tare chestie in programare in ultimii ani - desi nu e deloc inventata in ultimii ani :) - de la "slice bread", Dependency Injection a revigorat peisajul aplicatiilor web in Java, dupa nefericitele experiente cu EJB. Pentru ca in loc de umflatele EJB-uri si containerele aferente au aparut frameworkuri "lean and mean", cel mai pregnant exemplu fiind Spring, care lucreaza cu POJO-uri si simplifica semnificativ dezvoltarea, configurarea, deploymentul si mentenanta unei aplicatii. Containerele generice pentru DI (sau Inversion of Control cum mai e numita citeodata, desi nu foarte corect), ca Pico Container, se bucura si ele de mare succes contribuind la raspindirea patternului in aplicatiile non-web. Mai nou Google Guice este un nou container de IoC care aduce citeva lucruri noi, dar, in opinia mea, este doar o expresie a politicii Google de extindere in toate domeniile dezvoltarii de software, un efort al carei ultime iteratii este cred Google Chrome.

Si o paranteza: ca sa fim corecti Dependency Injection este folosita intens si de stack-ul clasic J2EE; in EJB si JSF, de exemplu.

Principiul de baza este destul de simplu, asa numitul Hollywood Principle: "Don't call us, we'll call you!" - chestie spusa se pare de producatori de la Hollywod actorilor aspiranti la un rol. In programare s-ar traduce cam asa: cind un component are nevoie de un serviciu, de la un alt component sau de la frameworkul in care ruleaza, aceste servicii sint "injectate" in componentul respectiv. Cam asta ar fi Inversion of Control: componentele care ofera servicii sint trimise, ca parametrii in constructor sau prin metode set, componentelor care necesita aceste servicii. Binenteles asta se poate face "manual" sau sub controlul unui container, caz in care obiectele sint create de acesta si oferite componentelor care le necesita de catre acesta. Astfel, un component se poate concentra asupra functionalitatii lui specifice, crearea si managementul obiectelor care ofera serviciile necesare fiind efectuata de catre container.
Configurarea obiectelor al carui management e asigurat de container a fost asigurat intii de fisiere xml, actualmente utilizindu-se extensiv anotarile. (Daca asta e mai bine sau mai rau e scopul altei discutii :)

Recent, odata cu introducerea Seam, a aparut un nou concept: dependency bijection. Dupa cum sugereaza numele, bijection face cam acelasi lucru ca dependency injection dar in ambele sensuri. Adica nu numai ca aduce servicii catre component, dar si exporta starea unui component, de obicei catre un context. In acest fel se creaza o legatura bijectiva (matematica sa traiasca!) intre component si container, transfer de stare bidirectional. De fapt Seam este despre stare si context, asa ca un astfel de concept isi avea rostul perfect aici. Am putea spune deci ca Hollywood Principle a fost extins putin si in avantajul actorilor: "Don't call us, we'll call you!", dar dupa ce obtine rolul actorul poate spune si el "I'll call you, if I will take the part!"
Deci, un component primeste obiectele si/sau serviciile de care are nevoie pentru a-si indeplini functionalitatea de la frameworkul in care ruleaza, apoi isi "outjecteaza" (DEX-ul sa ma ierte!) starea catre framework, mai precis catre contextul in care exista.
Seam introduce notiuni mai complexe, si mai adecvate, de context decit aplicatiile tipice J2EE, incercind, si din cite stiu reusind intr-o buna masura, sa acopere nevoile resimtite in dezvoltare. Sint 7 tipuri de context disponibile in Seam: stateless (practic un non-context), event (la nivelul unui request), page (starea este mentinuta la nivelul paginii, disponibila pentru toate eventurile generate intr-o anumita pagina), conversation (default se intinde pe 2 pagini, dar se poate extinde peste oricite request-uri demarcate cu anotatii Seam), session (la nivelul sesiunii J2EE, stare asociata cu userul), business process (stare asociate cu procese async care ruleaza pe timp indelungat; din cite stiu - deocamdata - functioneaza doar cu jBoss jBPM; starea este mentinuta pe durata procesului pentru multiple interactii de la useri diferiti), application (la fel ca J2EE application context).
Din punctul meu de vedere, contextele conversation si business process sint atit elementul de noutate cit si partile cele mai interesante. Mai ales, business process context, aici dependency bijection este si foarte utila si foarte convenabila, simplificind managementul starii intre procesele de lunga durata si operatiile online.

Bijection se poate folosi pentru orice obiect declarat ca obiect Seam (@Name). Seam intercepteaza orice este marcat cu @In (dependency injection) sau @Out (dependency outjection); anotarile se pot folosi si impreuna: primesc un obiect, il modific si il trimit inapoi in context.
De notat este si ca in Seam bijection se face la invocare: unui component care foloseste bijection pentru un obiect Seam, nu i se injecteaza acest obiect la momentul crearii ci in momentul apelului unei metode care il foloseste; la finalul metodei se face outject.
BTW, Seam face toata demonstratia asta de magie folosind interceptori J2EE, nu e nimic picat din cer.

Pe masura ce o sa mai imi bag nasul in Seam, sper sa continui sa scriu mai multe despre acest framework. In fond este facut de Gavin King, si stiu, de la Hibernate incoace, ca e bine sa asculti cind Gavin are ceva de zis :) Mai ales dupa ce JPA a fost creat "dupa chipul si asemanarea" Hibernate :D Iar acum se lucreaza intens la JSR-299 WebBeans. Ghici cu cine seamana? :)