<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="/stylesheets/rss.css"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>Depth-First: Tag applets</title>
    <link>http://depth-first.com/articles/tag/applets</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description>Walking the Web of Chemical Informatics</description>
    <item>
      <title>Flex, Rich Internet Applications, and Cheminformatics</title>
      <description>&lt;p&gt;&lt;center&gt;&lt;img src="http://depth-first.com/demo/20070525/flash.png"&gt;&lt;/img&gt;&lt;/center&gt;&lt;/p&gt;

&lt;p&gt;Building &lt;a href="http://en.wikipedia.org/wiki/Rich_Internet_application"&gt;Rich Internet Applications&lt;/a&gt; (RIAs) is no easy task. The technologies are all there, but twelve years after the release of Netscape Navigator, Web developers are still hacking around browser idiosyncrasies.&lt;/p&gt;

&lt;p&gt;From JavaScript to HTML, to CSS, browser quirks are still a fact of life. Browsers tend to disagree the most on the more advanced features, but examples of less advanced features requiring cross-browser work-arounds continue to suck up large amounts of developer time.&lt;/p&gt;

&lt;p&gt;Even Java applets get in on the act. The interface between applets and the browser is the most poorly-defined aspect of the technology. Particularly with respect to &lt;a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4984794"&gt;keyboard focus&lt;/a&gt;, &lt;a href="http://forum.java.sun.com/thread.jspa?threadID=348710&amp;amp;messageID=2031874"&gt;persisting applet state&lt;/a&gt;, and even &lt;a href="http://java.sun.com/developer/technicalArticles/J2SE/Desktop/ieappletguide/"&gt;initial activation&lt;/a&gt;, it's "write once, test everywhere."&lt;/p&gt;

&lt;p&gt;Recently, I saw a presentation by &lt;a href="http://www.jamesward.org/wordpress/"&gt;James Ward&lt;/a&gt; on a technology called &lt;a href="http://www.adobe.com/products/flex/"&gt;Flex&lt;/a&gt; that's aimed squarely at solving the Rich Internet Application problem.&lt;/p&gt;

&lt;p&gt;Flex is a platform for building software that runs on the Flash multimedia player. If you've developed Java applets, you already know a lot about how Flex works. Here are some of the key points James brought up:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Flex applications are written in ECMAScript (aka JavaScript) and run on the Flash 9 runtime. The language offers, among other features, variable typing. This stands in contrast to the non-typed form of JavaScript typically used in browsers.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Sometime in 2007, Flex will be open sourced. The &lt;a href="http://www.adobe.com/products/flex/downloads/"&gt;developer kit&lt;/a&gt; is currently a free download.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A desktop-native runtime for Flex called &lt;a href="http://labs.adobe.com/technologies/apollo/"&gt;Apollo&lt;/a&gt; is nearing release.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A variety of eye-popping examples of Flex in action are available. My favorites so far: &lt;a href="http://demo.quietlyscheming.com/book/Anatomy.html"&gt;FlexBook&lt;/a&gt; and &lt;a href="http://picnik.com"&gt;Picnik&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="http://demo.quietlyscheming.com/book/Anatomy.html" border="none"&gt;&lt;center&gt;&lt;img src="http://depth-first.com/demo/20070525/flashbook.png"&gt;&lt;/img&gt;&lt;/center&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Adobe is clearly trying to position Flash/Flex as the successor to Java applets. By ensuring that Flash works the same way in all browsers, has a rich API for interacting with the browser, and is available on all platforms, they just might succeed.&lt;/p&gt;

&lt;p&gt;Adobe claims that Flash is the most widely-installed multimedia browser plug-in. According to a &lt;a href="http://www.adobe.com/products/player_census/flashplayer/"&gt;recent study&lt;/a&gt;, nearly 99% of browsers have some version of Flash installed (congratulations to &lt;a href="http://cheminfo.informatics.indiana.edu/~rguha/"&gt;Rajarshi Guha&lt;/a&gt; for almost immediately getting the &lt;a href="http://depth-first.com/articles/2007/05/23/name-that-graph"&gt;Name that Graph&lt;/a&gt;). Adoption of Flash 9, the latest version and the one required to run Flex applications, &lt;a href="http://www.adobe.com/products/player_census/flashplayer/version_penetration.html"&gt;is significantly lower&lt;/a&gt;. My guess is that these numbers will rise quickly given the availability of Flash 9 for Linux and the mere 1.5 MB download footprint.&lt;/p&gt;

&lt;p&gt;If Flex has anything going against it, it's probably the small footprint of the Flash player. One of the first things you'll notice about many feature-rich Flex applications is how long they take to download relative to comparable Java applets. What the Flash runtime lacks, your application may well have to supply on deployment.&lt;/p&gt;

