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).

  • Mon
  • |
  • 04
  • Aug
  • 2014

What's the status of this project?

It is of course a perfectly valid question. This blog hasn't been updated in nearly a year. The post before the last was an end of the year state-of-the-project post... from December 2012. More critically the project itself seemingly hasn't been updated since 2010. That's hard for me to believe, but there's no denying it. (Wow, where does the time go?) As I said, a perfectly valid question.

I have been told that it looks dead, and that looking dead discourages new people from taking more than a passing glance at Ode.

Of course, that too makes perfect sense. I certainly wouldn't argue. In fact I have a hard time believing I would seriously consider giving it a try. I'm as 'guilty' as anyone of comparing project against project when I'm looking for software, and must admit that I typically consider frequency of updates and recency of the last update to be key factors. That's especially true of something like a weblog platform, which I would expect I might want the option of using for years to come (and that I would anticipate needing to spend a considerable amount of my own time on).

Read the rest of this post
  • Sun
  • |
  • 08
  • Sep
  • 2013

What's it take to restore (or move) an Ode site?

All it takes is uploading a single folder to the server.

That one folder can contains ode itself, it's configuration file(s), addins, themes, and all content.

I'll have more to say about the site and project in an upcoming post. For now, hopefully you're as happy as I am that it's back. :)

Special thanks to the users who offered to donate money to help me pay the hosting fees for this site:

  • Hans F
  • Steven R
  • Heather M
  • Jenn M

and everyone else who cares about this project.

  • Wed
  • |
  • 19
  • Dec
  • 2012

End of the year 'state of the project' post

I've done this for the past couple of years and think it's a tradition worth continuing so let's get to it...

The state of our project is strong.

When I take a moment to think about the things that genuinely excited about, and happy with, and also those things that I'm discouraged about, the only thing(s) that have me feeling down are my own failings. Simply put, I would like to have done more, and released more, by now. But everything else is all very positive, e.g. the underpinnings of the project, it's continued relevance and potential, the way that I feel about the the time I've spent working on it.

A couple of years old now, and Ode seems to me to be every bit as interesting as it ever was. In fact, if anything the developments in technology, and web technologies specifically, have turned out to be far more favorable for our little project than I might have guessed. The web is only getting better, and more than almost any other project like it, Ode lives and dies by core web technologies. The strength of the project is tied to the strength of the web itself, and these days no technology looks more promising than the open web. (That's how I see it anyway.)

From the beginning, I wanted Ode to serve as a platform for learning, but not learning about Ode for its own sake so much as learning about web design and development, programming more generally, and the web itself. By making Ode as simple as possible, the focus shifts to the truly interesting stuff — everything you wanted to know before you were aware this project existed. Rather than complicate or obscure the learning process the way a monumental platform like Wordpress does, Ode keeps us focused on what matters.

Read the rest of this post
  • Thu
  • |
  • 25
  • Oct
  • 2012

Because it's against the laws of thermodynamics, that's why

I work in IT, and it is often shocking depressing to me the way people deal with, or more to the point don't deal with, their technology.

I don't expect people to know everything there is to know about technology.

For one thing I don't know everything there is to know, and I spend a lot of time doing this stuff. For another, it's my job to help people to deal with their technology -- the logical assumption being that they need help.

However, I do expect people to be able to apply their general knowledge to issues related to IT.

For example let's think about entropy.

One of the four fundamental laws of thermodynamic systems - the Universe is a thermodynamic system - entropy is closely related to order and disorder.

Things tend to decay, i.e. become more disordered, unless energy is expended to maintain order.

With regards to IT, this can be interpreted to mean that technology must be monitored and proactively maintained or it will degrade and eventually fail. (In the same way that you must have your car serviced or clean your home.) You have the choice of either managing it or suffering through any number of problems that are usually disruptive, frequently expensive, and occasionally catastrophic.

You are not allowed to have an opinion about this. That is, you cannot rationally hold the opinion that you do not have to manage technology and there will be no problems as a consequence.

Well let me put that another way... If you want to argue about this, it's not me that you'll be arguing with, it's either the laws of physics, or God, if you believe in that sort of thing. Either way, it's not an argument that you are likely to win. (I have nothing to do with it. It was like this when I got here.)

If you're struggling with the concept of entropy then lets pick a closely related concept, time. Not managing IT and expecting it to go well, is like betting on the losing side in a sporting event after it has already been played and then acting surprised at the outcome.

Some things are simply not a matter of opinion.

Windows 8 and Microsoft Surface are just about here and -- it's going to be messy.

Like a lot of people, I see Windows 8 as a big mess. (More on this in a bit.) But the folks at Gizmodo aren't those people.

In June they declared Microsoft "the Most Exciting Company in Tech, Hands Down" and in another post, written immediately after the Microsoft introduced the Surface tablet, and they pronounced "Microsoft Surface Just Made the MacBook Air and the iPad Look Obsolete", summarizing what they had just seen (but never touched much less used) as:

Beautiful and functional and simple and honest.

What I saw was a pretty typical tablet in terms of hardware but with a kickstand and a perfectly flat keyboard integrated into the cover that looked like it would be a nightmare to type on (and not such a great cover either). And for some reason, it would be WiFi only, making it a device that would be only occasionally connected. If you don't consider lack of cellular data as an option a serious omission, then what about GPS? This thing does not include GPS hardware. Lack of cellular connectivity and GPS make Surface more akin to the iPod Touch than the iPad. (Google's Nexus 7 lacks cell connectivity but OF COURSE includes GPS.)

