Anunțurile de angajare

De-a lungul timpului am văzut (și am primit) diverse oferte de angajare, la diverse firme, mai mari sau mai mici. Ce m-a surprins să văd în toate aceste anunțuri sau oferte a fost că majoritatea nu au niște cerințe clare.

De exemplu, zilele trecute am văzut pe bestjobs (parcă) un anunț care căuta PHP Developer căruia i se cereau, printre altele, cunoștințe solide ale unui limbaj de programare server side (Ruby, PHP, Java etc), proiectare baze de date (MySql, Oracle, MSSQL, Postresql etc) și a unui sistem de control al versiunilor (svn, cvs, git etc).

Dragii mei HR, când cauți un om pentru PHP, nu înșiri alte limbaje server side ci doar pe alea pe care le folosești în firmă (de obicei unul singur). Din simplul motiv că ai șanse ca omu’ să vină, să știe Cold Fusion, de exemplu. Este serverside? Este. Dar dacă ceilalți zece programatori din firmă scriu doar Ruby, cu ce te ajută?

Sau dacă omu’ are background MSSQL sau Oracle iar tu ai nevoie de MySql, tu îl angajezi oricum?

Apoi, un sistem de control al versiunilor nu e ceva atât de generalist pe cât pare. Dacă omu’ a folosit doar SVN, Git i se va părea extrem de greu la început, având concepte diferite. E valabil și viceversa.

E atât de greu să pui pe un anunț de forma:

Am nevoie de un programator PHP/MySQL care știe să folosească Git.

Apoi, de ce naiba se specifică „limba engleză este obligatorie” ? A văzut cineva vreun programator bun care nu știe engleză la un nivel satisfăcător?

Primesc cel puțin o dată pe lună o ofertă directă de angajare ca front end developer. Când văd în descrierea postului:

Strong experience in working with a backend technology (Java, PHP, Ruby, Python, etc.)

mă întreb dacă cei de la HR știu ce caută.

  1. Dacă în urmă cu aproximativ un an încercam să instalez – fără prea mare succes – Sprout Core, azi am observat o treabă foarte interesantă: au installer! Și nu orice fel de installer ci fix genul care-mi place mie: 3 click-uri și totul e ok!
  2. Și un video-tutorial pentru Sprout Core: todo (dacă la Rails aveam „cum să faci un blog în 10 minute”, la SC avem „cum să faci un TODO în 10 minute”, dar fără vocea enervantă a lui David Heinemeier Hansson :D ).
  3. Și dacă tot am pomenit de Rails, știai că există… Rails For Zombies? Din video-ul de prezentare, metoda de învățare pare una de succes și provabil o voi încerca atunci când voi avea câteva ore/zile libere.
  4. Sunt câteva greșeli în JavaScript ce le poți evita. Află aici cum.
  5. Avem jQuery 1.6.1.
  6. Mai avem și WordPress 3.2 beta 1

JSON FTW!

Mi-a sărit în ochi următoarea chestie, în timp ce modificam scriptul unui client:

Aparent sunt unii care n-au auzit de json_encode

(în cazul în care te întrebi ce versiune de PHP este pe server: 5.2.9, cu JSON enabled)

Inspirat de problemele lui Miodrag cu somnul, m-am gândit că ar fi bine să fac un fel de… ghid. De somn.

Cât dormi?

Minim șase ore/noapte. Totuși, mi se întâmplă foarte rar să dorm atât de puțin. „Țintesc” spre 8h/noapte, dar foarte rar dorm mai mult de atât (de obicei, după o noapte scurtă – de șase ore – vine una lungă, de zece ore).

Ce program ai?

Ii aud pe toți că vor să doarmă mai mult, că se chinuie dimineața când trebuie să plece la muncă și alte faze copilărești. Iar când le spun că mă trezesc la ora 6:30, zici că i-am înjurat de mamă. Adică cum, stau toată ziua acasă și nu dorm cât vreau???

