Ode is simple! (Simple means that you know how it works.)

Hi.

This is the project website for Ode (pronounced oh-dee), a personal publishing engine for the web. Ode is unique in that it is designed to be simple – not necessarily easy.

Simple means understandable (at least it does here).

  • Thu
  • |
  • 14
  • Oct
  • 2010

The community forum for Ode has moved!

In July I first announced that I was thinking of moving the community forum for Ode.

After recently upgrading to the latest version of Vanilla from an early release candidate, it seemed like as good a time as any.

The new address is: http://forum.ode-is-simple.com

Please update your bookmarks.

Here's a little poem to help you remember:

The community forum for Ode has moved.
The address was ode-is-simple.com/vanilla2_forum,
and now it's forum.ode-is-simple.com.
Hope to see you there.

Maybe not the most beautiful of poems but informative :)

  • Mon
  • |
  • 05
  • Apr
  • 2010

A community forum for Ode

There's a new discussion forum for Ode at ode-is-simple.com/vanilla2_forum.

Though I already mentioned this earlier I think it deserves a post of all its own.

The forum software is Vanilla, which I've chosen because it at least wants to be straightforward.

Though I am hosting this site, I don't want to get heavily involved w/ related issues. Unfortunately, I've run into some problems, and expect that you might as well. If we can agree to stick to the basics and we should be ok.

!--jump--!

Currently there are no discussions posted, but I have prepared some initial categories. Feel free to take a look. If you do have an interest in this project I recommend that you register as a member.

Registration requires that you submit:

  • Email address (which is used to log you in)
  • Name (display name)
  • Password.
  • Gender

(Gender? What's that about? I couldn't tell you.)

That and a captcha and you're in.

I hope to see at least a few of you there.

  • Mon
  • |
  • 29
  • Mar
  • 2010

Ode r1.01 is now available

Just a small update to the release. There is in fact no change to Ode itself or bundled theme(s), and addin(s). (The version and build numbers are unchanged.)

There is no need to download this release if you have r1.

What is different?

!--jump--!

1 - I've added .html formatted versions of both the abbreviated and detailed the installation instructions.

The previous release included only plain text instructions which were inconvenient for some users because of issues related to text wrapping and line ending inconsistencies across platforms.

I am keeping the plain text versions of the instructions in along with the new html formatted versions for those users who prefer to use a plain text editor.

For anyone who is using the plain text installation instructions be aware:

  • You may need to convert line endings for your platform.

    These instructions were prepared on Mac OS X using the default line endings for that platform. They should work for Mac OS X and other Unix-like operating systems but will need to be converted for Windows, Mac OS Classic (OS 9 and earlier), and possibly others.

  • The installation files are not hard wrapped.

    You will need to wrap the lines at some reasonable width or turn on soft wrapping in your editor.

Again, you can avoid these issues by using the html formatted version of the installation instructions.

2 - I've added a changelog.

  • Thu
  • |
  • 25
  • Mar
  • 2010

Ode release 1.0 is available and other news....

Just a quick post to officially announce that Ode release 1.0 is available (and also).

Download

You'll find a download link for the release in the sidebar at ode-is-simple.com/home.

More/misc

You'll find several new posts related to installation and addin development on the blog.

news.ode-is-simple.com

Why the new site? I wanted a place to post regular updates about the project and other related news and info without disturbing the introductory info at ode-is-simple.com/home. (Please bear with me as I straighten all of this out.)

Upcoming

!--jump--!

I will be working on this consistently in the foreseeable future.

Next, I will be focusing primarily on documentation describing Ode's features (most of which are not obvious). Expect an overview by early next week.

Also look for:

More themes, addins, documentation, a community site, and more.

Stay tuned.

  • Sun
  • |
  • 07
  • Mar
  • 2010

Another deadline and another delay.

Who has 2 thumbs and can't seem to quite get his project released? This guy (he says gesturing toward himself with both thumbs).

Another deadline and another delay. This time only a day or two but I'm not happy about it. No excuses. There aren't any snags. Everything is just taking me longer than I had expected.

So it's Sunday night at 11:39 PM and I don't have Ode posted. It's not going to get done in the next 20 minutes. My best estimate is tomorrow. I'll pull a name out of a hat and let someone know they've 'won'.

The new deal is this: if I don't post it by Tuesday, March 9th at 11:59pm EST, someone's getting $40. Two days later I'll make it $80. Two days after that $160 and so on. If there's any good news it's that I must care about this enough to lose $20 rather than just throw something up. I don't think I care another $40 worth, so I'd bet it's going to be up by Tuesday night.

  • Tue
  • |
  • 02
  • Mar
  • 2010

Ode release date slips again (for the last time)

Ode release date slips again. If it's not available by the end of this week I'll give one annoyed prospective user $20.

