UPi lassú, spirális ereszkedése a totális őrületbe

2009.X.16

Gyomlálás

Van egy furcsa dolog az informatikában: a forráskód idővel elgyomosodik. Erre a jelenségre van ugyan magyarázat, de a magyarázat egyrészt bonyolult, másrészt nem segít a gyomosodást megakadályozni. Gyomosodás egyszerűen van.

Mivel a gyomosodásra nincs ellenszerünk, viszont mégse jó, ha a kertünk (forráskódunk) tele van dudvával, ezért a megoldás az, hogy a kertész (programozó) rendszeresen gyomlál. Ezt nem kampányszerűen kell csinálni, hanem nap mint nap, a normális fejlesztés részeként. Fejlesztesz, hopp, ott van egy kis gaz, gyorsan eltünteted, fejlesztesz tovább.

Erre mutatnék egy gyors példát most, a CitiesOfApocalypse közben jött elő. A rövid történet az, hogy Descant ötlete nyomán megcsináltam, hogy az iránygombokkal lehessen scrollozni a térképet; ehhez pedig elengedhetetlen volt, hogy a billentyűlenyomásokat elkapjam. De nem akarom őket elkapni mindig (pl amikor a játékos a chatbe írogat), hanem csak olyankor, amikor az egér a játék felett van.

Erre született a következő kódocska, ami a betöltéskor fut le:

this.gameDiv.onmouseover = function() { window.onkeydown = onkp; }; this.gameDiv.onmouseout = function() { window.onkeydown = null; };

Eddig szép és jó minden, működik minden* böngészőn, maga a csoda. Igenám, csakhogy van egy Internet Explorer nevű csapás a webfejlesztésre; a csapás részeként mindent másképp kell csinálni, hogy IE-n is működjön. Egy ponton nekiláttam IE-kompatibilissá tenni a játékot (ami végül nem sikerült), és sok egyéb mellett a következő változást eszközöltem:

this.gameDiv.onmouseover = function() { if (isInternetExplorer()) { document.body.onkeydown = onkp; } else { window.onkeydown = onkp; } }; this.gameDiv.onmouseout = function() { if (isInternetExplorer()) { document.body.onkeydown = null; } else { window.onkeydown = null; } };

Hurrá, most már IE-n is működik (a kódnak ez a része). Mentem is tovább sietve, mert még volt ötezer másik rész, amitől az IE fejreállt. Sajnos, azon igyekezetemben, hogy legyen IE változat, hagytam magam mögött egy kis gazt. Pár héttel később egy másik változtatás közben gyomláltam ki, íme:

if (isInternetExplorer()) { this.gameDiv.onmouseover = function() { document.body.onkeydown = onkp; } this.gameDiv.onmouseout = function() { document.body.onkeydown = null; } } else { this.gameDiv.onmouseover = function() { window.onkeydown = onkp; } this.gameDiv.onmouseout = function() { window.onkeydown = null; } }

Mi változott? Az eseménykezelő egyszerűbb lett, mert az if/else rész átkerült az inicializációs kódba; ettől lesz szebb (pontosabban, kevésbé gazos) ez a kódrészlet.

Tagek:
 
Utoljára módosította UPi 2009.X.16 11:24-n; 0 hozzászólás
Új hozzászólás | PermaLink
Szavazás letiltva.

2009.IX.26

Az UPC (megint) hülye

Szóval van itt egy szerverem, ami mindenféle e-maileket küldözget a nagyvilágnak. Pl. regisztrációhoz szükséges e-maileket, vagy a Csodalámpa alapítvány levelzése. Vagy a StartVox levelezése. Még sorolhatnám, csak minek.

Néha persze vannak levelek, amik visszapattannak. Egy rosszul kitöltött regisztrációs űrlap, vagy egy régi cím, ami menet közben megszűnt. Ezek száma napi 2-3 között szokott mozogni, és a rendszer kezeli őket. Nincs gond.

Úgyhogy érthető lehet a meglepetésem ma reggel, amikor arra lettem figyelmes, hogy száz feletti visszapattanó levél gyűlt össze az éjszaka folyamán. Megnézem, hogy miaf@sz van, hát az van, hogy a UPC kimenő mail servere (smarthost-nak is nevezik, de ez nyilván egy rossz elnevezés) minden egyes levelet kereken visszautasított a következő üzenettel:

:SMTP error from remote mail server after RCPT TO:<valaki@hotmail.com>:
:host smtp.chello.hu [213.46.255.2]: 550 5.1.1 <valaki@hotmail.com> recipient rejected 89.132.111.176 is in RBL

