<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">

  <title><![CDATA[Sebastian Benz]]></title>
  
  <link href="http://young-dusk-7034.heroku.com//" />
  <updated>2012-05-30T22:39:07+02:00</updated>
  <id>http://young-dusk-7034.heroku.com//</id>
  <author>
    <name><![CDATA[Sebastian Benz]]></name>
    
  </author>
  <generator uri="http://octopress.org/">Octopress</generator>

  
  <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/sebastianbenzposterous" /><feedburner:info uri="sebastianbenzposterous" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry>
    <title type="html"><![CDATA[New Eclipse Todo Editor Release (1.1.0)]]></title>
    <link href="http://feedproxy.google.com/~r/sebastianbenzposterous/~3/jIsyFrvyWy4/new-eclipse-todo-editor-release-110" />
    <updated>2011-12-21T00:00:00+01:00</updated>
    <id>http://young-dusk-7034.heroku.com//new-eclipse-todo-editor-release-110</id>
    <content type="html">&lt;p&gt;It has been a while since the last release of the &lt;a href="http://sebastianbenz.de/a-simple-text-based-todo-editor-for-eclipse"&gt;Eclipse Todo Editor&lt;/a&gt;. After its initial release I have been using and updating it on a regular basis. Besides using it for tracking my todo lists, it has also become my favorite tool for taking notes during meetings and discussions. Now I am happy to announce the new 1.1.0 release. It has some great new features, shifting its focus from a todo list manager to a general note taking application. You can install it either via &lt;a href="http://marketplace.eclipse.org/content/eclipse-todo-editor"&gt;Eclipse Market Place&lt;/a&gt; or its &lt;a href="http://sebastianbenz.github.com/eclipse-task-editor/updates"&gt;Update Site&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img class="center" src="http://sebastianbenz.github.com/eclipse-task-editor/images/ScreenshotNew.png" title="Screenshot" &gt;&lt;/p&gt;

&lt;!--more--&gt;


&lt;h3&gt;Syntax Highlighting&lt;/h3&gt;

&lt;p&gt;While developing, I often store code snipplets in my todo files. To make these more readable, I added support for custom syntax highlighting for            different programming languages. The only thing you need to do is to        declare the language after the code block literal:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;'''java
public class MyClass{
  public static void main(String[] args){
    System.out.println("Hello World");
  }
}
'''
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Here is an example what it looks like in the editor&lt;/p&gt;

&lt;p&gt;&lt;img class="center" src="http://sebastianbenz.github.com/eclipse-task-editor/images/SyntaxHighlighting.png"&gt;&lt;/p&gt;

&lt;h3&gt;Images &amp;amp; Links&lt;/h3&gt;

&lt;p&gt;You can now specify links and images in the todo files. The editor      automatically underlines links within the text. You can open a link by pressing F3 or hold CMD/STRG when clicking on it. Links with descriptions    and images can be specified in &lt;a href="http://daringfireball.net/projects/markdown/"&gt;Markdown&lt;/a&gt; syntax:&lt;/p&gt;

&lt;p&gt;&lt;img class="center" src="http://sebastianbenz.github.com/eclipse-task-editor/images/LinksAndImages.png" title="Images and hyperlinks" &gt;&lt;/p&gt;

&lt;h3&gt;Export&lt;/h3&gt;

&lt;p&gt;You might have wondered why one wants to specify links or images in a todo file. This comes in handy with the new export feature: todo files can now be exported into HTML or &lt;a href="http://confluence.atlassian.com/display/CONF20/Confluence+Notation+Guide+Overview"&gt;Confluence Markup&lt;/a&gt; using the context menu in the editor. Links and images will be translated into their respective counterparts. &lt;a href="http://sebastianbenz.github.com/eclipse-task-editor/examples/export.html"&gt;Here&lt;/a&gt; is an example how this blog post would look like (note that the syntax highlighting in the code snippet is still present).&lt;/p&gt;

&lt;h3&gt;More&lt;/h3&gt;

