2013. december 29., vasárnap

Instead of RoLa :D.

Title of idea (in 2010, maybe i rewrite this...)
2.) A new, more efficient way of intermodal(railway/highway) transportation.

Exploit the benefits of both railway and highway transportation and minimize their drawbacks by optimally mixing the two methods.
Railway transportation between two points is cheaper and more environmentally friendly, than highway transport, however the later has the advantage of higher flexibility.

Below we describe the case of single delivery of goods between two locations, however the method can be generalized to multi point delivery as well.
Suppose that a company having only a single tractor has to deliver N trucks of goods, to a location (B) that is M km away from the starting point (A) on road and after that the tractor has to return to A. Suppose also that the combined distances of nearest railway stations from points A and B is R., while the distance between these stations over the railway is L, and the cost of transporting a truck 1 km on road is F_road, and on railway is F_rail. See explanatory figure 1. It is widely accepted that F_rail <F_road.

If the company would transport the trucks over highway it would mean N turns and 2NMF_road cost.
Alternatively if a railway service would exist which would involve special long carriages that could fit in a truck, than the company could subscribe to this service and the tractor may deliver the trucks one after another to the nearest railway station at A’, load the railway carriages one by one, and then the tractor is put on the train as well (together with the last truck). Once the train arrives to the station nearest to B than the tractor again delivers the N trucks one by one to point B. In this case there will be N-1 turns both at A and at B, thus altogether 2N, and the overall cost is (2N-1)RF_road+LNF_rail+MF_road. As can be seen the mixed way of transportation is less costly if
(2N-1)RF_road+LNF_rail+MF_road) < 2NMF_road, or
(2N-1)RF_road+LNF_rail<(2N-1)MF_road,
R<M-LNF_rail/(2N-1)F_road.
To get a weaker but simpler condition we can assume that N>>1, and if F_rail is overestimated by assuming it to be the same as F_road, then the mixed transportation will be more cost efficient if
R<M-L/2.
The above condition can be easily probed e.g. over electronic maps of the internet for any specific A and B location of interest.
For this service to work buffer areas have to be developed at the railway stations where the trucks could be accumulated until the loading of the train. Also the special railway carriages needs to be developed (see schematic figure 1 below), where the tractor can load the truck on the carriage (with reverse motion from the side of the carriage), and which would have means to be locked e.g with a code key (the service provider would supply the code) . Finally some IT background needs to be in place for the booking of the buffer area, obtaining accurate time table information and for the ordering of the service, (the same conditions that are at place for the already existing types of intermodal transportation).

The above described case of point to point delivery can be extended to multi point scenario as well, similar to the distribution of goods of large supermarket chains from a central warehouse.
The main difference between the described idea and the already existing types of intermodal transportation like RoLa (http://en.wikipedia.org/wiki/Rolling_highway) is that in our case only a single tractor is involved in the transportation. Instead of the high dead weight of many tractors on the train it involves only a single tractor for many trucks, and also the loading of carriages is more simple than in the case of RoLa, and in length the two methods are comparable.

The above described way of transportation could be beneficial for logistics companies, (even small ones), and also for railway companies, because of the profit coming from this service. Apart from the commercial advantage of the involved parties, general public would also benefit by the smaller environmental impact and smaller load on the highways.


2013. december 16., hétfő

Csapófa algoritmus

Szeretek kitalálni dolgokat.....
(Tegnapelőtt láttam az egyik kedvenc ötletemet kivitelezve.... A Cargónak dolgoztam néhány éve és egyik reggel autóval befelé menet hallgattam egy riportot a mentősökről, tűzoltókról, mozdonyvezetőkről, ütközésekről. Különösen az ütött szöget a fejembe hogy a galád "késsen el mindenki ma, mert úgy döntöttem hogy megküzdök a mozdonnyal" versenyző még integetett is a mozdonyvezetőnek, aki persze nem tudott megállni... Nosza, szereljünk légzsákot a mozdonyra. Az egyik mozdonyvezető meg is  ütközött ezen? Minek légzsák? Ja? Kívülre? Na szóval másoknak is járt ezen az agya és kísérletképpen szereltek is fel egyet, igaz ők autóval ütköztették.....) 
Ritkán adódik meg az hogy  nem csak a magam szórakoztatására ötlök ki valamit, hanem parancsszóra kell ezt megtenni.

Amikor másodjára a MÁV-hoz kerültem (még a múlt évezredben, 1995-ben vala ez), rögtön belecsöppentem egy érdekes, igaz félig külsős projektbe. Ma már nincsen olyan megkötés amivel akkor szembe kellett néznünk, de két számlán kellett keresztül menjen szinte minden utalás, mivel az önelszámoló egységek külön könyveltek, a tetejébe eléggé sztochasztikusan voltak elosztva a bankok az egységek között. 

Itt csinálj te egyszerűen cash pool technikát :). 

