Az ördög kb. 2 pixelnyi részletben rejlik

Kolléga 4 hónapos hiba javítás végére tett pontot.
(A hibát ő találta meg, én csak okát fejtettem meg.)

Egy programunk nem akart úgy funi az ügyfélnél ahogy elvártuk. A program fittyet hányt az egyik paraméterre. Úgy vette mintha nem is létezne. Rengeteget debuggoltunk, de nem találtuk az okát nálunk ugyan is rendesen ment.

Talán soha nem is találjuk meg a hibát, ha csak nem egy szer az ügyfél beidőzítette a megfelelő paraméterekkel a programot és nem ment. Majd exportálták a jobot XML-be és elküldte nekünk. És láss csodát importálás után nálunk sem ment a dolog. Hosszas próbálkozás után kolléga kiderítette, hogy az egyik paraméter mögött nem ASCII 45 hanem ASCII 150 kódú kötőjel van.
Ami a monitoron fix szélességű betűtípussal csak egy hangyabajusznyival hosszabb.

Mint kiderült a wordben elküldött dokumentáció okozta a problémát. Az ügyfél annak rendje és módja szerint Ctrl-C Ctrl-V kimásolta a doksiban látható parancsot. Csak hogy a Word valamilyen oknál fogva az egyik kötőjelet a magyar szabvány szerinti hosszabb gondolatjelre cserélte.

Régen nem volt részem ilyen összetett problémában részem.

Hozzászólások

Nem hülyeség az ASCII. 7 bit, és semmi elírás.

Az a szégyen, ha 4 hónap kell 1 egyszerű syntax error hiba lokalizálásához.

Az M$ programjai ki akarjak talalni mit akarsz, most ugy gondoltak, hogy ti 4 honapig szopni akartok :)

--
Live free, or I f'ing kill you.

+1

Akkor alakítja át a sima kötőjelet, amikor a kötőjel utáni szó után nyomsz egy space-t.
Ami egy tipográfusnak megnyugvás, az egy programozónak kopaszodás.

"Jegyezze fel a vádhoz - utasította Metcalf őrnagy a tizedest, aki tudott gyorsírni. - Tiszteletlenül beszélt a feljebbvalójával, amikor nem pofázott közbe."

Lattam mar hasonlo phpmyadminban is....Igaz, ezereves mysql, de nem ertettem, hogy ctrl-v/ctrl-v masolok egy DNS bejegyzest es megis egesz mas jon vissza (konkretan spf bejegyzes volt egy txt rekordba). Marmint amikor dig/host programmal ellenoriztem, egesz ams volt, mint amit beirtam.

Talan html level volt? Nem tudom.

--
http://www.micros~1

Tipikus kivételkezelési hiba.
Ezért kell minden paraméterezhető programban hibát dobni, ha a paraméter sz@r.

Developer 1-es, leül.
--
PtY - www.onlinedemo.hu

Ezért kell minden kívülről elérhető, az API részét képező, paraméterezhető metódusban/függvényben ellenőrizni a kapott adatokat és dobálni a platformon elérhető IllegalArgumentException-öket, az implementációs részben meg assert-ezni az osztályon kívülről érkező (de természetesen a publikus API határon már ellenőrzött) adatokra tett megkötéseket.

Maga a program meg ilyen helyzetben véssen ki a képernyőre egy (ha gép által hívott úgy, ha user által indított, úgy) emészthető hibaüzenetet és logolja a hibát.

BlackY

Az ugyan igaz, hogy jelen esetben a programnak kell ellenoriznie, hogy mit adunk be neki, es mielobb lekezelnie, de...

Annyi webes (es a fenti peldaban Word-ben irt) dokumentacioban, how-toban talalkoztam olyannal, hogy a kodpeldaban nyomdai (“”) idezojelekre csereli a portalmotor/szerkeszto a rendes, irogepeset (""), hogy szerintem ez is olyasmi, amire figyelni kell. Ha valaki script-rol, programnyelvrol ir, akkor kapcsolja ki ezt a funkciot. A legszebb, amikor a portalmotor direkt kiemeli a kodpeldat, meg "Copy to clipboard" gomb is van, es a kod kozepen ott figyel egy szabad szemmel alig megkulonboztetheto nyomdai irasjel.

