Monthly Archives: március 2008

Hogyan NE írjunk APIt? Az IWIW első lépései

Benjamin aposztrofálta a hónap IWIW fejlesztésének, miszerint az IWIW elkövetett valami olyat, ami igazi API-nak nevezhető: egy felhasználó fotói elérhetőek RSS-ben is. Ennek nagyon megörülve el is határoztam, hogy összedobok egy widgetet belőle, már csak azért is, hogy az IWIW lássa a hazai fejlesztői támogatást és érdeklődést az ilyen lépések iránt. Két dolognál bukott el a dolog…

IWIW API

Egy felhasználó képeinek URL-je http://www.iwiw.hu/pages/misc/gallery.jsp?userID=xxxx&tab=images formájú, ahol az xxxx a felhasználó azonosítóját jelenti. Az első, és legnagyobb gond, hogy ez a cím használhatatlan, mivel csak akkor elérhető, ha be van jelentkezve a kliens az IWIW-re. Ezt egy widget platformon, ahol vagy egy szerver oldali alkalmazás szedi le az adatokat az IWIW-től, vagy egy olyan böngésző, amivel nem vagyok feltétlenül bejelentkezve (gondolok itt az Apple Dashboard-ra), vagy egy idő után kijelentkeztet a rendszer, bár kivitelezhető a lekérdezés, nem mondanám, hogy egyszerű a dolgom. Ez az URL tehát akkor és abból a böngészőből érhető el csak, amikor és amivel be vagyok jelentkezve az IWIW-re. Nem ragozom, használhatatlan tehát a hozzáférés.

Egy másik kisebb-nagyobb gond, hogy az IWIW nem nyújt olyan API-t, amivel egy felhasználó nevéből megkapható lenne a felhasználó azonosítója. Egy widget az nem geekeknek készül, hanem átlag felhasználóknak, elmondani neki hogy hogyan nyerheti ki a saját vagy ismerőse “felhasználói azonosítóját” (azmiaz?) – hát nem egy egyszerű dolog.

A lépés értékelendő az IWIW részéről (részemről pont ilyen kis lépéseket gondolok célszerűnek), de így nem ér semmit sem. Hozzátenném, hogy mivel pletyka szinten értesültem a dologról, lehet hogy az IWIW nyújt olyan megoldást, melyről nem tudok. Lehet hogy nem ártana ezeket a fejlesztéseket publikus fórumon közzétenni, egy kis fejlesztői dokumentációval?

TV műsor API

A StartUP konferencián beszélgettünk az API-król, s ennek a vitának a kapcsán vetette fel valaki (nem vagyok benne biztos, hogy konkrétan a vitán), hogy milyen jó lenne egy filmes, TV műsoros adatbázishoz hozzáférő API. Van egy projekt, aminek kapcsán éppen kialakítás alatt áll nálunk egy ilyen adatbázis, a hosszú hétvégén a TV műsor részhez össze is dobtam egy API jellegű hozzáférést. Arra lennék kiváncsi, szerintetek mi hiányzik belőle? Mire használnátok fel?

Kezdetnek íme az előzetes: http://barthazi.hu/jaccoter/tvmusor/api.php?type=xml&channel=m1+m2&day=20080324 – a TV csatorna, csatornák nevét, és a dátumot kell megadni, illetve a kívánt formátumot, ami PHP, XML és JSON lehet. A műsor jellemzően pár napra előre elérhető, és egyelőre nem töltjük az adatbázisba, csak a népszerűbb adókat. Az API jelenleg minden korlátozás nélkül használható, az URL viszont előbb-utóbb megszűnik (pontosabban átalakul).

Blogszemle, játssz Te is a Miner API-val!

Konteszt. A feladat: designold át a Blogszemlét úgy, hogy online újság kinézete legyen. Vagy másmilyen, ahogy neked tetszik. Díj nincs, ha beleegyezel a design felhasználásába, és úgy alakul az oldal átköltözik a blogszemle.hu domainre hosszútávú projektként, akkor egy linket fogok tudni felajánlani az oldal alján a weblapodra. De nem ez a lényeg, hanem a játék – ha nem szeretnél, nem kell beleegyezned abba sem, hogy felhasználásra kerülhessen a design.

