<?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 editor</title>
    <link>http://depth-first.com/articles/tag/editor</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description>Walking the Web of Chemical Informatics</description>
    <item>
      <title>Screencast: Drawing Structures Quickly With ChemWriter</title>
      <description>&lt;p&gt;&lt;center&gt;&lt;object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="499" height="327"&gt; &lt;param name="movie" value="http://content.screencast.com/bootstrap.swf"&gt;&lt;/param&gt; &lt;param name="quality" value="high"&gt;&lt;/param&gt; &lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;/param&gt; &lt;param name="flashVars" value="thumb=http://content.screencast.com/media/fa8ec0ce-c407-4865-bde6-e7516415eeab_b9ab823a-eaff-486a-b654-0eb60b088326_static_0_0_Thumbnail.gif&amp;amp;content=http://content.screencast.com/media/d668e3f9-6130-441e-978a-420d7d267afb_b9ab823a-eaff-486a-b654-0eb60b088326_static_0_0_00000005.swf&amp;amp;width=499&amp;amp;height=327"&gt;&lt;/param&gt; &lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt; &lt;param name="scale" value="showall"&gt;&lt;/param&gt; &lt;param name="allowScriptAccess" value="always"&gt;&lt;/param&gt;  &lt;embed src="http://content.screencast.com/bootstrap.swf" quality="high" bgcolor="#FFFFFF" width="499" height="327" type="application/x-shockwave-flash" allowScriptAccess="always" flashVars="thumb=http://content.screencast.com/media/fa8ec0ce-c407-4865-bde6-e7516415eeab_b9ab823a-eaff-486a-b654-0eb60b088326_static_0_0_Thumbnail.gif&amp;amp;content=http://content.screencast.com/media/d668e3f9-6130-441e-978a-420d7d267afb_b9ab823a-eaff-486a-b654-0eb60b088326_static_0_0_00000005.swf&amp;amp;width=499&amp;amp;height=327" allowFullScreen="true" scale="showall"&gt;&lt;/embed&gt; &lt;/object&gt;&lt;/center&gt;&lt;/p&gt;

&lt;p&gt;This short video shows how to use &lt;a href="http://metamolecular.com/chemwriter"&gt;ChemWriter&lt;/a&gt; to draw structures quickly with &lt;a href="http://metamolecular.com/articles/chemwriter-keyboard"&gt;keyboard shortcuts&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Wed, 18 Jun 2008 13:55:00 -0400</pubDate>
      <guid isPermaLink="false">urn:uuid:19fa9cb2-e757-4091-aae3-394ff9258046</guid>
      <author>Rich Apodaca</author>
      <link>http://depth-first.com/articles/2008/06/18/screencast-drawing-structures-quickly-with-chemwriter</link>
      <category>Tools</category>
      <category>chemwriter</category>
      <category>2d</category>
      <category>java</category>
      <category>screencast</category>
      <category>editor</category>
      <category>chemicalstructure</category>
      <category>jing</category>
    </item>
    <item>
      <title>Better Structure Drawing With ChemWriter 1.3.0</title>
      <description>&lt;p&gt;&lt;a href="http://metamolecular.com/chemwriter"&gt;&lt;img src="http://depth-first.com/demo/20080610/chemwriter_small.png" align="right"&gt;&lt;/img&gt;&lt;/a&gt;&lt;a href="http://metamolecular.com/chemwriter/"&gt;ChemWriter&lt;/a&gt; 1.3.0 has been released and is ready for &lt;a href="http://metamolecular.com/downloads/"&gt;download&lt;/a&gt;. This version makes it possible to change the mouse cursor hover radius for more accurate drawing. It also adds a setting to disable heteroatom keyboard shortcut events occurring away from a molecule node, reducing the possibility of an off-atom label being inadvertently drawn.&lt;/p&gt;

&lt;p&gt;For details, see the &lt;a href="http://metamolecular.com/blog/2008/06/16/better-drawing-with-chemwriter-1-3-0/"&gt;Metamolecular Company Blog&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Mon, 16 Jun 2008 16:18:00 -0400</pubDate>
      <guid isPermaLink="false">urn:uuid:9767a41c-4766-41d4-a3db-abf8176ca407</guid>
      <author>Rich Apodaca</author>
      <link>http://depth-first.com/articles/2008/06/16/better-structure-drawing-with-chemwriter-1-3-0</link>
      <category>Tools</category>
      <category>chemwriter</category>
      <category>2d</category>
      <category>chemicalstructure</category>
      <category>java</category>
      <category>editor</category>
    </item>
    <item>
      <title>ChemWriter Now Available for Download</title>
      <description>&lt;p&gt;&lt;a href="http://metamolecular.com/products/chemwriter"&gt;&lt;img src="http://depth-first.com/demo/20080114/chemwriter_logo.png" align="right"&gt;&lt;/img&gt;&lt;/a&gt;A &lt;a href="http://depth-first.com/articles/2007/11/27/chemwriter-chemical-structures-and-the-web"&gt;2D chemical structure editor&lt;/a&gt; is a key component in most cheminformatics systems. With an ever-increasing number of groups using the Web as a cheminformatics platform, the need for a structure editor built specifically around the capabilities and constraints of the Web becomes more apparent.&lt;/p&gt;

&lt;p&gt;For the last several months, my company (&lt;a href="http://metamolecular.com"&gt;Metamolecular, LLC&lt;/a&gt;) has been developing a 2D structure editor called &lt;a href="http://metamolecular.com/products/chemwriter"&gt;ChemWriter(TM)&lt;/a&gt;. It was created specifically to solve the problem of building interactive, chemically-enabled Web applications that look good and load fast.&lt;/p&gt;