Problema (lor) este că dorm fix cât vreau! Mă pun în pat pe la 22:00 și mă trezesc la 6:30.

Cum îmi fac programul ăsta?

Inițial aveam un program de somn foarte haotic. Mă culcam când îmi era somn, mă trezeam când mă trezeam. Astfel, după o săptămână ajungeam să mă trezesc la ora 4 după-amiază, iar după o altă săptămână mă trezeam la 3 dimineață. Și am zis că e cazul să intru și eu în rând cu lumea.

Prin urmare, într-o seară, când m-am pus în pat, mi-am pus ceasul să sune peste fix șase ore. Asta înseamnă că dormi suficient de mult să nu fii un zombie dar suficient de puțin pentru ca a doua seară să-ți fie somn mai devreme. Am repetat manevra asta vreo trei zile, până când am ajuns în intervalul menționat mai sus.

Insomnia!

Citește o carte! Am avut insomnii, știu cum este. În cazul ăsta ajută două lucruri: cititul și ceaiul de sunătoare și/sau tei (dacă le combini, e și mai bine!).

Nu, cititul de pe iPad sau laptop nu e bun! Orice are backlight este foarte obositor pentru ochi și te va ține oarecum alert. Probabil un Kindle ar ajuta, datorită ecranului, dar, după mine, tot o carte clasică este mai bună.

Sub nicio formă să nu lași muzica să cânte în fundal sau să te uiți la TV încercând să adormi! De fapt, elimină orice sursă de zgomot.

Ce fac dimineața?

Sub nicio formă nu apeși butonul de snooze. Nu, alea cinci minute suplimentare nu înseamnă nimic! Eu am învățat să-mi las telefonul cât mai departe de pat. Să trebuiască să mă ridic din pat pentru a-l opri. Astfel, gonesc orice urmă de somn rămasă.

Lucrând acasă, tentația majoră este ca, imediat ce te-ai ridicat din pat să te așezi la PC. Nu se întâmplă! Apăs butonul de power, după care mă duc la baie, îmi spăl superba-mi mecla și tot ce mai e pe lângă ea (de exemplu dinți), apoi fac un espresso.

Cât timp se face cafeaua, întind unt pe două-trei felii de pâine, trântesc o linguriță de dulceață și le înghit rapid.

Urmează vreo două-trei minute de exerciții fizice: câteva întinderi de spate, de gât, de mâini, după care mă apuc de treabă. Până la ora 8:30 fac o grămadă de lucruri.

De ce?

Probabil ești curios de ce mă trezesc cu noaptea în cap. Pe scurt, este liniște. Ușa de la lift și tocurile vecinei de deasupra încep să se audă mult mai târziu, câinii nu latră (foarte tare), este răcoare (mai ales că vine vara!), este aerul suficient de curat să pot deschide geamul etc.

În plus, nu știu alții cum sunt, dar eu am observat că perioada mea de productivitate maximă este între orele 5 și 9 dimineața. Dar ar fi absurd să mă trezesc atât de devreme. Pe lângă asta, am mintea prea limpede pentru a mă trezi cu noaptea în cap :D

Fiind un cititor avid de bloguri, cel mai mult mă enervează că mă enervează două lucruri:

  1. Feed-ul parțial;
  2. Feed-ul defect;

Despre feed-ul parțial nu prea am ce să zic. Așa au ales „stăpânii” blogurilor respective, n-am ce le face. În principiu, asta înseamnă că șansele de a face un click să citesc tot articolul sunt mari doar dacă este un articol ce promite foarte mult din titlu și dintr-un excerpt. Ceea ce se întâmplă destul de rar…

Feed-ul defect se întâmplă atunci când bloggerul bagă în post un film ce nu este redat (cum trebuie sau deloc) de Google Reader (sau orice alt reader). Apărând un text ce este posibil să comenteze pe marginea video-ului dar… eu să nu văd niciun video.

