2017. október 14., szombat

Két (vagy max. négy) Windows-os gép hatékony kezelése billentyűzettel és egérrel

Úgy alakult, hogy az otthoni két monitoromból az egyik (amelyben volt tuner is) elkerült a nagyszülőkhöz. Így otthon egy monitor maradt előttem, és ilyenkor jön ki igazán az, hogy a jóhoz milyen könnyű hozzászokni :)

Szóval, maradt egy monitorom. Van viszont egy notebook-om is, ami így már elfért a megmaradt monitor mellett, és elkezdtem keresgélni, hogyan tudnám hatékonyan használni a két gépet.

Mindkét gépen Windows 10 van, és némi keresgélés után találtam is egy érdekes "Microsoft Garage" fejlesztést, Mouse without Borders névvel.

Megnéztem a hozzá kapcsolódó súgót is, és kíváncsivá tett az eszköz:
  • Legfeljebb 4 számítógép vezérelhető (ebből egyikük a "master", amihez a használandó billentyűzet, illetve egér hozzá van kötve)
  • A különböző gépek között megosztható a vágólap
  • A különböző gépek között lehetőség van egy, max. 100MB-os fájl "kopipészt" jellegű átvitelére (több fájl, illetve mappa átvitele nem támogatott, de már így is igen hasznos tud lenni)
  • Lehetőség van "ALL COMPUTERS" módra, amikor is minden csatlakoztatott gépen egyszerre mozog az egér és jelez a billentyűzet (szuper lehetőség pl. junior kolléga oktatására, ha azonos a monitorméret, és be van töltve teljes képernyőre a fejlesztőeszköz - látja a saját gépénél, hogy mi történik)
  • Van még képernyőkép készítési lehetőség is benne, de ezt nem használom, a Greenshot ott van minden gépemen :)

Egy szó, mint száz, feltettem mindkét gépre, és kipróbáltam. Egy hét után a munkahelyemen is kipróbáltam (két monitoros "fő gép" + 1 notebook összekötése, mert a notebook-on van telepítve olyan szoftver, amit szintén használnom kell egy ideig, de licensz okokból a "fő gépre" nem telepíthető). Így összességében eddig két hét otthoni, és egy hét munkahelyi tapasztalatom van.

Egy szóban: király :) Nagyon kényelmes, és újra van otthon "két monitorom". Igaz, nem annyira jó, mintha azonos géphez lenne kötve, mert azt pl. nem tudom így megcsinálni, hogy "átdobom az alkalmazást" az egyik monitorról a másikra, viszont a leggyakrabban használt megosztásaim probléma nélkül működnek így:
  • egyik képernyőn a levelezés, másikon a "fő alkalmazás", amivel épp foglalkozom
  • egyik képernyőn könyv / cikk / leírás / dokumentum, amit felhasználok éppen a másik képernyőn levő programban

2017. augusztus 2., szerda

A párhuzamos univerzumok esete :)

Szakmai ártalomként, szeretek különböző absztrakciókat kitalálni a való világ folyamatainak modellezésére is :)

Néhány évvel ezelőtt olvastam Robert A. Heinlein Azok (They) című novelláját, amely főszereplője meg van arról győződve, hogy ő az egyetlen emberi lény, és mindenki más csak egy mellékszereplő az univerzumában. Érdekes gondolatkísérlet, nekem tetszett a novella. Majd, kicsit kiegészítve azzal a ténnyel, hogy a világból igazából azokat a dolgokat fogjuk fel, amelyeket az érzékszerveink engednek meg, megalkottam a saját univerzum absztrakcióját (*).

(*) Nem gondolom, hogy rajtam kívül másnak nem jutott eszébe, sőt, nagyon is sokaknak eszébe jutott, csak más szavakkal írnak/beszélnek róla. Szóval szerzői jogok és hasonló ötletek tekintetében azt mondhatom kicsit pontosítva, hogy a saját univerzumomban én alkottam meg ezt az absztrakciót :)

A lényege igen egyszerű. Mindannyian a saját univerzumunkban élünk, amelyek egymással párhuzamosan léteznek. Általában ezek a párhuzamos univerzumok eléggé hasonlítanak egymáshoz.
Pl. ha veled egy kávézóban futok össze, akkor valószínűleg mindkettőnk univerzumában azt gondoljuk, hogy egy kávézóban vagyunk és egy asztalnál ülünk. De abban már nem biztos, hogy egyezik az univerzumunk, hogy a felszolgálólány udvarias vagy sem, és abban sem biztos, hogy egyezik a két univerzum, hogy az asztal, amelynél ülünk, milyen színű :)