A Blogszemle egy a Miner motorjára épülő, a népszerű témákat összegyűjtő, és újságszerűen megjelenítő jáccótéri projektecske. Az oldal automatikusan áll össze különböző statisztikák alapján, emberi szerkesztés nincsen a folyamatban.

Ha szeretnél te is játszani, akkor a folyamatosan változó adatokat a http://barthazi.hu/jaccoter/bsz/data címen érheted el PHP “szerializált” formátumban -  igény esetén XML-t is adok. Keverj, mashupolj hozzá egyéb információkat is bátran. A szövegrészletek, belinkelt oldalak és képek az adott blogok szerzőjének tulajdonát képezik!

Két kérés a szerver felé

Apró, ám fontos tény a webfejlesztők számára, hogy egy oldallekérés során a böngészőnk egy adott domain felé maximum két kérést küld, és ha több fülön indítunk el kéréseket, akkor is maximum 6 kérés megy párhuzamosan egyszerre az adott domain felé. A böngésző átkonfigurálásával ez megváltoztatható, és elvileg gyorsabb böngészés érhető el így (több helyen olvasni javaslatot ennek a számnak a növeléséről mint Firefox gyorsító tipp), ámde nem ilyen egyértelmű a helyzet. Az IE8 ezeket a számokat 2/6-ról 6/18-ra növeli – nem feltétlenül minden helyzetben érve el ezzel a kívánt hatást. Ezt járja körül az Ajax Performace bejegyzése.

Speed Limit

A probléma a szerverek konfigurációjánál kezdődik. A jelenlegi beállításokkal sok szerver arra van felkészítve, hogy egy böngésző felé maximum 6 kérést szolgáljon ki. 18 kérés egyszerre történő kiszolgálása egyrészt megterhelőbb lehet, másrészt életbe léptetheti a DOS támadás kivédését szolgáló biztonsági mechanizmusokat, vagy lassítva a kiszolgálást, vagy egyszerűen kitiltva egy kis időre az adott böngészőt (IP címet). A párhuzamosan több adat lekérése nagyobb sávszélesség és processzor igénnyel is rendelkezik, a sávszélesség igény a forgalomdíjas netet használókat érintheti rosszul, a processzor igény pedig jellemzően mindenkit.

A problémát egyébként már megoldották (megkerülték) azok a webes szolgáltatásokat nyújtók, akik gyorsabb kiszolgálást szerettek volna elérni. A megoldás több aldomainről kiszolgálni a kéréseket, így megszüntetni ezt a kötöttséget. Ebben az esetben azonban van egy strapabíró szerver környezet a háttérben, és megvan a lehetőség is a skálázásra.

Az IE8 ezirányú változtatásának tehát ára lehet, azzal együtt, hogy
maga az ötlet nem feltétlenül rossz, nem biztos hogy jó lesz a hatása.
A tapasztalatokat most lehet gyűjteni, míg béta állapotú a
böngésző, aztán esetleg ezt megváltoztatni, visszaállítani a régi
állapotot, ha ez szükséges.

Generálj menüt

Jellemzően kézzel is legyártja az ember egy oldal menüszerkezetét, mégis egy olyan oldallal kerültem szembe, ami sokat tud segíteni: a menü designolásától a konkrét HTML + CSS kód elkészítéséig. Mivel a minap találkoztam megint egy olyan webfejlesztővel, aki szerint a táblázatos layout kényelmesebb, fokozottan ajánlani tudom a szolgáltatás által összeállított kódot. Íme, az IzzyMenu:

Egy kihaltnak hitt állatfajta, a HTML 5