No excuses (but also no problems). I'm just trying to make sure that there are no silly hang-ups (def: hang-up, noun informal, an emotional problem or inhibition) - that's not the meaning I intended but it's probably the right word to use :)

A first release means dealing with a number of issues that I've put off until now. I do not anticipate this sort of delay with subsequent releases, which is good because I'd bet there will quite a few of them. (Did I mention that upgrading Ode is as simple as replacing a single file?)

So here's the deal. I will have a first release of Ode available for download before 11:59pm EST this Sunday (2010/0307) OR else...

!--jump--!

...if I miss this release date I'll give away to one lucky person:

a $20 iTunes gift certificate OR a $20 amazon.com gift certificate OR some other gift certificate of their choosing (as long as purchasing it isn't especially difficult - at my discretion) OR I'll make a donation in the amount of $20 to a charity of their choice.

To be eligible:

leave a comment here, send me an email at ode.is.simple at gmail dot com, follow odeissimple on Twitter, or mention @odeissimple in a tweet.

If you've already done one of these things, consider yourself in the running.

Again, I'll pay IF I fail to have a release posted by 11:59pm EST this Sunday (2010/0307) which includes at least:

  • The script itself
  • 1 theme
  • Markdown addin
  • Installation instructions

So it's a win-win, but only for one person I suppose. For the rest of us it's win-lose as usual.

  • Tue
  • |
  • 23
  • Feb
  • 2010

Just a quick note to acknowledge that the release date for the first release of Ode has slipped (a little)...

Ode release 1.0 slips past projected date (but closer than ever).

I had hoped to make Ode available for download by the end of last week. That didn't happen. Ode itself is done. I'm working on putting together the documentation. More specifically, I'm working on the HTML version of the annotated source code. Why delay the release of the source for something like this?

!--jump--!

In my mind, and considering some of the intended goals of the project, the annotated version and the 'production' script are inseparable. This being the case, the HTML version of the annotated script is crucially important. Why? Consider the differences. While the smaller of the two weighs in at approx 242k and 6500 lines, the larger annotated version (which again largely serves as documentation for the project) is 1.3MB and 37,000 lines. HTML version of the annotated source connects the two, allowing a user to look up a corresponding section in the annotated version by referencing line numbers in the production script.

I'm just about done with this part of the project and now expect to have everything posted by the end of this week. Feel free to contact me if you have any questions or comments (robreed at gmail dot com)

  • Tue
  • |
  • 09
  • Feb
  • 2010

A first release of Ode by next week...

A first release of Ode by next week. What does that mean?

Barring something unforeseen, I plan on having a first release of Ode posted before the end of next week (that is by the end of the day Friday, Feb 19, 2010).

Why not wait until to post this until the release is ready?

I want to give myself a target date.

Question: Could the release date slip?

Answer: Yes, I suppose it could but I'll do my best to see that doesn't happen. I'm thinking of this as a long term project. It has taken a while to get to this point, and I apologize for that, but in all likelihood it will also be around for a long time, and that will ultimately be the more important measure.

What exactly does that mean:

!--jump--!

Ode itself

I'll be posting two versions of the script:

  1. A heavily annotated 'documentation' version to used as a reference;
  2. An unannotated 'install appropriate' version to be deployed

Themes

I'll also be posting at least one theme initially. The idea is that several simple (understandable and well documented) themes will be available for you to use and modify however you see fit, including one, two, and three column designs - one of which should serve as a good starting point for your own unique designs.

Addins

There will be no addins available immediately but I will get those out asap. You should expect the release of one, two, or more addins a week until I've released everything I'm working on.

More about Ode itself

I said that will be two versions of the script itself, both will be executable (and functionally identical) but you will probably prefer to run the latter on your server as it is a fraction of the size of the annotated file.

I'll also be posting an HTML formatted version of the annotated script (that you can refer to online or download) that will help you to translate between the two by looking up annotations associated with line numbers in either version.

More about Addins

The addins you can expect shortly include:

Markdown - Adds support for the John Gruber's Markdown syntax

Indexette - Adds the ability to index posts to improve performance and other enhancements intended to stabilize post dates.

Twittererer - Adds the ability to tweet posts to the site (automatically or manually) w/ support for URL shorteners (bit.ly to start).

Editedit - Adds the ability to post with a form in a web browser. Includes a live preview of posts (including HTML and Markdown support courtesy of John Fraser's Javascript implementation of Markdown)

Jump - Adds to ability to split posts at an arbitrary point in the body so that only that portion of the body preceding the jump point shows up on category pages with a link to the permalink for the individual post which displays the entire post. Useful from preventing category pages from loading slowly when posts include media (place the media after the jump point) and helpful for analytics (allows a user to better gauge what content people are reading).

Sitemapper - Adds automatic Sitemap protocol compliant http://www.sitemaps.org/protocol.php sitemaps.

Feedback - Adds support for comments withs support for Markdown, previews, email and twitter notifications, and reCAPTCHA

We'll build from there.

In the future:

Name change - There may be a name change at some point. Expect a post about this.

T shirts - I'm a big believer in project, product, and event t-shirts (and an opposer of douche-y ironic and other 'cool-kid' Ts.). Expect to see a disproportionate number of T shirts relative to the size of the project :) All proceeds go to support Ode and it's community (Ode-fest 2011 anyone? :)

ode-is-simple.com - I plan on splitting the site in a traditional website and a weblog for news and announcements. Currently it's sort of both and kind of neither. That isn't working very well. (Hard to believe, huh?)

More, better Ode - Improvements to the script itself, new addins, themes, documentation, etc.

Community - This is the one thing that's really out of my control. If you build it will they come? Time will tell. I'll do my best to make a case for the project of course (if I don't who will) but whether our not it gets used by others is largely out of my control. I'll persist with it regardless.

Feel free to email me with any questions or comments. (You should be able to find a link somewhere in the sidebar over there -->.)

  • Wed
  • |
  • 30
  • Dec
  • 2009

Here's hoping that 2010 is a great year for Ode.

Ode in the new year.

It's just after the first of the year and there is so much in store for Ode in 2010 I wanted to get started right away.

For those of you who I know watch this site regularly for news, I want to say thanks for your continued interest. I'm happy to be able to tell you that your patience will soon be rewarded.

For everyone else, welcome to Ode. You've got good timing.

Here's what to expect in the coming weeks and months:

Shortly I'll be posting the first publicly available release of Ode itself.

About Ode

I expect that it will work for anyone running an Apache server (or any other webserver that works with CGIs compatible with Apache) with Perl support. (Any reasonably recent version of Perl will do. If Ode won't work with the version of Perl you have installed, then you'll want to update for a host of reasons, least of which is Ode compatibility.)

As for other requirements, the script doesn't depend on anything more exotic than a few of Perl's core modules. You shouldn't need to worry about CPAN or any dependencies whatsoever to get Ode up and running. (The same will be true of a select group of addins that will be available and maintained with Ode itself. Of course other addins may have different requirements.)

Like everything else about Ode, installation is intended to be simple, but not necessarily easy.

!--jump--!

More Information: Simple

If you've spent any time browsing this site, you may have figured out that simplicity is a key idea. Just as important is the distinction between 'simple' and 'easy', two terms which I believe are often confused or used interchangeably.

To my way of thinking, something that is easy can be accomplished with little to no effort. (This is close to the dictionary definition.) Simple, on the other hand, is a little more subtle. Something that's simple for you is something that you understand. Anything intended to be simple must be transparent and carefully designed to be easily understood.

While easy promises to minimize the effort required to do something, it also typically suggests a limited experience that is not readily adaptable to circumstances not anticipated by the originator. Simple may require a little extra effort, but rewards that effort with knowledge and better utility (e.g. the ability to adapt, extend, or otherwise modify or repurpose the whatever-it-is to suit your unique needs now and in the future).

Easy may be convenient (when it works for you), but simple is something you can depend on.

I like to say that Ode is simple with the stipulation that 'simple means that you know how it works'. This seemingly humble goal will require a little investment on the part of everyone involved, developers and end-users alike.

Something like WordPress, which do I think is wonderful, may be considered easy but is not, in my opinion, particularly simple. You could use WordPress for years without ever hoping to understand how it does what it does. With Ode I wanted to blur the distinction between developer and end user.

Don't let this intimidate you. If you're comfortable working with files and folders, whether you're familiar with Mac OS X, Windows, Linux or some other modern operating system, regardless of interface, be it command-line or GUI, you should have no trouble installing (and using) Ode.

Best of all, and this is the key thing about simple, you'll know exactly what installing Ode means.

Each release will include two functionally identical variations.

The first might be characterized as something like a typical Perl script consisting predominantly of the source code itself with minimal commenting.

The second version is something else. Though the code itself will be identical to the first version for each release, the source file is heavily annotated and intended to serve as a line-by-line walk-through of the code. I like to think of it as a 'narrative view' of the source.

More Information: The Annotated Source

It's important to understand that though the annotated source does contain the source code, and is executable, the emphasis is on the annotations and not the code. Please don't make the mistake of disregarding this as nothing but obfuscated code. It's an attempt at a narrative approach to the task of developing the software. As such, it is an integral aspect of this project. It captures design-time decisions, serves as documentation, and represents a foundation for future work. (It is also a little unwieldy in its present form.)

The over 300 pages worth of annotation are intended to represent, in a very literal way, the sort of deep knowledge that underlies the implementation of any software system. It is the application of design decisions as they are made over the development of the system. It is the representation of the knowledge about the program that must be understood to appreciate any particular instance.

What does this mean to you? Think of the annotated source as the authoritative documentation for Ode.

While it's possible to read the whole thing from beginning to end (top to bottom, or following the flow of execution), I'm assuming that most people will instead jump to a particular line or section looking for a description of the code (and the corresponding behavior). To facilitate this I'll maintain an HTML formatted copy of the annotated source, such that the source is presented as a single HTML page, with each line of code associated with a named anchor.

If you're looking for a particular line, just append the line number to the end of the address of the page following a pound symbol ('#').

For example something like…

www.example.net/path/ode_cgi.html#143

…would link to a description of line number 143 in the 'code-centric' source file.

Note: The eventual goal is to explore a general model for writing architecture documentation using Ode as a case study. I'll have much more to say about this in future posts (which you should feel free to ignore if you're not interested). If you are curious, you may want to have a look at a presentation I've put together discussing the challenges of documenting software systems and a proposed general model for software architecture documentation I'm working on.

As for how I'm handling version control and that sort of thing, I'm still working that out. I have my own system at the moment that won't scale to support collaborative development or version control as you probably think of it. Initially I'll post official releases to ode-is-simple.com and I ask that anyone with feedback, or other contributions contact me directly (via email, Twitter -though I don't especially like twitter-, the postal service, or whatever else works for you).

In addition to the script itself…

Addins

I'll be releasing the small number of addins I've written myself. (There will be more to come.) Each of these will be the subject of one or more future posts here.

I'm also working on addin 'stubs' for each interface type (think of these as a loose sort of template). These stubs will include the complete interface specification and a 'human-readable' explanation of how the interface works.

Read more about Ode's addins.

Themes

Themes dictate the look and layout of an Ode site.

I'll be releasing several themes with Ode including one, two, and three column complete designs, and HTML wireframes which you are free to use as is, or modify to suit your needs.

More Information: Themes

The most remarkable thing about Ode's themes is that they're almost completely unremarkable. Themes are pure HTML and CSS. The entire page layout is described by a single file that looks like any other (X)HTML file to a text editor or web design/development app.

There is no need to change how you work for Ode. Repurposing existing page designs for use with Ode or reworking themes to function with any other platform should be relatively straightforward - assuming the other platform includes some reasonable templating scheme.

Here is the complete structure for the default theme at ode-is-simple.com
  
themes/  
    html/  
        content_type.html  
        date.html  
        page.html  
        logic.css  

        images/  
            cod_header.png  
            ode_tag.png  
            ode_title.png  
            xml_badge_bw_sml.png  

Of these files, page.html and logic.css would be immediately recognizable to anyone familiar with HTML and CSS, including validation services like The W3C Markup Validation Service. (The other files are essentially pro forma and typically they do not need to be modified.)

page.html starts with a doctype declaration and ends with the closing html tag. Everything a user already knows about HTML and CSS is relevant to themes under Ode. Moreover, there is almost nothing new to learn. Not only is this beneficial for users new to HTML and CSS, but experienced designers and developers can quickly implement a theme under Ode, work out the kinks, and then repurpose it for any other platform without unwinding or otherwise removing the Ode specific elements (because there are virtually no Ode specific elements). It is not necessary to hop among dozens of files inserting bits of markup scattered among sections of PHP and Javascript.

The fact that Ode themes are so simple does not imply that they are limited. Quite the contrary, Ode's theme mechanism is quite robust. Users can create and simultaneously apply any number of different themes to a single Ode site with the various themes applied on a per request basis.

Furthermore, Ode supports several features lacking in more established dynamic publishing packages. An example of this is 'dated themes'…

Let's say that your site has a particular look now. Love it or hate it, you may decide to change the theme in the future. That change may be something as minor as changing a header graphic or as significant as completely redoing the look and layout of the site.

Sure, the new site looks great, but wouldn't it be nice if visitors had the option of seeing the site as it appeared before the change? With Ode, you can allow for that. Older versions of themes can be archived such that both the new and old versions are available. Visitors can request either the current version (which would typically be the default), or any prior version of the theme to see what your site looked like at any earlier date and time. Ode supports any number of dated archives per theme and of course any number of themes.

Everything else

Going forward, this site will be updated regularly with:

  • More info about Ode itself
  • Tips, tutorials, and even screencasts demonstrating how to use Ode
  • More addins
  • New themes
  • Information about 3rd party software and services that work well with Ode
  • Hopefully a lot of content from a growing community of users (addins, themes, feedback, etc.).

If you have any questions, comments, or concerns, don't hesitate to contact me at robreed at ode-is-simple dot com. I'd love to hear from you.

Here's hoping that 2010 is a great year for Ode. I'll need your help. That's for sure!

Rob