Archiv pro rubriku: Programování

Programátorský koutek

Umělá inteligence 2023 – rychlý test

Napadlo mě podrobit umělé inteligence jednoduchému programátorskému cvičení a to ve stylu:

Znáš common data model ?

Za pomocí CDM vygeneruj třídy Osoba a Organizace

Vygeneruj výstup v mermaidu

Osoba i Organizace má Adresu. Přidej ji a spoj všechny tři entity

Do adresy přidej číslo domu.

Pro entitu Osoba vygeneruj 100 záznamů ve formátu JSON. Strukturu anglicky. Data česky.

Chat GPT 3.5, Bard, Chat Bing (GPT 4)

Nebudu psát podrobnou analýzu. Je tam příliš mnoho proměnných znevýhodňujících tu kterou inteligenci, takže jenom střípky.

  • Nejlépe si mi komunikuje s Chat GPT, chápe kontext rozhovoru. Byť výstup v mermaidu nezvládl syntakticky dobře, tak vzájemná interakce je za mě nejlepší
  • Bard je prozatím někde na konci. Nezvládl pochopit, že sám generuje 4 záznamy byť poslední identifikátor záznamu byl 100 a to přímo ve stylu. Drobný úryvek:
    • Nevygeneroval jsi sto záznamů, vygeneruj jich 100
    • Omlouvám se nyní generuji sto záznamů
      • Vygeneroval 4 záznamy
    • Není tam sto záznamů, kolik jsi jich vygeneroval?
      • Vygeneroval jsem 100 záznamů
    • Ne nevygeneroval jsi sto záznamů, vygeneroval jsi 4
    • Omlouvám se, máte pravdu. Jsou tam 4 záznamy
    • Dobře, vygeneruj sto záznamů
      • Vygeneroval 4 záznamy
  • Bing Chat působí svým způsobem nejhůře. Vypadá to tak, že přeloží text z češtiny do angličtiny a to pustí do vyhledávače. Přesto ty technický věci vygeneroval nejrychleji a nejpřesněji. Teda až na výstup v JSONu. Vůbec nechtěl  pochopit, že nechci program který generuje JSON výstup. Ale pouze JSON s testovacími daty.

Závěr

Zatím se jako programátor nebojím o svůj chleba :-D. Je potřeba příliš mnoho práce s naladění se na AI. Výsledek je zatím marnost, ale … je jisté, že to přijde. Buďme připraveni.

Tak co letos? 2021

Myslím, že letos se pohnu blíže k vývoji mobilních aplikací. Byť technologie Blazor láka, tak bych se rád ponořil do mumraje technologií spojených s React Native.

Jelikož jsem se dva roky dozadu zabýval sestavou .NET Core + webová trojka + Devextreme. Tak si myslím, že bych mohl postoupit o kousínek dále. Více to detailu moderního JS a všeho spojeného s React Native.

Budoucnost UWP?

Proběhl MS Build. Naše firma se chystá(ala) dělat nové desktopové klienty. Ale podle účastníků není vhodná doba se teď „pouštět do nějakých větších akcí“. Nicméně si zahraju na vědmu. S neúspěchem celé mobilní platformy, podle mě, MS UWP zařízne a přesměruje svoje síly někam jinam. Troufám si odhadnout směrem k PWA.

A na začátku bylo … slovo

Při mé snaze se transformovat, alespoň z nějaké části, na datového vědce mne opět postihla ta stará známá nemoc, kterou občas trpím.

Nevím jak se jmenuje, ale myslím, že ji mnozí nejenom vývojáři znají. Při snaze a potřebě ovládnout nějakou problémovou doménu je potřeba nasát nějakou technologii/znalosti. Je potřeba znát tohle a když už jsme nakousli tohle, tak tady se zmiňují, že by bylo potřeba znát tohle a pak ještě kousek tohoto a tohoto….atd. atd.

A to jeden končí u rozďoubaných X(Y) věcí z nichž valně umí málokterou, protože prostě na to není čas/chuť. Ve frontě úkolů máme na příští období už něco úplně jiného.

A tak přes Základy statistiky, Financial analytics with R, přes Matematika – kombinatorika, pravděpodobnost, statistika jsem se dostal až k Matematika – základní poznatky a to mě možná neminou diferenciální a integrální počty.

Naštěstí je to „hobby“ proces který mne navíc docela baví. Takže si to dáme lehce od začátku. Tedy nezbývá než jít s pravdou ven:

