pityulaman1983 blogja

Stackoverflow copy - paste

Gondoltam, ez megér egy blog posztot. Sokan gondolkodás nélkül használják a munka hevében a Stackoverflow cikkek elfogadott válaszát. 

Ezzel én is így voltam, MSSQL-ben szeretnék számolni tábla és indexméreteket. Az egyik nagy táblánál bújt ki a szög a zsákból, amikor az egyik táblára azt mondta a lekérdezés, hogy 400 millió GB méretű a tábla. 

Meglepetés

Unalmas óráimban a Microsoft által kiadott, a HUP-on már többször taglalt MS-DTSX2 xsd-t bingyergetem, közben fel-fel nézek a laptop mögül. Párom itt hever az ágyon, szegény este 10 után esett haza, hulla fáradt. Ilyenkor elgondolkodom rajta, hogy milyen szerencsés fickó vagyok, hogy egy ilyen nővel hozott össze a sors. A meglepetés azonban nem ezzel kapcsolatos, hanem.
Csépelem bele az XSD-be a component class ID-kat. A módszer a következő. Visual Studioban két darab tab group, egyikben egy szűz SSIS package, másikban a forrása. A data flow-ba egyesével dobálom be a taszkokat, forrásból component class id kimásol, majd bepasztáz az XSD-be. Hálistennek a forrás azonnal módosul, így amint megkapja a fókuszt, már az új komponens van ott is. Favágó munka, egy idő után már bele-bele fásul az ember, aztán mikor már elgémberedtem itt a fotelben, felkászálódok és kivonulok cigizni, miközben azon morfondírozok, hogy le kellene már szokni. Egyszer már sikerült, akkor megint fog.
A sokadik taszk után - amikor már benne van az ember a sorozatgyártásban - a következő XML attribútumra leszek a figyelmes az alapvetően angol XML forrásban:
description="Dimenziófeldolgozás"
Az ilyen finomságok a legunalmasabb kulimunkát is fel tudják dobni. Programozás, én így szeretlek.

Teszten működik, élesen nem

A bejegyzés a nyugalom megzavarására alkalmas szöveget tartalmazhat!
Csak akkor olvasd tovább, ha engem és a Microsoft technológiákat nem irtanád tűzzel-vassal!
---------------------------------------------------------------------

Alapvetően egy ilyen művelet (mármint, amit most csinálok) alsó hangon 3 év fejlövés, de nem tudok jobbat. .NET Framework-öt nem igazán vértezték fel JSON Serialize és Deserialize függvényekkel, ezért 3rd partyként a mindenki által javasolt Newton Soft JSON parserét kötöttem be referenciaként. Eredmény: teszten működik, élesen nem.
Hogy mi a hiba oka, azt inkább hagyjuk. Nem reprodukálható, a hibaüzenet nagyjából a semmi és a nulla között helyezkedik el félúton. A teszt egy darab szerver, az éles egy cluster. Teszten működik, élesen nem. Minden próbálkozás 1-1 telepítés a rengeteg sallanggal egyetemben. Három töltényed van, ebből kettő vak, egy éles. Teszten működik, élesen nem. Egy webservice-t hívok meg kétszer, egyszintű, pofon egyszerű választ várok. Teszten működik, élesen nem. Hogy megkíméljem magunkat rengeteg extra szívástól, úgy döntöttem, kidobom a 3rd party parserét. Teszten működik, élesen nem. Átírom egyszerű string műveletekre. Nem vagyok büszke rá, nem szép megoldás, pláne nem 1x év tapasztalattal mögöttem. Teszten működik, élesen nem. Remélem teszten működni fog és élesen is.
Update: Teszten működik és az élesen is :)

Jótékonykodás

