středa 25. prosince 2013

Webová aplikace - co byste měli znát vs. problém inteligentních programátorů

V podstatě všechny webové aplikace typu "evidence" jsou na jedno brdo. Přesto se pořád někdo pokouší něco vymyslet, nějakou svojí geniální cestičku, jak to udělat jinak (bráním se slovu lépe, protože lidi podezřívám, že je to spíš jejich vzpoura z rutiny).

Standardní zpracování jakéhokoliv požadavku by mělo být zhruba následující:
  1. Validace Javascriptem na formuláři; ten může volat speciální servlety, nebo naopak JS může být generovaný z Javy, či psaný duplicitně (alespoň minimalisticky), příp. lze použít JQuery či jinou knihovnu komponent ... možností je hodně, v krajním případě se dá tento stupeň vynechat a nechat ho na později, byť nezanedbatelně ulevuje zatížení serveru.
  2. Odeslání požadavku - nikdy ne nějakým "hackem" skládáním URL, ale vždy přes formulář! Ale to je jiné téma)
  3. Validace na serveru - úplná a přitom rychlá. Proč? Proč "duplikovat" integritní omezení databáze? Protože ...
    1. Integritní omezení databáze nepokrývají vše, ale jen nějaký minimální/přiměřenou část skutečných omezení. 
    2. Nevyplatí se aplikaci nechat dojít do nějaké fáze ukládání a pak dělat  rollback. Ten je vždycky velmi drahý. Transakce zaplňuje transakční log databáze, uzamyká záznamy a musí pak nutně spravovat fronty požadavků a hlídat, aby se nedostaly do kolize ... Vždy navíc skončíte při první chybě, pokud uživatel porušil pravidel víc, bude totéž opakovat několikrát: je otrávený, aplikáče i db přetížené, občas navíc přijde nějaká záhadná chyba, kterou uživatel už vůbec nechápe a programátor jí dlouho nedokáže nasimulovat.
      Uživatel opraví nahlášenou chybu, vzápětí dostane jinou, a tak než zpracuje jediný formulář, uteče hodina, databáze nezpracovala jeden nebo dva požadavky, ale desítky, a vy stojíte za úředním okýnkem a tečou vám oběma nervy.
      Nevyplatí se ale validovat extrémně náročné věci (co to je není tak jednoduché říct, leccos se dá optimalizovat; čili výjimečně se může stát, že něco skončí až na constraintech databáze. VÝJIMEČNĚ!)
  4. Transformace dat - uživatelské rozhraní téměř nikdy nekopíruje schéma databáze, nicméně obvykle jde už o relativně snadné namapování entit. (slovo snadné je tu klíčové).
  5. Hurá na databázi, ať relační nebo objektovou nebo třeba CSV.

Pokud si někdo "ušetřil" práci tak, že implementoval jen 2) a 5), sice napsal méně kódu, ale strávil s ním víc času a nasekal mraky chyb, které bude těžké opravovat, a aplikace nikdy nebude dost rychlá.

Slovo "snadné" je tučně, protože programátoři jsou obvykle inteligentní lidé a nenávidí jednoduchou práci "pod jejich úroveň", podceňují jí a velmi často jí udělají špatně nebo, aby se vyřádili, jí neskutečně zkomplikují.
K tomu si vypomůžou například tím, že vynechají validace. Ty pak "dolepují" všude možně, a postupně pak v kódu přibývá zpracování výjimek na různých místech, tak, jak jim uživatel nachází chyby.

To inteligentního programátora ponižuje a uráží, a tak vynalézá nebo nasazuje různé frameworky, obvykle neúspěšně, protože na něco tak složitého už je nikdy nepřilepí a nedotáhne to do konce.
Nakonec ho to už vůbec nebaví, a vydá se "prznit" na jiný projekt nebo do jiné firmy ...

Velmi důležité je vzpomenout si na základní myšlenky objektového programování - co všechno je objekt? Ano, všechno! Tak proč na všechno používáte String? Takový hloupoučký objekt na 50 řádek kódu vám ale může při validacích a kompletním zpracování ušetřit spoustu práce. Například takový VIN karoserie auta ... vážně stačí Integer nebo String? A co kdyby to byl samostatný objekt? Měl by statickou metodu parse, byl by nemodifikovatelný ... od chvíle, kdy se data z formuláře úspěšně naparsují do instance, víte, s čím máte tu čest ;)

KISS (Keep It Simple, Stupid) má jeden pro někoho nemilý důsledek - váš kód vypadá hloupě, naivně, jednoduše, brzy se pak vykládá, že píšete jen jednoduché věci, zatímco jiní se dřou na těch složitých. Nenajdete argument, nepřesvědčíte nikoho, že to není pravda. Na to, abyste to takového člověka nechali napsat po svém znova a bez přístupu k vašemu vzoru, vám žádný zaměstnavatel nedá čas. Byl by sám proti sobě ...

sobota 21. září 2013

Většinový systém? Nezbláznili jste se?

Zrovna jsem viděl diskuzi na ČT24. Jaksi jednostranně vybraní politologové na čt24 nám chtějí zavádět ne sice jednu jedinou stranu, ale bipolární nebo většinový systém.

Už chápu, proč je tolik lidí vysazených na Tomského. On je takový ... asi jako bolševik, nevzhlížející k SSSR, ale k božské Velké Británii. Nu dobrá, každý máme svou oblíbenou zemi. Nicméně při jeho argumentaci jsem ho už přestával brát vážně a došel jsem k myšlence, jestli to nepřehání s alkoholem.

