Feb26

PostgreSQL (26) - Rozšiřujeme funkčnost

Kategorie: Databáze, Počítače
Žádné komentáře

Další díl seriálu o PostgreSQL mi vyšel na portále LinuxSoft.cz.

A začíná přituhovat, najíždíme na uložené procedury (stored procedures), mocný nástroj na doplnění funkčnosti a přenesení částí aplikací do databáze, která tak přestává sloužit jen jako prosté úložiště dat.

Feb23

Hledání ideální databáze

Žádné komentáře

Přestože ještě před několika lety (asi tak 8-10) jsem se do práce s databázemi nikterak nehnal, jsou dneska mou hlavní obživou, ať již jako programátora aplikací, které využívají databázový backend, nebo jako člověka, který se snaží jednu velmi zajímavou pokud možno co nejlépe prozkoumat a předat dalším vědomosti o ní. Jsa člověk, který preferuje oss řešení, pouzastavím se v tomto blogspotu u několika rozšířenějších databázových projektů.

MySQL

Pro řadu vývojářu se jedná o první SQL databázi, se kterou se seznámí. Často tomu není pro její kvality a funkce, které jsou v posledních verzích na dobré úrovni, ale pro její snadnost v používání a rozšířenost v učebnicích. Většina učebnic, jednoho z nejrozšířenějších programovacích jazyků, ale i kurzů PHP se opírá právě o tento databázový backend.

Především z řad webových vývojářů je MySQL vnímáno jako rychlé úložiště textů, ještě v dobách nedávných diskvalifikované téměž nemožností používat kódování UTF-8. Do verze 4.1 jsem měl z této databáze podobný pocit. Verze 4.1 vyřešila problém s ukládáním různých kódových stránek a verze 5.0 přidala funkčnost, která server sice mírně zpomalila, ale zato ji přiblížila k těm velikým databázím. Tou funkčností je míněna podpora transakcí, ano, ty staré verze uměly, ale ne na svých nativních souborech, stored procedur a triggerů.

Dnes je MySQL vyspělou datábází, kterou lze bez výrazných problémů nasadit téměř na libovolný systém, jen s mírně komplikovanou licencí. Nový engine Falcon, který píše Jim Starkey, dřívější vývojář Interbase/FirebirdSQL, slibuje výrazný pokrok ve všech směrech.

FirebirdSQL

FbSQL je velmi zajímavým kusem software. Pro spoustu lidí se jedná o databázi, která skvěle funguje pod MS Windows, nicméně, mám ji, k plné spokojenosti, otestovánu i na Linuxu. Bohužel pokud budete chtít tento server kompilovat pro jinou platformu, než je x86, budete mít trochu problémy. Silnou zbraní tohoto serveru je existence embedded verze, kdy nepotřebujete mít instalovaný celý server, ale pouze postačuje knihovna v místě, kde o ní Váš program bude vědět. Databáze je velmi rychlá a stabilní, ale velká slabina je v dostupnosti a kvalitě dokumentace.

PostgreSQL

O této databázi nemám tady moc co napsat. Rychlá, sice při malém zatížení pomalejší než FbSQL, nebo MySQL, stabilní s kvalitní licencí a velmi přesně splňující ANSI SQL. Mezi začátečníky není příliž oblíbená, protože první kroky v ní vyžadují větší použití mozku, než v případě MySQL. Obrovská možnostmi a podporou. Ano přiznávám, že v současnosti bych pro ní, v oss světě, stěží hledal konkurenta. Je to také ta databáze, do které se snažím co nejvíce proniknout a to co vím předat dále.

SQLite

SQLite není úplně opravdovou databází. Nejde o server, ale o malou knihovnu, která plní funkčnost velkých databází. Jedná se o embedded databázi v pravém slova smyslu, umí uložit data, updatovat, vymazat a vybrat, zvládá triggery a pohledy. A to je v podstatě vše :-). Především je malá, rychlá a kvalitní podporou v nejrůznějších programovacích jazycích. Já sám tímto řešením nahrazuji v udržovaných programech, psaných v Borland Delphi, starou a velmi obtížně vyhovující, manipulaci s několika dbf soubory.

SQLite3 má mnoho vylepšení, oproti SQLite2, zejména v lepší práci s Unicode, bohužel třeba PHP5 umí, bez doplnění o PDO, pracovat pouze se starší SQLite2. Všechny data i definice jsou uloženy v jediném souboru, který je pohodlně přenositelný kamkoliv a to dokonce bez ohledu na procesory, které fungují jako big endian, nebo little endian.

