{"id":225,"date":"2006-07-21T14:39:37","date_gmt":"2006-07-21T14:39:37","guid":{"rendered":"http:\/\/neosmart.net\/blog\/archives\/225"},"modified":"2013-08-26T18:09:18","modified_gmt":"2013-08-26T23:09:18","slug":"and-we-thought-java-was-the-same-everywhere","status":"publish","type":"post","link":"https:\/\/neosmart.net\/blog\/and-we-thought-java-was-the-same-everywhere\/","title":{"rendered":"And We Thought Java was the Same Everywhere!"},"content":{"rendered":"<p>Java. It&#8217;s that old language that runs code in a highly bloated virtual machine at slow speeds and terrible performance, especially on the Web. On a local PC, a Java&#8217;s just pure slow, but on the web Java can be a real headache. However, it has its benefits too &mdash; or so we thought. There are only two reasons someone would use Java in a website today: they wanted to write a complex program\/script really quick and they needed it to <em>just work<\/em> regardless of browser or platform. After all, Java is Java, no matter if you&#8217;re on Windows, Linux, or Mac; or use Firefox, Opera, or even Internet Explorer&#8230; But it&#8217;s not!<\/p>\n<p>First, to clarify: this <em>isn&#8217;t<\/em> an article about Java, and it especially isn&#8217;t an attack on Java, not today. This is about Opera 9, the wonderful and highly-innovative browser that can do anything and everything with less memory than its competitors and with much less time too. But it breaks Java.<\/p>\n<p><!--more--><\/p>\n<p>The reason isn&#8217;t clear, because unlike older versions of Opera, Opera 9 doesn&#8217;t have its own special version of Java or use it in a &#8216;broken&#8217; way. The extent of Opera&#8217;s innovation in this field with Opera 9 is interfacing directly with Java &mdash; unlike all other browsers it doesn&#8217;t need a plug-in to connect to the JRE, instead it finds the executable files on its own and embeds them in a browser window.<\/p>\n<p><em>If<\/em> all what Opera does is run the JAR on its own, then simply stick it into the browser, there is no reason <em>anything<\/em> should go wrong. Its fairly straight-forward, but apparently something is wrong.<\/p>\n<p>The particular manifestation of this bug is something we&#8217;re experiencing with <a href=\"http:\/\/neosmart.net\/gallery\/album\/index\/\" rel=\"follow\">our Gallery<\/a> which has a script used to modify and crop the thumbnails used for our pictures. It has a movable box to select the area visible in the thumbnails, and in the bottom-right corner of this box is an anchor that can be used to re-size the box.<\/p>\n<p>In Firefox, Safari, Netscape, and Internet Explorer, it works great:<br \/>\n<a href=\"http:\/\/neosmart.net\/images\/miscellania\/Java_Others.png\" rel=\"follow\">How it looks on Bon Echo &amp; IE7<\/a><\/p>\n<p>But in Opera, moving the box resizes it, and resizing it locks it from moving; and no matter how are you try, you can&#8217;t get the box to span the entire image.<br \/>\n<a href=\"http:\/\/neosmart.net\/images\/miscellania\/Java_Opera.png\" rel=\"follow\">Messed-up resizing on Opera<\/a><\/p>\n<p>The interesting thing is, Opera is the only one that displays the picture correctly without the pixelization, yet it alone can&#8217;t re-size the right way. In the other browsers you have the grey translucent shadow, but in Opera it&#8217;s missing.<\/p>\n<p>All this brings us to the question: whose fault is it? Does Opera incorrectly use the JRE, or is the JRE actually platform-dependant, but for the &#8216;compatibility layer&#8217; presented in the plug-in? Why does this happen with Opera alone? And most importantly: with AJAX and Flash, is Java dead?<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Java. It&#8217;s that old language that runs code in a highly bloated virtual machine at slow speeds and terrible performance, especially on the Web. On a local PC, a Java&#8217;s just pure slow, but on the web Java can be &hellip; <a href=\"https:\/\/neosmart.net\/blog\/and-we-thought-java-was-the-same-everywhere\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1],"tags":[56,67,59],"class_list":["post-225","post","type-post","status-publish","format-standard","hentry","category-software","tag-bugs","tag-java","tag-opera"],"aioseo_notices":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p4xDa-3D","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/neosmart.net\/blog\/wp-json\/wp\/v2\/posts\/225","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/neosmart.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/neosmart.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/neosmart.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/neosmart.net\/blog\/wp-json\/wp\/v2\/comments?post=225"}],"version-history":[{"count":1,"href":"https:\/\/neosmart.net\/blog\/wp-json\/wp\/v2\/posts\/225\/revisions"}],"predecessor-version":[{"id":1939,"href":"https:\/\/neosmart.net\/blog\/wp-json\/wp\/v2\/posts\/225\/revisions\/1939"}],"wp:attachment":[{"href":"https:\/\/neosmart.net\/blog\/wp-json\/wp\/v2\/media?parent=225"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/neosmart.net\/blog\/wp-json\/wp\/v2\/categories?post=225"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/neosmart.net\/blog\/wp-json\/wp\/v2\/tags?post=225"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}