saxus blogja

TIL: delegált használata esetén is érvényes a method override

Volt egy

ICommand Foo { get; private set; }

-em, amihez nem szívesen adtam volna protected settert, viszont valahogy felül kellett bírálnom egy leszármazott osztályban, hogy mit műveljen a Foo commandom, ha meghívják. Mivel úgy is DelegateCommand (szerűség)et kap, adta magát a kérdés, hogy vajon mi történik akkor, ha a delegáltként átadott metódust overrideolom. LinQPad-os kísérletem alapján működni látszik:

Ha már mindenki storaget épít mostanság...

... akkor mi is építünk egyet az olcsóság jegyében. Najó, inkább NAS-t, de végül is az is storage. :)

Jelenleg 2 db Dlink 320-as NAS teljesíti a feladatát nálunk és fogalmazzunk úgy, hogy nem vagyunk megelégedve velük. (De ebben is Linux van!) Plusz, további probléma, hogy a eddig fizikailag más helyen volt, viszont a jövőben egy helyen kellene 12 TB lemezhely.

Így gondoltam nézzük meg mit lehet főzni Supermicróból, ha már forgalmazzuk mi is. A SYS-5018A-MLHN4 nagyon szimpi lenne, leszámítva, hogy 1U-s házba csak 4 disk fér el, ami sajna igencsak teret szab a bővíthetőségnek, ráadásul jött az igény, hogy nem lenne hátrány, ha legalább egy RAID5-öt össze tudnánk hozni.

483M rekord gyorsan

Adott volt egy bináris log, adódott az ötlet, hogy nézzük meg, mit lehet vele kezdeni PostgreSQL-ben, lévén, hogy nagy is, sok is és jó lenne rajta mindenféle lekérdezést művelni.

Adott volt egy Java-s program, ami képes volt a bináris logokat beparseolni. Mondom, innen szinte pikk-pakk megvan a DB-be tolás. Első nekifutásra kb. 4k request/sec PreparedStatementtel a vasdarabon. Nos, ez elég harmatos.

Első ötlet: prepared statement mellőzése, Query kézzel történő építése (szerencsére dátum numerikus adat és egy pgsql enum volt csak benne) és tömbösítve 10E elem átadása. Egyből felpattant kb. 60E rekord/sec-re.

Open command prompt

WS2012r2-ben az új intézőnek a fájl menüjében vettem észre, hogy bejött egy "Open command prompt" menüpont. Kiderült, hogy ilyen már volt korábban is: Shift-et lenyomva a context menüben előjön egy "Open command window here". Gondoltam megosztom, hátha hasznos másnak is.

Forrás: http://stackoverflow.com/questions/378319/windows-explorer-command-prom…

Apro gondoloatok a hardverekrol

Eredetileg nem terveztem megirni ide, de ez a topic megadta a loketet.

Tegnap volt egy nagy megbeszelesunk az egyik gepunk cserejerol (tipikus barkacsgep: Asus szerverlap, desktop korites), mivel kezd egyre megbizhatatlanabbul mukodni (elmult egy evben eljutott oda, hogy ha lehuzzuk a villanyrol, BIOS elfelejt mindent, par hete a speci "PIKE" nevu slotra rakhato ASUS csomagolasu LSI SAS RAID vezerlo nyekkent meg) es egyebkent is WS2008+MSSQO2008-rol fut, amirol mar regesreg migralni kellett volna. (Ha valakit erdekel, Supermicro 6027R-TRF lesz helyette 2xE5-2620, 64G ram, 1T sima SATA HDD es 256G SSD storage az adatbazisnak.)

Amikor viszont a Microsoftnak jár ki nagyon a fkorbács...

Nem különösebben érdekelnek a billentyűzet kiosztással kapcsolatos hitviták: megszoktam, hogy Windowson a HU a default, mindenhol máshol meg US kiosztás (mondjuk OSX-en eleve használhatatlan az Apple féle HU). Ennek megfelelően a Windows berakja automatikusan az US kiosztást is, ami valószínűleg musthave a Magyar felhasználók 99%-ának (nem).

A nagyobbik baj viszont az, hogy időnként elkezdi lebeszélhetetlenül átváltani a default kiosztást. Hiába gyalulom ki teljesen az US kiosztást, következő újraindításkor a munkahelyi gépemen megint az US kiosztással fognak indulni a programok. Hiába csak a magyar van benn a listában, hiába az a default, el kell játszani újra azt, hogy felveszem az US-t, beállítom defaultnak, majd visszaállítom magyarra és törlöm megint az egészet. Az sem érdekel, ha ezer évente egyszer kell megcsinálni, akkor sem értem, hogy mi a szar ez.

Connection pool hhvm-pgsql-hez

HHVM tök jó dolog, ha az ember meg van verve egy nagyobb méretű PHP-ban írt projekttel és nem valami értelmes környezetben (.NET, Java, pl.) kezdték. Egyetlen hátránya, hogy nincs hozzá PostgreSQL csatoló alapból. Ezt mások már megpróbálták orvosolni. Annak viszont az a hátránya, hogy nincs benne perzisztens kapcsolat támogatása. Szóval kénytelen voltam összereszelni egyet.