Az univerzumaink alapjait a világ valósága és az abban végrehajtódó történések alkotják. Ezen felül azonban van két olyan fontos tényező, amely egyedivé teszi mindenkinek a saját univerzumát:
  1. Az érzékszerveink "felfogási képessége" (van, akinek jobb a látása, vagy hallása, így az ő univerzumában több a szín, vagy hangosabbak a madarak és a tücskök :) ).
  2. A gondolataink, amelyeket az általunk felfogott világhoz és az abban zajló történésekhez kapcsolunk. Ez utóbbi a legnagyobb felelőse az univerzumok testreszabásának.
Nagyon sok önfejlesztéssel foglalkozó könyvben, előadáson, weboldalon találkozhatunk azzal, hogy mindannyian egy saját szemüvegen keresztül látjuk a világot, és ez a szemüveg a múltunkból, a hiedelmeinkből és a gondolatainkból épül.

Mire jó nekem ez a párhuzamos univerzum absztrakció? Egy nagyon fontos dologra: én csak és kizárólagos azért vagyok (és lehetek) felelős, ami az én univerzumomban történik, azért viszont kizárólagosan csak én tartozom felelősséggel!

Más szóval, teszem, amit jónak látok, és ha valaki más, a saját univerzumában ehhez a történéshez olyat kapcsol hozzá, amit én nem szerettem volna, akkor az már az ő egyéni szociális problémája, azt neki kell megoldania.

Nyilván, ha teszek valamit, amiről utána úgy gondolom, hogy nem kellett volna (mert persze bőven van ilyen, gyarló ember vagyok), akkor természetesen lesz folytatása (elnézést kérek, jóváteszem stb.). DE, ha később is úgy gondolom, hogy akkor és ott azt és úgy kellett tennem, akkor nem fogom sajnálni, hiába minősül majd ez a cselekedet más univerzumokban "nem helyénvalónak". Nálam az lesz :)

Magyarul: ha valaki megsértődik rám egy olyan dolog miatt, ami miatt az én univerzumomban nincs ok a sértődésre, akkor nem fogok azon gondolkodni, hogy "jaj istenem, vajon mit gondolhat?". Ha nem mondja ki, hogy baja van, akkor megtartja saját magának. Hát, akkor tartsa is meg... Ha pedig azt gondolja, hogy "de hát nekem ezt tudnom kellene", akkor, hát, bocs, ha nem mondod, nem kellene tudnom. Nekem azt kell tudnom, ami az én univerzumomban van.

Ha a fentiekből még nem derült volna ki, egy arrogáns, magának való köcsög vagyok :) Bár az én univerzumom szabályai szerint az átlagosnál jóval korrektebb, felelősségtudatosabb, empatikusabb ember vagyok, nyilván ez csak az én univerzumomban van biztosan így...

Egy dologra viszont nagyon jó ez az absztrakció. Nap mint nap látom a teljesen felesleges, időrabló "szerepjátékokat", ahol gondolunk valamit, teszünk valami egészen mást, és - mivel mi közben azt gondoltunk, amit - elvárjuk a másiktól, hogy ő is azt gondolja a mi "egészen más" tevékenységünkről. És persze, mivel nem azt fogja, már meg is van a fincsi kis konfliktusforrás...

Hát kedveseim, az én életem annál sokkal rövidebb időtartamra szól, hogy ilyen "játékokra" fecséreljem azt. Így is éppen elég időt b****k el egy csomó olyan dologra, amire nem kellene, ezt az egyet legalább jó eséllyel ki tudom küszöbölni. Időt is spórol, és nyugalmat is teremt.

2017. június 10., szombat

Ha képernyőkép kell Windows alatt - Greenshot

Sokszor van, hogy képernyőképet kell készítenem Windows alatt egy alkalmazás felületéről, vagy annak egy részéről a napi munkám során, különféle okokból:
  • Napi ügyféltámogatásban "vizuális segítség" nyújtása az ügyfeleknek
  • Fejlesztett rendszereink kapcsán különféle leírások tartalmához (pl. újdonságok az előző változathoz képest, felhasználói kézikönyv)
  • Bemutatók, prezentációk készítéséhez
