Posted in catalyst
Sun, 09 Jul 2006 02:36:00 GMT
A new major version of the Catalyst framework has just been released. Read about it on Digg; here are the latest results I've seen:
It actually got to 91 diggs at the top of the Digg homepage before a new article came along (I took screen shots in KDE too but the layout wasn't as nice as XP). From Jezmo's Digg comment, I learned that SomethingAwful (6th largest forum on the Internet) is using Catalyst to build Titan, a schema-compatible vBulletin replacement. Catalyst is also used by Dresdner Bank, IUseThis and EditGrid.
Marcus has an announcement on his blog and the change log is available, but I'll summarize the changes here:
New Features
- "ActionClass templates" which allow you to make extensible actions. The first of which is Catalyst::Action::RenderView, a more flexible replacement for the DefaultEnd plugin. Read more about this in Catalyst::Manual::Actions.
- "Chained actions" which allow you to have parent and child actions on a uri. For example in a uri like /page/43/revision/23/edit you could have one action handle /page/43 and another handle revision/23/edit with captures for 43, 23 and edit.
Enhancements
- Major documentation improvements including the Tutorial and Introduction parts of the Catalyst manual, reference API documentation and the Cookbook.
- More concise log info and new colors for the debug screen.
- Switch from Module::Pluggable::Fast to Module::Pluggable for more fine grain control over setup_components.
New Packaging
- The Catalyst distribution has been split into Catalyst::Runtime and Catalyst::Devel. Runtime contains the minimal parts for deployment while Devel includes helpers and tools. Thankfully install Catalyst in CPAN will install Catalyst::Runtime and there's no need to change the use Catalyst; lines in your App Classes.
Upgrade Gotchas
Catalyst::Engine::Apache FIRSTKEY error: I just upgraded from Catalyst 5.6902 and Catalyst::Engine::Apache 1.06. I didn't have a problem running 5.6902 and 1.06 but others had the generic problem below and previously upgraded to 1.07. The problem only appeared with 5.7000 and 1.06 for me. In any event, make sure you're running Catalyst::Engine::Apache 1.07.
[error] Caught exception in engine "Can't locate
object method "FIRSTKEY" via package "APR::Table" at
/path/to/site_perl/5.8.7/Catalyst/Engine/Apache.pm
line 65."
1 comment
Posted in strategy, ubuntu, apple
Thu, 06 Jul 2006 05:29:00 GMT
It's interesting to watch the evolution of Canonical Ubuntu. It started off by gaining popularity in the desktop space and now it's finally moving into the server space. Linux on the desktop has been a thorn in Linux's side for a while and Ubuntu seems to be the answer. Just recently a couple of people have moved from OS-X to Ubuntu causing quite a stir on Slashdot and Tim O'Reilly's blog. By winning the desktop, they win users that they can leverage to win the server space. If this strategy sounds familiar, it's the same one that Microsoft used to defeat Novell NetWare. Now that Ubuntu has entered Red Hat and SUSE's turf, it will be interesting to see if they respond with more user friendly desktop editions (I'd be happy for a Linux-version of Textmate). If so, the users will win.
6 comments
Posted in typo
Wed, 05 Jul 2006 18:59:00 GMT
Typo will automatically turn something like http://www.dev411.com in a comment into a link, however this is undesirable when you're using a dummy uri such as http://your.domain.com. To get around this, I use the HTML symbol for 'h' in http so I type:
http://your.domain.com
This is just a one-off solution in that it requires some manual checking of whether the uri is a real one or not. I use it when posting on other people's Typo blogs. I suppose this can be automated by checking if the uri returns a valid response but that may be overkill.
BTW, here's a HTML symbol table for reference.
2 comments
Posted in hacks, blogger, typo
Mon, 03 Jul 2006 02:37:00 GMT
I've been experimenting with Typo at the new Dev411 blog primarily to get around the serious performance problems I (and many others) have experienced on Blogger. I know they are working on this and I hope they get it under control soon, however I didn't want to wait for something that may or may not happen so I've moved everything over to http://www.dev411.com/blog/. Typo has some nice features include categories/tags and Live Search which shows you search results as you type. Of course, I may switch back to Blogger (or to another engine) at some point but I'm hoping I won't have to change again.
I'm running 2.6.0 which is the current stable version according to the website though many people are running code directly from the SVN trunk. I'll probably wait for 4.0 before upgrading which I've heard should be coming out soon. In the mean time I've made some changes from the default configuration:
- added table of contents to pages with multiple articles (index, category/tag, archives and search) described previously.
- renamed categories to tags. The trunk supports both categories and tags but 2.6.0 only has categories. I simply renamed categories to tags by editing routes.rb and content.rhtml for the category plugin. When 4.0 comes out, I'll use the separate categories and tags and the tag uris will stay the same.
- moved categories/tags from bottom of each post to top by editing articles_helper.rb and templates.
- removed articles from uri by editing routes.rb.
- added number of comments to Live Search AJAX results by editing views/live/search.rhtml.
- added blog name to HTML title for individual article pages by editing articles_controller.rb.
- added Blog Roll sidebar which is just a copy of the static sidebar plugin. It would be nice if you could use the same static plugin multiple times but copy/rename is easy enough.
Features I'd like to add:
- Navigation breadcrumbs
- More specific HTML page titles
- The anchor slider from the Modernist theme
- A logarithmic tag cloud; the trunk version is linear
- Ability to categorize tags similar to del.icio.us tag bundles; this is supposed to be doable now with acts_as_taggable
- A tag list that also has links to tags you use at del.icio.us and possibly other places
1 comment
Posted in typo, scriptaculous
Sat, 01 Jul 2006 23:41:00 GMT
I updated the Typo Themes Viewer with the following features:
- Lucid theme: No longer a drab gray :) The theme viewer currently uses a fluid layout for non-IE browsers and a fixed layout for IE since I ran into some issues using the fluid layout on IE. Even with the wider left and right margins, I can still get 6 thumbnails across on my 1400x1050 screen for easy viewing.
- Lightbox image viewer: The Scriptaculous Sortable effect has been removed and replaced with Lightbox (which relies on Scriptaculous). When you click on the thumbnail now a medium sized graphic will appear. Let me know how it works for you.
As before, I'm more than happy to add new themes as they become available. Just post a comment here with the uri(s).
The new look:
Using Lightbox:
On a final note, Lightbox 1.x allowed you to close the lightboxed image by clicking on it. In Lightbox 2.x, this has been disbled to allow the group feature to function. If you are only using single images or run separate copies of lightbox.js for singles and groups you can make the following mod to allow closing by clicking on the single lightboxed image:
// look for the following line:
objImageContainer.appendChild(objLightboxImage);
// then add this after:
objImageContainer.onclick
= function() { myLightbox.end(); return false; };
Thanks to Tyler Mulligan for this solution.
2 comments
Posted in prototype, ajax, dojo, mochikit
Fri, 30 Jun 2006 17:49:00 GMT
A little while ago I was looking at JSON and Catalyst::View::JSON (a server-side library to provide some JSON repsonse magic for Catalyst) and I discovered that AJAX libraries auto-eval JSON differently, Dojo looks in the response body and Prototype looks in the X-JSON header (read about X-JSON problems with IE 6). This got me thinking that there's no standard way for the server to tell what kind of AJAX library is making the request. Prototype sets the X-Requested-With and X-Prototype-Version as:
var requestHeaders =
['X-Requested-With', XMLHttpRequest',
'X-Prototype-Version', Prototype.Version,
For Dojo, some people are manually sending a request header along the lines of isDojo:true. MochiKit doesn't currently send an identifier.
I tend to prefer a bit more information such as the library version. Does it make sense for AJAX libraries to send a standard User-Agent along the lines of X-XMLHttpRequest-User-Agent (X-AJAX-User-Agent is shorter but may not be as correct; subsequent to the initial post, a discussion with Alex Russell generated the X-Ajax-Engine name which has been incorporated below). Something shorter is preferable but this is just an initial proposal. It would also remove the need for Prototype's separate X-Requested-With header since having X-Ajax-Engine set at all would indicate XMLHttpRequest. The format could follow the one established for User-Agent:
X-Ajax-Engine: <library_name>/<library_version>
This can be done manually with Dojo, MochiKit and Prototype as follows:
// in a Dojo.io.bind call:
headers: {
'X-Ajax-Engine':'Dojo/'+dojo.version
}
// for MochiKit:
req.setRequestHeader(
'X-Ajax-Engine',
'MochiKit/'+MochiKit.Async.VERSION
)
// in a Prototype AJAX.Request call:
requestHeaders: [
'X-Ajax-Engine',
'Prototype/'+Prototype.Version
]
Optional information could be added in parenthesis afterwards, e.g. Dojo Toolkit could include the edition name or something along the lines of "Custom Build" like (I'm not sure if other libraries have a reason to do this):
X-Ajax-Engine: Dojo/0.3.1 (BrowserIO)
If client libraries started using this or something similar, server-side identification could start (attempting to) depend on something that was standardized. Standardization can even be proposed as an addition to the W3C's XMLHttpRequest efforts. I think standardization would be great because it will probably happen eventually and for now it would make server-side identification more reliable.
UPDATE 1: Less than a week after I posted this, a related issue came up on the MochiKit Google Group involving adding a X-MochiKit-Version header to mimic X-Prototype-Version. I put in a word for standardization and after discussing this with Alex Russell (see below) posted back to the group. Seems like we may get a defacto standardization on X-Ajax-Engine which would be nice.
UPDATE 2: I spoke to Alex Russell of Dojo Toolkit about this and he thought this is a good idea. Apparently if you set sendTransport in dojo.io.bind, an identifier (but not version number) will get sent, however it seems not many people know about this. We discussed shorter names and Alex came up with X-Ajax-Engine. He mentioned he could bring this up at the OpenAjax Alliance.
5 comments
Posted in hacks, rails, typo
Mon, 26 Jun 2006 21:37:00 GMT
I've been using MediaWiki for a while and wanted its ability to auto-generate Table of contents for pages with multiple articles such as the homepage and the category pages. Typo is a Ruby on Rails app so you'll need to be somewhat familiar with it to make enhancments. I have this running on Typo 4.1.1, 4.0.0 r1188 and 2.6.0.
I came up with the following but it's still in the early stages:
Read more...
20 comments
Posted in hiring, mysql
Mon, 26 Jun 2006 21:36:00 GMT
I picked up a copy for Fortune Magazine's Secrets of Greatness: Teamwork! issue for the flight to YAPC::NA. There was an insightful article on MySQL. MySQL has 350 workers in 25 countries and 70% of them telecommute. This structure has led to some hiring practices contrary to the norm in other organizations.
- Employee characteristics: Given the decentralized nature of its organization, MySQL for skills, not the ability to play nice with a team.
- Finding talent: MySQL finds some of its talent (50+ employees) through open source cntributions to its code base. Others also look for developers among those that actively check in good code.
- Work schedule: CEO Marten Mickos says:
The brightest engineers like the calmness and coolness of the night
and likes hearing the following from prospective employees:question: How do you plan your day?
answer: I always sleep until 11 A.M., and then I start working
While working late at night seemed common when I was in college, when I got to the workplace many developers seemed to work a regular schedule leaving around 5-6pm, albeit in a regular office environment as opposed to MySQL's telecommuting environment. Do you like to work at night and is it common to come in "late" and work late at places other than MySQL? Also, in a non-telecommunting situation, is this mostly for developers without kids? If you do have a start late / work late schedule, why do you like it and what time to you tend to start work?
no comments
Posted in perl, logo, yapcna2006, yapc
Thu, 22 Jun 2006 07:22:00 GMT
The YAPC::NA conference doesn't have a blog badge yet so I edited one from another event. It's not official and just for fun:
You can add it to your blog with the following:
In your HTML:
<div id="yapc_badge">
<a href="http://www.yapcchicago.org/" title="YAPC::NA">
<img src="http://www.dev411.com/images/logos/ \
badge_yapcna2006.gif" alt="YAPC::NA badge" />
</a>
</div>
In your CSS:
#yapc_badge {
position: absolute;
top: 0; /* 10px works for Blogger */
right: 0;
}
UPDATE 1: This is now on the YAPC::NA Chicago homepage and Planet YAPC Chicago. Show your support :)
UPDATE 2: This is also seen in Jonathan Rockway's Catalyst Weblog Software presentation.
1 comment
Posted in typo
Wed, 21 Jun 2006 22:42:00 GMT
I just put together a dual-purpose Typo Theme Viewer. The first purpose is to allow quick scanning of all the themes at Typo Garden which are currently spread out over 14 pages. The second purpose is to provide an example using the Scriptaculous' Sortable effect. I've been interested in using it along with a fluid layout for a while but haven't had an application. Even here, it's more of a demo than some especially useful functionality but it's nice to see the effect in action on something more than a few random graphics. I'm still thinking about how to make the Web 2.0 functionality more useful.
The theme viewer lets you select how many themes you want to view per page so you can adjust it to however many look good in your browser. The pages will change accordingly. You can also see all the themes at once which I find very convenient.
There are some more enhancements I've been thinking about as Scriptaculous (or Dojo) experiments. Let me know what you think of it and what would make it better.
UPDATE: The theme viewer has been upgraded from the screenshot and description here.
3 comments