So Gizmodo loved it and I didn't get it.

Fast forward to today, and they've posted their review of Surface. So what did they think of the most exciting device in recent memory from the the most exciting technology company in the world?

Let's find out, by reading some of what they have to say in their post titled, "Microsoft Surface RT Review: This Is Technological Heartbreak"

Read the rest of this post
  • Mon
  • |
  • 22
  • Oct
  • 2012

Thought for the day Oct 22, 2012

The solution you don't understand today will be the problem you can't solve tomorrow.

I've been down on Apple lately but...

This is a rambling post that has nothing to do with Ode. You have been warned. I have no idea why I wrote this post. But here it is.

Let's say it's because with the Web (and Ode) I can. Actually that's a very good reason. (To be continued.)

...for the past month or so, let's say since a little while after the release of the iPhone 5, I'm feeling good about them again. It's not that I've changed my mind about my previous complaints.

I think their App Stores (iOS and Mac) are truly awful things -- and with the release Windows 8/Windows RT and the arrival of the Windows Store we see that model being firmly extended. (No it's not true that the best technologies or business models win. You don't need to look any further than cable tv for evidence of both.)

The latest version of the Mac OS Mountain Lion is should be a crime as far as I'm concerned.

Maybe nothing demonstrates just how lost they are more than their 'tacky' skeuomorphic software design'. By the way, contrary to what some may believe, this 'recent trend' is really a revival of an idea long ago rejected as fundamentally flawed.

( Another article about skeuomorphism and Apple this one from Forbes. )

But maybe the worst thing of all is the way they tie features like iCloud (and Auto Save and Versions before it) to the App Store, i.e. prohibiting developers from incorporating these features into their apps unless sold exclusively through the App Store. (Just one of many ways Apple has turned what used to be a relatively open community into a members only club.)

So then what's to like?

Read the rest of this post
  • Thu
  • |
  • 20
  • Sep
  • 2012

How-to: Button style links (A nice little design element)

The humble hyperlink is an amazing thing.

When I think of innovation and the web, the hyperlink immediately comes to mind. Having said that, I am well aware that the concept did not originate with the World Wide Web. In fact the hyperlink as an idea has an interesting history that, if I'm not mistaken (and wikipedia seems to agree with me), stems indirectly from an article written for Atlantic Magazine in 1945 (1945!) by Vannevar Bush titled "As We May Think".

From wikipedia:

Vannevar Bush ( /væˈniːvɑr/ van-nee-var; March 11, 1890 – June 28, 1974) was an American engineer, inventor and science administrator known for his work on analog computers, for his role as an initiator and administrator of the Manhattan Project, for founding Raytheon, and for the memex, an adjustable microfilm viewer with a structure analogous to that of the World Wide Web. In 1945, Bush published As We May Think in which he predicted that "wholly new forms of encyclopedias will appear, ready made with a mesh of associative trails running through them, ready to be dropped into the memex and there amplified".[1] The memex influenced generations of computer scientists, who drew inspiration from its vision of the future.

Probably the best thing I will discover today is that the original article, As We May Think, is available online, and at theatlantic.com no less. That's wonderful to see. Since it is readily available, I'll tell you that it's well worth reading. There may be no better juxtaposition of just how far we've come technologically, and yet how little little progress we've made on the crucial issue as information management.

From the beginning of the article:

Of what lasting benefit has been man's use of science and of the new instruments which his research brought into existence? First, they have increased his control of his material environment. They have improved his food, his clothing, his shelter; they have increased his security and released him partly from the bondage of bare existence. They have given him increased knowledge of his own biological processes so that he has had a progressive freedom from disease and an increased span of life. They are illuminating the interactions of his physiological and psychological functions, giving the promise of an improved mental health.

Science has provided the swiftest communication between individuals; it has provided a record of ideas and has enabled man to manipulate and to make extracts from that record so that knowledge evolves and endures throughout the life of a race rather than that of an individual.