&lt;p&gt;Other new features are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Migration to Xtext 2.2.1&lt;/li&gt;
&lt;li&gt;CMD/Ctrl + Click a tag and it will automatically open the query view showing all elements with this tag&lt;/li&gt;
&lt;li&gt;Notes and projects can now be tagged&lt;/li&gt;
&lt;li&gt;Tags do now also apply to subtasks&lt;/li&gt;
&lt;li&gt;Support for text folding&lt;/li&gt;
&lt;li&gt;Improved spell checking (Quick fixes, can be disabled via preferences)&lt;/li&gt;
&lt;/ul&gt;

&lt;img src="http://feeds.feedburner.com/~r/sebastianbenzposterous/~4/jIsyFrvyWy4" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://young-dusk-7034.heroku.com//new-eclipse-todo-editor-release-110</feedburner:origLink></entry>
  
  <entry>
    <title type="html"><![CDATA[Register for Coderetreat Munich]]></title>
    <link href="http://feedproxy.google.com/~r/sebastianbenzposterous/~3/a2Stl22Mjqw/register-for-coderetreat-munich" />
    <updated>2011-11-03T00:00:00+01:00</updated>
    <id>http://young-dusk-7034.heroku.com//register-for-coderetreat-munich</id>
    <content type="html">&lt;p&gt;The registration for our &lt;a href="http://sebastianbenz.de/global-day-of-coderetreat-munich-edition"&gt;Coderetreat&lt;/a&gt; in Munich has started. Head over to &lt;a href="http://coderetreatmunich2011.eventbrite.com/"&gt;Eventbrite&lt;/a&gt; to join the event. It&amp;#8217;s going to be great! You can find more information here: &lt;a href="http://coderetreat-munich.de/"&gt;www.coderetreat-munich.de&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img class="center" src="http://young-dusk-7034.heroku.com//images/carit.jpeg" title="Our office at BMW Car IT" &gt;&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/sebastianbenzposterous/~4/a2Stl22Mjqw" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://young-dusk-7034.heroku.com//register-for-coderetreat-munich</feedburner:origLink></entry>
  
  <entry>
    <title type="html"><![CDATA[Global day of Coderetreat: Munich Edition]]></title>
    <link href="http://feedproxy.google.com/~r/sebastianbenzposterous/~3/1nBx114q35E/index.html" />
    <updated>2011-10-28T00:00:00+02:00</updated>
    <id>http://young-dusk-7034.heroku.com//global-day-of-coderetreat-munich-edition/global-day-of-coderetreat-munich-edition</id>
    <content type="html">&lt;p&gt;Where I &lt;a href="http://www.bmw-carit.de"&gt;work&lt;/a&gt; we have some really great programmers. They all have
different backgrounds, which make them a great source to learn from.
Unfortunately, I never really had the chance to program with most of
them, because they either work in a different team or in a different
project. I always considered this to be a missed opportunity and was
searching for a way to improve skill transfer among my colleagues. My
search ended when I heard about coderetreats.&lt;/p&gt;

&lt;p&gt;A coderetreat is a daylong event, focused on practicing the basic principles of good design without the pressure of having to get things done. The day is split into six sessions, in which you work on the same problem over and over again. In each session you will pair with a different programmer to maximize the knowledge transfer. The important thing is that after each session all the code that has been written so far is deleted. This gives you the chance in the next session to all start over again without being constrained by any design decisions you made in the previous one. The combination of pair programming with the focus on writing perfect code instead of solving the problem gives you a unique opportunity to improve your skills.&lt;/p&gt;

