I opened our fridge, and this is what I saw:
It occurred to me that this moment sums up exactly why Concrete is an excellent place to work. Let me put it out there for you:
Reason 1? An abundance of beer.
Reason 2? An abundance of humor. No, for the confused amongst us, we aren't PETA-hating, raw-animal-eating nutjobs. We are, however, irony-loving, hipster-leaning, Arrested-Development-watching nerds.
(Note: I did not open the bag.)
I arrived at work today and prepared to engage in my typical morning routine. Step 1: Put lunch in fridge. Step 2: Brew Coffee. Step 3: wait nervously until step 2 completes. Step 4…well, you get the idea.
Hey all, this is Andrew. I'm Director of Technology here at Concrete Websites, and I'm going to take the reins from Franz for a second.
I've been making websites for more than ten years – first as a production/HTML guy, then a web and database programmer, and now as a director of some very talented programmers. Through it all, a number of things have remained constant. One of those is the impressive amount of bullshit involved when talking about the web. For example, in preparing for this post I took a trip to The Web Economy Bullshit Generator, and while its layout is dated, its content is as hilarious and spot-on today as it was when it debuted. And as the web changes, new sites have arisen to chronicle its changing lexicon. Everyone, it seems, is hatin' on buzzwords.
Why do buzzwords get such a bad wrap? See, as engineers, programmers and information architects, we like precision. We crave it. However, language by its nature is mostly antithetical to precision; terms that get created to express complex concepts can't help but miss some of the nuance, because that's what language does: it distills the complex into something that a person can wrap their minds around without wanting to shoot themselves in the face. But engineers look upon this compromise between precision and accessibility with disdain, and as a result consider buzzwords a bunch of hokum.
I understand this distrust. However, as I've moved from doing day-to-day work in the trenches to more conceptual and managerial work, I've found myself engaging in the unthinkable: I've started to use terms like those so mocked above in serious and non-ironic ways. It started with AJAX, a decent word used to express a technical concept. Now I can't stop: words like "leverage," "scalable," and "monetize" are a part of every day conversation.
Why all the back-story? Hopefully, it convinces you that what I'm about tell you isn't the result of some knee-jerk antipathy toward "buzzwords." I use buzzwords. I think they have their place. I think they can assist in communication. However, when used in excess and in place of any actual content, they deserve to be mocked mercilessly.
Let such mocking commence. The victim? TechCrunch. Their latest article, Bill's Gold Watch, is bafflingly incoherent. Check out some of these quotes, as helpfully disected from the "article" by the second commenter:
- "cloud infrastructure battle"
- "made that platform relatively salivating"
- "while Google methodically mows down the marketplace"
- "going to consolidate Facebook's equity in social metadata and create a groundswell of OpenID adoption"
- "warm fuzzy feelings for Web site owners who become part of an expanding network of reuse of the original log-in"
- "The terms of service for accessing social clouds will normalize over the next few months as users gravitate toward sites that leverage their original investment in OpenID registration"
- "producing affinity based on less work, common interface guidelines, and pressure on Facebook and outside clouds to modify their terms of service to avoid having to reinitialize access to their social data over and over."
- "starting to accelerate in real time streams over Jabber and XMPP"
- "allowing the kind of piping currently enabled between Gchat/Talk, iChat, AIM, and Twitter, which together produce a common set of streams that all are recorded and archived in Gmail's Chat repository"
- "the last time we saw this type of viral spread, it was Adsense carried on the river of the blogosphere"
- "social graph being formed out of the combination of follow and filtered Track"
- "can provide infrastructure to model the unique characteristics of Twitter's dynamic graph using Facebook's avatars"
- "can fit into this like a glove, feeding downstream vertical versions of affinity groups to skinned Silverlight containers"
Jesus. Come on! I first thought of this blog post after reading the sentence "It's not that Friend Connect is going to slow Facebook down; to the contrary, it's going to consolidate Facebook's equity in social metadata and create a groundswell of OpenID adoption which in turn will drive Open Social app development." Who actually believe this?! I'll talk to you all day about social networking, social bookmarking, and grid/cluster computing, but if someone opines in my presence about the "social cloud," they're probably in for a confused look, at the very least. And the sentence "Live Mesh can fit into this like a glove, feeding downstream vertical versions of affinity groups to skinned Silverlight containers." It reminds me of that episode of The Simpsons, in which Lisa, upon seeing a sign for a "Yahoo Serious Film Festival," remarks, "I know those words, but that sign doesn't make sense."
Every industry and field has its echo chamber, in which nonsense is amplified to the point of credulity. The web, with its ability to propagate concepts so quickly and effortlessly, is probably worse than most. Perhaps TechCrunch is a victim of this. Or perhaps they're just trolling for article hits. But if you want people to take you seriously when you say something, it helps to actually say something! I'm convinced that's the true problem with buzzwords: they make it all too easy to write 500 word articles without saying anything at all.
So I originally architected Concrete CMS in a nice little bar in SE Portland to deal with an adCouncil gig we had with too many stakeholders and not enough time. That was many years ago, and since the early days my dear friend and comrade Andrew Embler has taken the loose direction outlined in my sketchbook of "blocks and collections" and made it work on fixed budgets for demanding clients. Concrete has had some really compelling concepts since those early days, but like any box of tools you use hard – there's some idiosyncrasies that drive you up the wall. Being the guy finally responsible for training clients, and getting content into working sites that make sense – I've been looking forward to getting my hands on the complete re-haul concrete5 for some time. I've peered over shoulders a lot, but today was the first time I got to play with it on a site I need to deal with.
Some sites that I think are making the world a better place:
Minti.com – a parenting site that people seem to really use to reach out and find solutions and fellowship in parenting.
FreeRice.com – a mindless game you can play where the more you play the more rice they donate to the World Food Program. Does it make a difference? I dunno, but I like the idea of the energy people put into games being recycled into something useful.
SchoolPulse.com – full disclosure: we made this. That being said, the idea of teachers, parents and school administrators having another way to communicate appeals to the BBS guy in me who thinks that people can open up in different and sometimes better ways through digital media.
current.tv – I actually liked the last version more than this, it was easier to find the indie political videos. I like getting my news from the many, not the few.
I'm not going to name a political site, cause it's been done to death and frankly I don't really spend any time on a candidate/issue site.. weird.
Besides, that'll give you some thing to post about, and tell me what else am I spacing?
If the web can make the world a better place, lets have some more examples….
"Okay so let me get this straight, when we first spoke it was $13k to own it, and now its free? Are you sure about this?" a dear friend and repeat client who runs an agency just asked me.
I get that you want to provide for your family, sooo what are you thinking?
Are we going to offer a "freemeium" model where you get crippleware for free and the useful parts in expensive add-ons?
Are we going to have a different license depending who you are?
Are we going have a donation button or something?
Yes, but it will point to our favorite charity, which can do more good with the cash than us.
So I give up, why do you think destroying your perfectly viable license revenue is going to provide stability and creative freedom?
Here's what I see. The biggest challenge my crew has is bizdev. We're not perfect at everything, but we sure can deliver sweet stuff and we improve every day, execept for sales.
We've only really won good gigs through word of mouth. We've tried just about everything, and without marrying yourself to a particular vertical, it's very difficult to define a meaningful marketing strategy for a web/IT services company that wants to do "cool stuff." From my experience you do your best, and try to cultivate as many life long associates and friends who will recommend you as you go.
As the network slowly grows, things get easier over time, but it doesn't really deliver with security and creative freedom if it ties you to a limited local gossipy scene. (yeah i said it).
So while completely giving away something we have and can charge a lot for, we're actually doing ourselves a practical favor. Sure, we'll be giving up a revenue stream, but we're dropping a expensive business development challenge that we've never been good at or interested in solving. We certainly will still spend some real resources to make Concrete5 known – but a lot of that can be our time instead of cash. Moreover, if what we've been working on all these years is really as good as we think it is, we stand to jump-start a process that would traditionally take much longer. I'm interesting in seeing what a larger open source developer community might contribute to the project from a code standpoint, but I'm hungry for their evangelism about concrete5 to their clients. I don't need (or want) to own every dollar that is made off of concrete5. Why not just get out of the way and respond to opportunities as they arise as thousands of people deliver concrete5 powered solutions to their clients?
That's the practical reason to go "free beer." The real one is better:
Content management is a basic human right.
It costs next to nothing to write your thoughts on a piece of paper and nail it to a door, it should cost about the same to make a basic website without it having to be a blog. If we can do that, we'll win one way or another.
Just catching up on my New Yorker articles and read this interesting one by Eric Alterman about the death of the newspaper.
Yes, newspapers are dying, in fact – they predict the last one will be delivered to the last door on 2043 (not sure how they came to that, but yay for trees.)
The real point I took from the article was "good God! this is horrid, because original reporting is HARD and EXPENSIVE… Blogging is all well and good, but all bloggers do is pontificate and comment on other original sources"… which to a great degree is true.. (omg, is that me admitting to being full of bs?)
had yet another client meeting today where someone wanted "a corporate blog," yet when asked "list 100 topics right now" question had little to offer.
the best solution to this in my eyes is a centralized blogging interface for all employees & associates, with tag/category based cross referencing and featured embeds throughout the rest of the site for depth of content and SEO purposes.
Concrete has been around since 2003, this major version update that has been a year in the works and is major version release 5. While our content management system has always been "open source" to our clients, who paid for it; this is the first fully "free beer" open source release we've done. We're giving away our secret sauce and we're thinking how to protect the years and millions in development that have gone into it.
We've come to recognize it's the brand. We will trademark our name as Concrete5™ – and make money by being the official host, trainer, documenter, and support provider. Conversely we may look at any of those roles and tap a better suited partner as an "Official Concrete5 Solution" in return for some license or revenue model.
The Ruby on Rails guy looks to have similar ideas around his brand and license model, which is also MIT.
Models? Patterns? ARRRRG!
In previous versions of Concrete we've kept the technical architecture for how pages are presented pretty simple. Every page is a single type. Each type has a PHP file that handles presentation, and a record in the CMS that defines default/shared blocks you want to always show up. When we build sites ourselves, this typically works pretty well for us.
Sadly, it tends to get out of control when other people start playing with it. Our developers tend to think of page types as functional, and aesthetic idiocyncries from section to section are handled in that presentation PHP. So if you have a page type of "Case Study" it's going to use the same template no matter where you put it in the site. If you have case studies both in your Product section and Services section, we would A: make the navigation block that renderes that primary nav handle how it looks, or B: add some logic to the template to do area specific presentation stuff based on where you are in the category tree.
A lot of the development shops we've partnered with in the past tend to think of page types as silos or areas of the site, not functional break outs. So Products and Services both get their own page type because they have different side bars. Now when you add a Case Study that was originally designed to show up in the Services area to the Products area, its gonna have the wrong header color. All of a sudden you end up with a ba-gillion page types to handle these scenarios, which basically defeats the whole point.
The resolution we seem to have come to is split the concept in two. In Concrete 5 you will have page types that map to what goes on a page. You will also have Themes that are presentation focused, and control where and how that content/functionality is presented. Themes will contain templates that map to page type names. Every theme must have at least one "default" template, which will be used for a page type if no specific file exists.
By splitting this in two this way we hope to handle more diverse situations in a more intuitive way for end developers/site owners – my only fear is introducing too many labels and leaving people wondering where their presentation layer is coming from.