sobota 17. září 2016

Stephen King, Andrej Tarkovski a uvědomnění si hranic našeho myšlení

Jsou knihy, které do duše člověka zasejí semínko a ono si tam klidně vyklíčí a roste. Takových je spousta ... poslední, kterou jsem takovou četl, bylo Svědectví od Stephena Kinga. S odstupem je to záležitost, ke které se člověk vrací a přemýšlí o ní.
Jak člověk začne pomáhat zlu a proč ho tak přitahuje, proč někteří lidé pohrdají altruismem, resp. jsou k těmto lidem jaksi nepřátelští.
Jak křehká je naše civilizace a jak snadno si pod sebou dokážeme podříznout větev, jak snadno se dokážeme sami zahubit.
Jak těžké je dostat se z takové situace, kdy je většina lidí na planetě mrtvá a je jen málo lidí, kteří vůbec tuší, jak funguje elektrárna.
Jaké místo má v tom všem víra, ne nutně přímo nějaké konkrétní náboženství, ale víra v něco, co jaksi vypluje na povrch, když přijdeme o všechny naše moderní "hračky", něco, co tu celou dobu je, ale teď to nepotřebujeme.

Podobně otevírají mysl Tarkovského filmy, ukáží na něco, co nedokážeme zpochybnit, nevysvětlí to, jen diváka nechají přemýšlet, hledat možnosti, ale stejně nakonec nechápat - nicméně i to ho posouvá mnohem dál, než kdy tušil ...
Ve filmu Solaris se "cizí inteligence" snaží komunikovat s lidmi tak, že jim zhmotňuje sny. Jakkoliv to zní ujetě, když to takhle napíšu, má to hlavu a patu. Lidská řeč, zvuk, frekvence vlnění kolem 20 Hz - 20 kHz, proč by někdo nutně musel komunikovat takhle? Jenže řeč výrazně ovlivňuje způsob myšlení, jak s takovou bytostí vůbec kdy lze komunikovat? Když člověk miloval a o lásku přišel, co se tak může stát, kdyby to šlo vzít zpátky? Ne, "americkou" verzi nečekejte. Tahle je o hodně těžší. Ve všem.
Film Stalker všichni chválili, já ho po shlédnutí zavrhl jako "nic moc" - o týden později mi teprve začaly docházet souvislosti některých pasáží. Nedokážu ho vyprávět, vím, o čem je pocitově, ale slova moc nejsou. O strachu. O strachu, který dobře znáte, ale nedokážete ho popsat, jen víte, že je odůvodněný, o čemž zároveň pochybujete.
Film Andrej Rublev, kdy víc než kde jinde jste nuceni pochopit, že středověk "fungoval" opravdu jinak, úplně jinak, a taky se dozvíte, jak se odlévaly zvony, veliké zvony.

Sledování primitivních filmů a čtení kratičkých textů z Facebooku nebo českých novin má zjevně také vliv na způsob uvažování. Chybí empatie, chybí schopnost "podívat se za roh" a snaha domýšlet možnosti, co všechno může událost způsobit a co jí mohlo způsobit. Tohle nás nakonec zničí, protože to vede k nezodpovědnosti. Nedokážeme zvážit kontext událostí ani možnosti.

neděle 4. září 2016

Holocaust, zbrojní obchody, války, utečenci.

K tomu holocaustu. Já si tenhle web dávkuji už snad pár let, prokládám jinými dokumenty. Jednu dobu tu stránku kdosi dokonce označil za malware.

http://www.holocaustresearchproject.org/nazioccupation/Holocaust-in-the-east.html
Nezajímá mě to až tak kvůli historii, ale spíš kvůli budoucnosti, nebo vazbě minulosti a budoucnosti, události, které souvisí a způsobují události ...
Andreas Eberl, německý voják, který byl svědkem Akce v lotyšském městě Daugavpils:

Slyšeli jsme, že ve věznici popravují Židy, tak jsme se šli podívat. Popravy ale neprobíhaly ve věznici, ale nedaleko od ní.
Výkopy byly dva a půl metru široké a 40 až 50 metrů dlouhé. Neviděl jsem na dno výkopu, protože v něm byla těla stovek už zastřelených Židů. Odsouzenci si museli kleknout na břehu tváří k výkopu. Komando je pak střílela do zátylku. Vzdálenost mezi střelcem a zastřelovanou osobou byla kolem půl metru.
Po zastřelení lidé padali do výkopu. Komando sestávalo z desítky lidí, polovina střílela, druhá polovina stála za nimi a občas si vyměnily místa. Ve výkopu jsem viděl muže kolem šedesátky, obvykle Žida, jehož prací bylo rovnat těla do řad. Když byla řada kompletní, muž vylezl ven a posypal jí něčím bílým, nejspíš chlornanem vápenatým (?).
Asi hodinu jsme s kamarády sledovali popravy. Během té doby bylo zastřeleno asi 150 Židů. Počet přihlížejících se pohyboval kolem 60 až 80.
Židé, teří byli střelení a spadli do výkopu a nepřestávali se hýbat, byli zastřeleni samopalem jedním z komanda. Munice pro nabíjení leželo na stole vedle lahví vodky, a čas od času někdo z komanda šel a napil se.

Vsevelod Klokov v rozhovoru v historickém seriálu The World at War:
Okupanti byli hrubí, velmi hrubí, obzvlášť v oblastech, kde byli aktivní partyzáni. Jen na Ukrajině bylo nacisty vypáleno 511 vesnic dříve, než jejich obyvatelstvo stihlo utéct.

Ve vesnici Pinsk nedaleko Kyjeva, která byla vypálena do základů, házeli do ohně i děti.
No a dál si to přeložte sami, pokud možno dřív, než budete díky své vlastní volbě a svému vlastnímu vyjadřování podpory tomu či onomu nuceni též přihlížet něčemu takovému. Možná se to zkraje také budete pokoušet omlouvat, odůvodňovat, ospravedlňovat s tím, že Židé si za to přece sami mohli, ale v hloubi duše budete vědět, že vy jste tím, kdo pomohl k moci těm, kteří o vraždění rozhodli.
V horším případě budete na okraji příkopu klečet sami ...

Spoustu věcí zveličujeme, spoustu věcí podceňujeme, některé jsou tiché a plíživé, ale zažírají se pod kůži všem. Třeba obhroublost politiků i jejich oponentů a aktivistů. Učí se jí všichni a v kombinaci s přímočarými triviálními řešeními je to dost nebezpečná záležitost.

A pak je tu záležitost, že se neumíme vzepřít autoritám. Zvlášť když se díváme, jak se vraždí lidi, ale sami netušíme, jak to zastavit.

Firmy se souhlasem státu obchází zbrojní embarga, na která už kašlou skoro všichni. Je ticho, všichni mlčí, nikdo nemá páku, jak to zastavit, nikdo neví na koho se obrátit, koho obvinit, nikdo se ani nepokouší. Funguje to, a lidi umírají. Umírají ale daleko.

A ještě jeden citát, nechte si ho projít hlavou a zapamatujte si ho. Vzpomeňte si na něj třeba u přihlouplých estrád, nebo při výrocích politiků i svých vlastních, dokonce i těch, kdy na hloupost a hrubost politika reagujete nějakou hrubou nadávkou.
Mnoho lidí váhá, mají-li říct dobré slovo, a stydlivě se červená, zatímco lehkomyslné vynáší směle a hlučně, netušíc, že takové naneštěstí nevyzní naprázdno, ale zanechá dlouhou stopu zla, někdy nenapravitelného.
(Ivan Gončarov - Oblomov)

neděle 3. července 2016

Javisté a databáze - základní chyby

