‘Szoftverfejlesztés’ címkével ellátott bejegyzések

Felhasználók azonosítása fejlesztői oldalról nézve

2012. november 30. péntek

Gondoltam, hogy megosztok pár dolgot, ami a napokban eszembe jutott webes fejlesztések kapcsán. Ezek elsőre teljesen értelmetlennek tűnnek, azonban hosszú távon már egyáltalán nem azok, nagyban lehet velük növelni (vagy éppen csökkenteni) a felhasználói elégedettséget még akkor is, ha ezt elsőre nem is gondolnánk.

Felhasználók egyedi azonosítása: felhasználói névvel vagy email címmel?

Fejlesztőként már az első munkáim során el kellett gondolkodnom azon, hogy az éppen készülő rendszerbe milyen módon legyenek azonosítva a felhasználók. Az elején még volt egy időszak, amikor a felhasználói név volt az általam preferált egyedi azonosító (ettől persze az email cím sem egyezhetett meg két felhasználónál ugyanazon a rendszeren), de később a tapasztalatok alapján arra jutottam, hogy egyértelműen az email cím a legjobb egy-egy felhasználó azonosítására.

Méghozzá azért, mert:

  • ugyanarra a felhasználói névre több felhasználó is igényt tarthat (pl. keresztnév)
  • az email címek a felhasználói nevekkel szemben teljesen egyediek, így tökéletesen alkalmasak a felhasználók egyedi azonosítására
  • a felhasználói nevünk sokkal könnyebben elfelejthetjük, mint az email címünket (főleg akkor, ha nem választottunk magunknak valami nagyon egyedi nicknevet, amit senki más nem használ)
  • az email címünket könnyebben és gyorsabban megadjuk a regisztrációkor (egyrészt így is, úgy is meg kell adni, másrészt pedig nem kell sokat gondolkodni és próbálkozni a felhasználói nevünk megadásakor, ha az általunk előre elgondolt név már foglalt)

Ettől persze még nincs semmi baj a felhasználói névvel, de ha van egy avatar is mellette, akkor elég jól meg lehet különböztetni mondjuk két Csaba nevű felhasználót egy fórumban – gondoljunk itt a különböző oldalak alján mostanában elhelyezett Facebook kommentelési lehetőségre, ahol a legtöbben a saját, nevükkel szólnak hozzá a bejegyzésekhez.

A fentieket figyelembe véve nem is értem, hogy viszonylag nagyobb oldalakon miért erőltetik az egyedi felhasználói nevet annyira a mai napig…

Ill. a Facebook kapcsán még valami: a Facebook Connect is egy jó lehetőség az azonosításra de csak úgy, hogy ha bebiztosítjuk magunkat hosszú távra: ha esetleg törli magát a Facebookról a felhasználó, akkor még a mi rendszerünkbe az email címe segítségével be tudjon belépni (vagy kérni egy új jelszót).

Biztonsági kérdések

A másik, amit fejlesztőként és felhasználóként sem kívánok a hátam közepére sem, azok a különböző biztonsági kérdések, melyeket szintén a felhasználóra erőltetnek egyes oldalakon. Pl. az, hogy adjuk meg a nagyapánk foglalkozását, vagy a kedvenc írónk, költőnk, tanárunk és kutyánk nevét, rossz esetben pedig ezt az összeset együtt. Mert az embernek van, vagy volt több nagyapja is, lehet több kedvenc költője vagy írója, lehet több kedvenc tanára is és kutyából is lehet három. Vagy esetleg épp fordítva: nincs kedvence sem íróból, sem tanárból, de még csak kutyája sem volt soha és így tovább.

Sokkal célravezetőbb egy biztonságosabb jelszót kérni a felhasználótól, tehát ami legalább 8-10 karakter hosszú, amiben van kis- és nagybetű, szám, vagy esetleg valami írásjel, bár ez egyes esetekben és felhasználóknál problémákat jelenthet (pl. angol/magyar nyelvű billentyűzetkiosztásnál, kevesebb felhasználói ismerettel rendelkező felhasználóknál).

Szoftverkiadás más szemlélettel

2012. október 31. szerda

Jó másfél évvel ezelőtt írtam itt a blogon, hogy mennyire nem tetszik az erőltetett menetben történő szoftverfejlesztés, hogy a fejlesztő cégek határidőre akarnak elkészíteni egy-egy alkalmazást és nem akkor adják ki az egyes szoftvereket, amikor azok ténylegesen el is készülnek.