&lt;p&gt;Since hearing about coderetreats I have facilitated two internal coderetreats at my workplace. They turned out be great fun and we all learned a lot during the day. This is why I am really happy to announce that we will be facilitating a public coderetreat at &lt;a href="http://www.bmw-carit.de"&gt;BMW Car IT&lt;/a&gt; on December 3rd.  This coderetreat will be part of the &lt;a href="blog.coderetreat.com/global-day-of-coderetreat"&gt;Global Day of Code Retreat&lt;/a&gt; initiated by Corey Haines. Coderetreats will take place all over the &lt;a href="http://coderetreat.ning.com/events/event/listByDate?date=2011-12-3"&gt;world&lt;/a&gt;. The event is free of charge, food and drinks will be provided by BMW Car IT. If you are a programmer and eager to learn, head over to www.coderetreat-munich.de for more information and registration.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/sebastianbenzposterous/~4/1nBx114q35E" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://young-dusk-7034.heroku.com//global-day-of-coderetreat-munich-edition/index.html</feedburner:origLink></entry>
  
  <entry>
    <title type="html"><![CDATA[A simple text-based todo editor for Eclipse]]></title>
    <link href="http://feedproxy.google.com/~r/sebastianbenzposterous/~3/Hq8l-zJZ5Vg/a-simple-text-based-todo-editor-for-eclipse" />
    <updated>2011-07-18T00:00:00+02:00</updated>
    <id>http://young-dusk-7034.heroku.com//a-simple-text-based-todo-editor-for-eclipse</id>
    <content type="html">&lt;p&gt;While developing I like to keep track of small issues that come up over time - a duplication to remove; a missing test for a corner case. All these little things you don&amp;rsquo;t create a bug for, but which would be annoying to forget. There exists a plethora of tools for managing todo lists. Unfortunately, I never found one that fitted my workflow. So I ended up writing my todo lists in simple text files (I tend to lose anything that I write on paper, so pen and paper never really was an alternative).
At least, this was the case until I discovered &lt;a href="http://www.hogbaysoftware.com/products/taskpaper" target="_blank"&gt;Taskpaper&lt;/a&gt;. Taskpaper is a text editor with special syntax highlighting support for managing todo lists (and some other really cool features). While Taskpaper is really great, it is only available for Mac OSX. Unfortunately, I am at work still stuck with windows. So I decided to create a todo list editor that provides the effectiveness of Taskpaper while being fully integrated into Eclipse. Being a big &lt;a href="http://vimeo.com/12080038"&gt;fan&lt;/a&gt; of &lt;a href="http://www.xtext.org"&gt;Xtext&lt;/a&gt;, it was the obvious choice to use Xtext for the implementation. I have been actively using my todo list editor now for several month and it has turned from just a todo list to my favorite everyday note-taking application.&lt;/p&gt;

&lt;p&gt;&lt;img class="center" src="http://sebastianbenz.github.com/eclipse-task-editor/images/EditorExample.png" title="The editor in action" &gt;&lt;/p&gt;

&lt;!--more--&gt;


&lt;h3&gt;Installation&lt;/h3&gt;

&lt;p&gt;You can install the editor via its &lt;a href="http://sebastianbenz.github.com/eclipse-task-editor/updates"&gt;update site&lt;/a&gt; or via the &lt;a href="http://marketplace.eclipse.org/content/eclipse-todo-editor"&gt;Eclipse Marketplace&lt;/a&gt;. It runs with Eclipse 3.6 and 3.7 and requires Xtext 2.0. The source code is available at &lt;a href="https://github.com/sebastianbenz/eclipse-task-editor"&gt;Github&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;How does it work?&lt;/h3&gt;

&lt;p&gt;Create a new file with the extension &lt;em&gt;&lt;em&gt;.todo&lt;/em&gt; or &lt;em&gt;&lt;/em&gt;.taskpaper&lt;/em&gt;. The file will be opened in the todo editor. The basic elements of a todo list are: Todos, Projects, Tags, and Notes. These help you to structure and manage your todos.&lt;/p&gt;

&lt;h4&gt;Todos&lt;/h4&gt;

&lt;p&gt;Write a new todo by starting a new line with a hyphen. Todos can be marked as done by adding the &amp;lsquo;@done&amp;rsquo; tag. They will be marked with strike through.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://young-dusk-7034.heroku.com//images/taskeditor/todo.png" alt="Example todos" /&gt;&lt;/p&gt;

&lt;h4&gt;Projects&lt;/h4&gt;

