RSS Feed LinkedIn Google Plus

Kategória: JavaScript

  1. Kell-e a seed a randomhoz?

    2013. április 20. szombat

    Olvastam egy jó cikket a JavaScript-beli Math.random()-ról. Ha csupán (pszeudo)véletlen számokat szeretnénk, akkor tökéletes, számomra nagyon szimpatikus volt, hogy nem kell más nyelvekhez hasonlóan inicializálni. Ez teljesen feleslegesnek tűnt egészen a legutóbbi és egyben első magyarországi Leacy Coderetreat-ig, amikoris megörökölt, véletlenszerű működésre alapuló programot kellett helyrepofoznunk, karbantartanunk. Az első lépés természetesen a tesztek írása – no, de hogyan? Más programnyelvben dolgozó kollégáim könnyen megoldották a kérdést, hiszen beégetett seed-et használtak a teszt adatok generálásához (itt akadtak gondok, amikor különböző platformon más sorozatot adott ugyanaz a seed), nekünk, script nyelveseknek más utat kellett járnunk: legeneráltuk előre a random számokat, és mindig ebből dolgoztunk.

    A fent említett cikkben több megoldás is található, ha nem elsődleges szempont a sebesség, de szükségünk van előre tervezhető véletlenszerű értékekre, David Bau megoldása tökéletes választás lehet JavaScripthez. Hátránya, hogy a natív Math objektumot módosítja, előnye viszont hogy transzparens – teszthez bekapcsolhatjuk, éles környezetben pedig továbbra is az eredeti Math.random() állhat rendelkezésünkre.

    Remélem, sikerült felkeltenem az érdeklődésedet, s bár a következő (egyben Legacy) CodeRetreat-re nincs már több hely, ha feliratkozol a Meetup.com-on, értesülhetsz a további lehetőségekről.


  2. Turn Based Processing

    2013. február 28. csütörtök

    Megnéztem Crockford bácsi videóját a Monadokról, küldöm mindenkinek, aki szereti. :)

    (more…)


  3. HTML5 vs Native: The Mobile App Debate

    2011. június 27. hétfő

    Michael Mahermoff a Google-től a natív és HTML5 alapú mobil alkalmazásokat hasonlította össze. A cikk a html5rocks-on jelent meg, várható az eredmény, mindemellett részrehajlás nélkül igyekszik megközelíteni a dolgokat. A következő dolgokat vizsgálta meg. (more…)


  4. Diagramok JavaScripttel

    2011. június 20. hétfő

    Számaink voltak bőségesen, mindenféle statisztika óriási táblázatokkal… de ki érti ezt? Az ügyfelek a színes-szagos (sőt, ha lehet, izgő-mozgó) ábrákat szeretik. Emiatt esélyes volt, hogy kliens oldalon készítsük el a grafikonokat. Szükségünk volt vonal, oszlop és torta diagramokra, real time frissítésű adatokra, több Y tengelyre. Az ár nem volt elsődleges szempont, de a látványosság és használhatóság annál inkább. A gyűjteményből az alábbiakat emélném ki. (more…)


  5. Using JSShaper to Provide Operator Overloading for JavaScript

    2011. június 14. kedd

    A JavaScript nem ad lehetőséget az operátorok felüldefiniálására, azonban a JavaScript Shaper eszközzel ezt viszonylag egyszerűen megtehetjük. Megéri-e? A JavaScript dinamikus nyelv, egy változó bármilyen típusú értéket felvehet, így óvatosan kell bánni vele… Ráadásul ezzel egy fordítási lépést be kell iktatni… ami nem feltétlenül baj, például ha a JSShaper által támogatott restricted módot is használjuk. Gyakran látom, hogy nagy szabadságot kínáló nyelvek gyorsan el tudnak terjedni, s miután nagyobb programok készülnek vele, egyre nagyobb lesz az igény a „vaskalapos” megoldásokra… Így volt vele a Perl is: ma már minden újonnan létrejött Perl script use strict;-tel kezdődik. :)

    A JSShaper-nek viszont tetszik a logger plugin-ja: egyszerű utasítással tudunk log üzeneteket elhelyezni a kódban, amit fordításkor kiegészít a fálj és függvény nevével, valamint a forráskód aktuális sorával. Nagyon hasznos.

    De ha már egyszer JavaScript-közeli nyelvről JavaScript-re fordítunk, vannak alternatívák: CoffeeScript, Traceur


  6. JSON+Comments

    2011. június 9. csütörtök

    Egyet tudok érteni getify gondolataival: a JSON formátum ma már nem csupán üzenetek, adatok küldésére használatos. Kicsit hosszúra sikeredett a bejegyzése, de jó érvekkel támasztja alá. Douglas Crockford is azt írta még 2005-ben:

    a JSON kódolónak nem szabad megjegyzéseket tennie a stringbe, a JSON dekódolónak viszont el kell fogadnia és figyelmen kívül hagynia őket.

    Miért is olyan fontos ez? Ha a konfigurációs fájl formátuma JSON (például JSLint-nél is), vagy template rendszerként használnánk (szintén fájl formában), akkor ott a programozónak szüksége van arra, hogy megjegyzéseket tegyen a „kódba”. A JSON+Comments (JSON+C) lényegében valid JSON plussz valid megjegyzések. Nem szeretné módosítani a jelenlegi JSON parse-olókat, ő a JSON.minify() függvényt vezette be, ami eltávolítja a megjegyzéseket és a white space-eket (mondván, a megjegyzéseket is tekinthetjük üres karaktereknek, amiket szintén azért használunk, hogy érthetőbb legyen a struktúránk.)

    De létezik más megközelítés is: a JSON-t nem erre találták ki. Ha konfigurációs fájlt szeretnék, sok esetben használhatnék JavaScriptet… bár, ha több nyelven kell hozzáférni, jobb a JSON.


  7. Jasmine, Vows+should+sinon…

    2011. június 6. hétfő

    Hosszabb szünet után végre ismételten Budapest.js meetup-on voltam. :)

    Aba Péter ismertette, miben tér el a Jasmine a QUnit-tól. Vártam volna, hogy többet mond a BDD-ről (ez számomra ismeretlen terület még), mindemellett tetszett az előadása.

    Lackac a Vows + should.js + sinon.js hármast mutatta be. Számomra kicsit tömény volt, de nagyon tetszett, hogy a gyakorlatról beszélt. Illetve gyorstalpaló jelleggel bemutatta ezen eszközök használatát, mégis érezni lehetett, hogy mindez számára/számukra nem csupán elmélet; a tesztelés, a BDD nem öncélú, ahogyan a Node.js használata sem.