Most lehet, hogy az Apple mozdul(t) valamennyit ebbe az irányba, mert az iTunes 11-es változata késik, mégpedig:

„Az elemzők szerint az Apple vezetőségében történt váltással egy új szemlélet is érkezik. A cég ezentúl nem határidőre készíti a termékeit, hanem csak akkor teszi közzé őket, ha már teljesen elkészültek, és tökéletesen használhatóak.”

(Forrás: Késik az új iTunes – beszeljukmac.com

Szóval másfél évvel ezelőtt leírtam valamit a blogon, ami látszólag szembe megy sok szoftverfejlesztő cég statégiájával (azoknak a vezetőknek az elképzeléseivel, akik keze alatt néha összesen több (tíz)ezer fejlesztő dolgozik nap mint nap), most pedig kiderül, hogy a világ egyik legnagyobb és vezető cége is arra az álláspontra jutott, aminek én is a híve vagyok. 🙂

Persze azért is örülök ennek a hozzáállásnak, mert mivel napi szinten használok Apple termékeket, így remélhetőleg ezek után nagy eséllyel jobb szoftvereket fogok tudni használni, mint eddig.

Úgy tűnik, hogy kellettek az Apple-nek a Sirivel és a Maps-szel kapcsolatos hibák ahhoz, hogy rájöjjenek: kifizetődőbb valamit inkább később és jobb minőségben kiadni, mint valamit korábban és tele hibával. Persze a tőzsde nem reagál olyan látványosan az ilyen később és nem akkora felhajtással kiadott dolgokra, viszont meg vagyok róla győződve, hogy hosszú távon mindenképpen stabilabb növekedést érhetnek el ezzel a fajta hozzáállással – elég csak az Apple múltjára gondolni: honnan kezdték és minek köszönhetően mára hova jutott ez az egykoron egy kis garázsból indult cég.

Számomra egyébként az a fenti eset tanulsága, hogy ne féljünk szembe menni azokkal, akik látszólag a másik irányba mennek akkor sem, ha ők nagyságrendekkel többen vannak. Ha a józan logika alapján jobban működő dolgok mellé tesszük le a voksunkat és kitartunk mellette, akkor az idő úgyis minket igazol (mint tudjuk, az Apple-től amúgy sem áll távol ez a másokkal szembe menő gondolkodásmód, e nélkül el sem jutottak volna idáig).

0x10c video teszt

2012. október 13. szombat

Notch új játéka (nem írtam róla korábban, inkább csak fél szemmel figyeltem a fejleményeket) a 0x10c névre hallgató, még erősen fejlesztés alatt álló szoftver, melyről tegnap került ki egy videó. A kezdeti képernyőképek láttán, amiket hónapokkal ezelőtt láttam, úgy gondoltam, hogy nem fog érdekelni a játék (valószínű, hogy ezek után sem én leszek a célközönsége), azonban a videót elnézve hatalmasat fejlődött és vannak benne olyan technikai megoldások, melyek tetszenek.

Valószínűleg viszonylag szűk rétegnek készül ez a távoli jövőben játszódó játék, ahol a játékon belül működő számítógépeket lehet programozni, méghozzá 16 bites CPU-kat, Assemblyben, ami elég izgalmasan hangzik. 🙂

Bár az interneten elég sok információ van erről a készülő játékról, egyelőre jobban nem ástam magam bele a témába. Lehet hogy majd írok róla még, de inkább nem ígérek ezzel kapcsolatban semmilyen konkrét dolgot.

Visszavonták az új Firefoxot

2012. október 12. péntek

Nagyjából másfél évvel ezelőtt írtam egy Erőltetett menet c. bejegyzést, amiben nem értettem egyet a szoftverfejlesztés azon formájával, amikor előre meghatározott időközönként adnak ki egy-egy új verziót, nem pedig akkor, amikor elkészül.

Tegnapi cikk az indexen (szintén Visszavonták az új Firefoxot címmel):

Egy nappal az új, 16-os verzió kiadása után a Mozilla visszavonta a Firefox böngésző friss változatát. A böngészőben egy olyan biztonsági rést fedeztek fel a programozók az első napon, amit kihasználva egy trükkösen összerakott weboldal kódja a böngészőből ki tudja szedni az addig meglátogatott weboldalak listáját. A komoly kémkedési potenciál miatt a Firefox 16-ot azonnal leszedték a hivatalos letöltési oldalról, és a fejlesztők minden felhasználónak azt ajánlják, térjenek vissza a legutóbbi, 15.0.1-es verzióra. A Mozilla programozói most gőzerővel dolgoznak a hibamentesített 16-os verzión.

A helyzet annál is kínosabb, mert a 16-os verzió többek között a 15-ösben foltozott volna be biztonsági réseket, a Mozilla saját adatai szerint 14-et.

[…] A biztonsági rés, és a friss verzió visszavonása komoly presztízsveszteség a Firefoxnak, annak ellenére, hogy a hibát még éppen az utolsó pillanatban sikerült megfogni, és egyelőre nem érkezett jelentés arról, hogy hekkertámadás, cyberkémkedési akció, vagy vírus használta volna ki azt.

Ezért felesleges kapkodni vele, mert azon kívül, hogy csak maguknak csinálnak ezzel – nem kevés – plusz munkát, még több millió felhasználóban is sikerül nekik kellemetlen emlékeket hagyni a mostanában amúgy sem szárnyaló szoftverükkel.

Évekig a Firefox volt az alapértelmezett böngészőm, ma meg már szinte csak akkor nyitom meg, amikor tesztelek vele egy átadás előtt álló munkát. Kár érte, egykoron egy jó szoftver volt. 🙁

Minecraft 1.3.1

2012. augusztus 10. péntek

Gigantikus méretű frissítést kapott néhány napja a Minecraft, mely az 1.3.1-es verzióval érkezett: a hibajavításokon kívül rengeteg (több, mint 200) újítás, ill. módosítás is belekerült a játékba, mely sokkal, de sokkal gyorsabb lett az előző verziónál a CPU/RAM/sávszélesség optimalizációnak köszönhetően.

A teljes lista itt tekinthető meg az újdonságokról, módosításokról és javításokról – még a végigolvasása is fárasztó, vajon milyen lehetett a fejlesztés? 😀

Utóbbi időben nem játszottam vele semmit, de valamikor augusztusban vagy szeptemberben egy szombat délutánt vagy estét csak erre fogok fordítani.

CEOI 2012

2012. július 13. péntek

Tatán került megrendezésre a CEOI 2012 (Central-European Olympiad in Informatics, Közép-európai Informatikai Diákolimpia), melyen 12 ország 52 tanulója vett részt. A két napos versenyt, melyen 17-18 éves középiskolások mérték össze tudásukat, a Neumann János Számítógép-tudományi Társaság rendezte, valamint a Google is támogatta.

A legtöbb aranyat Románia és Bulgária csapattagjai nyerték.

A fenti hírre egyébként a Google Magyarország Blogon találtam rá.

Típuskonverzió PHP alatt

2012. július 10. kedd

Tegnap írtam Twitteren is, hogy az elmúlt 10 évben most volt szükségem másodszor típuskonverzióra a PHP használata során úgy, hogy napi szinten, aktívan írom a PHP kódokat.

Egyúttal elgondolkodtam azon, hogy tíz év alatt mennyi idő ment volna el azzal, hogy mindegyik elé odaírom, hogy mi micsoda (már ha a PHP megkövetelné a változók típusainak megadását is, minden deklaráció alkalmával). 🙂

Android fragmentáció

2012. május 18. péntek

Eddig nem sok Androidos bejegyzés volt a blogon (konkrétan egy sem), de ezt most egyszerűen nem tudom kihagyni.

Több, mint 4.000 egyedi eszköz létezik Android alá, ami felhasználói szempontból elsőre remek hír (hiszen nagy a választék), viszont fejlesztői szempontból egyenesen rémálom (gondoljunk pl. csak az eltérő felbontású kijelzőkre). A képen – ami a töredezettséget mutatja egyébként – százalékos arányban vannak lebontva a készülékek: a zöld négyzet, ami a teljes kép lefedettségének a 10%-át teszi ki, az a Samsung Galaxy S2 készüléket jelzi.

Őszintén szólva nem lenne az a pénz, amiért nekiállnék bármikor is Androidra bármilyen alkalmazást is fejleszteni (annak ellenére, hogy a weben valami hasonlót csinálok nap mint nap).

Forrás: eredetileg iSandor tweetjei között találtam a linkre, ami a Gizmodo oldalára mutat, maga a kép pedig az  OpenSignalMaps oldaláról származik.

Ilyen nincs és mégis van

2012. április 25. szerda

Vannak olyan napok, amikor minden összejön. Mármint minden rossz és minden olyan dolog, melyekhez az embernek sem ideje, sem pedig kedve nincs. Amikor pedig azt hinnénk, hogy mára már biztosan nem lesz több akadály, akkor még nem tudjuk, hogy a napi megpróbáltatásoknak a felénél sem járunk. Na, ez pont egy ilyen nap volt nekem. 🙂

OTP Bank

  • Reggel megpróbáltam belépni az OTP Bank megújult weboldalára (OTPdirekt). Kis idő után feladtam, mivel az azonosító, számlaszám és a jelszó kb. negyedszerre történő megadása után is csak egy új, üres oldalt nyitott a Safari iOS alatt (mint később kiderült, valami baj volt a szolgáltatással, mert asztali gépről sem tudtam belépni a rendszerbe).
  • Mióta megújult az OTPdirekt webes felülete, azóta felcserélték a második és harmadik mező (jelszó és bankszámlaszám) sorrendjét. Ez azt eredményezi, hogy minden egyes alkalommal a bankszámlaszám mezőjébe kezdem el gépelni a jelszót, mert rutinszerűen próbálom kitölteni a mezőket. Persze nem nagy dologról van szó, de amikor már sokadszor fordul elő és összezavar a sorrend, akkor idegesítő tud lenni.

iTunes Store / Apple

  • Szerettem volna venni az iTunes Store-ból egy alkalmazást, de a kártyámat nem volt hajlandó elfogadni az Apple annak ellenére, hogy eddig semmi baja sem volt vele, az adatokat is jól adtam meg, nem is járt le és a számlán is van fedezet. Szerinte nem érvényes a kártyám (ami kizárt, mert máshol tudok vele fizetni).

Facebook

Az egyik Ügyfélnek a Facebook oldalával sikerült eltöltenem összességében több mint két órát olyan dolgok miatt, melyek nélkül kb. negyed óra alatt el lehetett volna intézni mindent.

  • Szerettem volna hozzáadni valakit az adminisztrátorokhoz, azonban már egy ideje nem úgy van, mint régen, hogy egy listából kiválasztom, hanem meg kell adni külön az illető e-mail címét. Persze nem nagy dolog ez sem, csak nem értem a változtatás lényegét. Nem értem, hogy ez pl. miért egyszerűbb, vagy miért jobb, mint a korábbi, két kattintással történő megoldás.
  • Létrehoztam egy eseményt, ami kétnapos, de nem túl meglepő módon a Facebook nem tud kezelni kétnapos eseményeket. Viszont mégsem bonthatom két részre az eseményt, egyszóval ez így egy nem túl szerencsés megoldás.
  • Szerettem volna lecserélni az oldal borítóképét és a profilképet is. Rettenetes, hogy mennyire lerontja a minőségét a Facebook ezeknek a képeknek és ha pl. egy kép az átlagosnál több részletet tartalmaz – netán tartalmaz szöveget is – akkor néha már-már gusztustalan, ahogy kinéz a cover. A profilképet meg természetesen ha kell, ha nem, nagyítja. Szerencsére ez utóbbin lehet változtatni, de ez így már szerintem túl van bonyolítva.
  • Szerettem volna még áthelyezni az egyik albumból egy képet a másikba, de nem volt hajlandó áttenni és még csak hibaüzenetet sem kaptam.
  • Szerettem volna törölni a régi profilképet is, de nyilván ez a funkció sem működött.
  • Utólag bejelöltem azt is, hogy a borítócsere ne legyen látható az idővonalon. Persze oda se neki, kitette és lájkolták is – pont ezt szerettem volna elkerülni. Azt sem értem, hogy ezt miért csak utólag lehet bejelölni.
  • Végül pedig, ha ez még nem lett volna elég, akkor jön a következő döbbenet: idővonalra új linket teszek ki és a fő képet, ami tulajdonképpen az egész eseményt elmondaná egy szóban cache-ből(!) szedi ki a Facebook ahelyett, hogy behúzná azt az oldalt, amire a link mutat, mert ugye előfordulhat, hogy a tartalma változott az elmúlt egy év során. Nyilván, hogy nem teszi ezt és így a 2011-es feliratú képet mutatja a 2012-es helyett (itt szeretném emlékeztetni a kedves Olvasót arra, hogy annak ellenére, hogy ilyen teljesen felesleges képeket évekig eltárol a Facebook, a profil- és borítóképet – aminek olyan szerepe van egy ilyen oldalánál, mint amilyen egy boltnál a kirakatnak – ugyanakkor meg agyontömöríti, hogy kisebb helyet foglaljon).

Egy több, mint 800 millió regisztrált felhasználóval rendelkező oldalról van szó…

Egyebek

  • A levélküldés az asztali gépemről néha csak minden második alkalommal sikerül, amióta az internetszolgáltatóm megkért, hogy írjam át az SMTP szervert címét a levelezőmben egy másikra.
  • Az egyik külső merevlemezen található Time Machine mentésem pedig egy az egyben eltűnt az egyik pillanatról a másikra (nagy valószínűséggel az adatkábellel van gond, ezt gyorsan cseréltem is). Szerencsére csak nagyon ritkán kell bármit is visszaállítanom, így most adatveszteség nem ért, de ettől függetlenül nem túl jó érzés azt látni, hogy a merevlemez, amin korábban volt két partíció és abból az egyik több hónapnyi biztonsági mentést tartalmazott, a géphez való csatlakozás után úgy néz ki, mint amikor a megvásárlás után kibontom a csomagolásából.

Itt tartunk 2012-ben olyan oldalaknál és szolgáltatásoknál, melyekhez több ezer, több millió és több százmillió felhasználó csatlakozik és használja azokat üzleti vagy magáncélra napi rendszerességgel.

Persze régebben is voltak szoftverhibák és hibás szoftverek, ez egyszerűen kikerülhetetlen dolog és a szoftverfejlesztés velejárója, de közel sem volt ennyi gond velük, mint manapság (és ez nem az miatt van, mert ma sokkal több szoftvert vagy alkalmazást használunk, mint régen).

A bejegyzés a teljesség igénye nélkül íródott, mert még nem is említettem azokat a hibákat, amikhez már szinte majdnem hozzászoktam: ilyen pl. az, hogy a Twitternek fogalma sincs arról, hogy hány tweetet írtam eddig, hol ennyit, hol meg annyit mutat, a Weather Widget teljesen eltérő értékeket mutat ugyanannál a városnál és településnél iOS alatt, mint OS X alatt és még sorolhatnám órákig azokat a dolgokat, melyekkel nap mint nap összeakadok még fizetős szolgáltatások használatakor is.

Frissítés: és mint ha csak nem is a hibákról írtam volna meg a bejegyzést: a WordPress ha úgy gondolja, akkor az időzített bejegyzéseket nem teszi ki időben, úgy hogy ezt a bejegyzést most így utólag már csak azért is visszadátumozom arra a napra, amikor szerettem volna, hogy megjelenjen…

Hibakeresés PHP-ben: hol a hiba?

2012. március 19. hétfő

Ezzel a bejegyzéssel csak azt szeretném megmutatni, hogy mennyire könnyen el lehet szúrni az időt egy látszólag végtelenül egyszerű problémával kódolás közben, növelve ezzel a fejlesztésre szánt időt. Szerencsére most az alábbi dologgal kevesebb, mint 2 percem ment el, de rossz esetben ugyanerre elmehet akár egy óra is.

Adott egy általam frissen írt PHP-s függvény, mely látszólag az adott sorokban teljesen hibátlan:

Mégis localhoston, az oldal frissítésekor a böngészőben azt látjuk, hogy valami nem stimmel a 225. sorban:

Parse error: syntax error, unexpected T_STRING, expecting ‘{‘ in […]/index.php on line 225

A komlett függvényblokkot kiemelve, a php fájlt elmentve és a böngészőt frissítve probléma nélkül lefut a kód, tehát – amennyiben a szintaktika egyébként jónak tűnik – mostantól kezdve lehet gyanakodni arra, hogy belekerülhetett egy nem odavaló karakter a kódba még annak ellenére is, hogy minden egyes karakterét mi magunk írtuk és semmit sem illesztettünk be máshonnan. Ilyenkor célszerű a szerkesztőben azt a nézetet választani, ami mutatja a nem látható karaktereket is, majd ismét rénézni a problémás sor(ok)ra:

Megvan a hiba? 🙂

Ott rontottam el, hogy a nagy igyekezetben a space billentyűt úgy nyomtam le közvetlenül a kapcsos zárójel előtt a 225. sorban, hogy még nem vettem fel a másik ujjam az alt-ról, így sikerült ott egy altspace kombinációt elhelyeznem, ami természetesen nem egyenértékű a space-szel.

Ilyen és ehhez hasonló dolgok történnek a fejlesztőkkel minden nap – és ha még csak ilyen, akkor annak csak örülni lehet, mert ez még a nagyon egyszerű problémák közé tartozik.