There is a growing mountain of research. But there is increased evidence that we are being bogged down today as specialization extends. The investigator is staggered by the findings and conclusions of thousands of other workers—conclusions which he cannot find time to grasp, much less to remember, as they appear. Yet specialization becomes increasingly necessary for progress, and the effort to bridge between disciplines is correspondingly superficial.

Professionally our methods of transmitting and reviewing the results of research are generations old and by now are totally inadequate for their purpose. If the aggregate time spent in writing scholarly works and in reading them could be evaluated, the ratio between these amounts of time might well be startling. Those who conscientiously attempt to keep abreast of current thought, even in restricted fields, by close and continuous reading might well shy away from an examination calculated to show how much of the previous month's efforts could be produced on call. Mendel's concept of the laws of genetics was lost to the world for a generation because his publication did not reach the few who were capable of grasping and extending it; and this sort of catastrophe is undoubtedly being repeated all about us, as truly significant attainments become lost in the mass of the inconsequential.

Wow. 2012 let me introduce you to 1945. I think you two have a lot in common.

Organizing information is hard.

It has been a a topic of interest for me, and a preoccupation, for a long time. At this point I can fairly quickly assess why almost any strategy will not work.

Somewhat related to this, the app store model(s) of software distribution that we seem so enamored with today absolutely SUCK, as do most if not all of the discovery schemes implemented as part of content/media distribution platforms (iTunes, amazon, Google's Play, Hulu, Netflix, and any number of others). For one thing popularity is a poor substitute for adequate organization and discovery -- no more than a crutch really.

The hyperlink, and systems that utilize it, stand out as promising in a uniquely practical way I think.

The hyperlink is a simple mechanism that can be utilized in any number of ways. One that allows the structure of a document to emerge through use. A large hyperlinked document is essentially both a repository of information and a purpose-built/best-fit information application.

The wiki stands out as an innovation that is underutilized to the point that it really defies explanation.

Aside: I've yet to find a task management app that works well, and I've also yet to see one that supports hyperlinking and on-the-fly creation of linked entries. I think it's very likely that when I see one of those, I'll also be looking at the other.

As you can tell I think pretty highly of the hyperlink. That being the case I've wanted to write a post (maybe a series of posts) celebrating this most basic fundamental aspect of the web.

OK enough with the build up (well maybe just a little more)

I'll start by explaining how to create a simple button style link like the 'Download the Current Release' link you see above the posts on this site. You may have noticed that this style of boxy button has come into widespread use of of late (after decades of what I consider to be overly styled 3D-ish capsule buttons of one form or another). And this trend isn't just limited to the web. Among other uses, it's the hallmark of Microsoft's new Windows 8 aesthetic.

This time I think everyone has gotten it right.

Read the rest of this post
  • Sat
  • |
  • 15
  • Sep
  • 2012

How-to: Let's make a simple JQuery photo gallery like the one they use at bestmadeco.com [U]

Updates

  • Updated with some additional info about including the CSS discussed in the post (in response to a comment). ( Jump directly to the update )

I thought it might be fun (and useful) to look at a very simple JQuery based photo gallery to see just how straightforward it can be to put something like this together.

This is inspired by the photo galleries used at bestmadeco.com a company founded in 2009 around the idea of making a great axe. They now makes a variety of interesting, nicely designed (by the look of it) products. The site is pretty nice too. Don't be surprised to see a bestmadeco Ode theme at some point in the future.

It's easy to see a finished product or feature and let your imagination get the better of you (especially when part of a big platform like Facebook). Things like this are something that anyone with an interest in web design/development is capable of. And the best part is that there any number of simple, interesting, genuinely useful projects that you can tackle once you find a platform you're comfortable with (ahem :) and make the commitment to learn.

Note: Saying "anyone is capable of putting something like this together" does not mean that you should somehow already know how, or that seeing an example of something is the same as learning how to do it. I hope you grasp the distinction I'm making here (even if I'm doing a pretty bad job with it).