Adva volt a feladat, hogy az utalásokat úgy kell csoportosítani, hogy a sorrendiség maradjon, de úgy történjenek meg a kifizetések, hogy lehetőleg ne legyen az ellátmány adásnál bankközi átutalás.

Te vagy a matematikus, ez a te dolgod :D.
Szimplex algoritmus, Gomory módszer, tanultam én ezt, ráhúzzuk a feladatra és kész.
No de nem tudtam ráhúzni. Egyre többet gondolkoztam a dolgon, egyre kevéssé éreztem hogy haladnék előre. "Idő telik, becsület fogy", édesapám kedvenc mondása, és ebben az esetben ez sajna erősen aktuális volt... 
Volt persze más dolgom is, a rendszerrel kapcsolatosan egyébként is, a napi munka is, meg iskolába is jártam épp, no meg a Autóklubos programmal is törődni kellett... De egyre több erőforrást allokáltam erre a feladatra, lassan olyan voltam mint egy alvajáró. Remélem nem motyogtam :).

Ami ebből érdekes, az az amikor a tudatalattim "átadta" az eredményt. Liftben mentem felfelé a BEIG-ben amikor is beugrott. Egyszerűen tudtam hogy megvan a megoldás, és jó is. Azt az eufórikus érzést kívánom hogy próbálja ki mindenki :D. 
Persze azért miközben leprogramoztam, néha elkapott a kétely, amivel Csabit a sírba kergettem. Időnként felkiáltottam hogy nem jó az egész, majd néhány perc múlva azt hogy de, mégiscsak.... 
Elmagyarázni akkor még végképp nem tudtam, pedig roppant egyszerű az egész.

A probléma ugye az volt, hogy meghatározott sorrendben kellett kielégíteni az igényeket amelyek feljöttek a központba - ez is érdekes egyébként, mert nem nagyon csináltak addig olyat az országban amit mi míveltünk, kettős privát kulcsos auth, és egyéb nyalánkságok, arról nem is beszélve hogy 3 pénzügyi rendszert szolgáltunk ki úgy hogy nem állt egy napot se az egész 10 év alatt, ami nem kis szó - és úgy elosztani őket hogy lehetőleg a telephelyek saját bankszámláin keresztül "folyjon' a pénz.

Az ötlet a következő volt:
  • Először nézzük meg hogy mennyi pénz van összesen.
  • Aztán első körben addig menjünk sorrendben a tételeken, ameddig el nem érjük, illetve meghaladjuk ezt az összeget, és mindegyik számlához "írjuk" hozzá ezt, ahol ösvény van. Ez lesz majd a "csapófa".
  • A második körben ugyanezt tesszük, csak ekkor az összes ösvényhez tartozó lehetőséget levonjuk, és kiválasztjuk azt az egyet, ahol a csapófa a legközelebb van a kupac tetejéhez.
Később persze nem értettem hogy ezen miért gondolkodtam annyi ideig :D.

Ábrákban vázolva (az akkori banknevekkel ;-), de nem volt odaírva mind egyébként se....):