Ilyenkor a képernyőképet sokszor annotálni is kell (pl. valamit bekeretezni pirossal, vagy jelölni nyíllal és szöveggel/számokkal egy "workflow sorrendet"), valamint - értelemszerűen ugyebár :) - a készített képernyőképen esetlegesen látható személyes adatokat "anonimizálni" kell.

Ezekre a feladatokra immár jó egy éve a Greenshot nevű alkalmazást használom, amiben a képernyőkép készítés mellett van egy kis képszerkesztő is. Na, ez nekem annyira, de annyira kézre áll, hogy kaptak is a fejlesztők egy 25$-ot támogatást a fejlesztéshez, megérdemlik :)

Nem túlzás azt mondani, hogy az általam elvárt funkciók mindegyikét nagyon felhasználóbarát módon támogatja:
  • Lehet rajzolni különféle színű és vastagságú téglalapokat (keretezéshez), vonalakat, nyilakat; ráadásul ezek a szerkesztőben külön objektumként viselkednek, ha tehát elsőre nem sikerült jól pozícionálnom, akkor nincs gond, arrébb teszem, átméretezem, vagy átszínezem :)
  • Lehet könnyen beírni szöveget simán is, vagy "speech bubble-ben"
  • Ha valami sorrendet kell mutatni, akkor van egy sorszámozója, ami 1-től indul, és minden kattintásra eggyel nagyobb számot tesz le
  • Van beépített kiemelője, amivel több mindent is meg lehet csinálni (vagy háttérszínnel emeli ki a szöveget, vagy a többi tartalmat "fakítva" emeli ki a kijelölést, vagy akár megnagyítja a kijelölt tartalmat
  • Van beépített "kikockázója", ami nagyon jól jön az egyes tartalmak gyors anonimizálásához
  • Az egész képre lehet tenni néhány "keretező effektet" is, ha úgy érezzük, szükségünk van rá
  • Természetesen forgatást, átméretezést és kivágást (crop) is támogat
Alább egy jó kis képernyőkép, amit kb. 2 perc alatt készítettem el az eszközzel (de csak azért, mert bő egy percet gondolkodtam azon, hogy milyen funkciókat is "demózzak" a képen :) ).




2017. május 31., szerda

Vim "alapszintű túlélőkészlet"

Nemrég olvastam egy StackOverflow-s blog bejegyzést arról, hogy a "hogyan tudunk kilépni a Vim szerkesztőből" kérdést már több, mint 1 millióan nézték meg. Illetve, olyanok is vannak, akik nem találtak még rá erre a kérdésre :)

No, de viccet félretéve, vannak időszakok, amikor egészen sok időt töltök én is a Vim szerkesztőben. Mondjuk, én szeretem :) Egyszer rászántam az alapok megismerésére és begyakorlására, meg egy "alapszintű bekonfigurálásra" néhány héten keresztül napi kb. fél-egy órát. Amit akkor "felszedtem", azzal egészen hatékonynak tűnök a kollégák számára, pedig igazából nem túl sok, ha a Vim összes lehetőségét nézem (egy élet is kevés alaposan megismerni...).

Windows alatt is van telepítve és bekonfigurálva egy GVim, egy viszonylag szolid színsémával és jó néhány kiegészítő plugin-nel (igen, a sötét hátteret szeretem kódszerkesztésnél, változatos felüdülés a szememnek a számos dokumentumkészítés és -olvasás között/után :) ).


Ugyanakkor azt is meg kell mondanom őszintén, hogy viszonylag ritkán veszem elő, sokkal gyakrabban indítom el a Sublime Text 3-at. De jó dolognak tartom, hogy sikerült megismerkedni az alapokkal.

Legtöbbször akkor használom, amikor valamilyen Linux szerveren kell úgy beállításokat eszközölnöm, hogy időveszteség lenne onnan letölteni a fájlokat, helyben módosítani és visszatölteni. Ehhez nem is kell túl sok parancs ismerete, én az alábbiakkal a leggyakoribb feladatokat gyorsan és hatékonyan (és nem utolsó sorban magabiztosan!) el tudom végezni:

<Esc>:q! - Kilépés mentés nélkül
<Esc>:w - Fájl mentése (ha ki is lépnénk utána, akkor <Esc>:wq)
<Esc>:set bg=dark - ha sötét hátterű a shell, amivel dolgozunk, és nem látjuk jól a Vim-ben a karaktereket
<Esc>:%s/mitkeresünk/mirecseréljük/igc - "klasszikus" keresés/csere művelet, az igc toldalékok miatt minden cserére rákérdez a Vim, kis-nagybetű érzéketlenül keres és egy soron belül mindegyik előfordulást megtalálja, ha több is van

A fenti parancsokban az <Esc> az Escape billentyű megnyomását jelenti. Ha valamilyen szerkesztő üzemmódban voltunk, akkor abból ezzel kilépünk a szerkesztő üzemmódból az ún. normál módba. Onnan a : (kettőspont) segítségével kaphatjuk meg a vim "parancssorát", ahova gépelhetjük, amit gépelünk.

Ha normál módban vagyunk, az i megnyomásával átmehetünk szerkesztő üzemmódba. Sok más parancs segítségével is átmehetünk, de, mivel minden modernebb környezetben szépen támogatja a Vim a kurzorbillentyűk használatát még a szerkesztési navigációban is, kezdetben elég ezt az egy átmenetet ismerni. Következőnek - már félig "haladóként" - erősen javaslom a c (change) parancs és a Vim szövegobjektumainak (text objects) a megismerését, ez az a pont, amit, ha valaki jól megismer, akkor - általában - megszereti a szerkesztőt.

Normál módban "ugrálni" a következő parancsokkal szoktam, ez nekem többnyire elég (vagy a fájl végét szerkesztem, vagy egy bizonyos környezetet, amire rá szoktam keresni):

/mitkeresek - keresés a fájlban előrefelé (a kurzorpozíciótól)
?mitkeresek - keresés a fájlban visszafelé (a kurzorpozíciótól)
n - keresés után a következő találatra ugrás
G - fájl végére ugrás
gg - fájl elejére ugrás
<sorszám>gg - a megadott számú sorra ugrás

Nagyjából ennyi az, amit gyakran használok a Vim lehetőségei közül. Nem sok, de az alap dolgokat kiválóan el lehet vele látni. Ha pedig tovább szeretnénk lépni, kiváló online anyagok állnak rendelkezésre, többek között:
  • Vimcasts.org: cikkek és rövid bemutató videók egyes Vim lehetőségekről
  • A Byte of Vim: online elérhető és olvasható könyv

2017. május 26., péntek

Rövid elmélkedés a Pomodoro technika kapcsán

Elég sokat kutakodom a nagyvilágban hatékonyságnövelő ötletek, gondolatok után. Igazából túl sokat is... sajnos hajlamos vagyok beleesni időnként abba a csapdába, hogy ahelyett, hogy alkalmaznám, amit már megértettem, még újabb és újabb ötleteket hajkurászom. De azért már javulok :)

Az egyik érdekes kirándulásom a Pomodoro-technika irányában volt. Sok blog bejegyzést, cikket, videót, és alkalmazást megnéztem, de nem sikerült megértenem, hogy miért is működne nekem ez a technika. Mégis, már mekkora "hülyeség" az, hogy majd 25 percig dolgozom, és utána szünetet tartok? És, ha egy feladat 40 percig tart, akkor hagyjam félbe? Ha meg 20 percig, akkor utána kezdjek bele valami másba még 5 percre? Tisztára nem értettem.

Az a része világos volt, hogy segít a nap tervezésében, illetve segíthet koncentráltnak maradni. De nagyon szigorúnak éreztem, és úgy láttam, hogy a saját világomban nem fogom tudni egyáltalán alkalmazni.

Aztán szembetalálkoztam más írásokkal is (pl. a 15 perces szabállyal), ami további ötleteket adott, hogyan tudnám használni mégis valahogyan.

Végül arra jutottam, hogy nem fogom arra használni, hogy "pomodoronként dolgozzam le" a napi feladataimat, hanem elsősorban heti "időbecslésre" és a napi feladatmennyiség behatárolására fogom használni. A munkám során számos, egymástól független tevékenység van, amelyekkel  rendszeresen (ha nem is minden nap, de heti szinten biztosan) kell foglalkoznom:
  • Általam vezetett/koordinált projektek esetén:
    • belül "architekti", "projekt menedzseri", konzulensi, tesztelői és reviewer feladatok,
    • ügyfél felé "business analyst" és támogatási feladatok
  • Egyéb, már működő rendszerek esetén ügyféltámogatási feladatok
  • Cégen belüli folyamatok / eszközök folyamatos ellenőrzése, felülvizsgálata, változáskövetése, újdonságok kipróbálása / bevezetése
  • Kollégák mentorálása, nem csak projekt, hanem általános szakmai értelemben is