I'll warn you right up front that this is a JQuery script. So some of it is going to look cryptic if you're not familiar with JQuery. That doesn't mean that you can't follow along. I will describe everything that's happening. You can take my word for it that what I'm describing is what the code is actually doing. (I wouldn't lie to you. :) Even if you don't understand the code, I'm sure you'll be able to recognize what I'm describing in the code, at least a little bit. In fact I think you'll be surprised at just how straightforward it is.

Let's jump right into it.

Bonus points if you read this post through from beginning to end. Triple bonus points if you implement this yourself and post a link to your gallery in the comments. (Imagine what you could do with triple bonus points. :)

Step 1: Assembling the HTML

Step 1.1

First we create a div to hold the gallery itself and associate it with an id. That will allow us to target the gallery in our script (and also style the gallery container in our stylesheets).

I'll call it 'bestmadeco_gallery_ex':

<div id="bestmadeco_gallery_ex"></div>

If you're familiar with HTML at all, you can see there's nothing complicated there.

Step 1.2

Next within the container, we're going to set up the gallery manually.

Before I get to that, I'll tell you that this particular gallery will consists of a numbers of photos and corresponding thumbnails (which will by used for navigation). The large photos will each be 500 x 500 px square, because a width of 500px fits nicely within the theme here, and square photos are popular these days. The thumbnails will be 50 x 50 px.

I've generated the images and the thumbnails ahead of time.

Something that's important to understand about development, and design for that matter, is that we generally accomplish complex things by breaking it down into a number of steps.

Our gallery script is used for displaying images we already have. It doesn't resize the images or generate thumbnails anymore than it captures the photos in the first place. That's actually a good thing. It means that it's easy to use this script regardless of the tools we use to capture, edit, resize, and archive our images. The gallery isn't tied to any one platform or single way of doing things.

We could automate the resizing of original photos and creating thumbnails from our large images. In fact that would be really nice. But those would be separate projects. By limiting the scope of what we do at any one time like this, we can keep projects simple (understandable) and manageable.

OK so here a partial list of the assets:

  • photo1__500x500.jpg
  • thumb_photo1__50x50.jpg
  • photo2__500x500.jpg
  • thumb_photo2__50x50.jpg
  • photo3__500x500.jpg
  • thumb_photo3__50x50.jpg
  • ...

I'm going to organize the file structure as follows:

shared_resources/
  images/
    photos/
      galleries/
        2012/
          08/
            bestmadeco_gallery_ex/
              photos/
                photo1__500x500.jpg
                photo2__500x500.jpg
                photo3__500x500.jpg
                ...

              thumbs/
                thumb_photo1__50x50.jpg
                thumb_photo2__50x50.jpg
                thumb_photo3__50x50.jpg
                ...

Given that structure, the path to 'photo1__500x500.jpg' would be:

/shared_resouces/images/photos/galleries/2012/08/bestmadeco_gallery_ex/photos/photo1__500x500.jpg

You can of course use any file/folder structure you like. (You can even save your images to a host other than the one you use for your website.) That's entirely up to you. I find that this kind of structure works well and makes it easy for me to find what I'm looking for later on -- even if admittedly it does create paths that are a little long.

With that out of the way, let me describe what the gallery will look like on our webpage.

There will be a single large image displayed within the bestmadeco_gallery_ex div. When the page is first loaded, this will be the 'photo1__500x500.jpg'.

Under the big image, the thumbnails will all be displayed in a row(s).

Something like this:

+---------------+
|               |
|               |
|               |
|               |
|               |
+---------------+
[ ][ ][ ]

We'll want to arrange it so that clicking on one of the thumbnails will load the corresponding large image, swapping it in place for the one that's already there.

Simple enough right?

There are a couple of additional complications we'll need to deal with. For example, when we click the thumbnail for the photo that's already displayed, we'll want to make sure it doesn't reload. It might also be nice to preload the big images so that people using the gallery doesn't need to wait for them to load when clicking from one thumbnail to the next.

We'll deal these kinds of things as we come to them. For now, I just wanted to give you some sense of where we're going with this.

Read the rest of this post
  • Mon
  • |
  • 10
  • Sep
  • 2012

Apple's Pages word processor is what I used to love about the Mac platform

I just spent the night finishing up a proposal for a web design project that will probably never see the light of day (or if it does, I will be severely underpaid and humiliated too). So why am I not exhausted and depressed as I wait for a train into the city at 6:30 in the morning (to start a day that will most likely be exhausting and depressing) -- because of Pages.

It is a fucking truly fuuucccckiiing sweet application that's wonderful to use. It's always been good, right from the first release, but I must not have been paying attention through the little point releases because now it's as close to perfect as any app I've ever used in my entire life.

You want to create text boxes and define how the text flows between them -- no problem. You want to use the app as a standard word processor with text right in the body of the document at the same time. Well why the hell not -- no problem. And guess what... when you drag those text boxes around, the text in the body of the document behaves predictably. See that's what I didn't expect. It's a mind blowing revelation. An app that behaves exactly the way I wanted it to. But that's just the beginning.

You can take those same text box, or a shape, or whatever, and make it inline or take it out of the document flow and float it by clicking a button, and it works beautifully.

You can define the width of a line down to a quarter of a pt, which is just what I needed to made a little header style I wanted. Making it 1 pt would have killed it.

Read the rest of this post