Dolgoznak a HTML munkacsoport tagjai, olvasom a HTML Infon, és valóban, megy a fejlesztés. Fejlesztik, megvitatják a HTML 5 szabványt, fejlesztik a böngészőket. A Firefox, Safari/WebKit, Opera kapcsán már megszokhattuk a folyamatos fejlesztést, s míg az IE7-tel közel sem lehettünk elégedettek, az IE8 esetében előfordulhat, hogy nem lesz rá rossz szavam (több rossz szavam, mint bármelyik más böngészőre). Az aktív fejlesztés a böngészőpiac minden szegmensében pedig jó, a bepunnyadt lehetőségeket épp az ideje egy kicsit felturbózni. Sajnos továbbra is nagy kérdés, hogy mikor hal ki végre az IE6, és szívesen megásnám a sírját az IE7-nek is. Reméljük ezen a szinten is tudnak az IE8 kapcsán látható előrelépést tenni a Microsoftnál. Mert rajtuk múlik.

De lássuk, hogy mi a helyzet a jövőt illetően – amikor a ma még fejlesztett böngészők elterjednek széleskörűen. Kapunk teljes CSS 2.1 támogatást. Ez olyan dolgokat tesz végre lehetővé, mint a display: table, vagy a CSS generált tartalom (content) lehetősége. De jön a :before, :after, :focus pszeudo elem támogatás, és az outline is, mely elemek kiemelését teszi lehetővé a layout megváltozása nélkül.

A HTML elemek alt tulajdonsága végre alternatív tartalomként, és nem title-ként fog viselkedni. A manapság nem túl széleskörben használt button HTML elem a value tulajdonságát fogja a szerver felé elküldeni, nem pedig az általa befoglalt HTML részletet.

Fejlődik az AJAX és a JavaScript is. A getElementById függvény kisbetű-nagybetű érzékeny lesz, és tényleg csak az akkor ad vissza egy elemet, ha az id tulajdonsága egyezik, és nem akkor is, ha a name tulajdonsága egyezik. Lehetővé válik az egyes weboldalak (iframe-ek) közötti biztonságos kommunikáció a postMessage lehetőségével. A böngészők támogatni fogják a különböző domainek közötti “AJAX” kommunikációt, adatok elérését is, bár várhatóan nem szabványosan, de ez egy függvénykönyvtárral megoldható lesz.

Javulnak a fejlesztőeszközök, a Microsoft gyakorlatilag lemásolta a Firebugot (éljen), fejlődik a Firebug is. Remélhetőleg további ügyes eszközök is elterjednek, és az Opera és WebKit is hasonló szintű eszközöket fognak tudni majd felmutatni.

Ezek a szösszenetek IE8 központúan, és erősen szubjektív válogatásban tükrözik azokat az újdonságokat, melyek remélhetőleg mihamarabb (persze ez itt most 2-3 évet is simán jelent) mindennapi munkánk során használhatóak lehetnek úgy, hogy aggódnunk kellene azt illetően, milyen böngészőt használnak látogatóink. Addig is: nem árt megismerni ezeket (sok böngészőben már kipróbálhatóak, tesztelhetőek!), és felvenni a ritmust a fejlődő és egyre szabványosabb web kapcsán. Itt az ideje.

Drágába kerül a semmi

A StartUP Konferencia egyik legszórakoztatóbb előadását egy ígéretes startup, az iGlue vezetője, Vaskó Péter adta elő. A projekt a szemantikus webről, az információk összekapcsolásáról, mederbe tereléséről szól, a célja egy wikipédiához hasonlóan szabadon szerkeszthető és elérhető szemantikus adatbázis létrehozása, és ennek az információtömegnek a könnyen elérhetővé tétele. Ennek kapcsán egy olyan eszközt is készítenek, mely bookmarkletként aktiválható egy cikkoldalon, blogbejegyzésen (weblapon) állva, s az oldal tartalmát össze képes kapcsolni az iGlue adatbázissal.

iGlue demo

Péter nem csak erről beszélt, hanem arról is, hogy milyen a magyar startupok helyzete, s az információhoz, elvileg közkincs tartalmakhoz milyen nehéz hozzájutni ma Magyarországon. Azt hiszem, hogy előadása már most klasszikus, de amellett hogy szórakoztató, érdemes elgondolkodni is azokon, amit mond (a videóért köszönet Dr. Telkes Józsefnek):


Drágába kerül a semmi