Alapfeltevések:
  • 1 órába 2 pomodoro-nyi feladat fér fele :)
  • egy átlagos, "kellemesen laza" munkanap kb. 12 pomodoro (nagyjából 6 órányi "effektív munka"); egy koncentrálós, keményebb munkanapba kb. 15 pomodoro fér bele, egy extrém munkanapba pedig kb. 18 (ez utóbbi már kb. 11 órányi munkahelyen töltött időt jelent, tehát tényleg extra, ezt hosszú ideig nincs értelme csinálni)
  • a fentiek alapján egy átlagos hétbe kb. 70 pomodoro fér bele, ezen lehet némileg feljebb tornászni, kb. 80-ig, de csak időszakosan
Heti tervezés:
  • A GTD is használja, és tényleg, szerintem ez az egyik legfontosabb dolog annak, aki kicsit is szeretné jobban tervezni és megvalósítani a dolgait. Heti szinten viszonylag gyorsan át lehet tekinteni az előző hetet, levonni a tanulságokat, és legalább nagy vonalakban megtervezni a következő hetet (hogy akkor, milyen területeken kell előrehaladni).
  • Fontos, hogy a hetet tervezem, nem a napokat! Vagyis azt táblázom be, hogy az adott héten kb. hány pomodoro-t foglalkozom a soron következő feladatokkal. Azt, hogy egy konkrét napon ténylegesen mivel töltöm az időt, a nap elején határozom meg (amit persze még mindig felboríthat valami "vis major" dolog, de általában több, mint 80%-ban tudom magam tartani a tervhez).
  • Ez a megközelítés nekem sokat segített abban is, amikor olyan időszak van (és többnyire ilyen van :) ), hogy párhuzamosan több "nagyon fontos" projekt vagy "eseményszál" is megy. Ha nincs heti terv, akkor folyamatosan bennem van, hogy "a többivel is foglalkozni kellene", míg, ha van, és van azokra is idő tervezve, akkor sokkal nyugodtabban tudok az éppen aktuálisra figyelni.
Feladatok:
  • Ha elkezdek egy feladatot, akkor amennyire csak tőlem telik, nem hagyom, hogy bármi vagy bárki megzavarja (nekem nagyon bejött az, hogy legalább 15 percig kötelező csinálnod, utána szabadon eldöntheted, hogy folytatod, vagy áttérsz másra). Ugyanakkor, mivel többségében koncentrációt igénylő feladatokat végzek, ezért van egy max. 45-50 perces határ (ami végül is 2 pomodoro :) ), ami után biztosan tartok szünetet.

Ezt a megoldást alkalmazom kb. fél éve, egyelőre váltakozó sikerrel, de hatékonyabb vagyok, mint korábban, amikor csak napi szinten terveztem meg valamennyire, hogy mit fogok csinálni.

A leggyengébb láncszem a folyamatban a heti tervezés, és a feladatokhoz való "pomodoro becslés" (tehát hogy azon a héten kb. hány pomodoro folyhat el az adott feladatra). Ha ez elmarad, vagy csak félszívvel csinálom meg, akkor azt nagyon megérzem a következő héten.

2017. május 6., szombat

IT tanulás "ingyen"

Az informatikai, főleg a szoftvertervezés és szoftverfejlesztés világában számos olyan lehetőség nyílik meg, ami talán egyáltalán nincs is meg más szakmában. Ez pedig annak a lehetősége, hogy "ingyen" jussunk jó minőségű eszközökhöz és tudáshoz is.

Az ingyen azt jelenti, hogy pénzt nem fizetünk érte (az internetkapcsolat díján és a számítógépünkön túl), viszont rengeteg időt kell "beletenni". Ez az a pont, ahol a legtöbben elvéreznek. Viszonylag kevés olyan embert ismerek, aki hajlandó átlagosan napi 1 óra plusz tanulást folytatni a munkaidején túl. Ugyanakkor, napi egy óra, és esetleg hétvégén még pár óra plusz az már heti 8-10 óra, havi 32-40 óra. Vagyis havi szinten mondhatjuk, hogy "plusz egy heti" tudást / tapasztalatot felszedhetünk, vagyis egy év alatt majdnem három havi, öt év alatt pedig másfél évnyi tudással lehetünk előrébb. Ez az egyik olyan faktor, ami a munkavállalói világban meg tudja különböztetni a jó szakembert és a kevésbé jó szakembert. Van persze még sok más is, de ebben a posztban csak az "ingyenes tanulás" a téma.

