Články

Představte si, že máte jednoduchý web s recepty. Každý návštěvník vašeho webu bude moci přidat svůj recept a vy byste mu rádi doporučili, do kterých kategorií by ho mohl přiřadit. Jakým způsobem to provedeme automaticky?
Testování softwaru je komplexní téma, ale je důležité se zaměřit na jeho hlavní výhody. Proč by měli vývojáři psát testy, když by mohli raději pracovat na nových funkcích nebo vylepšování aplikace?
V tomto článku si ukážeme základní prostorové a jasové transformace pomocí Pythonu a knihovny OpenCV.
OpenCV je multiplatformní svobodná (licence Apache 2) knihovna pro práci s obrazem. Samotná knihovna je z velké části napsána v C++, ale poskytuje Python wrapper, díky kterému ji můžeme používat i v tomto oblíbeném jazyce.
Context manager (kontextový manažer) pomáhá soustředit se na konkrétní úlohu nad blokem kódu a neřešit vedlejší, ale přesto důležité operace, jako je alokace nebo uvolnění zdrojů.
Jedním z nejběžnějších datových typů v Pythonu je list (seznam). Seznamy během svého života často prochází určitým procesem - někde se vytvoří, v další funkci dojde k jejich úpravě, při které se některé položky odeberou, jinde se vytvoří seznam nový, který obsahuje položky původního seznamu, které ale prošly nějakou transformací a na konci se celý seznam přečte. Pojďme se podívat na tři základní způsoby, pomocí kterých můžeme vyrobit nový seznam.
Generátory v Pythonu umožňují efektivně procházet, respektive generovat data. Abychom měli potřebný teoretický základ pro popis generátorů, začneme od iteratorů.
Přepínání vláken je čistě v režii interpretu. Python 3 přepíná vlákna automaticky po intervalu 5 ms (hodnota sys.getswitchinterval) nehledě na to, co se ve vláknu děje a jestli je to potřeba. Přepínání kontextu samozřejmě zabere nějaký čas a navíc nedokážeme zajistit, při které konkrétní instrukci k přepnutí dojde. Bylo by proto ideální přepínat úlohy pouze ve chvíli, kdy je to potřeba. Tady se dostáváme k pojmu coroutines. 
Processes, threads, parallelism, concurrency Cílem každé aplikace je pracovat co nejrychleji a využít přidělené prostředky, jako je procesor a paměť, co nejoptimálněji.
Jedna věc, která usnadňuje vývojáři život, je možnost využití už existujícího kódu, který napsal někdo před ním. Kódu, který je udržovaný, otestovaný, použitý na různých projektech a tím pádem má vychytané i mouchy, na které by si jinak každý musel přijít sám.