The keying system of Diakonos has been refactored. What this means to the end user is the input line now supports the full range of keys. For example, keys like the Home and End keys actually produce multiple characters of input each, and so would not function properly in older versions. They are now are properly supported. As part of this new implementation, the notion of keying modes has been introduced. For now, there are only two hard-coded modes: “edit” and “input”. There is now an mkey configuration directive, used to bind a function to a key chord or sequence under a specific mode. The old directive, key is equivalent to mkey edit, and so acts as a shorthand. (more…)
With this release, I’d like to welcome Dominik Honnef (dominikh) to the Diakonos development team. He has already made several contributions, including some fixes which were cherry-picked from the master development branch and included in this version. His other contributions to date will be seen in the next version (0.8.11), and I think we can expect more from him in future versions.
Starting with this version, Ruby 1.8 support is officially dropped. Diakonos will now only run on Ruby 1.9. There’s no need to rush the upgrade on your systems; it is quite possible to have both 1.8 and 1.9 installed on the same system. Search the web for how to do this.
This release is primarily an internal refactor release. The only changes visible to the user are bug fixes. These include improvements to the installer, and vastly improved handling of X windows pasting. No more brutally slow terminal pasting!
The changes are listed in greater detail in the changelog:
Put interaction timer only on first stale session prompt, not any after that.
Changed all function names from camelCase to snake_case.
Added –help-dir switch to installer.
Fixed some issues with installer.
Changed delete_to_and_from to always assume given character is the left side character when matching pairs.
Fixed a line number display bug.
X windows pasting handled much better now.
Numerous internal refactorings and reorganizations.
Someone asked recently on the Ramaze mailing list:
Is Etanni a performance improvement over ERB? I’m just converting a site over to Ramaze and I’m wondering if it’d be worthwhile to convert my ERB tags to Etanni tags?
manveru promptly replied:
ERB is a lot larger, and does a lot more, but usually you don’t use that functionality. Etanni consists of a single regular expression substitution and should be faster than just about any other templating engine around, the whole core source of Etanni is around 4 lines.
So yes, i suggest you use Etanni instead of ERB
He also quickly wrote up some benchmarking code to substantiate his claims, and then enlisted me to solidify matters. I used his code as a base, and ran the same engine test code through better-benchmark. I put the benchmarking code up as a gist. The full results are embedded as a comment at the end of the gist. Here is a summary:
Template type
Etanni faster than ERb by
Just HTML (no templating)
38.3%
In-template loop with expression interpolation
20.7%
Ruby expression evaluation
43.9%
Based on the results of this little test we might conclude: If rendering speed is a concern, but you also want to just stick with your framework’s default engine to minimize gem dependencies, go with Ramaze.
On account of the recent Twitter reply system fiasco (see Twitter blog entries 1, 2, 3, 4 and related backlash spewed across the Internet),
I recently joined FriendFeed on recommendation by Jaykul. It didn’t take long for me to be really impressed with this service, and for Twitter to look pretty rinky-dink in comparison.
If you just want a basic short message service with almost no frills, then sure, Twitter fits the bill. But if you’re going to be using your communications service a lot, I think you might be pleasantly surprised, like I am, by all the great things FriendFeed is and does. The following points may not provide enough justification for you to join FriendFeed (or completely switch over), but it is for me.
Ramaze 2009.05 has been released. This marks a new, brighter era in the Ramaze world.
Innate
For those of you that have not been following, manveru (Ramaze lead dev) had been brewing a new web framework core called Innate since the middle of last year. As of today, Innate is pretty much done, and only sees minor updates. Innate has its own repository on github, where you can find a detailed README. Innate is built on top of Rack, the “web framework framework”, and acts as the core for Ramaze as of this Ramaze release.
Upgrade carefully
Because of this big change, Ramaze applications built with Ramaze 2009.03 or prior need non-trivial effort to port to 2009.05. As such, proceed with caution when upgrading your gem, especially on production servers. (more…)
Version 0.8.8 of Diakonos is now available. This release delivers several new features, and also brings about a big change…
No more gem
Beginning with this release, I am doing something radical: I am not releasing Diakonos as a Ruby gem. While that may seem strange to some, I think the move is not only justified, but better for Diakonos. (more…)
Version 0.8.7 of Diakonos is now available. Install by gem install diakonos. This version brings several new features and more bug fixes.
strip_trailing_whitespace_on_save
A strip_trailing_whitespace_on_save setting was added, defaulting to true. I’ve joined the camp of those who believe that trailing whitespace doesn’t belong in source control repositories (due to diff false positives).
Sessions
I’ve added sessions to Diakonos, and use them all the time now. Name your session by starting diakonos with a -s option:
diakonos -s my-website
The default configuration will show the session name in the bottom right. If you close Diakonos and reopen it with the same session name, it will reopen all the same files as were open when you closed it.
If you open Diakonos without a session name, it will still maintain an anonymous session until you quit. If Diakonos or your computer should crash during your session, you can start up Diakonos and it will prompt you to restore any sessions that were not closed gracefully.
Grep as you type
The previous release of Diakonos saw the inclusion of “find as you type”. This version provides grep as you type. Behold the coolness via this mini screencast:
delete_to
Being forced to use vi on occasion at work, I’ve become acquainted with at least one neat thing: You can press “dt” in vi to “delete till”. So I brought this functionality over to Diakonos. Type Ctrl-D-T, " to change this:
some_method( "here is a string", 3 )
to this:
some_method( "here is a ", 3 )
Type Ctrl-D-I, " to change this:
some_method( "here is a string", 3 )
to this:
some_method( "", 3 )
custom.conf
The default diakonos.conf configuration file now has an include custom.conf directive. This lets you keep your custom Diakonos configurations in ~/.diakonos/custom.conf while allowing you to regularly upgrade diakonos.conf with each new Diakonos version.
Ruby 1.9 compatibility
Version 0.8.7 marks the first version of Diakonos that can run under Ruby 1.9. Diakonos 0.8.7 will also run under Ruby 1.8.6. Please be advised that I am tentatively planning on dropping Ruby 1.8.x support beginning with the next Diakonos version.
Ramaze 2009.02 has just been released. There are just a few changes since 2009.01:
Redirection within https fixed.
flash.delete now fully deletes from flash.
Subclass controllers now properly inherit the template engine of the parent controller class.
Ruby 1.9 compatibility improved.
manveru has always been conscientious about Ruby 1.9 compatibility in Ramaze (indeed, in all his projects), so Ramaze had already been considered 1.9-compatible for some time. With the recent release of Ruby 1.9.1, though, a fresh problem crawled out of the woodwork. This release addresses the issue; see the mailing list thread for details.
Contributions to this release came from the following people (listed alphabetically):
Andreas Karlsson (jeltz)
Michael Fellinger (manveru)
(Pistos)
Riku Raisaenen (rikur)
Sean Lai
Install or update Ramaze with
gem install ramaze
As usual, we’d love to hear from long-time users and newbies alike. Stop by and say hello in our IRC channel (#ramaze on Freenode), or ask questions on our mailing list.
And don’t forget that the next generation of Ramaze, with an “Innate” core, is on the horizon, with several features and improvements. In the mean time, enjoy this release!