Főleg az iskolaévek alatt, illetve az első 10 munkaévünk alatt számít rengeteget a plusz tanulás, itt nagyon "el tudunk húzni". Ebben az időszakban ráadásul még gyorsabban megy a tanulás, és elvileg jobban is tudunk rá időt szánni (talán kevésbé vannak családi kötelezettségeink, de ez nyilván egyéni élethelyzet kérdése).

Hihetetlen mennyiségű információ vesz minket körbe az internet jóvoltából, és ezek között sok jót is találni. Vannak szakmai podcast-ok, YouTube csatornák, blog-ok, oktatóoldalak, szabadon elérhető egyetemi előadások és jegyzetek, szóval tényleg rengeteg információ közül választhatunk.

Az én személyes kedvenceim (mivel elsősorban JVM platformon dolgozom, Windows-os környezetben, így az eszközök és a többi link is ennek megfelelők - de más területre is ugyanígy megvannak az eszközök, a keresők segítenek megtalálni azokat):

Ingyenesen elérhető, nagyon jó minőségű eszközök szoftverfejlesztést tanulóknak, gyakorlóknak, hobbistáknak (van, ami "csak" magánszemélyeknek, tanulóknak, illetve néhány fős csapatoknak "ingyenes", ezért mindig meg kell nézni a kapcsolódó licensz információkat):
A felsorolásból kimaradtak a kódtárkezelés kivételével a "felhős dolgok" (pl. IDE a felhőben), ennek az oka, hogy én, személy szerint azokkal még nem igazán foglalkoztam, nincs bennük tapasztalatom. Amiket itt felsoroltam, azok mindegyikével dolgoztam vagy dolgozom, és "nagyon rendben" láttam a stabilitásukat / funkcionalitásukat, az árukhoz képest meg főleg :)

Az oktatóanyagokból, blog-okból még nagyobb a választék, és nagyon függ attól a választás, hogy milyen IT szakterület irányába szeretne valaki orientálódni. Az én Top 5 ingyenes kedvencem a tanuláshoz:
  • Simple Programmer: lehet rajta kifejezetten programozási bejegyzéseket is találni, de a blog nagyon nagy hangsúlyt fektet az ún. "soft skillek" (kommunikáció, tanulás, "fitten maradás" stb.) népszerűsítésére. Abszolút egyet tudok érteni vele, hiszen, ha valaki megfelelően tud kommunikálni, gyorsan tud olvasni és értelmezni, akkor szinte bármit meg tud tanulni élete során, később sem okoz akkora problémát, ha pl. technológiai stack-et kell váltani.
  • Packt Publishing: ha regisztrálsz (ingyenes), akkor van minden nap egy olyan e-book, amelyet ingyenesen megszerezhetsz a Free Learning program keretében. Én (bár nekem van Mapt előfizetésem is, de ez most itt nem lényeges), a Free Learning program keretében évente kb. 15-20 számomra érdekes e-bookot tudtam beszerezni (elsősorban PostgreSQL, Java, Python, webbiztonság, web fejlesztés, DevOps témakörökben).
  • Udemy: rengeteg oktatóvideó található meg, közülük több ingyenesen is elérhető. Kicsit "kavarni" kell az oldalon, mire eljut az ember az ingyenes kurzusokig, de utána már lehet válogatni (pl. ezen a linken keresztül a szoftverfejlesztéshez tartozó ingyenes kurzusok érhetők el; van itt Ruby on Rails, Android, Python, webfejlesztés, web design, Java, Github, Swift, C#, Eclipse, hogy csak néhányat említsek, közel 500 kurzusból lehet választani). Nyilván, a fizetős kurzusok alaposabbak és naprakészebbek is, de az ingyenes anyagok is nagyon értékesek, ha valaki valóban tanulni és fejlődni szeretne.
  • Free books via GitHub: egy korábbi nagyon jó StackOverflow gyűjtemény továbbvitele és karbantartása. És egyúttal nagyon jó példa arra, hogy miért fontos egy szoftverfejlesztőnek angolul megtanulnia (ha megnézed a magyar és az angol listát, hát, van különbség :) ).
  • Zen Habits: egy kicsit "fura" ebben a válogatásban, de nagyon szeretem az itt megjelenő írásokat. Az itt leírt dolgok közül néhány megértése és megélése segíthet abban, hogy érzelmileg jó, kevésbé frusztrált életet éljünk meg, és ez is rengeteget tud segíteni a szakmai fejlődésben is (több időnk, és sokkal több energiánk marad, mint ha hagyjuk, hogy a külvilág történései miatt a napjainkat folyamatosan idegeskedéssel és rohanással töltenénk).