Hát gratulálok, szóval RBL. Magyarán, valahogy az IP címem (ez lenne a 89.132.111.176) felkerült egy listára, valahol. De melyikre? Lefuttatok egy gyors keresést: semmi.

Akkor jön az, amit a UPC-vel kapcsolatban legjobban utálok: fel kell hívni az ügyfélszolgálatot. Az ügyfélszolgálat szoftvere közli velem, hogy 3 percet kell várnom, majd azonnal kapcsol (emiatt nem panaszkodom, fő, hogy ügyelnek a részletekre).

Először persze át kell verekednem magam a képzetlen, de jólnevelt fajta ügyfélszolgán. Neki az ötlete az, hogy állítsam át a kimenő szervert smtp.chello.hu-ról smtp.upcmail.hu-ra. Elmagyarázhatnám neki, hogy mindkettőnek ugyanaz az IP címe (a bizonyos 213.46.255.2), vagyis az átállításnak semmi hatása nem lehet. Azonban magyarázni tovább tart, mint átállítani, így megteszem. Írok is egy próbaüzenetet: természetesen semmi hatás. Jó, akkor kapcsolja az informatikus kollégát.

Az informatikus kolléga tippjei a következők voltak:

  • A gépem vírussal fertőzött. (Megintcsak, ne említsük azt, hogy egy állítólagos informatikusnak illene tudni a különbséget a vírus és a trójai között, lehet hogy csak engem néz számítástechnikai analfabétának.) Ezen hamar túljutunk, linux van, vírus nincs.
  • Biztos én változtattam valamit. Persze, álmomban.
  • A gépem IP címe egy RBL listán van, úgyhogy várjak 72 órát. 72 óra alatt várhatóan még 900 pattanó üzenet lesz, nem jó ötlet.
  • Ezen a ponton kitaposom belőle, hogy az RBL lista, amelyik alapján nem kézbesítik a leveleimet, a apews.org névre hallgat. Meg is nézem: itt a teljes kibaszott netblock van listázva, vagyis az én gépemen kívül minden UPC ügyfél. Konkrétan, a 89.132.0.0/16 tartomány van feketelistázva, vagyis minden 89.132-vel kezdődő IP... Ha az UPC ez alapján szűri a KIMENŐ leveleket, akkor gyakorlatilag feketelistázta minden ügyfelét. Okos!
  • Jó, akkor használjam addig is a webes e-mailjüket. Ez már bőven az "idióta" kategóriába esik, hiszen most magyaráztam el neki, hogy automatizált üzenetekről van szó.
  • Következő ötlete: állítsam át a gépem MAC address-ét, és kérjek új IP címet a kábel modemtől. Zseniális, leszámítva azt az apróságot, hogy az új IP cím szintén a feketelistás netblockban van. Megnézek közben a vicc kedvéért pár szomszédos IP tartományt: mind feketelistás. Gratulálok.
  • Használjak egy másik smarthost-ot, és ne az övéket. Szóval, ha a UPC szolgáltatását ők elkúrják egy szép napon, akkor az a megoldás, hogy másik szolgáltatót használok helyettük. Ez végülis jó ötlet, úgyhogy hétfőn keresek is másikat, ezzel az ostoba bandával meg szerződést bontok.

Ahhoz persze, hogy ő kijavítsa a saját hibásan konfigurált smtp szerverüket, az fel sem merül. A webmailes ötletét elszajkózza még néhányszor. Azért fizetik, úgy látszik, hogy ostoba legyen.

Űristen.

Tagek:
 
Utoljára módosította UPi 2009.IX.26 11:33-n; 4 hozzászólás
Új hozzászólás | PermaLink
Szavazás letiltva.

2009.VIII.24

Weöres Sándor -- Déli felhők

Domb tövén, hol nyúl szalad,
S lyukat ás a róka:
Nyári fényben, napsütésben
Felhőt les Katóka.

Zöld fűszál az ajka közt,
Tenyerén az álla...
A vándorló felhő-népet
Álmosan csodálja.

Elöl úszik Mog király,
Kétágú az orra,
Feje fölött koronája,
Mint a habos torta.

Fut mögötte a bolond
Szélesen nevetve,
Nagy púpjából szürke kígyó
Nyúlik az egekbe.

Törött kordén utazik
Egy kopasztott kánya,
S haját tépve Bogyóvére,
A király leánya.

És utánuk cifra ház
Gördül sok keréken,
Benn a cirkusz hercegnője
Öltözködik éppen.