Citát dne: "Demokracii si lidé pletou s jejím obsahem". Ano, jeho autorem je Tomský a zarazil i ostaní diskutéry.

Tahle sešlost, to byla nejzbytečnější diskuze, jakou jsem kdy viděl - nakonec se shodli, že to stejně nejde. Naštěstí.

Zdá se, že nejen politiky, ale také některé politology vyloženě děsí existence více názorových proudů.

středa 21. srpna 2013

Stárnoucí taktik Zeman a srpen 1968

Hlavně zdravíčko ...

Vždycky jsem si všímal lidí, jejich výrazu, pohybů, ale i způsobu mluvy.
Viděl jsem tuhle záběry našeho pana prezidenta, jdoucího po schodech. To mě přimělo uvěřit, že i u těch korunovačních klenotů nebyl tak "pod parou", jak se zdálo, ale bylo mu vážně špatně.
Myslím si, že jeho tělo je v celkem špatném stavu. Že cukrovka (kterou měla dlouhá léta i moje babička) jede na plné obrátky a blíží se konec. Možná za rok, dva, možná za deset let, ale první, co přestane sloužit, je mozek. Přijde zapomínání, překrucování minulosti, domýšlení si věcí, které se nestaly, nakonec nebude rozumět otázkám, neudrží téma ...

Dubček zrádcem? NE!

Zeman odsoudil tehdejší zástupce státu jako zrádce. Zapomněl na spoustu faktů, okolností, které tu byly.
Že Dubček a spol. byli v Moskvě, byli tam bez zpráv z domova, a nevěděli nic z toho, co víme teď. Nevěděli ani o tom, jaký podraz na ně udělali Biľak s Husákem a dalšími, jestli se dobře pamatuji to, co jsem dosud četl.

Víte, co se mohlo stát? 

  • Mohl tu vzniknout konflikt východního a západního bloku.
  • Mohla tu vzniknout občanská válka.
  • A mohla tu zůstat vojska coby dozor.
Kterou možnost byste zvolili? Podotýkám, jste v Moskvě, nemáte informace, snažíte se ubezpečit Sovětský svaz o tom, že se "netrhnete" a že jen chcete povolit řetězy a že ručíte za to, že to bude fungovat a naopak tím celý východní pakt jen získá.
Snažit se umluvit Moskvu s tím, že VY, maličká země ve středu Evropy, si budete diktovat, jak Váš stát bude fungovat - to podle mého není zbabělost a už vůbec ne zrada. Toto bylo na dlouhá léta první a poslední hrdé vystupování československých politiků, které bylo vzápětí drtivě převálcováno zradou kolegy, tanky a nakonec nezájmem občanů, kteří se smířili s normalizací.

Kdyby ...

Vždycky to mohlo dopadnout hůř. Nebýt Husákovců, kdo ví, možná by Dubčekovi dal Brežněv šanci. S tanky "za bukem", ale dal. Možná. Možná i bez Husákovské zrady by to dopadlo stejně. Já to nevím, nejsem historik a nemám toho tolik nastudováno.

Sčítání padlých

Sčítání padlých po válce, která nebyla. Například můj děda měl hodnost v armádě. Pro nesouhlas byl z armády vyhozen. Nakonec pracoval s elektronikou kdesi v kanceláři. V 80. letech s babičkou začali stavět dům a jakýsi komunista chtěl rozestavěný dům zkonfiskovat s odkazem na "nesouhlas". Od jiného komunisty ale prý dostal přes prsty a vše dobře dopadlo.
Zeman na tom byl v podstatě podobně - vyhozen ze strany, ale nakonec pracoval v "prognosťáku", což podle mého soudu nebyla špatná práce.
O skutečných padlých se moc nemluví. O sebevrazích ano. Do občanské války se nám holt nechtělo - ale divíte se? Pomohlo by to něčemu? Stěží ...

O hrdinství

A co hrdinové? Kdepak, Zeman nebyl žádný hrdina. Na náš národ bylo hrdinů vždycky málo. Ale pro to se nelze zlobit, na druhou stranu jsme nikdy nebyli až tak brutálně týrání. Vzpomeňte si na Honeckera nebo Maďarsko.
Můj nevlastní otec vyprávěl, že jako studenti večer nasadili Leninovi v Hradci na záda batoh; mířil na západ a ráno z toho byl docela poprask.

Jenže to pořád není hrdinství. To je provokace, anonymní. Hrdinství je říct kdykoliv a kdekoliv, co si myslím. Myslím, že to Dubček dělal, byť to nikdy nebyl konfliktní člověk - nebo možná právě proto si to dovolit mohl.
Zeman není typ hrdiny. Zeman je taktik, šachista, on ví, co říct, aby dosáhl svého, ale přitom nedal záminku k facce. Jenže - zapomíná a čím dál častěji chybuje.

O zrádcích

Kdo je u mě zrádce? Husák, Biľak. A - Zeman. A to pro opoziční smlouvu, kdy zradil své voliče a podepsal "pakt o neútočení", kdy se zřekl funkce opozice a tím i demokracie.
Protože demokracie funguje jedině tam, kde je silná opozice. A nefunguje tam, kde opozice nemá žádnou váhu, tj. tam, kde si šéfové stran diktují, jak bude celá strana nebo dokonce koalice stran bude hlasovat, kde není pluralita názorů nebo kde snad ani nejsou názory žádné (dříve KSČ, dnes ODS, ČSSD).
Ale dejme tomu, že to je vždy věc názoru a úhlu pohledu.

Jsem trochu utahaný, nechce se mi to po sobě číst, tak se příp. omlouvám za "slátaninost" :-)

