The item is pre-advised, ez meg mit jelent?

Kínából rendeltem egy fasszentos bambusz párolót. az eddigi rossz tapasztalataimból kiindulva már alapból kértem hozzá nyomkövető számot (tracking number), hogy lássam, mikor és hogy nyeli el a csodálatos Királyi Magyar Posta a csomagot.
Meglepődve tapasztaltam, hogy Holland számot kapott (NL a vége). Rákerestem gyorsan a holland posta honlapján a csomagra és lekókadt a mosoly a szám széléről, mert csak ezt láttam:

The item is pre-advised

De ez mi a fenét jelent??? Mi az, hogy előtanácsolva???
Kis keresés után a Holland Posta Twitter bejegyzései között (hoppá, van ilyen a Magyar Postának???) megtaláltam a választ.
Lényegében arról szól, hogy a csomag kínai szállítója előre kér nyomkövető kódokat a holland Postától. Miután a hajó amivel küldik, kiköt, ezeket a nyomkövető kódokat megkapják és szépen felmatricázzák a megfelelő csomagokra. Ezután adják át újra a Holland Postának, aki ezután elindítja az európai útjára.
A fenti üzenetet akkor kapjuk, hogyha még a hajón van a termék, azaz már kiosztotta a Holland Posta a nyomkövető számot, de még nem kapta meg a hozzá tartozó csomagot. Ilyenkor várni kell türelmesen. Ha 2 hét után még mindig ebben az állapotban van, akkor a kínai céget érdemes megkeresni, hogy ugyan már nézzenek utána a csomagnak!

a magyar mentalitásról

Két hete bementem egy, a lakásunktól nem túl távoli céghez, akik Érd egyik legismertebb ablak-, ajtó kereskedése. Elmondtam, hogy az ablakhoz szeretnék fehér könyöklőt vásárolni. Átnéztem a lehetőségeket, majd megrendeltem négy darab könyöklőt. Kértem, hogy vágják méretre, hogy megkönnyítsem a saját dolgomat. A hölgy azt mondta, nagyjából egy hét múlva fognak elkészülni a megrendelt dolgok. Ezután megkérdezte, hogy ki akarom -e fizetni a teljes összeget, vagy előleget hagyok csak ott. Mivel nem akartam túlbonyolítani a dolgomat, ezért kifizettem a helyszínen. Valószínűleg itt rontottam el! A hölgy megígérte, hogyha elkészül, akkor jelezni fognak nekem telefonon.

El tellett egy hét ,a telefon nem jött. El tellett majd két hét, és még mindig nem hívtak a cégtől.

Ekkor felhívtam őket, hogy ugyan már mondják meg, mi tart 2 hétig egy könyöklő levágásában??? A telefont kezelő úriember nem tudott nekem segíteni, mert nem tudtam bediktálni a szerződésszámot, de eszembe jutott a hölgy neve, akivel a szerződést kötöttem. Azt ígérték, visszahívnak. Több mint egy óra múlva valóban visszahívott a hölgy, és jelezte, hogy elkészült a könyöklő, lehet érte menni. Szomorúan konstatáltam, hogy arról az aprócska tényről elfeledkezett, hogy azt ígérte, fel fog hívni, ha elkészülnek. Rendben, mondtam, akkor másnap reggel bemennék érte, 8 órára, mert a cég nyolckor nyit! Hangsúlyosan mondtam a nyolc órát, mert ha nem pontosan érek oda, akkor fél órát kell várnom a következő távolsági buszra. Reggel összeszedtem magam, mindent előkészítettem, hogyha megérkezek a cuccokkal, akkor utána rögtön le tudjak rohanni a buszmegállóba.

7:56 -ra értem a cég telephelyére, de egy árva lelket se láttam. 8:06 -kor még mindig a zárva tábla volt az ajtón, mozgást pedig nem lehetett látni az épületben.

8:10 -kor egy embert láttam, amint kicsit távolabb pakolászik. Egy perc múlva feljött és közölte, hogy ő a raktáros, nem neki kellene az üzletet nyitnia. Mondtam, hogy pont jó emberrel találkoztam, hiszen nekem már ki van fizetve, csak el kellene vinnem!