&lt;p&gt;You can now &lt;a href="http://metamolecular.com/downloads/"&gt;download&lt;/a&gt; a free, fully-functional, non-expiring copy of ChemWriter (the ChemWriter Starter Package) good for development and testing of your chemically-aware Web application. The Metamolecular Company Blog has &lt;a href="http://metamolecular.com/blog/2008/01/14/chemwriter-starter-package-now-available-for-download/"&gt;the details&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Mon, 14 Jan 2008 10:29:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:f7887b33-8c9a-4042-940d-c8c705425054</guid>
      <author>Rich Apodaca</author>
      <link>http://depth-first.com/articles/2008/01/14/chemwriter-now-available-for-download</link>
      <category>Tools</category>
      <category>chemwriter</category>
      <category>2d</category>
      <category>applet</category>
      <category>editor</category>
      <category>java</category>
      <category>metamolecular</category>
      <category>webapplication</category>
    </item>
    <item>
      <title>ChemWriter, Chemical Structures, and the Web</title>
      <description>&lt;p&gt;&lt;center&gt;&lt;a href="http://metamolecular.com/products/chemwriter"&gt;&lt;img src="http://depth-first.com/demo/20071127/chemwriter.png"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;

&lt;p&gt;Of all the components that make up &lt;a href="http://www.amazon.com/Chemoinformatics-Practice-Products-Barry-Bunin/dp/1402050003"&gt;today's cheminformatics systems&lt;/a&gt;, the 2D structure editor may be the most widely-used. A 2D structure editor is often a chemist's first and most enduring exposure to cheminformatics, and can be encountered as early as Junior High or High School.&lt;/p&gt;

&lt;p&gt;Over time, a good 2D structure editor becomes every bit as important to a chemist as a text editor is to a writer or software developer. At any given ACS organic division symposium, you're likely to find several bench chemists who only casually, if ever, use a 3D molecular modelling program; finding any who don't regularly use a 2D structure editor would be much more challenging.&lt;/p&gt;

&lt;p&gt;2D structure editors are ubiquitous. They can be found in one form or another in most cheminformatics systems, ranging from databases, to standalone applications, to property calculators, and even 3D molecular modelling programs.&lt;/p&gt;

&lt;p&gt;Despite the importance of structure editors, they don't get much attention among cheminformatics developers. For example, if your bibliography is anything like mine, it contains dozens of papers on molecular descriptors. Yet the number of cheminformatics papers describing the design of ergonomic chemical structure editors is, well, one or maybe two.&lt;/p&gt;

&lt;h4&gt;About ChemWriter&lt;/h4&gt;

&lt;p&gt;&lt;a href="http://metamolecular.com/products/chemwriter"&gt;ChemWriter&amp;trade;&lt;/a&gt; is a new product aimed at making 2D chemical structure editors a lot more interesting, easy to use, and versatile than they have been in the past. Designed specifically as a lightweight, extendable component, ChemWriter is ideal for use in chemically-enabled Web applications.&lt;/p&gt;

&lt;p&gt;The &lt;a href="http://metamolecular.com/blog/2007/11/26/chemwriter-1-0-beta-2/"&gt;second beta version of ChemWriter&lt;/a&gt; has recently been released by my company, &lt;a href="http://metamolecular"&gt;Metamolecular, LLC&lt;/a&gt;. A &lt;a href="http://metamolecular.com/blog/2007/11/27/a-2d-chemical-structure-editor-for-the-web-an-introduction-to-chemwriter/"&gt;recent article&lt;/a&gt; on the Metamolecular company blog discusses ChemWriter in more detail.&lt;/p&gt;

&lt;h4&gt;The Structure Editor In-Depth&lt;/h4&gt;

&lt;p&gt;Because the design and use of 2D chemical structure editors is an unusual subject in cheminformatics, a compilation of articles on the topic from Depth-First and the Metamolecular Web site is provided below. Many of these articles refer to "Firefly", which was ChemWriter's name during early development.&lt;/p&gt;