úterý 16. července 2013

Politická a ústavní krize ČR, stav 16. 7. 2013

Tak uplácet se u nás smí, to jsem nevěděl. A jo, poslanci smí uplácet a smí být upláceni, my ne ... holt nemáme tu správnou imunitu.
Možná občanům nezbude, než třeba posílat desetikačku největším obhájcům korupce s komentářem "úplatek" ... pak nás všechny zavřou a bude to.

Stejně je ale něco špatně - od kdy je porušení Ústavy chráněno imunitou?! Jdu zase číst Ústavu - Zaorálek tvrdí, že imunita se vztahuje na projevy poslance. Přičemž NS míní, že projevem se myslí jakýkoliv projev chování, nikoliv obsah proslovu.
Tak jako tak by ale pak měl Ištván pravdu - projevy (ať už jakékoliv) mimo Sněmovnu by imunitou chráněny nebyly. :-)

Na místě Kalouska a spol. bych hodně brzdil ... i když ... ono jim vlastně nic nehrozí, horší preference už mít nebudou, a kdo je slyšet, má aspoň nějaké voliče ...

To je špíny ...

  • ČSSD se zviditelňuje - snadno, dokonce jí stačí pravda. Pořád je třeba pamatovat na to, že je to jen důsledek situace, ne že by snad ČSSD byla stranou poctivců.
  • KSČM - viz ČSSD, jen v této pozici má větší praxi za posledních cca 20 let.
  • ODS a TOP09 - demagogie, lži, kličkování, útoky na ostatní, všechny, kdo "nejdou s námi".
  • LIDEM a VV - boj o přežití, spojíme se na oko s kýmkoliv, pokud přežijeme.
  • Alternativy? Nikdo je k rozhovorům nezve, a toho si všimněte, to je velmi zásadní věc. Naši politikové a naše média nestojí o změnu větší, než je změna poměru stranických křesel.

A co vy?

pondělí 15. července 2013

Politická krize ČR, stav 15.7.2013

No, shrňme si to. Přímá volba se silným mandátem prezidenta se líbila "koalici" s předpokladem, že vyhraje Fischer nebo Schwarzenberg. Pak by měla ještě snazší změny v právním systému, než kdy měli s Klausem. Jenže Zeman jim udělal čáru přes rozpočet - a jako by to nestačilo, ještě "ta drobnost" s korupcí a zneužíváním ...

Teď najednou TOP09 prostřednictvím pana Polčáka uznale pokyvuje hlavou, když se komunisté kasají, že při změně Ústavy ohledně přímé volby "říkali a připomínkovali a nikdo je neposlouchal".
(Bože, proč zase "komanči" musí mít pravdu ...?!)

A komunisti takticky opět bodují - když se dva perou, třetí se směje - zatímco koalice a ČSSD "licitují" a ukazují prstem, oni čekají a tváří se ohromně seriózně a poctivě. Není divu, že je pak lidi pořád ještě volí ... po sametovce se říkávalo, že úspěch KSČ(M) ve volbách měří neúspěšnost demokratických stran. Tedy, tou dobou jim ještě kousek ubírala ještě SPR-RSČ.

Myslím, že problém není v Ústavě. Problém je v korupci a lpění na poslaneckých místech. To nemá nic společného s demokracií, to, co předvádí koalice, je pravý opak demokracie.
Samozřejmě, že pokud by poslanci Sněmovnu rozpustili a Zeman odkládal volby, občané by se připojili v odporu vůči prezidentovi - ten by tak ztratil veškerou popularitu a SPOZ by si ve volbách ani neškrtla. Ale o to právě vůbec koalici nejde. Jde o to, že ať budou volby odložené nebo předčasné, byla odstavena od moci a po volbách to bude ještě horší. Někteří poslaci se prostě se svými posty rozloučí.

Situaci sleduji už od začátku téhle krize; vlastně, počínaje volbou prezidenta. Pokud tu je něco podobné roku 1948, je to rétorika - ale nikoliv komunistů, nýbrž koaliční. Téměř každá druhá věta by se dala logicky vyvrátit, doložit důkazy. Lži, demagogie, výmluvy, ...
Žijeme ale v jiné době a situace je jiná. Nezjednodušujme si jí naivním přirovnáváním k době úplně jiné.

Ještě jeden dnešní bod:
1) Nečas potvrdil vztah s Nagyovou.
2) Soud projednává zveřejnění velmi vysokých odměn Nagyové.

V demokratické zemi s dobrou vládou by už toto samo o sobě znamenalo konec premiéra. U nás muselo následovat mnohem víc - a ani pak politikové nesklopí hlavu a nevyprovokují předčasné volby. Koalice promeškala vhodnou chvíli distancovat se od všech zkorumpovaných a nevěrných a postavit se k situaci čelem. Místo toho bojuje o každý "milimetr moci" a oddaluje fiasko - které se ale čím dál víc prohlubuje.
Jediné, co ho může zvrátit, je nevydařená vláda Rusnokova a příp. lež Zemanova o tom, že budou předčasné volby. Jenže zatím to na nic takového nevypadá.
Pokud hodlá koalice zablokovat vládě peníze, jak psaly některé dnešní noviny, opět sabotuje svůj vlastní výsledek.

A pak je tu jedna "konspirační" varianta - možná ODS chce předat moc levici, a tak dělá to, co jí co nejvíc pomůže, i kdyby byla levice sebehloupější.

neděle 2. června 2013

O povodních, vzdělání a mávání motýlích křídel


