1453 days ago · plone, python, cms
I’ve worked with a variety of CMS. At the enterprise end it’s been Vignette and at the lightweight end it’s been Movable Type or WordPress. I’ve played with Bricolage and Typo3 and what differentiates each, regardless of size, is their workflow and templating. With that in mind as my criteria I have been mightily impressed by Plone.
The templating system isn’t a full blown template system as much as it is some extra attributes that you add to your XHTML. You don’t learn any new syntax, just some attributes that contain Plone or Zope expressions. The HTML coder can create the code right there, and then the Plone developer just tweaks it with extra attributes to fill in the content.
Here is some sample code that grabs a list of links from the content manager, and then displays them in a table. The tal stuff is mixed in as attributes and xml elements in this particular case.
<table
tal:define="results python:here.portal_catalog(portal_type='Link',
sort_on='id',
review_state='published')"
tal:condition="results">
<tal:block tal:repeat="obj python:[r for r in results if r.getObject()]">
<tr
tal:define="link obj/getObject">
<td>
<img src="" alt="" tal:replace="structure here/icon_bullet.gif" />
<a href="#" tal:attributes="href link/remote_url"
target="_blank"
tal:content="link/title_or_id">Link Title</a>
</td>
</tr>
</tal:block>
</table>
It’s simple and you can use all the same XML tools you already use to work with it.
Another powerful concept that comes to Plone through Zope is Acquisition and this solves another problem of many CMS systems, building dynamic URLs.
1453 days ago · mysql, certification
I passed the MySQL 4.1 Core certification this morning. I’ve been using MySQL 3.23.x and some of the 4.x releases for about five years now. I thought I’d breeze through the test a bit quicker. The questions were mostly well written and experience appropriate to a test of this level. My only complaints are questions that use absolutes like “all” or “none”, and then don’t provide full and thorough answers to choose from. Thankfully these were few and tended to be applied to the more fluff questions.
The thing that surprised me most was the number of questions on
subqueries. These are new to 4.1 and in the past you’ve always been encouraged to rewrite subqueries as a join. I guess MySQL really has decided to fully embrace subqueries.
1456 days ago · cocoa, objective-c, style
Wil Shipley provides a style and technical teardown of some code from an Objective-C/Cocoa app. I like the information in the comments about private methods being prefixed with an identifier and then _methodName. Also he makes a good point about someone reading the code having an English parser and a code parser. Switching between the two to read comments slows you down. The lesson being to make your methods descriptive rather than adding comments.
1481 days ago · weblogs
After months of wondering who was taking over blo.gs it’s apparently Yahoo. I’m having some problems connecting into the cloud interface, but I’m sure those will be resolved shortly. This is a pleasant step forward for blog ping services since one of them now has a large company with the resources to devote to the service.
1484 days ago · ajax, ruby, rubyonrails
ONLamp as an article on Ajax support in Ruby on Rails
One thing that I’ve been wondering about is how a designer should design Ajax like interaction. I tend to work off sitemaps and Photoshop comps when I’m building something. Neither of those effectively describes Ajax interactions.
1484 days ago · apache, python, plone, zope
I’ve been working on Plone building a new skin. Since it’s built around Zope and python it doesn’t necessarily integrate in with Apache very tightly. I have Zope running on a custom port only listening on the localhost interface. Apache then listens on the normal web port and proxies appropriate requests to Zope/Plone and serves up the rest itself. I’ve been familiar with this type of configuration for a while but tended to ignore it because it adds more variables to a system, thus increasing complexity and resources needed.
For those reasons I’ve tended towards php because it integrates into Apache so tightly. I could avoid complexity and reduce the resources needed to run it. However, I’m beginning to think that I should always have a proxy in front of my web applications. It doesn’t add that much complexity, resources are cheap, and it gives me a tremendous degree of flexibility in adding new tiers to my web platform.
1488 days ago · perl, mvc
It looks like perl is determined not to be left behind in the current Ruby on Rails lovefest. An article on Catalyst talks about how it borrows from RoR and Apache Struts to create an MVC framework with easy CRUD (Create, Retrieve, Update, Delete) functionality built-in.
1501 days ago · rubyonrails, ajax
I’ve been using TextPattern to manage this site but the Typo Project looks like it would be a good opportunity to play around with Ruby on Rails.
1502 days ago · ajax
Ajax brings a great richness of interactivity to websites, which helps to narrow the performance gap between web applications and desktop applications. I have concerns about usability but the potential is really great. ajaxian.com is a regularly updated blog on all things Ajax.