Později než ovbykle, ale přece :). Zkouškové pro mě skončilo, známky mám v informačním systému a tedy, již tradičně, bych chtěl v následujícím příspěvku shrnout, jaké byly mé předměty v zimním semestru a zda se naplnilo mé očekávání ze září 2009.
Před pár dny mi konečně došla nová kniha od A. Stepanova (autor C++ STL) a P. McJonese, nazvaná Elements of Programming (EOP), která byla vydána v roce 2009. Tuto knihu, která bývá srovnávána s Knuthovým The Art of Computer Programming (TAOCP) (ať už svými myšlenkami, či matematickou náročností), bych vám chtěl v následujícím příspěvku velmi krátce představit.
Při přednáškách a přípravě na letošní zkoušky z Analýzy a návrhu informačních systémů a Bezpečnosti informačních systémů jsem si vzpomněl na pár pojmů, které bývají často zaměňovány a používány v opačném významu, i když je mezi nimi rozdíl. Mezi tyto pojmy patří např. validace a verifikace, metodologie a metodika a aplikační versus business logika (odmítám psát byznys logika, protože to vypadá divně). Ač je zde samozřejmě možnost, že tyto pojmy jsou na různých místech definovány a chápány různě, tak v následujícím příspěvku bych chtěl zmínit, jak to vidím já a různé zdroje, které jsem nalezl :).
Sice jsem teprve v posledním ročníku magisterského studia, ale jelikož plánuji pokračovat v doktorském studiu na FITu, tak jsem si ze zvědavosti prošel seznam předmětů, které byly/jsou otevírány letošní rok a vybral jsem pár předmětů, které bych si zřejmě zapsal :). Orientace: teoretická informatika, matematika, programovací jazyky.
Na námět jednoho mého čtenáře (fakt, ono zřejmě někdo ty moje příspěvky čte! :] j/k) se v tomto příspěvku budu zabývat vztahem mezi znakem (character) a bajtem (byte) v jazycích C a C++. Mimo jiné se dozvíte, proč strlen() vrací vždy počet bajtů v předané posloupnosti ukončené nulovým bajtem a proč nemůže sloužit k tomu, aby vracela počet širokých znaků (wide characters) předaného řetězce, např. pokud se jedná o řetězec znaků reprezentovaných v Unicode.
Ač jsou mnohdy tyto dva termíny mylně používány ve vzájemné souvislosti ("programuji v dynamickém jazyce, tedy dynamicky programuji"), tak mezi oběma termíny (koncepty) je velmi zásadní rozdíl, který je činí naprosto ortogonálními. Lze tedy využívat konceptů dynamického programování v jazyce, který není považován za dynamický a zároveň lze programovat v dynamickém jazyce, aniž by bylo využíváno dynamického programování. Cílem tohoto příspěvku je oba termíny vysvětlit, aby vynikl jejich rozdíl.
Rok 2009 se pomalu blíží ke konci a tak jsem se rozhodl, podobně jako minulý rok, zamyslet nad tím, co pro mě tento rok znamenal a co se v něm zajímavého odehrálo. Opět se mrknu na kulturní oblast, konkrétně jaká hudební alba, filmy a koncerty z tohoto roku mě zaujaly. Všem přeji mnoho zdaru do nadcházejícího roku 2010 ;).
Programátoři v Pythonu, kteří k tomuto jazyku přešli z některého staticky typovaného jazyka (C++, Java, ...), mívají problém s tím, že se snaží používat koncepty, které mají zažité z jiných jazyků, ale které v Pythonu nemají co dělat. Jeden z nich se týká zneužívání funkce isinstance() a cílem tohoto příspěvku je na něj poukázat a vysvětlit, v čem je problém.
Jelikož jsem na toto téma nedávno narazil při diskusi s mým spolubydlícím a také se pravidelně objevuje v předmětech prof. Hrušky :), tak jsem se rozhodl osvětlit část problematiky přístupu ke globálním proměnným v jazycích Python a PHP.