Prin urmare, am zis să încerc să găsesc o rezolvare: str_replace :D Read the rest of this entry »

  1. If you can’t beat them, join them! Microsoft a lansat o serie de unelte ce face ușoară portarea aplicațiilor iOS pe Windows Phone 7. E un pas… să zicem interesant.
  2. Dacă până acum am folosit doar două unități de măsură (px și em), în CSS3 avem și… rem. Este un hibrid ce pare interesant dar, ca orice chestie cool nu e suportată de toate browserele. Probabil vor mai trece doi-trei ani până când vom putea implementa fără grijă toate multe din tehnologiile disponibile.
  3. Chiar dacă unii sunt porniți rău împotriva „clasei” .clearfix (de fapt cred că procedeu ar fi un cuvânt potrivit), iată că această șmecherie evoluează și ea.
  4. S-a lansat jQuery 1.6.
  5. A apărut WordPress 3.2. O versiune alpha, dar care arată câteva lucruri introduse în următorul release al WP. Dintre lucrurile noi se numără: un dashboard redesenat, o temă default nouă ( twenty eleven / 2011 ), un sistem de upgrade incremental (nu va fi nevoie să urci toate fișierele wp ca până acum), se renunță la suportul pentru IE6 (YAY!), PHP mai vechi de 5.2.4 și MySQL mai vechi de 5 și desigur, îmbunătățiri de viteză.

De când a apărut Firefox 4 am încercat să-l instalez de cel puțin trei-patru ori. Problema era că pe anumite site-uri fonturile erau afișate extrem de urât. Puternic boldate și fără antialias. Am încercat cred că toate tweak-urile existente online, obținându-se doar o ușoară îmbunătățire. Din păcate însă, calitatea fonturilor era atât de slabă încât am fost nevoit să fac downgrade.

Din fericire însă, ieri am încercat iar. Tocmai făcusem update la driverul video (unul din tweak-urile care avea un rezultat destul de vizibil era dezactivarea accelerării video) iar Firefox mi-a trântit un alert cum că 4.0.1 a fost lansat. Am zis că merită să încerc.

Evident că nu se rezolvase nimic.

Apoi, am avut geniala idee să încerc să schimb fontul. Aparent, Helvetica Neue nu prea se împacă cu Firefox. Sau cel puțin, anumite helvetica neue.

Soluția?

Șterge helvetica! Am șters orice urme de helvetica din pc și aparent s-a rezolvat. În sfârșit sunt și eu la zi cu update-urile. :D

Cred că tocmai mi-am făcut planuri pentru viitoarea mea casă. În caz că nu vezi nimic, filmul este în silverlight.

Via.

Noua interfață a ING Homebank face ca scriptul publicat în urmă cu aproape doi ani să devină ușor inutil. Prin urmare, iată un update micuț ce aduce autocomplete-ul back in biznis, ca să zic așa :D

Noul script este:

// ==UserScript==
// @name           ing
// @namespace      ing.ro
// @include        https://www.homebank.ro/public/HomeBankLogin/home?lang=ro
// ==/UserScript==

var uname = document.getElementById('usernameDl'),
		upass = document.getElementById('passwordDl');

uname.getElementsByTagName('input')[0].value='USER_NAME';
upass.getElementsByTagName('input')[0].focus();

Bonus: ce este inutil în noua interfață?

MySQL Backup

Că sunt un backup freak este știut. Am două hdd-uri puse în RAID 1 (adică aceeași informație este scrisă pe ambele hdd-uri) iar fișierele importante sunt salvate pe Dropbox, Crashplan și Amazon S3 cel puțin o dată pe zi. În plus, folosesc version control (Git) pentru proiectele la care lucrez.

Azi mi-a venit următoarea idee: ce-ar fi dacă aș pune și tot ce ține de mysql sub Git? La o adică, nu de puține ori mi s-a întâmplat să dau drop la ce nu trebuie, iar toate modificările făcute de la ultimul backup erau pierdute. Deci a trebuit să găsesc o modalitate. Read the rest of this entry »