Články z kategorie Programování

V nejodbornější kategorii tohoto blogu jsou zařazeny články s mými programátorskými zkušenostmi získanými několikaletou praxí tvorby stránek a java aplikací pro mobilní telefony.

7+1 API pro online podnikání a lepší webové aplikace

Ve svém okolí jsem známý svou nechutí k používání všelijakých „hotových” řešení a frameworků – rád mám věci podle sebe a zcela pod svou kontrolou. Nechci být závislý na rozhodnutí jiných lidí, ať už se to týká nabízených funkcí (a dalšího rozvoje), bezpečnosti, nebo v extrémních případech i samotného zachování existence použitého hotového řešení (spousta věcí je poskytována v režimu „ber jak je a dokud je”, tedy bez garance, že server, ke kterému se připojujete, bude fungovat i zítra).

Přesto jsou oblasti, ve kterých se mi dlouhodobě vyplácí spoléhat na externí řešení. Jedná se zejména o oblasti, které netvoří můj „core business”, v případě nouze se bez nich obejdu (nebo je mohu snadno nahradit), ale dokud jsou, šetří mně i mým zákazníkům práci, čas a ve výsledku i peníze. Díky těmto externím řešením (a mnoha automaticky spouštěným úlohám řešícím rutinní práce) mohu na Vyplňto.cz pracovat i po šesti letech stále sám, a ještě vedle toho tvořit weby na zakázku, protože na to jednoduše „mám čas”.

V tomto článku jsem se s Vámi rozhodl podělit o 7 šikovných API, která mi velmi pomáhají (+ jedno vlastní). Budiž Vám článek inspirací i pro zlepšení Vašich webových aplikací a stránek :-)

přečíst celý článek

Publikováno dne 01. 04. 2014 v kategorii Programování.

OmniGraffle - užitečný nástroj na zachycení myšlenek a kreslení schémat

Stále častěji ve své praxi narážím na potřebu vytváření wireframů, jakýchsi modelů uživatelského rozhraní (nejen) internetových stránek. Hlavním účelem těchto modelů je zobrazit veškeré hlavní prvky všech podstránek, a definovat případné provázanosti mezi nimi (např. který odkaz vede na kterou stránku, nebo co se má na stránce zobrazit po kliknutí na určitý objekt). Wireframy pomáhají zachytit klientovu představu o budoucí podobě webu, takže když se na ně posléze podívá grafik, ví velice přesně, s čím má při grafickém návrhu počítat.

Až dosud jsem pro tvorbu "wireframů" používal vysoce sofistikovaný nástroj - Microsoft Word. Strávil jsem neskutečné hodiny kreslením všelijakých formulářových políček a boxů, jejich kopírováním a pozicováním. Výsledek nestál za moc, a když přišel požadavek na nějakou změnu například v záhlaví webu, mohl jsem vyletět z kůže - upravovat to na všech podstránkách se mi nechtělo. Kdybych tyto "wireframy" nedělal ve Wordu, ale vytvořil v HTML přímo hotové stránky, bylo by to snad i rychlejší.

Včera jsem se rozhodl svou produktivitu v činnosti vytváření wireframů výrazně zvýšit, pročež jsem si zakoupil specializovaný nástroj. Krátké výběrové řízení začalo produktem Axure RP, který před dvěma lety doporučoval Martin Snížek. Po zhodnocení všech vlastností jsem shledal, že za $589 není Axure RP zase takové terno, a začal jsem hledat alternativy. Skončil jsem u produktu OmniGraffle Professional, který mě zaujal hned ze čtyř důvodů:

  • stál jen $199 (standardní verze bez některých funkcí stojí $99)
  • uměl prakticky vše, co Axure RP (a něco navíc)
  • šel narozdíl od Axure RP zaplatit Paypalem (jelikož mám mBank bez možnosti příjmu zahraničních plateb, jsou pro mě peníze na Paypalu poněkud hůře utratitelné - jedna z věcí, které se mi na Macu líbí, je jakási samozřejmost platby za software přes Paypal)
  • byl vyvíjen přímo pro Mac OS X, takže plně ctí jeho filozofii - tedy funguje intuitivně

přečíst celý článek

Publikováno dne 18. 07. 2010 v kategorii Programování.

5 dobrých důvodů, proč ukládat uživatelem nahrané soubory do databáze