Dobrý den, jmenuji se Milan a jsem alkoholik …. a nehodlám na tom vůbec nic měnit :-).

 

 

Visual Studio Code – malý ale šikovný

Celý svůj vývojářský život jsem se nechal rozmazlovat plnohodnotnými vývojářskými nástroji – Turbo Pascal ;-), C++ Builder, Visual Studio 5.0 ……2017. Musím říct, že první setkání s VS Code mi způsobilo šok. A to ve stylu What The F*ck. Co si to Microsoft dovolil mi tady předhodit za šidítko? Naše první setkání nebylo delší než deset minut a pak následovalo kategorické odmítnutí.

Před nedávnem jsem opětovně začal koketovat s Dartem. Google již neposkytuje patřičné IDE. Nicméně Dart přežil a vypadá to, že se má čile k světu. Ale IDE není. Doporučuje se WebStorm. Nechtělo se mi investovat mrzkých několik málo stováků do WebStormu (což je mimochodem taky výborné IDE) a tak jsem se opětovně dostal k VS Code. Nainstaloval jsem patřičný plugin a jal se psát svůj další „hello world“.

A najednou jsem viděl, že to jde. Ten koncept jednoduchého IDE ala Sublime Text není zase tak odpudivý jak se zdálo. Vlastně valná část pro takové domácí programování mi skvěle fungovala. Jednoduchý, svěží, upravitelný. Slušná intellisense, práce s textem, nápověda. Spokojenost. Teda až na přímý debug webových Dart aplikací. To asi momentálně umí jenom WebStorm.

Pak jsem si zkusil další drobnosti jako T-SQLko a taky spokojenost. No dobře, exekuční plán to nezobrazí, ale opět platí, že na takové „klapání“ to bohatě stačí.

Tedy kolegové, pokud jste se dostali do fáze prvotního šoku … dejte VS Code šanci. Obsahuje velké množství doplňků které umějí z tohoto nástroje udělat šikovného pomocníka.

Když srdce hackera zaplesá, aneb (ne)trapte své adminy

Tak tam už jsou doby kdy mi naskočily jiskřičky při pouhém vyřčení toho kouzelné slova hacker. Čítal jsem knihy o tomto tématu a snil o tom jak budu ten drsnej „škodič“. A tak dále a tak dále.

Nicméně občas, velmi zřídka, se zažehne plamen této vášně, který bývá udušen starostmi běžných dnů. Tedy dávám k probádání jeden velmi zajímavý materiál, který by mohl zajímat podobné nadšence.

https://channel9.msdn.com/Shows/CZSK-videa/Pass-the-Hash-toky-a-obrana-proti-nim

Datový vědec – 2017

Zní to od programátora podivně, ale svět programování už mne neoslovuje tak jako dříve. Nejde snad ani o to, že by nebylo kam se posouvat. Vznikají nové, krasné věci jako Dart, Python(no, ten není tak krásný), ale základní koncepty se moc nemění. Už mi to připadá všechno stejné. Navíc se ten obor prakticky nikam neposunuje.

Náš svět drtí mobilní aplikace které mne moc neoslovují. Na klientu jsou to spíše jednodušší věcičky, kde je více práce spíše pro UX designery. Dokonce nemám svoje vlastní matlátko. Desktop je prakticky mrtvý. Platformu W10 nepovažuji za moc dobrou. Spojeno s WPF a universálními aplikacemi -> prakticky mrtvola.

Světu vládne web a to je dobře a špatně zároveň. Web byl původně myšlený pro prezentační záležitosti a tak vznikl koncept HTML/CSS/JS. Proti čemuž asi nelze nic říci kdyby….

  • tento koncept se hodí pro prezentace, ne pro aplikace. Pro aplikace jej považuji za zbytečně složitý a přežitý. Bohužel svět se rozhodl lepit tento koncept na všechno, což nepovažuji za dobrý nápad.
  • Brendan Eich spáchal zločin proti lidskosti a vymyslel JavaScript. Měl na to prý pár měsíců a podle toho to taky dopadlo. Podle mě pracoval v kuse a na drogách. Úplně tragickou souhrou událostí se stalo to, že JS zůstal jako jediný jazyk který dokáže HTML/CSS rozpohybovat. Sice existuje spousta udělátek jak tu ohavnost obejít, ale pomalu vždy je tam nějaké ale. Nadějný projekt webassembly vypadá že je v nedohlednu nebo jako desítky světýlek na konci tunelu – pohasne.