Tuhle jsme řešili v hospodě, co udělá např. zvýšení prům. roční teploty o 2°C nad Evropou. Nebo jinde. Kamarád mi nevěřil, že se z toho může stát neřešitelný problém.

No, máme povodně, z pohledu přírody "drobnost", "normálka" ... jak asi dopadne letošní úroda obilí je asi zbytečné se ptát. I když, možná ještě dobře, v červnu/enci by to asi bylo horší.

Že prý chemtrails. Možná. Ale měl bych méně konspirační variantu.

Co se asi děje s prouděním vzduchu, když Čína vydává do ovzduší mnohem více energie než dřív? A my nejsme pozadu ...
Před 50 lety se v našich městech složení vzduchu postupně stávalo neúnosným díky koncentrace prachu a plynů, často jedovatých. Teď je situace opět jiná a míň patrná - nikdo se nedusí - myslím, že problémem začíná být ohřívání vzduchu. Zákon zachování energie stále platí, takže cokoliv elektrárny, teplárny, fabriky, auta, domácí kotle atd. vyrobí, je vyzářeno z největší části do vzduchu, ať už přes vzduch přímo, vodu, nebo kovové součástky ...

Ekosystémům nerozumíme. Dodnes nevíme, co ohřátí mraků nad jednou oblastní způsobí o několik dnů nebo týdnů později v úplně jiné části světa. Někdy nic, někdy tornáda. Hrajou roli určitě teplota a tlak atmosféry v tom či onom místě, poloha Země vůči Slunci, současná dynamika proudů větru i oceánů, teplota povrchu Země v té či oné oblasti, zalesnění a zatravnění, prašnost, vlhkost vzduchu, chemické složení vzduchu, vlastnosti vrstev atmosféry... tohle je halda proměnných s ne úplně známými vazbami ...

My nevíme. Ale jako děti, dokud se pořádně neopaříme, nedáme si pokoj ...

Já tvrdím, že i nečekaně velká změna klimatu může přijít velice rychle. Kterým směrem ta změna může jít, netuším. Asi jako když máte silně špinavou svíčku v motoru, do poslední chvíle nevíte, jestli se po pár cyklech pročistí a spálí usazeniny, nebo se dalším příchozím palivem dorazí a už nikdy zapalovat nebude.

Dnešní vzdělání - ekologicky myslící lidé většinou nemají rádi matematiku. Matematici se pro změnu málokdy zajímají o přírodu. V principu stejný problém se vzděláním jako u ekonomů - ti taky matematice moc nedají.

Pořád si říkám, kdy nějaká osvícená škola vytvoří nějaký vysoce náročný a ceněný obor nebo obory, která by dokázaly špičkové matematiky ponořit do těchto i jiných problémů. Je tu obrovský prostor na objevy ... ;-)

pondělí 4. března 2013

Něco málo o SSL (HTTPS)

Jen malá poznámka ohledně dnešní zdlouhavé a otravné a frustrující zkušenosti s HTTPS, SoapUI a AS WebLogic. Prostě se dá říct, že nastávaly dvě možnosti:
  • handshake failed
  • HTTP 403, Permission Denied.

HTTPS a WS-Security

S čím jsem ale dosud neměl zkušenost, je WS-Security; ještě dopoledne jsem si myslel, že šifrování SOAP komunikace je prostě dílo HTTPS. Během dne jsem pomalu začínal chápat, že jsem vedle jak ta jedle.
Zatímco HTTPS (HTTP over TLS/SSL) šifruje veškerou komunikaci, WS-Security používá obyčejné HTTP (nebo i HTTPS) a šifruje se jen payload (tj. data v SOAP) - pro představu, uvidíte něco takového (namespaces jsem umazal a trochu to naformátoval):

<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
  <S:Header>
    <wsse:Security>
      <xenc:ReferenceList>
        <xenc:DataReference URI="#ED-1"/>
      </xenc:ReferenceList>
    </wsse:Security>
  </S:Header>
  <S:Body>

    <xenc:EncryptedData Id="ED-1" Type="http://www.w3.org/2001/04/xmlenc#Content">
      <xenc:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes128-cbc"/>
      <ds:KeyInfo>
        <wsse:SecurityTokenReference wsse11:TokenType="http://docs.oasis-open.org/wss/oasis-wss-soap-message-security-1.1#EncryptedKey">
          <wsse:Reference URI="#null"/>
        </wsse:SecurityTokenReference>
      </ds:KeyInfo>
      <xenc:CipherData>
        <xenc:CipherValue>[zašifrovaná data v Base64]</xenc:CipherValue>
      </xenc:CipherData>
    </xenc:EncryptedData>
  </S:Body>
</S:Envelope>

SoapUI

Návodem se zdržovat nebudu, najdete jich na internetu hromadu.
Nastavení SoapUI ani jeho dokumentace navíc vůbec nepočítá s lidskou naivitou, a tak velká část blogů a fór radí neúplné nesmysly na podobně neúplné otázky. Člověk pak ze zoufalství všude nastavuje keystore, všude nastavuje klíče, certifikáty, prostě klasický shotgun debugging, který ale k cíli nevede.
SoapUI mi tedy rozhodně s řešením nepomohlo, neb navíc vytrvale odmítalo vzít na vědomí nastavení -Djavax.net.debug=all a v logu nebylo stále nic než jen tříslovné chybové hlášení.
Jen aby bylo jasno - k nastavení HTTPS stačí jen otevřít globální nastavení SoapUI, tj. File - Preferences - SSL Settings, nastavit keystore a jeho heslo - hotovo. Nezapomeňte nastavení uložit, což má SoapUI taky celkem nepřirozeně jako další položku menu.
Všechna ostatní nastavení v projektu (Outgoing/Incoming keystore, Encryption, atd.) se týkají WS-Security a pokud vám jde jen o HTTPS, můžete je ignorovat.

