!!! Od 1.6.2022 jsem nedostupný pro školení. Od té doby budu tvořit novou digitální banku v Komerční bance (a hrát si tam se Spring Boot, Docker, Kubernetes & Apache Kafka). Pokud by měl někdo zájem pokračovat ve školeních po mě, tak se mi ozvěte. Pokud by si někdo chtěl hrát s moderními technologiemi a pracovat v KB, tak se mi taky ozvěte :-) Na JavaDays (snad) opět budu, to si nenechám ujít :-) Letos (2022) očekávám, že budu mít v KB hodně práce než si všechno sedne. Přemýšlím, že bych v příštím roce uspořádal buď pár školení (zejména pro mé stálé a věrné zákazníky), anebo bych vytvořil nějakou novou konferenci nebo vymyslím nějaký jiný formát, protože je hromada lidí, které bych opět strašně moc rád viděl a považuji je za přátele. Časem (nejspíš v příštích pár měsících) vytvořím nový blog na separátní doméně a novinky Java a SQL školení dále rozšiřovat nebudu Je možné že se ke školením časem vrátím (nikdy neříkej nikdy), ale aktuálně budu kopat za tým KB :-) Pokud se něco změní, tak to dám včas vědět zde na webu a na blogu. !!!

Související novinky

publikováno: 28.5.2013

Na mých webech Java a SQL školení jsem přidal u všech novinek a doporučené literatury odkazy na související novinky:

Související novinky

Tyto novinky se vypočítávají dynamicky na základě několika kritérií, z nichž jedno je podobnost textů a klíčových slov příslušných novinek. K výpočtu jsem použil níže uvedený algoritmus, který vrací číslo v intervalu 0 až 1, přičemž nula znamená, že dva texty spolu vůbec nesouvisí a jednička znamená, že jsou na 100% shodné:

public class DocumentVector {

private Map<String, Integer> wordMap = new HashMap<String, Integer>();
private void incCount(String word) {
Integer oldCount = wordMap.get(word);
wordMap.put(word, oldCount == null ? 1 : oldCount + 1);
}
private double getCosineSimilarityWith(DocumentVector otherVector) {
double innerProduct = 0;
for (String w : this.wordMap.keySet()) {
innerProduct += this.getCount(w) * otherVector.getCount(w);
}
return innerProduct / (this.getNorm() * otherVector.getNorm());
}
private double getNorm() {
double sum = 0;
for (Integer count : wordMap.values()) {
sum += count * count;
}
return Math.sqrt(sum);
}
private int getCount(String word) {
return wordMap.containsKey(word) ? wordMap.get(word) : 0;
}
public static double calcSimilarity(String doc1, String doc2) { DocumentVector v1 = new DocumentVector();
for (String w : doc1.split("[^a-zA-Z]+")) {
v1.incCount(w);
} DocumentVector v2 = new DocumentVector();
for (String w : doc2.split("[^a-zA-Z]+")) {
v2.incCount(w);
} return v1.getCosineSimilarityWith(v2);
}
public static void main(String[] args) {
String doc1 = "maven, dependency, plugin, shade";
String doc2 = "kurz maven, školení maven, apache maven"; System.out.println("Similarity = " + calcSimilarity(doc1, doc2));
} }

A pak že je programování jenom o tom dostat data z / do databáze ... NENÍ!!! :)

Reference

Školení mi pomohlo ujasnit si jak má správně probíhat testování kódu, představilo užitečné knihovny a nástroje. Vše bylo podáno zábavnou formou, takže nebyl problém udržet pozornost. Navíc byl výhodou dostatek

Certicon
David

Jedno z nejlepších školení za poslední roky. Kromě seznámení se Springem apod. mě velmi příjemně překvapila hluboká znalost probírané látky a schopnost ji srozumitelně vysvětlit v případě ad hoc dotazů.

Jaroslav

Přestože jsem Cčkař, tak jsem se na školení JUnit dozvěděl nové věci. Zejména co se týče metodiky jednotkového testování a některých odborných termínů.

Retia
Jaromír


Novinky

16.4.2022: Docker Desktop & High CPU usage

5.4.2022: Spring4Shell 0-day vulnerability

30.3.2022: Online důchodová kalkulačka
Do důchodu daleko, ale je dobré vědět co nás bude čekat a mít v dokumentech pořádek.