Hirdetés

Adventi várakozás

Minden évben indul egy adventi naptár szoftverfejlesztőknek, az https://adventofcode.com/2019. Minden nap egy új feladat, amit akármilyen nyelven meg lehet oldani, csak a megoldást kell beküldeni. Lehet becsületesen játszani, és megoldani saját erőből, de fórumokon lehet segítséget is kérni. Magyarok előnyben, mert értelmes időben lesznek elérhetőek a feladatok (CEST 6 óra, ha jól számolom).

Ha valaki szeretne csatlakozni a leaderboard-omhoz, és lealázni: https://adventofcode.com/2019/leaderboard/private. A "titkos" kód 524473-44c6db6c. Egyelőre itt árválkodom: https://adventofcode.com/2019/leaderboard/private/view/524473

Bejutni a Google-höz - Csavar

Szóval sosem tűnt úgy, hogy lenne elég időm becsülettel felkészülni egy Google interview-ra, a munka, a családi ház felújítás, a család ... Így a dolog kínosan húzódott. Aztán egy ismerősöm startupjához keveredtem, ami nem váltotta be maradéktalanul a reményeimet, így nyitva tartottam a szemem a további lehetőségek iránt. Nem kellett nagyon keresni, LinkedIn-en jöttek folyamatosan az ajánlatok. Többek közt jelezte az Amazon, hogy turnéznak Budapesten, és szívesen látnak. Az eljárás alapos volt. Egy telefonos kör a HR-rel, utána 90 perces online kör két algoritmizáló feladattal (a felület elég béna volt, az automatikus tesztek futtatása után be is kellett küldeni a megoldást, és az elsőnek a végleges megoldását nem küldtem be, csak egy részeredményt, szerencsére a második volt a nehezebb, és az hibátlan lett). Aztán még egy HR-es kör, amikor meghívtak a személyes interview-ra, és küldtek egy csomó felkészítő anyagot. És utána jött a furcsa rész: egy órában egy másik HR-essel még egyszer végigmentünk ezen az anyagon, hogy biztosan értem-e, hogy milyen lesz a személyes interview, és hogy tudom-e hogyan kell felkészülni.

Bejutni a Google-höz - Bemelegítés

Végül munka és tortázás után sorozatnézés helyett az aktív kikapcsolódás mellett döntöttem. Coursera-n találtam két vonatkozó specializációt (specializáció,specializáció), és az egyik kurzusnak meg is csináltam az első hetét. Elég lassan indul, úgyhogy gyorsítva hallgattam, de a Coursera-s tapasztalataim alapján hamar el fogunk jutni az izgalmas részekhez. Nagyon tetszik az amerikaiak feladatközpontú oktatási rendszere. A BME-n az algoritmuselmélet - legalábbis a 2000-es évek elején - programozás nélkül tanultuk. Pszeudo-kód volt az anyagban, de az nem fut, nem lehet beledebuggolni, belehekkelni egy kis heurisztikát. Amerikaiaknál az algoritmus együtt jár az implementációval.

A két képzés közti különbség a Google-ös minta interjún erősen kiütközött. Rendezett tömb esetén egyből rájöttem a megoldásra, csak a megoldás helyességének indirekt bizonyításán törtem kicsit a fejem. Viszont rendezetlen esetnél elakadtam, fehér táblás algoritmus üzemmódban nem jutott eszembe a hash-tábla használata, pedig amikor hackerrank-en programoztam szégyentelenül használtam bihash táblákat is a futási idő csökkentésére. Lehet hogy most már másképp oktatják a számításelméletet, algoritmuselméletet és formális nyelveket. Végülis amikor én végeztem, még nem volt természetes, hogy minden háztartásban van számítógép meg persze Internet.

Bejutni a Google-höz

Szerk: Az alább bejegyzés 2018-07-16 07:00-kor született, de csak délután kaptam meg a Google áldását a blog elindítására

Múlt héten megkeresett egy channel specialist a Google-től, és javasolta, hogy interview-zzam a céghez fejlesztőnek. Kicsit meglepődtem, de egy ilyen lehetőséget nem lehet kihagyni. Megadtam a számom, és másnap hívott is. Az első telefonbeszélgetés inkább csak eligazítás volt mint interview.

A Google felvételi folyamata hosszabb, mint bármi, amit eddig láttam (hacsak nem tekintjük interview-nak a Prezis próbahetet). Az első - de inkább nulladik - telefonos kör után két telefonos szakmai interview jön majd, ami alatt többek közt Google Docs-ban kell kódot írni. Ezt siker esetén öt személyes kör követi valamelyik európai Google telephelyen. Ha ezen is megfelelek és ajánlatot adnak, akkor én interview-ztathatom a projekteket, csapatokat, hogy olyasmin dolgozzam, ami igazán érdekel.

The art of the deal

Bár a hardvereimet általában itt az aprón cserélem, néha-néha felrakok egy konfigot a Vaterára is. A stratégiám a lehető legegyszerűbb: a legalacsonyabb általam elfogadható áron bocsájtom licitre a terméket (azon az áron, amennyiért én is megvenném, ha nem lenne éppen az enyém), nem adok meg minimálárat, és megadok egy villámárat, ami magasabb az általam becsült piaci árnál.
Így garantálom, hogy a gép nem fog olcsóbban elmenni, mint amennyiért el szeretném adni. E mellett aki licitál, annak nem kell egy rejtett minimálárat találgatnia. És végül aki mindenképpen meg akarja kapni a gépet, az egy kis felárért cserébe mentesül a licitálással járó stressz és a felesleges várakozás alól. Azt gondoltam, ez így racionális. A konkrét esetben a két szám: 150e és 180e Ft.