Ještě před dvěma lety jsem se při myšlence ukládání uživatelských dat ošíval a argumentoval zvýšenou zátěží serveru (a tím pádem nižší rychlostí), popř. rovnou výpadkem databázového serveru a následnou nedostupností i obyčejných souborů ke stažení (linkovaných třeba i z cizích stránek). S přibývající praxí s klasickým ukládáním souborů do složek jsem však svůj názor na tuto problematiku dost zásadně přehodnotil, a výsledkem je, že počínaje dnešním dnem na Vyplňto.cz všichni uživatelé ukládají soubory pouze do databáze.

Proč tomu tak je a bude i u většiny mých dalších projektů se můžete dočíst v tomto článku, uvítám samozřejmě v diskusi Vaše názory na tuto problematiku.

přečíst celý článek

Publikováno dne 09. 11. 2008 v kategorii Programování.

FCKeditor a AJAX - problém s GetData a jeho řešení

Sobotní den pro mě byl ve znamení programování, konkrétně jsem se zabýval úpravami FCKeditoru pro použití na stránce Vyplňto.cz. Kromě specifického ukládání souborů do databáze (pochlubím se později) jsem potřeboval zejména zajistit průběžné ukládání editovaného obsahu na server přes ajax, protože to je jedním ze základních pilířů ovládání Vyplňto.cz (minimalizace klikání na jakákoli tlačítka, žádné odesílání formulářů, vymizení problému s expirací seance při psaní delších textů).

Řešení a opravný kód na konci článku.

Objevil se však nečekaný problém – jakmile jsem pomocí FCKeditorAPI a funkce GetData (popř. starších GetHTML nebo GetXHTML) přečetl obsah FCKeditoru, rázem přestaly v Internet Exploreru (verze 6 i 7) fungovat některé základní formátovací funkce – např. tučné, skloněné a podtržené písmo (core styles - bold, italic, underline). Jako přesvědčený uživatel IE jsem samozřejmě nad tímto problémem nemohl mávnout rukou a rozhodl se ho vyřešit.

přečíst celý článek

Publikováno dne 09. 11. 2008 v kategorii Programování.

Jak opravit poškozenou innodb MySQL databázi

Včera se mi již podruhé za 18 měsíců provozování serveru stala velice nepříjemná věc – pokazila se mi jedna z innodb MySQL tabulek (zřejmě několikaset megová tabulka textů písní). Důsledkem této chyby bylo, že se zhruba každých 10 sekund kompletně restartoval démon MySQL serveru a po dobu restartu se na všech stránkách zobrazovaly chyby typu "Can't connect to local MySQL server through socket" nebo "MySQL server has gone away".

Po několika hodinách experimentování se mi konečně podařilo v půl čtvrté ráno server opět nahodit, s výsledným postupem (který zabere nakonec jen pár minut) jsem se rozhodl s Vámi nyní podělit (za půl roku zase jako když to najdu :-))

přečíst celý článek

Publikováno dne 26. 09. 2008 v kategorii Programování.

Braňte se proti spamu - zabezpečte své internetové stránky

Nevyžádané emaily (SPAM) tvoří naprostou většinu emailové komunikace a kromě obtěžování uživatelů přinášejí i zvýšené požadavky na kapacitu emailových serverů (ať už se jedná o zátěž spojenou s prostým přijetím zprávy nebo její následné antispamové analýzy). Přestože dnes existují pokročilé antispamové nástroje, které dokáží například analyzovat i v jeden čas velmi populární texty zaslané v podobě obrázku, stále není ochrana proti nevyžádané poště zdaleka stoprocentní a stále denně ve své poště nacházíme reklamy na všelijaké viagry nebo zázračné výhry.

V dnešním článku Vám neporadím, jak zabezpečit Váš server proti tomu, aby z něj spammeři zdarma a "beztrestně" rozesílali SPAM (částečně probráno v minulém článku), ale zaměřím se na zcela jinou oblast – sběr (skenování) emailových adres na internetu pro využití k nelegálnímu zasílání SPAMu a zejména možnostem obrany proti tomuto jevu na Vašich stránkách.

přečíst celý článek

Publikováno dne 19. 08. 2008 v kategorii Programování.

Jak zabezpečit chat nebo diskusní forum proti škůdcům

