Jak efektivně načítat webfonty
Posted 15. 11. 2015 / By Petr Soukup / Rychlost

Jeden z největších problémů při tvorbě rychlých webů je načítání písem. Musíte totiž řešit několik různých formátů, každý prohlížeč (a každá verze) načítá písmo jinak, také ho jinak cachuje a jinak vykresluje. Aby toho nebylo málo, tak se to navíc ještě každou chvíli mění. Úplně nejlepší by bylo používat jen systémová písma, ale to bychom pak neměli co řešit :)

Proč?

Zkuste si načíst svůj web v metru na zastávce. Pokud nemáte metro, můžete použít WebPagetest a nastavit rychlost 2G.

U drtivé většiny webů to dopadne tak, že budete zírat na bílou stránku, protože se odmítnou zobrazit, dokud nemají všechny zdroje staženy - to jsme tu už řešili. Pokud se ale načte layout, tak stejně můžete dál zírat na hezký web, který ale neobsahuje ani písmenko. Prohlížeč totiž ještě čeká na stažení písem a nic nezobrazí, dokud ho nestáhne (různé prohlížeče a verze tuhle situaci řeší různě). Metro se rozjede, vy se můžete až do příští zastávky kochat layoutem a doufat, že v další zastávce se stáhne písmo. A přitom to je úplně zbytečné.

Read More

Jak lze zjistit heslo k cizímu emailu na Seznam.cz
Posted 11. 10. 2015 / By Petr Soukup / Internet

Seznam.cz v posledních tiskových zprávách (nepřímo) uvedl, že bezpečnost jeho uživatelů pro něj není prioritou a raději se soustředí na vývoj svých aplikací na věštění. Chtěl bych s tím něco udělat a osvědčilo se názorně předvést jednoduchost zneužití, takže si ukážeme, jak lze hravě ukrást účet na Seznam.cz.

V únoru jsem tu předváděl, jak snadno lze zneužít platební kartu na Alza.cz - následně měli zabezpečení vyřešené za týden a s nimi i další eshopy - snad to nyní půjde podobně. V případě Alzy šlo o primitivní pasivní poslouchání komunikace. Tentokrát bude postup trochu složitější, ale o to nebezpečnější. Nebudu se spoléhat na nezabezpečené wifi, ale aktivně útočit na routery u vás doma.

Disclaimer: Budu názorně předvádět krok za krokem, jak ukrást cizí účet. V žádném případě to ale neznamená, že byste postup měli opakovat, protože by to byl trestný čin – to že někdo nechá otevřené hlavní dveře od domu ještě neznamená, že si z něj můžete odnést televizi. V tomto postupu dělám simulaci na svém vlastním routeru, takže nikdo nepřišel k újmě.

Read More

ShopAPI už je skoro dospělé!
Posted 28. 09. 2015 / By Petr Soukup / Aktualitky

shopapi.czPřed časem jsem tu představil novou službu ShopAPI, která výrazně zjednodušuje napojení eshopu na dodavatele. Sjednocuje formát dat o produktech a navíc přidává funkce jako třeba stahování pouze změn, vyčištění textu nebo rozložení textu na parametry.

Původně jsem chtěl každý týden odkrýt novou funkci, ale odezva byla výrazně větší, než jsem očekával, což plány trochu posunulo. Místo přidávání funkcí se tak spíš ladily a rozšiřovaly ty existující. Pár důležitých změn ale je, takže bych vám je rád představil.

Read More

Jak si vyrobit "New Relic" na koleni
Posted 20. 09. 2015 / By Petr Soukup / Vývoj

Nedávno jsem tu dlouze popisoval, jak nemáte vymýšlet kolo a dneska si ukážeme, jak se takové kolo vymýšlí. Potřeboval jsem sledovat konkrétní údaje o výkonnostních mezerách v našich eshopech a New Relic na to nestačil, takže jsem si musel vyrobit vlastní.

Read More

Jak (ne)používáme v PHP exec
Posted 13. 09. 2015 / By Petr Soukup / Cloud

elephpantNa funkci exec v PHP se dívám podobně jako na eval. Určitě má svoje využití, ale pokud je to možné, raději se jí vyhnu. Obvykle totiž celý problém lze vzít z jiného konce s mnohem lepším výsledkem.

Co je exec()?

Pokud jste byli vždycky jen na sdíleném hostingu, tak exec možná ani neznáte, protože tam je prakticky vždy zablokovaný. Exec (a jemu podobné shellexec, system, passthru atd.) slouží k zavolání systémové příkazu a získání výstupu. Může to vypadat například takhle:

<?php
exec('convert /tmp/image.jpg -resize 500x500');
exec('rm -rf /'); // suicide!

První příkaz převede obrázek pomocí ImageMagick a druhý smaže všechny (co práva dovolí) soubory na disku. Už možná tušíte, co se mi na něm nelíbí.

Read More

Všechny vás nahradí inteligentní stroj
Posted 16. 08. 2015 / By Petr Soukup / Aktualitky

Pokud máte mladšího sourozence, který si teprve vybírá směr svého vzdělání, měli byste ho důrazně varovat. Trh práce totiž projde v příštích letech výraznou změnou, přestože to teď tak možná ještě nevypadá. Některá odvětví zcela zaniknou, z jiných bude rarita.

Read More

Spouštíme novou službu - ShopAPI.cz
Posted 09. 08. 2015 / By Petr Soukup / Eshop

shopapi.czPokud jste řešili něco kolem provozování eshopu, určitě jste už narazili na jeden z největších problémů - dodavatele. Je nezbytně nutné řešit propojení s nimi, ale bohužel zaspali někdy v devadesátých letech. Dnes vám představím naši novou službu, která to řeší!

Read More

Jak se migruje obrovská databáze bez výpadku
Posted 02. 08. 2015 / By Petr Soukup / Vývoj

Některé úkony jsou primitivní, dokud je nepotřebujete provést na trochu větším projektu. Hezkým příkladem je třeba migrace databáze - jednoduchý úkon při velikosti 20 MB, ale daleko komplexnější pro 400 GB.

Read More

4 zrady při tvorbě mezinárodních webů
Posted 06. 07. 2015 / By Petr Soukup / Eshop

Aktuálně provozujeme e-shopy ve 23 jazycích. Narazili jsme při lokalizaci na některé zrádnosti, takže se s vámi o ně podělím, ať si ušetříte spoustu času.

Nebudu řešit lokální specifika jako platby nebo dopravy - to zase jindy a dnes jenom jazyky.

Read More

Nevymýšlejte kolo
Posted 14. 06. 2015 / By Petr Soukup / Vývoj

Když jste chtěli před lety něco naprogramovat v PHP, tak to znamenalo nejdřív si napsat knihovnu pro práci s databází, se soubory a tak dále. Neexistovaly ještě (pořádné) frameworky ani jiné nástroje, takže většinu vývoje spolklo zdržování se s řešením problémů, které vlastně s výslednou aplikací nesouvisely.

Doba pokročila - máme frameworky, cloud, vychytané knihovny, balíčkovací systémy a vývoj díky tomu jde šíleně rychle. Pořád tu je ale překvapivě velká skupina vývojářů, která tohle ignoruje a stejný zpátečnický postup pak vnucuje i začátečníkům. A to je škoda.

rewheel

Read More

O blogu
Blog o provozování eshopů a technologickém zázemí.
Aktuálně řeším hlavně cloud, bezpečnost a optimalizaci rychlosti.

Rozjíždím službu pro propojení eshopů s dodavateli.