Drill down further...pick a subcategory.
Web Design and Usability | Programming and Web Development | Content Management | Databases / XML | Web Site Management
Elgg.org: Last year, when I was a judge in Packt’s awards, I was in the “social networking” category, which was odd since I didn’t know a thing about it. But I was still impressed with Elgg, and I voted for it.
Flash forward a year, and I now a lot more about social networking. And Elgg has a new version out, and it’s even better than the last one. I set up a demo with it for a client, and they (and I) were just blown away by it.
Elgg is “Facebook in a box.” It installed for me in about five minutes, and the default functionality out of the box is crazy impressive. In working with it, I was struck that this could be a great intranet and collaboration platform for a company intranet.
We get requests all the time for “how much would it cost to build Facebook/LinkedIn/whatever.” With Elgg, we now have a huge head start on that answer.
2008 Open Source CMS Award Finalists: Packt announced the five finalists in each category for their open-source content management awards.
There’s a lot of new faces in the “Most Promising” category, but, the only surprise nomination (to me, anyway) was TYPOlight in the “Overall” category.
I’m a judge in the PHP category this year.
Video: Lifelike animation heralds new era for computer games: Wow. This is state of the art in computer animation. Crazy, crazy natural. It’s maybe just a bit off, but I don’t know if I would have questioned it if I didn’t know in advance.
She is considered to be one of the first animations to have overleapt a long-standing barrier known as ‘uncanny valley’ - which refers to the perception that animation looks less realistic as it approaches human likeness.
If you’re unclear on the term: The Uncanny Valley
Themelia Framework - Home: This looks crazy interesting. It’s from David Betz — the commentor I mentioned in my post on ASP.Net a couple days back. He’s written a framework for ASP.Net that interrupts the Model 1 framework.
One of my frustrations with ASP.Net was that it was a fairly simplistic 1 URL = 1 File model, unlike Apache, with which you could fiddle around with requests before they got to an actual file. I had used ISAPIRewrite, which was a third-party filter which put me back to where I was with Apache, but it was…third-party.
Well, it turns out that I just didn’t know enough (that’s becoming a common theme with ASP.Net…). Themelia appears to go far beyond even mod_rewrite and lets you grab requests from all over the IIS request pipeline using complicated criteria and run arbitrary code anywhere in that process, which really frees up a lot of nice functionality.
Themelia (Th-meh-LEE-uh; “Th” as in “Thelma”) provides a new paradigm for ASP.NET development by providing development simplifiers and an extreme HTTP pipeline hijacking mechanism, going far beyond simple HTTP handlers, URL rewriting, and routing going FAR beyond .NET’s System.Web.Routing assembly. New paradigms include handler injectors, mapped handler factories, fallthrough handlers, web sections, and web components, giving web architects and developers extreme control over their web solutions.
It runs under IIS 6 and 7, though I’ll admit that I haven’t quite got it installed and running yet.
What’s nice about something like this is that you could install it as a base item in any project you work on, and just “leave it in reserve” if you don’t need it. Perhaps Model 1 architecture is exactly what you need. However, there’s always some situation when you really need to do something a little out of the ordinary.
Now I have a good option for those times.
(As a bonus, the name sounds like something my daughters would name one of their little princess dolls. So, you know, that’s cool too.)
ASP.NET gets no Respect: Rick Strahl has written a really brilliant article about why ASP.Net gets a really bad rap. It’s a great roll-up of all the arguments leveled against .Net, and Rick is objective enough to admit that some of them are even true. I think this is an important article for any ASP.Net developer to read, especially new developers or those about to learn the platform.
For instance, Rick nails this point about how ASP.Net tries so very hard to abstract developers away from HTML and CSS:
ASP.NET – at least using the Web Forms engine - uses a different approach to Web development that is based on abstraction and effectively hiding many of the HTTP semantics from developers. In some ways this can be very efficient and produce very rapid results if you know what you’re doing and you flow with this concept, but if you are coming from a raw HTML and CSS background or even as a developer from other tools that are based on raw HTML/CSS principles it’s actually difficult to get your head around the abstraction that Web Forms provides.
Web Forms also produces HTML that is not easily styled via CSS so traditional design mechanisms can be more involved. […]
In addition ASP.NET’s naming container ID mangling which causes client IDs to be changed can be very counter productive for styling with CSS and for working with elements using JavaScript.
That last point especially drives me nuts.
As for me, I’m slowly coming around. I actually enjoy writing ASP.Net now, with a few bumps. I still think the implicit encouragement to abuse Postback is inexcusable (Applebees still hasn’t fixed that page…), but other than that I find ASP.Net to be a solid platform, and I’m really doing some interesting things with it.
We’re a partner with one .Net content management company, and we’re on the verge of signing a partnership agreement with another one, so Blend is actually betting a fair amount of the future success on the .Net platform.
Back to Rick’s article, he covers some other really salient points as well, like Microsoft’s Ajax framework, a system about which I have never heard anything good:
The problem here is that these tools offer virtually no compelling features to client side developers who choose to write Javascript code for rich clients that use the server for data retrieval. The client library offers practically no assistance for typical client side scripting tasks.
True. For me to even consider this, you have to make it better than JQuery. Good luck with that.
And, ASP.Net is harder than your average platform:
Maybe an even bigger concern is that ASP.NET or .NET in general has a pretty steep learning curve. Web development is never easy, but ASP.NET involves learning a fair bit of framework functionality before you can really be productive and get stuff done.
It does have a learning curve, but I’ve found that ASP.Net is more friendly to code-reuse than any other platform I’ve used. Using it, I tend to solve problems only once, and I’m able to abstract things away and develop re-usable libraries extremely easily.
Finally, I can’t let this slip by:
I’m always amazed how many people outside of the Microsoft fold have such intense loathing of Microsoft. It’s not just dislike, but a virulent loathing where anything Microsoft is considered evil.
I feel this way about Apple. And I’m not kidding.
PostScript:
I was reading through the comments, and there’s a great one that is, as I write this, the last one on the page. There’s no way to link to a specific comment, but it’s from David Betz, and starts out “…and another thing!” David really dismisses the “WebForms suck” argument:
Once you get past the EXTREMELY naive belief that ASP.NET is WebForms, you can do just about anything. Many people think of ASP.NET as being WebForms, “Magical” PostBack, and ViewState. […] ASP.NET is just a .NET application with one C++ based DLL. For the most part, it’s just a bit C# application. Change it, hack it, bend it… do whatever you want. It’s RAW power.
He’s right, this is is a common misconception, but until Microsoft came out with MVC, they did nothing to dispel it. It’s a lot like the Classic ASP = VBScript association that Microsoft really let stand unchallenged for all those years. They should have released MVC five years ago, which would have cast ASP.Net in an entirely different light.
Four years ago, when announcing that the long sought-after title for his profession — that of “interaction architect” — had finally been found, Bruce Tognazzini started off his post with:
This is the most important column I have ever written.
Now, as much as I love hyperbole, I’m not going to go that far. But two months ago, I wrote this —
I cut out of [a conference session] to grab a corner with Sett Gottlieb and have what was one of the most professionally meaningful conversations I’ve ever had in my life.
— so I need to deliver. Here goes…
At Web Content 2008, Seth Gottlieb gave a good session about open-source content management. During his introduction, he mentioned that he used to be the “Content Management Practice Director” for Optaros.
That phrase stuck with me. Content Managment Practice Director. It resonated over and over for the next 24 hours, until I finally sat down with Seth the next day to talk about it.
Seth’s lofty title at Optaros wasn’t “Development Director” or “Director of CM Integration” or something. Instead, his title evoked something I’ve always been attracted to: the idea of content management as a practice.
What I’ve learned in my years of content management is that it exists on two levels.
A lot of people jump right into the second one: platform integration. They learn Drupal. Or eZ publish. Or their company buys Red Dot and they do an integration with that.
Along the way, they’re exposed to some cool features: versioning, workflow, templating, etc. These features make sense, and they get implemented.
However, this person’s knowledge is very brittle. They don’t know content management, they know Drupal. Or eZ publish. Or Red Dot.
And how much do they really know about, say, workflow? If they’ve worked with Ektron, they know that it’s serial approval chains, nothing more. They’ve never been exposed to parallel workflow. Branching workflow. API or code exectuion steps in workflow. Workflow aliases. Ad-hoc workflow.
In the end, this person isn’t a content management practioner, they’re an Ektron integrator.
Now, this isn’t all bad. Doing integrations like this pays the bills, and a lot of people do great work and make a great living at this level (I’m one of them).
But I want to go deeper.
I’m interested in content management as a practice. I’m interested in content management as a transcendent skill. I’m interesting in learning, mastering, and teaching the eternal principles of content management, if I can be so dramatic.
Most everything in programming has patterns — ways of doing things that have proven to be pretty well-suited for a particular application. I wrote an entire post about Functional Design Patterns, in fact.
What are the patterns of content management? What are the features, skills, and theories that transcend all platforms. In the end, versioning isn’t about Drupal or eZ publish. Sure, they both have implementations of it will all their quirks and idiosyncracies, but versioning goes beyond that. It’s an eternal pattern of content management, and something that deserves to be studied and dissected far above the specific implementation level.
When I install and evaluate (read: play around with) a new CMS, I have a mental checklist in my head of what I’m looking for. The checklist looks a lot like the uber-post I made last year about just what comprises a CMS.
I love installing a new system and finding out how it does all of the things on my list. I love digging, prodding, researching, and breaking stuff until I figure out how they implemented Feature X, and how it works.
Seth summed this up in our conversation by saying (I’m paraphrasing from memory), “There are people who like to feel smart, and people who like to feel stupid. People who like to feel smart, never like to use something new because they don’t understand it. People who like to feel stupid, love using something new because it gives them a chance to learn.”
So, the question I posed to Seth, and I’ll pose to you now, is: how do you teach someone the core principles of content management? Have they been defined (my list non-withstanding)? Is there a curriculum? I once wrote a post about wanting a “Masters in Content Management” — what’s the closest thing?
At Blend, my goal has always been to develop a group of solid content management practitioners. While we have our favorite platforms, my hope is that the specific platform we’re currently integrating becomes interchangeable. I want Blend’s people to understand the core principles that transcend those platforms, and not get fixated on one specific environment.
Referring back to the anecdote I opened with, I think I feel the same…relief, as Bruce Tognazzini did when he found the title “interaction architect.” In doing so, he put an identify on an amorphous set of skils and aspirations floating around in his head.
I was just as surprised when Seth tossed out the phrase “Content Management Practice Director” and it started bouncing around in my head. It draws a circle around where I want to be, and where I want my developers to be.
The question becomes: how do we get there? I hope you stick around as I try to answer it.
One of the things I struggled with in the redesign — and still haven’t completely figured out — is when it’s okay for some content to no longer be browsable. By “browsable,” I mean “non-orphaned” — a page that has an inbound link from some index page.
Consider the New York Times. They put their archives online — every article from 1851 forward. Some 13 million articles.
Do you think every article is browsable? Can you navigate through a series of index pages to find an article about some event in 1912? Probably not.
At a certain point, does content get “retired” to search only? When is it okay for something to not appear on an index page, and only be found via contextual links from other content and search?
While we don’t have 13 million articles, we are approaching 7,000. With the redesign, we removed the browsable category pages from Gadgetopia. You used to be able to scroll back through the categories, but logs show that it wasn’t used that much, and the value of it was questionable anyway. With the current format, there are links two perhaps 50 posts per category, which I’m hoping is enough.
The way it sits now, there are multiple ways to find older articles that have fallen off the index pages:
I’d be interested in opinions on this. When is it okay for something to lose its browsability?
I have a client that needs to manage…data. Database records. Not really content, per se, but just data.
This client has some job postings on their Web site. These postings are one table and about four columns worth of data. There’s a title, a posting date, etc. The rest of their site is not content managed — it’s a big, static, brochure-ware site. Display of the data is not a big deal — it can be done in 15 minutes using standard .Net controls.
Some time ago, we discussed The Quandary of the Single Table Web Site. What do you do when you have a static site with just one area of active, database-driven content? We threw around some good ideas like PHPRunner, etc.
This situation, however, is a little different. This client needs three very content management-ish features:
What do you do in these cases? I find it very tough to tell this customer to go buy a CMS (they’re .Net, so the open-source options are limited). Additionally, a “content management system” implies quite a bit of extraneous functionality in this case — things like relational data modeled (how content relates to other content), interface widgets, publishing methods, etc. Content management tends to “know” that its content is being published on a Web site, so it tailors its handling for those cases.
What this client needs is “enhanced management” of a simple database table, essentially. They need tools to allow them to manage this data in a usable editor, with versioning, permissions, and simple approval. This system needs to have no knowledge of the larger Web site. In fact, it needs to have no knowledge of the final disposition and display of the data — it has no need to see beyond the database table.
So, I guess I’m looking for a “data management system.” Or, my preferred term, a “half-assed content management system.” In the end, I want something very similar to what PureEdit has done for PHP, but with some of the higher-level content management functions we’ve discussed before.
This may go back to our discussion previously of Content Management as API. I assume someone has a library somewhere that enables this (adding versioning to a solid OR-mapper wouldn’t be that hard). However, I’m not to the point where I want to roll an entire interface to this.
I’m open to ideas if anyone has anyway. In the end, there is a solution — probably several (to this end, Kentico, I just noted today, has enabled a free version of their commercial CMS). However, I’m looking for an “eternal solution” to this problem, if there is one. I want to solve this problem on a theoretical level, not just a functional level.
Year’s 10 Best Application UIs: My hero and commander Jakob Nielsen has released the 10 best UIs for 2008. I’m familiar with two of them: Campaign Monitor and Wufoo, but the others are all new.
Nielsen, in his benevolent and eternal wisdom, noted some trends:
Jakob Nielsen is awesome. And always correct. (You pissed yet, Aaron?)
APNG: Those of you using Mozilla will enjoy this page.
The Animated Portable Network Graphics (APNG) file format is an unofficial extension to the Portable Network Graphics (PNG) specification. It allows for animated PNG files that work similarly to animated GIF files, while supporting 24-bit images and 8-bit transparency not available for GIFs.
PHP: PHP 4 ChangeLog: This, folks, is the last release of PHP4. It is officially dead at version 4.4.9.
Long live PHP5.
Polyglot (computing): A word I did not know before today.
In the context of computing, a polyglot is a computer program or script written in a valid form of multiple programming languages, which performs the same operations or output independently of the programming language used to compile or interpret it.
In order to open it up to a wider audience, I took my “What Makes a Content Management System?” post from last year and turned it into my first Google Knol:
What is a Web Content Management System?
I had to re-format it and “de-blog” it a bit to make a little less informal. In doing this, I was struck by how much I’ve learned even in the last year. I hope that by getting this Knol out there early, I can get feedback and some contributions on it. I’d like it to keep expanding.
The folks over at water & stone have delivered a really interesting report on the state of open-source Web content management. They looked at 16 systems, then attempted to rank their market share.
How you actually do this is tricky. So they looked at two parameters:
To do this, they checked all sorts of measurements including books in print about the system, Alexa rankings, Google Trends data, recorded downloads, people offering development services on various freelancing sites, Twitter mentions, awards received, etc. The number of different ways they devised to try and determine the buzz about a system is impressive.
In the end, the results were semi-surprising. What wasn’t surprising is that they determined that three three systems —
— are leading everyone else, far and away. What was a little surprising is that Joomla seems to be out-pacing Drupal these days. Last year, I named what I thought were the top 5 systems, and put Drupal ahead of Joomla. But a lot has happened in the last year.
Also interesting was the descent of Mambo. Joomla represents a really effective example of a community fork. There was some dissent in the Mambo community in 2005, so a bunch of people forked the code and created Joomla. They’ve never looked back, and Mambo may never recover. This report suggests that it’s on an inexorable slide.
Sadly, my beloved eZ publish did not fare very well either, which is not surprising. While being very strong in Europe, eZ has struggled to get a foothold in the U.S. due to a host of issues, and it’s not making a great deal of headway in brand awareness it seems.
You can read the entire report here (60+ page PDF, though a lot of pages are filled with charts).