OpenSSL

Po šesti hodinách střílení z brokovnice jste rádi, že jste se nezastřelili sami. Přišel čas zapnout mozek. Dobrá, zkusíme to přes OpenSSL, blbé SoapUI!
Vyexportujete si klíče i všechny certifikáty z JKS do PEM souborů. Spustíte OpenSSL a postupně mu nasázíte všechny argumenty - klíč, klientský certifikát, důvěryhodné certifikáty. Vypnete ověření hostname i serverového certifikátu, pro všechny případy. A - ono to funguje! Blbé SoapUI!!! No počkat, ale něco tu nehraje ...

Meanwhile ...

Moje panika nakazila i místní. Někteří také stříleli z brokovnic, někteří ale zavětřili, že tu opravdu něco nehraje. Všechno jsem dělal dobře (jeden znal i SoapUI, byť také úplně nerozuměl kouzlům WS-Security, ale věděl, že to mám všechno vyházet. Nepomohlo to, ale budiž.
Mezitím mi ale server začal odpovídat jinak, namísto věčného HTTP 403 - tentokrát na žádné HTTP nedošlo a přišlo rovnou "Handshake failed: Bad certificate."
Asi hodinu mi trvalo, než mi došlo, že server mluví o mém certifikátu, který mi místní autorita s pomocí Windows bezmyšlenkovitě podepsala a já si bláhově myslel, že když to funguje přes OpenSSL, musí být problém v nastavení SoapUI.

Pointa

Když moje největší posila (toho člověka jsem začal mít rád, neb mě citelně táhl správným směrem) už asi počtvrté přišla - a kdesi mezi jejími větami jsem zachytil slovo "Extension" ... svitlo mi. Jen jsem nevěděl, jak se vlastně Extensions k certifikátům přidávají ... to už teď taky vím: dokumentace keytool

Kdybyste náhodou zařizovali klíč a klientský certifikát pro SSL (HTTPS) a divili se, proč to pořád končí handshake failed, zatímco přes OpenSSL, kterému dáte privátní klíč (PEM), klientský certifikát (PEM) a ca-certs (další PEM), to chodí ... Váš klientský certifikát postrádá Extensions, čili schválená použití certifikátu, který pak tím pádem není možno použít pro šifrování ani autentizaci.
Extensions k certifikátu generujete s žádostí o podpis, příp. je tam může přihodit i podepisující, soudě podle dokumentace. Např. šifrování, dešifrování, podpis ... Každá Extension má své vlastní OID, ostatně viz parametr -ext v dokumentaci keytool a např. MSDN: Certificate Extensions

Závěrem budiž konstatováno, že SoapUI blbé není.

Zamyšlení

Shodou okolností řeším problém s HTTPS - stařičký CISCO loadbalancer mu totiž nerozumí, tudíž nemůže balancovat. Jen mě tak napadlo, že s použitím WS-Security se nějaké HTTPS vůbec nemusí řešit.
Jenže - u HTTPS je komplikací i samotné sledování komunikace, tj. řekl bych, že je co se týče bezpečnosti o řád jinde.
Na druhou stranu, každá proxy potřebuje požadavek rozšifrovat, než ho pošle dál. To by u HTTP a WS-Security nemusela.
A zase ... když bude proxy s loadbalancerem v cestě jediná, resp. do cesty se strčí Apache, který komunikaci na vstupu do uzavřené části zbaví šifrování,  nač řešit WS-Security. Tu bych řešil v případě nějaké ohromné infrastruktury, do které přistupuje kde kdo ...

Nebo se pletu?





pátek 1. března 2013

Když prohlížeče žerou paměť ...

Používám Kubuntu 12.10, momentálně jádro 3.5.0-26-generic #42-Ubuntu, paměti mám 8GB. Browsery jsou značně hladové, každý má své výhody i nevýhody ...

Hint: CTRL+ESC a pravé talčítko myši nad procesem a "Podrobné informace o paměti" umí zobrazit opravdu pěkný výpis, jak se věci mají.

Opera

Dvanáctka je prostě hladová. I když ... mám v ní otevřeno asi 50 záložek, tak se nemůžu divit. Včera mě už ale dožralo, že zabírá kolem 1,7GB.
Hint: po odinstalování AdBlock nárok klesnul k 1,1GB. Ok, při počtu záložek s tím můžu žít.

Chromium

Jeho 17 (proč tolik?) procesů žralo celkem nějakých 1,1GB. Přitom v něm běží 8 záložek, čili není divu, že se mi to vůbec nelíbilo.
Hint: do spouštěče jsem přihodil --memory-model=low a jsem na cca 500MB.

Firefox

Ten jediný se asi chová normálně ohledně paměti - i se všemi pluginy a asi  20 záložkami se drží těsně pod 600MB. Jen pro info - mezi pluginy jsou i AdBlockPlus, DownThemAll, FireFTP, FlashGot.

A proč který browser používám, to už je na jiné téma - každopádně teď mi konečně zbývá i nějaká paměť pro jiné procesy, včera to už bylo se swapem k vzteku ...

úterý 12. února 2013

Všechno vás sere?!

Tuhle mediální autority prohlašovaly, jak ten či onen jest strůjcem "blbé nálady", jak tihle a tamti za ní můžou a hlavně ti věční kritici, rejpalové! Tohle mne trochu pobuřuje, pokusím se shrnout proč.

Ta zlá hloupá proklatá EU!

Podle vás pořád za něco někdo může, ničí, kazí, ale co nejhůř, kazí vám tím náladu. Napadlo vás, že si jí kazíte sami? Všímáte si, jak sami uvažujete? Uvědomujete si, že všechny ty EU, USA, Rusko, zaměstnavatele, úředníky, popeláře, řemeslníky, řidiče, cyklisty, cikány a tak dále, považujete zbytečně za nepřítele, někoho, kdo vám určitě chce uškodit?
Zamyslete se nad sebou - udělal vám ten "nepřítel" opravdu něco? Pokud na něj zaútočíte fyzicky, bude to oprávněné? Většinou nejspíš budete nuceni odpovědět, že ne.
Potom to ale není nepřítel a nemáte se přece proč vztekat!

Zajímá vás, co se děje?

To je trochu o něčem jiném než na všechno nadávat. Čtete, hledejte podrobnější informace, rozlišujte seriózní a neseriózní zdroje, staňte se kritikem, nikoliv křiklounem z davu. I neseriózní zdroj může být dobrý k nadhození dalšího směru, kterým je vhodné se zabývat.
Ono je totiž opravdových kritiků dnes málo, novináři již dlouho neplní svou funkci - cíl je noviny prodat, ne příliš zaměstnávat čtenáře přemýšlením, to ho totiž unavuje a při tom všem stresu čtení vzdá.
Vy pak vybočíte z davu "čtenářů novin a diváků televizních zpráv", protože budete schopní daleko víc věcem daleko víc do hloubky i šíře porozumět, budete mít představu, jak do sebe zapadají - a - nikdy toho nebudete vědět dost, s tím je také zapotřebí počítat.
Někteří z vás budou navíc určitě dost výřeční na to, aby takový zájem probudili i ve svém okolí.
Doporučuji ještě jednu věc - rozlišujte diskuzi a hádku. Diskutovat je zdravé. Není nutné mít stejný názor, ale měli bychom se učit nacházet fungující řešení, včetně uvědomění si jejich nevýhod (a hledat jejich řešení).

Ti politici ...

A dost! Pokud chcete něco změnit, zajímejte se o věci. Až o nich budete něco vědět, mluvte o nich, vyjadřujte se k problémům, vydejte svoje vědomosti, pokuste se o změnu k lepšímu.
Naše společnost má velký problém - je tu spousta vysokoškoláků, umí spoustu věcí, ale čtou bulvární zprávičky a smějí se hloupým a nízkým vtipům. Dá se od takových lidí očekávat nějaká kvalita vědomostí? Jak se asi vyjadřují k aktuálním tématům? Bohužel, stejně - povrchně bez znalosti i zájmu o znalosti.

Psycho

Myslím si, že to jde ruku v ruce - na jednu stranu je společnost frustrována zprávičkami o "hloupých" úřednících, státech, šikanách obyvatel, zvířátek, atd., na druhou se společnost potřebuje z frustrace vybít. A tak se směje Darwinovým cenám, fotomontážím, hloupostem, které jsou hrubou záplatou na stejně hrubý strach z toho, co ještě přijde. Obojí je ale hrubost a i my jsme k sobě hrubí.
Myslím si, že bychom sami v sobě měli tenhle přístup změnit. Těšit se na věci budoucí, lidi kolem. Kritiku brát jako návrh na zlepšení, ne jako útok, provokující protiútok.
Znáte ještě ta slova? Spravedlivost, poctivost, přátelství, těšit se, mít rád, dobro, pravda a láska?
Já vím, že se u jejich čtení uculujete, v hlavě zní něco o naivitě, ale - pozor - to je právě chyba, v tom není ani kousek naivity! Přečtěte si ta slova ještě jednou, a zkuste si namluvit, že jsou to "blbosti", "kraviny" - možná zjistíte, že se vám tohle označení nějak vnitřně nelíbí a máte naopak chuť ta slova bránit. Pak je tedy braňte - sami pro sebe, pro dobro.

Příběh - konec aplikace

Neuvěřitelný příběh jedné aplikace, kde malý tým došel k tomu, že  nemá síly na další vývoj ani údržbu a že není vyhovující ani žádná jiná varianta.
Tým udělal poslední věc - vrátil peníze za poslední rok a nabídl pomoc s přechodem ke konkurenci. Drtivá většina zákazníků poděkovala, vyjádřila lítost, ale nezačala se vztekat. Pro mě je to dnes jev nevídaný a je to ukázka toho, že věci se dají vyřešit lépe a snáz v klidu a míru.
http://unicornfree.com/2013/why-we-shut-down-charm-on-the-eve-of-public-launch-at-48kyear-and-growing

sobota 26. ledna 2013

Lid si zvolil prezidenta, co dál?

Úvodem

V prvním kole jsem volil p. Dienstbiera. Faktické důvody byly následující:
  • hrubá shoda v názorech
  • schopnost a ochota říkat, co si myslí, a reagovat v diskuzi
  • dosavadní morálka
  • slabá podpora ČSSD (zesílila až pár týdnů před volbami, možná ze strachu před Zemanem); můj pocit dluhodobě je, že vedení by se Dienstbiera nejradši taky nějak zbavilo.
Samozřejmě i u něj mám pár otazníků a budu ho nadále sledovat. Například financování ČSSD - odkud ale pochází tyto peníze, čili kdo financuje ČSSD?

Ve druhém kole jsem nevolil. Rozhodl jsem se, že nehodlám volit "menší zlo", neboť je pořád zlem. Je mi jasné, že ve výsledku jsem tím nevolil pro nikoho ani proti nikomu a můj hlas se rozplynul v pouhé "nevím" - nicméně osobně to člověk vnímá přeci jen trochu jinak.

Suma ... 

Vypadá to, že ve volbách je rozhodnuto a prezidentem bude Miloš Zeman. Člověk, který má přehled, vzdělání, zkušenosti, ale taky je obklopen řadou přinejmenším podezřelých osobností, ze kterých člověk nemá nejlepší pocit a jeho vyjadřování je často poněkud přehnaně přímé a neomalené. Člověk, který spoluzavedl totalitní opoziční smlouvu,
Prohrál člověk, který má též obstojný přehled, má silné finanční zázemí, ale který prosazuje věci, které ještě před volbami vadily i velké části jeho podporovatelů, a který byl vydatně propagován stylem, který připomínal spíš reklamní kampaň.

Co mi vadilo

Argumenty autoritou

"Argument autoritou" se obecně považuje za jeden z argumentačních faulů. Faulující se tak odvolává na názor někoho jiného tak, jakoby názor toho jiného byl faktickou výhodou pro jeho vlastní názor.
Konkrétně před volbami šlo o všelijaká zdůrazňování podpory, že Fischer a Franz podporují Zemana, že Svěrák a Fischerův tým (ale Fischer ne) podporují Schwarzenberga ...
Tím u mě malinko zabodoval pan Franz, jenž se právě vůči tomuto ohradil - pro mě to značí, že uvažuje demokraticky a vyžaduje, aby jeho názor nebyl vystavován nad názory jiných.
Pro změnu pan Vetchý sice spam nejspíš osobně neposílal, ale jelikož se nijak neozval, nejspíš byl spam rozesílán s jeho souhlasem. PEN klub dokonce vypustil stanovisko bez respektu k různým názorům svých členů, stejně tak i další organizace.
Jedna věc je, když osoba řekne svůj názor. Druhá ale je, když tento názor někdo vezme a zdůrazňuje ho tak, jako kdyby jiné názory jiných lidí měly menší váhu. Je snad Schwarzenberg lepší tím, že ho někdo volí? Ne!

Reklama

Hromady klišé, často v rozporu s dřívějším chování politika. Proč žádný z bohatě sponzorovaných politiků "okázale" a "populisticky" nevěnoval peníze místo billboardů a reklam nějakému hospicu, nemocnici? Já vím, ono se to dnes nenosí. Jen tupé výkřiky hesel a frází ...
Schránku i můj telefon naštěstí nechali na pokoji ...

Fankluby

Proboha, lidi, chovejte se jako svéprávní! Ani Zeman ani Schwarzenberg nejsou lidi s čistým štítem, natož svědomím! Vy se ale chováte, jako kdyby právě jeden, a to ten váš vyvolený, byl spasitelem národa. Bučíte, opakujete, pokřikujete, ale nemyslíte.
Měli byste si předně uvědomit, že vy jste národ. A nespasí vás žádný prezident, musíte na tom zapracovat sami. Začněte se svou vlastní morálkou (ale to jste určitě nechtěli slyšet, že?).
Mimochodem, Schwarzenberg rozhodně není pankáč. Proberte se!

Co mi nevadilo

Slovní útoky a hádky kandidátů

I když z toho bylo hodně lidí rozladěných, zklamaných či přímo otrávených, myslím si, že to sem patřilo. Byť obzvlášť Zemanovy formulace byly někdy daleko za hranicí slušnosti, byly na místě - díky jeho "politické nekorektnosti" se Schwarzenberg musel nějak k těmto otázkám vyjádřit - nebo začít kličkovat a mlžit, což neudělal a situaci zvládl. Totéž fungovalo i naopak.
Myslím si, že pokud by tato témata nepřišla na přetřes, krom nižší volební účasti (hádky táhnou) by stejná témata byla součástí hádek "fanklubů" až do úplného zblbnutí a překroucení kde čeho.

Nějak bude ...

A nemohli by prezidentovat oba?

Tahle ironická švejkovina mě napadla asi před týdnem, když jsem si tak přemýšlel nad oběma kandidáty. Možná by to fungovalo, dokonce bych řekl, že jakkoliv se to nezdá, Zeman se Schwarzenbergem si nakonec dobře rozumí - všimněte si, jak na sebe reagují, žádná hysterie, žádné koktání, útěky. Krátké zamyšlení, přímá reakce a jedeme dál.
Navíc mám trochu pocit, že se i doplňují. Zeman kritickým myšlením a schopností "trefit hřebíček na hlavičku", Schwarzenberg schopností s ledovým klidem a nenuceným a neurážlivým přístupem vytyčit hranici, kam oponenta obratem pošle.

Demokracie a opozice

Moudrost říká, že demokracie funguje jen pokud je silná opozice. Pokud už není menšinová vláda, měla by být i tak vláda pod neustálou kritkou a kontrolou. Od první dohody s opozicí, kterou spáchali Klaus a Zeman v roce 1996, se nám demokracie zvrhla v něco nepřijatelného. Tehdy to ještě trochu fungovalo a nakonec Klausův kabinet zkrachoval - a handlování s křesly vystřídalo uzavření Opoziční smlouvy, kterou skončila veškerá konstruktivní kritika, vystřídána pouhým bojem o moc a křesla, pletichařením a intrikářstvím, sloužícími k bohapustému boji o kořist finanční pro strany, jejich sponzory a samozřejmě jednotlivce.
Když jsem si o této historii nedávno četl a opakoval si fakta, trochu se mi zastesklo i po těch Republikánech, tehdy zatracovaných a považovaných za napůl šílené. Pořád si vybavuji taky svobodné volby z první půle 90. let, spousty stran a názorů, ano, taky magorů, ...

No, takže do současnosti - pokud už máme vlády většinové a tudíž bezmocnou opozici parlamentní, potřebujeme to nějak dohnat. Tak uvidíme, jestli nám ten prezident Zeman bude k něčemu dobrý. Obzvlášť mám pochybnost, pokud příští vládu sestaví ČSSD (s KSČM? ODS? TOP09?) - jo kdyby to zkusila sama a ostatní by se snažili oponovat s vzájemným respektem jednotlivců ... no, pro dnešek konec pohádek o demokracii.
Nějak bylo, nějak bude. Korupce zůstane, daně budeme taky platit dál, ... a zítra je neděle.

sobota 19. ledna 2013

SGES2 a nové JAX-WS a JPA2

Pěkně to tu mají napsané, pěkně. A vždycky to má háček. No, našel jsem trochu jinou cestičku. Java si vždycky hledá takové properties soubory, ve kterých má napsanou default implemetaci nějakého API.
Ale asi bych měl začít od začátku - problém byl takový: Naučili jsme SGES2.1.1 novým kouskům tak, že jsme v adresáři lib udělali pár změn (AS, ne domény!):
  1. Souborům toplink-essentials-agent.jar, webservices-rt.jar, webservices-tools.jar, endorsed/activation.jar a endorsed/webservices-api.jar jsme přihodili příponu .Orig - to aby je aplikáč nenačítal, ale abychom měli nějakou stopu po tom, že jsme tu prováděli "psí kusy".
    Ještě malá poznámka - toplink-essentials.jar nepřejmenováváme, jelikož ho potřebuje interní ejb timer a nám konec konců nevadí, protože JPA providera si vybírá každá aplikace dle svého gusta v persistence.xml.
    cd ${appserv.home}
    mv ./lib/toplink-essentials-agent.jar ./lib/toplink-essentials-agent.jar.Orig
    mv ./lib/webservices-rt.jar ./lib/webservices-rt.jar.Orig
    mv ./lib/webservices-tools.jar ./lib/webservices-tools.jar.Orig
    mv ./lib/endorsed/activation.jar ./lib/endorsed/activation.jar.Orig
    mv ./lib/endorsed/webservices-api.jar ./lib/endorsed/webservices-api.jar.Orig
    
  2. Do adresáře lib nakopírujeme nové soubory. K dostání jsou obvykle na stránkách autorů nebo v různých maven repositories. Co přesně musíte stáhnout se může lišit podle toho, jak moc se vzdálíte od staré implementace, ale každopádně bude třeba pokrýt to, co plnily přejmenované knihovny. Náš seznam je následující - Javě je jedno, jak se soubory jmenují, podstatné je, že mají příponu .jar, tudíž jsme ponechali i čísla verzí:
    webservices-rt-2.2.jar
    webservices-tools-2.2.jar
    eclipselink-2.3.2.jar
    endorsed/javax.persistence-2.0.3.jar
    endorsed/webservices-api-2.2.jar
  3. To jsem napsal v podstatě totéž, co mají na odkazu v začátku. Jenže při prvním nasazení aplikace zjistíte, že pokud v persistence.xml vyplníte element <class>, aplikace vám neprojde validací!!!
    Háček je totiž v tom, že AS se řídí různými properties, poházenými po classpath v knihovnách v adresáři META-INF/services. Ty mu říkají "default" implementace API, které on sám použije; název souboru je v našem případě javax.persistence.spi.PersistenceProvider.properties
    Protože jsme ale nechali na classpath TopLink, má AS na výběr mezi TopLinkem a EclipseLinkem. Který zvolí, záleží na tom, který soubor najde dřív - čili nejspíš TopLink, protože při startu pravděpodobně bude nahazovat EjbTimer.
  4. Slova "pravděpodobně" a "nejspíš" se mi nelíbí, ale řešení je snadné - do aplikace si ten property soubor přidejte taky :-)
    A potom zapomeňte na pokusy dávat knihovny na classpath-prefix, což navrhují v onom odkazu - zkoušel jsem to, nefunguje to.