&lt;h4&gt;Why the Structure Editor Matters&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://depth-first.com/articles/2007/04/16/the-structure-editor-forgotten-link-between-chemistry-and-cheminformatics"&gt;The Structure Editor: (Forgotten) Link Between Chemistry and Cheminformatics&lt;/a&gt; Title says it all.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://depth-first.com/articles/2006/08/21/four-free-2-d-structure-editors-for-web-applications"&gt;Four Free 2-D Structure Editors for Web Applications&lt;/a&gt; &lt;a href="http://depth-first.com/articles/2007/04/22/update-four-free-2-d-structure-editors-for-web-applications"&gt;&lt;/a&gt; An early look with example code.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://depth-first.com/articles/2007/07/11/waldorf-salad"&gt;Waldorf Salad&lt;/a&gt; Why aesthetics matter in chemistry.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;Creating ChemWriter&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://depth-first.com/articles/2007/04/18/a-2d-chemical-structure-editor-for-the-web-embracing-constraints-in-firefly"&gt;A 2D Chemical Structure Editor for the Web: Embracing Constraints in Firefly&lt;/a&gt; Creating remarkable products depends on identifying and embracing constraints.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://depth-first.com/articles/2007/05/02/a-chemical-structure-editor-for-the-web-four-screenshots-of-a-firefly-prototype"&gt;A Chemical Structure Editor for the Web: Four Screenshots of a Firefly Prototype&lt;/a&gt; Some screenshots of an early ChemWriter prototype.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://depth-first.com/articles/2007/04/23/a-chemical-structure-editor-for-the-web-fireflys-two-audiences"&gt;A Chemical Structure Editor for the Web: Firefly's Two Audiences&lt;/a&gt; A good structure editor needs to delight both developers and end users.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;Using ChemWriter&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://depth-first.com/articles/2007/06/21/open-notebook-science-using-inchimatic"&gt;Open Notebook Science Using InChIMatic&lt;/a&gt; ChemWriter in action.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://depth-first.com/articles/2007/08/15/googling-for-molecules-with-inchimatic-and-firefly"&gt;Googling for Molecules with InChIMatic and Firefly&lt;/a&gt; One application of InChI using ChemWriter.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://depth-first.com/articles/2007/07/25/top-ten-best-selling-drugs-worldwide-2006"&gt;Top Ten Best-Selling Drugs Worldwide (2006) - Depth-First&lt;/a&gt; Structures courtesy of an early development version of ChemWriter Desktop.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://metamolecular.com/products/chemwriter/demo/top-ten-best-selling-drugs-worldwide-with-structures-2006/"&gt;Top Ten Best-Selling Drugs Worldwide With Structures 2006 - Metamolecular&lt;/a&gt; ChemWriter can also be used to dynamically render resizable 2D chemical structures in Web pages.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://metamolecular.com/products/chemwriter/demo/chemwriter-and-the-java-deployment-toolkit/"&gt;ChemWriter and the Java Deployment Toolkit&lt;/a&gt; A simplified method for cross-browser applet deployment using ChemWriter.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://metamolecular.com/products/chemwriter/demo/transferring-molecules-with-chemwriter/"&gt;Transferring Molecules With ChemWriter&lt;/a&gt; Demonstrates how JavaScript can be used to move molecular information into and out of ChemWriter.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;Extending ChemWriter&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://depth-first.com/articles/2007/07/18/building-a-molecule-preview-with-firefly-the-joy-of-swing"&gt;Building a Molecule Preview with Firefly: The Joy of Swing&lt;/a&gt; Shows one use for ChemWriter as a Swing GUI component.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://depth-first.com/articles/2007/07/13/making-your-2d-structures-look-good-firefly-styles-and-stylesheets"&gt;Making Your 2D Structures Look Good: Firefly, Styles and Stylesheets&lt;/a&gt; Every aspect of ChemWriter's rendering can be customized, as is shown with this early development version of ChemWriter Desktop.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://depth-first.com/articles/2007/08/08/never-draw-the-same-molecule-twice-viewing-image-metadata"&gt;Never Draw the Same Molecule Twice: Viewing Image Metadata&lt;/a&gt; Embedding 2D structure information as a molfile in PNG images.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://depth-first.com/articles/2007/07/30/editable-and-searchable-2d-molecular-images"&gt;Editable and Searchable 2D Molecular Images&lt;/a&gt; Metadata applied in a novel way using a development version of ChemWriter Desktop.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
      <pubDate>Tue, 27 Nov 2007 12:09:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:f62cc12b-bff3-4142-ba55-00609e04f371</guid>
      <author>Rich Apodaca</author>
      <link>http://depth-first.com/articles/2007/11/27/chemwriter-chemical-structures-and-the-web</link>
      <category>Tools</category>
      <category>chemwriter</category>
      <category>2d</category>
      <category>editor</category>
      <category>structure</category>
      <category>metamolecular</category>
      <category>java</category>
      <category>applet</category>
    </item>
    <item>
      <title>Googling for Molecules with InChIMatic and Firefly</title>
      <description>&lt;p&gt;&lt;center&gt;&lt;a href="http://depth-first.com/articles/tag/firefly"&gt;&lt;img src="http://depth-first.com/demo/20070815/screenshot.png"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;

&lt;p&gt;A &lt;a href="http://depth-first.com/articles/tag/inchimatic"&gt;series of D-F articles&lt;/a&gt; have discussed &lt;a href="http://inchimatic.com"&gt;InChIMatic&lt;/a&gt;, a Web application that lets you structure-search the Web using popular search engines such as Google. Recent articles have also described &lt;a href="http://depth-first.com/articles/tag/firefly"&gt;Firefly&lt;/a&gt;, a lightweight 2D structure editor designed especially for the Web.&lt;/p&gt;

&lt;p&gt;Today, the first alpha release of Firefly is available for use with &lt;a href="http://inchimatic.com"&gt;InChIMatic&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Despite its small size of only 103K, the Firefly applet offers a number of advanced features:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;A clean interface with major functionality in plain sight.&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Antialiased rendering.&lt;/strong&gt; Pressing the "+" and "-" keys will zoom in and out to reveal rendering detail.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;User-overridable bond length and angle constraints.&lt;/strong&gt; When dragging a bond, use &lt;em&gt;Shift&lt;/em&gt; to relax both angle and length constraints, or &lt;em&gt;Ctrl&lt;/em&gt; to relax only angle constraints.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Automatic inside-outside double bond rendering.&lt;/strong&gt; &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Built-in molfile import/export.&lt;/strong&gt; Use the File-&gt;Import Molfile and File-&gt;Export Molfile options to copy/paste a molfile from your system clipboard.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Automatic implicit hydrogen detection.&lt;/strong&gt; The quadrant for hydrogen placement is chosen based on the bonds surrounding the atom.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Twenty levels of undo/redo.&lt;/strong&gt; The commands can either be issued from the menu, or &lt;em&gt;Ctrl-Z&lt;/em&gt;/&lt;em&gt;Ctrl-Y&lt;/em&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Persistent molecule.&lt;/strong&gt; When you visit another page and come back, Firefly remembers the molecule you were working on.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;No digital certificate authorization.&lt;/strong&gt; Just start using it.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Firefly also incorporates a number of keyboard shortcuts to speed up structure drawing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;u&gt;1&lt;/u&gt;-&lt;u&gt;9&lt;/u&gt; keys&lt;/strong&gt; Builds a chain with the indicated number of carbons.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;u&gt;a&lt;/u&gt; key&lt;/strong&gt; Phenyl (&lt;u&gt;a&lt;/u&gt;romatic) ring. When hovering over a bond, fuses the ring to the bond. When hovering over an atom, fuses the ring to that atom, if possible, or sprouts the ring.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;u&gt;f&lt;/u&gt;, &lt;u&gt;l&lt;/u&gt;, &lt;u&gt;r&lt;/u&gt;, &lt;u&gt;i&lt;/u&gt; keys&lt;/strong&gt; The elements &lt;u&gt;F&lt;/u&gt;, C&lt;u&gt;l&lt;/u&gt;, B&lt;u&gt;r&lt;/u&gt;, and &lt;u&gt;I&lt;/u&gt;, respectively.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;u&gt;z&lt;/u&gt; and &lt;u&gt;t&lt;/u&gt; keys&lt;/strong&gt; The elements Si and Sn, respectively&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;u&gt;b&lt;/u&gt;, &lt;u&gt;c&lt;/u&gt;, &lt;u&gt;n&lt;/u&gt;, &lt;u&gt;o&lt;/u&gt;, &lt;u&gt;s&lt;/u&gt;, and &lt;u&gt;p&lt;/u&gt; keys&lt;/strong&gt; The elements B, C, N, O, S, and P, respectively.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[delete] and [backspace] keys&lt;/strong&gt; deletes whatever is underneath the cursor.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To use these shortcuts, simply hover the cursor over an atom and press the key on your keyboard.&lt;/p&gt;