És akkor jön az üzenet, hogy mennyiért adnám oda licit nélkül. Kívánkozik a válasz visszakézből, hogy 180e Ft, aki meg akarja kerülni a licitálást, annak ott a villámár. De nem vagyok én semmi jónak elrontója, visszakérdezek, hogy mennyire gondolt. Erre jön újra a kérdés, hogy milyen reális áron vihetné haza a konfigot, licit nélkül. Megírom neki kedvesen, hogy szívesen kapnék érte 180e Ft-ot, de hogy neki mi a reális, azt ő tudja, illetőleg majd a licitálók eldöntik. Végül jön egy 120e Ft-os ajánlat, azzal megtoldva, hogy gyorsan fogadjam el, mert neki még ma kellene a gép egy utazás miatt.

Az igazi férfi bosszúja

Ismertem egy igazi férfit, igazi apát, tekintélyt parancsoló alfa hímet, aki mindenre kész volt a családjáért. Pontosabban a családja megbosszulásáért. Bármilyen helyzetben tudta, hogy ő biztosan mit csinált volna az elkövetővel, ha egy tragikus eset amiről éppen szó volt, a családjával történik meg. Szerencsére nem került ilyen hősi feladat elé, ellenben nem tudta megugrani azokat a hétköznapi akadályokat, amiket elé gördített az élet. Hősünk az óta elveszítette a családját, nem egy célzott merényletben, egyszerűen csak nem bírt el a feladatokkal, és lelépett.

Akkor nem fogalmazódott még meg bennem a gondolat, de most egy online eszmecsere kapcsán formát öltött: miért fantáziálnak bizonyos férfiak arról, hogy mindent elveszítenek?

Elég sok népmesét olvastam az elmúlt évtizedben, de azokban a mesékben nem jelent meg az efféle bosszúállás. Ha egy hős valamit elveszített a mese elején, azt próbákat kiállva visszaszerezte a végén. Esetleg közben megölt egy sárkányt, de nem bosszúból. Ellenben a mai mesék közt lépten-nyomon találni ilyen történetet, legutóbb kis csavarral a Noctrurnal Animals filmben-regényének volt ez a cselekménye. Miért lett ennyire divatos ez a gondolat?

Készítsünk egeret - felkészülés

Az érintőkijelzők elterjedéséig a grafikus kurzor volt a grafikus felületekkel való érintkezés legfontosabb eszköze. A kurzor mozgatását leggyakrabban egérrel végezzük, de a gyakorlott felhasználó szorult helyzetben más alternatívákkal is boldogul. Fejlesztéshez, szövegszerkesztéshez az én preferenciám a touchpad, mert így minimális kézmozgással tudok lökni egyet a kurzoron. A billentyűzetem közepén - üzleti notebookról lévén szó - ott csücsül a trackpoint (magyar nevén pöcökegér, vagy piros domború gumikupakkal ellátott változat esetén csikló), de a használatát sosem sikerült elsajátítani.

A sikeres scrollozás után az Arduino HID-dal való ismerkedés következő lépéseként a kurzor mozgatásával próbálkoztam. Touchpad építéssel foglalkoztunk korábban a laborban, de elég körülményes lett volna egy megfelelő felbontású kapacitív felület elkészítése házilag, egy példányban pedig nem akartam NYÁK-ot gyárttatni, így más elemek felé fordultam. Az egyik lehetőség az x,y koordináták külön-külön állítása, akár a korábban használt rotary switch-ekkel, akár gombnyomásra, impulzusonként. De bár érdekes kísérlet lett volna, és sok Bluetooth billentyűzet és egyéb eszköz használ ilyen megoldást, közel sem ergonomikus. A harmadik lehetőség az analóg stick volt. Ebből volt is elfekvő példány, ezért emellett döntöttem. Hasonlatos a pöcökegérhez, de a lényegesen nagyobb mozgástér pontosabb kezelést tesz lehetségessé – legalábbis ebből a feltételezésből indultam ki.

ebay, a becsület másodpiaca

Részben én is hibás vagyok, szeretek olcsón vásárolni, és hosszas ebay-ezés után néha nem nézek meg egy terméket kellő körültekintéssel rendelés előtt. De az eladók is hibásak, hiszen nem a fényképen lévő NYÁK elemzéséből kellene a felhasználónak rájönnie, hogy mit is akarnak eladni neki, a termék nevének is ezt kellene tükröznie.

De mi is történt? Hírdettek egy Pro Micro 32U4 replaces 328P Pro Mini Arduino-t (a hírdetést közben levették). Top seller, 99% fölötti elégedettség, nem is volt drága, sokan is vették már, hát megrendeltem. Ide is ért hamar, egy szerencsétlen pinout-os Pro Mini 328P. Átgondoltam, hogy mik a lehetőségeim. Vagy elmegyek a postára, és 2-300Ft-ért visszaküldöm, várok egy hónapot, és talán visszakapom a pénzem. Vagy visszautal az eladó 100-200Ft-ot, kárpótlásként. Esetleg nagyon elnézést kér, és újraküldi ugyanazt a kacatot, vagy ad 200-300Ft kedvezményt egy igazi Pro Micro-ra.

Eddig belementem abba, hogy a visszatérítésért cserébe nem húzom le az eladót, és használom a kicsit defektes terméket, az egyébként is alacsony árnál is olcsóbban, de most elszakadt a cérna. Én arra vágytam, hogy 3-4 héttel a megrendelés után egy Pro Micro legyen a kezemben, ezért fizettem, ebben egyeztünk meg. Úgyhogy behúztam egy negatív értékelést. Másnap jön a levél, hogy beszéljük ezt meg, mit tehetnének, hogy elégedett legyek a tranzakcióval. Megírtam nekik, hogy arról lekéstek.