Sajnos az nem lehet! – közölte, miközben én az orra előtt lebegtettem a befizetési bizonylatot. Meg kell várni az ügyintéző hölgyet. Közben maga elé mormogva azt mondta, hogy jellemző, hogy csak ő ér mindig nyolcra be.

8:15 -re végre megérkezett az ügyintéző hölgy is, aki csak annyit mondott: Jaj igen, ki van már fizetve, ki lehet adni!

8:17 -re hozzá jutottam a könyöklőkhöz, és természetesen az orrom előtt ment el a busz, pár perccel később!

Tanulság:

  1. Ennél a cégnél soha többet nem vásárolok!
  2. Legközelebb csak előleget fogok kifizetni, így nekik is érdekük lesz, hogy menjek a termékért!
  3. Ha nem lesznek ott időben, akkor percenként fogom felhívni az illetékest!

Nyugdíjas cicaharc

Mai nap legviccesebb esemény reggel, a Móricz Zsigmond körtéren történt. 

A metró építése miatt a körtér egy részét lekövezik, ezért a Budafoki út fele lévő rész rácsokkal van lekerítve, ott kell az embereknek, mint a vágóhídon, közlekedniük a hatos villamoshoz.

Előttem pár méterrel egy 75 év körüli nyugdíjas néni totyogott, maga mögött húzva a kerekes szatyrát. Közvetlenül előttem egy pár évvel fiatalabb néni (72?), aki szorgosan pakolta a lábait egymás után, botjával pedig szinte törte az utat maga előtt, valószínűleg szerette volna elérni a sárga villamost!

Ahogy összetalálkozott a két néni, a hátsó (botos) belerúgott a kerekes szatyorba.  Természetesen nem szándékos volt, elvonta a figyelmét a Metropol újságot nyújtogató diákmunkás. A szatyros néni még meg se fordult, de már hangosan szitkozódni kezdett: -Hova a fenébe siet, miért nem kerül ki??

A botos néninek se kellett több, rá ripakodott a szatyrosra: – Nem az út közepén kellene húznia a kocsiját! És hogy súlyt adjon a felháborodásának, még egyszer belerúgott a kocsiba!

Ez volt az a pont, ahol a szatyros néninél elpattant a húr, és nagyot lódítva megütötte a botos néni lábát! 

Megkezdődött a lassított cicaharc!

A botos néni próbálta védeni a botjával a támadást, de helyette a szatyros néni kezére csapott, aki feljajdult, és igen csúnyákat mondott a botos néni felmenőire! 

A botos néni se volt rest, tovább lóbálta a szatyros néni orra előtt a botját, mint D’Artagnan, és erősen replikázni kezdett, aminek a lényege a szatyros néni szellemi színvonalának a metró mélységébe való betudása volt!

A közjáték 1 percig se tartott, de ezalatt megismerhették az arra járók a magyar nyelv olyan rejtett tartalékait is, amit normál esetben sosem használtak volna.

Végül a botos néni unta meg, és lépett le a helyszínről, de még egy utolsót rácsapott a kerekes szatyorra, amivel valószínűleg sikerült szétzúznia a piacon vásárolt tojások nagy részét!

Borssó Bisztró

Már régóta szemezek a Borssó Bisztróval. Igényes és különleges ételek, hozzá jóféle magyar borok… Mi kell még?

Végre adódott alkalom, konkrétan a Dinning City keretében meglátogattuk, és örültünk. 🙂

Nem volt túl nehéz megtalálni az éttermet, mert az ötödik kerületben viszonylag jól behatárolhatóak az éttermek. 🙂

A bisztró jól néz ki, jópofa az interior, nagy ólomüveg csillárral, régies asztalokkal és székekkel, de megtöri a zöld borsóra hajazó szín az egészet. 

Érkezésünkkor fiatal pincér sietett elénk, és a kabátjainkat elhelyezte a fogason, majd az asztalunkhoz kísért. 

A lehetőségek közül mindketten ugyanazt választottuk:

  • Póréhagymás burgonyakrémleves
  • Confitált sertés tarja burgonyatortával
  • Créme brulée

Mellé megkóstoltuk a házi szörpjüket, amivel a pincérnek enyhe fejtörést okoztunk, látszott, hogy ritkán kérnek ilyet a vendégek! 😀

Mielőtt megérkezett volna a leves, a séf egy kis meglepetéssel kedveskedett nekünk: házilag készített mini puffancs, hozzá habos fűszervaj és sült báránymáj, bazsalikomos polentával.