Térjünk vissza a kályhához. Az vajon mit érdemel, aki kitalálta, hogy legyen kötőjel, meg gondolatjel, külön.

Az nyelvész volt és híre sem volt még számítástechnikának, amikor kitalálta.
Ráadásul gondolatjelből van kétféle: egy rövid (–) és egy hosszú (—). Hogy melyiknek mi a szerepe, pontosan miben térnek el, azt már nem tudom. Azt hiszem, a rövid a tételes felsorolásnál, párbeszédek leírásakor, míg a hosszú a mondatba ágyazva, mikor megszakítasz egy gondolatmenetet némi kitérővel, majd folytatod a félbehagyott gondolatot.

-–—–--–—–--–—–--–—–--–—–--–—–--–—–--–—–--–—–--–—–--–—–-
(jó kis sorminta és nem is látszik, hogy kötőjelet (-) vagy rövid gondolatjelet (–) írtam — egészen addig, míg a beviteli mezőben vagyok. :)

Aki tudja, csinálja, aki nem tudja, tanítja... Hm... igazgatónak talán még jó lennék. :)

Csak arra próbáltam célozni, hogy kivételes nem a standard magyar virtusról ("Há, a mi [nyelvészeink/programozóink/pékjeink/...] csak azért is legyenek gyökerebbek mindenki másnál és menjenek szembe minden logikával és csúúnya és gonosz idegen tapasztalattal") van szó :)

BlackY

O, a jo oreg hiba. Hanyszor de hanyszor szaladtam mar bele en is. Komolyan, en ertekelem, hogy a rendszerek tamogatjak ezeket a szep karaktereket, de eltornem a kezet annak, aki ezt az automata cseret megcsinalta. Lehessen egy gombnyomassal cserelni oket, ha kell, igen, de ne legyen automata, mert abbol mindig csak baj van.
--

Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. 

Lehet, hogy ezzel tipografiailag semmi baj nincs, elfogadom. Csakhogy az interneten joreszt nem olyan szovegek szuletnek, amelyeknek a tipografiaja akar egy hangyaszorszalnyit is szamitana. Ahol tipografiailag igenyesnek kell lenni, azt oldja meg a szerzo, hogy tipografiailag igenyes legyen, de az automatikus technikakkal mindig az a baj, hogy altalaban mindenfele kerdezes nelkul csinaljak a dolgukat. El kellene fogadni a tipografia-maniasoknak, hogy az interneten alapvetoen olyanok szerkesztenek szoveget, akiknek fingjuk sincs arrol, hogy mi a kulonbseg a harom kotojel kozott.

Raadasul, nagyon sok tipografiai karakter szabad szemmel megkulonboztethetetlen az ASCII megfelelojetol. Ami megint vicces dolog egyebkent, mert akarmennyire is kinezed a szemedet, egy 1280px szeles monitoron (ma mar ennel keskenyebbet nem igazan lehet kapni) nem fogsz ket pixelnyi kulonbseget eszrevenni, akarmilyn jo a szemed. Ezt itt es most garantalom neked.

Informatikuskent en meg mindig csak szivtam akkor, ha valami nagyokos dizajner/sitebuilder egyben tipografia-fetisben is szenvedve bekapcsolt valami ilyen jellegu opciot, vagy plane mikor olyan CMS kerult fel, amiben ez automatan engedelyezve van. Plane, ha az illeto site valamilyen IT-szakmai tartalommal birt. Szoval bocsass meg, ha nem tudom megfeleloen ertekelni a tipografia rejtett ertekeit.
--

Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. 

Abban igazad van, hogy nem kell arra verni, hogy de jó a honlapom tipográfiája, de hidd el, _nagyon_ sokat tud számítani a különbség egy jó és rossz megoldás között. Nem feltétlenül tetszésben - az amúgy is szubjektív, hanem olvashatóságban.

Arra meg, hogy weben olyan tartalmat jelenítsünk meg (pl. kód), ahol erre nincs szükség, arra is vannak igényes megoldások.