&lt;p&gt;Being an alpha release, this version of Firefly still has room for improvement. Your feedback is important. Please send questions, comments, and suggestions to the email address found under Firefly's "Help" menu.&lt;/p&gt;</description>
      <pubDate>Wed, 15 Aug 2007 09:16:00 -0400</pubDate>
      <guid isPermaLink="false">urn:uuid:c2afff29-47c5-4b35-acfa-72a812e66203</guid>
      <author>Rich Apodaca</author>
      <link>http://depth-first.com/articles/2007/08/15/googling-for-molecules-with-inchimatic-and-firefly</link>
      <category>Tools</category>
      <category>firefly</category>
      <category>editor</category>
      <category>2d</category>
      <category>editordoc</category>
      <category>inchimatic</category>
    </item>
    <item>
      <title>Making Your 2D Structures Look Good: Firefly, Styles and Stylesheets</title>
      <description>&lt;p&gt;Chemists can be &lt;a href="http://depth-first.com/articles/2007/07/11/waldorf-salad"&gt;very discerning&lt;/a&gt; when it comes to chemical structure aesthetics. This is not surprising, given the &lt;a href="http://depth-first.com/articles/2007/03/30/the-aesthetics-of-chemical-structure-diagrams"&gt;central role&lt;/a&gt; played by 2D chemical structures in the day-to-day work of many chemists. For example, consider the &lt;a href="http://en.wikipedia.org/wiki/Wikipedia_talk:WikiProject_Chemistry/Structure_drawing_workgroup/Archive_Apr_2007"&gt;Wikipedia Chemistry/Structure drawing workgroup's ongoing discussion&lt;/a&gt; about achieving a consistent look for chemical structures on the online encyclopedia.&lt;/p&gt;

&lt;p&gt;Several articles have discussed &lt;a href="http://depth-first.com/articles/tag/firefly"&gt;Firefly&lt;/a&gt;, a 2D chemical structure editor specifically designed for the Web. With major work on the rendering engine and structure manipulation interface complete, recent efforts have turned toward exposing drawing settings through a graphical user interface. Here I'll provide some screenshots of an interface prototype along with sample structures. I'll also briefly discuss the larger question of making 2D structure drawing styles portable.&lt;/p&gt;

&lt;p&gt;Drawing styles are edited through a tabbed dialog containing a live preview window that uses the current structure or a default structure if none is available. The dialog is resizable, enabling users to immediately see the effects of changes on structures of varying sizes. Although this dialog could be bundled and deployed with the editor, its large footprint makes it more appropriate for use as an optional feature or as a standalone configuration tool in a Web application.&lt;/p&gt;

&lt;p&gt;&lt;center&gt;&lt;img src="http://depth-first.com/demo/20070713/dialog.png"&gt;&lt;/img&gt;&lt;/center&gt;&lt;/p&gt;

&lt;p&gt;Changes can be rolled back entirely ("Reset"), canceled ("Cancel"), or accepted ("OK").&lt;/p&gt;

&lt;p&gt;Let's say we'd like to apply a black background with white bonds, as used in some Power Point presentations:&lt;/p&gt;

&lt;p&gt;&lt;center&gt;&lt;img src="http://depth-first.com/demo/20070713/default.png"&gt;&lt;/img&gt;&amp;nbsp;&amp;nbsp;&lt;img src="http://depth-first.com/demo/20070713/black_background.png"&gt;&lt;/img&gt;&lt;/center&gt;&lt;/p&gt;

&lt;p&gt;After applying this change, we decide that we'd rather not use atom coloring:&lt;/p&gt;

&lt;p&gt;&lt;center&gt;&lt;img src="http://depth-first.com/demo/20070713/black_background.png"&gt;&lt;/img&gt;&amp;nbsp;&amp;nbsp;&lt;img src="http://depth-first.com/demo/20070713/no_colors.png"&gt;&lt;/img&gt;&lt;/center&gt;&lt;/p&gt;

&lt;p&gt;After looking at this structure for a few seconds, we decide that narrower stereo bonds are needed:&lt;/p&gt;

&lt;p&gt;&lt;center&gt;&lt;img src="http://depth-first.com/demo/20070713/no_colors.png"&gt;&lt;/img&gt;&amp;nbsp;&amp;nbsp;&lt;img src="http://depth-first.com/demo/20070713/thin_stereo.png"&gt;&lt;/img&gt;&lt;/center&gt;&lt;/p&gt;

