<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"
  xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd">
  <channel>
    <title>Joao Pedrosa's Blog</title>
    <link>http://www.deze9.com/jp/blog/</link>
    <description>*-* Necessity is the Mother of Invention. Initiative is the Father. :-) *-*</description>
    <pubDate>Fri, 25 Jul 2008 04:13:17 -0000</pubDate>
    <item>
      <title>Continuing the work on NetBeans support for my custom Ruby environment</title>
      <link>http://www.deze9.com/jp/blog/post?p=continuing-the-work-on-netbeans-support-for-my</link>
      <description>For days I've been working with NetBeans. First I created the Ruby Tenjin support as mentioned in the previous article. Then I tunned it a bit to work a little better. The next day I created a new module whose only purpose thus far has been to add other (5) file extensions I normally use with Ruby, to the mime type handling of Ruby. After that, it was time to create a theme that mimics the one I currently use in my custom text editor for Ruby programming.
&lt;p&gt;&lt;/p&gt;
Speaking of which, a few weeks ago I had already created a theme for NetBeans to use the colors I wanted, but it was a hardcoded installation routine. But I saved it for later.
&lt;p&gt;&lt;/p&gt;
&lt;img src=&quot;/jp/wiki/img?q=blog_screenshots/netbeans_vermelhou.png&quot; /&gt;
&lt;p&gt;&lt;/p&gt;
I didn't succeed with installing the theme I had created anymore as NetBeans seemed to be changed someway after I created the theme, considering that I'm using the latest development versions of NetBeans. Not to mention that it was a shameful way of installing it.
&lt;p&gt;&lt;/p&gt;
I kept digging trying to find an approach for creating/installing the theme. Therefore, soon I tried reusing one of the existing themes as a model for my own. There's a thorough theme called Aloha that tries to mimic the colors of the famous TextMate editor (on the Mac), and I used it for my own. At first I wanted one theme with the background color being standard white, as I figured the changes would be less this way. But as Aloha has an almost black background, it also could help me with finding the things I needed to change due to the larger differences.
&lt;p&gt;&lt;/p&gt;
In the process, I removed many plugins from NetBeans, though I could have gone further. I kept 18, of which 2 were mine. With the new theme plugin I was developing, it would reach 19. I did this because I would need to restart NetBeans several times to test for my changes in the theme, and it can be a painful experience to do this on and on, with plugins trying to do their jobs in the process (like the Task list). I found it enjoyable to keep just the plugins I really needed. Pretty cool this modular approach of NetBeans.
&lt;p&gt;&lt;/p&gt;
So, these are the plugins I've already created for NetBeans:
&lt;ul&gt;&lt;li&gt;Ruby Tenjin&lt;/li&gt;&lt;li&gt;Ruby file extensions&lt;/li&gt;&lt;li&gt;Ruby theme called Vermelhou. :-)&lt;/li&gt;&lt;/ul&gt;
Why Vermelhou? Because this term is quite uncommon and probably inexistent in the dictionaries, but it's used in a music that's about a carnival group that has vermelho or &quot;red&quot; as its color and this music really uses &quot;red-ish&quot; terms, which have everything to do with Ruby as well, right?
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Lyrics: &lt;a href=&quot;http://www.lyricsmode.com/lyrics/f/fafa_de_belem/vermelho.html&quot;&gt;http://www.lyricsmode.com/lyrics/f/fafa_de_belem/vermelho.html&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Music - Fafá de Belém - Vermelho: &lt;a href=&quot;http://youtube.com/watch?v=2ccuuPASJxU&quot;&gt;http://youtube.com/watch?v=2ccuuPASJxU&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;object width=&quot;425&quot; height=&quot;344&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/2ccuuPASJxU&amp;hl=en&amp;fs=1&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&lt;/param&gt;&lt;embed src=&quot;http://www.youtube.com/v/2ccuuPASJxU&amp;hl=en&amp;fs=1&quot; type=&quot;application/x-shockwave-flash&quot; allowfullscreen=&quot;true&quot; width=&quot;425&quot; height=&quot;344&quot;&gt;&lt;/embed&gt;&lt;/object&gt;
&lt;p&gt;&lt;/p&gt;
I plan on creating more support in NetBeans for the way I work.</description>
      <pubDate>Wed, 23 Jul 2008 00:00:00 -0000</pubDate>
      <dc:date>2008-07-23T00:00:00Z</dc:date>
    </item>
    <item>
      <title>My delving into writing a NetBeans module</title>
      <link>http://www.deze9.com/jp/blog/post?p=my-delving-into-writing-a-netbeans-module</link>
      <description>So, NetBeans is this IDE many folks have tried or read about, but haven't really felt the peer pressure to use. See some of the new coming features for instance:
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://blogs.sun.com/tor/entry/multilingual_netbeans&quot;&gt;http://blogs.sun.com/tor/entry/multilingual_netbeans&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
It's written in Java and is very modularized, having a decade of development history already. It has a very active development team, and as it's open source, I could see the guys committing their stuff every day in large-enough quantities:
dewd@rubynho:~/in_motion/netbeans/hg/main$ hg log --limit 1000 | grep 'Thu Jul 17' | wc &lt;br /&gt;
    258    1806   11352

