Síla dvou kontextů cypress.io

9.3.2019

Na webu yachtingu máme netradiční tří krokovou registraci, která sice ihned v prvním kroku vytvoří uživatelský účet, ale ten není aktivní, dokud uživatel neklikne na odkaz v emailu a nevyplní další údaje, například heslo.

Impossible state impossible

8.6.2018

Today I’ll show you how to easily and safely fix the “function may return undefined” error. That’s right and wanted behavior, but not in case you know that you never get that undefined value. You may experience this especially when using functions like head, last or find.

Přednáška: Testing like you mean it

6.3.2018

Testování na základě vlastností

23.6.2016

Často se setkávám s názorem, že psaní jednotkových testů je nuda neboť manuální vymýšlení a psaní fixtur je zdlouhavé a repetitivní. Dnes se pokusím ukázat a na pár příkladech vysvětlit, jak testuju svůj kód já. Technika se nazývá property based testing a psaní takových testů rozhodně nenudí.

Continuous delivery

7.5.2016

Dobře rozjetá webová aplikace bežící pár měsíců na produkci. A žádné testy. Přesně k takovému projektu jsem se dostal a dneska popíšu, jaké změny jsem nutně potřeboval zavést, abych projekt mohl úspěšně a hlavně relativně v klidu rozvíjet.

Automatická kategorizace dokumentů

20.6.2015

Představte si, že máte obrovské množství obsahu, který potřebuje roztřídit. Rozhodit do kategorií nebo třeba otegovat. Něco jako dělá Google s vašimi maily, kdy se snaží co nejlépe určit, do jaké kategorie příchozí zpráva patří. Kategorie mohou být například “práce”, “sociální sítě” nebo nejklasičtější příklad “spam”. Jak to dělá? Možných způsobů je samozřejmě několik. Tomu s uživatelskou definicí pravidel se věnovat nebudeme, ale představíme si statistické řešení založené na Bayesově větě.

Purely functional data structures

4.4.2015

Zajímalo mě, jak lze datové struktury implementovat čistě funkcionálně, tedy při podmínce, že nemám k dispozici nic víc než funkce, closury a primitiva. Otevřel se mi nový svět…

Transducers v JavaScriptu

20.3.2015

Clojure není jenom o na první pohled divné syntaxi plné kulatých závorek, ale také o převratných myšlenkách. Jednou takovou myšlenkou jsou transducers, “a powerful and composable way to build algorithmic transformations”. Dobře, ale… Cože?

Kolize dvou rotovaných obdélníků

4.1.2015

Kolize bodu a rotovaného obdélníku

3.1.2015

V jednom projektu potřebuju zjišťovat, zda bod leží v obdélníku. Můj problém ale trochu zkomplikoval fakt, že obdélník může být rotovaný. Z pohledu člověka brnkačka, z pohledu počítače už to tak jednoduché není.

Starého psa novým kouskům naučíš

11.11.2014

Dnešní článek je především reakcí na sérii “From AS3 to C#”, ve které Jackson Dunstan postupně srovnává ActionScript 3 se C#. Leč ActionScript nedisponuje tak bohatou zásobou klíčových slov jako udržovaný C#, ze srovnání nevychází vůbec špatně. Tedy až do 17. dílu, kdy došlo na iterátory potažmo generátory. Jackson tvrdí, že zkrátka není co srovnávat, protože více jak osm let starý ActionScript iterátory/generátory neumí…

Generátory v PHP

26.10.2014

Není pochyb o tom, že se PHP s každou novou verzí posouvá dopředu. Některé vlastnosti si nese z minulosti a proto se jich nemůže tak rychle zbavit. Avšak tam, kde to hlasování a zpětná kompatibilita dovolí, tam se snaží držet krok s vyspělejší konkurencí. Minulý rok vydaná verze 5.5 přinesla mimo jiné jednu důležitou novinku: generátory. Obejdete se bez nich, ale o hodně se připravujete.

node.js: native extension

18.10.2014

Zajímalo mě, co obnáší napsání vlastního addonu (nativního rozšíření) do node.js a jak velký nárůst výkonu to ve výsledku přinese. A protože mám implementovaný stejný sudoku solver jak v JavaScriptu, tak v C, rozhodl jsem se to zjistit.

node.js: zpracování úloh náročných na čas

12.10.2014

Jakkoliv se node.js tváří asynchronně a umožňuje jednoduše psát asynchronní kód, je nutné si uvědomit, že se tak ve většině případů skutečně jenom tváří.