Další databáze

Tak a dalšími se tu zabývat nebudu, byť by to bylo zajímavé téma. Chtěl jsem postihnout jen několik apsektů v těch, které se využívají pro běžný vývoj. Tedy BerkleyDB je prý nejrozšířenější databází na světě, ale neznám moc programátorů. kteří by ji používali v zákaznických řešeních.

Poznámka

Tento článek vyšel v delší, upravené, podobě na portále LinuxSoft.cz.

Feb20

Kurz PHP 12.3.-14.3.2007

Žádné komentáře

Ve dnech 12. března - 14. března 2007, tj. 3 dny, pořádám, ve spolupráci s portálem Linuxsoft.cz, kurz jazyka PHP. počet míst pro zájemce je omezen. Obsah školení je (zhruba) tento:

  • (historické okénko), jak získat PHP, konfigurace apache + mod_php
  • Propojení PHP a (X)HTML/XML
  • Operátory, typy proměnných, řetězce, (regulární výrazy,) pole
  • řízení toku programu (cykly, podmínky, větvení)
  • Základní vestavěné funkce, tvorba vlastních funkcí, jejich volání, globální a lokální proměnné
  • objektově orientované programování (vč. rozdílného pojetí mezi PHP4 a PHP5)
  • Práce s daty z formuláře a se soubory
  • propojení s daty z databáze (MySQL, PgSQL, SQLite (, FbSQL))

Cenová a další podmínky získáte po kontaktování přes formulář na našem portále. Podle počtu účastníků se může cena změnit.

Feb20

Proč nemám rád objektové PHP

Žádné komentáře

Mnozí programátoři a “programátoři” se staví k OOP (objektově orientované programování ne “Organizace pro Osvobození Palestiny”) jako k všeléku na všechny jejich problémy při vývoji. Mnozí, i přestože používají plně objektový jazyk, píší neobjektový kód, kdy vše co potřebují napíší do jediného objektu a vytvoří pouze strukturovaný kód.

Jaké jsou výhody používání OOP?

Objektově orientované programování stojí na několika pilířích:

  • Objekty – jednotlivé prvky modelované reality (jak data, tak související funkčnost) jsou v programu seskupeny do entit, nazývaných objekty. Objekty si pamatují svůj stav a navenek poskytují operace (přístupné jako metody pro volání).
  • Abstrakce – programátor, potažmo program, který vytváří, může abstrahovat od některých detailů práce jednotlivých objektů. Každý objekt pracuje jako černá skříňka, která dokáže provádět určené činnosti a komunikovat s okolím, aniž by vyžadovala znalost způsobu, kterým vnitřně pracuje. Toto je velká výhoda objektového přístupu.
  • Zapouzdření – zaručuje, že objekt nemůže přímo přistupovat k „vnitřnostem“ jiných objektů, což by mohlo vést k nekonzistenci. Každý objekt navenek zpřístupňuje rozhraní, pomocí kterého (a nijak jinak) se s objektem pracuje.
  • Skládání – Objekt může využívat služeb jiných objektů tak, že je požádá o provedení operace.
  • Dědičnost – objekty jsou organizovány stromovým způsobem, kdy objekty nějakého druhu mohou dědit z jiného druhu objektů, čímž přebírají jejich schopnosti, ke kterým pouze přidávají svoje vlastní rozšíření. Tato myšlenka se obvykle implementuje pomocí rozdělení objektů do tříd, přičemž každý objekt je instancí nějaké třídy. Každá třída pak může dědit od jiné třídy (v některých programovacích jazycích i z několika jiných tříd).
  • Polymorfismus – odkazovaný objekt se chová podle toho, jaký je jeho skutečný typ. Pokud několik objektů poskytuje stejné rozhraní, pracuje se s nimi stejným způsobem, ale jejich konkrétní chování se liší. V praxi se tato vlastnost projevuje např. tak, že na místo, kde je očekávána instance nějaké třídy, můžeme dosadit i instanci libovolné její podtřídy (třídy, která přímo či nepřímo z této třídy dědí), která se může chovat jinak, než by se chovala instance rodičovské třídy, ovšem v rámci mantinelů, daných popisem rozhraní.

Proč je tedy nepoužívám v PHP?

Jsem zastánce jednoduchosti a rychlosti. Nepracuji na PHP kódu ve velikém teamu, proto nemám problém s prací s funkcemi a proměnými tak jak jsou v jednoduchém kódu.

