Apr 08 2011

Când dai cu capul de perete

Category: Miscellaneous,TechnicalRpx @ 16:23

Săptămâna asta am încercat să fac o măgărie.

Windows-ul 7 Professional, cu care m-am înțeles excelent timp de un an și jumătate, m-a scos din sărite zilele trecute și am decis să renunț la el și să mă întorc la o iubire mai veche… Gentoo Linux.

Acest lucru a ridicat anumite probleme, pentru că:

  • Mai joc din când în când câte ceva (Civilization V, Dragon Age, Eve Online). Wine e un workaround foarte mizerabil, mai ales când mai iei în calcul că am placă video ATi iar driverele pentru linux sunt sub orice critică;
  • Urăsc cu patimă ideea de “dual-boot”.

Prin urmare, am decis să fac o treabă șmecheră. Mai exact, planul inițial era în felul următor:

  • Instalez Xen pe laptop;
  • Instalez un guest Windows 7 în mod HVM cu PCI Passthrough încât să pot pasa acces direct către placa video mașinii virtuale după pornire;
  • Accesul la mașina reală cu Linux se menține printr-o sesiune VNC din Windows 7 (un dispozitiv nu poate fi accesat direct de ambele sisteme în același timp);
  • După ce termin de jucat, repasez controlul către placa video sistemului de bază.

Planul era genial, dar am uitat să mă uit dacă am în dulap toate ingredientele pentru a obține un produs finit de succes după această rețetă. Și bineînțeles că nu am toate ingredientele. Lipsește un ingredient cheie, și anume, suportul procesorului și a plăcii de bază pentru IOMMU.

Prin urmare, I gave up. Back to Windows 7. Am zis eu bine că s-ar putea să-mi folosească imaginile de restore făcute săptămâna trecută :-)

Tags: , , ,


May 10 2010

Eram sigură că aşa o să se întâmple

Category: TechnicalIuliana @ 10:11

bOracle a cumpărat Sun. Asta se ştie. Pe lângă temerile cum că totul va fi cu bani şi că java open source-le va muri, eu aveam o temere şi mai mare. Că totul va începe să meargă prost. Cu paşi mici se ajunge acolo. Deja site-ul oficial Sun dă erori, că s-au apucat să-l personalizeze, să arate a site bOracle. Azi n-a vrut să îmi dea voie să downloadez ultima versiune de jdk.  Nici măcar nu mi-a spus de ce. Mi s-a spus cu font roşu să contactez departamentul de suport. Aham… acum am să fac asta…  Am mai încercat o dată. Rezultatul?  Pagină albă, download pu.. ăăă pauză.

Mdea… se pare că va trebui să folosesc un jdk vechi.

Tags: , ,


May 03 2010

Arhitectură

Category: TechnicalRpx @ 2:59

Greu… greu tare… De fiecare dată când vine vorba de design, arhitectură și planificare, mă simt ca în ziua examenului de bacalaureat. Ăsta e motivul pentru care nu m-am integrat niciodată în rândurile devilor ăia pro, care planifică 99.9% din proiect și apoi scriu cod… eu fac fix pe dos. De aia probabil nu m-am înțeles niciodată nici cu diagramele UML. De aia probabil n-am job de Software developer/architect.

După multe teste și experimente, a venit timpul să solidific infrastructura pentru noile servicii ce vor fi oferite (sper) în curând. Clar a trebuit să renunț la modelul monolitic în care toate rolurile stau pe aceeași mașină, astfel încât am fragmentat cât se poate de logic rolurile în mașini virtuale.