&lt;p&gt;You can use projects to structure your todo lists. Declare a project by appending a colon at the end of the line. Project names are automatically highlighted with a bigger font to separate them more clearly. Be careful not to add additional whitespaces before the line break. Projects are hierarchical. You can attach content to a project by indenting its content with a tab or two spaces.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://young-dusk-7034.heroku.com//images/taskeditor/projects.png" alt="Example todos" /&gt;&lt;/p&gt;

&lt;h4&gt;Code&lt;/h4&gt;

&lt;p&gt;I often keep code snippets in my todo list. To make them more readable, you can enclose them within &lt;code&gt;'''&lt;/code&gt; and &lt;code&gt;'''&lt;/code&gt;. The text in between will be written in a fixed width font.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://sebastianbenz.github.com/eclipse-task-editor/images/CodeBlock.png" alt="Code blocks" /&gt;&lt;/p&gt;

&lt;h4&gt;Notes&lt;/h4&gt;

&lt;p&gt;Any other text that you write in your text file is treated as a note. Notes are highlighted in gray.&lt;/p&gt;

&lt;h4&gt;Tags&lt;/h4&gt;

&lt;p&gt;One of the most powerful features of the editor are tags. You can use tags to annotate any element in your file. You have already seen the &lt;span style="text-decoration: underline; color: #888888;"&gt;@done&lt;/span&gt; tag earlier. It is used to mark todos as done. But you can use your own tags as well. Tags can even have additional parameters, written in parentheses. We will see later what they are good for.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://sebastianbenz.github.com/eclipse-task-editor/images/TagsExample.png" alt="Tags" /&gt;&lt;/p&gt;

&lt;h3&gt;Queries&lt;/h3&gt;

&lt;p&gt;Often I want to quickly list all open todos for today. This is possible with the query view. You can use the view to search through all todo files in your workspace. Open it by selecting: &lt;code&gt;Window-&amp;gt;Show View-&amp;gt;Others-&amp;gt;Todos-&amp;gt;Query&lt;/code&gt;. Enter queries into the search box at the top, to search for todo by their text, keywords, or tags.&lt;/p&gt;

&lt;p&gt;Here are some examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;"a phrase"&lt;/code&gt; =&amp;gt; returns all elements that contains the specified phrase&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;@done    &lt;/code&gt; =&amp;gt; returns all todos with the tag done&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;not @done&lt;/code&gt; =&amp;gt; returns all todos which do not have the tag @done&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;@prio = 1&lt;/code&gt; =&amp;gt; returns all todos with the tag @prio(1)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;@prio &amp;lt; 3&lt;/code&gt; =&amp;gt; returns all todos which tag @prio has a value less that 3&lt;/span&gt;&lt;p /&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Queries can also be combined:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;"a phrase" and not @done&lt;/code&gt; =&amp;gt; returns all open todos that contain the specified phrase&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;By the way, the query language is also implemented in Xtext. The search box is a little Xtext editor that provides even code completion.&lt;/p&gt;

&lt;h3&gt;Shortcuts&lt;/h3&gt;

&lt;p&gt;There are some keyboard shortcuts available:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;CMD + R / STR + R&lt;/code&gt; =&amp;gt; remove all done todos in the editor&lt;/li&gt;
&lt;li&gt;&lt;code&gt;CMD + T / STR + T&lt;/code&gt; =&amp;gt; create a new empty todo list (works only in the standalone application)&lt;/li&gt;
&lt;/ul&gt;


&lt;h3&gt;Standalone RCP application&lt;/h3&gt;

&lt;p&gt;There is also a standalone todo editor available. It is still a little rough around the edges but completely usable. You can find the instructions on how to build the RCP application on the &lt;a href="https://github.com/sebastianbenz/eclipse-task-editor"&gt;Github&lt;/a&gt; page.&lt;/p&gt;

&lt;br /&gt;&lt;img class="center" src="http://sebastianbenz.github.com/eclipse-task-editor/images/RcpApplication.png" alt="A screenshot of the standalone todo editor." /&gt;