&lt;p&gt;&lt;/p&gt;
Some of these commits are &quot;meta-commits&quot; of things like &quot;automatic merging&quot; as the development uses hg (Mercurial is a distributed VCS). So the &quot;real&quot; commits made locally or remotely on 'Thu Jul 17' should have been below this number (258).
&lt;p&gt;&lt;/p&gt;
&lt;img src=&quot;/jp/wiki/img?q=blog_screenshots/netbeans_tenjin.png&quot; /&gt;
&lt;p&gt;&lt;/p&gt;
The module I wanted for it was support for another kind of template format. Instead of using the more standard &quot;ERuby&quot; and its &amp;lt;%= 'Hello' %&amp;gt; syntax, I wanted to use another format that I've come to love and use called Tenjin, that features a more XML-ish, Ruby-ish, supporting easier escaping of HTML content, which is faster even by being quite simple and by using Ruby itself for doing most of the job (so no extra C module or some such).
&lt;p&gt;&lt;/p&gt;
Tenjin uses for instance &amp;lt;?rb ?&amp;gt; (Ruby block) or #{} (expression) or ${} (escaped expression).
&lt;p&gt;&lt;/p&gt;
As NetBeans supports ERuby (RHTML) already, the idea was to copy this module into a new one and to modify it for Tenjin.
&lt;p&gt;&lt;/p&gt;
Thus it started, my fighting with Java and with NetBeans, having left the Java-land for so long and knowing zilch about NetBeans extensions development.
&lt;p&gt;&lt;/p&gt;
First the pros: these Java IDEs are advanced enough to help one with finding the obvious errors even before compiling the code. Also, NetBeans helped me handle some of the &quot;bureaucracy&quot; of setting dependencies for my module a good deal, once I got to know it a bit more. Plus, the foundations that have been created for NetBeans like a new Lexer with support for embedding languages and easier programming have made things quite enjoyable indeed. More, NetBeans is quite easy to compile (just increase the Heap memory available to the Ant builder; Ant being well integrated makes new modules developments well supported).
&lt;p&gt;&lt;/p&gt;
Now the cons: 
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Java already has some particularities of &quot;safe programming&quot; like &quot;final&quot; methods, classes, &quot;private&quot; ones, &quot;protected&quot; others... With unpublished APIs, NetBeans modules go a little further than this and have &quot;friend dependencies&quot; where the modules can tell which other modules can use their unpublished APIs (also APIs under development). To make a long story short, this is boring!&lt;/li&gt;
&lt;li&gt;During the setting of my new module, for a class, I couldn't get past the &quot;I'm overriding these two methods already&quot; and the editor saying both that I wasn't overriding any supertype's methods and when I removed the '@override' command it offered to override them. It was copied/pasted code and I checked for the methods, they were there, they were protected, they weren't particularly available to &quot;non-friend dependencies&quot;, but there was a workaround for using &quot;non-friend dependencies&quot;. I removed this class after hours and hours of looking at it, digging stuff, and so on. It was a &quot;RubyTenjinOption&quot; one or something, so it was not crucial at this point.&lt;/li&gt;
&lt;li&gt;Whenever I use the unpublished APIs in my module, I have to create a version-specific dependency to these other modules, meaning that just a bump in a number from version 1.86 to perhaps 1.87 could break my module on future installations of the IDE.&lt;/li&gt;
&lt;li&gt;Somehow I couldn't get a unit test going for the RubyTenjinLexer I had to create. As it was a copy/paste from the ERuby one, and it was quite simple by reusing a generalized testing function (something &quot;dump&quot; was its &quot;job&quot;), I just needed to get the dependencies set, but couldn't for one of them (which went into the other's package &quot;.test&quot; subpackage).&lt;/li&gt;&lt;/ul&gt;
Then to the rounding of this short article. :-) 
&lt;p&gt;&lt;/p&gt;
When it came time to figuring out the &quot;nextToken&quot; method I needed to edit to convert from ERuby to Tenjin, which was a token scanner which got a token at a time, I looked and looked at the method, trying to figure out the external calls and what it did. I even thought of recreating some of this in pure Ruby, making it easier to test things. But even though I started the Ruby implementation of some of this, it just helped me with understanding the Java one more.
&lt;p&gt;&lt;/p&gt;
When I was comfortable enough with it, I started editing it. I got the first 3 tries slightly wrong (defining what would have been the next token to the current one). I must say that the ERuby tokenizer was slightly harder to do and I'm glad someone else did it.
&lt;p&gt;&lt;/p&gt;
This is just the first module that I've &quot;created&quot; for NetBeans. Hopefully as the new NetBeans APIs stabilize and get documented, things will be much easier for anyone to extend it. Nonetheless, I'm glad NetBeans exists as something like it was rather needed.
&lt;p&gt;&lt;/p&gt;
I have a collection of links should anyone want to know more about it:
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://www.deze9.com/jp/wiki/?p=netbeans&quot;&gt;http://www.deze9.com/jp/wiki/?p=netbeans&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;</description>
      <pubDate>Sun, 20 Jul 2008 00:00:00 -0000</pubDate>
      <dc:date>2008-07-20T00:00:00Z</dc:date>
    </item>
    <item>
      <title>My experience thus far with ANTLR</title>
      <link>http://www.deze9.com/jp/blog/post?p=my-experience-thus-far-with-antlr</link>
      <description>I spent several hours playing with its development environment (ANTLRWorks) and decided to create a grammar to parse the Windows INI file format, which was simple enough to get me started. As far as I care about it though.