&lt;p&gt;After some experimentation, we find a more appropriate non-stereo bond width and double bond offset:&lt;/p&gt;

&lt;p&gt;&lt;center&gt;&lt;img src="http://depth-first.com/demo/20070713/thin_stereo.png"&gt;&lt;/img&gt;&amp;nbsp;&amp;nbsp;&lt;img src="http://depth-first.com/demo/20070713/thin_lines.png"&gt;&lt;/img&gt;&lt;/center&gt;&lt;/p&gt;

&lt;p&gt;What about a Serif font? No, I don't think so:&lt;/p&gt;

&lt;p&gt;&lt;center&gt;&lt;img src="http://depth-first.com/demo/20070713/thin_lines.png"&gt;&lt;/img&gt;&amp;nbsp;&amp;nbsp;&lt;img src="http://depth-first.com/demo/20070713/serif_font.png"&gt;&lt;/img&gt;&lt;/center&gt;&lt;/p&gt;

&lt;p&gt;But we could certainly reduce the size of the atom labels:&lt;/p&gt;

&lt;p&gt;&lt;center&gt;&lt;img src="http://depth-first.com/demo/20070713/thin_lines.png"&gt;&lt;/img&gt;&amp;nbsp;&amp;nbsp;&lt;img src="http://depth-first.com/demo/20070713/small_labels.png"&gt;&lt;/img&gt;&lt;/center&gt;&lt;/p&gt;

&lt;p&gt;On second thought, the original atom sizes were fine, although changing font may require us to reconsider the atom label heights:&lt;/p&gt;

&lt;p&gt;&lt;center&gt;&lt;img src="http://depth-first.com/demo/20070713/default.png"&gt;&lt;/img&gt;&amp;nbsp;&amp;nbsp;&lt;img src="http://depth-first.com/demo/20070713/thin_lines.png"&gt;&lt;/img&gt;&lt;/center&gt;&lt;/p&gt;

&lt;p&gt;As you can see, the possibilities for customization are nearly endless. In practice, however, most chemists will adopt only two structure drawing styles that they re-use as needed: one for reports and manuscripts; and one for presentations. It will be interesting to see whether a third style makes it's way into the standard repertoire: Web.&lt;/p&gt;

&lt;p&gt;Each chemist will want a way to save their styles, possibly share them, and easily apply them. Although a few systems for doing so are feasible, the most practical approach would be a &lt;a href="http://en.wikipedia.org/wiki/Stylesheet_language"&gt;stylesheet&lt;/a&gt;. Applying a stylesheet to any structure diagram would change its appearance, offering a simple mechanism to achieve a consistent look across documents.&lt;/p&gt;

&lt;p&gt;Developing a universal (cross-editor) stylesheet system would be no easy task, given the wildly divergent capabilities of 2D structure rendering software. Despite the technical difficulty, the payoff for users is obvious.&lt;/p&gt;</description>
      <pubDate>Fri, 13 Jul 2007 11:19:00 -0400</pubDate>
      <guid isPermaLink="false">urn:uuid:7146dc3e-d044-4776-ac04-c5f87c8eeed5</guid>
      <author>Rich Apodaca</author>
      <link>http://depth-first.com/articles/2007/07/13/making-your-2d-structures-look-good-firefly-styles-and-stylesheets</link>
      <category>Graphics</category>
      <category>firefly</category>
      <category>editor</category>
      <category>2d</category>
      <category>screenshots</category>
      <category>stylesheets</category>
    </item>
    <item>
      <title>A Chemical Structure Editor for the Web: Four Screenshots of a Firefly Prototype</title>
      <description>&lt;p&gt;The &lt;a href="http://depth-first.com/articles/2007/04/23/a-chemical-structure-editor-for-the-web-fireflys-two-audiences"&gt;previous article&lt;/a&gt; in this series discussed the requirements of Firefly, a new 2D chemical structure editor for the Web. Another article discussed &lt;a href="http://depth-first.com/articles/2007/04/18/a-2d-chemical-structure-editor-for-the-web-embracing-constraints-in-firefly"&gt;Firefly's design constraints&lt;/a&gt; and the importance of embracing them. Why so much focus on a structure editor? Simply put, the structure editor is the &lt;a href="http://depth-first.com/articles/2007/04/16/the-structure-editor-forgotten-link-between-chemistry-and-cheminformatics"&gt;key link between chemistry and cheminformatics&lt;/a&gt;. Without the structure editor, there would be no audience for cheminformatics software.&lt;/p&gt;

&lt;p&gt;So far the discussion has been rather abstract. To make it less so, the following four screenshots illustrate the user interface and rendering capabilities of a Firefly prototype. All molecules were drawn with the Firefly interface running on Linux. Screenshots were directly captured from the running application.&lt;/p&gt;

&lt;h4&gt;Cholesterol&lt;/h4&gt;

&lt;p&gt;The image below illustrates fused rings and stereo atoms. Also notice that the atom label for oxygen has one implicit hydrogen atom that is properly placed to the left.&lt;/p&gt;

&lt;p&gt;&lt;center&gt;&lt;img src="http://depth-first.com/demo/20070502/cholesterol.png"&gt;&lt;/img&gt;&lt;/center&gt;&lt;/p&gt;

&lt;h4&gt;Doxorubicin&lt;/h4&gt;

&lt;p&gt;This image illustrates both atom labels and aromatic bonding. Notice the improperly-placed quinone double bond. Refining Firefly's aromaticity perception is currently a top priority.&lt;/p&gt;

&lt;p&gt;&lt;center&gt;&lt;img src="http://depth-first.com/demo/20070502/doxorubicen.png"&gt;&lt;/img&gt;&lt;/center&gt;&lt;/p&gt;

&lt;h4&gt;Flunoxaprofen&lt;/h4&gt;

