January 18th, 2009 — General, Releases, Updates
Thanks to the cold and snowy New England winter this year, I’ve been able to devote quite a bit of time to getting Mack to run on Ruby 1.9, so with that said, here’s the 0.8.3 release of Mack, featuring… TADA… Ruby 1.9!! Of course there are a few other features and improvements in this release. Here’s a quick run down:
Ruby 1.9
The big one. Mack runs very well on Ruby 1.9, unfortunately I can’t say the same thing about some other frameworks. I’ve had some run ins with DataMapper on 1.9, but I’m sure those will be ironed out shortly.
A few weeks ago I announced I was working on getting Ruby 1.9 support for all my gems and libraries. I started out with Configatron, then upgraded Cachetastic and Genosaurus. Now Mack is 1.9 compatible. When I made the announcement the guys at RailsEnvy picked up on it and said that I made a call to arms to the community to pick up 1.9 support. Now granted, I didn’t actually say those words, but I think the intent was there, so I’m going to now officially say those words. This is a ‘call to arms’ to the Ruby community to upgrade their gems, plugins, libraries, frameworks, etc… to work on Ruby 1.9. I’ve done it, and I can tell you, it’s not that tough. Just use multiruby, and you’re off and running.
ActiveSupport In, Facets Out
What with the world getting smaller these days, well, at least the world of Ruby web frameworks. A lot of great work is going into refactoring ActiveSupport and making it faster, better, and smaller. Because of that and the fact that every time a new release of Facets comes out it breaks a whole lot of stuff, I’ve decided to use ActiveSupport as the basis of the mack-facets gem. So basically mack-facets is just ActiveSupport with a few more enhancements.
JavaScript Effects
Thanks to the tireless efforts of Gerardo Pis-Lopez, mack-javascript, has been upgraded to add helpers methods for effects for both Prototype/Scriptaculous and jQuery. Thank you to Gerardo for the much needed upgraded to mack-javascript.
Upgrades
Mack has been upgraded to use Rack 0.9.1, DataMapper 0.9.9, and a few other smaller gems.
Changelog:
- [#243] Upgraded to Rack 0.9.1
- [#242] Upgraded to DataMapper 0.9.9
- [#241] Removed dependency on Facets
- [#239] Add do_sqlite3 to gems.rb
- [#166] Effects for mack-javascript
- [#133] Added Form Builders
- [#22] Ruby 1.9 Support
- gem: rack 0.9.1
- gem: rspec 1.1.12
- gem: configatron 2.2.2
- gem: cachetastic 2.1.2
- gem: data_mapper 0.9.9
- gem: addressable 2.0.1
- gem: extlib 0.9.9
January 1st, 2009 — General, News, Updates
Happy New Year everyone!
With the help of the absolutely amazing multiruby library and an edge version of rspec from GitHub, the latest version of Configatron now supports JRuby 1.1.6 and Ruby 1.9.1rc1. There are no other functional changes to the library, so it’s a full drop in replacement for vesion 2.1.6.
I highly encourage everyone to checkout multiruby and start upgrading their libraries so we can all move to 1.9 quicker, which means more speed and more power. Once we’re all in 1.9 land we can really make use of some of the amazing features it provides.
Anyway, I’ll be working on upgrading all my libraries and applications to work on 1.8 and 1.9, and hopefully JRuby, over the next couple of months. So be on the look out for a new versions of Cachetastic, Genosaurus [update: Genosaurus already works with 1.9 and JRuby. Hoorah!], and, of course, Mack.
December 23rd, 2008 — General, News
For all those of you who have missed it, today it was announced that Merb will be discontinued and merged into Rails 3 sometime by the end of next year:
https://weblog.rubyonrails.org/2008/12/23/merb-gets-merged-into-rails-3
What does this mean for Mack and other alternate frameworks? Well a lot, and nothing, all at the same time. I personally, am not pro the merge. Merb was the biggest the alternative to Rails out there. This has been a problem for us smaller frameworks in that it was hard to get a fold hold into the alternative to Rails marketshare that Merb had a hold on. So with Merb going away, why aren’t happy that Mack has the opportunity to become the big alternative to Rails?
Well, the answer to that question is simple. Innovation and competition. With Merb becoming as big as it was becoming it was forcing Rails to become a better framework. It also made the other alternative frameworks, such as Mack, to be better frameworks as well. Mack has always strived to be a great hybrid of all the frameworks out there. It has strived to provide the best of all those worlds. If all those worlds merge together, what space is left for something like Mack? Mack, and others, could end up being no different than Rarb (Rails + Merb), and then where is the innovation?
If this was the two biggest cable companies or banks merging the government would be screaming monoply. While I’m not saying that, I do feel that this certainly will have an impact on innovation, an impact that only a good healthy competition can bring. Now, please don’t get me wrong, I think Rarb will definitely be innovative. It should be as both Rails and Merb independently have done some amazing things, and I hope that they continue to do so.
So what does the future hold for Mack with this news? Business as usual. Mack will continue to try and be innovative. It will try to make your life a little easier as a developer, and make developing portals and distributed applications easy and fun. Hopefully, Mack will fill the void that will be left by Merb and more people will pick it up as a mature web framework. Hopefully, that will do what Merb once did, force Rails (or rather Rarb), to be more innovative. Hopefully, it will become the alternative that will create another web framework to be innovate to knock it down, and so on…
How do you feel? Are you happy? Are you sad? Are you indifferent? I’d love to hear what you think.
November 30th, 2008 — General, Releases, Updates
Hey there folks, sorry for the long wait for this release, but it’s here. It’s been a long November for yours truly. I’ve had to find a new job. I’ve had pneumonia. We, at least in America, have celebrated Thanksgiving. And, of course, who can forget RubyConf 2008?
So with that said, what’s in 0.8.2? Honestly, not a whole lot. There are a couple of bug fixes, a button_to_remote (think submit_to_remote in Rails) helper, and deferred routes. More on deferred routes in a moment, as it’s actually a pretty cool feature that only Mack and Merb share. And finally there is bundled gems.
Bundled Gems
What do I mean I say ‘bundled gems’? Well, because of the rather large number of gems that get installed with Mack, and because of some gem version dependency issues, Mack is now bundling it’s third party dependency gems inside itself. For example, mack-facets used to rely on the gems ‘facets’ and ‘english’. Those gems are now bundled inside the mack-facets gem and now longer need to be downloaded and installed by end users. This should make installing Mack super easy. It should also make dealing with having multiple versions of Mack installed on your system easier to deal with and maintain.
Deferred? Routes
So what are deferred routes? Ezra wrote a really great write up back in April. The idea is simple, with newer web servers such as Thin and Ebb, you can tell them to spawn a new thread to handle particular requests, such as long running processes like file uploads. This can really help speed things up as server can process regular requests using an event machine model, which is very fast, but can be really slow and block the server for longer processes. Now those processes can spawn into their own threads and not block the server.
In Mack 0.8.2 you can mark your routes with a deferred? => true option which will trigger this behavior. It’s much more advanced than the similar feature that can be found in Merb, which requires a separate configuration for your deferred actions, and the urls have to be ‘hard coded’. Mack let’s you use all the dynamic power of your routes, like you would want to. It’s just another option on the route itself. For a great tutorial on using deferred routes, check out the following page on www.mackery.com:
https://www.mackery.com/routing/deferred_routes
Upgraded Dependencies
A few gems have been upgraded as part of this release, the big ones include DataMapper to 0.9.7, ActiveRecord to 2.2.2, and Haml to 2.0.4.
Changelog:
- [#237] Fixed render :rjs throws errors
- [#236] Upgraded to ActiveRecord 2.2.2
- [#235] Upgraded to DataMapper 0.9.7
- [#230] Upgraded to facets 2.4.5
- [#229] Upgraded to english 0.3.1
- [#227] Removed WEBrick logging
- [#226] Bundled gems.
- [#225] Removed dependency on Thin
- [#223] Fixed mackery console fails
- [#148] Added button_to_remote helper method.
- [#16] Added deferred? routes.
- gem: active_record 2.2.2
- gem: data_mapper 0.9.7
- gem: addressable 2.0.0
- gem: facets 2.4.5
- gem: english 0.3.1
- gem: rspec 1.1.11
- gem: haml 2.0.4
November 29th, 2008 — General
Confreaks has recently published the videos of all the presentations from this year’’s RubyConf, including the presentation yours truly did on ‘Building Distributed Applications’.
https://rubyconf2008.confreaks.com/building-distributed-applications.html
There are plenty of other great talks on the site, so sit back, make some popcorn, and enjoy some of the wonderful talks that were on offer down in Florida this year.