Az első menet már lefutott, ennek hatását a színes téglalapok elhelyezkedéséből láthatjuk. Az éppen utalható pénz nagyságát a lila négyzetek mutatják.


 Az osztható pénz a DAEWOO banknál csökkent ( a fehér téglalap).


 A szürke téglalapok az ideutalt - osztható pénz nagyságát mutatják.



 A választás mindíg a kisebb szám alapján történik.







 Egyenlőség esetén az osztható pénz nagysága dönt.



 Ez érvényes a pénz elfogyása esetén is ( a nullánál minden nagyobb...).



 A zöld és világoskék téglalapokkal jelölt utalások az MHB-n keresztül mennek el, egy tétel kimarad.



Ennyi :D.
A nüanszokra  nem térek ki nyilván, az messze vezetne, például alkalmazható ez a módszer dinamikusan is, gubancot okoz ha nagyok az eltérések az összegek között, etcetera, etcetera...
Hátha valakit inspirál ez, szerintem nem csak erre a feladatra jó, pláne hogy az eredeti feladat már nem is létezik. Integrált rendszernél nem érdekes a telepi utalás például.....





2013. november 27., szerda

Egy kis javascript okosság :D.

Dátumot kellett bekérjek.
Félelmetes hogy ez mennyire "bonyolult" dolog a html világban....
Beleástam magam a témába, nem volt nagy kedvem szuttyogni a juery-vel, meg nem is tetszett annyira.
A html5 jó volna, de nem támogatja senki se.

De találtam egy nagyon jópofa megoldást a neten, ki is pofoztam magamnak, leírom ide hogy el ne feledjem, meg hátha jó lesz még másnak is ;-).
Nagyon tetszik az ötlet, bár ahhoz hogy használható is legyen, azért kellett rajta molyolni.
A validálást egy gombra tettem rá, nincs "befejezve", de látszik hogy szépen készít belőle egy dátum objektumot és vissza is írja. Ha az elvetemült user február 52.-ét ír be, abból bizony március valahanyadika lesz szökőévtől függően. Ati lusta, tehát a hónap dd formátumú, de a vezető nullát odabiggyesztjük ahova kell ;-).
Hmmmm.... Hogy kell ebben a blogmotorban forrást beilleszteni????
No mindegy...

Innen szedtem az eredetit :D.
Update: találtam egy jó formázó scriptet, gugli rulez :D.

        <!DOCTYPE html>
        <html>
        <body>
        <input
            type="text"
            name="date"
            placeholder="éééé.hh.nn"
            id=datumunk
            onkeyup="
                var v = this.value;
                if (v.match(/^\d{5}/) !== null) {
                    this.value = v.substr(0,4) + '.'+v.substr(4,5);
                    v = this.value;
                };
                if (v.match(/^\d{4}\.\d\./) !== null) {
                    this.value = v.substr(0,5) + '0'+v.substr(5,5);
                    v = this.value;
                }
                if (v.match(/^\d{4}\.\d{3}/) !== null) {
                    this.value = v.substr(0,7) + '.'+v.substr(7,2);
                };
                if (v.match(/[^\d\.]/)!== null) {
                   this.value=this.defaultValue;
                }"

            maxlength="10"
        >
        <p type="text" id=idebele>dddd<p>
        <input type="button" onclick="
               var ideobj=document.getElementById('datumunk');
               var ide=ideobj.value;
               var datum_id_1 = new Date();
               datum_id_1.setFullYear(ide.substr(0,4),ide.substr(5,2)-1,ide.substr(8,2));
               document.getElementById('idebele').innerHTML=datum_id_1.toLocaleDateString();
           ideobj.value=datum_id_1.getFullYear()+'.'+('0'+(datum_id_1.getMonth()+1)).substr(-2,2)+'.'+datum_id_1.getDate();
        //document.getElementById('idebele').innerHTML=ide.substr(0,4)+':'+ide.substr(5,2)+':'+ide.substr(8,2);  "
        </body>

    </html>




