JavaDays 2016

javadays-logoLetos poprvé budu přednášet na "velkých prknech" v rámci konference JavaDays pořádané 14. - 15. listopadu 2016 společností Gopas. Budu přednášet o Spring Security knihovně, která se za léta stala již industry standardem pro řešení autentizace a autorizace v Java projektech. Pokud jste se s touto knihovnou setkali jen letmo nebo vaše znalosti v tomto směru zastaraly, rád vás uvítám na mé přednášce, ve které bych chtěl průřezově projít všechna nejdůležitější zákoutí této knihovny a její novinky z posledních let. Zkušeným programátorům, kteří tuto knihovnu dennodenně používají, mnoho nového nesdělím. Tak je to ale s každou přednáškou na téma, kde jste silní - nejvíce vám dá vždy taková, kde toho v dané oblasti víte nejméně. Přesto se budu snažit vás nenudit a nečím překvapit.

Kafemlejnek.TV Akademie 5 - Základní techniky hackování – Roman Kümmel

hacking

Tento díl obsahuje praktické ukázky základních hackovacích technik jako je SQL injection, cross site scripting a nezabezpečený upload. Jedná se jen o ilustrativní výsek z desítek dalších zranitelností, které můžete na webu potkat.

Cílem bylo především ilustrovat, že útoky nejsou nikterak složité - tím spíš, že již existují automatizované nástroje, které všechno radikálně zrychlí a zdokonalí. Jednoduchost a nebezpečnost těchto útoků by měla nás, tvůrce webových aplikací, motivovat k tomu se v této oblasti vzdělávat a nenechávat vrátka pro hackery otevřená.

Kafemlejnek.TV 14. - hackování web aplikací

Roman Kümmel

Roman Kümmel je známá osoba v oblasti webové bezpečnosti. Stojí za portálem www.soom.cz a tuto problematiku taktéž uceleně školí. V této oblasti se díky evangelizační činosti mj. i Michala Špačka hodně udělalo, ale přesto existuje řada mýtů a podceněných oblastí při vývoji webových aplikací, které se snažíme v tomto díle poodhalit.

Za celým dílem je moje (tj. Novojova) účast na Romanově školení, která mi v řadě oblastí otevřela oči. Např. jsem se dozvěděl, že pomocí reflektovaného XSS útoku lze ukradnout login a heslo napadeného uživatele. Možná nebezpečí reflektovaného XSS překvapí i řadu z vás.

Kafemlejnek.TV 13. - Motion capture ve Warhorse Studios

Jan ZámečníkV posledním díle z Warhorse Studios zpovídáme Honzu Zámečníka o nahrávání animovaných scén pomocí motion capture. Animace jsou pro nás, programátory, naprosto španělskou vesnicí, ale o to víc nás rozhovor bavil.

Zkraje se bavíme o tom, co to MoCap je a jak se v průběhu času vyvíjel. Jaká jsou jeho úskalí a co jsou vlastně jeho hlavní benefity. Na závěr dílu si ukážeme jak takový MoCap vypadá v reálné scéně ze hry Kingdom Come: Deliverance.

Kafemlejnek.TV 12. - umělá inteligence v Kingdom Come: Deliverance

DSC_0177V druhém díle z Warhorse Studios zpovídáme Tomáše Plcha na téma umělé inteligence ve hře Kingdom Come. Umělá inteligence je v dnešní době skoro buzzwordem a tak nás zajímalo, které techniky konkrétně ve hře využívají a k čemu.

Inteligence protivníků je v dnešní době dělící čarou mezi průměrnými a perfektními hrami. Dá se sice do jisté míry dohnat skriptováním a dobrým designem levelů, ale WOW efekt dokáže vyvolat jen "improvizující", dobře udělaná AI.

Kafemlejnek.TV 11. - o vývoji ve Warhorse Studios

Michal HapalaWarhorse studios se proslavili svým úspěchem na Kickstarter s RPG hrou situovanou do doby Václava IV. a začínajícího husitství v Čechách - Kingdom Come: Deliverance. A jelikož jim Forresti dělali nový web, slovo dalo slovo a domluvili jsme natáčení přímo v jejich kancelářích, které jsou v Karlíně od nás, co bys kamenem dohodil.

Na úvod jsme vyzpovídali Michala Hapalu, který je jedním prvních zaměstnanců Warhorse a programuje animace, fyziku, hratelnost a “entity”. Jednou z entit v jeho případě je kůň, což je reálnější entita, než s jakou se může setkat většina programátorů, jako jsme například my :)

Kafemlejnek.TV 10. - mass mailing z pohledu marketingu

hakosV tomto technicky hodně odlehčením díle se s Lukášem Hakošem z Clever Monitoru díváme na problematiku mass mailingu z uživatelského pohledu. Probereme s ním zásady, kterých je dobré se držet, pokud chcete využít tento prostředek ke svému prospěchu.