A ještě troška deziluze - zapomeňte na to, že vám SGES2 kdy bude dělat JEE6 server. Takovou certifikací neprošel a nikdy neprojde, prostě taková funkcionalita kontejneru v něm není. Nikdy nebude umět pracovat s anotacemi podle JEE6, prostě protože se musí pevně držet JEE5.
JEE5 Aplikace sice bude bezpečně fungovat na JEE6 serveru, ale to pořád neznamená, že vnitřně JEE6 server obsahuje JEE5 server. Toto nejsou Windows!
Důvody zpětné kompatibility jsou jen anotace a API - vaše JEE5 aplikace jimi deklaruje nějaké požadavky (na zdroje, transakce, atd.), ale vůbec tím neříká, jak je server má splnit (pokud ovšem nepoužívá "deprecated" atributy anotací nebo něco neloví přes InitialContext).
Zkrátka, pokud chcete JEE6, musíte přejít na nějaký certifikovaný  JEE6 aplikáč. Třeba Glassfish3, ať nechodíte daleko.

Tenhle návod vedl jen k tomu, abychom mohli použít např. Criteria API, nové JAX-WS a pár dalších novinek.

EDIT: Jeden příklad toho, co nebude fungovat - SGES používá tuto implementaci EntityManager wrapperu - ano, tušíte správně, metodu z JPA2 díky němu nevyvoláte, čili například nemůžete použít TypedQuery.