A végül kirakott kód eredménye alant. (javascriptet nem árt engedélyezni......) 
A blogmotor ügyesen kinyeste a javascriptet innen....... Sebaj, az eredeti oldalon ki lehet próbálni, meg ott a végleges forrás is. Érdemes kipróbálni hogy mi történik ha nem valid dátumot írunk be ;-).
A kódot is kivettem, mert itt szétesik. (Forráskód prefix meg nincs erre, vagy én nem találom, tulajdonképpen a kettő mindegy is...) Majd megnézem hogy hogyan lehet egyszerűen ide kódot beilleszteni, vagy blogmotort fogok váltani. Nincs kedvem szuttyogni ezzel, ha magam akarok magamnak környezetet teremteni, akkor a többi sallang se kell, egy tinymce-t azért be tud az ember illeszteni magának ha nagyon akar....
Morgás visszavonva.  
<!DOCTYPE html>
<html lang="hu">

<body>
<script>
function f_szamol(m_mit)
{
  var m_sz='012345678907894567897653456789';
  var ertekvissz=0;
  var m_vissza='';
  var m_vissza2='';

  var x='we';
  var c_mit=m_mit.toString();
  for (var j=0;j<21;j+=10)
   { for (var i=0;i<c_mit.length;i++) { m_vissza+=m_sz.substr(Number(c_mit.substr(i,1))+j,1);};
       ertekvissz+=Number(m_vissza);
       m_vissza2+=m_vissza;
       m_vissza='';
    };

return ertekvissz;
}
</script>
<p>Születési dátum :
<input
    type="text"
    name="date"
    placeholder="éééé.hh.nn"
    id=datumunk

    onkeyup="
        var v = this.value;
        if (v.match(/^\d{5}/) !== null) {
            this.value = v.substr(0,4) + '.'+v.substr(4,5);
            v = this.value;
        };
        if (v.match(/^\d{4}\.\d\./) !== null) {
            this.value = v.substr(0,5) + '0'+v.substr(5,5);
            v = this.value;
        }
        if (v.match(/^\d{4}\.\d{3}/) !== null) {
            this.value = v.substr(0,7) + '.'+v.substr(7,2);
        };
        if (v.match(/[^\d\.]/)!== null) {
           this.value=this.defaultValue;
        }"

    maxlength="10"
>

</p>

<input type="button" value="Számol" onclick="
       var ideobj=document.getElementById('datumunk');
       var ide=ideobj.value;
       var datumocska = new Date();
       var osszegek= [[0,0,'id_szellemi'],[0,10,'id_lelki'],[0,20,'id_fizikai'],[0,0,'id_arany']];
       var szamolos='012345678907894567897653456789';
       datumocska.setFullYear(ide.substr(0,4),ide.substr(5,2)-1,ide.substr(8,2));
       ideobj.value=datumocska.getFullYear()+'.'+('0'+(datumocska.getMonth()+1)).substr(-2,2)+'.'+datumocska.getDate();
      var amitszamol=datumocska.getFullYear().toString()+(datumocska.getMonth()+1).toString()+datumocska.getDate().toString();

  for (var i=0;i<amitszamol.length;i++)
     {
          for (var j=0;j<3;j++)
            { osszegek[j][0]=osszegek[j][0]+Number(szamolos.substr(Number(amitszamol.substr(i,1))+osszegek[j][1],1));
            }
     };
  for (var j=0;j<3;j++)
     {
        document.getElementById(osszegek[j][2]).innerHTML=osszegek[j][0];
        var oszzstrtmp=osszegek[j][0].toString();
        for (var i=0;i<oszzstrtmp.length;i++)
            { osszegek[3][0]+=Number(oszzstrtmp.substr(i,1));
            }
      };
document.getElementById('id_arany').innerHTML=f_szamol('12');
aranyk=f_szamol(datumocska.getFullYear().toString().substr(0,2))+' '+f_szamol(datumocska.getFullYear().toString().substr(2,2))+' '+f_szamol(datumocska.getMonth()+1)+' '+f_szamol(datumocska.getDate());
var osszeg=0;
for (var i=0;i<aranyk.length;i++)
    {
      osszeg+=Number(aranyk.substr(i,1));
    };
