Geschreibsel Tagged: zest http://fsteeg.com/tags/zest Sun, 26 Feb 2012 00:00:01 +0000 Sun, 26 Feb 2012 00:00:01 +0000 Visualize Clojure code in Eclipse with DOT and Zest <p><small>Cross-posted to: <a href="https://fsteeg.wordpress.com/2012/02/26/visualize-clojure-code-in-eclipse-with-dot-and-zest/">https://fsteeg.wordpress.com/2012/02/26/visualize-clojure-code-in-eclipse-with-dot-and-zest/</a></small></p> <p/> In January, I started a new job where I use Clojure (<a href="https://doo.net/jobs.html">we're hiring</a>). I was happy to learn that there's a nice Eclipse plugin for Clojure called <a href="http://code.google.com/p/counterclockwise/">Counterclockwise</a>. As a committer on <a href="http://www.eclipse.org/gef/zest/">Zest</a>, I quickly had the obvious idea (well, obvious as in <a href="http://code.google.com/a/eclipselabs.org/p/debugvisualisation">other</a> <a href="http://misto.ch/tag-cloud-visualization-for-source-code/">crazy</a> <a href="http://fsteeg.com/2010/02/07/diagrams-in-wiki-markup-with-mylyn-wikitext-dot-and-zest/">stuff</a> to make the IDE more visual): visualize Clojure code as trees in Eclipse. If you use a language that is no Lisp it probably seems crazy to think about syntax trees while writing code, but if you actually write down syntax trees in your code, something like this might not only be fun, it could even be useful. <p/> This weekend I found some time to give it a spin: I hooked into Counterclockwise to generate a Graphviz DOT representation from the text selected in the Clojure editor, and pass that to the Zest graph view: <p/> <a href="http://fsteeg.com/images/ccw-zest-1.png"><img src="http://fsteeg.com/images/ccw-zest-1.png" alt="" title="ccw-zest-1" class="alignnone size-full" /></a> <p/> Using Graphviz DOT, we can create an image file for the visualized structure (e.g. for documentation): <p/> <a href="http://fsteeg.com/images/ccw-zest-2.png"><img src="http://fsteeg.com/images/ccw-zest-2.png?" alt="" title="ccw-zest-2" class="alignnone size-medium" /></a> <p/> Given the simple structure of Clojure code, supporting different nested data structures like maps, their entries, vectors, and sets was easy to implement (though I'm sure there are cases that won't work yet): <p/> <a href="http://fsteeg.com/images/ccw-zest-3.png"><img src="http://fsteeg.com/images/ccw-zest-3.png" alt="" title="ccw-zest-3" class="alignnone size-full" /></a> <p/> This alone might already be useful for exploring and explaining parts of the code you're working on, but I think a closer integration with Counterclockwise could be really interesting. One idea would be to link back from the tree, e.g. by highlighting the corresponding text in the editor, or even allowing real interaction with the tree to manipulate the code, like dragging and dropping nodes and branches to refactor the code. If the code you write really is the graphical structure you see, some kind of visual programming might actually make sense, even if it's not exactly what people expect (like programming for non-programmers). <p/> I'm not sure where or how to evolve this, but if you want to try it or contribute, you can <a href="https://github.com/fsteeg/ccw/tree/visualization">check it out on GitHub</a>. http://fsteeg.com/notes/visualize-clojure-code-in-eclipse-with-dot-and-zesthttp://fsteeg.com/notes/visualize-clojure-code-in-eclipse-with-dot-and-zest Sun, 26 Feb 2012 00:00:01 +0000 graphvizclojureprogrammingeclipsezest Cloudio: SWT-based tag cloud visualization for Zest <p><small>Cross-posted to: <a href="https://fsteeg.wordpress.com/2011/09/07/cloudio-swt-based-tag-cloud-visualization-for-zest/">https://fsteeg.wordpress.com/2011/09/07/cloudio-swt-based-tag-cloud-visualization-for-zest/</a></small></p> <p/> Thanks to a <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=349969">contribution</a> by <a href="https://twitter.com/#!/sschwieb">Stephan Schwiebert</a>, the Eclipse GEF <a href="http://www.eclipse.org/gef/zest/">Zest</a> toolkit now contains an SWT-based tag cloud visualization component. Using SWT widgets and JFace viewers, you can create tag clouds like this one: <p/> <img class="alignnone" title="cloud-img-shot.png" src="http://dl.dropbox.com/u/7546431/cloud-img-shot.png" alt="" /> <p/> The tag clouds are highly customizable. To demonstrate the possibilities, Cloudio contains a sample RCP application. It can load a text file, provides access to the visualization parameters, and supports image export: <p/> <img class="alignnone" title="cloud-app.png" src="http://dl.dropbox.com/u/7546431/cloud-app.png" alt="" /> <p/> Cloudio is part of the <a href="http://git.eclipse.org/c/gef/org.eclipse.zest.git">Zest Git repository</a>. Its help content (like the other Zest documentation) is generated from the Eclipse <a href="http://wiki.eclipse.org/Zest/Cloudio">wiki</a>. Builds and p2 repos are available from the <a href="https://hudson.eclipse.org/hudson/job/gef-zest-nightly/">nightly</a> and <a href="https://hudson.eclipse.org/hudson/job/gef-zest-integration/">integration</a> CI jobs. Integration builds can also be installed from the <a href="http://marketplace.eclipse.org/content/zest">marketplace</a>. You can get in touch in the <a href="http://www.eclipse.org/forums/eclipse.tools.gef">GEF forum</a> and report bugs on <a href="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=GEF&amp;component=Zest">Bugzilla</a>. http://fsteeg.com/notes/cloudio-swt-based-tag-cloud-visualization-for-zesthttp://fsteeg.com/notes/cloudio-swt-based-tag-cloud-visualization-for-zest Wed, 07 Sep 2011 00:00:01 +0000 eclipsejavaprogrammingzest DOT for Zest on Eclipse 4 <p><small>Cross-posted to: <a href="https://fsteeg.wordpress.com/2010/07/27/dot-for-zest-on-eclipse-4/">https://fsteeg.wordpress.com/2010/07/27/dot-for-zest-on-eclipse-4/</a></small></p> <p/> I recently checked out the latest RC of the <a href="http://download.eclipse.org/e4/sdk/drops/S-4.0RC3-201007251756/">Eclipse 4.0 SDK</a> and <a href="http://twitter.com/fsteeg/status/19274741068">was excited to see</a> that I could basically install any Helios software without issues. So I thought why not do some work on <a href="http://wiki.eclipse.org/Graphviz_DOT_as_a_DSL_for_Zest">dot4zest</a> using Eclipse 4. <p/> I was amazed to see that Eclipse 4.0 (labeled <em>Early Adopter Release</em>) is already completely usable for me (even if it doesn't yet offer all the things I'm used to in the current version - perspective customization and custom key bindings are things I hit). And I really like that fresh look - a whole new Eclipse, after all these years! <p/> So here is a quick tour of some new dot4zest features, running on Eclipse 4. <p/> A new feature in the DOT to Zest interpreter (which now uses the <a href="http://www.eclipse.org/Xtext/">Xtext</a> switch API generated for the DOT grammar) is support for ad-hoc DOT edge definitions, without having to declare the nodes before using them in an edge, e.g. <pre><code>digraph { node[label=&quot;Node&quot;] 1-&gt;2; 2-&gt;3; 2-&gt;4 }</code></pre> <p/> <a href="http://fsteeg.com/images/screen-shot-2010-07-27-at-00-14-55.png"><img class="alignnone size-full" title="dot4zest-e4-1" src="http://fsteeg.com/images/screen-shot-2010-07-27-at-00-14-55.png" alt="" /></a> <p/> Also new is support for the <em>rankdir=LR</em> attribute in the DOT input, e.g. <pre><code>digraph { rankdir=LR; 1-&gt;2; 2-&gt;3; 2-&gt;4 }</code></pre> <p/> <a href="http://fsteeg.com/images/screen-shot-2010-07-27-at-00-23-02.png"><img class="alignnone size-full" title="dot4zest-e4-2" src="http://fsteeg.com/images/screen-shot-2010-07-27-at-00-23-02.png" alt="" /></a> <p/> The <em>rankdir=LR</em> setting is supported in Zest to DOT export, too: if a Zest graph using the horizontal layout is exported to DOT and rendered with Graphviz, the direction will be correct for the result, e.g. if we hit the export button in the view above, this is opened: <p/> <a href="http://fsteeg.com/images/screen-shot-2010-07-27-at-00-26-27.png"><img class="alignnone size-medium" title="dot4zest-export-1" src="http://fsteeg.com/images/screen-shot-2010-07-27-at-00-26-27.png?" alt="" /></a> <p/> If the DOT input contains features that are not yet supported in the Zest representation created by dot4zest, the import will now handle the input better and try to display the parts it can make sense of, e.g. DOT with subgraphs can be rendered with Zest, but subgraphs are ignored: <pre><code>digraph { subgraph cluster_1 {1-&gt;2} subgraph cluster_2 {1-&gt;3} }</code></pre> <p/> <a href="http://fsteeg.com/images/screen-shot-2010-07-27-at-00-37-48.png"><img class="alignnone size-full" title="dot4zest-e4-3" src="http://fsteeg.com/images/screen-shot-2010-07-27-at-00-37-48.png" alt="" /></a> <p/> The Graphviz image export can be customized (see toggle above) to use the original DOT input instead of a DOT representation generated from the Zest graph, e.g. with the view and the input above, the export will render the subgraphs from the original DOT input: <p/> <a href="http://fsteeg.com/images/screen-shot-2010-07-27-at-00-37-581.png"><img class="alignnone size-medium" title="dot4zest-export-2" src="http://fsteeg.com/images/screen-shot-2010-07-27-at-00-37-581.png?" alt="" /></a> <p/> Finally, the graph view now contains a toggle button (enabled in all screenshots above) to switch between different modes: listen to changes made to DOT graphs in workspace files and visualize them with Zest automatically (useful for programs outputting DOT or for live preview during DOT editing), or visualize only files loaded explicitly. <p/> The <a href="http://wiki.eclipse.org/Graphviz_DOT_as_a_DSL_for_Zest">dot4zest</a> code is part of <a href="http://www.eclipse.org/gef/zest/">Zest</a> (a <a href="http://www.eclipse.org/gef/">GEF</a> component) and available from the <a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.gef/plugins/?root=Tools_Project">Tools repository</a>. It is not available from an eclipse.org update site yet, but can be easily installed (for Eclipse 3.6 and 4.0) from the <a href="http://marketplace.eclipse.org/content/graphviz-dot-zest-dot4zest">marketplace</a> (Help &gt; Eclipse Marketplace). http://fsteeg.com/notes/dot-for-zest-on-eclipse-4http://fsteeg.com/notes/dot-for-zest-on-eclipse-4 Tue, 27 Jul 2010 00:00:01 +0000 graphvizprogrammingeclipsesoczest Generating documentation from a wiki with Ant and Mylyn WikiText <p><small>Cross-posted to: <a href="https://fsteeg.wordpress.com/2010/03/14/generating-documentation-from-a-wiki-with-ant-and-mylyn-wikitext/">https://fsteeg.wordpress.com/2010/03/14/generating-documentation-from-a-wiki-with-ant-and-mylyn-wikitext/</a></small></p> <p/> I was planning to update the <a href="http://wiki.eclipse.org/Graphviz_DOT_as_a_DSL_for_Zest">dot4zest</a> documentation when I saw the recent posts by <a href="http://greensopinion.blogspot.com/2010/03/crowdsourcing-documentation-made-easy.html">David Green</a> and <a href="http://aniszczyk.org/2010/03/13/crowdsourcing-documentation-at-eclipse/">Chris Aniszczyk</a> on generating Eclipse help right from the wiki. <p/> Outdated and duplicated documentation is one of the topics I keep encountering in basically every project I work on. Given that I was already generating the dot4zest help with WikiText (but from a file, not straight from the wiki) I decided to give it a try. <p/> Following the instructions in the <a href="http://wiki.eclipse.org/DocumentationGuidelines/CrowdSourcingExample">crowdsourcing example</a>, I first got the WikiText <a href="http://www.eclipse.org/downloads/download.php?file=/tools/mylyn/update/weekly/mylyn-wikitext-standalone-latest.zip">standalone Jars</a> and set up a small Ant script: <pre><code>&lt;project name=&quot;dot4zest&quot; default=&quot;doc&quot; basedir=&quot;.&quot;&gt; wikitext.tasks.classpath&quot;&gt; &lt;fileset dir=&quot;Graphviz_DOT_as_a_DSL_for_Zest&quot;&gt; mylyn.wikitext.*core*.jar&quot;/&gt; &lt;/fileset&gt; &lt;/path&gt; &lt;taskdef classpathref=&quot;wikitext.tasks.classpath&quot; resource= &quot;org/eclipse/mylyn/internal/wikitext/mediawiki/core/tasks/tasks.properties&quot;/&gt; &lt;taskdef classpathref=&quot;wikitext.tasks.classpath&quot; resource= &quot;org/eclipse/mylyn/wikitext/core/util/anttask/tasks.properties&quot;/&gt; &lt;target name=&quot;doc&quot;&gt; &lt;!-- Set up the base wiki location to pull content from: --&gt; &lt;mediawiki-to-eclipse-help wikiBaseUrl=&quot;http://wiki.eclipse.org&quot; validate=&quot;true&quot; failonvalidationerror=&quot;true&quot; prependImagePrefix=&quot;images&quot; formatoutput=&quot;true&quot; defaultAbsoluteLinkTarget=&quot;doc_external&quot; dest=&quot;${basedir}&quot; title=&quot;Graphviz DOT as a DSL for Zest&quot; generateUnifiedToc=&quot;false&quot;&gt; &lt;!-- Set up which wiki page to pull from: --&gt; &lt;path name=&quot;Graphviz_DOT_as_a_DSL_for_Zest&quot; title=&quot;Graphviz DOT as a DSL for Zest&quot; generateToc=&quot;true&quot;/&gt; &lt;/mediawiki-to-eclipse-help&gt; &lt;/target&gt; &lt;/project&gt;</code></pre> <p/> Running the Ant file (<em>ant</em> in a console or double-click after dragging it onto the Ant view in Eclipse) pulls the content <a href="http://wiki.eclipse.org/Graphviz_DOT_as_a_DSL_for_Zest">from the wiki location</a> specified in the script and generates the Eclipse help: <p/> <a href="http://fsteeg.com/images/dot4zest-eclipse-help-toc.png"><img class="alignnone size-full" title="dot4zest-eclipse-help-toc" src="http://fsteeg.com/images/dot4zest-eclipse-help-toc.png" alt="Generated Eclipse Help TOC" /></a> <p/> Next, I updated the help TOC extension in the plugin.xml: <pre><code>&lt;extension point=&quot;org.eclipse.help.toc&quot;&gt; &lt;toc file=&quot;Graphviz-DOT-as-a-DSL-for-Zest-toc.xml&quot; primary=&quot;true&quot;/&gt; &lt;/extension&gt;</code></pre> <p/> Then I added the generated help resources to the binary build in the <em>build</em> tab of the manifest editor to have them included in the deployed bundle: <p/> <a href="http://fsteeg.com/images/dot4zest-eclipse-help-build.png"><img class="alignnone size-full" title="dot4zest-eclipse-help-build" src="http://fsteeg.com/images/dot4zest-eclipse-help-build.png" alt="Including the generated help resources in the binary build" /></a> <p/> With this, the wiki page content is included in the Eclipse online help of the bundle (Help &gt; Help Contents). <p/> Being based on <a href="http://wiki.eclipse.org/Mylyn/WikiText">Mylyn WikiText</a> - which supports many wiki markup formats (textile, confluence, mediawiki, trac and twiki) as well as output to other formats than Eclipse help (e.g. DocBook and DITA) - I imagine this approach could be used in many project documentation setups. <p/> I really like this WikiText feature both for technical and collaborative reasons: it reduces duplication (<em>DRY for docs!</em>) and eases collaboration on documentation. Instead of being part of the code repository, the help content is made available to a wider range of editors than the people committing code - which I believe is useful for projects of any size.I was planning to update the dot4zest documentation when I saw the recent posts by David Green and Chris Aniszczyk on generating Eclipse help right from the wiki. [...] http://fsteeg.com/notes/generating-documentation-from-a-wiki-with-ant-and-mylyn-wikitexthttp://fsteeg.com/notes/generating-documentation-from-a-wiki-with-ant-and-mylyn-wikitext Sun, 14 Mar 2010 00:00:01 +0000 authoringprogrammingeclipsesoczest Diagrams in wiki markup with Mylyn WikiText, DOT, and Zest <p><small>Cross-posted to: <a href="https://fsteeg.wordpress.com/2010/02/07/diagrams-in-wiki-markup-with-mylyn-wikitext-dot-and-zest/">https://fsteeg.wordpress.com/2010/02/07/diagrams-in-wiki-markup-with-mylyn-wikitext-dot-and-zest/</a></small></p> <p/> I'm continuing on my <a href="http://wp.me/pwKJk-1L">ancient quest</a> for Graphviz DOT support in Eclipse: after implementing initial support for rendering DOT with Zest in Eclipse through <a href="http://wp.me/pwKJk-6M">dot4zest</a> and some <a href="http://wp.me/pwKJk-8P">early tinkering</a> with dynamically drawing DOT embedded in wiki markup with Zest, I have now started to approach the next step: integrating the Graphviz export into the Mylyn WikiText editor. <p/> Say we are editing embedded <a href="http://en.wikipedia.org/wiki/DOT_language">DOT</a> in wiki markup with the Mylyn <a href="http://wiki.eclipse.org/Mylyn/WikiText">WikiText</a> editor and have an open dot4zest Zest graph view, which displays a <a href="http://www.eclipse.org/gef/zest/">Zest</a> representation of the DOT graph (powered by the EMF <a href="http://code.google.com/p/emfmodelvisualizer/">model visualizer</a> and <a href="http://www.eclipse.org/Xtext/">Xtext</a> - <a href="http://www.eclipse.org/org/foundation/eclipseawards/project.php">vote Xtext!</a>): <p/> <a href="http://fsteeg.com/images/dot4zest-wikitext-1.png"><img class="alignnone size-full" title="dot4zest-wikitext-1" src="http://fsteeg.com/images/dot4zest-wikitext-1.png" alt="Mylyn Wikitext editor and Zest Graph View" /></a> <p/> Now upon saving, dot4zest asks if we want to add a reference to the Graphviz image export to our wiki markup file (requires a local <a href="http://www.graphviz.org/">Graphviz</a> installation, for which we are prompted the first time the export happens): <p/> <a href="http://fsteeg.com/images/dot4zest-wikitext-2.png"><img class="alignnone size-full" title="dot4zest-wikitext-2" src="http://fsteeg.com/images/dot4zest-wikitext-2.png" alt="Dialog" /></a> <p/> If we say yes, dot4zest puts a reference to the exported image file into our plain text wiki markup file. This adds an image representation of the Zest graph displayed in the view to output generated from the plain text - like HTML export or the preview tab of the Mylyn WikiText editor: <p/> <a href="http://fsteeg.com/images/dot4zest-wikitext-3.png"><img class="alignnone size-full" title="dot4zest-wikitext-3" src="http://fsteeg.com/images/dot4zest-wikitext-3.png" alt="WikiText editor including exported image" /></a> <p/> Being sort of <a href="http://wiki.eclipse.org/Gef/Incubator/Proposal">pre-incubation</a>, this is all still fairly restricted and experimental, e.g. it currently supports only a single graph per file and only Textile markup. I've added these latest changes to the update site, so if you want to check it out update your existing dot4zest installation or install it from the update site at <code>http://quui.com/updates</code> (category <em>Zest</em> -&gt; feature <em>dot4zest</em>). http://fsteeg.com/notes/diagrams-in-wiki-markup-with-mylyn-wikitext-dot-and-zesthttp://fsteeg.com/notes/diagrams-in-wiki-markup-with-mylyn-wikitext-dot-and-zest Sun, 07 Feb 2010 00:00:01 +0000 eclipsegraphvizsoczest Visual textual documentation with DOT and Zest in Eclipse <p><small>Cross-posted to: <a href="https://fsteeg.wordpress.com/2010/01/07/visual-textual-documentation-with-dot-and-zest-in-eclipse/">https://fsteeg.wordpress.com/2010/01/07/visual-textual-documentation-with-dot-and-zest-in-eclipse/</a></small></p> <p/> Following up on my previous post, I've been playing some more with the idea of visualizing Graphviz <a href="http://en.wikipedia.org/wiki/DOT_language">DOT</a> embedded in source files with <a href="http://www.eclipse.org/gef/zest/">Zest</a> as tooling for a pragmatic kind of literate programming in Eclipse. My <a href="http://fsteeg.wordpress.com/2009/12/30/zest-for-dot-literacy-in-the-eclipse-javadoc-view/">initial idea</a> was to add the Zest graph to the Javadoc view. One problem with this is that actually using it is quite cumbersome, as it requires a patched <em>org.eclipse.jdt.ui</em> bundle. Another downside is that it limits the usability of this to Java documentation. <p/> So I tweaked the Zest <a href="http://wiki.eclipse.org/Graphviz_DOT_as_a_DSL_for_Zest#Zest_Graph_View">graph view</a> I developed earlier to now kind of implement the same thing, but for any file in the workspace containing a DOT graph. So this still allows visualizing DOT embedded in Javadoc comments, but it might as well be used to document programs written in any obscure language somebody happened to write an Eclipse editor for, say Prolog: <p/> <a href="http://fsteeg.com/images/literate-zest-prolog-screen.png"><img class="alignnone size-full" title="literate-zest-prolog-screen" src="http://fsteeg.com/images/literate-zest-prolog-screen.png" alt="literate-zest-prolog-screen" /></a> <p/> Another useful thing about this approach is that it makes existing functionality from the graph view available, like a button to export the Zest graph using <a href="http://www.graphviz.org/">Graphviz</a>. So from the source file containing a DOT graph embedded in a comment, we can export something to be used as documentation outside of Eclipse: <p/> <a href="http://fsteeg.com/images/literate-zest-prolog-tree.png"><img class="alignnone size-medium" title="literate-zest-prolog-tree" src="http://fsteeg.com/images/literate-zest-prolog-tree.png?" alt="literate-zest-prolog-tree" /></a> <p/> This approach also enables a basic way to use DOT with Zest in another place I originally thought it might be useful: wiki markup. Textual DOT graph definitions can be added to the markup and visualized with Zest while being edited in the <a href="http://greensopinion.blogspot.com/2009/03/mylyn-wikitext-10-released.html">Mylyn WikiText</a> editor: <p/> <a href="http://fsteeg.com/images/literate-zest-wikitext.png"><img class="alignnone size-medium" title="literate-zest-wikitext" src="http://fsteeg.com/images/literate-zest-wikitext.png?" alt="literate-zest-wikitext" /></a> <p/> While I think this might actually be useful, there are some disadvantages to this more general approach. One downside is that it's basically limited to one graph per file. There are probably ways around this (e.g. <a href="http://www.eclipse.org/articles/Article-Tabbed-Properties/tabbed_properties_view.html">with tabs</a>), but it's different from the Javadoc view approach, where every Java element (class, method, etc.) could easily have its own graph. Another downside of having a separate view for graphs is that it distributes the documentation, while if added to the Javadoc view it's all presented in one place. But I guess that's just the price to pay for a more general solution. <p/> Also, I'd like to mention that this is a manual kind of usage of the graph view, which can also be used to visualize DOT files created or changed programmatically (it listens to changes made to files in the workspace). That way, the view can be used to dynamically visualize program output, e.g. for debugging data structures. I believe Zest in general could be used for many awesome things in Eclipse IDEs: there's already <a href="http://www.eclipse.org/pde/incubator/dependency-visualization/index.php">dependency visualization</a>, and things like <em>watch visually</em> while debugging (e.g. for maps), automatic visualization of method input and output, or visual call hierarchies could be really cool, in particular with Zest's <a href="http://wiki.eclipse.org/Graphviz_DOT_as_a_DSL_for_Zest#Animation_2">animation support</a>. <p/> You can check out the graph view by installing the <em>dot4zest</em> feature from the update site at <em>http://quui.com/updates </em>(in the <em>Zest</em> category). I have added the sample files I used above to the repository (in <em>ui/resources/lp_samples</em>). General info (including repository location and documentation) is available on the dot4zest <a href="http://wiki.eclipse.org/Graphviz_DOT_as_a_DSL_for_Zest">wiki page</a>. http://fsteeg.com/notes/visual-textual-documentation-with-dot-and-zest-in-eclipsehttp://fsteeg.com/notes/visual-textual-documentation-with-dot-and-zest-in-eclipse Thu, 07 Jan 2010 00:00:01 +0000 graphvizprogrammingeclipsesoczest Zest for DOT literacy in the Eclipse Javadoc view <p><small>Cross-posted to: <a href="https://fsteeg.wordpress.com/2009/12/30/zest-for-dot-literacy-in-the-eclipse-javadoc-view/">https://fsteeg.wordpress.com/2009/12/30/zest-for-dot-literacy-in-the-eclipse-javadoc-view/</a></small></p> <p/> Edit: <em>Hello Planet Eclipse! I'm very happy to be newly syndicated here, and just in time for the new year!&nbsp;I've been developing Eclipse bundles for study and research projects and for private stuff since around 2004. Last summer, I got more involved with Eclipse itself by participating in the Google Summer of Code at Eclipse.&nbsp;This post about an idea related to my SOC project sort of made me show up here so I thought this makes sense as my first post. A great 2010 to everyone!</em> <p/> Recovering a little from playing the awesome <em>Tales of Monkey Island</em> on the Wii during these wonderful days between the years, I picked up an idea I originally had while working on <a href="http://wiki.eclipse.org/Graphviz_DOT_as_a_DSL_for_Zest">dot4zest</a> during&nbsp;the Google Summer of Code at Eclipse. <p/> I was listening to an episode of the Stack Overflow podcast where Jeff and Joel discuss killer IDEs and the <a href="http://blog.stackoverflow.com/2009/05/podcast-55/">lack of visualization</a> in today's IDEs. <p/> Given my general interest in <a href="http://en.literateprograms.org/Parser_%28Prolog%29">literate programming</a> I thought hey, these DOT-to-Zest transformations I'm working on could be used to include Graphviz DOT graphs in Javadoc comments, and have them automatically visualized with Zest in the Eclipse Javadoc view. <p/> So the other day I put the <del datetime="2009-12-30T02:15:50+00:00">Plug-in</del> Bundle <a href="http://www.eclipse.org/pde/incubator/spy/">spy</a> to work, cloned the org.eclipse.jdt.ui <a href="http://dev.eclipse.org/git/">Git</a> repository, downloaded&nbsp;<a href="http://download.eclipse.org/eclipse/downloads/drops/S-3.6M4-200912101301/index.php">Helios</a> and now I've got something running that while super rough around the edges, basically does that: <p/> <a href="http://fsteeg.com/images/dot4zest-javadoc5.png"><img class="alignnone size-full" title="dot4zest-javadoc" src="http://fsteeg.com/images/dot4zest-javadoc5.png" alt="dot4zest-javadoc"></a> <p/> Playing with this I had some ideas on how this could possibly be further integrated, like refactoring support (e.g. rename, just like it works for <em>@param</em> Javadoc comments), automatic highlighting of Zest graph nodes for selected Java elements, or <a href="http://wiki.eclipse.org/Graphviz_DOT_as_a_DSL_for_Zest#Animation">animation</a> support. <p/> So is this just nuts or could it be a pragmatic kind of tooling for some literate programming? http://fsteeg.com/notes/zest-for-dot-literacy-in-the-eclipse-javadoc-viewhttp://fsteeg.com/notes/zest-for-dot-literacy-in-the-eclipse-javadoc-view Wed, 30 Dec 2009 00:00:01 +0000 graphvizprogrammingeclipsesoczest Graphviz DOT for Eclipse Zest <p><small>Cross-posted to: <a href="https://fsteeg.wordpress.com/2009/08/17/graphviz-dot-for-eclipse-zest/">https://fsteeg.wordpress.com/2009/08/17/graphviz-dot-for-eclipse-zest/</a></small></p> <p/> I have completed my Google Summer of Code project at Eclipse, <a href="http://wiki.eclipse.org/Graphviz_DOT_as_a_DSL_for_Zest">Graphviz DOT as a DSL for Zest</a>. It provides API und UI elements to transform both DOT graphs to Zest visualizations (to be used in Java SWT applications), and Zest visualizations to DOT graphs (to be rendered as image files with Graphviz). <p/> <img class="alignnone" title="DotForZest" src="http://wiki.eclipse.org/images/1/1e/DotForZest.png" alt="" /> <p/> The feature can be installed into Eclipse 3.5 from the update site at <em>http://quui.com/updates</em>. <p/> Documentation is available on <a href="http://wiki.eclipse.org/Graphviz_DOT_as_a_DSL_for_Zest">the project's Eclipse wiki page</a>. User documentation is also available via the built-in help system. Statistics can be found on <a href="https://www.ohloh.net/p/dot4zest/analyses/latest">the project's Ohloh page</a>. I have attached tonight's CVS repository snapshot (which I will have to submit to Google, i.e. it's the formal end result) to <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=277380">bug 277380</a>. <p/> The Summer of Code at Eclipse was a great experience for me (not least because of having a mentor who was super supportive right from the start) - both regarding technology (Xtext,  Xpand, and Zest FTW!) and community aspects (blogging about the project, learning what Twitter is about, using Bugzilla, etc). <p/> And I have not only created a feature that I am personally very keen to use, the best part is that the end of the Google Summer of Code is really the beginning of this, as it looks like my work will actually make it into Zest, and I hope to build upon this to create some cool stuff in the future. http://fsteeg.com/notes/graphviz-dot-for-eclipse-zesthttp://fsteeg.com/notes/graphviz-dot-for-eclipse-zest Mon, 17 Aug 2009 00:00:01 +0000 graphvizprogrammingeclipsesoczest Zest graph view with DOT support <p><small>Cross-posted to: <a href="https://fsteeg.wordpress.com/2009/08/09/zest-graph-view-with-dot-support/">https://fsteeg.wordpress.com/2009/08/09/zest-graph-view-with-dot-support/</a></small></p> <p/> For the final milestone of <a href="http://wiki.eclipse.org/Graphviz_DOT_as_a_DSL_for_Zest">my Google Summer of Code project at Eclipse</a>, I've added direct image export of Zest graphs via export to DOT and subsequent calling of the local <em>dot </em>executable. <p/> On the API level, the directory containing the Graphviz <em>dot</em> executable and the desired output format are specified with the Zest graph to export. In the UI, once the directory is set in a dialog, the location is stored in the bundle's preferences. This is used in a new <em>Zest Graph</em> view I added with this milestone: <p style="text-align:left;"><img style="border:0;" title="Zest graph view" src="http://wiki.eclipse.org/images/d/d4/DotZestM8Screenshot.png" alt="" /></p> <p/> The view listens to *.dot files in the workspace and draws them with Zest. It also provides a button to export the current Zest graph as a PDF, which is stored in the same location as the *.dot file. Further information on the view can be found on <a href="http://wiki.eclipse.org/Graphviz_DOT_as_a_DSL_for_Zest#Milestone_8">the project's Eclipse wiki page</a>. <p/> Besides providing UI for the new direct image export, this view also follows up on the previous milestone (see <a href="http://fsteeg.wordpress.com/2009/07/31/drawing-graphviz-dot-with-zest/">Drawing Graphviz DOT with Zest</a>). The *.dot files visualized with Zest can be edited manually in an editor, or could be generated by an application (e.g. to visualize data structures). <p/> With the 'pencils down' date of the Google Summer of Code <a href="http://socghop.appspot.com/document/show/program/google/gsoc2009/timeline">approaching</a>, this completes the actual functionality of my project. Now one more week to wrap it up. http://fsteeg.com/notes/zest-graph-view-with-dot-supporthttp://fsteeg.com/notes/zest-graph-view-with-dot-support Sun, 09 Aug 2009 00:00:01 +0000 graphvizprogrammingeclipsesoczest Drawing Graphviz DOT with Zest <p><small>Cross-posted to: <a href="https://fsteeg.wordpress.com/2009/07/31/drawing-graphviz-dot-with-zest/">https://fsteeg.wordpress.com/2009/07/31/drawing-graphviz-dot-with-zest/</a></small></p> <p/> In the latest milestone of <a href="http://wiki.eclipse.org/Graphviz_DOT_as_a_DSL_for_Zest">my Google Summer of Code project at Eclipse</a>, I have added support for dynamic creation of Zest graph instances from DOT input, which allows direct drawing of DOT with Zest. To use this, you first create a DotImport object from the DOT input, which can be given as a String, File, or IFile: <pre style="color:black;background-color:#f9f9f9;line-height:1.1em;font-size:medium;border:1px dashed #2f6fab;padding:1em;">DotImport importer = new DotImport("digraph name {1;2;1-&gt;2}");</pre> From this object, a Zest graph instance can be created in a given parent and with a style: <pre style="color:black;background-color:#f9f9f9;line-height:1.1em;font-size:medium;border:1px dashed #2f6fab;padding:1em;">Graph graph = importer.newGraphInstance(shell, SWT.NONE);</pre> Here, the parent is a shell, which if opened will contain the Zest graph created from the DOT input: <p/> <img class="alignnone" title="Simple Zest graph" src="http://wiki.eclipse.org/images/2/23/DotZestSimple.png" alt="" /> <p/> My original approach to get a graph instance was to take the generated Zest graph subclass (see previous milestones), compile it with a Java compiler and create the instance using reflection. The appeal of this was that the dynamically instantiated graph would be exactly the same thing as what is compiled from the input. <p/> So I started two approaches: using the Java 6 compiler API and the internal Eclipse JDT Java compiler. I got it working with the Java 6 compiler API when running as a plain Java application, using some tricks to avoid class reloading problems. Hitting further classloading issues when running in a workbench, I reconsidered this approach, since both possible solutions seemed not ideal. <p/> The Java 6 compiler API would introduce a dependency on Java 6. To make a possible inclusion of my code in Zest easy, this seems unfortunate. And more on the practical side: it would no longer run on my Mac (a 32-bit Core Duo). <p/> The internal Eclipse JDT compiler API initially seemed like an alternative here, but as I learned from the recent issue of the Eclipse-Magazin (ah, good old print, still useful), usage of internal API is not allowed for projects taking part in the Eclipse release train. So again, to even make an inclusion of my code in Zest possible, this seems to be no solution. <p/> So I followed up on the approach I was already using for dynamically getting the DOT graph name and compile errors: parsing the input programmatically with the parser generated by Xtext and getting info from there. In the same manner, the EMF object tree parsed from the DOT input is now interpreted to create and populate the Zest graph. <p/> The slight downside of this is that it duplicates how a Zest graph is created from DOT (which in a different way was already present in the Xpand template). On the other hand, this allows to dynamically draw DOT with Zest in a way that feels more lightweight compared to the compiler approach, and it supports all the DOT input features supported by the compiler (described in the posts for the previous milestones). <p/> The graph wizard <a href="http://fsteeg.wordpress.com/2009/06/22/zest-wizard-with-dot-templates/">added in milestone 3</a> now uses this dynamic drawing support to preview the resulting Zest graph when changes are made to the DOT template inside the wizard. <p/> With the end of the Google Summer of Code slowly approaching (two more weeks), I am very happy to have this dynamic creation of Zest graphs from DOT in, as this is an aspect of the project that I personally find particularly useful. I have been generating DOT from applications for some different use cases, often involving an Eclipse UI. The dependency on the <em>dot</em> executable and calling that from Java always added a lot of inconvenience. <p/> With this, I'll be able to use the two lines of code from above in Eclipse applications to visualize DOT without any non-Java dependencies. I'm excited to start using this in some of my other stuff, and <a href="http://eclipsesource.com/blogs/2009/07/10/a-zesty-summer/comment-page-1/#comment-2070">it seems I'm not the only one with this kind of use case</a>. <p/> With the previous milestone I have updated from oAW 4.3 to the Eclipse Modeling versions of the oAW components in Galileo. As this results in a dependency on the SVN version of the EMF model visualizer project, the changes for this milestone are only in the dot4zest HEAD and not attached to the corresponding bug. Instructions on how to set this up can be found on the <a href="http://wiki.eclipse.org/Graphviz_DOT_as_a_DSL_for_Zest#Resources">wiki page</a>. http://fsteeg.com/notes/drawing-graphviz-dot-with-zesthttp://fsteeg.com/notes/drawing-graphviz-dot-with-zest Fri, 31 Jul 2009 00:00:01 +0000 graphvizprogrammingeclipsesoczest A Graphviz-compatible animation DSL for Zest <p><small>Cross-posted to: <a href="https://fsteeg.wordpress.com/2009/07/12/a-graphviz-compatible-animation-dsl-for-zest/">https://fsteeg.wordpress.com/2009/07/12/a-graphviz-compatible-animation-dsl-for-zest/</a></small></p> <p/> For the fifth milestone of <a href="http://wiki.eclipse.org/Graphviz_DOT_as_a_DSL_for_Zest">my Google Summer of Code project at Eclipse</a>, I've added support for animated Zest visualizations, representing the animation steps as subgraphs in the DOT input. With this, the DOT input effectively becomes a Graphviz-compatible animation DSL for Zest. <p/> To explain what I mean with <em>representing animation steps as subgraphs</em>, let's assume we have a directed DOT graph with global attributes and some nodes:<pre style="color:black;background-color:#f9f9f9;line-height:1.1em;font-size:medium;border-color:#2f6fab;border-style:dashed;border-width:1px;padding:1em;">node[label="Node"]; edge[label="Edge" style=dotted]; 1;2;3;4;5</pre> We then define a subgraph: <pre style="color:black;background-color:#f9f9f9;line-height:1.1em;font-size:medium;border:1px dashed #2f6fab;padding:1em;">subgraph cluster_0{ 1 -&gt; 2 [label="Dashed" style=dashed] }</pre> Now in the resulting Zest visualization, hitting the animation button once results in the structure described by the subgraph: <p/> <img class="alignnone" title="First step" src="http://wiki.eclipse.org/images/7/7e/DotZestM5Screenshot1.png" alt="" /> <p/> Then, in further subgraphs, we define how the current graph should be altered: <pre style="color:black;background-color:#f9f9f9;line-height:1.1em;font-size:medium;border:1px dashed #2f6fab;padding:1em;">subgraph cluster_1{ 1 -&gt; 3 }</pre> <pre style="color:black;background-color:#f9f9f9;line-height:1.1em;font-size:medium;border:1px dashed #2f6fab;padding:1em;">subgraph cluster_2_end{ 3 -&gt; 4; 3 -&gt; 5 } // "end" for the final step</pre> Each click alters the graph by applying the next subgraph, resulting in the final Zest visualization: <p/> <img class="alignnone" title="Final step" src="http://wiki.eclipse.org/images/3/38/DotZestM5Screenshot2.png" alt="" /> <p/> It's all quite experimental, uses a separate Xpand template, relies on conventions (numering, "end" for the final step, etc.), but overall it's already quite usable and supports all the stuff supported in the <a href="http://fsteeg.wordpress.com/2009/06/28/zest-project-type-with-dot-support/">normal DOT import</a> (global attributes, Zest layout algorithms, edge styles). <p/> Putting it all together we get the complete DOT input for this example: <pre style="color:black;background-color:#f9f9f9;line-height:1.1em;font-size:medium;border:1px dashed #2f6fab;padding:1em;">digraph SampleAnimation { node[label="Node"]; edge[label="Edge" style=dotted] //optional 1;2;3;4;5 subgraph cluster_0{ 1 -&gt; 2 [label="Dashed" style=dashed]} subgraph cluster_1{ 1 -&gt; 3 } subgraph cluster_2_end{ 3 -&gt; 4; 3 -&gt; 5} }</pre> The same DOT input can still be rendered with Graphviz, providing a static representation of the animation, with the individual steps as subgraphs: <p/> <img class="alignnone size-full" title="DotZestM5Graphviz" src="http://fsteeg.com/images/dotzestm5graphviz3.png" alt="DotZestM5Graphviz" /> <p/> The example above is automatically set up in the project created by the <a href="http://fsteeg.wordpress.com/2009/06/28/zest-project-type-with-dot-support/">Zest project wizard</a>. Besides the described animation support, in milestone 5 I've also cleaned up the import API and fixed some bugs. If you want to try it, you can find the details on the <a href="http://wiki.eclipse.org/Graphviz_DOT_as_a_DSL_for_Zest">dot4zest Eclipse wiki page</a>. http://fsteeg.com/notes/a-graphviz-compatible-animation-dsl-for-zesthttp://fsteeg.com/notes/a-graphviz-compatible-animation-dsl-for-zest Sun, 12 Jul 2009 00:00:01 +0000 graphvizprogrammingeclipsesoczest Zest project type with DOT support <p><small>Cross-posted to: <a href="https://fsteeg.wordpress.com/2009/06/28/zest-project-type-with-dot-support/">https://fsteeg.wordpress.com/2009/06/28/zest-project-type-with-dot-support/</a></small></p> <p/> I've completed the fourth milestone of my Google Summer of Code project at Eclipse. It adds a Zest project type with support for Graphviz DOT templates in a dedicated folder. These DOT files are automatically compiled to Zest graph subclasses. Details can be found on the <a href="http://wiki.eclipse.org/Graphviz_DOT_as_a_DSL_for_Zest">dot4zest Eclipse wiki page</a>. <p/> <img class="alignnone" title="Zest wizard with DOT template selection and preview" src="http://wiki.eclipse.org/images/2/2c/DotZestM4Screenshot.png" alt="" /> <p/> While implementing this functionality I've also updated and streamlined the DotImport API by adding methods taking IFile parameters for all of the provided functionality (importing DOT, checking for errors, and some minor other things). <p/> Between this and the previous milestone, the Eclipse world has taken a significant step forward with the release of Eclipse 3.5 and the Galileo simultaneous release. I was very happy to see that after some minor tweaks, my bundles work just fine on Galileo, so I made the move and switched to Galileo. <p/> With Galileo, most of the oAW dependencies I rely on are now part of the Eclipse release train (in particular Xtext and Xpand). However, <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=277397#c3">I also depend on the oAW Graphviz feature, which is not in Galileo</a>. So for now this project still depends on oAW (and I was pleased to see that oAW works flawlessly with Galileo). <p/> I've also found some time to write unit tests for both wizards (the project wizard introduced with this milestone and the graph wizard introduced with milestone 3). I just love running unit tests for UI elements: seeing the things that are usually triggered by clicking around happen all by themselves (like wizards popping up, editors opening, etc.) is just magic. http://fsteeg.com/notes/zest-project-type-with-dot-supporthttp://fsteeg.com/notes/zest-project-type-with-dot-support Sun, 28 Jun 2009 00:00:01 +0000 graphvizprogrammingeclipsesoczest Zest wizard with DOT templates <p><small>Cross-posted to: <a href="https://fsteeg.wordpress.com/2009/06/22/zest-wizard-with-dot-templates/">https://fsteeg.wordpress.com/2009/06/22/zest-wizard-with-dot-templates/</a></small></p> <p/> As the third milestone of my Google Summer of Code project at Eclipse, I've implemented a Zest graph wizard supporting Graphviz DOT import. It offers different Zest graph templates, created from DOT representations. The Zest graph to be generated from the DOT template is previewed in the wizard, and the DOT representation can be customized in a second wizard page. Details can be found on the <a href="http://wiki.eclipse.org/Graphviz_DOT_as_a_DSL_for_Zest">dot4zest Eclipse wiki page</a>. <p/> <img class="alignnone" title="Zest wizard with DOT template selection and preview" src="http://wiki.eclipse.org/images/3/37/DotZestM3Screenshot.png" alt="" /> <p/> Behind the UI I've added a few things that were required for validation and preview in the wizard: the DOT input for the Xpand generator is parsed using EMF to get the graph name and return parser errors to the wizard. This also allowed me to return the generated file in the API (which I couldn't do before as the name of the result file is determined by the name of the DOT graph, which is defined as part of the DOT representation itself). <p/> Rather experimental is some effort I started to return an actual Zest graph instance for the generated Zest graph. One possible way to achieve this is by compiling the generated file programatically and then loading the graph via reflection. The advantage of such an approach is that it would really return the same graph that is generated. An alternative way to get a Graph instance would be to expand on the EMF interpreting I'm currently doing to validate the DOT input in the wizard (as mentioned above). <p/> The motivation for getting back an instance was to get Zest graph preview of the DOT templates into the wizard. As it turned out this was possible even without really getting the compilation to work programmatically, so I'll leave it at that for now and see which approach actually makes more sense when I get back to it in the future. http://fsteeg.com/notes/zest-wizard-with-dot-templateshttp://fsteeg.com/notes/zest-wizard-with-dot-templates Mon, 22 Jun 2009 00:00:01 +0000 eclipsegraphvizsoczest Graphviz DOT export for Zest <p><small>Cross-posted to: <a href="https://fsteeg.wordpress.com/2009/06/10/graphviz-dot-export-for-zest/">https://fsteeg.wordpress.com/2009/06/10/graphviz-dot-export-for-zest/</a></small></p> <p/> I've completed the second milestone of <em>Graphviz DOT as a DSL for Zest,</em> my Google Summer of Code project at Eclipse. Milestone 2 adds basic Graphviz export for Zest by generating DOT files or strings from Zest graph instances. Details can be found on <a href="http://wiki.eclipse.org/Graphviz_DOT_as_a_DSL_for_Zest">the project's Eclipse wiki page</a>. <p/> Milestone 2 also adds integrated DOT export support to the Zest graphs generated by the <a href="http://fsteeg.wordpress.com/2009/06/01/this-is-dot-transformation-zest-to-rock-the-foundation/">Graphviz import for Zes</a>t (milestone 1), through a <em>toDot</em> method. I was considering overriding <em>toString</em> in these classes, but while the DOT representation is human-readable, it is not always <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#toString()">concise</a>. <p/> I had some doubts using the <a href="http://www.eclipse.org/articles/Article-JET/jet_tutorial1.html">original JET</a> instead of the <a href="http://www.eclipse.org/modeling/emf/docs/architecture/jet2/jet2.html">new JET2</a> for generating the DOT representations, but <a href="http://wiki.eclipse.org/JET_FAQ_How_do_I_run_an_individual_JET_template_and_get_a_string_back%3F">it seems</a> that with JET2 I have to introduce a runtime dependency on the M2T bundles. With the original JET,  a plain Java class is generated at development time that has no additional bundle dependencies at all. This seems very useful in this case, as it would not burden Zest with additional dependencies for the export functionality. So I sticked with that for now. If I'm missing something here I'd be happy about any pointers on how this could be done with JET2. <p/> Implementing the basic export functionality was less work than I had anticipated. I guess one reason for this is the combination of the general simplicity of graphs - just nodes and edges - with the fact that the DOT output is very short and easy to write, even in a template. Also, I did not have to worry about any Zest layout algorithms like for the import, as DOT does not support them in the language itself. This could be tackled in the future by using other Graphviz commands than <em>dot</em> (like <em>circo</em>,<em> neato</em><em> </em>etc.) once the executable is called as an optional part of the export (<a href="http://wiki.eclipse.org/Graphviz_DOT_as_a_DSL_for_Zest#Timeline">planned for milestone 8</a>). <p/> When I look at the code I have written myself to implement the actual functionality (i.e. not generated or testing code), I find it almost scary to see how little that is: about 60 lines for the export (~15 for the JET template and ~45 for the DotExport wrapper class) and about 170 lines for the import (~95 for the Xpand template, ~15 for the generator workflow and ~60 for the DotImport wrapper class). <p/> Thanks to the Ohloh <a href="https://www.ohloh.net/p/dot4zest/analyses/latest">analysis</a> though, I can comfort myself, as it says overall it's at about 1000 lines, so I can see I <em>did </em>write some code. Actually, all I wanted was a timeline or changelog for the complete repository, for me to check up on what I have been doing lately from time to time. Unfortunately this is <a href="http://developer.berlios.de/support/index.php?func=detailsupport&amp;support_id=102940&amp;group_id=1">currently not available</a> for Berlios CVS repositories. <p/> So I looked around for some alternatives, and simply setting up the repository location on Ohloh seemed to be the easiest way. This gets me that complete <a href="https://www.ohloh.net/p/dot4zest/commits">timeline</a> and more. It's not perfect, though. For instance, it takes 2-4 days <a href="https://www.ohloh.net/p/dot4zest/enlistments">to catch up</a>. Also, it feels a bit weird having these contributions to Zest in a project of its own on Ohloh. But Ohloh projects can be closed anytime and in the meantime it's useful to get an overview of the existing code and changes. http://fsteeg.com/notes/graphviz-dot-export-for-zesthttp://fsteeg.com/notes/graphviz-dot-export-for-zest Wed, 10 Jun 2009 00:00:01 +0000 eclipsegraphvizsoczest Graphviz DOT import for Zest <p><small>Cross-posted to: <a href="https://fsteeg.wordpress.com/2009/06/01/graphviz-dot-import-for-zest/">https://fsteeg.wordpress.com/2009/06/01/graphviz-dot-import-for-zest/</a></small></p> <p/> I've completed the first milestone of my Google Summer of Code project, <em>Graphviz DOT as a DSL for Zest</em>. Milestone 1 implements basic Graphviz import for Zest by generating Zest Graph subclasses from DOT descriptions. Details can be found on <a href="http://wiki.eclipse.org/Graphviz_DOT_as_a_DSL_for_Zest">the project's Eclipse wiki page</a>. A useful insight I got out of this first week of coding is that <em>by</em> participating in the SOC I'm learning that I don't actually <em>need</em> the SOC to contribute to Eclipse. I could have written <a href="http://dev.eclipse.org/mhonarc/lists/gef-dev/msg01132.html">mails</a>, filed <a href="https://bugs.eclipse.org/bugs/buglist.cgi?query_format=specific&amp;order=relevance+desc&amp;bug_status=__all__&amp;product=GEF&amp;content=%5Bdot4zest%5D">bugs</a> and done the <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=277380#c2">coding</a> just the same. Except of course for that little red book, which accumulates money on a magic 'gift card' hidden in the back cover. http://fsteeg.com/notes/graphviz-dot-import-for-zesthttp://fsteeg.com/notes/graphviz-dot-import-for-zest Mon, 01 Jun 2009 00:00:01 +0000 eclipsegraphvizsoczest Graphviz DOT as a DSL for Zest <p><small>Cross-posted to: <a href="https://fsteeg.wordpress.com/2009/04/22/graphviz-dot-as-a-dsl-for-zest/">https://fsteeg.wordpress.com/2009/04/22/graphviz-dot-as-a-dsl-for-zest/</a></small></p> <p/> Yay! My proposal, <a href="http://socghop.appspot.com/student_project/show/google/gsoc2009/eclipse/t124022230869">Graphviz DOT as a DSL for Zest</a>, has been accepted for the <a href="http://socghop.appspot.com/org/home/google/gsoc2009/eclipse">Google Summer of Code 2009 at Eclipse</a>. The application process went smooth and was a very exciting experience (peaking in the packed #gsoc channel when results were announced). Recieving an acceptance notification little more than <em>two weeks</em> after the application deadline is a truly refreshing experience compared to what I know from academia. So with an awesome program so far, I'm now looking forward to <a href="http://fsteeg.blogspot.com/2009/04/summer-of-zest.html">some more</a> <a href="http://googlesummerofcode.blogspot.com/2007/04/so-what-is-this-community-bonding-all.html">bonding</a> with <a href="http://www.eclipse.org/gef/zest/">Zest</a> at <a href="http://www.eclipse.org/org/">the Foundation</a> before the coding begins on May 23rd. <p/> <img border="0" src="http://fsteeg.com/images/2009socwithlogo.gif" alt="GSOC-2009" /> http://fsteeg.com/notes/graphviz-dot-as-a-dsl-for-zesthttp://fsteeg.com/notes/graphviz-dot-as-a-dsl-for-zest Wed, 22 Apr 2009 00:00:01 +0000 eclipsesoczest Summer of Zest <p><small>Cross-posted to: <a href="https://fsteeg.wordpress.com/2009/04/02/summer-of-zest/">https://fsteeg.wordpress.com/2009/04/02/summer-of-zest/</a></small></p> <p/> <p>I've submitted <a href="http://socghop.appspot.com/student_proposal/show/google/gsoc2009/fsteeg/t123836114274">an application</a> for the <a href="http://code.google.com/soc">Google Summer of Code 2009</a> <a href="http://wiki.eclipse.org/Google_Summer_of_Code">at Eclipse</a>. My goal is to <a href="http://wiki.eclipse.org/Graphviz_DOT_as_a_DSL_for_Zest">make Graphviz DOT usable as a DSL for Zest (The Eclipse Visualization Toolkit)</a>, based on <a href="http://www.eclipse.org/modeling/">Eclipse Modeling</a> technology. With all the buzz on the mailing lists, blogs and IRC, these are really exciting times!</p><p><img border="0" src="http://fsteeg.com/images/eclipsesoc.png" alt="Eclipse SOC"></p><p>And the best part is that applying alone has already made so many cool things happen: I got in contact with <a href="http://eclipsesource.com/blogs/author/irbull/">Ian Bull</a> (the <a href="http://www.eclipse.org/gef/zest/">Zest</a> component lead), <a href="http://eclipsesource.com/blogs/2009/03/13/soc-what-are-you-doing-this-summer/">who liked the idea</a>. A little later, I had a <a href="http://en.wikipedia.org/wiki/WebEx">webex</a> meeting with <a href="http://www.voelter.de">Markus Völter</a>, who (after hearing about the idea) had offered to show me around in the <a href="http://code.google.com/p/emfmodelvisualizer/">EMF model visualizer</a> project (which my proposal depends on). And I even have my very own Eclipse <a href="http://wiki.eclipse.org/Graphviz_DOT_as_a_DSL_for_Zest">wiki page</a> now (yay!). Great stuff ahead, one way or another.</p> http://fsteeg.com/notes/summer-of-zesthttp://fsteeg.com/notes/summer-of-zest Thu, 02 Apr 2009 00:00:01 +0000 eclipsesoczest