&lt;p&gt;&lt;/p&gt;
I don't know why, but ANTLRWorks and probably other Java Swing applications can have redrawing problem on my Linux system. It could have to do with the JVM or something:
java version &quot;1.6.0_06&quot;
Java(TM) SE Runtime Environment (build 1.6.0_06-b02)
Java HotSpot(TM) Client VM (build 10.0-b22, mixed mode, sharing)
&lt;p&gt;&lt;/p&gt;
That's just the icing, as they say.
&lt;p&gt;&lt;/p&gt;
ANTLR has its own non-Regex lexer, and as I could see from some browsing, it has its legion of fans. Folks seem to like it because they can't shoot themselves in the foot too badly with it. I missed some Regex for this simple parsing, though. I found it a bit hard to make the format flexible for &quot;any string&quot; with it.
&lt;p&gt;&lt;/p&gt;
At times I got quite enthused when I could get the AST going, and as I was getting acquainted with ANTLR still, it was fun, overall.
&lt;p&gt;&lt;/p&gt;
Then I decided to allow for &quot;empty&quot; INI sections (without any key/value items), but this made things get out of control. I was able to get the empty sections on the AST, but somehow items started appearing repeated for several sections (even the empty ones) and other issues started appearing as well.
&lt;p&gt;&lt;/p&gt;
I'm not sure anymore I would want to use ANTLR for something too simple, or even for something that doesn't fit its domain too well. Sure, its error reporting is awesome, even for development. But given how hard it can be to get it going, and the expertise it might require, I'd rather use it when it was the &quot;right tool for the right job.&quot;
&lt;p&gt;&lt;/p&gt;
No wonder such tools are not very popular as far as most developers are concerned.
&lt;p&gt;&lt;/p&gt;
On the plus side, I found it cool to start prototyping a grammar and learning ANTLR using its development environment ANTLRWorks. Perhaps this is one of its strongest selling points.</description>
      <pubDate>Wed, 16 Jul 2008 00:00:00 -0000</pubDate>
      <dc:date>2008-07-16T00:00:00Z</dc:date>
    </item>
    <item>
      <title>Holy Cow! It looks like Ruby-GNOME2 has started to work with Ruby 1.9 also</title>
      <link>http://www.deze9.com/jp/blog/post?p=holy-cow-it-looks-like-ruby-gnome2-has-started-to</link>
      <description>I gave it a try a few days ago and ran across what seemed like a major incompatibility with Ruby 1.9. But since Ruby 1.9 has been under constant work, some of the changes might have fixed it to work with Ruby-GNOME2 now.