Tedy se zrodila skvělá myšlenka. Opustím svět programování a prozkoumám svět dat. Alespoň jako koníček, pracovně zůstanu stále programátorem na platformě .NET.  Svět dat není programátorům vůbec cizí. Nicméně úkolem programátorů bývá primárně data někam posouvat, měnit, ukládat, zobrazovat atd. atd….Data jako taková či jejich význam je zajímají spíše jako vedlejší produkt.

V následujícím roce 2017(a počítám i dalších) se budu zabývat především daty jako role nebo profese které  vznešeně říká data scientist. Ale dokázal bych to pojmenovat i méně vznešeně. K tomuto nápadu mne dovedl jeden z mnoha jazyků které okrajově prozkoumávám a to je jazyk R. Ona to je spíše celá nová platforma, takže svět programování prakticky neopustím, ale už se primárně budu zabývat věcmi jako jsou analýza dat, statistika, statistické modely atd. atd.

Musím říci že se těším. Nový vítr do starých plachet.

 

Jak se u nás opět neuhnízdil Linux

Po tom co mi přítelkyně opakovaně utavila noťas jsem se rozhodnul koupit ji nějakou plečku pro její malé potřeby. Což je seriál Ulice, Facebook. Taková ta zábava intelektuálů ;-). Sehnal jsem ASUS A6M s 2GB RAM za pár stováků. Stroj za hranicí morální životnosti a v podstatě těsně před fyzickou smrtí. Ale na to málo poslouží dobře.

Nainstalované W7 v dezolátním stavu. Reinstalace nutná. Cvičná volba padla na Windows 10. Ten systém protestoval a vzpouzel kvůli grafické kartě která byla nekompatibilní. Nicméně neustále potvrzování fanoušku operačního systému Linux, že všechny ovladače jsou v jádře mi vnuknulo myšlenku tam hodit Linux. Dobrá volba. Na to co je potřeba. Stačí a já bych měl hračku na hraní.

Instalace proběhla bez problémů. Linux Mint s Mate bylo přesně to co jsem chtěl. S integrovanou Wifi měl systém problém, ale vyřešil jsem USB Wifi která nastartovala na první dobrou. Kromě této drobnosti bylo všechno v pořádku byl jsem spokojen. Přehrávač ve Firefoxu měl trošku problém s přehráváním náročnějších videí, ale dalo se. Byl jsem spokojen. Systém jsem nastavil k použití a jal se mít dobrou náladu jak ten Linux už poskočil dopředu.

Bohužel moji dobrou náladu mi pokazila přítelkyně když reinkarnovala stroj z režimu uspání do paměti. Což bylo něco co jsem zase vyžadoval já. Přeci jenom základním účelem bylo aby mě neokupovala můj stroj a takto by se tak postupem času nestalo. Po delším zkoumání jsem zjistil, že Linux Mint má opravdu problém s obnovením ze stavu spánku. Ne pokaždé. Ale často.

Nechtěl jsem hledat po různých fórech a shánět řešení a tak jsem se vydal řešit problém instalací různých distribucí. Postupně jsem nainstaloval Ubuntu, Fedoru a mého favorita SUSE, ale bohužel jsem se setkal už jenom s neúspěchem. Ne že by to bylo překvapení, protože toto může být problém jádra, nikoli věcí okolo, ale naděje umírá poslední.

Škoda, byla vůle ale nevyšlo to. W7 následně sázka na jistotu se kterou nebyl jediný problém a tak to dopadlo, mno… snad příště.

Windows 10… Ne, děkuji. Ani zadarmo

Jen několik málo měsíců a Windows 10 opouští můj domácí stroj. Nic proti tomu systému v podstatě nemám. „Žádné“ extra vady nemá, jen prostě vypadá hnusně a nesourodě.

Ostatně to byl problém i Windows řady 8. Nesourodé schizofrenní prostředí dělané jak pro mobilní, tak pro desktopové prostředí.

Nepovedlo se to. Je to ošklivost a nebudu s tou šerednou věcí kamarádit. Pokorně jsem se vrátil k Windows 7 a uvidím co bude dál. Windows 7 sice oku lahodí, ale přeci jenom očekávám že počítač bude trochu pomalejší. No, očekávám. On už je pomalejší, subjektivně. Ne moc, ale je to lehce znát. Nicméně jsem ochoten nad touto, sice podstatnou, záležitostí přimhouřit oko.