Pokud jste orientovaní na technikálie, můžete tento díl s klidem přeskočit, jelikož v něm nic technického prakticky neuslyšíte. To však neznamená, že by rozhovor s Lukášem nebyl zajímavý a informačně prázdný.

Kafemlejnek.TV 9 – Do hlubin elektronické pošty

IMG_20160419_165240Myslíte si, že na rozesílání e-mailů vůbec nic není? Lukáš Hakoš z Clever Monitoru se vás v tomto díle pokusí přesvědčit o opaku. Pokud vám nic neříkají termíny jako SPF, SRS, DKIM, DMARC, SenderID a další, je tento díl určen právě pro vás.

Díky stále rozšířenému "spam" mailingu byli provozovatelé mail serverů nuceni implementovat celou řadu ochran, do kterých je velmi jednoduché se chytit i v případě, že rozesíláte naprosto legální poštu. Správné rozesílání pošty je v současné době věda, které nemálo lidí věnuje celý svůj profesní život. Pojďte s námi nakouknout do jejich kuchyně a maličko se vzdělat.

Kafemlejnek.TV 8 - Bezpečný router Turris Omnia

turris-omniaVyzpovídali jsme Martina Strbačku z CZ.NIC ohledně jejich chytrého routeru Turris Omnia, se kterým zabodovali v crowd-fundingové kampani na Indiegogo. V současnosti na jeho vývoj vybrali již více jak 1 mil. dolarů, což je úspěch v českých luzích a hájích nevídaný.
Martina jsme se zeptali na detaily týkající se organizace kampaně, týmu, který za vývojem routeru stojí, ceně a především výhodách oproti běžným routerům. Dozvíte se detaily technické specifikace a také to, jak je nakládáno s daty, které router sbírá. Myslím, že se máte na co těšit!

How to make Apache HttpClient trust Let's Encrypt Certificate Authority

Apache HttpClient is a popular library that many other frameworks build upon. Naming one for all - you can find it in Spring Framework RestTemplate. It's quite suprising that its not easy to find compherensible walkthroughs how to make it trust server certificates that are not validable by certificate chains baked in standard Java installation. Spending a few hours searching and tweaking the code I've decided to document easy - step by step solution how to do this for emerging Let's Encrypt certificate authority (but it's applicable to any other CA too).

Kafemlejnek.TV 7. - Kafka, Samza, Druid.io

DSC_0022V tomto pokračování rozhovoru s Lukášem Havrlantem se věnujeme technologiím optimalizovaným pro zpracování a analýzu velkého množství událostí. Kafka - distribuovaná replikovaná fronta s možností "vracení se v čase", Samza - stream processor zjednodušující zpracování událostí z časové řady, Druid.io - sloupcová databáze na bázi agregovaných dat.

Lukáš nám osvětlil jak všechny tyto tři technologie pasují dohromady, s jakými těžkostmi se potýkali a jestli se to vyplatilo.

Obsah:

Poděkování

Kafemlejnek.TV 6 - Nastupující architektury web aplikací

DSC_0024Kdo nezná Lukáš Havrlanta, měl by určitě věnovat nějaký čas jeho článkům na Zdrojáku či lépe přímo na jeho blogu Programio. Čeká ho velmi hutné čtení v oblasti, se kterou se většina z nás často nesetkává - realtime BigData. Sám jsem některé jeho články louskali 2x, abychom se některým závěrům dostali na kloub.

V tomto díle jsme se podívali na zajímavé architektury web aplikací, které pomáhají řešit nově nastupující trend semi-online.

Kafemlejnek.TV 5 - WordPress

DSC_0088Tento díl přináší pokračování rozhovoru s Davidem Biňovcem a Honzou Matouškem z firmy Automattic. Automattic je firma, jejíž šéf spoluzaložil WordPress a která stojí i za WordPress.com.

V tomto díle se ptáme na technologické otázky spojené s WodPressem, na procesy, které používají pro deployment a v závěru rozebíráme i obchodní věci týkající se plateb a zákonů EU.

Odkazy:

Kafemlejnek.TV 4 - Jak se pracuje v Automatticu

DSC_0088Ve 4. díle jsme se setkali s David Biňovec a Jan Matoušek z firmy Automattic. Automattic je firma, jejíž šéf spoluzaložil WordPress a která stojí i za WordPress.com.

Tato firma je zajímavá tím, že nemá nikde centrální kanceláře, ale všichni zaměstnanci pracují vzdáleně. Povídali jsme si o tom jaké to je pracovat pro takovouto firmu a také trochu o WordPressu. Příští díl bude věnován především WordPressu a jeho zázemí.

KafemlejnekTV 3. - Puppet

DSC_0044 (1)V druhém díle natáčeném v kancelářích Puppet Labs jsme si povídali pouze o technologickém pozadí toho, co v Plzni řeší. Zkoušeli jsme kluky zatáhnout do diskuse na téma konkurenčních nástrojů, ale nechali se :)