document.getElementById('id_arany').innerHTML=osszeg.toString();

  "
>


<h4><i><p align="center" > Rezgésszámok</p></i>
<table border="2">
<tr>
<th><font color="#8B008B"> Szellemi:</th>
<td id=id_szellemi>----</td>
</tr>
<tr>
<th><font color="#FF1493"> Lelki:</th>
<td id=id_lelki> </td>
</tr>
<tr>
<th><font color="#8B0000">Fizikai:</th>
<td id=id_fizikai> </td>
</tr>
<tr>
<th><font color="#DAA520">Arany közép:</th>
<td id=id_arany> </td>
</tr>
</table>
</body>
</html>

2013. november 13., szerda

Az odaseneki tabletta és más huncutságok

Igazából az odaseneki a "kereskedelmi" neve lett volna, de odáig nem jutottunk el....

Hol volt hol nem volt, volt egyszer egy nagy ERP rendszer bevezetés a cégnél, és előtte egy másikat vezettünk be, hogy már egy integrált rendszerből tudjunk átállni a másikra.
(Hülyeségnek hangzik, pedig nem az. Nem integrált rendszer -> ugyanannak a cégnek az integrált rendszere -> másik integrált rendszer. Kevesebb a macera.)

No de nem csak ez történt arrafelé, hanem kiadták a központban a parancsot hogy spórolni kell. Mindenkinek. Nálunk ez úgy valósult meg hogy a három liftből csak egy üzemelt, valamint az épület hűtését lekapcsolták 4 után. Ami annál az épületnél durva hatású volt nyáron, hiszen az egész tiszta üveg, nem véletlenül volt mindenhol légkondicionáló berendezés. Este hatra már vidáman 30 fok felett volt a hőmérséklet, ami nyilván nem zavarta azokat az embereket, akik már otthon voltak. (Azért mint utólag megtudtam volt a dologból probléma, nem mindenkinek bírta ezt a szervezete...)
Megjegyzem hogy elég sok pénzt megspóroltak ezzel, aminek az lett az eredménye hogy megsimogatták a vezetőnk fejét, és az irodaház költségkeretét lecsökkentették a spórolt összeggel, akik meg nemhogy spóroltak volna, hanem túlköltekeztek, azokra meg morcosan néztek, és emelkedett a költségvetésük. Bázis szemléletű gazdálkodás. Akkor nagyon morcos voltam erre, de nem is olyan egyszerű egy kiterjedt cégnél megsaccolni hogy mennyibe kerül például egy villanykörte csere.  Mert más lehet egy távoli helyen, ahova ki kell menni, esetleg meg kell bontani ezt, azt, vagy nincs belső ember, mint egy irodaházban ahol van álpadló, álmennyezet, esetleg raktár, karbantartó... És ez csak egy körtecsere. Erre van a decentrum, a vezető, meg a bázisszemlélet. No mindegy, nem ez a lényeg itt ;-).
 No de nem mindenki volt ám otthon :D! Ha új rendszert vezetnek be nálad, és te leszel a rendszer gazdája mind unix, mind dba, meg egyéb okból, oldalról is, akkor ott kell legyél a kellemes hőfokú irodában. Később döbbentem rá, hogy a külsős cég cserélgette az embereit, mi viszont Csabival minden nap ott voltunk, nagyon sokszor hajnalig. Élveztük mi ezt, mi az egy számítástechnikusnak aludni egy csöppet a földön, asztalon, ameddig a dump lemegy, a KPG interfész csiszolódik, közben irigy hónaljmirigyet hallgatva :D.