&lt;p&gt;Firefly comes complete with a developer-overridable atom coloring scheme. Also notice the correct length of the internal carbon-nitrogen double bond line.&lt;/p&gt;

&lt;p&gt;&lt;center&gt;&lt;img src="http://depth-first.com/demo/20070502/flunoxaprofen.png"&gt;&lt;/img&gt;&lt;/center&gt;&lt;/p&gt;

&lt;h4&gt;Uric Acid&lt;/h4&gt;

&lt;p&gt;One of the more difficult aspects of rendering molecules with implicit hydrogens is placing them in the correct quandrant. In this screenshot of uric acid, notice how the hydrogens occupy three different quadrants relative to their hosting nitrogen atoms. &lt;/p&gt;

&lt;p&gt;&lt;center&gt;&lt;img src="http://depth-first.com/demo/20070502/uric_acid.png"&gt;&lt;/img&gt;&lt;/center&gt;&lt;/p&gt;</description>
      <pubDate>Wed, 02 May 2007 10:13:00 -0400</pubDate>
      <guid isPermaLink="false">urn:uuid:6852141f-ebdf-4dbb-bade-d203929a31b9</guid>
      <author>Rich Apodaca</author>
      <link>http://depth-first.com/articles/2007/05/02/a-chemical-structure-editor-for-the-web-four-screenshots-of-a-firefly-prototype</link>
      <category>Tools</category>
      <category>firefly</category>
      <category>editor</category>
      <category>2d</category>
      <category>screenshots</category>
    </item>
    <item>
      <title>A Chemical Structure Editor for the Web: Firefly's Two Audiences</title>
      <description>&lt;p&gt;&lt;a href="http://flickr.com/photos/elbisreverri/51049270/"&gt;&lt;img src="http://depth-first.com/demo/20070423/towers.jpg" align="right" border="0"&gt;&lt;/img&gt;&lt;/a&gt;The &lt;a href="http://depth-first.com/articles/2007/04/18/a-2d-chemical-structure-editor-for-the-web-embracing-constraints-in-firefly"&gt;previous article&lt;/a&gt; in this series outlined the main technical constraints in the design of Firefly, a new chemical structure editor for the Web. Knowing the technical barriers you're up against is important in any software project, but understanding what the software needs to do is also important. This article offers a high-level approach to answering this important question.&lt;/p&gt;

&lt;h4&gt;Why Use an Editor at All?&lt;/h4&gt;

&lt;p&gt;The purpose of Firefly will be to conveniently convert the language of chemistry (structure diagrams) into the language of cheminformatics (&lt;a href="http://depth-first.com/articles/2007/03/14/eleven-qualities-of-the-perfect-line-notation-for-the-web"&gt;line notations&lt;/a&gt; and file formats). There are certainly alternatives to using a graphical editor. For example, SMILES strings could be directly entered. Molfiles could be pasted into a window. But as a real-world solution, a graphical editor embedded in the host application is the only approach that makes sense.&lt;/p&gt;

&lt;h4&gt;Two Audiences&lt;/h4&gt;

&lt;p&gt;As &lt;a href="http://depth-first.com/articles/2007/04/16/the-structure-editor-forgotten-link-between-chemistry-and-cheminformatics"&gt;discussed previously&lt;/a&gt;, the structure editor plays the pivotal role of linking consumers of cheminformatics software (i.e., chemists) with producers of cheminformatics software. As a result, the structure editor is one of those few pieces of software that is simultaneously "seen" and "felt" by chemists, and used as a building block by cheminformatics developers. For an editor to be successful, the needs of &lt;em&gt;both&lt;/em&gt; of these audiences must be satisfied.&lt;/p&gt;

&lt;h4&gt;The Chemist Experience&lt;/h4&gt;

&lt;p&gt;To understand how to build a good structure editor, it's important to understand what's happening in the thirty seconds just before the editor is run. Typically, a chemist is in the middle of doing something important like answering a burning question, preparing a presentation, or setting up an experiment. Firing up a structure editor is actually a major distraction from that work-flow; it interrupts the scientific thought process with a mundane data-entry task far more complex than any text box.&lt;/p&gt;

&lt;p&gt;Understandably, using a structure editor is not something that most chemists are enthusiastic about. And using a new structure editor, with its own quirky way of doing things, is potentially even worse. This makes it especially important that any new editor behave intuitively. But what exactly does "intuitive" mean?&lt;/p&gt;

&lt;p&gt;ChemDraw and IsisDraw are the 500-pound gorillas of structure editors. They're everywhere - in universities (often bootlegged), at home, and in industry. Important portions of the ChemDraw/IsisDraw user interfaces make appearances in all major structure editors (e.g., ChemSketch). The two things that can be assumed about any prospective user of a new structure editor are that: (1) they have used ChemDraw/IsisDraw; and (2) their current editor is either ChemDraw/IsisDraw or something very similar.&lt;/p&gt;

&lt;p&gt;For better or worse, ChemDraw/IsisDraw define the meaning of the word "intuitive" when it comes to 2D structure editors. When faced with any new editor, the first thing Joe the Chemist is likely to try is what works in ChemDraw/IsisDraw. Any attempt to innovate the user interface therefore needs to be very carefully considered. Developers who violate this &lt;a href="http://en.wikipedia.org/wiki/Principle_of_least_astonishment"&gt;"principle of least surprise"&lt;/a&gt; are likely to meet with &lt;a href="http://www.joelonsoftware.com/uibook/fog0000000249.html"&gt;well-founded resistance&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;To summarize: Firefly should minimize the number of "innovations" it introduces into the user interface.&lt;/p&gt;

&lt;h4&gt;The Developer Experience&lt;/h4&gt;