Kalandozások Linuxföldén

tl;dr: az IT szívás. Ha nem vagy még informatikus, keress egy normális szakmát.

Hol volt, hol nem volt, volt egyszer a héten egy csodás hétfő, amikor még azt reméltem, hogy délelőtt sikerül itthonról befejezni valamit majd kipihent, kisimult arccal bemenni munkahelyre és beüzemelni azt. Aztán megcsörrent a telefon.

Checkpoint reached

Azt a gyökér faszkalapot, aki kitalálta ezt a checkpointos fasságot (az idióta konzolok miatt) és vele együtt a normális quicksave-t szanálta a játékokból, azt a farkánál fogva kellene fellógatni egy villanypózna tetejére a sivatagban.

Miért kell az összes létező játékot elbaszni ezzel? Az, hogy újra és újra meg kell csinálnom azt, amit már ezerszer teljesítettem az nem szórakoztatás, hanem céltalan büntetése a játékosnak. Az nem szórakoztatás, hogy az ember leülne este fél-egy órát pihenni, de a vége az, hogy maximum 15 perc után kibassza a francba az egész szart.

Multithreading

Ma már volt egy csörtém megint, hogy totál érdektelen, hogy mennyire takarékos az erőforrásokkal egy program, hanem sokkal érdekesebb az, hogy a meglévőket mennyire jól használja ki. Itt egy példa, feladat: SOS-ben transzkódolni FLAC-ból MP3-ba, mert a telefon csak azt ismeri. Adott egy Xeon E5-1620, 4 core 8 thread, ~40-50 fájl. Ez 8 threaddal megindítva egész gyorsan megvan. Ahaaaam, ha nem egy fogyaték írta volna a programot és írt volna bele multithread supportot, amit kiegészített volna annyival, hogy hány CPU mag van. A még nagyobb probléma, hogy valami csicsa szart sikerült elsőre találnom, amiben viszont azt megoldották, hogy ellenőrizze már le, hogy nem fut-e belőle egy példány. Hurrá. (De legalább ezt a posztot meg tudtam írni, haha.)

A halogénlámpa visszavág

Egyszer már tartottunk egy kis értekezést arról, hogy a halongénlámpa gonosz dolgokat művelhet a közelében található elektromos rágcsálókkal, de úgy néz ki van tovább is. Hétvégére hazanéztem szüleimhez, az installáció ott a következő: adott a régi 19"-os monitor, tőle balra az MBP-m, egér-billentyűzet USB hubbal (mert valaki az Applenál úgy gondolta, hogy 2 USB mindenre elég.), monitor felett polcon egy régi halogénlámpa. Nem tudom, hogy számít-e, de hosszabb használat mellett elkezd zizegni. Vizuálisabb típusoknak kép.

Pár gondolat a memóriáról

Nem rég IRC-en belekeveredtem egy vitába. A vita kiindulópontja az volt, hogy "iszonyú sok" az, hogy 7,7G ram volt kihasználva a gépemen (+12G cachelve). Mi foglalt 7,7G-t? Két pluginekkel jól megpakolt Visual Studio solutiononként kb. 40-50 projekttel, a fejlesztés alatt lévő szerver és kliens, egy PostgreSQL, Skype, egy jó sok lappal megnyitott Firefox (önmagában vagy 1-1,5G) meg még néhány aprólék. Az itthoni gépemben 32G ram van. Engem az se érdekelt volna, ha 31G-t használ ki.

Munkahelyi gépemben 8G ram van, ugyanez a felállás néhány egyéb dologgal megtoldva (3-4 excel, 1-2 word, outlook, eclipse, meg még néhány egyéb bazár) nagyjából ugyanúgy 7-7,5G ramot szokott kihasználni (bár ott már rak dolgokat a swapba is). Egyébként ugyanúgy nem érdekel, hogy 4G vagy 7G-t használ ki.

Ha Windows SDK 7.x nem megy fel...

...és ilyenek vannak a logban, hoyg:

03/26/14 11:04:09 DDSet_Status: LANGID: 1033
03/26/14 11:04:09 DDSet_Entry: ImmediateDispatch: DDSE_CA_Uninstall_CostInitializePre entry
03/26/14 11:04:09 DDSet_Error: Patch Hooks: Missing required property 'ProductFamily': Setup cannot continue.
03/26/14 11:04:09 DDSet_Warning: Setup failed while calling 'getDLLName'. System error: Cannot create a file when that file already exists.

Akkor:

"Had a similar problem which turned out to be that the SDK 7.1 does NOT install if you have a newer vcredist_x86.exe than version 10.0.30319 of Visual C++ 2010 x86 Redistributable... I had 10.0.30419 installed... removed it through control panel "remove programs" and then the SDK 7.1 installed."