Ce mi-a dat o mare bătaie de cap este sistemul de licențiere de la Microsoft. Este (cel puțin) ciudat și ambiguu. Eu am impresia că ăștia nu au încă habar ce e aia virtualizare. Altfel nu-mi explic de ce dacă vrei să-ți fragmentezi serverul în sub-mașini pe Hyper-V, îți trebuie câte o licență de sine stătătoare pe fiecare mașinuță în parte. De fapt, nu e chiar așa… cică poți folosi aceeași licență pe mașinile virtuale, dar sistemul de activare e tâmpit (la fel ca și Hyper-V la faza asta). Problema pornește de la faptul că-ți faci o mașină virtuală, o activezi cu licența, dar când clonezi mașina virtuală (care de fapt nu o clonezi, că Hyper-V nu știe încă să facă asta… procedeul implică un export apoi un reimport de mașină virtuală) Hyper-V îi dă alt System Identifier și Windows-ul de pe ea vrea reactivat fiindcă crede că l-ai mutat pe un alt computer. Ei, acu’ e acu’, că dacă vrei să activezi a doua oară, stai și te uiți la bec fiindcă îți spune că ai activat licența pe numărul maxim de mașini permise (adică una). Și uite așa am stat eu la telefon cu suportu’ Microsoft azi (sunt chiar uluit că au suport tehnic și duminica) pentru a-mi putea activa manual Windows-urile de pe mașinile virtuale. Sincer, nu înțeleg cum de nimeni de la Microsoft nu s-a gândit la vreo ședință de-a departamentului Hyper-V să zică “uhm… n-ar trebui să facem și noi ceva ca lumea măcar o dată în viața asta și să permitem sistemului să-și dea seama când este instalat într-o mașină virtuală și când e pe una reală?“. Ei bine… nu… probabil că și ei sunt la fel de entuziaști la ședințe cum suntem și noi la BitDefender…

Toate ca toate, treaba stă cam așa cum am înșirat-o eu mai jos. Probabil că-n 2-3 zile o să-mi dau seama că nu e bun… dar măcar știu că n-am mai dormit încă o duminică din viața mea.

Continue reading “Arhitectură”

Tags: , ,


Mar 06 2010

Obsesie

Category: TechnicalIuliana @ 6:39

mad

Când am început să lucrez la firma asta, mi-a picat pe mână un proiect de prin 2006 care este făcut cu tehnologie de prin 2001. De fapt, este foarte posibil ca documentația să fi fost printată atunci. :D Practic lucrez cu tehnologii de pe vremea când eram virgină și mai mult, cel mai probabil habar n-aveam ce este aceea programare. Proiectul folosește un software pentru designul interfeței care este mult înaintea vremii lui, adică 2001 care arată fantastic și merge foarte bine. Am toată admirația pentru compania dezvoltatoare. Dar…. trebuia să existe unul, nu-i așa? Dar, în anumite cazuri funcționează total haotic și documentația e cam slăbuță pentru ditamai framework-ul.

Ieri am cam rezolvat penultimul bug oficial. În afară de el, mai este un bug neoficial șiunul oficial, dar incomplet descris, deci pentru rezolvarea lui trebuie să mai aștept specificații. Bugul de ieri l-am rezolvat printr-o metodă ce n-are a face cu programarea. Pur și simplu ajunsesem la capătul rabdării, după ce încercasem fel și fel de abordări așa că am încercat-o într-un final pe cea mai idioată dintre ele. O să încerc să explic în limbaj uman.

Bucata de interfață la care lucram trebuia să își ia niște valori dintr-un obiect apelând niște metode get – 9 erau de toate. Ei bine, se apelau corect numai trei. Celelalte 6, deși respectau standardul de denumire și acces, erau ignorate total. Primele trei se numeau getCevaX(), unde X era o cifră. Metoda prin care am convins interfața să apeleze celelalte metode a fost crearea unor metode auxiliare denumite după șablonul anterior care le apelau pe cele pe care interfața le ignora. Salvare, generare componente interfață, rulare -> succes. WTF??? Nu am nici o idee de ce nu se apelau în pagina mea cele șase metode, ținând cont că pe undeva prin aplicație mai este o pagină similară pe care se apelează.

Bugului neoficial îi vin de hac azi, dacă nu pierdeam joia cu cazierul, îl rezolvam ieri, dar nah… cine știe, tot răul este spre bine. De trei zile mă gândesc cum va arăta bucata lui de interfață. Dacă mă gândesc bine, nu este bug, este doar una bucată feature care n-a fost terminat. Am plecat aseară din Magnet pentru că vedeam în fața ochilor cum va arăta interfața și cum se va lega de bucata existentă. Astăzi dimineață când m-a trezit Clint odată cu găinile în timp ce îl mângâiam, iar am început să mă gândesc la asta. Deci ori am început să pricep framweork-ul ăla ori m-am tâmpit!!! Mi se pare că știu atât de bine ce am de facut și cum trebuie făcut că nu mai am stare să stau acasă. Vreau să ajung cât mai repede la serviciu să-l rezolv!

