Stát chce dnes zasílat nejeden formulář přes EPO, kde je Java nezbytná pro fungování podepisování. Vláda USA doporučuje svým občanům Javu odinstalovat, co se začít bránit proti povinnosti EPO využívat, nebo požadovat náhradu za to, že nás stát nutí používat technologii, která je potencionálně nebezpečná? :-D
jako naprosto nepřehledný a mizerně dokumentovaný moloch (tou mizernou dokumentací myslím to, že k některým třídám sice máte desítky, i více než sto, stran dokumentace, ale nedozvíte se z nich 1. jakou syntaxí se volají, 2. jaké parametry volání jsou přípustné 3. jakou mají tyto parametry implicitní hodnotu, když je při volání nezadáme). Za těchto okolností jsou chyby více-méně logická věc a jejich odstranění je nemožné.
Asi nejrozumnější by bylo vrátit se někam k verzi 5 a vyšší verze zgruntu programovat znova.
Vzpomínám na "vtipnou" epizodu, kterak Symantec předělal centrální správu svého enterprise produktu Symantec Endpoint Protection z MMC snap-inu na "multiplatformní" moloch v prohlížeči, s Tomcatem a Javou. Nejen, že to na Linuxu samozřejmě stále neběželo, ale rázem to neběželo ani na Windows, ani dva service packy a desítky menších aktualizací tomu nepomohly. Z aplikace, kterou zvládl kdejaký obstarožní server v kumbálu se stalo monstrum, kterému nestačil quadcore s 8GB paměti. A na fóru technické podpory mazali a banovali rozzuřené zákazníky.
Podobně "kvalitní" je "výtečná" aplikace na správu serverů od Fujitsu (ServerView Operations Manager). JRE7 začali podporovat "již" někdy v listopadu 2012, a první následující aktualizace na Javy na verzi 7 Update 10 to opět rozbila, dodnes neopraveno. Na 8jádrovém procesoru se ten jejich výtečný produkt postavený na JBoss serveru spouští asi pět minut.
Vynikající technologie. :-)))
Jinak ještě vtipná epizodka, jak "funguje" opravování známých chyb u Oraclu. :-)))
The bug you are referring is in state accepted indeed. There are no plans right now to fix it. Of course, if a contract customer requests a fix, then it will be fixed. Otherwise it might take quite some time until a fix becomes available.
U MySQL, které tato firma také usilovně likviduje, pro změnu bugy před neplatícími zákazníky rovnou utajují.
Ne kvůli bezpečnosti, ale prostě proto, že mi to spouštění z prohlížeče z nějakého důvodu přestalo fungovat a byl jsem líný to řešit.
Nepoužíváte Chrome/Chromium? Tam je podle mne od vydání "moderního Java pluginu" podpora Javy rozbitá, protože na moderní plugin přešli jenom na půl. Proto mne taky docela překvapuje ta panika kolem Javy v prohlížečích, přitom nikomu nevadí, že v Chrome je to už několik měsíců, ne-li let, rozbité.
Zkuste si porovnat ty uživatelské scénáře.
První varianta, uživatel přejde na stránku, potvrdí spuštění, na pozadí se mu případně automaticky stáhne a nainstaluje správná verze Javy, aplikace se spustí.
Druhá varianta, uživatel přejde na stránku, potvrdí spuštění, možná se mu spustí aplikace (možná taky ne, protože změna v JRE způsobí, že se aplikace ani nenastartuje), objeví se dialog, že má nepodporovanou verzi Javy, možná s odkazem. Takže přejde na stránku pro stažení starší verze JRE, vytvoří si Oracle Account, stáhne, nainstaluje, vrátí se na původní stránku, znovu spustí aplikaci, a znova se mu objeví ta samá hláška, protože když není nějaká verze vynucená natvrdo, aplikace se spustí s nejnovějším JRE. Můžete tipovat, ve kterém kroku uživatel usoudí, že rada od „j“ byla pěkně hloupá, můžete si ale být jist, že k tomu určitě dojde – poslední krok to zaručuje.
To, že je aplikace funkční pouze pod MSIE, s Javou nijak nesouvisí.
Tou konkrétní chybou opravenou v Java 7 update 11 netrpí řada 6, nové chyby jsou pořád ve stadiu „možná někde nějaká chyba je“ a nikdo o tom víc neví.
Příště se místo na jméno diskutujícího zkuste víc soustředit na obsah vlastního komentáře, dvě věci v rozporu s fakty a špatná dedukce v jediném komentáři nejsou žádná sláva.
A co takhle standardni scenar, uzivatel prijde, spusti a ono to bezi ... stejne jako miliony jinych aplikaci.
No vida, tak jste nakonec dospěl k tomu, co jsem psal na začátku.
IE s javou zcela souvisi, protoze stara java NENI funkcni, pokud ma dotycny na PC novejsi IE (jednoduse se ani nenecha instalovat).
O kterých verzích Javy a MSIE se přibližně bavíme? Mám MSIE 9 a nainstalovanou i Javu 5 (a taky 6 a 7), a nezdá se, že by to nešlo.
Mimochodem to, že nějaká aplikace vyžaduje konkrétní verzi Javy, je z hlediska bezpečnosti Java pluginu bezpředmětné. Aplikace si totiž může požadovanou verzi vyžádat, a ta verze se v případě potřeby doinstaluje. Takže nezáleží na tom, zda uživatel tu děravou verzi má nebo nemá nainstalovanou – podstatné je jenom to, zda má nainstalovanou libovolnou verzi s moderní verzí pluginu, která ty automatické instalace na pozadí podporuje.
Firefox (z repozitářů) na Ubuntu 12.04. Plugin pro java applety mi funguje, nicméně tam to podepisování je (pokud vím) webstart. Po nějakém updatu mi to přestalo fungovat, myslím, že nešlo rozšifrovat keystore. Ale jak jsem psal, vůbec jsem to ani nezačal zkoumat, asi to bude něco s právama.
Ono totiž nic moc jiného nejde dělat, pokud máte garantovat, že vaše aplikace bude fungovat. Bylo by neefektivní testovat veškerou funkcionalitu s každou novou verzí Javy – třeba v případě appletů by to znamenalo s testováním různých verzí prohlížečů testovat stovky variant. Takže se vyvíjí a testuje s jednou verzí, za kterou autoři ručí. To neznamená, že to s jinou verzí nebude fungovat, ale může se stát, že v té jiné verzi runtime knihovny JRE bude nějaká změna, kvůli které ta aplikace přestane fungovat.
Jeden příklad z přechodu Java 6 na Java 7. Sedmička vynucuje vyšší úroveň zabezpečení při HTTPS komunikaci. Jako programátor to můžete ovlivnit ve své aplikaci. Ale když se aplikace spouští jako applet, pro stahování souborů appletu se použije výchozí nastavení, které nejde ovlivnit. Takže když se soubory appletu stahují přes HTTPS, v sedmičce se vždy použije vyšší zabezpečení (pokud uživatele nenasměrujete, jak si to někde v hlubinách ovládacích panelů přepnout). Jenže tohle vyšší zabezpečení musí podporovat i server. A když ho nepodporuje, jediná možnost je vynutit si Javu 6.
Jirsak, opet, vemem lopaticku, a deme si hrat na pisecek, ano?
Ono se z aplikace neda zjistit, pod jakou verzi bezi? A zobrazit userovi info o tom, ze s touto verzi neni aplikace otestovana? Proc by si user mel neco vybirat, proste mu to bud bude nebo nebude fungovat. Ale nebudu mu umyslne hazet klacky pod nohy. Ono je totiz uzasne bezpecny drzet v provozu stroj s IE (protoze aplikace je IE only), dve verze (nikoli revize, ale skutecne verze) pod aktualni, bez supportu, nezaplatovany a k nemu pekne nejakou prehistorickou (tatez nezaplatovanou) javu, jen proto, ze vyvojar appky je debil.
Vybral sem si velmi dobre, protoze starsi verze samo chybu jak se ukazalo obsahuji taktez, a minimalne plati zcela obecne, ze starsi verze predevsim obsahuji zname chyby, pro ktere existuji zname exploity.
Prosímtě, s Jirsákem se nebav. Ten dement dodnes nepochopil rozdíl mezi ukládáním a exportem z Gimpu. Dokonce pro něj vytvořili komiks.
A co takhle standardni scenar, uzivatel prijde, spusti a ono to bezi ... stejne jako miliony jinych aplikaci.
IE s javou zcela souvisi, protoze stara java NENI funkcni, pokud ma dotycny na PC novejsi IE (jednoduse se ani nenecha instalovat).
Ale vysvetlovat to jirsakovi, je zcela zbytecne, protoze blb blbem zustane.
Zase placy hovadin ...
Zcela normalni je, ze aplikace funguje na llibovolne verzi, ale garantovana je na nejakych vybranych verzich. Rozhodne neni normalni, aby aplikace natvrdo vyzadovala nejakou konkretni verzi.
Nadto banka by naopak mela trvat na pouzivani co nejnovejsi - a tedy co nejmene derave - verzi. Docela bych se asi smal, pokud by doslo na nejake ty soudy kolem zpusobenych skod.
Ta firma nikdy nemela kapacity ani vizionare na tak komplexni technologii. Proto uz se nasli taci, kteri se to alespon snazi povysit na neco coby odpovidalo dnesni dobe http://www.zdrojak.cz/zpravicky/kotlin-java-alternativa-od-jetbrains/
Uživatele klikající vždy na ano nezachrání ani sebebezpečnější Java a ani odinstalace Javy. I Java bez jakékoli bezpečnostní díry bude stále umožňovat po odsouhlasení uživatelem spouštět kód bez jakýchkoli omezení. A i když Java v prohlížeči nebude, pořád zbývají pluginy do prohlížeče nebo jednoduché stažení spustitelného souboru.
Zcela normalni je, ze aplikace funguje na llibovolne verzi, ale garantovana je na nejakych vybranych verzich. Rozhodne neni normalni, aby aplikace natvrdo vyzadovala nejakou konkretni verzi.
Jak konkrétně se tohle zapisuje v JNLP souboru pro spuštění WebStart aplikace nebo appletu? Můžete také odkázat na screenshot dialogu, ve kterém následně uživatel vybírá, zda chce spustit aplikaci s garantovanou verzí JRE nebo s nějakou jinou? (Mimochodem, v MSIE něco takového opravdu funguje – pokud je vyžadována konkrétní verze a existuje novější, MSIE se dotáže, zda se má použít ta vyžadovaná nebo nejnovější).
co nejnovejsi - a tedy co nejmene derave
Nevybral jste si zrovna nejšťastnější dobu pro publikaci takového tvrzení. Od zveřejnění informací o poslední chybě, která se týkala jen řady 7 a starší verze byly bez této chyby, neuběhl ještě ani týden. Jinak to vyžadování verze se dělá právě proto, že nové verze někdy (bohužel víc, než by bylo milé) mají nové chyby.
Viděl jsem třeba verzi JRockitu, která měla chybu v optimalizčním kódu v JVM. Pod zátěží to začalo optimalizovat třeba java.lan.Long do nativního kódu, bohužel špatně, takže tu třídu efektivně vygumoval z JVM. ClassNotDefFound: java.lang.Long jsem tenkrát viděl poprvé a doufám naposledy v životě. Při nějaké konstelaci hvězd se ta chybná optimalizace ani nedokončila a sletěla rovnou celá JVM na segfault nebo něco podobného. Rada, že jsme to stejně měli provozovat na téhle (nejnovější) verzi, je sice hezká, ale nepoužitelná.