Open Source & Strategy
We started talking about this as The zine - a magazine made just for you but everyone pronounced it wine. I think the nod towards xeroxed zines from the 80s is appropriate. Take a windows 8 or flipboard style summary view, but give people enough control to curate their content. This should be a tool people want to tinker with.
We see using the grid layout for any number of UI challenges, so basically think of it as an alternate view layer for an improved page list block. We also want to make it so you can include 3rd party feeds in your grid. So you might include your company's facebook, twitter and youtube feeds in a community page, along with press releases youre posting to the site. Interacting with any of the tiles in the grid makes a page for it on your site so we can store whatever data is required. You should be able to post back to your grid, and have it auto-post to the same services it ingests content from. Add-ons could/should create tile layouts so they can be aggregated in this view. Grids can have automatic sorting, filtering and sizing logic - combined with curated tiles. Tiles can have conversations and events attached to them as free tools in the core.
We will use grids for the main landing page on the demo site, and for your My Account area as much as possible.
All of these are very loose creative direction:
More in the 5.7 plans...
Editing & Page Creation
This new text editor is cross browser compatible, makes clean HTML, is bootstrappy in its styling, and generally is totally awesome. Weve already integrated it with concrete5 so successfully that we can do text editing within the page instead of an overlay to our satisfaction.
This also works easily with the page in edit mode (skipping the click to put a specific block in edit mode), effectively giving us a middle edit state were going to use for other things later.
The only challenge were looking at here is what to do with legacy issues and TinyMCE. My own sense on this one is hey, you upgrade you lose old bad stuff and get sexy new stuff so if theres a strong argument for why concrete5 needs to support both editors, Id love to hear it.
As part of integrating redactor, weve been able to include a new snippits feature that amounts to Mail Merge in MSWord. You can pull in the current date, user name, page name, etc. Were architecting this in a flexible way so a developer might integrate with other data sources in handy ways.
Check out the video from a while ago...
Demoing editing a page on concrete5 always feels great, prospects just get it and quickly become clients. Demoing page creation is less awesome. Explaining to someone that your whole site is a tree and you have to goto the parent of where you want this page to be first is where they start to come back to earth and realize they need to pay attention. Composer starts to solve this problem a bit, but it also solves a completely different problem of making data entry screens for CRUD type problems. Adding more options rarely makes something less overwhelming. Were going to solve this problem by breaking it along more traditional lines:
1) What is composer today will mature into something that creates the scaffolding a developer needs to create a custom entry/edit UI in the dashboard. Use this for creating interfaces for inputting strongly typed content.
2) What is Add a Sub Page today will mature into something more geared for drafting as you go. You can add content from anywhere, you start writing (with auto-save) before you have to decide what it is youre making or where youre going to want to publish it. There will be mobile and browser toolbar versions of this Create tool.
New Add Block Interface
Adding a block will be as simple as dragging its icon from the Add Block toolbar into an area at the exact point you wish it to display.
The fact that sometimes page types exist for layout and sometimes as an object model is not great. Someone should be able to add a calendar event or a blog post, and also switch its form factor. Were going to introduce a new concept called Feature that we can use to quickly determine if a page contains certain types of data for programmatic purposes. This should let us organically push page types towards the layout solution and de-couple functionality from requiring specific page types more. Blocks and add-ons could mark pages as implementing these Features, meaning that youll never have to choose whether a page is a Calendar Event or a Product Detail page type.
Were currently rewriting Layouts completely. The next version of Layouts will honor permissions and permissions inheritance correctly, be better integrated nto the concrete5 editing system, work correctly with area-specific developer methods, integrate better with themes, and be a bit more aware of modern style guidelines. Yes you can lock layouts and reuse them today, but it feels like a last minute feature. We want to make it easier for you to create snap to points so a site owners layout falls on common alignment lines.
We currently have three image editing solutions in concrete5. The avatar picker, the image sizer from composer, and the edit image from file manager. Some of them are Flash (ick). All of them suck. Were rebuilding all of these to be served by one attractive well thought out extendable image editor that the community can add filters/plugins to.
A sneak peak into the goals and vision for the next major release of concrete5.....
Did you know that a major 4g wireless provider uses concrete5 across their web presence, which serves 66m+ pageviews a month?
How about the largest publisher and distributor of childrens books in the world?
The UK division of a well known american car company?
If you're not a regular viewer of Totally Random you may have missed the complete overhaul of the Advanced Permissions system we've been working on in the next version of concrete5. We're getting ready to unleash it onto the world, and we wanted to take a moment to share our schedule with you.
While concrete5 can support multiple authentication methods, and has built-in support for OpenID (in addition to the core concrete5 authentication method), there's no framework for building these authentication methods, making their settings available to administrators in the dashboard, grouping them on a login page or managing which authentication methods are available or how they are displayed. The Authentication Framework will change that.
As concrete5 continues to grow, our organization and roles are changing. When we started, it was just a couple of guys in their basement and a half a dozen sites using the software. Today there are 65,161 users on concrete5.org. More than 130,000 unique sites that have hit our servers for update information. 65,448 sites have connected to concrete5.org and made project pages.
Wow. If you haven't heard the drama, you should watch this video. In short, a premium theme developer (DYITthemes) which sells a wordpress theme named Thesis does not release it under the GPL license.
Matt Mullenweg, the co-founder and leader of Wordpress is calling him out on it; "when you violate someone's license it is breaking the law. It's a definition of breaking the law."
Chris Pearson says he doesn't have to release his theme under the GPL "They are not the highest authority node up on the tree that gets to decide everything that happens underneath them."
You can watch them get all sassy with each other for an hour, if you want. Plenty of people have and some of them are asking for our view on it.
concrete5 is a competitor to Wordpress in ways, and we had to choose a license when we started as well. We specifically did NOT choose the GPL for exactly this reason. Here's how we see it…
1) Much of this is about distribution. Our understanding of this is pretty simple:
If Thesis is distributed as a stand alone download that /includes/ a copy of Wordpress, then Chris is legally wrong. If you distribute GPL software, everything you add to it has to be GPL compatible. Clear and simple, period.
If Thesis is distributed on its own, I think Chris might have an argument to make. It's easy to think "hey this does nothing without Wordpress, it is dependent on it, it needs to honor whatever legal requirements Wordpress comes up with" but I don't think that's technically true. The GPL is about the copying and distribution of software and it doesn't really cover this with a tremendous amount of clarity. There's plenty of examples that would have been a lot more interesting to discuss than what they did in the interview. For example, just because you've written software that runs on Linux doesn't mean it has to be GPL. If you distribute Linux WITH your software as a single solution it does however. How's that for weird?
Regardless, Chris would have a much better high ground to stand on if Thesis actually worked with different CMS backends – much the way that C# application you wrote for linux could also run on a variety of other operating systems.
2) Matt seems like an awful nice guy, and Pearson comes off like a total douche in this interview. I've never met either, I'm sure they're both awesome, I'm just saying after losing an hour to listening to this crap there's a pretty clear answer for who I'd like to have a beer with. That's a tremendous shame because frankly Chris is the underdog here trying to build and maintain a nice small business and Wordpress is the big player trying to squash entrepreneurialism. Regardless, Matt comes off as the hero cause he's a nice guy and Chris comes off poorly because of the way he makes his arguments. Important lessons there, it's probably time for us to do a better job stripping drupal references from our customer testimonials.
3) Wow you can tell the difference that some funding makes. Let me just be clear about what I believe to be the real motivators here, please correct me if I'm mis-informed:
Wordpress Automattic has raised over $40m in venture capital. They have over 25 million blogs out there, and fundamentally they are in the content business. They don't make their real money by selling wordpress, or taking a cut of marketplace add-ons, or offering paid hosting, or any of the stuff we do, they make their money on content. The advertising value on wordpress.com is huge. You have 25 million individuals using your platform to create content, you can monetize that in big ways. That's why wordpress may be frequently used as a CMS to build some corporate site, but you'll never see their core team drop features that help my wife (who has an active wordpress blog about DIY sewing), in favor of features that make some corporate extranet easier to run. Matt doesn't have to worry about making payroll in two weeks, he has to worry about balancing ads and content on Wordpress.com so my wife keeps going there to find other cool sewing blogs she wants to cross link to. Wordpress's real competitors are Twitter, Facebook, Google – they're in that big business of re-inventing media. That's why the GPL makes sense to them. The more wordpress is out there, the better for wordpress, as long as it's called Wordpress.
Chris on the other hand is selling a Theme that helps turn Wordpress into a application that does something more. Again I'm just guessing here, but it wouldn't shock me at all to hear Chris's company is self funded, profitable, and it hasn't been easy to get there. The idea of having a product that you sell at $50 a pop being distributed for free or even worse sold for $49 somewhere else has to make him physically sick. The carrot of "but people will want you for support" is a pretty grim answer.
I'm not arguing that Matt has an easy life and Chris doesn't. Certainly the stress of looking Phil Black in the eye and saying "yes your $40m will turn into $800 million, sir" can't be fun. I'm just saying the two challenges are very different and you can read the distinction in motivation from just the tone of their voices alone.
4) The GPL is stupid, and O'Reilly did us all a tremendous disservice when he came up with "open source". Yeah I said it, so blah! When I was a developer growing up in the 80's, we had licenses that actually meant what they said. If you wanted to just give something away, you called it Freeware. If you wanted to save some money on sales but still own your software, you called it Shareware or Crippleware depending on if you offered a fully functional copy with additional features or if you did something like disable save. These labels came from the DIY software world where entrepreneurs could start successful businesses cheap by distributing stuff on BBS's. (go look up Apogee Games). Meanwhile there were any number of "big" projects that were being distributed under licenses that made sense for schools and huge corporate problems. NASA develops some standard and wants to share it with the world, how do they do that? Several big software vendors see value in a piece of software existing, but not being "owned" by any commercial entity, how do they do that? Everyone wrote their own license and while it was confusing, it worked. Then in the late 90's the successful technical book publisher O'Reilly came along and dubbed everything I've listed as "Open Source" for the benefit of the media which was having a hard time understanding how Linux could compete with Windows. Well that's cool and all, certainly having concepts that everyone can understand in a word is great, but clearly we aren't really there. Confusion abounds. People talk about "free beer vs. free speech" all the time, it sounds like a broken record. Any one with half a brain knows that nothing worth having in life is truly free (in cost), yet we also agree that the idea buying a car with the hood welded shut sounds like getting screwed. The goal to provide some clarity across all the different types of licenses that software was released under by calling half "open source" and the other half "commercial" has utterly failed.
5) You say you want freedom? Then the GPL isn't for you. It is not "freedom" to force people who extend your software to honor ANYTHING you say. I'm not saying it isn't a good business idea, I imagine it may frequently be a great business idea, but it's not "freedom" so don't try to take the moral high ground. You're limiting people and it doesn't matter that the perceived motivation of your limit is to enforce further freedom. Freedom doesn't work that way, but proponents of the GPL seem to think it needs protection. Here's how we see it:
If you're for the GPL, you believe freedom is a fragile flower that has to be protected. "This started as free, we're going to make sure it says free with all our impressive powers."
If you're against the GPL, you believe freedom is a force of nature. It may not look that powerful at a glance, but it's gonna win in the end. It's like entropy. It exists, it will win. It doesn't need your help, all it needs is your awareness and faith, and sooner or later it'll come out on top.
Freedom is the MIT license which to paraphrase in three words says : "Don't sue us". If your goal really is to give something away for no cost and have the world be "free" to do whatever it wants with it, that's all you need. Limit the creators exposure to liability, which would limit their own freedom, and you've made it "free." Of course if you do that you run the risk of someone taking your software packing it up and screwing you over in any number of ways, but no one said freedom was easy.
These issues with the GPL are not new, and it's sad to see this play out yet again. Frankly I like to think that any legal document's job is to create clarity, and whatever your view may be, its clear the GPL is pretty gray in spots. In some ways, I hope this does go to court so we can all get a clear answer on how this thing is supposed to work.
Meanwhile if you want to be part of something that is free, and is eager to be free in a simple understandable way, you should be developing stuff for concrete5.
UPDATE : Orrrrr I'm completely wrong.
As more debate continues in IRC and other forums a point has come up that we didn't address in the original post. Thesis uses wordpress's theme engine and that includes any number of lines of code that wordpress wrote. Clearly that is their work, covered by their license, and Thesis is a derivative of it. THAT being the case, he very well may be violating the GPL. What gets interesting there is where is the line for that not being derivative? If he just goes through and renames all the functions and variables but it functions the same way, is that new work? What if he changes some logic too, for loops become while loops, etc. Where is the line where something is no longer derivative but a new thing?
What if Thesis makes an abstraction layer from scratch that does nothing but give them some differently named hooks to the same stuff, and then releases THAT abstraction layer LGPL and continues to sell their theme? That sounds legal, annoyingly stupid but legal.
Regardless the fact that everyone's so confused about this does bring serious questions to the fore on the worth of GPL and what ‘freedom' means. I hope we find out.
Most of what I've learned from going open source are just good life lessons I probably could/should have picked up anyway, and this one's certainly in that camp. I've always idolized the renaissance man. I'm a big believer in knowing a little about a lot of things vs. knowing a lot about a little. I respect the need for specialists, but even then I think they tend to be better when they've put in the work to stretch their intellect across more than one silo of information. It builds empathy and humility to not always be the expert at what you're interested in.
Going open source has provided me the opportunity to run into any number of people who are very very bright at one thing, don't foster that fundamental curiosity about topics they have no expertise in, and yet seem to think their impressive intellect makes their opinion right on all topics regardless. Just because you're amazing at the 100 yard dash doesn't mean you know dick all about water polo.
I actually had one person complain about their in-ability to do something in concrete5 with the line "look, I /am/ a rocket scientist at such and such university.. I should be able to XYZ." Strangely I am not a rocket scientist and I dropped out of college, but I can do XYZ quite easily. Go figure.
I was reminded of this just now when a thread on slashdot came up. Some fellow is chastising Apple for calling their new iPhone screen technology "Retina Display." Apparently this "marketing drivel" has so offended this guy he feels the need to rant about it on slashdot:
"Again though, why the use of meaningless words? Couldn't he have just said "the resolution/DPI is so dense that your eyes won't be able to distinguish individual pixels"? What, does the average Apple customer really seek the need of some special word to wrap up the device's capabilities in? And if they do, what does that say about their average customer?
I think it's insulting to the people that buy Apple's products, regardless of whether people seek it out or not."
Holy crap dude! For real?? Yes. This is what we have language for. You use words and phrases to sum up larger concepts so a conversation can happen at an acceptable pace. Words do create some ambiguity as definitions tend to be subjective, but without some consolidation it's difficult for anyone to get beyond facts and into useful concepts in a real world situation. I mean clearly this individual is smart enough to understand what a pixel is, how DPI might work, etc… But the basic purpose of language (were not even talking about marketing yet!) seems to not only escape them, but insult them as well.
I take two lessons from this:
1) I am a moron. This one shows up a lot in my life lessons from open source. So far I find the dumber I assume myself to be, the more pleasantly surprised I am when I get something right. If I am hearing about something that others think is awesome and my geek-gland says "that's stupid marketing drivel," chances are they're right and I'm wrong.
2) Just because you're talking to someone "smart," doesn't mean they have a clue what they're talking about.
When we were commercial software things we're, quite frankly, easier in a lot of ways. We had a few dozen clients we had active relationships with, and we worked on about half a dozen projects at a time. In those days it was pretty easy to try out a new idea with the CMS because we would simply put it on the latest clients setup and see what happened. We didn't really worry too much about keeping everyone on the latest version of the platform, and subsequently we didn't have to spend a lot of time worried about backwards compatibility.
We also didn't see a tremendous amount of intentional abuse of our systems. While we did build some large, active, and successful sites, the code behind them was only open to people who had worked with us in the past. To break one of our sites in the commercial days, you'd simply have to guess at vulnerabilities instead of being able to scour code for them first.
Now things have changed. Every feature idea we have is more and more tempered by "what will this do to existing sites or old versions." We've learned about (and quickly addressed) any number of vulnerabilities that some guy in his basement found for free – when paid consultants had found none for five years before. You quickly learn that even the most well intentioned work can cause havoc.
For example, there are two blocks in concrete5 that are commonly used to build navigations: the Auto-Nav block and the Page List block. The Auto-Nav block had been built to honor a certain variable you can set at a page level to hide that page from the navigation. The Page List did not honor the same attribute, and someone from the community pointed out that it really would make more sense if it did. We agreed and "fixed" it as part of some other version changes. Weeks later, people started complaining that their sites we're missing pages. After some frustration we realized "duh" of course people had built sites that worked around the way the blocks behaved in the past and the simple "fix" to the Page List block actually broke their sites.
We spend a lot of our time trying to manage issues that could mature like this now. I tend to take much longer to release something than I used to. I tend to be more thoughtful about the reasons and needs behind any feature changes. The temptation to "fix" something that could have been better implemented in the first place is very strong. Learning to first resist and then very delicately architect not necessarily the perfect, but rather the lowest impact solution, has been a new adventure for me. Once you go open source it is safe to assume that someone somewhere who is smarter than you and has all the time in the world, is finding the mistakes, finding the holes, and making up their own weird work-arounds which will impact you later. Be careful what you touch because no good deed goes unpunished.