A máj hihetetlenül finom volt, és tökéletesen passzolt hozzá a polenta.

Pár percre rá már meg is érkezett a póréhagymás burgonyakrémleves. Kellemesen selymes, megfelelően fűszerezett de mégsem tolakodó ízek uralták az ízlelőbimbóinkat.

A következő fogás a konfitált sertéstarja volt burgonyatortával. A sertéstarja omlós volt, a burgonyatorta pedig mesterien elkészítve. A babérlevél ízét ügyesen elrejtették a burgonyában, mégis fel – fel tűnt, nagy örömet okozva az ízlelőbimbóinknak! 

Meglepődve tapasztaltuk, hogy kezdtünk jóllakni! Pedig elsőre nem tűnt túl nagy adagnak a felszolgált ételek.

Végül a vacsora levezetésére megérkezett a créme bruleé! A tetején roppanós karamellréteg, belül simulékony krém, pont olyan, mint amilyennek kell lennie! 

Elégedetten dőltünk hátra, minden nagyon finom volt!

Mind a vacsora-, mind a hely (hangulat, pincérek, dizájn) nálam 10 pontot ért el! Csak így tovább!

A Dal 2013

Nem néztem a Dal 2013 -at, de örömmel láttam, hogy néhány embernél kicsapta a biztosítékot Byte Alex produkciója! 🙂

Hogy mindenki megnyugodjon, íme a litvánok továbbjutó csapata, a Winny Puhh! 🙂

FTP támadás

Az elmúlt 4 hétben hatalmas mennyiségű FTP jelszó törést fedeztem fel a szerver naplójában. Próbálom értesíteni az érintett cégeket, de sajnos nem sikerült mindegyiket.

 

A törés nagyjából abból áll, hogy a szerver IP címéhez tartozó domain neveket próbálgatják végig (pl. keve, keve.info, www.keve.info), a jelszó pedig vagy ugyanez, vagy valami hasonló algoritmus alapján összerakott szöveg.

Egy példa:

Jun 20 06:26:22 www proftpd[5474] www.sagitta.hu (5ncomp.hu[94.199.180.120]): FTP session opened.
Jun 20 06:26:22 www proftpd[5474] www.sagitta.hu (5ncomp.hu[94.199.180.120]): USER lakasmento.hu: no such user found from 5ncomp.hu [94.199.180.120] to ::ffff:212.52.167.187:21
Jun 20 06:26:23 www proftpd[5474] www.sagitta.hu (5ncomp.hu[94.199.180.120]): FTP session closed.

Jun 20 06:30:37 www proftpd[5636] www.sagitta.hu (5ncomp.hu[94.199.180.120]): FTP session opened.
Jun 20 06:30:37 www proftpd[5636] www.sagitta.hu (5ncomp.hu[94.199.180.120]): USER nhlines (Login failed): No such user found.
Jun 20 06:30:37 www proftpd[5636] www.sagitta.hu (5ncomp.hu[94.199.180.120]): FTP session closed.

Jun 20 12:22:03 www proftpd[19617] www.sagitta.hu (5ncomp.hu[94.199.180.120]): FTP session opened.
Jun 20 12:22:03 www proftpd[19617] www.sagitta.hu (5ncomp.hu[94.199.180.120]): USER keve.info: no such user found from 5ncomp.hu [94.199.180.120] to ::ffff:212.52.167.187:21
Jun 20 12:22:03 www proftpd[19617] www.sagitta.hu (5ncomp.hu[94.199.180.120]): FTP session closed.

Döbbenet

A System of a Down nevű zenekarnak van egy száma, aminek az a címe, hogy: Erőszakos pornó (Violent pornography). Mivel a zenekar igen csak előkelő helyen szerepel a kedvenc zenéim között, ezért ezt a számukat megosztottam.

Legnagyobb meglepetésemre, az elmúlt 1 hónapban vagy 30 ember nézte meg a bejegyzést, de nem a SOAD miatt, hanem az erőszakos pornó reményében. Egyértelműen látszik, hogy a google keresőjébe ezt a két szót beírva reménykedtek abban, hogy ilyen jellegű tartalmat fognak találni.

EMBER!!!! Milyen beteg és bizarr világban élünk, hogyha már csak az erőszakos pornó tud felizgatni??!?

 