Na školení jsem všem implicitně vynadal, že nikdo pořádně neumí používat ani JDBC, ale chtějí (dobře) používat JPA nebo JTA. A co teprve, aby rozuměli trochu tomu, co jejich zacházení způsobí na databázovém serveru ...
Pak se diví, že jim to celé padá na hubu - typicky začnou optimalizovat SQL, ale marně. Jen málokoho napadne, že databázi dávají kapky - pro každý váš požadavek databáze alokuje nějaké zdroje v operační paměti, přidělí vlákno, příkaz zabere nějaké místo na file systému, a databáze čeká až na signál od vás, že už jste hotoví.
Tož si překontrolujte, jestli si databázi nepřetěžujete ...
  • zavíráním statementů
    • kolikrát za sebou generujete stejný prepared statement?
    • nezavíráním statementů
    • jak dlouho má db držet statement?
    • kolik stejných prepared statementů držíte najednou?
    • poslední pomoc: omezit počet použití konexe z poolu, pak jí AS nuceně zavře a otevře novou (Payara)
  • nezavíráním result setů
    • jak dlouho má db držet nalezená data, kurzor?
    • kolik dat to je?
    • fetch size
  • zbytečně dlouhými transakcemi se spoustou změn
    • víte, co se děje v databázi?
    • víte, že i zdroje databáze jsou omezené?
  • nemazáním dočasných tabulek, vytvořených v poolovaných konexích
    • je to v podstatě leak, zapomenutá data pak můžou být náhodně nalezena jiným dotazem, čili hypoteticky to může být i bezpečnostní díra.
  • nadměrným využíváním indexů nebo naopak jejich absencí
    • každé vložení dat způsobí změnu v indexech
    • databáze jsou různě chytré/hloupé při optimalizacích
    • indexy pomáhají při čtení
    • indexy škodí při zápisu
    • někdy se hodí replikace db tak, aby db pro vyhledávání byla důsledněji indexovaná než ta pro zápis
  • chybným nastavením JDBC poolu
    • default lock timeout
    • velikosti bufferů
    • různé optimalizace
    • rozdělení datových zdrojů podle použití (exporty vs. CRUD)
  • chybným nastavením:
    • stmt.setQueryTimeout
    • stmt.setMaxRows
    • stmt.setFetchSize
    • conn.setTransactionIsolation
    • conn.setResultSetConcurrency
    • conn.setHoldability
JPA samozřejmě k relační db přistupují přes jdbc, ale pozor!
  • JDBC transakce není nutně pod JPA transakcí a už vůbec nejsou svázané 1:1
  • JPA transakce není JTA transakce
  • můžou. Je to záležitost nastavení "persistence unit" a také nastavení hintů (viz Query.setHint)
  • EntityManager.unwrap(Connection.class) znamená spuštění JDBC transakce a svázání 1:1 JDBC konexe a JPA manažera se vším, co to obnáší.
JTA se pak řídí hlavně anotacemi, ale pozor pozor!!!
  • pokud si nedáte pozor, můžete si připravit neskutečné magické transakční peklo
  • „requires“ je dobrý default
  • „requires new“ se někdy hodí, ale … uvědomte si, co to znamená!
  • některé posloupnosti těchto hodnot dokážou naprosto šílené věci – s kolika JPA kontexty a JDBC konexemi nakonec opravdu pracujete?
Jste programátoři, vědci, ne pistolníci z televizního divokého západu. Na riskování není čas, musíte přesně vědět, co děláte ;-)

sobota 26. března 2016

Proč je důležité mluvit s blbci

Lůza je hrozně hanlivé označení lidí. Blbci není o moc lepší. Řeklo by se nadávka, jenže ono je to tak ... 
Učitelé musí mít hroznou trpělivost. Já se pustím jednou za čas do konverzace s blby a po hodině házení hrachu na zeď je mi z nich špatně. Jenže - za prvé - když to nikdo dělat nebude, blbci mají ohromnou schopnost se v blbství utvrzovat a stupňovat ho. Postupně tak vznikne ohromné stádo pološílených blbů, schopných silou prosazovat stejně pološílené nápady. Bolševismus, nacismus, supremacismy obecně ... 
 Za druhé - je dobré vědět, že zdaleka ne každý má rozhled a že spousta lidí opravdu má problémy s logickým myšlením (resp. ano, nikdo nemá kompletní rozhled a perfektní logiku, ale u některých lidí jde opravdu o katastrofální úroveň). Fungují často na obrázky, které si spojí s jediným slovem v textu, spojeným s nějakou emocí. To je všechno, veškerá politika a schopnost volit stojí jen na tomhle.
