Rubrika: IT

  • Tipy pro junior vývojáře

    Tipy pro junior vývojáře

    Jste programátor – začátečník. Možná jste si zakoupili kurz placený z dotací, nebo studujete střední či vysokou školu. Snažíte se najít brigádu nebo zaměstnání, ale ukazuje se, že to není tak lehké. V tomto příspěvku vám nastíním, jak pokračovat.

    Kdo jsem? Komerčně programuji od roku 1998, ať už zakázkově nebo v zaměstnání. Vytvořil jsem službu Linux Hardware, a později ji rozšířil na AbcLinuxu.cz, která pomohla desítkám tisíc uživatelů Linuxu. Pro Android jsem napsal výukovou hru LeliMath. Když jsem chtěl získat zkušenosti s AWS a moderními weby, připravil jsem web mezinamiridici.cz.

    Programování je řemeslo

    To je dobrá zpráva, protože nejde o žádnou magii. Jsou schopnosti, které potřebujete: logické myšlení, pečlivost a přesnost, schopnost dokázat přemýšlet s nadhledem (abstraktně). Budete se neustále učit. Mám pro vás další povzbuzení: dnes existuje spousta možností, jak a kde se učit. Najdete online školení, ať už na YouTube, Udemy, Khan academy. Existují tuny knížek. Hledat radu můžete na StackOverflow, Reddit nebo Discord. A hlavně, máte po ruce AI code asistenty, kteří umí hrát trpělivého mentora. Sice občas kecají, ale celkově jsou přínosní.

    Nicméně to už nejspíše máte za sebou. A teď přichází hořká pravda – stát se dobrým programátorem vyžaduje velké úsilí. Jsou to stovky či tisíce hodin, které sedíte u počítače a snažíte se rozlousknout, proč ten zatracený počítač nedělá, co má. Každý problém, který vyřešíte, vás posune dál. Uděláte mraky chyb, což je naprosto normální a očekávané. Neexistuje žádná zkratka, budete muset makat. Pokud vám na kurzu tvrdili něco jiného, jen z vás nebo EU tahali peníze. Za námahu ale přijde odměna.

    Najít junior pozici je těžké

    Pokud čtete dál, předpokládám, že máte stále zájem o tuto cestu. Dnes máte ale horší podmínky na trhu. AI mění vše a firmy jsou teď obezřetné v najímání. Ukazuje se, že zkušený vývojář zvládne s AI mnohem více práce. Možná se naše práce změní. Já už teď mnohem častěji říkám AI, co má napsat, než abych kód psal sám. Proto firmy velmi obezřetně vybírají, koho najmout. Zvláště, pokud jim přijdou na pozici desítky či stovky životopisů a podvádět při online pohovoru je snadné. Jenže jak se máte stát zkušeným programátorem, když vám nikdo nechce dát šanci? Odpovědí je, že si zkušenosti můžete vypěstovat sami, i bez zaměstnavatele.

    Vlastní projekty

    První možností jsou vlastní projekty. Potřebujete řešit reálné problémy. Vymyslete si něco, co vám ulehčí život, i kdyby to byla jen ptákovina a dala se stáhnout lepší alternativa. Například adresář kamarádů a rodiny, který vám bude připomínat jejich svátky a výročí. Nebo katalog knih. Odjezd MHD z vaší zastávky. Předpověď počasí na chalupě. Spotřeba energií v domácnosti. Domácí finance. Nákupní seznam. Cvičební plán. Začněte něčím lehkým a postupně jej vylepšujte. Až váš první projekt začne fungovat, budete na sebe hrdí. Tak pokračujte a zkuste něco dalšího, složitějšího. Je to cesta. Pokud dokážete vytvořit projekt, který používá někdo další, získáte velkou motivaci pokračovat. Dneska na provozování vlastního webu stačí doslova pár stovek ročně (Hetzner referral 20€ pro vás).

    Open Source projekty

    Druhou možností jsou Open Source projekty. Bez nich byste reálně nic nevyvinuli. Kdykoliv importujete nějakou knihovnu, nejspíše bude mít otevřené zdrojové kódy na GitHubu a komunitu, která se o ni stará ve volném čase. Schválně se podívejte na váš současný projekt a najděte si pár knihoven, které používáte. Stáhněte si její zdrojáky a zkuste si je zkompilovat. Projekt obvykle obsahuje soubor či stránku s instrukcemi, jak na to. Povedlo se? Tak teď se podívejte na seznam chyb projektu. Obvykle je nad možnosti komunity na vše odpovídat, protože pak by neměli čas přinášet nové skvělé funkce. Najděte něco lehčího a zkuste si vytvořit minimalistický projekt, ve kterém se chyba objeví. Už i tohle vývojářům velmi pomůže – stačí nahrát ukázku na váš github (takzvané minimum reproducible scenario) a přidat odkaz do chyby.

    Pojďme o krok dále. Zkuste hledat na internetu, jak problém vyřešit. Většina hlášení bude od nováčků, kteří nejspíše udělali nějakou chybu. Zeptejte se AI. Experimentujte. Projděte zdrojáky knihovny, které se v daném okamžiku používají. Ideálně v debuggeru a snažte se pochopit, co se děje a proč. Dost možná se vám podaří odhalit, proč se knihovna chová takto a jak by reportér měl své použití opravit. Nebo dokonce najdete chybu v knihovně. Tak vše zdokumentujte v ticketu. Poděkování vám zvedne sebevědomí. Pokud jste neuspěli, nevadí, nejspíše jste se něco nového naučili. Zkuste jiný ticket. Za nějaký čas určitě uspějete. A pak si třeba troufnete opravit nalezenou chybu v knihovně (včetně automatických testů). K tomu slouží „fork“ a „push / merge request“. GPT vám poradí, jak na to.

    Závěr

    Za nějakou dobu získáte zručnost a zkušenosti, a to i bez praxe ve firmě. Když do CV přidáte odkaz na váš aktivní GitHub profil, budete vyčnívat z davu. A při pohovoru bude znát, že nejste jen nějaká rychlokvaška a máte opravdový zájem. Také budete mít témata, o kterých se budete moci na pohovoru bavit. Firmy hledají lidi, kteří mají opravdový zájem se posouvat dále. Takže hodně štěstí! Čím začnete? Napište do komentářů svůj první projekt, pro inspiraci dalším.

  • Nejvíce cool práce z celé školy

    Nejvíce cool práce z celé školy

    tak popsaly holky, co jsem začal dělat. Budu mít na starost nový produkt – létání ve větrném tunelu s virtuální realitou. Samotný větrný tunel je atraktivní technologie, kde mimořádně silný větrák chrlí masu vzduchu rychlostí 160-230 km/h, díky čemuž můžete létat jako superman. Našince potěší, že mezi světovou špičku výrobců tunelů patří místní Strojírny Litvínov. Naše řešení ale posune zážitek o stupeň dále – můžete cítit seskok z letadla vlastními smysly, aniž byste museli překonávat strach z výšky čtyř kilometrů.

    Po technologické stránce využíváme brýle Oculus Go s vlastní aplikací a dvěma 360° videi. Aplikace je řízena z velína, kde je zároveň promítán obsah brýlí do velkého televizoru, který odborně nazýváme odkuk. Váš doprovod tak může sledovat, co vidíte i vy. Brýle jsou napevno připevněny k helmě pomocí kolíbky, kterou tiskneme na 3D tiskárně a je upevněna pevnými popruhy. Nad uchycením jsme strávili měsíce. Nechcete zažít, aby vám ulítly půlkilové brýle v uragánu.

    Momentálně pracujeme na mnoha vylepšeních. Testujeme novinku – brýle Oculus Quest, které mají o fous lepší rozlišení a kamery pro inside out tracking. A hlavně chceme doplnit další zajímavý obsah. Pokud znáte někoho, kdo umí vytvářet super 360° videa, prosím spojte mě s ním. Tohle video mi přijde absolutně úchvatné: Return to Trappist.

    Zážitek je již teď k dispozici: Větrný tunel VR. Můžete si zaletět sami, nebo jej dát dětem jako neobvyklý dárek za dobré vysvědčení. Budou nadšené. Těšíme se na vás.

  • Looking for a perfect job

    After almost six years with AEVI (Wincor) I feel it is time to seek a new opportunity. It gave me a lot: I have learned card payment industry, I have met interesting personalities like Michal Prazny or Miroslav Pekarek, I have worked with many colleagues I trust, I had a chance to present our products at Cartes exhibition in Paris, and finally I have met many customers from multiple countries. I have designed solutions for many high profile customers.

    Past occupancies

    I have a technical background. I have studied math informatics at Palacky University between 1995-1999. I had a Java lecture introducing this language to other students in 1996. I wrote an FTP client in Swing as my school project. My diploma thesis was to create neural networks simulator in C++. I worked as a trainer for ERP BAAN during my studies for international clients.

    Once I graduated I was working as an IT journalist parallelly with my public service duty. My first job was J2EE developer in international startup 12snap when I met many great colleagues including Abhishek Balaria, Jiri Luzny, Eric Greene, Jan Stanek, Wally Green, naming just a few of them. Then I created popular webzine www.abclinuxu.cz where I spent countless hours. It attracted up to 200K monthly users. It was acquired by Stickfish, where I worked with Robert Kratky, Vlastimil Ott, Vita Valka, Martin Mateju, and Filip Korbel.

    My next occupation was at Systinet founded by Roman Stanek. I started as UDDI registry developer. Systinet was acquired by Mercury Interactive and joined HP later. I was promoted to a team leader role. I managed an offshore team in Vietnam as well. I had a chance to work with Radovan Janecek, Miroslav Simek, Svata Dedic, Roman Pichlik, Jiri Fabian, Milan Boruvka, Ivan Kudibal, Albert Regner, Jacek Kopecky, Petr Ferschmann and many many others. We were developing high-quality products.

    Then I changed my career path and became a solution architect at GEM Systems. I worked on B2B projects for VZP, I designed GIS integration and accident management for UAMK, IS for NIX. I have learned so many things from Pavel Dostal and my colleagues like Jiri Holubec, Marcel Dvorak or Karel Husa.

    Perfect job

    I am seeking for a job that is challenging and pushes my boundaries further. I enjoy creating new products, helping customers to fit their needs. I like to travel. It is satisfying for me when I solve some problem and the customer is happy.

    Well, such description is very vague but intentionally. I do not want to limit opportunities with too concrete description.

  • Jak na elektronické volby

    Moderní stát, jakým bychom Česko chtěli mít, by měl umožňovat občanům volit elektronicky. Poslední dobou lze sledovat trend, že volební účast klesá. Pryč jsou časy devadesátých let, kdy volily tři čtvrtiny oprávněných občanů. Teď volit přicházejí jen tři pětiny voličů a to přesto, že volit lze dva dny. Občané pobývající v zahraničí mohou volit jen ve vybraných městech a znamená to pro ně často dlouhé cestování. Elektronické volby sníží bariéru a umožní hlasovat z pohodlí domova či v zaměstnání. Dělám si bláhovou naději, že by posílily volební účast a výsledky by pak lépe reprezentovaly přání všech občanů.

    Tento příspěvek má za cíl začít diskusi nad zavedením elektronických voleb. Vykopávám.

    Požadavky

    1. Ze zákona i logiky věci  je hlasování tajné.
    2. Hlasování musí být nezpochybnitelné.
    3. Nesmí být možné hlasovat opakovaně, nebo různými způsoby.
    4. Systém musí zabránit podvodům.
    5. Systém musí být důvěryhodný a nezávisle ověřitelný.
    6. Systém nesmí být nákladný.

    Návrh

    Dnes má volič možnost požádat o voličský průkaz, se kterým může volit v jakémkoliv okrsku. Když o něj zažádá, bude chybět na seznamu svého volebního okrsku. Tím je zajištěno, aby nemohl volit dvakrát. Podobný princip můžeme použít při elektronických volbách. Volič zažádá o elektronický volební průkaz, pochopitelně elektronicky a tím přijde o možnost volit ne-elektronicky. Bude chybět na seznamu svého okrsku a nebude moci zažádat o voličský průkaz.

    Pro přihlašování k elektronickým volbám můžeme využít existující infrastrukturu – datové schránky. Jedná se o zákonem uznávaný způsob přihlášení ke státním elektronickým službám. Tento způsob autentizace používá například správa sociálního zabezpečení a je dostupná všem občanům. Jednou nevýhodou je, že někdo datové schránky odmítá úmyslně. Nejde ale vymyslet řešení, které by vyhovovalo všem. Datové schránky fungují, integrace přihlášení do jiných služeb je prověřená, tudíž jejich použití výrazně snižuje náklady na zavedení elektronických voleb.

    Pro zajištění anonymity hlasů je nutné oddělit záznam hlasů od informace, zda je volič oprávněný hlasovat a zda již hlasoval. První systém tedy bude mít na starosti ověření přístupu voliče k nástroji a zajištění, aby nehlasoval vícekrát. Bude tedy evidovat, zda se volič registroval k elektronickým volbám a zda již hlasoval. Bylo by vhodné, aby uchoval informaci, kdy k volbě došlo a z jaké IP adresy. Pokud by totiž některý volič rozporoval platnost voleb s tím, že mu nebylo umožněno hlasovat, hodil by se záznam o provedení volby. Na druhou stranu identifikace uživatele a čas volby zvyšuje riziko spárování hlasu s konkrétním voličem. Čím oddělenější bude infrastruktura obou systémů, tím je toto riziko nižší.

    Druhý systém bude zaznamenávat samotné hlasy a zajišťovat výstupy. V ideálním případě bude vytvořen obecný systém podporující všechny typy voleb, které máme (jednokolové jako do poslanecké sněmovny či obecních zastupitelstev, vícekolové jako prezidentské či senátní) a pro každé volby se připraví datový soubor s kandidáty, podle kterého volby poběží.

    Po spuštění voleb systém promaže databázi, aby se zamezilo případným podvodům s předem připravenými hlasy a zároveň vloží iniciální záznam. Systém pro každý další hlas vloží záznam, který kromě volby voliče bude obsahovat kryptografický otisk předchozího záznamu nebo celé databáze. Inspirací budiž verzovací systém Git. Tímto principem bude zajištěno, že administrátor databáze nemůže některé hlasy smazat nebo vložit. Po skončení voleb dojde ke kontrole všech otisků, které musí tvořit souvislou řadu. Alternativně by šlo zvážit variantu technologie blockchainu, ale ne veřejného. Průběžné výsledky by totiž mohly ovlivnit volby. Nakonec systém vygeneruje záznam voleb, aby je statistický úřad mohl naimportovat do svých systémů.

    Procesní zabezpečení

    Aby systém byl skutečně důvěryhodný, musí být možnost, aby si kterýkoliv občan mohl jeho části sám ověřit. Bezpečnost systému nesmí být postavena na zatajování, jak funguje. Naopak je zásadní, aby byly zveřejněny zdrojové kódy a každý občan měl právo ověřit, že v nich není chyba nebo zadní vrátka. Jsem pro zveřejnění na GitHubu.

    Nezávisle ověřitelné zdrojové kódy jsou jedna věc, druhou je ale ověřitelnost binárky. Proto navrhuji, aby byly jednotlivé části systému sestaveny před notářem a zástupci všech parlamentních stran od samého začátku. Tedy ideálně čerstvě nainstalovaný operační systém, do něj nainstalovat kompilátor a git klient. Následně stáhnout z veřejné repozitoře schválenou verzi a tu zkompilovat a podepsat. Binárka bude zveřejněna minimálně měsíc před volbami, opět aby ji občané mohli nezávisle prozkoumat. V případě chyby bude oprava commitnuta do veřejné repozitoře v GitHubu a postup sestavení se zopakuje.

    V den voleb se znovu sejde komise, před kterou IT pracovník ověří podpis aplikace; ukáže, že databáze je prázdná a zapne volební systém. Zároveň bude odepřen přístup k databázi všem dalším uživatelům a administrátorům. Tento režim – IT pracovníci pod kontrolou notáře (notářů) a zástupců všech parlamentních stram – bude dodržen nepřetržitě do skončení voleb. Bude to náročné, ale odpadne riziko, že se někdo pokusí volby zmanipulovat.

    Ekonomika

    Zavést elektronické volby nemusí být drahé. Hodně se ušetří opětovným využitím autentizace voličů pomocí datových schránek. Není třeba budovat nový systém a voliči nemusí kupovat speciální hardware (třeba čtečky elektronickýh občanek).

    Pokud volební systém nebude zavádět IBM bez veřejné soutěže ala EET, nemusí stát miliardy, ale spíše vyšší desítky miliónů korun. Porovnejte s 964 milióny korun, které stály parlamentní volby v roce 2010. Pro spoustu firem by bylo otázkou prestiže tento systém naimplementovat. Jeden den práce programátora stojí 10-20 tisíc korun, a pochybuji, že by se vývojem spálilo více než tisíce člověkodnů.

    Když by se elektronické volby osvědčily a začal je využívat významný podíl voličů, stálo by ke zvážení zkrácení voleb. Opravdu je nutné volit dva dny? Třeba v Německu stačí jeden den. Zkrácení voleb by výrazně snížilo celkové náklady.

    Závěrem

    Autor se nečiní patent na rozum. Klidně návrh rozcupujte, vytkněte slabiny a navrhněte lepší řešení. Ale pojďme na zavedení elektronických voleb pracovat. Potřebujeme je. Máme 21. století.

  • WD Passport not working on Samsung TV

    WD Passport not working on Samsung TV

    I bought new portable hard disk – Western Digital My passport with 2 TB. I copied all my movies from old disk and plugged new disk to Samsung TV (C series). It said that there are no movies on the disk. After some investigation I found a discussion with a solution. I had to clear the disk from existing partitions, change disk type to simple („Change to MBR“) from dynamic and create new partition. When I copied some movie and plugged the disk again the TV has found it! Next day I have realized that my child has removed the backup from the old disk. So I have plenty of space now.

    Blog bitcoin address: 1GQBYqZwiHT72UrLCCSv4j6WkK65FjTPJk

  • 7 kryptoměn versus Bitcoin – kdo vyhrál?

    7 kryptoměn versus Bitcoin – kdo vyhrál?

    V minulém článku jsem popisoval jak začít s bitcoinem a kryptoměnami. Ještě zajímavější jsou ale čísla, jestli se investice vyplácí. A jestli rostou kryptoměny obecně, nebo jen Bitcoin.

    Na internetu platí, že vítěz bere vše. S výjimkou Česka Google drtí konkurenci ve vyhledávání, Facebook ve většině zemí v sociálních sítích, Youtube v přehrávání videa, Instagram ve fotkách. Platí to i pro Bitcoin v kryptoměnách?

    Moje první investice sta eur byla 6. září, kdy Bitcoin atakoval hranici čtyř tisíc eur. Zároveň jsem nakoupil Ethereum, Monero, Ripple a Litecoin. Vzápětí Čína utáhla kolem kryptoměn smyčku a začala je omezovat. Cena šla dolů. Neprodával jsem, ale přikoupil jsem Bitcoin, Lumeny a EOS za další stovku. Cena šla dolů ještě výrazněji. Byl jsem v hluboké ztrátě. Mohl jsem buď stáhnout ocas, vše prodat a odejít z trhu, nebo čekat, nebo zase přikoupit. Volil jsem třetí variantu, abych snížil průměrnou nákupní cenu. Takže další stovka eur do všech měn plus z legrace do Dogecoin. V říjnu se trend obrátil a ceny šly nahoru. Opět jsem něco přikoupil. A všímal jsem si, že přestože Bitcoin se oproti nejnižšímu kurzu zdvojnásobil, na hodnotě mého portfolia to nebyl znát.

    Než se podíváme na graf, seznámím vás se svou strategií. Nikdy jsem nevěřil různým alt coinům, protože na internetu vítěz má často drtivý náskok před konkurencí. Dlouho to platilo i pro digitální mince. Ale letos, když Bitcoin spustil investiční horečku a jeho cena výrazně vzrostla, lidé chtěli zopakovat jeho drtivý růst na prozatím slabé konkurenci. A měny jako Ethereum, Litecoin či Monero vzrostly o desetinásobky. Hledal jsem tedy mezi nejvíce obchodovanými altcoiny ty, které měly dosud nízký kurz a sázel jsem na růst. Měny s kurzem pod jedno euro lze s nízkým rizikem nakoupit větší počet a pak čekat, zda se chytí či ne. V roce 2011 šlo za cenu lístku do kina koupit deset bitcoinů. To samé platilo pro Ethereum před rokem. A dnes má kurz skoro 300 dolarů za kus.

    No, dva měsíce jsou krátká doba k závěrům, ale prozatím je jasným vítězem Bitcoin, který ve sledovaném období (září a říjen 21017) začínal na 4145€, klesl až na 2735€ a vyrostl na 5540€. Rozdíl proti začátku a konci je krásných 34%. Kdo chytl dno, mohl dokonce vydělat 103%. Druhou úspěšnou mincí byly Lumeny s počáteční cenou 0,02031€ a konečnou 0,02499€, což dělá nárůst 23%. Nejnižší kurz byl 0,008955€, nejvyšší 0,03883%, což dělá astronomický zisk 334% v průběhu 26 dní! Za to ostatní kryptoměny během sledovaných dvou měsíců výrazně spadly. Ethereum začínalo na 328,28€ a končilo 262,2 €, takže -20%. Litecoin slítl ze 73,94€ na 47,59€, což je výsledek -36%. Monero kleklo ze 120,6€ na 73,82€, tedy -39%.  EOS spadl ze 1,11 na 0,676€, což dělá -39%. Ripple šel ze 0,2132€ dolů na 0,1698€, což je propad o 20%.

    Podívejte se sami na graf ukazující změny v procentech proti výchozí hodnotě.

    Líbil se vám článek? Sdílejte jej prosím.

    Bitcoin adresa blogu: 1GQBYqZwiHT72UrLCCSv4j6WkK65FjTPJk