&lt;p&gt;&lt;/p&gt;
Cool.
&lt;p&gt;&lt;/p&gt;
This means that I'm closer and closer to dumping Ruby 1.8 altogether.</description>
      <pubDate>Thu, 22 May 2008 00:00:00 -0000</pubDate>
      <dc:date>2008-05-22T00:00:00Z</dc:date>
    </item>
    <item>
      <title>Yay! I'm on Ruby 1.9 as far as Web Pages go. :-)</title>
      <link>http://www.deze9.com/jp/blog/post?p=yay-im-on-ruby-19-as-far-as-web-pages-go</link>
      <description>Since 10 minutes ago, even this server which hosts this blog and several other applications is using Ruby 1.9.
&lt;p&gt;&lt;/p&gt;
I call your attention to the handy features/changes as in the following transcription of a recent Matz presentation at Google:
&lt;ul&gt;&lt;li&gt;Ruby 1.9 -- talk by &quot;Matz&quot; Matsumoto 2/22/08 - &lt;a href=&quot;http://holtsblog.blogspot.com/2008/02/ruby-19-talk-by-matz-matsumoto-22208.html&quot;&gt;http://holtsblog.blogspot.com/2008/02/ruby-19-talk-by-matz-matsumoto-22208.html&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
I've found that the memory usage in Ruby 1.9 has been quite a deal more stabilized than in the Ruby 1.8 MRI version, as mentioned by Matz himself. Now Ruby 1.9 uses a little less memory and is more constant in its allocation of the memory, which can mean that the memory should stay at a minimum more often.
&lt;p&gt;&lt;/p&gt;
Also, while the speed improvements are not revolutionary in terms of application performance given the all the inefficiencies in the code and so on, Ruby 1.9 has given me 20%, 30% or more of improvements depending on the &quot;benchmarks&quot; (which have been informal in my tests).
&lt;p&gt;&lt;/p&gt;
I use the following libraries with Ruby 1.9 which are working for me already:
&lt;ul&gt;&lt;li&gt;Tenjin&lt;/li&gt;&lt;li&gt;Thin&lt;/li&gt;&lt;li&gt;Ruby-pg (new postgres module compiled from trunk as of now, but it could work with an available gem)&lt;/li&gt;&lt;/ul&gt;
I still have more work to do with making use of the PDF-Writer one, which doesn't seem to be supported in Ruby 1.9 yet.
&lt;p&gt;&lt;/p&gt;
I happened to come across some kind of incompatibility in file reading, but it was just once in serving the Prototype JS file which doesn't have a spare line at the end, and for some reason it caused my Web Framework to truncate it. I just added one spare line at the end of it and then it worked. And when I tried to create a reproducible example, I couldn't.
&lt;p&gt;&lt;/p&gt;
Why Ruby 1.9? I was bored with the state of the Ruby 1.8. For a moment a flirted with JRuby, and then decided that I like Ruby 1.9's improvements more. And if it means I'm &quot;stuck&quot; with Linux systems, given Windows is such an issue for Ruby support, so be it. This goes as far as Web Pages are concerned, though. :P</description>
      <pubDate>Thu, 22 May 2008 00:00:00 -0000</pubDate>
      <dc:date>2008-05-22T00:00:00Z</dc:date>
    </item>
    <item>
      <title>Somebody asked over at JoS: &quot;Are other professions this self-involved?&quot;</title>
      <link>http://www.deze9.com/jp/blog/post?p=somebody-asked-over-at-jos-are-other-professions</link>
      <description>The thread is at &lt;a href=&quot;http://discuss.joelonsoftware.com/default.asp?joel.3.592501.5&quot;&gt;http://discuss.joelonsoftware.com/default.asp?joel.3.592501.5&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;