&lt;p&gt;I'm unaware of a single use of Flex/Flash in cheminformatics. This is really quite surprising given the highly visual nature of cheminformatics and the refined graphics capabilities of the Flash player. Even with it's limitations, Flex may offer solutions to a variety of difficult problems in developing Rich Internet Applications for chemistry.&lt;/p&gt;</description>
      <pubDate>Fri, 25 May 2007 11:32:00 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:8666387e-50a3-424e-84b4-2b5c0dce104e</guid>
      <author>Rich Apodaca</author>
      <link>http://depth-first.com/articles/2007/05/25/flex-rich-internet-applications-and-cheminformatics</link>
      <category>Meta</category>
      <category>flex</category>
      <category>flash</category>
      <category>richinternetapplcations</category>
      <category>applets</category>
      <category>java</category>
      <category>webapp</category>
    </item>
    <item>
      <title>Look Ma, No Applets!</title>
      <description>&lt;p&gt;&lt;center&gt;&lt;img src="http://depth-first.com/demo/20061109/webme.png"&gt;&lt;/img&gt;&lt;/center&gt;&lt;/p&gt;

&lt;p&gt;The state of the art in structure editors for chemical Web services is Java applets. Although closed editors have long dominated this field, &lt;a href="http://depth-first.com/articles/2006/08/21/four-free-2-d-structure-editors-for-web-applications"&gt;Open Source editors&lt;/a&gt; are a possibly viable option. Java applets are great from a developer's perspective. But applets are avoided by some end users and IT support for their underlying need to install a Java plug-in of some kind and long startup times.&lt;/p&gt;

&lt;p&gt;Through David Bradly's &lt;a href="http://www.sciencebase.com/science-blog/chemists-escape-browser-lock-down.html"&gt;sciencebase&lt;/a&gt;, I came across a non-Java solution to the structure editor problem. The software is called &lt;a href="http://www.molinspiration.com/products/webme/"&gt;WebME&lt;/a&gt;. WebME looks and feels similar to &lt;a href="http://www.molinspiration.com/jme/"&gt;Java Molecular Editor&lt;/a&gt;. It loads quickly and provides a clean, inviting user interface. It should work in any modern browser. Most interesting of all, WebME works without a browser plugin of any kind.&lt;/p&gt;

&lt;p&gt;The magic behind WebME is AJAX, which has been summarized by Paul Graham as &lt;a href="http://paulgraham.com/web20.html"&gt;"Javascript now works"&lt;/a&gt;. By asynchronously interacting with a Web server as user interface events occur, WebME is able to cram a lot of functionality into a relatively small deployment package. The user interface is written in a mixture of HTML and JavaScript, thus eliminating the need for Java.&lt;/p&gt;

&lt;p&gt;Although WebME's use of AJAX is innovative, other non-Java solutions to the structure editor problem have also been implemented. For example, &lt;a href="http://pubchem.ncbi.nlm.nih.gov/"&gt;PubChem&lt;/a&gt; have developed an editor in JavaScript/HTML for use with their popular service.&lt;/p&gt;

&lt;p&gt;Despite its advantages, the AJAX approach does involve some trade-offs. For example, WebME is not nearly as responsive as, say, JME. I would imagine that unusually high network latency could further erode WebME's responsiveness. Furthermore, the subtle visual cues that make JME a productive tool, such as highlighting the node or edge the cursor is about to edit, are non-existent. It's unclear if this is a limitation of this particular version of WebME I used or the underlying technology.&lt;/p&gt;

&lt;p&gt;AJAX is a promising new technology that may well have a place in producing ergonomic user interfaces for chemistry Web services. On the other hand, it wasn't too long ago that JavaScript "didn't work", was loathed, or simply ignored altogether. It may well be that Java applets undergo a revival similar to that of JavaScript, perhaps triggered by built-in support for applets made possible through an &lt;a href="http://java.sun.com/developer/technicalArticles/Interviews/gosling_os1_qa.html"&gt;open source Java implementation&lt;/a&gt;. Regardless of how Java applet technology evolves, WebME's approach is worth serious consideration.&lt;/p&gt;</description>
      <pubDate>Thu, 09 Nov 2006 14:28:00 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:35a9ed1c-b1db-4538-ad05-6736318ec237</guid>
      <author>Rich Apodaca</author>
      <link>http://depth-first.com/articles/2006/11/09/look-ma-no-applets</link>
      <category>Tools</category>
      <category>webme</category>
      <category>ajax</category>
      <category>javascript</category>
      <category>applets</category>
      <category>editor</category>
    </item>
  </channel>
</rss>