Během čtyřleté historie vývoje a správy pokecu na stránkách Ujdeto.cz si dovoluji tvrdit, že o zabezpečení chatů a diskusních for vím více než většina průměrných programátorů. V tomto programátorsko - psychologickém článku bych rád zejména začínajícím a lehce pokročilým programátorům poradil, co by měli dělat proto, aby byl jimi naprogramovaný internetový svět krásnější a pokud možno bez produktů internetových škodičů - ať již z řad těch nejprimitivnějších internetových diskutérů, nebo naopak pekelně chytrých skoro-hackerů.

přečíst celý článek

Publikováno dne 26. 07. 2008 v kategorii Programování.

Proti proudu: Nemám rád úpravu hotových řešení!

Trendem poslední doby je znovupoužitelnost již naprogramovaného. Povídáme si o tom ve škole na přednáškách i později u piva, vášnivě o tom diskutujeme na studentském serveru Všeborec.cz.

"Ty se ještě furt děláš s vlastním redakčním systémem? Taky jsem tak začínal, teď nedám na wordpress dopustit. Všechno je jednoduché - změním pár šablon a hned to frčí do světa. Někdo udělá novej plugin a já si ho hned můžu naimportovat, na kód nemusím ani šáhnout."

Podobně slastné výkřiky slýchám poslední dobou ze všech stran. Po znovupoužitelnosti na úrovních copy-paste, funkce, objekt a komponenta se přesouváme do období customizace hotových řešení. A neříkají to pouze kolegové informatici, čím dál častěji s tím za mnou chodí i klienti.

"Chceme jistotu, že to bude fungovat. Když to používají statisíce (miliony,...) lidí, znamená to, že to asi je funkční. Potřebujeme dodržovat standardy, které uznává mnoho lidí, aby případně mohl na práci bez problémů pokračovat i někdo jiný."

Ano, uznávám, že existují důvody, kvůli kterým má smysl v některých případech o customizaci hotových řešeních uvažovat (uvedu na konci). Obecně jsem však k podobným produktům spíše skeptický a v tomto článku bych si dovolil polemizovat s nejčastějšími argumenty pro a přihodit i pár svých proti.

přečíst celý článek

Publikováno dne 18. 06. 2008 v kategorii Programování.

Jaké java hry a aplikace spustíme na K850i? Stručný popis podporovaných JSR.

V nedávném článku jsem popisoval své první uživatelské dojmy z mobilního telefonu Sony Ericsson K850i. Dnes si na toto povídání dovolím lehce navázat, a to zevrubným popisem podporovaných Java Specification Requests (JSR, podrobný popis naleznete v angličtině na stránkách JCP).

Zatímco prodejci mobilních telefonů často končí pouze označením MIDP profilu (MIDP 1.0, MIDP 2.0,...), v praxi uživatele i programátory víceméně limituje právě to, zda daný telefon podporuje určitý JSR nebo nikoli. Absence podpory některých JSR je známá například u modelu K700i - přestože měl telefon v sobě zabudované bluetooth, díky absenci JSR 82 (Bluetooth API pro javu) nebylo možné spustit žádné "bluetooth" java aplikace (např. BT Explorer, Blueroom apod). Následující řádky tedy nemusí být zajímavé pouze pro programátory, ale také pro běžné uživatele, kteří chtějí na mobil nainstalovat některé specifické java aplikace a nejsou si jistí, zda to bude fungovat.

přečíst celý článek

Publikováno dne 24. 11. 2007 v kategorii Programování.

Textarea v FCKeditoru (i jinde)

Dnes jsem řešil poměrně zajímavý problém - v jednom redakčním systému jsem potřeboval klientovi umožnit editovat HTML kód formuláře pomocí FCKeditoru. Zdálo se, že by v tom neměla být žádná zrada, nicméně byla. Jakmile se do formuláře vložila textarea, FCKeditor sice na server poslal korektní HTML kód, ale již jej nebyl schopen načíst. Místo původního kódu formuláře s textareou zobrazil něco jako:

...
<textarea rows="5" cols="5">
&lt;/body&gt;&lt;/html&gt;
</textarea></p>

A dál už ani ťuk, třebaže formulář za textareou ještě pokračoval. Po chvilce googlení jsem zjistil, že většina prohlížečů si neumí poradit s vnořenými textareami. Řešení problému však nakonec existuje a je docela jednoduché.

přečíst celý článek

Publikováno dne 20. 11. 2007 v kategorii Programování.

© Marek Demčák 2007 - 2018
Všechna práva dle Autorského zákona (č. 121/2000 Sb.) vyhrazena.