Here's my answer:
&lt;p&gt;&lt;/p&gt;
Some might say IT is about working with logic. I'd say IT involves a great deal of reasoning. The reasoning involves communication, reflection, experimentation... IT can both produce a lot of content and consume a lot of content, in many forms, even comics. :-) IT kind of requires a certain level of interest from the participants, and some intelligence helps people in maintaining the interest for longer periods which makes the IT experience, be it in blogging, working, discovery... more exciting to the participants. IT is a new age kind of industry. I was watching today on the National Geographic channel the evolution of the communication up to the discovery of the optical fiber, which is the basis of the Internet. This is all so new, and yet, our lives are so short. :-)
&lt;p&gt;&lt;/p&gt;
IT can be more recursive than other industries. Whatever that means. :P
&lt;p&gt;&lt;/p&gt;
IT is renewing itself all the time. IT knowledge can become a little obsolete fast, but the tools of the trade can lose their prestige much faster than the knowledge of course. At the same time, IT requires knowledge from its participants and due to the evolution of things, it falls short of teaching people beyond some minimum knowledge. After school, people start specializing for the job at hand. The  specialization each one does is just one in a big universe of specializations. This creates some tunnel vision. And yet, each job can vary greatly from one another, for the same person. Many jobs are not stable.
&lt;p&gt;&lt;/p&gt;
What other industry is like IT? None.
&lt;p&gt;&lt;/p&gt;
That's why analogies fall short when comparing apples and oranges of professions and industries.</description>
      <pubDate>Fri, 08 Feb 2008 00:00:00 -0000</pubDate>
      <dc:date>2008-02-08T00:00:00Z</dc:date>
    </item>
    <item>
      <title>Rubinius: With great power comes great responsibility.</title>
      <link>http://www.deze9.com/jp/blog/post?p=rubinius-with-great-power-comes-great</link>
      <description>Somebody else was wondering about Rubinius and MRI and their future at:
&lt;ul&gt;&lt;li&gt;What will Matz do? - &lt;a href=&quot;http://matt.blogs.it/entries/00002788.html&quot;&gt;http://matt.blogs.it/entries/00002788.html&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
The question was: &quot;Could he make the switch and adopt Rubinius as the new MVM?&quot;
&lt;p&gt;&lt;/p&gt;
&lt;b&gt;With great power comes great responsibility.&lt;/b&gt;
&lt;p&gt;&lt;/p&gt;
Maintaining a development tool, like a programming language with its core libraries and even other important libraries or standard libraries, can be quite a challenge. Add to it conferences, books, community, support, decisions and more decisions, it's not a thing for the weak.
&lt;p&gt;&lt;/p&gt;
Matz and MRI have proven themselves up till now, even though there are barriers like actual language (Japanese), geographic (Japan), and even cultural, that impose some extra difficulty.
&lt;p&gt;&lt;/p&gt;
It's my understanding that some things in life can be quite hard to understand, unless you have done them yourself. It's easy to judge and to want things to improve. It's much harder to bite the bullet and to do the right things for years, even decades, with little recognition and other kinds of feedbacks.
&lt;p&gt;&lt;/p&gt;
Rubinius is just starting out. It needs more than just a good philosophy, it needs much work, probably for years to come. Think decades even! On top of that, it shouldn't screw with those guys who made Ruby what it has become. Ruby is not just a Web development platform, even though it works great for it. Ruby was a way of creating higher level programs than C allowed. Ruby was about trying to free developers of much of the low level of C programming.
&lt;p&gt;&lt;/p&gt;
Rubinius is in its very early days. When users can use Rubinius on Linux, Windows, Cygwin, MacOSX, FreeBSD, and more, it will be taken more serious as a replacement for MRI. Does Rubinius want great power? Then when tens of thousands of users start using it, Rubinius will have to deal with great responsibility as well.
&lt;p&gt;&lt;/p&gt;
For the time being, I want to see Rubinius at least working on as many platforms as it can. Rubinius should not be just a &quot;PHP killer&quot; if it wants to be a general purpose tool and worth of displacing MRI as the main Ruby implementation (outside of things like Java and .NET, that is).
&lt;p&gt;&lt;/p&gt;
In general, MRI has a great lead. Rubinius developers need motivation to close the gap, but they will need time as well.</description>
      <pubDate>Sun, 03 Feb 2008 00:00:00 -0000</pubDate>
      <dc:date>2008-02-03T00:00:00Z</dc:date>
    </item>
    <item>
      <title>Why functional programming matters? Asks Haskell's mastermind</title>
      <link>http://www.deze9.com/jp/blog/post?p=why-functional-programming-matters-asks-haskells</link>
      <description>And you can answer it at:
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://groups.google.com/group/fa.haskell/browse_thread/thread/40221a24b1f31422/9e5cd81e0bfa89d0?lnk=raot#9e5cd81e0bfa89d0&quot;&gt;http://groups.google.com/group/fa.haskell/browse_thread/thread/40221a24b1f31422/9e5cd81e0bfa89d0?lnk=raot#9e5cd81e0bfa89d0&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
The answers are pretty uninspiring to me, all in all!
&lt;p&gt;&lt;/p&gt;
Meanwhile, here's the review done by someone else on a practical Ruby book:
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Practical Ruby Projects - &lt;a href=&quot;http://on-ruby.blogspot.com/2008/01/practical-ruby-projects-review.html&quot;&gt;http://on-ruby.blogspot.com/2008/01/practical-ruby-projects-review.html&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
Much more inspiring, I'd say. :-)
&lt;p&gt;&lt;/p&gt;
If you are up to it, see the videos of Dave Thomas and Kent Beck on InfoQ also:
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Pragmatic Dave on Passion, Skill and 'Having A Blast' - &lt;a href=&quot;http://www.infoq.com/interviews/dave-thomas-agile-passion&quot;&gt;http://www.infoq.com/interviews/dave-thomas-agile-passion&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Kent Beck on Implementation Patterns - &lt;a href=&quot;http://www.infoq.com/interviews/beck-implementation-patterns&quot;&gt;http://www.infoq.com/interviews/beck-implementation-patterns&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
Dave Thomas is over fifty! He has done nicely so far and passed the baton to a bunch of younger  folks by means of training, teaching, supporting with software, documenting... But he is not a &quot;Ruby guy&quot;. :-) He mentions that he feels a little nervous when folks mention that they are like a &quot;Java guy&quot;. Programming languages come and go, the job markets come and go, and the tasks might demand different approaches. Being just a &quot;very focused on a technology kind of guy&quot; can be detrimental to the objectives and opportunities. And things change, rest assured. :-)
&lt;p&gt;&lt;/p&gt;
Lambda the Ultimate has a fun discussion including programming languages:
&lt;ul&gt;&lt;li&gt;Prediction for 2008 - &lt;a href=&quot;http://lambda-the-ultimate.org/node/2600&quot;&gt;http://lambda-the-ultimate.org/node/2600&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
Come what may, I say. :-)</description>
      <pubDate>Sat, 26 Jan 2008 00:00:00 -0000</pubDate>
      <dc:date>2008-01-26T00:00:00Z</dc:date>
    </item>
    <item>
      <title>I didn't know parsing could be such a hard job :-)</title>
      <link>http://www.deze9.com/jp/blog/post?p=i-didnt-know-parsing-could-be-such-a-hard-job</link>
      <description>I was trying to use Treetop to parse my Wiki syntax, and it made me realize how hard such a task could be. I think this particular syntax does not suit Treetop very well.