Otázkou je, co dál. Microsoft se tváří, že je ochoten Windows 10 udržovat hodně dlouho a dvojakého prostředí se nechce zbavit. Windows 7 vydrží sice ještě nějaký ten rok, ale již se dívám do budoucnosti.

V tomto ohledu mě napadla „hříšná“ myšlenka. Prostě zavrhnout celé prostředí Microsoftu. Dlouho jsem si s touto myšlenkou pohraval a musím říci, že v pokud se ve výše zmíněném něco podstatného nezmění – můj další operační systém bude Linux. Sice jsem se v průběhu mnoha a mnoha let o tomto OS vyjadřoval s despektem, ale raději si symbolicky posypu hlavu popelem, než abych se vrátil k té podivnosti.

Střípky z TechEdu 2015

.NET čeká opravdová revoluce
MS to myslí s Open Source vážně. Což by se dalo označit jako krásná a sluníčková věc. Nicméně ve stávajícím stavu mě, jako programátora který nezačne slastně hýkat vždycky když slyší sousloví Open Source, to nenaplňuje zvláštním nadšením. Pro běžnou práci .NEťáka to přináší spíše problémy a ošklivé věci – viz. bastlítka Gulp, Grunt – JSON konfiguráky. No fuj.
na druhou stranu to přinese možnosti hrát si s mnoha zajímavýma hračkama
vidět .Net Core aplikaci na Linuxu a EF7 rozjetý na Androidu ve mě vzbuzuje podivné pocity, spíše dobré
Python ani Lua není můj šálek kávy
z W10 universal apps se zatím nepotento a prozatím je v klidu nechávám bežet svoji vlastní cestou. I když předpokládám, že to bude jen otázka času.
pan Valášek je stále mé oblíbené zvířátko
pan Herceg nebude asi takovej nabubřelec jak sem si myslel. Možná jen trochu menší. Super přednáška o design patterns. Kouknout se na Query objekty.
nejlepší reklamní tužky rozdává Kentico. Nechť tento pracovní nástroj nepoztrácím jako vždy.
nejvetší koncentrace lidí s Windows Phone, překvapivě 🙂

Webová režie aneb na software trochu jinak

Povolání programátora či vývojáře, jak kdo chce, může být zábava i nuda, stres i klídeček. Nicméně povětšinou programátoři rádi či neradi řeší jak danou věc udělat.

  • jak udělat správně synchronizaci vláken
  • jak udělat kód správně pro webovou aplikaci nebo webové služby
  • jak správně udělat kaskádu, aby to fungovalo na různorodých zařízeních

Nevím, jestli to je věkem, ale už mě „jakové“ záležitosti moc neoslovují. Buď je to nuda, nebo už jsem technologiemi, které jsem mohl záhy zapomenout a byly k ničemu, již tak trochu přejedený. Z tohoto pohledu mě zaujal e-book pana Ing. Michala Hudečka o webové řežii. Mám názor, že front-endové prezentační technologie jsou jeden velký nepořádek, takže je nechávám plynout tak trošku bokem. Nicméně pokládat si otázky typu „proč“ mi připadá naopak zajímavé a doporučuji si tuto knihuprostudovat.

Javascript – softwarový mor 21. století

Pokud rozebereme tvorbu webových aplikací na kousky – obsah => HTML, design => CSS a chování =>Javascript, tak ta poslední část se softwarovému světu hodně nepovedla.