A fentiek mind csak csepp a tengerben. Így, ha valaki informatikai területen szeretne tanulni, egy dologban biztos nem lehet kifogása, ha van számítógépe és internetelérése: abban, hogy nincs miből tanulni :)

2017. április 15., szombat

Bemutatkozás

Szoftverfejlesztőként (pontosabban programtervező matematikusként) végeztem még a 20. században Szegeden, az - akkor még - József Attila Tudományegyetemen.

Aztán elmentem 9 hónapra katonának Kalocsára, az ottani kiképzőközpontba. Sok szempontból életem egyik legjobb döntése volt, hogy nem próbáltam mindenféle mondvacsinált okokra hivatkozva elbliccelni a dolgot. Sok hasznos tapasztalatot szereztem az élettel kapcsolatosan, kilépve az otthoni biztonságból. Persze mondhatjuk, hogy ezeket minden józan paraszti ésszel rendelkező ember tudja, de én már azt is tudom, hogy más "tudni" és más "megtapasztalni" :)

Mik is voltak ezek a tapasztalatok?
  •  Az alapvető emberi értékek (szeretet, barátság, őszinteség, döntésképesség, felelősségvállalás, és hasonlók) teljesen függetlenek az iskolázottságtól. Kiválóan tudtam kommunikálni és jól éreztem magam "csak" 8 általános végzett emberrel, és iszonyatos nehézségeim is akadtak több diplomával rendelkezőkkel, vagy akár a laktanyaparancsnokkal :), csak hogy a két végletet említsem.
  • Négy nagyon fontos dolgot tapasztaltam meg, ami a jó vezető ismérve: a példamutatás, a hitelesség, az empátia, valamint annak a felismerése és helyén kezelése, hogy nem feltétlenül mi tudunk mindent a legjobban. Szerencsém volt, mert kiváló szakaszparancsnokot sikerült kifognom, rengeteget tanultam tőle, amit később, a munkahelyemen kamatoztatni is tudtam (tudok). És sajnos láttam az ellenkezőjét is...
  • A kapott feladatot el kell végezni. Mindig van egy rendelkezésre álló idő, és az sosem elegendő a tökéletes végrehajtáshoz. Viszont általában ki lehet hozni egy, a lehetőségekhez képest jó eredményt.
  • Az élet nem habostorta :), de - megfelelő hozzáállással - az esetek túlnyomó többségében teljesen élhetővé lehet tenni. Szerintem.

A katonaság előtt is szerencsés voltam több szempontból. Egyrészt szüleim miatt, akik mindig is önállóságra neveltek, és arra, hogy magam tanuljam meg, melyek azok a tevékenységek, amelyekre érdemes időt szánnom. Ezáltal már a középiskola végére kialakult bennem egyfajta tudatosság és felelősségvállalás. Ezt szerencsésen erősítette a gyerekkori és fiatalkori sportolás (kajakozás, később többféle harcművészet és néptánc), valamint a 16 évesen megismert agykontroll (amiből sok dolgot azóta sem használok..., de a legfontosabbat, a gondolat-nagytakarítást rendszeresen).

Nagyon szerencsés voltam, mert a katonságtól leszerelve azonnal egy olyan munkahelyet találtam, ahol mind emberileg, mind szakmailag megfelelő a légkör, a csapat, a feladatok és a munkám minden téren elismerik (a bemutatkozás írásakor lassan már 18 éve, így hamarosan "nagykorúvá válok" munkaügyileg).

A belépés óta eltelt idő alatt is rengeteget fejlődtem mind emberileg, mind szakmailag, hála a főnökeimnek, a kollégáimnak, és a feladatoknak, valamint emberi oldalról volt feleségemnek, jelenlegi páromnak és fiunknak köszönhetően.