&lt;img src="http://feeds.feedburner.com/~r/sebastianbenzposterous/~4/Hq8l-zJZ5Vg" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://young-dusk-7034.heroku.com//a-simple-text-based-todo-editor-for-eclipse</feedburner:origLink></entry>
  
  <entry>
    <title type="html"><![CDATA[Xbase interactive programming environment]]></title>
    <link href="http://feedproxy.google.com/~r/sebastianbenzposterous/~3/8EDKqf02oo0/introducing-an-interactive-programming-enviro" />
    <updated>2010-12-10T00:00:00+01:00</updated>
    <id>http://young-dusk-7034.heroku.com//introducing-an-interactive-programming-enviro</id>
    <content type="html">&lt;p&gt;One of the exciting new features of the upcoming &lt;a href="http://www.xtext.org"&gt;Xtext&lt;/a&gt; 2.0 is the integration of the general purpose expression language Xbase. Sven Efftinge gives an excellent introduction to Xbase in his &lt;a href="http://blog.efftinge.de/2010/09/xbase-new-programming-language.html"&gt;blog post&lt;/a&gt;. Having such a language makes it a lot easier to create more complex DSLs which require some form of expression language. For example, creating a DSL for modeling statecharts with states and transitions is already really easy with Xtext. However, extending the language to support defining guards and actions for transitions is still quite complicated, because these require an expression language. Implementing such a language with Xtext is not &lt;a href="http://blog.efftinge.de/2010/08/parsing-expressions-with-xtext.html"&gt;trivial&lt;/a&gt;. But with Xbase this will be a thing of the past, because you can integrate it directly into your DSL. Even better, Xbase also provides an interpreter which you can use for executing your statecharts.&lt;br /&gt;&lt;br /&gt;
&lt;img class="center" src="http://young-dusk-7034.heroku.com//images/xrepl/xbase.png"&gt;
&lt;/p&gt;




&lt;!--more--&gt;




&lt;p&gt;Xtext 2.0 will be released together with Eclipse Indigo in June 2011. However, being curious I wanted to try the current &lt;a href="http://www.eclipse.org/Xtext/developers/workspaceSetup.php"&gt;implementation&lt;/a&gt; of Xbase. One of the best ways to explore a new language is via an &lt;a href="http://en.wikipedia.org/wiki/Read-eval-print_loop"&gt;interactive programming environment&lt;/a&gt; (often called a REPL for Read-Evaluate-Print-Loop). So far Xtext only provides an interpreter for Xbase, without an actual REPL. So I started to write my own. I wanted to see whether it was possible to create a REPL for Xtext-based languages. Of course, the REPL should support all the goodness that is provided by Xtext, such as syntax highlighting, code completion, and validation. It proved to be simpler than expected. My implementation is based on the &lt;a href="http://code.google.com/a/eclipselabs.org/p/xtext-forms-integration/"&gt;Xtext forms integration&lt;/a&gt; and the OCL console which is part of the &lt;a href="http://www.eclipse.org/modeling/mdt/?project=ocl"&gt;OCL Examples&lt;/a&gt;. Here is a short  screen cast demonstrating the capabilities of the new REPL (and of course Xbase).&lt;/p&gt;


&lt;p&gt;&lt;iframe src="http://player.vimeo.com/video/17680833" frameborder="0" height="375" width="500"&gt;&lt;/iframe&gt;&lt;/p&gt;


&lt;p&gt;Xbase is currently in active development and does not yet supports all of its planned upcoming features. I think the REPL is a nice way to explore Xbase. Therefore I plan to make it publicly available with one of the next Xtext milestone releases. I am really excited about the possibilities that Xbase provides and have some great ideas for future versions of the REPL. So stay tuned&amp;#8230;&lt;/p&gt;

&lt;img src="http://feeds.feedburner.com/~r/sebastianbenzposterous/~4/8EDKqf02oo0" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://young-dusk-7034.heroku.com//introducing-an-interactive-programming-enviro</feedburner:origLink></entry>
  
</feed>

