Alfresco API: RESTful API Links

Trying to find one reference that links to the entire Alfresco REST API? The following pages are all on the AlfrescoWiki, but its a bit hard to navigate. Note that the 3.1 REST API page does not include the items mentioned in the 3.0 REST API page, or the Deployment REST API page, the 3.0 REST API page and so on. You need *all* these pages, plus others listed below, for a complete picture (I think):

3.1 REST API
Deployment REST API
3.0 REST API
Repository RESTful API Reference
2.1 REST API
2.0 RESTful API
OpenSearch
REST Design Guidelines
CMIS RESTful API Reference

More from Daniel Jacobson on NPR’s content management ecosystem

Programmable Web: Daniel Jacobson: “Content Portability: Building an API is Not Enough”

Previous entries in the series:

Programmable Web: Daniel Jacobson: Content Modularity: More Than Just Data Normalization

Programmable Web: Daniel Jacobson: COPE: Create Once, Publish Everywhere

You can read much more from the NPR team on their blog at Inside NPR.org. A recent post on the blog from Jason Grosman that caught my attention was “What Happens When Stuff Breaks On NPR.org”.

Related:

Justin Cormack has some thoughts on the above series, in particular on content portablility, that are worth reading.

Also related to content portability (I think – okay – maybe a stretch – but is worthy to think about), is “Dive into history, 2009 edition”: “HTML is not an output format. HTML is The Format. Not The Format Of Forever, but damn if it isn’t The Format Of The Now.”

Also Related:

AIGA: Callie Neylan: Case Study: NPR.org

What is ETL and CMS?

You’re a programmer with a task to retrieve information from some source, manipulate and message it, and to deploy it somewhere.

Like all things in programming, there is an acronym for that: “ETL”.

ETL stands for Extract, Transform, and Load. The Wikipedia page is pretty thorough in its summary of the topic and reviews many of the typical functions an ETL process needs to take to accomplish its task.

The problem is ETL doesn’t roll off the tongue so easy. The acronym provides a weak set of metaphors for programmers to map familiar concepts to.

Rafe Colburn provides a great mental model to apply when developing ETL scripts and applications. It’s one I follow, but have lacked the words to describe. Go read his post.

Here’s a thought to challenge you if you are a CMS developer, now that you have read the above – are whatever forms you build to enable people to contribute and manage content in a CMS a kind of ETL process? Does the Wikipedia description for “Extract, Transform, and Load” contain functions there that you would expect a CMS to encompass?

And speaking of CMS, Gadgetopia has a terrific article on what a CMS system is. It is difficult to be clarifying in a world where hype and acronyms get thrown about so much (like this very post!) – but the Gadgetopia piece certainly is. It helps outline the functionality you should expect from a CMS implementation.

Worth Repeating: Rob Pike “Data dominates.” and Frederick Brooks “Representation is the Essence of Programming”

Rob Pike is a famous name in programming with a history going back to Bell Labs, co-author of two often quoted books, and today works at Google.

Back in February 1989 he wrote an essay, “Notes on Programming in C” which many consider contains insight to the “Unix Philosophy”.

One of the sections of the essay people focus on were six rules he listed on complexity. Rule number 5 is:

“Data dominates. If you’ve chosen the right data structures and organized things well, the algorithms will almost always be self­ evident. Data structures, not algorithms, are central to programming.”

I’ve seen people summarize that rule (why summarize three sentences?!) into “write stupid code that uses smart objects”, but I believe that misses the point.

To help us understand the context behind the rule, Pike cites Frederick Brooks’ “The Mythical Man-Month” p. 102. Here it is for your edification:

Representation is the Essence of Programming

Beyond craftmanship lies invention, and it is here that lean, spare, fast programs are born. Almost always these are the result of strategic breakthrough rather than tactical cleverness. Sometimes the strategic breakthrough will be a new algorithm, such as the Cooley-Tukey Fast Fourier Transform or the substitution of an n log n sort for an n2 set of comparisons.

Much more often, strategic breakthrough will come from redoing the representation of the data or tables. This is where the heart of your program lies. Show me your flowcharts and conceal your tables, and I shall be continued to be mystified. Show me your tables, and I won’t usually need your flowcharts; they’ll be obvious.

It is easy to multiply examples of the power of representations. I recall a young man undertaking to build an elaborate console interpreter for an IBM 650. He ended up packing it onto an incredibly small amount of space by building an interpreter for the interpreter, recognizing that human interactions are slow and infrequent, but space was dear. Digitek’s elegant little Fortran compiler uses a very dense, specialized representation for the compiler code itself, so that external storage is not needed. That time lost in decoding this representation is gained back tenfold by avoiding input-output. (The exercieses at the end of Chapter 6 in Brooks and Inversion, “Automatic Data Processing” include a collection of such examples, as do many of Knuth’s exercises.)

The programmer at wit’s end for lack of space can often do best by disentangling himself from his code, rearing back, and contemplating his data. Representation is the essence of programming

References:

Wikipedia: Unix_philosophy

Eric Steven Raymond: The Art of Unix Programming: Basics of the Unix Philosophy

Whitehouse.gov moves to Drupal

Dries Buytaert: Whitehouse.gov using Drupal

Tim O’Reilly: Thoughts on the Whitehouse.gov switch to Drupal

PDF: WhiteHouse.gov Goes Drupal

Content Here: Is Drupal the right platform for whitehouse.gov?

I think you can trace this way back to 2004 and Howard Dean’s run for the presidency. Their team chose Drupal as the framework to leverage for their web efforts and it paid off as part of what was the most Internet-savvy campaign by that time. Inspired by that campaign and their use of technology, I had relaunched Philly Future in fact.

Dries Buytaert says of the choice:

First of all, I think Drupal is a perfect match for President Barack Obama’s push for an open and transparent government — Drupal provides a great mix of traditional web content management features and social features that enable open communication and participation. This combination is what we refer to as social publishing and is why so many people use Drupal. Furthermore, I think Drupal is a great fit in terms of President Barack Obama’s desire to reduce cost and to act quickly. Drupal’s flexibility and modularity enables organizations to build sites quickly at lower cost than most other systems. In other words, Drupal is a great match for the U.S. government.

I can’t help but agree.