Gondolom a srácok beszélhettek rólunk benn a cégüknél, és egyszer az egyikük hajnaltájt megkérdezte tőlem hogy 
- Hogy bírjátok ezt?
Nem értettem a kérdést. 
- Mit?
-Hát ezt.
És  körbemutatott. Sokáig tartott ameddig felfogtam hogy nem viccel.
- Semmi gond. Ha nem érezzük jól magunkat, bekapunk egy lesz..rom tablettát és kész. Csak vigyázni kell vele, mert ha túladagoljuk, akkor olyan dolgokat is le...., amit nem kéne.
A srác furán tekintett rám. Van az úgy hogy ismersz valakit, legalábbis úgy gondolod hogy ismered, aztán kiderül róla hogy van vele valami. Nem tudod hogy micsoda, de valami gázos. Ez az Attila szed valamit. Óvatosan kérdezett rá, hogy egészen pontosan mit szedek.
- Mondom, lesz...rom tablettát. Tessék, vegyél te is.
Mutattam neki az üres tenyeremet, elvettem róla a semmit, feldobtam és "lenyeltem". Majd még egyet. Kacagott.

A rendszert bevezettük, sőt az Oracle Financials migrálás is lement már javában, sőt a Y2k mizérián is bőven túl voltunk, amikor valamiért beszéltem telefonon a sráccal.
Tudod mekkora sikere van a tablettádnak? Ha valaki bemegy egy főnökhöz és miután kijön feldobja a semmit és bekapja, mindenki tudja hogy mit vett be :D......
Elgondolkodtam ezen. Ha virtuális állapotában ennyire kelendő, csinálni kellene. 
Neki is láttam az egyik barátommal aki DTP-vel foglalkozik meg is terveztettem hozzá a logót, meg kiterveltem hozzá elég sok mindent. 
Csak sajnos beleestem abba a csapdába hogy ott kerestem problémát, ahol nem volt. Azt hittem hogy kell hozzá OÉTI szám vagy mi, és a hivatal gondolata is elrettentett.
Ma meg már lehet kapni. Igaz hogy nem oda-seneki nek hívják, és az eredeti név nem az L betű, az ESC gomb meg a 3-as kombinációjából áll össze, de ugyanúgy gyümölcscukor... (A Rufftech-nél hozta egyszer csak a főnököm be, és lecsapta az asztalra elém. A felvételi elbeszélésen ugyanis szóba került ez a sztori, emlékezett rá...) De annyi haszna van a dolognak hogy megszereztem az L3.hu domaint ;-).
Megkerestem a régi logót. Pásztor Zoli munkája, szerintem jó :).




 

2013. november 12., kedd

A révész

Hat éves koromban még nem tudtam úszni. 

Mindez nem akadályozott meg bennünket abban hogy a Szamos folyó szabad strandjára lemenjünk, szigorúan csak addig ameddig nem mély :).
Pedig fontos a pontos hely, mert volt a folyón keresztben egy kötél, amin keresztül egy idősebb bácsi - legalább is nekem abban a korban idősnek tűnt - révészkedett, a csónakot valami csörlőszerűvel vontatta.
Nekem ez nagyon tetszett, és már akkor is nagyon szerettem beszélni, szóba elegyedtünk.

Vannak az életben fontos pillanatok. Talán érezzük az adott percben hogy ez most az, talán nem, de később mindenképpen tudjuk. (Aztán gyakran csak annyit tudunk róla hogy az a pillanat elillant ;-).)

Két dolgot mesélt el az öreg.
"Tudod-e fiam, hogy mit kell csinálni akkor, ha elkap az örvény?"
Naná hogy nem tudtam.
"Sokan kapálóznak, összehúzzák magukat, na őket le is viszi a víz, nem jönnek ki élve. Nyújtsd ki magad, a kezedet is, hagyd hogy pörgessen meg, akkor majd kidob. Van olyan örvény is, ami levisz nagyon mélyre, de azt ne feledd, hogy ő az erősebb. Ha soká dob ki, akkor úgyis mindegy, de ha kapálózol, akkor biztosan véged."
 (Jóval ez után a koleszban Bajai srácok mesélték hogy sportot űztek abból hogy örvénybe ugráltak, később döbbentek meg amikor látták hogy milyen roncsok voltak a vízben, amit szerencsésen elkerültek hogy mekkora botorságot is műveltek ezzel....)

