Swift cel frustrant

Noul limbaj de programare de la Apple a fost primit cu mult entuziasm, dar a produs si multa frustrare. Cativa developeri de Objective-C ziceau atunci ca Apple tocmai le-a “resetat” CV-ul pentru ca acum, toti sunt incepatori (in Swift).

Faza e ca Swift vrea sa pastreze toate siretlicurile pe care C ul le poate face si mai aduna de prin restul limbajelor chestiile faine. Nu-i rau, dar e destul de complec. Cam ca noul C++, ala de l-au facut anul asta: are toate minunile, da` nu stii sa le folosesti. Si daca le folosesti, risti ca urmatorul sa nu stie ce-ai scris pe-acolo. Pentru mentenabilitate, e dezastru. Pentru cod genial si aplicatii faine, e magic.

Si dand eu din colt in colt, am ajuns la nevoia de a scrie un closure. Ma rog, nu chiar nevoia, da` ceva pe-acolo. Parea sa “faca sens” (poate revin candva si la expresia asta anglo-saxona tradusa prost) sa scriu asa ceva. Numai ca n-o nimeream pe sintaxa corecta. Ca Apple s-a si distrat un pic cu minunile astea… Poti sa le pui ca parametu, dar daca-i ultimu parametru poti sa le scoti din paranteza si poti sa nu le mai dai nume parametrilor ei, ca oricum iau nume de genul $0, $1, etc. Si daca te superi de tot … scrii numai ce trebuie sa returneze si cu asta basta. Sintaxa prescurtata e asa de data naibii, ca s-a ajuns la site-ul asta: http://fuckingclosuresyntax.com/

Voi va dati seama cata frustrare pe ala care a inchiriat un domeniu si un host ca sa faca adresa asta atat de utila? Genial!

 

Cum a fost la iOSNeXT

A fost fain. Mi-am adus aminte de perioada de blogging intens care presupunea o buna socializare, networking. A fost fain sa ma duc, din nou, printre straini cu pasiuni comune si sa impartasesc idei cu ei. In mare parte mi-a placut pentru ca ei nu-s inca plictisiti de ideile mele trasnite si nu-si dau ochii peste cap cand le zic ca vreau sa fac chestii legendare cu tehnologiile mobile. Si ei vor acelasi lucru…

Au fost cativa omuleti foarte motivationali, care si-au facut firme si au oarecare succes pe piata de mobile. Am invatat de la ei cate putin despre cum trebuie sa faci lucrurile sa se intample. Ne-au impartasit servicii pe care ei le folosesc (si eu le voi incerca mintenas), ne-au impartasit experiente. Cel mai tare m-a revoltat (in lupta cu sinele) o domnisorica miniona care lucreaza full-time ca programator si apoi full-time ca programator intr-un start-up la care e asociata. Adica, ea poate lucra 2 joburi full, amandoua solicitante, si eu stau aci cu dosu-n mana de doua zile si n-am nicio jena. Adica am, acum am una chiar mare.

Paul Ardeleanu a fost cel care ne-a fost indrumator prin Swift. Acu, pe gustul meu ar fi fost daca intram mai tare-n problema si cu mai mult cod scris, dar se pare ca “Masterclass”ul era de fapt un curs de incepatori. Foarte bun pentru unul ca mine, care a scris prima linie de cod in Xcode acu vreo 2 luni, dar parca am fi putut mai mult. Ca si persoana, Paul e de nota 10. Ca si speaker, Paul e de nota 10. Ca si curs… se putea si mai bine. Desi mi s-a recomandat cu entuziasm sa-mi aduc un Mac (btw, l-am returnat pe ala, povestea mai jos) n-am prea avut nevoie de el. Ma asteptam sa-i dam cu programele, etc. Dar a fost fain ca ne-a aratat putin din WatchKit si acu astept cu entuziasm sa fac aplicatii pentru ceasul ala incredibil de scump de la Apple.

