Pokin: k čemu je dobrá vysokoškolská matematika
O nové mobilní aplikaci Pokin, která vyhrála 16. AppParade, jsme se letmo zmínili na našem blogu již před měsícem. Nyní nastala vhodná doba podívat se na ni podrobněji. Pod lechtivým zevnějškem se totiž skrývá poměrně sofistikovaná technologie, kterou jsme museli v Ackee vyvinout od píky a stali jsme se tak v této oblasti průkopníky svého druhu.
Samotná aplikace slouží k měření sexuální aktivity. Zjednodušeně můžeme říci, že je to vlastně takový RunKeeper do postele. Pokin vám dokáže změřit čas, počet přírazů, frekvenci a také hlasitost partnerky. Můžete pak srovnávat své výkony a sledovat, jestli se v některých parametrech postupně zlepšujete.
Narozdíl od běhání, kde RunKeeper jednoduše sleduje přes GPS váš pohyb a měří k tomu rychlost, je sex z technologického hlediska mnohem větší výzva. Problém není nasbírat potřebná data, úskalí tkví v tom, jak z nich dostat relevantní informace o uživatelově sexuálním výkonu. Už jen proto, že každý pohyb je trochu jiný a každá matrace je jinak tvrdá. V datech se tím pádem nachází spousta ruchů, které znesnadňují přímou analýzu sexuální výkonu.
Abychom mohli s daty dále pracovat, museli jsme je nejprve očistit. S tím nám pomohlo několik algoritmů, jako například Savitzky-Golay filter, který dokáže zvýšit poměr signálu k šumu bez výraznějšího zkreslení signálu. Ze známých algoritmů jsme dále použili třeba Moving Window nebo Low-pass filter. Samotný proces čištění dat je překvapivě velmi podobný způsobu čistění analogového signálu.
Ve chvíli, kdy máme k dispozici očištěná data, je možné se pustit do jejich hloubkové analýzy. Cílem bylo najít v číslech spojitosti a rozpoznat relevantní parametry sexuálního výkonu. Na základě podobností jsme dokázali určit série a naopak jsme byli schopni zamítnout falešně pozitivní výsledky. Teprve až na konci tohoto procesu jsme měli k dispozici relevantní informace o uživatelově sexuálním výkonu, které jsme mu mohli následně přehledně prezentovat.
Tomu celému musela předcházet důkladná simulace v matematickém softwaru Matlab, kde jsme si naše hypotézy nejprve ověřili a až následně jsme je mohli převést do kódu
Na vývoji algoritmů potřebných k analýze naměřených dat jsme pracovali v týmu 4 lidí a v jeho průběhu jsme určité aspekty podrobili také konzultacím s matematiky. Práce na těchto algoritmech nám zabrala přibližně 80 % doby vývoje celé aplikace, který trval zhruba 1,5 měsíce.
Ohledně uživatelského testování se vyjádřil na 16. AppParade prezentující Robert Rosenberg, ale to již není téma pro tento striktně technologický blog :-).
V Ackee se prostě nebojíme technologických výzev!