Ar fi bine să iasă și să fie exact așa cum mi-l imaginez altfel am să mă oftic tare… Și nu de alta, dar nu pot bibili tema noului meu blog ofticată pentru că există posibilitatea să o stric și asta n-ar fi chiar frumos.

Tags: , ,


Feb 28 2010

Hunting leaks

Category: MiscellaneousRpx @ 13:36

Acum câteva zile mi-a tunat o idee. O idee destul de neoriginală, dar utilă și încă neimplementată, așa că m-am pus pe treabă.

Ca în orice proiect IT (și nu numai), pe hârtie totul arăta simplu și clar. Acum, după o săptămână de muncă și 1500 de linii de cod treburile nu mai par atât de simple… Din păcate am undeva un memory leak și nu pot să-mi dau seama de unde. Ar fi ușor să folosesc _CrtDumpMemoryLeaks() însă problema e că

  • E o aplicație web ce rulează pe un server, nu pe computerul de dev, prin urmare trebuie să folosesc un build de Release
  • E o extensie ISAPI, deci nu pot să rulez DLL-ul într-un “sandbox” în Visual Studio
  • Fiind o librărie, este invocată de dllhost.exe, și output-ul către stdout/stderr nu apare nicăieri
  • N-am găsit nici o aplicație decentă care să se atașeze la proces și să-mi dea informații despre stivă/heap
  • Să fac un dump la proces nu mă ajută prea mult, pentru că nu văd exact de unde se alocă și unde nu se dealocă memoria

Prin urmare mi-a mai rămas doar o singură variantă: The old-school pen&paper over the source code. Oh, this is going to be so fun… NOT!

Tags: ,


Feb 05 2010

qmail

Category: English posts,TechnicalRpx @ 20:27

I had to test a bug in the BitDefender-qmail integration today…

qmail is the second mailer on my dreadful list (Courier gets a well deserved first place). It is a paradox. It is one of the most secure pieces of software ever made. The latest stable release dates 11 years ago, and it is still alive and kicking, being used by Yahoo! and Paypal, to name just a couple of big-shot users (and by BitDefender, mind you!).  Yet, despite all these wonderful things, it also manages to be one of the most annoying pieces of software ever made as well. It can be understandable, since its creator is a genius (and we all know that a genius equals a madman), but still… it manages to make me tear my hair out every single time I have to test on it.

For starters, it doesn’t follow the standard UNIX hierarchy for its files locations. Second, it doesn’t follow the standard procedure for starting and stopping. Third, it doesn’t follow the standard procedure for mailbox locations. But the most awful thing about it is that it doesn’t follow the standard procedure for installation. No wonder there were actual books written about installing and configuring it…

Installation by someone with little to no experience at qmail without at least a good walkthrough is impossible. Even so, using the documentation has a pretty high chance of failure too. Today, I tried installing it on Centos, Debian, Ubuntu and Gentoo (all latest versions). I don’t know if I should be surprised that it succeeded only on Gentoo… and only because it was all done by emerge… The guy who built that ebuild must’ve sold his soul for it.

Good piece of software… too bad most mortal UNIX users don’t ever get to use it.

Tags: ,


Dec 03 2009

Imageshack FAIL

Category: English postsIuliana @ 2:05

Like any blogger I needed a place to store my photos. A place where my photos will be safe, accessible at any time and most of all, accessible in almost real time. I have even wasted some of my time to register an account. Everything was supposed to work fine, but noooo…. I’m just not that lucky.
Imageshack was perfect for my needs at first. I was even considering paying for it. But like any service in this world, it had to disappoint me. First, grouping photos in albums failed. I thought that maybe they had some technical difficulties that will be solved in time. But nooo, nothing changed, and after a while, some pictures were not uploaded and thumbnails were not generated. I was comprehensive at first. It was a free service after all, so I uploaded “broken” photos manually. I really thought they will fix it. They did not. And now, photos that were correctly uploaded at first are starting to be viewed as being broken and without any thumbnails.
This is the point where I gave up and thought that Imageshack sucks and that I should find another site that offers similar service.
Any ideas?
[This post is written in English, because I want Google to find this page and index it and maybe let the guys from Imageshack know what big screwedups they are.]

Tags: ,