Aktuálisan "több dimenzióban" mozgok, a munkaidőm többségében, a ma divatos szakmai fogalmak és szerepkörök alapján elsősorban business analyst, architect és lead developer feladatokat látok el, de nem ijedek meg akkor sem, ha ügyféltámogatási vagy tesztelési feladat merül fel.

Mai napig elemző, teljességre törekvő gondolkodásmóddal állok neki egy-egy problémának, vagy új eszköz megismerésének. Itt, a blogon is - elsősorban a saját tapasztalataim "online mentéseként" - kivesézek problémákat, eszközöket, körbejárok dolgokat. Meg az az igazság, hogy imádok dumálni, hát most online is tudok... :)

Ha egyetlen dolgot javasolhatok "életvezetési útmutatóként" a blogra tévedt :) kedves olvasó számára, az a cserkészek egyik aranyszabálya: "mindig hagyd tisztábban a táborhelyet, mint ahogyan találtad". A lényege a folyamatos fejlődés, így számos módon lehet "szövegesen testreszabni" ezt a szabályt:
  • Minden nap úgy feküdj le, hogy megtanultál valami olyat, amit reggel még nem tudtál. Ez lehet emberi dolog, szakmai dolog, idegen nyelvben új szavak, bármi, a lényeg, hogy tanulj valami újat minden nap.
  • Minden nap kevesebbet kritizálj másokat, mint az előző napon.
  • Minden nap egy kicsit jobban figyelj oda a családodra, mint az előző napon.
  • Minden nap egy kicsit egészségesebben étkezz, mint az előző napon.
  • Minden commit-nál legyen érthetőbb a kódrész és környezete, mint a commit előtt volt :)
  • ...
Ahogy Lao-ce is mondta: "Terebélyes fa hajszál-gyökérből fejlődik, kilenc-emeletes torony kupac földből emelődik, ezer-mérföldes utazás egyetlen lépéssel kezdődik."

Semmi sem megy egyik napról a másikra, de menj előre minden nap egy métert, és néhány év múlva már sokkal messzebb leszel, mint azt az első napon gondoltad volna. Csak ne a szakadék felé indulj...

Online szakmai "névjegy"

Notepad2 - a hasznos "kicsike"

Szoftverfejlesztőként sok esetben dolgozom szövegfájlokkal. Megvannak a kedvenc, komplexebb szerkesztőim és fejlesztőkörnyezeteim, ugyanakkor van egy nagyon aranyos kis programocska, amit ajánlok mindenki figyelmébe, akinek sokszor "csak egy kicsit jobb" jegyzettömbre lenne szüksége.

A Notepad2-ről van szó, annak is arról a változatáról, amely a https://xhmikosr.github.io/notepad2-mod/ oldalról tölthető le. A telepítője felajánjla azt a lehetőséget, hogy lecseréli a Windows jegyzettömböt, így a telepítést követően minden alkalmazás, ami a Jegyzettömböt (Notepad) indítja el, az a Notepad2-t fogja elindítani.

Aki magyarul szeretné használni, az innen töltse le a telepítőt: http://people.inf.elte.hu/kpeter/notepad2-mod/

Kicsike, gyors, és mégis számos olyan dolgot tud, ami igen hasznos a mindennapokban. A számomra legfontosabbak ezek közül:
  • Szintaxis színezés
  • Reguláris kifejezés alapú keresés és csere
  • Számomra fontos karakterkódolások és sorvégek kezelése
  • A 64 bites változattal néhány 10MB-os szövegfájlok teljesen jól kezelhetők, sőt néhány száz MB-osak is; nemrég egy 3,8 millió soros, 1,5GB-ot meghaladó méretű SQL szkripttel "bohóckodtam", ahol már egy-egy keresésre, vagy cserére várni kellett jó egy percet, viszont végül azzal is elboldogult.
  • Beállítható a kijelölés kiemelése a többi szövegrészben (választható, hogy csak egész szóra működjön)
  • Több, rövid kódíráshoz használható szerkesztési segítség van benne (pl. sor duplikálása, fel/le mozgatása, blokk indentálás, zárójelek párjának kiemelése, ugrás nyitó-csukó zárójelek között stb.)
Mivel kicsi, gyors, és ügyesen be tud illeszkedni a Windows-ba, csak javasolni tudom a telepítését :)