&lt;p&gt;In contrast to chemists, developers are likely to be much more tolerant of innovations in Firefly. The reason is simple: there is no standard structure editor for Web applications. This leaves just a few basic requirements:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Molfile input/output.&lt;/strong&gt; Many tools exist, such as &lt;a href="http://depth-first.com/articles/2007/04/09/painless-installation-of-ruby-open-babel"&gt;Ruby Open Babel&lt;/a&gt;, that can be deployed on a server and which will convert a Molfile into virtually any desired format. To fully satisfy developer expectations, it will be sufficient that Firefly can export and import Molfiles. Additional formats are unnecessary, at least for the 1.0 release.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Designed with JavaScript in mind.&lt;/strong&gt; All applet settings will be addressable though get/set methods. Using Java primitives as arguments to these methods will maximize developer productivity in languages such as JavaScript.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Extensibility.&lt;/strong&gt; A mechanism to &lt;a href="http://depth-first.com/articles/2006/12/18/anatomy-of-a-cheminformatics-web-application-structure-cleanup-in-java-molecular-editor"&gt;conveniently extend&lt;/a&gt; the functionality of Firefly through JavaScript must exist.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Adaptability.&lt;/strong&gt; It must be possible to use Firefly as a 2D &lt;a href="http://depth-first.com/articles/2006/12/04/anatomy-of-a-cheminformatics-web-application-ajaxifying-depict"&gt;molecular rendering framework&lt;/a&gt;, independent of its user interface.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Comprehensible Design.&lt;/strong&gt; Firefly's design will be made more understandable through the use and documentation of Design Patterns. Monolithic classes and methods are to be avoided.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;Summary&lt;/h4&gt;

&lt;p&gt;To be successful, Firefly must satisfy two very different groups of users: chemists who will interact with its graphical interface; and developers who will plug it into other software frameworks. These two groups have very different expectations and needs. Understanding, and embracing, these expectations will go a long way toward making Firefly the best editor it can be.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Image Credit: &lt;a href="http://flickr.com/photos/elbisreverri/"&gt;elbisreverri&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;</description>
      <pubDate>Mon, 23 Apr 2007 11:22:00 -0400</pubDate>
      <guid isPermaLink="false">urn:uuid:6fccdc8c-c4b8-4d8c-983b-6514e5af671d</guid>
      <author>Rich Apodaca</author>
      <link>http://depth-first.com/articles/2007/04/23/a-chemical-structure-editor-for-the-web-fireflys-two-audiences</link>
      <category>Meta</category>
      <category>2d</category>
      <category>editor</category>
      <category>firefly</category>
    </item>
    <item>
      <title>Update: Four Free 2-D Structure Editors for Web Applications</title>
      <description>&lt;p&gt;A &lt;a href="http://depth-first.com/articles/2006/08/21/four-free-2-d-structure-editors-for-web-applications"&gt;previous article&lt;/a&gt; discussing the deployment of four free 2D structure editors has been fixed. The sample pages demonstrating how to obtain a molfile from each have also been restored.&lt;/p&gt;</description>
      <pubDate>Sun, 22 Apr 2007 11:26:00 -0400</pubDate>
      <guid isPermaLink="false">urn:uuid:f4d38cf0-6401-4c13-8ecb-6440764c7a05</guid>
      <author>Rich Apodaca</author>
      <link>http://depth-first.com/articles/2007/04/22/update-four-free-2-d-structure-editors-for-web-applications</link>
      <category>Tools</category>
      <category>2d</category>
      <category>editor</category>
      <category>jchempaint</category>
      <category>jme</category>
      <category>jmoldraw</category>
      <category>mcdl</category>
      <category>web</category>
      <category>webapp</category>
    </item>
    <item>
      <title>A 2D Chemical Structure Editor for the Web: Embracing Constraints in Firefly</title>
      <description>&lt;p&gt;&lt;a href="http://flickr.com/photos/39598051@N00/115905048/"&gt;&lt;img src="http://depth-first.com/demo/20070417/firefly.jpg" align="right" border="0"&gt;&lt;/img&gt;&lt;/a&gt;A &lt;a href="http://depth-first.com/articles/2007/04/16/the-structure-editor-forgotten-link-between-chemistry-and-cheminformatics"&gt;previous article&lt;/a&gt; outlined the major concepts behind Firefly, a new 2D structure editor for the Web. Structure editors are unique in that they require solutions to problems in so many different areas: graphical user interface design; &lt;a href="http://depth-first.com/articles/2007/03/30/the-aesthetics-of-chemical-structure-diagrams"&gt;chemical structure aesthetics&lt;/a&gt;; 2D graphics and geometry; molecular representation; and graph theory, to name a few.&lt;/p&gt;

&lt;p&gt;These are important considerations, but they pale in comparison to the biggest design challenge: Firefly must be deployed and run in a heterogeneous network environment. This one constraint frames all of the basic design questions involving platform, programming language, footprint, and mode of deployment. And this is a &lt;a href="http://depth-first.com/articles/2007/02/15/woz-on-design-and-constraints"&gt;Good Thing&lt;/a&gt;.&lt;/p&gt;

&lt;h4&gt;Platform, Programming Language, and Deployment&lt;/h4&gt;