A másik története az volt, hogy úszás közben az embernek nem tökéletes a távolság érzete. Nem tudod hogy igazából milyen messze van a folyó másik partja. Sokan jártak úgy, hogy amikor nekiláttak a folyó átúszásnak, úgy érezték hogy nincs erejük átérni a túlpartra.
Megfordultak. Lehet hogy csak pár méterre voltak pedig.
Aki már addig fáradt volt, nyilván egy idő után arra a megállapításra jutott, hogy mégis inkább az eredeti volt a jó irány. Majd vissza. A legvégén a folyó közepéből húzzuk ki őket...

"Ezért egyvalamit jegyezz meg jól, fiam. Ha át akarsz úszni a túlpartra, ne fordulj vissza. Ha mégis úgy döntenél, jól gondold meg, és azt a döntésed ne változtasd meg mert különben úgy jársz mint azok akik több cikk cakk után belefulladnak a folyóba".
Megjegyeztem.
Sajnos az öregúr nevét nem, de úgy gondolom hogy legalábbis hasznos dolgot mondott el, és természetesen ez nem csak az úszásról meg a  folyóról szól.

Remélem tetszett annak aki olvasta.
Ha valaki meg megörvendeztet azzal hogy megmondja hogy hol is volt pontosan a szabadstrand, annak örülnék.

2013. november 7., csütörtök

Balkezesség

Balkezes vagyok.
Sokan vagyunk így ezzel, még abban az elvetemült formában is, hogy nekem csak az írás, meg az evés esik a bal kezemre, az ügyesebbik kezem a jobb, azzal dobok, abba fogom a pingpong ütőt. A bal oldalam az okosabbik, a jobb meg az ügyesebb.
Amikor kicsi voltam, még nem nagyon vették ezt figyelembe. 
Például a bögrék akkor csak a jobbkezeseknek voltak kényelmesek, nekem - és a sorstársaimnak, gondolom - vágta a kezem a bögre füle. Kényelmetlen volt az olló, a kés, meg egy csomó dolog.
Elfogadtam ezt, azt hittem hogy ez teljesen normális dolog, mivel nem volt módomban ellenpróbát végezni. 

Az egyéb tapasztalataim is azt mutatták - javában dúlt a szocializmusnak nevezett valami kishonunkban kiskoromban - hogy a világ ilyen. Van egy halom dolog ami rosszul működik és passz, ezt kell szeretni.

Rengeteget olvastam, még apu növényvédős könyveit is ha az akadt a kezembe. Egy idő után arra a megállapításra jutottam hogy régen ugyan éltek értelmes emberek, de most nem azt a korszakot éljük.
Aztán - már javában gimnazista voltam és nem nagyon segített a környezetem elhessegetni a fenti feltételezést - egyszer csak egy érdekes riportot hallottam a balkezességről, a kétkezes ollóról, késről, bögréről. Jut eszembe, a fentebb említett elképzelés nem volt "tudatos", csak egy kialakult érzés részemről.

Megdöbbentett az a riport.

Hirtelen ráébredtem, hogy amit én rossz működésként érzékeltem, nem volt az, csak a számomra. Ha jobbkezes lettem volna, nem vágta volna az ujjamat be élesen a bögre, láttam volna amit vágok, és a többi.
(Nota bene, nekünk balkezeseknek viszont nem csípi a hagyma a szemünket ha vágjuk, mert pont nem arra spriccel a csípős folyadék, amerre a szemünk van ;-).)
Az a riport ébresztett rá arra hogy ha valamilyen jelenséget tapasztalok ami nekem nem tetszik, vagy nem értem, próbáljak meg "kilépni magamból", lehet hogy van valamilyen ésszerű ok a dolgok hátterében.

A következő - pozitív - csapás meg ez a könyv volt: A zen meg a motorkerékpár-ápolás művészete. Pirsig még mindig él, ugye :D. Innen már könnyen kikövetkeztethető volt hogy legalább egy élő értelmes ember van a földön, ami következtetni enged arra hogy lehetnek többen is :D.

Tanulság nincs, illetve van, de nem rágom azt még jobban szájba, hacsak nem követelné véletlen valaki. (Aki erre téved ;-).