Pokud chcete tedy trošku hlouběji nakouknout do technické kuchyňky, ve které se vaří Puppet Enterprise, zastavte se s námi na šálek kávy.

  1. co je puppet 1:04
  2. použité programovací jazyky 3:16
  3. zkouška názoru na docker 5:41
  4. konfigurace více serverů 7:26
  5. testování předpisů 9:17
  6. no-op režim 10:57
  7. master jako single point of failure 11:33
  8. použití bez master serveru 13:06
  9. porovnání s Chefem 14:04
  10. frontend v Ember.js 16:18
  11. design API 19:25
  12. Ember Data, JSON API 21:20
  13. škálování 27:03
  14. Clojure 28:55
  15. Puppet Facter a embeded prostředí 32:30
  16. Feršův příběh s klíčema :) 34:25

Kompletní obsah zde: http://kafemlejnek.tv/dil-3-puppet/

Kafemlejnek.TV 2 - práce na dálku v Puppet Labs

DSC_0040V tomto díle jsme zavítali do kanceláří Puppet Labs v Plzni. Čekali nás tam Michal Růžička, Michal Bryxí, Filip Hrbek, kteří nám pověděli něco o tom, jak v Čechách otvírali první světovou pobočku americké firmy Puppet Labs. Povídali jsme si o tom, jak se vyvíjí Puppet Enterprise a co to vlastně znamená pracovat na dálku pro podobnou společnost.

Stručný obsah

  1. představení 0:55
  2. jak to v Plzni začalo 1:40
  3. jak se řeší podepisování smluv z Ameriky 5:45
  4. jak zakládá Američan firmu v Čechách 6:30
  5. jak funguje komunikace mezi dislokovanými týmy 6:53
  6. komunikační praktiky 8:22
  7. jaké nástroje se používají 11:33
  8. GitHub source repository 13:20
  9. code review 14:36
  10. práce z domova 20:26
  11. výhody a nevýhody práce na dálku 21:04
  12. velikost firmy 22:36
  13. jazykové bariéry 23:00
  14. mzdy u nás a ve světě 24:43
  15. kulturní odlišnosti 25:26
  16. možnosti kariérního růstu 32:02
  17. přijímací pohovor 33:48

Kompletní obsah zde: http://kafemlejnek.tv/dil-2-prace-na-dalku-v-puppet-labs/

O zrodu Kafemlejnek.TV

kafemlejnekJednoho dne mi zavolal Petr Ferschmann, jestli s ním nechci natáčet videocast o vývojářských tématech. Že by rád něco podobného dělal, ale samotnému se mu do toho nechce. Moje první reakce byla, jestli se náhodou nezbláznil - ani jeden z nás není žádný šoumen a podcastů je to přeci dost. Jenže pak se mi to rozleželo v hlavě.

Těch podcastů zase tolik není - aktivní je v poslední době pouze CzPodcast, kluci z DevMinutes a Brusu kódu trochu polevili. Můj oblíbený zahraniční podcast JavaPosse skončil úplně a Software Engeneering Radio naředilo zajímavý obsah. Pomalu není co u běhání poslouchat :)

Nepíšete javadoc komentáře? Díky Java 8 vězte, že dobře děláte!

Tomáš Zilvar

O autorovi: LinkedIn

Tomáš za dobu svého působení v oboru soudí, že programátor jest živoucím důkazem platnosti Paretova pravidla 80/20 - 20 % času programuje a 80 % času bádá, proč to nefunguje. Empiricky mezitím ověřil, že je to nezávislé na tom, zda programuje v korporaci nebo malé firmě, i na použité technologii.

Reportáž z GeeCON Praha 2015

GeeCON 2015 GeeCON je zavedená konference, u které se můžete spolehnout na kvalitní speakery a skvělou organizaci. Připočtěme ještě rozumnou cenu a fakt, že se děje u nás v České republice a vychází nám z toho rovnice, která má jasně daný výsledek = je to akce, na které nemůžete chybět, pokud nemáte opravdu dobrou výmluvu :)

V tomto článku udělám krátkou rešerši přednášek na kterých jsem byl.

Serializujte optimálně skrze Kryo

kryoJe zajímavé, že tak základní věc, jako serializace objektů do binárního streamu je v Javě implementovaná neoptimálně - a to jak z hlediska velikosti výsledné binární podoby, tak i rychlosti s jakou je vytvořena. Míst, kde se serializace objektů hodí je celá řada, a proto je určitě v zájmu každého kvalitního vývojáře zamyslet se, jestli to nejde dělat líp.

Ono totiž jde :)

Pokusů o reimplementaci Java serializace je na webu mnoho, ale mezi ty nejlepší zcela jistě patří knihovna Kryo. Dá se použít jako plnohodnotná náhrada Java serializace, je jednoduchá na konfiguraci a má klony pro alternativní jazyky nad JVM (Scala, Clojure) ale má také port pro Objective-C.