Száz ruháját, ékszerét
Odaadná szépen,
Csak egy hétig futkoshatna
Lenn a nyári réten.

(Halász Judit-féle feldolgozásban hallottam először.)

Tagek:
 
Utoljára módosította UPi 2009.VIII.24 09:28-n; 0 hozzászólás
Új hozzászólás | PermaLink
Szavazás letiltva.

2009.VII.19

Potty

Szóval tegnap taknyoltam egyet biciklivel. A rövid hír után következzenek a részletek.

Szerintem mindenki, aki belefog abba, hogy rendszeresen bringázik a városban, az – tudatosan, vagy tudat alatt – bevállalja azt, hogy esni fog. Lehet, hogy 2 hét múlva, lehet, hogy 20 év múlva, de esés lesz a vége, annyi szent. Számomra ez az idő most jött el.

A történet nagyjából annyi, hogy a Kálvin térnél a metró építés miatt az egyik sávot keresztül terelik a síneken. Ez eddig oké is lenne. Ami nem oké az az, hogyha eső után a sínek csúsznak mint a veszedelem, és ennek ellenére az elbizakodott biciklista gyorsan és rossz szögben közelíti meg őket. Ezt a sínek ugyanis azzal bosszulják meg, hogy a bringát egy pillanat alatt kikapják alóla, emberünket meg ilyenkor a gravitáció bemutatja az aszfaltnak személyesen. Ez történt velem is.

Az ilyenkor lehetséges kimenetelek közül a legenyhébb forgatókönyv szerint alakultak a dolgok: nem tört el semmim, nem ütöttek el, sőt: még a biciklim se ment tropára. Három járókelő azonnal lerohant segítségnyújtási szándékkal, sőt: még egy autós is megállt megkérdezni, hogy kell-e valami. Akkor még azt hittem, hogy nem, és 1 perc után, a fájdalom enyhültével, továbbindultam.

Az Asztóriánál aztán észrevettem, hogy vérzik a karom, rá 2 perccel pedig eleredt az eső.

Sáros seb + esővíz = nem jó buli!!

Otthon még alkohollal próbáltam tisztogatni a sérüléseimat, (a jobb karomon kívül még a jobb térdemen is volt), aztán rájöttem hogy ez így házilag esélytelen. Második próbálkozásra találtam egy olyan ügyeletet, ahol volt sebészet is. Anyám jött velem. Az éjszakai sebészet egyébként oltári jó buli lehet: volt ott egy fazon, akinek vadászgörény harapta át az ujját, egy másik biciklista, akinek egy harmadik ment neki, valamint egy hullarészeg fickó, aki alkohol által indukált baleset áldozata lett. Kb 2 óra után végeztek velem; a végén még betámolygott egy fickó, aki a hátát markolta, amin egy vérző szúrt seb volt. Buli, én mondom.

A tanulság: nem szabad elbízni magam, és kell védőfelszerelés is. Az évek alatt láthatóan sikerült megtanulnom rendesen esni: nem támasztottam le tenyérrel (biztos csuklótörés lett volna), jól tompítottam (ami persze nem segít azon, hogy közben felmosom a Múzeum kőrutat), nem vertem be a fejem, könyököm, bordám, stb. Összességében olcsón megúsztam az egészet.

Viszont ezzel a nyaralásnak most vége. Jövő héten megyek vissza melózni.

upload:UPiBlog/2009-07-19_fall_1_small.jpg

Utoljára módosította UPi 2009.VII.19 19:50-n; 6 hozzászólás
Új hozzászólás | PermaLink
Szavazás letiltva.

2009.VI.29

Code Documentation Of The Day

Az öndokumentáló kód jó dolog. Lássuk csak, mit talált ma UPi:

/// <summary> /// The SPSException that is thrown when the /// password is invalid. /// </summary> /// <remarks> /// Detailed description for SPSExInvalidPassword. /// </remarks> [Serializable()] public class SPSExPasswordExpired : SPSException { […]

Kicsivel később:

/// <summary> /// Initializes a new instance of the /// SPSExInvalidPassword class. /// </summary> public SPSExPasswordExpired() { if (SPSTrace.T) SPSTrace.writeFunctionBegin( string.Format("->SPSExPasswordExpired.SPSExPasswordExpired()" )); }

Na ennyit az öndokumentáló kódról.

Tagek:
 
Utoljára módosította UPi 2009.VI.29 18:23-n; 0 hozzászólás
Új hozzászólás | PermaLink
Szavazás letiltva.