Si m-am indragostit de Mac-uri. Naiba sa-l ia de marketing, device-urile astea-s incredibile pur si simplu. Nu ruleaza impecabil si cu siguranta la banii aia gasesti o rasnita mai buna care sa ruleze Windows. Daca esti chiar destept, poate iti pui un Linux si il faci sa zboare si sa fii si tu mai “profi”. Dar adevaratul rafinament pe care-l aduce un Mac sta in materialele deosebite, modul in care sunt gandite pentru utilizator (chestia aia de incarcat face toti banii, cordonul de alimentare la fel), software-ul cu care vine (voi stiti ce poate Keynote sa faca? OMG!), serviciile pe care Apple ti le ofera, etc. E mai mult decat un laptop, e o experienta totala.

Acum abia astept sa-mi iau si eu unul. Unul nou din generatia noua. Pe cel pe care l-am luat de BF. l-am returnat ca parea ca se misca greu si mi s-a recomadat de catre toti fanii aia Apple sa-mi iau ceva de generatie noua, daca tot iau. Si asa am sa si fac.

Daca aveti recomandari si de alte conferinte de programare, shoot and shout!

Ticuri verbale inacceptabile cand sustii o prezentare

Am fost zilele trecute la niste seminarii destul de interesante pe teme de care eu n-am habar, dar de care sunt fascinat. Mi se pare normal sa inveti mereu ceva nou si totul are un inceput. Pentru mine, inceputurile de obicei se refera la aderarea la grupuri cu acelasi scop, formarea unui limbaj, intelegerea domeniului si apoi “intrarea in paine”. Eh, la prezentarile astea, a venit un tip extrem de pasionat sa ne vorbeasca, dar in prima zi a avut o problema: un tic verbal deplasat.

Omul avea o vorba pe care o folosea ca sa sublinieze niste idei apropiate de aberatie: “sa ma ierte Dumnezeu”. Personal, nu m-a deranjat decat repetarea ei excesiva, auzind-o probabil in fiecare minut al prezentarii. Dar ticul e inacceptabil pentru ca se refera la Divinitate. Exista oameni religiosi pentru care e o batjocura sa faci referire la Dumnezeu ca semn de punctuatie. Exista oameni de alta credinta pentru care o referire la Dumnezeu e o jignire. Exista oameni ca re nu cred in nimic … si-atunci incercarea ta de a-ti sublinia ideea, ridica un semn de intrebare. Si mai e o problema, e o constructie lunga: nu e ca ticul lui Bordea cu “cacat” (bine, ala are alte probleme), care-i un cuvant peste care treci usor. E o propozitie intreaga, lunga si suparatoare.

Si daca tot am vorbit de Bordea, mi-am dat seama ca in a doua seara, probabil atentionat de colegi, tipul a renuntat la primul tic verbal. Nu l-a mai iertat Dumnezeu dar i-a intrat “sula-n coaste” de prea multe ori. Asta e un alt tip de tic verbal inacceptabil la o prezentare: e semi-obscen. Bine bine … nu-i ca alea de la stand-up, de trebuie sa-ti ascunzi copiii, dar nu merg intr-un mediu de genul acela.

Mare atentie la ticuri verbale, ele apar cu precadere in situatii de stres si emotie (tic nervos). Nu va amagiti ca daca in oglinda totul merge frumos, asa va fi si la prezentarea “live”. Cel mai bun exercitiu e in fata unei adunari mai mici. Chiar si atunci, luati o pauza mica dupa un timp nu foarte indelungat si consultati pe cineva de incredre din auditoriu. Intrebati-l daca e ceva ce nu e in regula in modul in care prezentati. Se poate sa fie un tic verbal sau poate fi la fel de bine un gest ciudat. Daca te scarpini la ceafa in toata prezentarea, vei arata ca un clovn.

Multa bafta!

Ce mi-am luat de Black Friday

Un Macbook Pro non-retina. L-am luat pentru ca era o afacere destul de buna, fiind redus de la 5100 de lei pana la 4000. Eu zic ca o reducere de 1100 de lei e considerabila, chiar daca nu e Pro-ul Retina din ultima generatie. Chestiile astea tind sa-si pastreze valoarea extrem de bine, ca am studiat un pic piata SH.
Recunosc ca-mi doresc de ceva vreme un mar. In ultima vreme lucrez pe un Mac Mini la serviciu si m-am apucat de iOS development. Ma declar indragostit de modul in care poate sa functioneze cutiuta asta draguta. Totul merge bine, uns. E intuitiv si foarte usor de folosit, le prinzi din mers. Stiu ca dincolo de toate, nu isi justifica banii, dar pentru cineva care-si permite sa plateasca un pic mai mult pentru a se lipsi de niste batai de cap, e o afacere buna.