Nestačí tím ale pohrdat a zesměšňovat to, ono je to spíš na škodu. Takových lidí bude vždycky dost, jenže pokud chcete něco změnit na čím dál absurdnější politice, budete muset začít odspoda.
Vzdělání je lékem na blbost. 
A tak se obloukem opět dostávám k České televizi. Ta totiž svou funkci vůbec neplní. Krom několika málo pořadů se vzdělávání obyvatelstva nijak nevěnuje, spíš se snaží urvat procenta sledovanosti v konkurenci komerčního tupého vysílání - komerčním tupým vysíláním.
Jenže když svou funkci plnit začne, stejně se na ní blbci dívat nebudou.
Depresivní, že?
A tak nezbývá, než aby bylo vzdělání všude, kde se na něj dá vůbec narazit. Snad i proto se začaly prosazovat všelijaké Techmánie, na ulici přístupné knihovny, dokonce piana, ...
Zázrak to neudělá, ale znamená to, že to někdo s touhle společností ještě nevzdal a i jen tenhle vliv může způsobit, že blbci nikdy vládnout nebudou. Někdy totiž opravdu stačí málo.

neděle 13. března 2016

How to upgrade BIOS on Lenovo Ideapad if you have Linux OS?

Why?

I have some problems with suspending of the system. CPU frequency is lowered from 3 GHz to 1.3 GHz and next time to 600 MHz after each wakeup. Maybe it is a problem of the operating system, but on another machine (Dell) with the same system it's alright.
EDIT: updating BIOS did not help.
EDIT2: updating Kubuntu to current 16.10 helped. ;-)

What?

  • Notebook Lenovo Ideapad Y510P
  • Kubuntu Linux 15.10 64bit
  • any USB stick (or SDHC card, etc.)

What does not work?

The root of the problem is that the new BIOS version is distributed only in EXE file. It is some installer with another installer inside and it is an 32bit Windows application.
So you need some 32 bit Windows and minimal supported Windows is Windows 7. I thought okay, it is ugly, but I will download some Trial from Microsoft, I will burn the ISO to the USB or DVD and use it's console to start the EXE.
It wasn't so simple ...
  • burned ISO does not boot - I have tried Win7 32b, Win10 32b and 64b.
  • following any instructions with dd failed - USB does not boot
  • Startup Disk Creator failed - does not work at all, I have selected ISO file but it was not shown in GUI.
  • UNetbootin failed - successfuly created bootable disk, but it could not boot.

Results

  • downloaded about 12 GB data from the internet.
  • registered on Microsoft's web ("sorry, Microsoft, but I don't want your system, I only need to run this 5 MB exe file - only once!")
  • maybe 20 times deleted and recreated the file system on three USB discs.
  • maybe 100 reboots of two notebooks used for this.
  • maybe 12 hours of work that made me crazy :D
  • and ... SUCCESS! :D

Howto

  1. Download BIOS
  2. Download any 32 bit Microsoft Windows (or some Live CD?)
  3. Start gparted
    1. Select the USB that you will use
    2. Delete all partitions or create new Partition table
    3. Create new NTFS partition (any other would not boot!) and give it some pretty name.
    4. Apply changes
    5. Set attributes to the partition (boot)
    6. Exit gparted.
  4. Start UNetbootin from the command line to prevent bug - if you would start from the menu, you could not select the NTFS partitions:
    1. sudo unetbootin installtype=USB targetdrive=/dev/sd[c][n]
    2. Select the downloaded ISO, click OK and wait ...
  5. Mount the USB disk
  6. Copy the downloaded BIOS exe to the root directory
  7. Unmount and reboot
  8. Hit F12 and start the Windows system installer
    1. I can't remember exactly but you need to get to the windows command line.
    2. Type c: and hit enter, now you are in the root directory of the USB partition.
    3. Type dir, then type the name of the exe file and hit the ENTER.
    4. Follow instructions of the BIOS installer. 
  9. Happyend? ... Maybe ... it took me two days ;-)

Sources

The best source that helped me is this answer on AskUbuntu: http://askubuntu.com/a/252910/160422


Fail 17 - 64 bit version of Windows

Success - bios updater started on Win installer 10 32bit

BIOS update in progress

Finally done.