%SZÉL%, %SZÉL%

Nem most készült, talán van 1 éve, de akkor is csak azt tudtam mondani, hogy a tulajdonos “zseniális”!  Ha valaki nem értené a SALE szót, ami kiárusítást jelent, annak leírták magyarosan! 😀

NHibernate generátorok

Aki már készített adatbázisokkal szorosan együttműködő, esetleg még kliens szerver (3-tier) alkalmazást, az tudja, hogy az adatok megkülönböztetéséhez az egyediség a kulcsszó.

No de mi is az egyediség?

Egy olyan egyedi jellemzője a relációs adatbázisban elhelyezkedő adatoknak, amely egyszer, és megismételhetetlenül képződik egy tételhez, és a tétel azonosíthatóságát kizárólagosan biztosítja. Azaz, ha van 1.000.000 adatunk, akkor egy millió egyedi azonosítónak kell lenni, hogy pontosan meg tudjuk határozni azt az egy tételt, amire nekünk szükségünk van. Ezt egyedi kulcsnak, szép angol nevén primary key -nek hívják. Mi lehet egyedi kulcs? Ha egy személyről beszélünk, egyedi kulcs lehet az adóazonosítója, a személyigazolvány száma, vagy a TAJ száma. De mi van, ha számokról beszélünk? Hogyan lehet egy számhalmaznak egyedi azonosítója?

A nagy relációs adatbázis kezelő rendszerek segítségünkre vannak, úgynevezett egyedi kulcs generátorokkal. Ezek lehetnek HASH kódok, egyedi számok, vagy egyszerűen egy GUID.

De ha mi nem Oracle -t, MSSQL -t, vagy IBM DB2 -t használunk, akkor már nincs is lehetőségünk ilyen egyedi kulcsok használatára?

De igen, ha az NHibernate Generator -át hívjuk segítségül.

Mire is valók az NHibernate generátorok? Segítségükkel egy – egy tételhez egyedi kódot, számot tudunk hozzárendelni, így a visszakereshetősége biztosan működni fog.

És most lássuk, milyen lehetőségeket biztosít számunkra az NHibernate! Az NHibernate előre elkészített generátor osztályokkal segíti a munkánkat, illetve biztosít egy egyedi, saját magunk által megírt generátort is beleilleszteni a rendszerbe.

increment: A legegyszerűbb egyedi kulcs készítő. Egy számot növel, így lesz minden egyes tételnek új egyedi kulcsa. Azaz, ha beszúrjuk az első adatot, akkor ez a szám 1 lesz. Ha beszúrjuk a második adatot, akkor ez a szám 2 lesz, ha a harmadik adatot, akkor 3. Ha töröljük az első adatot, és beszúrunk még egyet, akkor ez a szám 4 lesz. És így tovább. A mező típusától függően ez több milliárd egyedi kulcsot biztosít. No de akkor miért nem ezt használja minden rendszer? Azon rendszerek, ahol a gépek és az adatbázisok fürtözve (cluster) vannak, ez a szám ismétlődhet a fürt egy – egy elemében! Azaz elképzelhető, hogy két, teljesen különböző adat ugyanazt az egyedi azonosítót kapja meg. Arra, hogy ez miért így történik, túl rövid ez a bejegyzés! De higgyed el, kedves olvasó! Hogyan definiáljuk?

<id name=”Id” type=”Int64″ column=”uid”>
<generator class=”increment“>
</generator>
</id>

identity: Ez a generátor csak a DB2, MySQL, MS SQL és a Sybase szerverek alól érhető el, ahol van egy speciális rekord típus, az indentity. Az adatbázis által visszaadott típus a Convert.ChangType eljárással alakítja megfelelő típusúvá. Érdekessége ennek a generátornak, hogy az NH2.1 -től ellenőrzi, hogy a RDB tudja -e kezelni az identity értéket, ha nem, akkor megpróbálja szekvenciaként értelmezni. Ha így se megy, akkor trigger típusúként próbálja kezelni. De ha a felhasználónak saját egyedi generátora van, akkor azt a IdentityStyleIdentifierGeneratorClass  függvény felülbírálásával (override) tudja felüldefiniálni!

<id name=”Id” type=”string” column=”uid”>
<generator class=”identity“>
</generator>
</id>