Nu-i mai putin adevarat, ca sunt inca dispus sa-l vand mai departe, ca sa obtin un profit usor si sa aman achizitia pe mai tarziu. Dar daca raman cu el, nu-mi pare deloc rau: mi-l doream.

Deci am la vanzare, fie un Mac Pro, fie un HP Pavilion G6. Interesati?

De ce urasc telefonul Nokia Lumia 520

E simplu: il urasc pentru mizeria de sistem de operare pe care nenorocirea aia de Microsoft a impins-o cu forta peste un hardware destul de bun. E drept, e modelul cel mai ieftin si e normal ca pozele de 5MP sa iasa ca dracu, dar difuzoarele se aud bine, senzorii merg brici, ecranu se vede frumos si reactioneaza la mangaieri. Dar software-ul… Oh vai!

Sistemul de operare e groaznic de prost organizat si neintuitiv. Dintr-un motiv pe care numai Microsoft il stie, ora nu mi se poate regla automat. Daca-l las de capul lui, voi fi mereu decalat cu o ora in plus sau in minus, dupa cum bate vantul. Optiunile in general nu-s intr-o ordine la care te-ai astepta, da` normal ca si astia trebuiau sa fie … altfel. Cu toate astea, il poti configura cu un pic de efort sa se comporte cat de cat previzibil. Dar nu mereu.

Sa va povestesc ce prost si neintuitiv e Internet Explorer-ul: daca apesi butonul fizic de back, uneori se intoarce la pagina anterioara, alteori iese din aplicatie. Daca iese din aplicatie si intri iar, nu mereu iti incarca ultima pagina pe care ai fost. Uneori iti incarca o pagina pe care ai navigat in urma cu doua zile. Ca de-aia. Si vrei sa deschizi un videoclip… treaba ta! IE nu iti reda orice videoclip, ci doar unele.

Si sa nu va mai zic de aplicatii: putine, proaste si in general facute de Microsoft sau diverse firme dubioase. De exemplu: WP8Apps. Tu ai avea incredere intr-o aplicatie Google Plus facuta de baietii astia? Eu nu…

Imi urasc telefonul. Il urasc pentru ca de fiecare data cand il scap si sare bateria, mi se reseteaza data undeva prin mai si ora la cat vrea ea. Il urasc pentru ca face poze naspa si de fiecare data cand deblochezi ecranul dureaza o vesnicie sa intre in ultima aplicatie deschisa. Il urasc pentru ca Viber nu imi arata ultimele mesaje primite, decat cand are chef. Il urasc si punct. Microsoft sux.

Multa bafta!

De ce trebuie sa folosim un ContentProvider

Pe scurt, pentru ca ai nevoie. Stiu stiu, ca in prima faza nu pare ca ai avea sau ca vei avea vreodata nevoie de un ContentProvider, dar trebuie sa intelegi urmatoarele aspecte:

  1. Aplicatia ta e doar o piesa care se integreaza cu sistemul de operare, nu e o chestie de sine statatoare. Chiar daca tu crezi ca poti sa-ti tii departe de OS aplicatia, nu vei reusi. Iti poti da seama de chestia asta de prima data cand afli ca OS-ul iti tine stiva de activitati si are control total asupra ei. In momentul in care realizezi ca Android face ce vrea din UI ul tau, vei studia mai in amanunt si vei vedea ca la fel e si cu serviciile si tot ce se mai poate face. Nu-i nimic al tau. Esti inchis intr-o cutiuta (sandbox) si acolo vine sistemul de operare si te intreaba ce-ai mai vrea sa faci.
  2. Dupa ce-ai inteles ca sistemul de operare iti va penetra aplicatia oricum, vei voi sa-i oferi o cale de intrare oficiala, controlata si utila. ContentProvider pune la dispozitia framework-ului o cale curata si eficienta de comunicare.
  3. La un moment dat ajungi la SyncAdapter si iti dai seama ca lucreaza foarte fain cu un ContentProvider, daca l-ai fi avut.
  4. ContentProvider isi anunta observatorii cand schimba ceva. Si CursorLoader merge de minune cu un ContentProvider si te scapa de o gramada de batai de cap in ceea ce priveste redarea pe UI a continutului din tabele.
  5. Seamana bine cu ideea de REST. Si de multe ori partea de server e de tip RESTful, deci e cumva o alegere fireasca.

Daca mai stiti si alte motive pentru care trebuie folosit un ContentProvider, va rog, comentati. Daca stiti motive pentru care NU ar trebui folosit unul, sunt chiar curios care ar fi alea. I le trimit si lui Reto Meier sa le analizeze.

In sfarsit nefumator – Allen Carr

Cartea asta am citit-o pentru ca ramasese pe Kindle-ul imprumutat unui prieten. Nu stiu cum a gasit-o si din ce-a transformat-o, dar pot sa zic ca a fost un pic mai greu de citit pentru ca erau randurile cumva prea decalate. Oricum, e o lectura usoara, chiar si in conditiile astea.

E vorba de o carte motivationala mai mult. Ceva de gandire pozitiva si auto-incurajare. E genul ala de carte care bate apa in piua (ca si alea din seria Tata bogat, Tata sarac) dar care usor-usor iti modifica perspectivele. Dupa ce-am terminat cartea, am constatat ca sunt absolut scarbit de fumat si de ideea de a te sinucide sistematic, fara rusine. Te aduce cu usurelul la stadiul la care sa-ti zica “Bai, esti prost”, sa-ti dea si doua palme si tu sa intorci celalalt obraz, ca in sugestiile biblice. E uimitor ce inginerie a folosit baiatul asta Allen, ca sa convinga atata lume sa se lase de fumat.

Problema e ca daca n-o citesti in fiecare saptamana, iti cam trece scarba si intervine toleranta si uitarea. Asa incat, nu pot sa zic ca as recomanda-o cuiva care vrea sa se lase de fumat, dar as recomanda-o oricui vrea o alta perspectiva asupra acestui obicei. Si nu e singurul obicei care poate fi privit asa. E din categoria: “orice viciu te desconsidera ca si vertebrat”.

Lectura placuta si renuntati la fumat!

Profetiile tatalui bogat – Robert T. Kiyosaki

Cartea face parte din seria Tata bogat, Tata sarac si reprezinta o lucrare de educatie financiara pe intelesul tuturor. Tema principala abordata e o lege din SUA care trece in responsabilitatea indivizilor sa se ocupe de propriile pensii. Suna logic, dar e complicat pentru o masa de necunoscatori sa faca investitii pe termen lung. In plus, legea contine si niste restrictii care pot denatura intr-o prabusire bursiera.

Ei bine, asta fiind contextul, cartea incearca sa prezinte cateva feluri in care se pot face investitii de acum pentru “batranete”. Destul de plictisitor e modul in care se repeta ideile la nesfarsit in aproape 350 de pagini. Dar in final, nu vei mai uita niciodata ca esti prins in “cursa sobolanului” si ca poti schimba asta printr-o schimbare de atitudine si multa, foarte multa, educatie financiara. Si pe buna dreptate, daca stii ce faci si faci ce trebuie, poti sa urci incet-incet pe scara statutului social si financiar. Dar trebuie sa incetezi sa cheltuiesti banii pe prostii care-ti aduc alte cheltuieli si sa incepi sa-i investesti “cu return”.

De ex, daca iti iei o masina de 10.000E, aia iti mai aduce si niste cheltuieli in plus: asigurare, revizii, impozit, combustibil, consumabile, etc. Daca investesti 10.000E in ceva care iti aduce un venit lunar (fie el si 1%), s-ar putea ca in curand sa ai mult mai multi bani, chiar daca va trebui sa mai umbli si cu taxiul, autobuzul, bicicleta sau sa mergi pe jos. Cam asta-i toata ideea. Problema e ca nu poti, ca roman, sa nu ai o masina mai faina decat vecinul. Ca nu da bine…

Tata bogat, tata sarac – Robert T. Kiyosaki

Cartea din titlu mi-a fost inmanata drept cadou de ziua mea. Trebuie sa recunosc ca la o petrecere ca-n liceu, un cadou ca asta e amuzant. Ce-i drept, noi am trecut cu vreo 7 ani de majorat, dar suntem inca tineri la suflet si … la minte. Dar sa va zic despre ce-i cartea.

Cartea e un fel de educatie financiara pentru copii. Sau ma rog, pentru cei neinitiati in tainele banilor. Cartea ne invata pe nesimtite cum trebuie sa ne largim cercul banilor ca sa putem sta relaxati la un moment dat. Altfel spus, trebuie sa folosim banii ca sa generam alti bani si niciodata sa nu cheltuim bani pe care nu-i putem face la loc usor. Ce se sugereaza in carte ar fi ceva de genul: daca vreau un MacBook Pro (si vreau), sa investesc banii pe care-i am in ceva care sa genereze suma necesara achizitionarii laptopului mult iubit si aberant de scump. Si cam are dreptate ficiorelul Robert la faza asta, numai ca… e destul de greu.

Pe de alta parte, cartea face referire si la faptul ca investitiile sunt ceva ce se invata in general pe calea cea mai naspa, adica din propriile greseli. Deci daca vrei sa reusesti in domeniul asta, trebuie sa iti formezi experienta prin esecuri si sa nu te dai niciodata batut. In traducerea in romana se intelege cumva ca educatia nu-i cel mai bun mod de a obtine o independenta financiara. Ma gandesc ca-n varianta originala nu asta era ideea, dar cine poate sti? Americanii sunt ciudati de fel, iar cartea e scrisa de un american, pentru americani.

Totusi, o lectura buna care sa te trezeasca la realitate: daca iti cheltui banii fara ca acestia sa faca “pui”, vei fi mereu prins in ceea ce autorul o numeste “cursa sobolanului”. Ban la ban si paduche la golan, zice o vorba romaneasca.

Cu cine votez la alegerile prezidentiale

Multi dintre cunoscuti ma intreaba cu cine votez duminica la prezidentiale. Nu ma mai intreaba nimeni demult daca ma duc la vot, ca-i clar ca nu renunt la singurul instrument de batalie democratica impotriva propagandei din media. Ca da, prostimea nu voteaza, voteaza Antenele, galetusele, primarii, preotii si alti “trend-setteri” ai prostimii.

O votez pe Monica Macovei. Mi se pare un om politic indeajuns de experimentat incat sa reprezinte interesele Romaniei la cel mai inalt nivel. Are capacitatea oratorica bine dezvoltata, reusind sa tina discursuri coerente, bine argumentate si usor de inteles pentru majoritatea. Aici, trebuie sa o compar cu personajul pe care l-as fi vrut presedinte dar nu candideaza: Mihai Razvan Ungureanu. El vorbeste pentru intelectuali si este greu de inteles pentru cei cu putina cultura generala. Referintele pe care le strecoara MRU in discursuri sunt extrase din sute de mii de pagini citite. Monica Macovei, in schimb, se foloseste de o mare putere empatica pentru a-si cenzura “apucaturile” derutante pentru prostime.

Monica Macovei are un CV curat, fara scandaluri media legate de gainarii sau tunuri. Si-a indeplinit cu obrazul curat atributiile din Parlamentul European si functia de Ministru al Justitiei. Chiar daca nu s-a inteles in final cu PDL sau cu Basescu, n-a stat prea mult pe sticla sa se manjeasca. Chiar si in campania mizerabila de acum, Monica nu s-a bagat in troaca lor si n-a inceput sa arunce rahat cu lopata in stanga si in dreapta. Ea si-a prezentat perspectiva, realizarile, planurile. A avut, din punctul meu de vedere, cea mai curata campanie pe care am vazut-o vreodata in tara asta. Si asta probabil fiindca nu are un partid in spate, ci doar oameni care cred in ea si in viziunea ei pentru Romania.

Eu chiar incep sa cred din ce in ce mai tare ca Monica poate ajunge in turul 2 printr-o minune care sa marcheze un nou inceput in Romania. Nu, nu pentru ca ar fi ea mesia tarii, ci pentru ca ar insemna ca in sfarsit, oamenii activi ii depasesc pe pensionari, oamenii destepti pe inculti, oamenii care vor sa munceasca cinstit pe cei care asteapta sa li se dea.