Rychlost je pro mě hlavním důvodem, proč je nepoužívat. Režie vytváření instancí a mnohonásobných dědění je poměrně značná. PHP je interpretovaný jazyk používaný v drtivé většině případů pro vývoj webových stránek (ano vím, lze v něm psát i CLI, nebo GUI programy), což znamená, že každé načtení stránek vytváří objekty a po ukončení scriptu jsou tyto rušeny a uvolňovány z paměti. PHP v tomto případě nevytváří objekty, které by byly perzistentní v paměti.

Feb14

Softwarové novinky (26)

Kategorie: Linux, Počítače
Žádné komentáře

Další díl „nekonečného“ seriálu o novinkách ze světa software a (nejen) linuxových distribucí mi vyšel na portále Linuxsoft.cz.

Zkoušel jsem BeleniX, liveDVD, které je možno nainstalovat, a přiznávám, že Open Solaris mi je vcelku sympatický systém. Hodně sympatický.

Feb13

Proč používám Linux

Kategorie: Linux, Osobní, Počítače
Žádné komentáře

Jsem sice aktivním autorem na portále Linuxsoft.cz, ale tento příspěvek vzhledem k jeho povaze zveřejním radši na tomto blogu.

Linux jsem začal používat koncem 90. let 20. století. Dodnes si pamatuji, jaké jsem měl trable se stahováním asi tak 25 disket přes modem o rychlosti, spíše by bylo vhodné psát pomalosti, 14.4kbit/s. O něco později, ve vydavateletví Computer Press vyšla útlá knížečka s CD, na kterém byl RedHat 5.1. V této distribuci jsem se konečně začal učit trochu více a s příchodem Red Hat 6.1, který jsem měl opět od stejného vydavatelství, jsem měl k dispozici pořádný desktop, se kterým se tehdejší MS Windows 98 nedaly ani zdaleka srovnat. Po pár měsících vyšel Red Hat 7.1, ale na něj se mi již nepodařil hladký přechod, neodolal jsem a objednal instalační média Mandrake Linuxu 8.0. Ano v té době jsem opravdu kupoval instalační média, protože to byl jediný způsob, jak jsem je mohl rozumně získat a neobtěžovat při tom nikoho z okolí, zda-li mi něco stáhne a vypálí. Opět fungovalo téměř vše, co jsem potřeboval, byť v Mandrake byly v té době i podivnosti, které z ničehož nic, do restartu, přestaly fungovat. U Mandrake, později Mandrivy, jsem zůstal do jara 2006. Na jaře 2005 jsem koupil starší Apple iBook, ale protože mi MacOS X nevyhovoval, poohlídl jsem se po Linuxové distribuci, která by fungovala na PowerPC procesoru a vyzkoušel jsem Ubuntu Linux, se kterým jsem byl tak spokojen, že na jaře 2006 jsem na něj přešel i na desktopu a tímto opustil Mandrivu. Pokud mám být konkrétnější, dnes používám derivát Xubuntu, který je v podstatě Ubuntu, ale jako desktop je zvolen mnohem kompaktnější, rychlejší a přehlednější XFce namísto Gnome.

Dnes jsem s Linuxem více, než spokojen. V dobách, kdy jsem s ním začínal jsem neměl příliž rozumný přístup k internetu a získávání informací a rad bylo opravdu dost problematické. Podpora hardware je nepoměrně lepší a nemusím již sáhodlouze hledat základní desku, zvukovou kartu, …, která by pod Linuxem fungovala, funguje téměř vše, respektive, existují seznamy podporovaného hardware, se kterými snadno skonzultuji, zda-li vybraný model bude funkční.

Pokud bych nebyl poweruser, musel bych zkonstatovat, že běžný, kancelářský, uživatel se s Linuxem sžije velmi snadno a viděl jsem to na mnoha lidech v mém okolí. Běžné činnosti, im, prohlížení internetových stránek, email, kancelářské práce, přehrávání hudby i filmů jsou funkční téměř ihned, nebo s velmi jednoduchou instalací. Jako vývojář jsem též velmi spokojen. Protože hry nehraji, prostě mě to nebaví, nečiní mi jejich nedostatek žádné problémy a pokud bych hry chtěl hrát, považuji za vhodnější koupit konzoli.

Mým koníčkem a částečně i prací je vývoj webových aplikací. V MS Windows musím vynaložit mnohem větší úsilí, abych správně nainstaloval a zprovoznil Javu, PHP, Python, PostgreSQL, …, nehledě ke stabilitě. Vývojových prostředí mám na výběr podle libosti, z nichž jsem si vybral NetBeans pro Javu, Bluefish pro tvorbu webů a scriptů a Lazarus, ve kterém udržuji starší programy psané ještě v Pascalu.

Licencování je plusem Linuxu, byť GNU GPL považuji občas za velmi restriktivní pro tvorbu software. Ve srovnání s MS Windows mám legalitu používaného software vyřešenu mnohem lépe a přijatelněji, rozuměj, mám vše 100% legální. Hlavně jsem nemusel uzavírat EULA stylu „Otevřením balení vyjadřujete svůj souhlas s licencí“, přičemž licence je uvnitř balení.

Možná, že dalším mým krokem bude přechod na BSD, které má liberálnější licenci a mnohem lepší stabilitu, ale na desktopu je toto uvažování, pro mně, příliž předčasné, teď.

Feb12

Vyhoření

Kategorie: Osobní
2 komentářů

Každý z nás občas může chybovat, každému může dojít vůle a energie, takříkajíc padnout hubou do bláta, ale musí pak umět vstát, jít dál a třeba za cenu nového začátku. Problém je, když už těch padnutí na hubu je mnoho,když už člověk vstal tolikrát, že nemá sílu vstát po další.

Několik posledních let jsem zažíval vzestup, alespoň v očích mého okolí. Snažil jsem se, aby nikdo neviděl, že se jedná o vzestup z dost šílených sraček, do kterých jsem před pár lety zapadl. Snažil jsem se nedávat najevo, že nejsem v takové pohodě, jak si spousta lidí myslí. Bohužel se to nedávání najevo stále více otáčí proti mě. Zní to divně, ale ztrácím lidi kolem sebe, utíkají, protože s nimi nekomunikuji, protože se snažím nepřenést na ně moje starosti, ale být zticha, zatnout zuby a makat, abych co nejrychleji unikl z toho špatného.

Není to nikterak dávno, co jsem si podobné starosti ani zdaleka nepřipouštěl, ale asi jsem zestárnul, možná víc, než si připouštím, a nedokážu nad tím mávnout rukou. Každý člověk, který odejde z okolí, každý, na kom mi záleží a uteče, protože jsem uzavřený, mě mrzí, dál se uzavřu a odejdou další. Možná, že při tom rozsahu práce a činností, které dělám se zdá, že jsem v centru dění, ale vše je překvapivě velmi jinak. Žiju ve světě, který je neskutečně uzavřený, ve světě, kam přestává být přístup a ve kterém mám dojem, že nemají city, vztahy a přátelství co dělat.

Dal bych nevím co, kdybch mohl vše restartovat. Tedy ne úplně. Moci napravit to, co považuji za důležité a jakýmkoliv způsobem to pokazil. Udělal jsem příliž mnoho chyb a mám na výběr. Brečet nad roz(b)litým mlékem nejspíše není správně, ale mohu se oklepat a zkusit jít dál s tím, že hodím za hlavu to, co jsem pokazil. Nebo mohu zkusit alespoň část chyb napravit, protože jsem často ublížil těm, na kterých mi velmi záleží. Ta druhá varianta je zajímavá, protože bych byl velmi rád, aby tu jednou po mě zůstalo alespoň něco dobrého a užitečného, nejen zlost a trápení mého okolí, které se stále ztenčuje.

Mrzí mě, že v době, kdy se mi dařilo, bylo kolem mé osoby mnoho dalších lidí, kteří využívali co jsem jim poskytoval. Drtivá většina z nich se tvářila, že pokud budu potřebovat, pomohou zase oni mě. Když se dařit přestalo, utekli. Kdyby utekli jen Ti běžní, ale utekli i ti, které jsem miloval. Nikdo nestojí o to mít v okolí neúspěšného člověka, člověka, který má trable, a zvolí jednodušší variantu. Utéct.

Teď přemýšlíte, proč se tento blogspot jmenuje vyhoření, když je spíše o dopresích neúspěšného člověka? Protože přeci jen ve mně, událostmi posledních dní, něco vyhořelo. Něco, co bylo donedávna to nejdůležitější v životě, ale co jsem si, ve své hlouposti a slepotě nepřipouštěl.

Feb7

Proč jsem v ODS

Kategorie: Osobní, Politika
Žádné komentáře

Řada lidí se mně ptá, proč jsem v ODS, která, podle nich, může za bezpráví v republice, která způsobila rozvrstvení společnosti na chudé a bohaté. Odpověď je jednodušší, než si myslíte.

  • Jsem pravicově orientován. Věřím, že hlavní odpovědnost za svou životní úroveň má jednotlivec, ne že někdo zezhora rozhodne, že musí pracovat přesně zde, plat dostane podle takovéto tabulky (podle níž si někde odseděl 20 let a bez ohledu na skutečné znalosti a schopnosti má větší příjem, než mladší, ale schopnější a znalejší kolega na stejném místě) a odváží-li se přejmout odpovědnost na sebe tím, že začne podnikat, je mu to zezhora znepříjemněno neskutečným množstvím papírů, nařízení a omezení.
  • Levice v boji o voliče z chudých vrstev vydává neskutečné peníze na sociální výdaje, které nakonec nenutí chodit do práce. Těmito dávkami vzrostlo zadlužení, za posledních 8 let vlády levice, o zhruba 800 000 000 000,- KČ. Cílem levice je, abychom se měli všichni stejně, bohužel vzhledem k množství prostředků, které jsme schopni vyprodukovat to znamená, že všichni stejně špatně.
  • O zvýšení státního dluhu jsem již napsal. V době, kdy rostou příjmy státní pokladny roste zadlužení ČR. Pokud by se levicová vláda chovala jako racionální člověk, použije zvýšený příjem napřed ke splacení předchozích dluhů (když se Vám zvedne mzda, půjčíte si další peníze?) a teprve posléze bude přispívat na zvýšení úrovně nemakačenků.
  • Fandím rovné dani. Není zde jen příklad Slovenska, kde ještě nějakou dobu budou trvat porodní bolesti, které snížily životní úroveň nejchudších a vyhýbajících se práci, ale je zde třeba Estonsko, které je i díky tomuto nástroji jednou z nejrychleji rostoucích ekonomik v Evropské Unii.
  • Poznal jsem v této straně řadu lidí, kteří mně přesvědčili o své inteligenci, jsou realističtí a vědí, jaká je rozumná orientace směrování státu. Ano i oni dělají chyby a některé kroky se mi nelíbí, ale vcelku je to rozumné směrování.
  • Levicové vedení státu podpořilo montážní závody. Ano zaměstnali v nich lidi s průměrným platem kolem 10 000,- KČ, ale proč stejnou podporu nemohli dostat technologické firmy, které vytvoří třeba pětinu pracovních míst, ale pro odborníky a s několikanásobným platem? Pak jsou slyšet stížnosti, že inteligence odchází do zahraničí. Máme snad ambice se stát montážní halou EU? Podle mého názoru by neměl být zvýhodněn ten kdo zaměstná pouze masu dělníků, ale všichni, samozřejmě se zohledněním podle počtu zaměstnaných lidí a celkové investice partnera.
  • Pan Paroubek je v mých očích hulvát a demagog. Pan Zeman byl sice hulvát, ale realista a dostatečně inteligentní (prostě řekl věci nepříjemně, ale pravdivě), pan Paroubek je, podle mně, pouze hulvát, který křičí a uráží každého, kdo s ním nesouhlasí.

Nejsem spokojený s celkovým stavem politické scény u nás. Bohužel po volbách nás poškodila osobní antipatie pánů Jiřího Paroubka a Mirka Topolánka, která znemožnila rychlé vytvoření vlády. Vládu potřebujeme, byť je často slyšet názor, že i bez vlády tu vše fungovalo. Ano fungovalo, chybí vyhlášky a prováděcí předpisy k zákonům, které platí od 1. ledna 2007, protože neexistovala vláda, která by je mohla protlačit, těch 7 měsíců nebyly téměř vedená jednání se zahraničními investory, což sice není vidět dnes, investice se připravují i 10 let dopředu.

Feb7

Linux+DVD 2/2007

Kategorie: Linux, Počítače
Žádné komentáře

Na portále Linuxsoft.cz jsem převzal další milou povinnost, od tohoto čísla mám na starosti přehled časopisu Linux+DVD. Ten první přehled vyšel dnes. Toto číslo se mi líbilo, protože bylo zaměřené na programování.

Feb5

Základy typografie (2)

Kategorie: Počítače
Žádné komentáře

Druhý díl jemného nakopnutí k rozumné typografii jsem sepsal pro portál Linuxsoft.cz.