&lt;p&gt;&lt;/p&gt;
In the process I have just grown a little tired of trying to use Treetop to do any parsing job I could have. It's not always an easy task, but it somehow felt good when I used it to parse the subset of SQL I care about. Albeit now I see that things like possible left recursiveness, too flexible syntaxes (like &quot;
&lt;pre class=&quot;default&quot;&gt;&amp;lt;&amp;lt;EOS [...] EOS or &amp;lt;&amp;lt;any [...] any
&lt;/pre&gt;
&quot;), and other complexities can make it less fun.
&lt;p&gt;&lt;/p&gt;
For now, I am going to keep my hand-crafted parsers as they are tested in the field, and departing from them may cause incompatibilities and possibly other problems for me. :-)
&lt;p&gt;&lt;/p&gt;
Why, oh why? :-)</description>
      <pubDate>Thu, 24 Jan 2008 00:00:00 -0000</pubDate>
      <dc:date>2008-01-24T00:00:00Z</dc:date>
    </item>
    <item>
      <title>Having taken a look on rparsec and Ragel, I think I'm gonna resume my work on Treetop</title>
      <link>http://www.deze9.com/jp/blog/post?p=having-taken-a-look-on-rparsec-and-ragel-i-think</link>
      <description>&lt;a href=&quot;http://docs.codehaus.org/display/JPARSEC/rparsec+overview&quot;&gt;rparsec&lt;/a&gt; seemed too complex for me to grasp at a glance. &lt;a href=&quot;http://www.cs.queensu.ca/~thurston/ragel/&quot;&gt;Ragel&lt;/a&gt; seems by design less adequate than &lt;a href=&quot;http://treetop.rubyforge.org/&quot;&gt;Treetop&lt;/a&gt; for recursion.
&lt;p&gt;&lt;/p&gt;
They are all cool technologies. Each has some strong points, and in the hands of skilled people can be made to sing and dance all night long. :-)
&lt;p&gt;&lt;/p&gt;
But Treetop just feels too good to be true, and if I can make it to work, the simplifications will be worth the trouble. And in the end, I know I'll reach for Treetop in more occasions, as it's so easy to use. If I used something more complex, it would be used less often. For example, while starting a new parser manually is easy, the continued development is rather troublesome. Treetop on the other hand works at a higher level, giving an example to the &quot;keep it simple, sir&quot;. :-)
&lt;p&gt;&lt;/p&gt;
If Treetop despite being a little slower can help me with correctness, it's worth the trouble, definitely!
&lt;p&gt;&lt;/p&gt;
Thanks for Treetop, Nathan Sobo! He is the author.</description>
      <pubDate>Mon, 21 Jan 2008 00:00:00 -0000</pubDate>
      <dc:date>2008-01-21T00:00:00Z</dc:date>
    </item>
    <dc:date>2008-07-25T04:13:17.103405Z</dc:date>
  </channel>
</rss>