Nyitottam egy topikot, Jótékonysági felhívás címmel (http://hup.hu/node/145274). Páran azonnal ráugrottak, hogy szeretnének segíteni. Múltkor dragi fórumtárs környékén jártunk, úgyhogy beugrottunk az általa felajánlott számítógépért. Becsületére legyen mondva, hogy adott hozzá egy teljesen új billentyűzetet és egeret. Ezúton is köszönjük!
Szombat reggel korán keltünk, jött a dadus, aki vigyázott egész nap a kislányomra. Megjöttek a pakolós srácok, hárman hordtuk le a cuccokat a lakásból (szekrények, kanapé, fotelek, tűzhely, miegymás). Felpakoltuk az Iveco Daily-t és nekiindultunk Csongrád megyének, hogy segítsünk egy családnak. A családról csak annyit, hogy a svájci frank alapú hitel és a kenyérkereső lebetegedése rendesen betette a kaput szegényeknek. Itt a "szegény embert az ág is húzza" mondás hatványozottan érvényes.
Szóval kicsit feszengve csücsültünk a koppanásig pakolt Ivecoban, ami csak rótt a kilométereket. Milyen lesz a család, lesz-e közös téma, sírni fogunk vagy nevetni?
Intermezzo: Megálltunk utánahúzni a spanfereknek, amikor konstatáltuk, hogy nincs meg a tanksapka. Mondtuk, hogy jó, hazafelé majd figyeljük.
A GPS szólt, hogy megérkeztünk a célhoz. Úgy volt, hogy sok-sok képpel dokumentáljuk az eseményt, még röhögtünk is, hogy olyan az egész trip, mint egy osztálykirándulás. De annyira furcsa érzés kapott el. Jött ki a komplett család, legkisebbtől a legnagyobbig mindenki és segítettek lepakolni a teherautót. Ennek köszönhetően 15 perc leforgása alatt minden bútor, ajándék, élelmiszer bekerült a házba. Beinvitáltak minket, áradt a szeretet mindenkiből. Nem az az "ezek segítenek, ezeket szeretni kell", hanem látszott, Ők így állnak minden vendéghez. Beszélgettünk, nagyjából vázolták, hogy mi a helyzet. Napszámos munka van egy környékbeli gyárban, olyan órabéren, hogy abból éhen lehet dögleni. Az öreg, aki egy agyvérzésnek köszönhetően nem lát és nem hall jól, mondta, hogy amíg dolgozott, megvoltak. Jött a csatornázás, telken belül a tulajdonosé a költség, amire vettek is fel hitelt. De lesérült, leszázalékolták és semmit sem tud csinálni, a hitelt nem tudják fizetni. Furcsa egyébként, hogy a 11 fős családból senki nem dohányzik és alkoholt sem fogyaszt.
Közben klikkesedtünk, feleségem a család női tagjaival, mi a sofőr sráccal meg persze a férfiakkal. Átbeszéltük, hogy mit lehetne csinálni a házzal (amit egyébként a tartozás miatt elvitt az állami eszközkezelő). Kívül egészen kulturált, belülről ázott és dohos. Miután végigsimogattuk a cicákat és az egyetlen kölyökkutyát, akinek anyja és testvére elpusztult szülés/születés közben, megnéztük a jószágokat is. Kérdezem, milyen jószágok vannak? Jött a válasz: "Milyet akarsz?". Csirke, kacsa, hízó, bárány, minden volt ott.
Közben jött a kávé, házitejjel, sokkal finomabb volt, mint amihez szoktam. Lassan délután 3 óra felé járt az idő, már a számítógépet is beröffentettük, rákötöttük a routerre. Most már állítólag állandó veszekedés van belőle, hogy ki játsszon vele. Nekünk viszont indulni kellett, mert messze a főfalu. Könnyes búcsút vettünk egymástól. Útravalónak felszereltek minket házi tojással, csirkével és kacsával. Mondanom sem kell, hogy részleteiben sem fedezni fel hasonlóságot hiperekben kapható társaikkal.
Még ma is a szombati nap hatása alatt vagyok és azt látom, hogy nekik segítenem kell. Megszerettem a családot. Hozzájuk még mindenképp vissza fogok menni és már nagyon várom. Kicsit olyan, mintha Ők is barátok lennének.

Ügyfél és a teljesítéigazolás

Ezt muszáj kiírnom magamból, ma reggel az ügyfelem beállította a vérnyomásomat kávé nélkül (kicsit túl is tolta).
Megegyeztünk, hogy befejezzük a közös munkát, így lezártam az utolsó verziót, kitettem mindent élesbe és elküldtem neki a teljesítésigazolást xlsx-ben. Ma reggel belekortyoltam a kávémba, amikor a telefonom lefrissítette a leveleimet, látom, hogy jött válasz. Belekötött 3 feladatba, ami összesen 4 órányi munkát tett ki, hibajavítás mind:

1.
Feladat: "Bizonyos termékeket nem lehet a kosárba betenni"
Ügyfél: probléma úgy oldódott meg, hogy kiderült (xytól), hogy túl hosszú volt a név. Ezt kijavítottad? Most bármilyen hosszú lehet? Mi az ami miatt ez 5 órát vett igénybe?
Én: Ez általam derült ki, amikor a ****-eket nem lehetett kosárba tenni, a hiba feltárása és javítása 3 órát vett igénybe, most maximum 255 karakter hosszú lehet emlékeim szerint.
Ügyfél: ok. en mondjuk tudtam h gond ha hosszu a szoveg. akkor hosszabb lehet a szoveg, mint eddig vagy maradt a regi hosszusag?

Felhők elhessegetése

Kicsit viccesen hangzik a cím, a téma már annyira nem. Ha Microsoft account-tal használod a Windows Store-t, készülj fel, hogy a OneDrive (régen SkyDrive) integrálódni fog a gépedre, akár akarod, akár nem és ráadásul nem is akárhogyan! Windows 8.1 az oprendszer jelen esetben. Abba inkább ne menjünk bele, hogy érdemes-e felhőt használni. Aki szeretne használ, aki nem nem. Tfh jelen esetben én az utóbbi csoporthoz tartozom.
Történt, hogy tesztelési célból megnéztem egy szoftver Store-ból letölthető (teljes képernyős, mondhatnánk mobiltelefonra optimalizált) változatát és összehasonlítottam a desktop-ra szánt változattal. Az eredmény most kevésbé érdekes. Viszont utána megjelent a OneDrive. Kis ikon a tálcán az óra mellett, időnként syncelget felhőbe. De én nem is ilyen lovat akartam. A telepítés hevében meg is nyomtam a gombot, hogy nem szeretnék OneDrive-ra szinkronizálni (lehet, hogy pont ezzel értem el, a fene se tudja, nem hangsúlyozták ki annyira). A lényeg, hogy ott van és löki az adataimat (jelen esetben üres könyvtárakat) az éterbe.
Programs & Features-ben nem szerepel, de még csak a Windows szolgáltatások között sem találtuk meg. Az viszont ott figyel és csak szinkronizál. A Windows Store elindítása után megtaláltam a menüt, ahol a meg lehet szüntetni a felhasználóval való összerendelést. Így az áruházból már nem lehetett alkalmazást telepíteni, de a OneDrive még mindig szinkronizált.
Nem húzom tovább, sok-sok guglizás után a Settings -> PC Settings -> Accounts -> Your Account menüpontra a lokális keresőben találtam rá. Itt a live account alatt szereplő Disconnect gombra kattintva megszüntethetjük a szinkronizációt. Ezt a megoldást sehol nem találtam meg Google-ben. Érdekes.

Transmission vs. Deluge

Az egyik csatornán elkezdték adni a Rém rendes családot (Married with children), barátnőmmel elkezdtük nézni és annyira rákattantunk, hogy be is szereztem az összes évadot. NAS-nak egy Microserver N36L-t használok, a Raspberry Pi pedig wifin keresztül szedi samba share-ről a forrást. Tegnap este akadozni kezdett a videó lejátszás közben, nem volt kérdéses, hogy a Linux telepítő képfájlok seed-elése fogta meg a szervert, le is állítottam az összes torrentet, a videó lejátszása pedig folyamatos lett. Ma reggel néztem kíváncsiságból egy topot a szerveren, a processzor felét megeszi a transmission daemon. Mivel Windows a desktopom, olyan torrent kliens kell a szerverre, amihez van remote GUI Windows alá. A Deluge-ról tudom, hogy ez ilyen, egyik volt kollégám is használta nagy megelégedésre. Amint lesz időm, lecserélem és beszámolok az eredményekről.

Amit az ügyfél elvár

A napokban úgy alakult, hogy szoftvereket kellett kipróbálnom, ami azért érdekes, mert végre beülhettem kicsit a megrendelő székébe és átéreztem, hogy a megrendelő milyen szempontok alapján választ programot, amikor megoldást keres a problémájára. Persze ez nem pont ugyanaz, mint amit fejlesztőként átélünk, én például teljesen tisztában voltam azzal, hogy mit akarok. Így egy megrendelő szemszögéből írom le a fontosabb momentumokat.
Volt egy listánk, kb top 20 program a google találatokból, néhány fontosabb kritérium és egy jó ismerős, a relatíve szoros határidő. Nem volt kapkodás, de azért erősen tempózni kellett, hogy a lista végére érjek és összeálljon a helyzetjelentés (nameg ez a blog bejegyzés). Nem szántam hát túl sok időt egy-egy alkalmazásnak, letöltöm a trial verziót, nyomogatom kicsit, majd levonom a konklúziót. Pár év eltelt, mióta az utolsó trial verziós programot használtam és azóta sok minden megváltozott. Sokan élnek a business intelligence eszközeivel (ami nem azt jelenti, hogy intelligensen beszélünk az üzleti részleggel :) ). Manapság nem úgy van, hogy letöltöd a trial verziót és telepíted...de nem ám. A 10+ darabszámú listából kevesebb, mint 5 azaz öt alkalommal sikerült a klasszikus letöltöm-telepítem trial verziót beszereznem.
Aztán saját magam tapasztalhattam, hogy milyen alapvető hibákat követnek el cégek. Az első benyomás itt is nagyon fontos. Volt olyan weboldal, ami tele volt marketing bullshittel, sehol egy screenshot vagy bármi, olyan buzzwordok, hogy weben nagyon fontos a böngészőfüggetlenség. Hihetetlen. Már keserű szájízzel álltam neki tesztelni az alkalmazásukat, nem is lett pozitív kimenetele. Ebben a kontextusban nekem nagyon tetszett, amikor egy weboldalon egy rövid videóban SZEMLÉLTETTÉK a program kínálta lehetőségeket, amiket korábban felsoroltak. Azt kell, hogy mondjam, náluk a marketing osztály valami elképesztő szimbiózisban él a fejlesztéssel, a funkcióknak olyan neveket adtak, mint pl. "interactive dependency graph", amire azonnal kijön a bullshit bingo, de a videón megmutatják, hogy mire is jó és a jól megkonstruált videón keresztül én magam is beláttam, hogy ez egy kimondottan hasznos feature. Ritkán botlottam ilyen jól összeszedett oldalba, minden tiszteletem az Övék.
A következő lépés, keressük meg az oldalon a kipróbálható verzió letöltő linkjét. Egyszerű, böngészőben CTRL+F és beírjuk, hogy trial. Néhol ez sem triviális, de az esetek többségnél működik (a letöltőközpont letöltése, amivel aztán letölthetem a szoftvert kimondottan idegesítő és időigényes és feleslegesen bonyolult). Ami utána jött, az nekem teljesen új volt, egy contact formot kellett kitöltenem, mindenféle adatot megadva. Submit gomb megnyomása után az esetek 60%-ában megköszönték az érdeklődésemet és majd keresnek. Ezek azok az esetek, amik az idő hiánya miatt kiestek a pikszisből (voltak akik az időzónák miatti időeltolódás miatt nem lettek meghallgatva, Ők így jártak). Oké, hogy konverziót akarnak vizsgálni és bár nem én leszek a legnagyobb megrendelőjük, a későbbiekben sem fogom Őket választani nagy valószínűséggel a negatív tapasztalat miatt. Tapasztalatom alapján a személyes kontakt erőltetett felvétele nem javít az esélyeken, inkább ront. Volt, ahonnan azonnal felhívtak telefonon, beszélgettünk negyed órát, viszont a beszélgetés alatt nem tudtam, melyik szoftverről beszélünk, nem azonosította be egyértelműen. Aztán miután letettük a telefont, kiderült, hogy Ők is ígértek letöltő linket emailben, amit nem kaptam meg, pedig nem írtam el a címemet (pontosabban a FireForm nem írta el az email címemet). A két legrosszabb tapasztalat közül a kevésbé rossz az volt, amikor 2-3 órára a regisztrációt követően írtam egy levelet, hogy igényt tartanék trial licenszre, amire válaszként jött egy out of office üzenet, mely szerint december 23-ig szabadságon van a kontakt. A legrosszabb reakciót ma reggel olvastam, amikor is továbbítottak nekem egy levelet, amint az illető egy kolléganőjének ír, hogy hozzanak létre nekem trial licenszt. Csak onnan jöttem rá, hogy a levelet nem nekem írták, hogy nem vagyok Kathy és a subject FW-vel kezdődik.
Végül két szoftverre sikerült szűkítenem a listát. Mivel prezentálnom kell azt is, hogy a többivel mi történt, ezért Ők is indoklással bekerültek a beszámolómba. Ha esetleg később más dologgal kapcsolatban újra képbe kerülnek a most kiesett szoftverek, az lesz a mondás, hogy "az már a múltkor se volt jó" és esélyt sem adunk nekik, hogy bizonyítsanak.
Remélem, sokaknak segít majd ez az írás. Bár nem tartalmaz konkrétumokat, de a konklúziót le lehet vonni, amikor egy saját szoftvert elkezdünk terjeszteni.