&lt;p&gt;Considering the diverse array of hardware and operating systems on the Internet, it's amazing that anything works at all. Although standards save the day in most cases, there is no all-purpose solution when it comes to interactive Web technologies. Today, there are essentially three options for Firefly:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Flash&lt;/strong&gt; To my knowledge, no 2D structure editor has ever been implemented in Flash. (This alone sounds like a good reason to try it sometime.) As a platform, Flash has a lot going for it, including a large installed base, and the abstraction layer &lt;a href="http://www.openlaszlo.org/"&gt;OpenLaszlo&lt;/a&gt;. On the down side, Flash support on platforms such as Linux has not been what it could be. As Flash continues to mature, this problem may become less important.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Ajax&lt;/strong&gt; Essentially nothing more than HTML and JavaScript - and no plug-ins of any kind. At least two editors have been written in Ajax: &lt;a href="http://depth-first.com/articles/2006/11/09/look-ma-no-applets"&gt;WebME&lt;/a&gt; and &lt;a href="http://pubchem.ncbi.nlm.nih.gov/search/"&gt;PubChem's editor&lt;/a&gt;. Ajax works in a lot of situations, but in my opinion it still isn't up to the job of creating a responsive, interactive structure editor.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Java Applet&lt;/strong&gt; A massive installed base, support for just about every kind of hardware in use, a robust object-oriented language with a powerful 2D graphics and GUI libraries, and it's even &lt;a href="https://openjdk.dev.java.net/"&gt;Open Source&lt;/a&gt;. Although Flash and Ajax have their advantages, Java is the best option for the foreseeable future. There are several &lt;a href="http://depth-first.com/articles/2006/08/21/four-free-2-d-structure-editors-for-web-applications"&gt;Java structure editors&lt;/a&gt; to choose from, and for good reason. (Future articles will discuss what makes Firefly different.)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;What about a Java application? Unfortunately, not even a user's ability to install software on their own machines can be taken for granted in the context in which Firefly will be running. For example, many companies enforce prohibitions against employee-installation of non-approved software. Machines found in libraries or other public places may face similar limitations. Given these real possibilties, an applet is the only option that makes sense.&lt;/p&gt;

&lt;p&gt;As to the version of Java that Firefly is built on, JDK 1.4.2 seems to have become the unwritten standard. It's mature enough the have most of what Java has today, but is old enough to be on most machines. Even with this compromise, Firefly will have an impressive array of functionality to work with: Java2D, Swing, and many performance optimizations relative to earlier Java versions.&lt;/p&gt;

&lt;h4&gt;Footprint&lt;/h4&gt;

&lt;p&gt;High-speed Internet access is ubiquitous. Bandwidth is now a commodity. Memory is practically free and processors - don't get me started on processors these days. But developers who take massive bandwidth and staggering processor power for granted are setting themselves and their users up for many unpleasant interactions. Firefly must be lightweight, responsive, and fast to deploy under any network load and on 80% of the hardware on the Web. Limiting its footprint to 150K will increase the chances of success.&lt;/p&gt;

&lt;p&gt;With such a small footprint, none of the currently-available open source Java cheminformatics libraries (e.g. &lt;a href="http://cdk.sf.net"&gt;CDK&lt;/a&gt;, &lt;a href="http://joelib.sf.net"&gt;JOELib&lt;/a&gt;, &lt;a href="http://depth-first.com/articles/tag/octet"&gt;Octet&lt;/a&gt;) will be of much use. They are simply too big. Even the smallest of them (Octet) weighs in at about 300K. Of course, it's possible to strip out unnecessary features from these libraries. But even then, a great deal of unused functionality would remain. This is the unavoidable downside of general-purpose libraries. By developing a small cheminformatics library specifically designed to power a 2D structure editor, Firefly should be able to meet the 150K target.&lt;/p&gt;

&lt;p&gt;Is 150K a realistic goal? My previous experience in developing &lt;a href="http://depth-first.com/articles/2006/08/28/drawing-2-d-structures-with-structure-cdk"&gt;Structure and Structure-CDK&lt;/a&gt; taught me that with &lt;a href="http://java.sun.com/products/java-media/2D/"&gt;Java2D&lt;/a&gt;, very lightweight structure-rendering code is well within reach. For example, the Structure-CDK jarfile is an unoptimized 39K. (But even Structure-CDK faces the same problem as other general-purpose libraries - it's much bigger than it needs to be. In other words, some Structure-CDK concepts may be applicable to Firefly, but the code itself must be completely re-written.)&lt;/p&gt;

&lt;p&gt;When combined with the fact that a lot of cheminformatics functionality, such as structure clean-up, can be &lt;a href="http://depth-first.com/articles/2006/12/18/anatomy-of-a-cheminformatics-web-application-structure-cleanup-in-java-molecular-editor"&gt;offloaded to a server&lt;/a&gt;, 150K begins to look like a very reasonable target.&lt;/p&gt;

&lt;p&gt;As a final encouragement, consider that everything &lt;a href="http://www.molinspiration.com/jme/"&gt;Java Molecular Editor&lt;/a&gt; does, including SMILES canonicalization, is contained in a jarfile no larger than 40K.&lt;/p&gt;

&lt;h4&gt;Wrap-Up&lt;/h4&gt;

&lt;p&gt;As you can see, even before a single line of code was written, Firefly's design was constrained in some very important ways. &lt;a href="http://gettingreal.37signals.com/ch03_Embrace_Constraints.php"&gt;Identifying and embracing these constraints&lt;/a&gt; doesn't ensure success, but it greatly increases its chances. In articles to follow, I'll show how Firefly was designed to thrive within these constraints.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Image Credit: &lt;a href="http://flickr.com/photos/39598051@N00/"&gt;frogmuseum2&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;</description>
      <pubDate>Wed, 18 Apr 2007 10:09:00 -0400</pubDate>
      <guid isPermaLink="false">urn:uuid:4c50028a-6447-4812-8795-e8881a6671f5</guid>
      <author>Rich Apodaca</author>
      <link>http://depth-first.com/articles/2007/04/18/a-2d-chemical-structure-editor-for-the-web-embracing-constraints-in-firefly</link>
      <category>Meta</category>
      <category>editor</category>
      <category>2d</category>
      <category>firefly</category>
      <category>constraints</category>
      <category>web</category>
    </item>
  </channel>
</rss>