Pokud k takové tvorbě přijde člověk který je zvyklý na nějaké dobré vlastnosti mající kořeny v OOP paradigmatu(C++,C#, Java), tak je nemile rozčarován. Ne, opravdu prototypovou dědičnost nepovažuji za něco, co by patřilo do tohoto ranku. Co Javascript umí hodně dobře, tak věci, když to řeknu sprostě – „ojebávat„. Potřebujete za běhu přidat do objektu několik vlastností, není problém ? Potřebujete implementovat skoro klasickou dědičnost, není problém. Tímto způsobem se lze „domilovat“ k něčemu, v čem se skoro dá programovat.

Základem problému mnoha programátorů s Javascriptem, včetně mě, je základní vlastnost Javascriptu –netypovost. Máme proměnou, v tý může být text. Za chvilku tam může být číslo. Za chvilku tam může být třeba funkce. Řeknete si v čem je problém ? To si ohlídám. Bohužel to je mýlka, která přijde s větším projektem. A nepomůže vám žádné vývojové prostředí, žádný komplilátor. Jste vystrčeni na mráz chybovosti a mrznete a mrznete…dokud nezačnete jist sladkosti. Tato vlastnost má i jeden důležitý dopad. Pokud máte vývojové prostředí které zvládá doplňování kódu(codecompletion, intellisence) na základě objektu se kterým programátor aktuálně pracuje, tak v případě Javascriptu má takový nástroj velice omezené možnosti. V kontextu psaní kódu on neví s čím pracujete, tedy může víceméně jen odhadovat či prostě nabídnout vše.

Každá nemoc, má svůj lék vyvstane na mysl. Bohužel situace není tak jednoduchá. Zatím se léčí jen symptomy a to za pomoci různých udělátek, knihoven a frameworků. Třeba já osobně jsem se setkal s Qooxdoo, se které považuji vcelku za dobrý výtvor.

Dalším řešením je se Javascriptu prostě vyhnout. Tedy i když jen na první pohled. I zde se nabízí několik zajímavých způsobů :

    • Typescript od Microsoftu, řeší mnohé neduhy Javascriptu. Tady by se zdálo, že tato záležitost bude jen otázkou Visual Studia. Ale jetbrains se vytáhli a mělo by to jít zprovoznit v jejich opravdu dobrých nástrojích WebStorm i IDEA.
    • Dart od Googlu. Taktéž zajímavý projekt, mající myslím vyšší ambice, než být jen „obalovátkem“.
    • velice zajímavá možnost je použít projekty, které umí transformovat již známé jazyky na „prohlížečový“ Javascript jako třeba GWT nebo jeho bratříčka Vaadin(a).

Zdálo by se, že velmi často nejječnodušší řešení – vytrhnout kořen zla z útrob prohlížečů bude poplatné i ve světě softwarovém. Bohužel v roce 2013 nejsou ani náznaky, že by se k něčemu takovému schylovalo. Nečetl jsem žádnou informaci, že třeba Microsoft a Google, dva největší hráči, by v této otázce našli nebo hledali společné řešení.

Tento článek vystihuje postoj autora k Javascriptu a vůbec si nehraji na žádný nestranný postoj. Javascript mi zkracuje život :-), a nic jiného než pohrdání si nezaslouží. Nicméně znám i jednoho masochistu, který si v Javascriptu libuje. Také znám i jednoho programátora, který se dokáže povznést nad problémy o nichž jsem psal a vyplodit velmi pěkný technický článek, který dává na Javascript trochu jiný pohled. Ovšem pokud se na tuto strastiplnou cestu vydáte, rovnou říkám :“Já vás varoval„.

Já a Windows 8

Na přelomu 2012/2013 přichází Microsoft s novým operačním systémem. Tentokrát je systém kontroverznější než kdykolik předtím. Obsahuje rozhraní Metro, které se mnoho lidem nelíbí. Trochu jsem se rozmýšlel, jestli mám odejít ze svých Windows 7 Ultimate do kterých jsem investoval poměrně slušný peníz ( přes 6800,-). Upgrade jen něco okolo 1600,-, zvědavost vyhrála. Tedy bych se chtěl podělit o některé poznatky.

 

  • Ano, chybí mě nabídka Start. Nejde ani tak o funkční nedostatek, jako o zvyk. Jako kdyby mi furt něco chybělo. I když jsem její standardní její funkčnost používal málokdy, byla tu se mnou. Ve Windows 8 jsem nastavil základní programy a shortcuty k nim jako ve Win7 a vlastně jedu skoro ve stejném režimu.
  • Co naopak miluju je WinKey. Ve Windows 8 se ukázala jeho magická síla. Win, Win+X, Win+Q mi nabídku Start dokázalo obstojně nahradit. Hlavně vyhledávání je ve Windows 8 prostě dobré.
  • Start i systém je citelně rychlejší. Počkáme půl roku.
  • Přepínání mezi aplikacemi je o řád někde jinde. Občas si zahraju svoji oblíbenou Command and Conquer 3 a zatímto ve Windows 7 bylo přepínání zpět do systému malé utrpení, ve Windows 8 paráda.