Blog
Ever wanted to see how a conversation REALLY goes around the concrete5 offices?
Well this is your big chance.
This Friday the 25th we'll be doing two live video shows from our offices, one at 2pm Pacific in English, one at 8pm Pacific in Japanese. Join us on uStream for these exciting events!
http://www.ustream.tv/channel/concrete5japan
Here's a thread in the forums discussing questions for the shows.
Just to provide some added incentive, we'll be giving away over $1,000 worth of add-on licenses during these shows.
This package provides a complete real-estate solution for realtors wanting to offer searchable property listings on their websites.
This package includes:
We think Six Revisions is an awesome blog with great content, if you don't read it, you're missing out.
We've been working with them recently to help drive awareness about concrete5, and we're having them do a fairly sizable giveaway of our stuff now:
"concrete5, an open source content management system created for the end-user (e.g. your non-technical clients) teamed up with Six Revisions to give away a one-year Commercial account (worth $300), free set-up, and $155 in credits on their marketplace for themes and add-ons. Read on to see how you can be the lucky winner of this awesome prize."
View Post >>
Hey! Andrew again, and I'm going to recap the news.
This Week's News
- Launched some Add-ons:
- Featured showcase Lars Reese Photography and Saelstrom Marketing
- I released two new how-to's:
-
- How to integrate google search by melat0nin.
- How to add sitemap and file manger link to tool bar by jedspurg
- Some traffic came from DesignTutorials4You and Osalt
How we assign your karma raffle numbers
We have three databases - one for each type of contribution (Promotion, Helping People, and Developing). For each Karma point a user has in a silo they get a number of tickets assigned to their name so we end up with 1,000,000 total tickets. Then to build random numbers from toys in the Kidd's Toy Museum.
The Winners, and What They Got
Watch the video to see who won what.
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.
(Pulled from here: https://www.concretecms.com/about/our_philosophy/a-letter-to-php-developers/)
Hi,
I'm Franz, I used to be a developer, now I write emails. I was programming logo in first grade, I was running BBS's in the 80's, hacking together sites with SSI and PHPv3 in the 90's. Now I run concrete5.org with Andrew, who grew up hacking IRC and has worked with me for over a decade. We built concrete5 after years of consulting and frustration with other systems.
I know there are thousands of content management systems, and the learning curve for any new system is a beast, so I applaud the fact that you've bothered to look for something new and have read this far at all. Let me tell you a few things about where we're coming from that might help you continue to find the energy to get under the hood of concrete5:
- We talk about "path of least resistance" around the office a lot. This means creating elegant solutions to real problems. You can't get too high-level or you've just added a layer of confusion. You can't get too specific because you'll end up re-writing it constantly. It's about finding what the consistent elements of the challenge are and building a solution that addresses them while offering complete flexibility around everything else. Path of least resistance doesn't mean cutting corners, it means spending the time to understand a problem and create strong tools for building all the types of solutions you'll need in the future.
- Object oriented code is a good means to an end but it's not the goal. The goal is having reusable code that someone can understand at a glance. If I had to spend 30 minutes looking for a single line of code that is buried 10 directories deep in a file with nothing else in it, chances are you've failed in meeting the goal, even though you're strictly OOP. That doesn't mean procedural is good, it just means quality is about thoughtful balance.
- Just because you can, doesn't mean you should. It's fun to brainstorm but lets not pretend every idea is a good one. I personally am the proud owner of many bad ideas. Every feature added means that much more risk of edge case bugs, so lets debate the value/cost ratio of that feature. Just because we're "open source" doesn't mean we're socialist hippies. Lets also not forget that the first 80% of building something is relatively fun and easy, it's the last 20% of dialing it in that will kill you.
- Less is more. These are websites, not rocket-ships. A page on a website is just a page. While concrete5 certainly has a learning curve and you will need to invest a little energy to get started, you should find the number of concepts you have to grapple with to be far lower than what you've grown accustomed to.
- From the ground up concrete5 was designed to be a CMS. We built this as our tool box to make picky agency clients happy. It's not a blog that people use as a CMS. It's not a news site that had features draped on it until it served no particular market and got dubbed a CMS. It is a well thought-out framework that was designed to let crazy clients manage a great looking website, with next to no training.
If you're hot under the collar right now because I just made it clear I'm not going to automatically approve your add-on when it doesn't follow standards, or that I've failed to understand that your computer science teacher is a god amongst men chances are you're going to find your developer glory elsewhere. If these points resonate with you, keep exploring. You'll find a nicely thought out system that follows MVC and OOP practices where they add value, and helps you get your job done faster and more effectively in the real world.
Best wishes
Franz Maruna
CEO, Concrete CMS Inc.
This Week's News
- Just one of many awesome showcase submissions - Loula Creates.
- We welcome six new add-ons and one new commercial theme to our marketplace: MailChimp, Goodsoil eCommerce Theme, Who's Online, Yosemite Theme, Terra Firma Theme, iCal template (for the calendaradd-on), Dojo Tour Dates and Dojo Google Translate.
- I released a new how-to detailing everything that can be done with the Auto-Nav block. It can also be read and commented on at andrewembler.com. If you've ever had a question about how the Auto-Nav works, what it's options mean, how to theme it or extend it, you should check out that primer.
It's our clear goal to get concrete5 on every well configured web server on earth. A nice script installing app called Softaculous has just added concrete5 to the stuff they support install for. That's great news to us and we're happy to be working directly with Softaculous so hopefully version updates will be smooth sailing for concrete5 fans.
Thanks Softaculous!
Well if you've been paying attention to concrete5.org recently you've seen some fairly cool new stuff like the Karma system. Now we're launching a weekly video show "Totally Random" where we share news on concrete5 and interesting things we bump into along the way. Check out our super rough but amusing pilot here: