FK~

Moje odkazy

Ostatní odkazy

EFF: svoboda blogování
Close Windows
Nenajdete mě na Facebooku ani Twitteru
Rozpad EU
Jsem členem FSF
Jsem členem EFF

CLOC: počítáme řádky kódu

vydáno: 30. 9. 2015 23:10, aktualizováno: 1. 10. 2015 01:26

Když si stáhnu zdrojové kódy nějakého programu, jednou z prvních věcí, které zkoumám, je, v čem je to napsané a kolik toho je. Počet řádků kódu považuji za celkem důležitý ukazatel, ale o tom zase někdy příště… Programovací jazyk můžeme zjistit podle přípon souborů nebo nahlédnutím do nich. Řádky zase můžeme spočítat pomocí příkazu wc z GNU coreutils. Ale pro tyto úkoly existuje daleko lepší specializovaný nástroj, který se jmenuje cloc (Count Lines of Code).

Přepisujeme soukromé proměnné v Javě pomocí reflexe

vydáno: 13. 6. 2015 22:56, aktualizováno: 14. 6. 2015 12:40

Java je (primárně) objektově orientovaný jazyk a máme zde zapouzdření – k soukromým (privátním) proměnným cizího objektu nemůžeme přímo přistupovat – objekt si je může měnit jen sám a ostatním to může dovolit jen nepřímo přes svoje metody. Přesto Java nabízí způsob, jak zapouzdření obejít – reflexe.

Java 8: Stream API

vydáno: 17. 1. 2015 23:23, aktualizováno: 9. 3. 2015 00:11

Dnes si na praktických příkladech ukážeme další novinky v Javě 8. Lambda výrazy, kterými jsme se zabývali minule, tu nejsou jenom pro okrasu – používají se ve standardní knihovně a umožňují elegantní práci s proudy objektů skrze nové Stream API.

Java a princip RAII (CADRe) známý z C++

vydáno: 9. 9. 2014 10:06, aktualizováno: 9. 9. 2014 16:23

C++ nemá garbage collector (GC) a navíc si s sebou táhne historické dědictví jazyka C a ruční správy paměti. Proto je spousta programů v C/C++ docela peklo a udržovat kód prolezlý pointery je procházka minovým polem. Ale nemusí tomu tak být – v moderním C++ se používá princip RAII a další vymoženosti.

Java 8: coalesce – hledáme neNULLové hodnoty

vydáno: 11. 8. 2014 20:54, aktualizováno: 12. 8. 2014 10:22

Jednou z věcí, která mi v Javě vždycky trochu chyběla, je funkce coalesce(). Možná ji znáte z PostgreSQL. Funkce přijímá na vstupu více hodnot a vrací první z nich, která není NULL. A hodnotu NULL vrací pouze v případě, že jsou všechny vstupní hodnoty NULL. Hodí se to třeba při práci s mezipamětí nebo pro nastavování výchozích hodnot v případě, že chybí specifické.

Java 8: novinky jazyka

vydáno: 9. 8. 2014 13:24, aktualizováno: 12. 8. 2014 19:26

Přiznám se, že změn v osmé verzi Javy jsem se trochu obával. Ale nakonec, když jsem to trochu víc prozkoumal a zkusil si napsat nějaký ten kód, tak se mi to líbí. Mám z 8 radost.

XML Web generátor – verze 0.4

vydáno: 6. 7. 2012 21:22, aktualizováno: 28. 6. 2014 16:19

V případě mého programu XML Web generátor chybí projektový a produktový management a vývoj probíhá zcela živelně. Vydání nové verze znamená, že se urodil dostatek nových funkcí, aby stálo za to a tom napsat. Kvalitáři by z toho neměli radost, ale myslím, že u takovýchto programů to tak prostě má být :-)

XML Web generátor – verze 0.3

vydáno: 8. 1. 2012 17:32, aktualizováno: 10. 12. 2013 21:10

Zase jsem po večerech a ve chvílích volna udělal trochu práce na svém generátoru webových stránek. Takže tady je souhrn novinek. Pokud nevíte, o co jde, přečtěte si nejdřív úvod: XML Web generátor. Nejzajímavější jsou na něm tzv. makra, která umožňují vkládat do generovaných stránek různé věci pomocí jednoduchých značek (podobné jako XHTML značky, akorát se nachází ve vlastním jmenném prostoru).

Distribuované verzovací systémy: Mercurial – úvod

vydáno: 24. 11. 2011 21:58, aktualizováno: 14. 9. 2014 14:56

Předchozí díl tohoto seriálu byl věnovaný teorii distribuovaných verzovacích systémů. Dnes se konečně podíváme prakticky na jeden z nich – Mercurial (zkráceně Hg). Kromě úplných základů (přidávání souborů pod správu verzí, mazání, přejmenovávání…) si také ukážeme, jak se vracet ke starším verzím a jak si verze pro větší přehlednost označovat pomocí štítků.

Distribuované verzovací systémy: úvod

vydáno: 20. 1. 2011 02:59, aktualizováno: 14. 9. 2014 14:49

Verzovací systémy jsou jedním z nejdůležitějších vývojářských nástrojů a užitečné mohou být i jinde. V současné době jsou v módě distribuované verzovací systémy – dnes se na ně tedy podíváme teoreticky a v dalších dílech se budeme věnovat prakticky jednotlivým implementacím.

Verzovací systémy – svn, git, hg – svatá válka?

vydáno: 29. 12. 2009 13:32, aktualizováno: 20. 6. 2015 10:38

Který z nich je nejlepší? Nebo je lepší ještě nějaký jiný (CVS, P4 - Perforce, ClearCase, BZR)? Skvělé téma do internetových diskusí. Můžete se o nich hádat podobně jako o tom zda je lepší VIM nebo Emacs, případně jestli se má používat editor nebo IDE.

Procházení kolekce a null v Javě

vydáno: 19. 8. 2009 22:33, aktualizováno: 6. 1. 2014 12:19

Pravděpodobně už jste narazili na nutnost ošetřovat různé nestandardní případy, např. když vaší metodě někdo podstrčí jako parametr null. Mějme tento kód: Collection<String> kolekce = …; for (String s : kolekce) { System.out.println(s); }

Proč psát programy česky?

vydáno: 4. 6. 2009 15:15, aktualizováno: 10. 9. 2014 14:14

Krátké zamyšlení pocházející z jedné diskuse o tom, v jakém jazyce (nikoli programovacím) psát zdrojové kódy.

Posílání zpráv pomocí fronty (POSIX MQ)

vydáno: 7. 4. 2009 12:15, aktualizováno: 3. 9. 2014 22:15

V operačních systémech odpovídajících standardu POSIX jako je např. Linux nebo Mac OS máme k dispozici systém front. Jedná se o něco podobného jako JMS, ale na nižší (systémové) úrovni. Tato technologie nám umožňuje vytvářet pojmenované fronty (názvy začínají lomítkem). Do těchto front můžeme posílat zprávy a následně je z fronty vybírat. Fronty jsou tak použitelné pro asynchronní meziprocesovou komunikaci (IPC).

Ukázka ORM – Hibernate JPA

vydáno: 15. 3. 2009 00:09, aktualizováno: 29. 1. 2014 22:01

Objektové programování a relační databáze, to jsou dva dost odlišné světy. K jejich propojení můžeme použít objektově relační mapování (ORM). Ne vždy je to nejlepší cesta a rozhodně to není cesta jediná, ale když už čtete tuhle stránku, předpokládám, že víte, do čeho jdete :-) V dnešním článku se podíváme na jednoduchý příklad použití ORM v podání aplikačního serveru Glassfish a Hibernate (použijeme ho jako poskytovatele JPA).

Mercurial? Co to je?

vydáno: 14. 3. 2009 23:26, aktualizováno: 15. 2. 2015 11:44

Jednoduchý návod jak si stáhnout zdrojáky nacházející se v mém mercurialovém úložišti.