sequence: A szekvencia a IBM DB2, PostgresSQL és az Oracle (illetve a Firebird triggerrel megfejelt) egyedi kódsor készítőjének hívó generátora. Azaz ezek a rendszerek egy teljesen egyedi szekvenciát tudnak létrehozni és átadni. Az adatbázis által visszaadott típus a Convert.ChangType eljárással alakítja megfelelő típusúvá.

<id name=”Id” type=”string” column=”uid”>
<generator class=”sequence“>
</generator>
</id>

hilo: Az egyik újonnan felfedezett kedvencem. A segítségével egy szerver-, és egy kliens oldali egyedi azonosítót lehet készíteni, amelyet aztán összemos, és így keletkezik egy teljesen egyedi kód. Egy példával szemléltetem: A kliens alkalmazás beszúr három új sort. A hilo -nál beállítottunk a max_lo értékét 10 -re. A sorok relációban vannak egymással, például egy dolgozó adatai, és telefonszámai. Ilyen esetben, a dolgozó adatainak az NHibernate 1 -es számot generálja. A kliens 01 -et. Így a dolgozó egyeid azonosítója: 101. Az első telefonszám 102, hiszen a kliens 02 -t generált hozzá, míg a második telefonszám 103 lesz. Ezzel a módszerrel az egy tranzakción belüli tételeket gyönyörűen nyomon lehet követni! Fontos, hogy ezt a generátort nem szabad akkor használni, hogyha a csatlakozási adatokat a felhasználó adhatja meg!

<id name=”Id” type=”Int64″ column=”uid”>
<generator class=”hilo“>
<param name=’table’>idgenerator</param>
<param name=’column’>Id</param>
<param name=’max_lo’>10</param>
</generator>
</id>

seqhilo: Ez a generátor a hilo algoritmust vegyíti a nevesített adatbázis szekvenciával. Azaz az adatbázis egy szekvenciát ad vissza, amihez a kliens oldal hozzádobja a saját egyedi kódját.

<id name=”Id” type=”Int64″ column=”uid”>
<generator class=”seqhilo“>
<param name=’sequence’>IdSequence</param>
<param name=’max_lo’>100</param>
</generator>
</id>

uuid.hex: A System.Guid függvényt hívja meg,  majd a ToString() függvény segítségével egy egyedi Guid -ot (egyedi globális azonosítót: Global Unique Identifier) képez. A szöveg hossza a formátumtól függően változhat.

<id name=”Id” type=”string” column=”uid”>
<generator class=”uuid.hex“/>
</id>

uuid.string: Szintén Guid készítő, de ez az új System.Guid függvényt használja, amely egy byte tömböt ad vissza, és ezt konvertálja a ToString() segítségével szöveggé.

<id name=”Id” type=”string” column=”uid”>
<generator class=’uuid.string‘/>
</id>

guid: Újabb Guid generátor, ami az új System.Guid -ot használja, és az általa kiköpött szöveget menti le!

<id name=”Id” type=”string” column=”uid”>
<generator class=’guid‘/>
</id>

guid.comb: Az új System.Guid függvényt használja, de a generált kód Jimmy Nillson által leírt módon jön létre.

<id name=”Id” type=”string” column=”uid”>
<generator class=’guid.comb‘/>
</id>

native: A relációs adatbázis kezelő saját egyedi kulcs generátorát használja. Ilyenkor rábízza magát az RDBS -re, és az onnan kapott értéket tekinti biztosan érvényesnek!

<id name=”Id” type=”string” column=”uid”>
<generator class=’native‘/>
</id>

assigned: Ezt akkor alkalmazza az NHibernate -et használó programozó, hogyha saját, egyedi azonosítót akar adni az adatainak. Ilyen példa az okmányirodában a dokumentumokra felvezetett egyedi kód. Ezt egy megadott algoritmus számolja, ami biztosan egyedi kódot ad vissza!

<id name=”Id” type=”string” column=”uid”>
<generator class=’assigned‘/>
</id>

foreign: Az egyedi kulcsot egy idegen táblából veszi. Ritkán használatos, csak az egy – egy kapcsolatoknál lehet igazán használni!

<id name=”Id” type=”string” column=”uid”>
<generator class=’foreign‘/>
<param name= ‘property’>Employee</property>
</id>

1 2