Recent blog entries for zanee

3 Dec 2008 (updated 3 Dec 2008 at 16:09 UTC) »

World Plone Day 2008 Talk - Hunter College

World Plone Day 2008 Talk - Hunter College
Christopher Warner (c) 2008
New York Media, LLC (c) 2008
cwarner@kernelcode.com
christopher.warner@nymag.com

When I was invited to be the keynote speaker by Hunter College for not just Plone, but on behalf of New York’s Plone user Group for World Plone Day. I really wasn’t sure what I was going to talk about in specific. So being psyched to do the talk was one thing but after strong consideration there was much to cover. Where was this to begin? Should the talk just cover some Plone technology that I could whip up in a couple of weeks at New York Media? Or, just how we are using planning to use it? On content management alone or what?!  Eventually I came to the conclusion that covering Plone and Content Management in a way that could reach a general audience was the best approach. The main concern is that most of the concepts involving Plone and Content Management itself as a topic aren’t readily understood. Hopefully I reach this goal of making these things easier to understand during this talk and I’d like to thank New York Media for allowing me to be here (as I spent some of my conference time on this, if you saw me working away; this was what I working on)

What is Content Management and What is Plone?
By itself, it’s about the phrase “content management”. Content, in this case refers to the data; and the data is what we will be managing at the end of the day. It’s the actual processes involved with managing content one may own. Whether it’s about a specific piece of data that comprises a list, or an object or any another piece of data that one considers content. So, a file by itself may be a piece of content or a model with a list of attributes that comprise facets such as “hair color, eye color, etc” all of this would be considered content. In short, content, is whatever data one considers to be important to them or their business. So, whatever the business is in the business of selling. Whatever that product is. That is the content. Whether it’s automobiles, magazines & newspapers, movies, TV, ones own physical labor, etc. All of what compromises the product being sold is content. That being defined, we now know it’s important to us. How do we go about sharing this content on the web, managing this content and generally exposing our content so that it can be utilized in many different fashions by many different people. We don’t live in a static world any more, the concepts of waiting to read a paper in the morning is becoming more foreign and technology is allowing access to this content more efficiently each day. No one is waiting for the newspaper in the morning! People are going online and accessing this content 24 hours a day 7 days a week. It’s at their finger-tips! Due to this fact we need to be more efficient in providing this content. This brings in what I have termed the “Three Core tenets of Content Management”

1. Definition of data - What does your audience consider data, what do you consider data and what is the process that gets that data from you to your audience. Is this process understood? When we ask these questions, it’s not a singular realization. It’s a team-based realization of the product that you are providing to your customer and the levels of quality you plan to achieve.

2. Workflow - How does all of your data get from you to your audience in one way or fashion; is it just a website or are you reusing some of your data elsewhere. What is this workflow? Also, again, when we ask these questions, it’s also not a singular realization. Again it’s a team-based realization of the product and all of the processes and cycles that it must go through before reaching your customer. If it’s a magazine do you know the houses it must cycle through? How does the front cover get on your website? What processes are entailed? Etc.

3. Security - Views/Permissions - Who can see this data, do subscribers get unfettered access, are there different tiers of access to different types of data? It’s about security but it’s also about retaining control of the product until it’s completed. Once it’s hit the web you will no longer have that access, so controlling what pieces of data can be seen up to that point is important.

All of these are questions that apply to each of the core tenets.

One of the critical and most important issues involved with content management is workflow of data and process. It’s a severely neglected piece primarily because we tend to think of these issues at the software level alone. If we have not defined what we consider a piece of data things will get confusing extremely quickly. Lets take an arbitrary example of a fashion model; one may envision this model as being comprised of just physical attributes; and another will envision this model as just a name. The definition of what a piece of data looks like critically important. The process in which that content is then displayed to your audience is also very important. If it is not defined your audience will certainly not understand what they are looking at. Things go from confusing to pretty much mind numbingly insane. They may look at your webpage, your product and simply be confused. You want to know that X editors will work with X content before it’s passed on to X person or profess for review and then passed onto a final person for approval before it’s displayed in lets say a webpage. The more people that understand the process, the better.

When we say workflow what we are actually saying is how we step through the content and/or the processes in which the content has to go through before being published or displayed in its final form. You can think of this as a process or formula if you will. For instance, when you get up in the morning there is routine that you step through before most likely going to work. If you think of yourself as the piece of content this is what your workflow would be:

1. You wake up.
2. You find something to munch on.
3 Turn on the TV. (for those of us with such items)
4. Read some email.
5. Run an exercise routine (sub workflow).
6. Shower, brush our teeth, put on some clothes (more sub workflow, for some of us. I only put clothes on because everyone else does).
7. Lock your door and proceed to work.

The above 7 steps would be what we call a Workflow in Plone (or Content Rules). Summarily, these steps include several sub workflows or routines for each step. For example the Shower, brush our teeth, put on some clothes (some of us) etc are part of the Bathing sub-workflow. So in the above example we are the content-types and before we can present ourselves to the world we go through our “Morning Routines” or “Morning Workflow”. Essentially covering our three core tenets to the tee.

Next up, we have views of ourselves. This is how the world sees us after we get dressed and are ready to present ourselves to the world. (Again, some of us don’t mind stark nakedness). In some cases there are privileged human beings who get to see us in certain views we don’t want the public to see us in. A good example of this is a significant other. One that has been granted access to see us unclothed; some random other individual has not been granted that access and therefore they only have permission to see us clothed. Then there are the stalkers who have been revoked access outright and really should not even be within 500 ft of us. Every now and then you get someone who doesn’t consider certain access rights to be as privileged as you or me and you get to read Playboy and/or Playgirl; (whatever floats your boat).

This is how views and permissions work in Plone, users/groups have the access to see or modify content based on the permissions they’ve been given by the administrator. Very simple stuff, the hierarchy and granularity of this system can become pretty fine-grained. Or in simple terms, you can tune and turn the knobs any which way that you want.

The content in specific is recognized in Plone by calling it a Content -Type or Content-Object. When we say object we mean everything involving that piece of content. So, a Model’s name by itself may not be a content object. However, a model comprised with all of the attributes; a name, hair color, age, eye color, attitude, highlighted attributes like a model known for her/his legs or the color of their hair etc. All these combined make what we would refer to as a content object. In real world terms, something that can in essence be held or modified. In computer terms, something that combined with all of its attributes or facets we can reference. So in the real world, for the young ladies in the audience You may look at Model and the first thing you identify are the accessories, the colors. A completely made-up typical conversation would be along the lines of. “Wow, the color of that outfit is amazing, it fits her so well, did you notice the shoes? That Gucci watch was the perfect match, the earrings, if she wasn’t already wearing them I would be wearing it!” In this scenario the model is the object and the accessories are attributes to the model. At the end of the day without all of those attributes the model, is still a model. There are some base attributes we expect of a model, Tall, thin, attractive. These will be the same regardless of what model we are talking about.

For the gentleman in the audience, your example, is the same one, I already explained it.

Content Management is also about using data through out as many different systems as you want. Your data should not be locked up in lets say Plone or any other content management system. It should be available in one universal data format and readable or presentable in 100% standard. You take this approach because you want to provide your content, to your customers in the fashion that they want it. It is just good business! Locking up your content lowers the amount of eyeballs as well as affecting your potential bottom line. You should be able to break down your data into xml or some other format so that it can be easily imported or read and used in other systems. That said, the access to the read only content should be available as easily as possible. This, so other systems can interact with your content without having to copy bits and pieces and cutting up the concept of the object or the content. Why copy the data around when it is available in one standard format, in one place? At best you want one core system that is managing what you consider content.

So what is Plone? Plone is probably one of the few if only content management systems that espouses all of these tenets. It has an object backed database that manages content objects in a way they can be exported into a universal data format or making the content available and/or exposed via xml-rpc. It also has rich features in regards to clustering, security, workflow, process and user management. As well as an event system and one could go on.

Why New York Media chose Plone
New York Media, which used to be New York Magazine (there’s some brain exercising here; but New York Magazine used to be owned by a media company called Primedia which was then sold sometime in 2003 to Bruce Wasserstein and Co. Since then the magazine has grown).

It was at Primedia where the opensource content management system Krang was born for the management of the companies portfolio of Magazines. When New York Media was sold they took this content management system Krang with them. There’s some background here and a slight disclaimer that I used to work at Primedia. Noting that, Krang is great for a quickly made static site where not much is going on. If that’s the sort of data that you plan on organizing then I whole-heartedly recommend it; it’s very barebones no frills and it will get you what you want fast. You have a logo, a bunch of pages; some templates; pretty simple. The problem is if you plan on growing, it’s not as great. New York Magazine if you take a look at the homepage (nymag.com); you’ll see A LOT going on. There’s so much more going on than a simple webpage; you see things like RESTAURANTS, BARS, NEWS & FEATURES. You are looking at Content-Types, objects that have attributes associated with them. Listings on and on and on. You need something to manage all of this; a database is not a management system. It’s just a store; a Data. Base. It’s a commonly made mistake that you can throw some data into a database and build an interface and voila! Sadly, none of that is managing your data.

Managing all of these different types and content itself was quickly becoming a problem because Krang isn’t a dynamic system. It was written using Perl OO (Object-Orientation), which in comparison to other OO languages is extremely lacking. In Krang there is no workflow system, no concept of managing tools or objects outside of the system. It wasn’t built on-top of an application server so there is no cohesiveness and because it’s not widely used there are many, many, many bugs. From memory leaks, race conditions, to obtuse unreadable code, and module organization. Needless to say it was and still is a pain to administer, a pain to program for and generally a pain. Having to deal with the system myself for nearly a year and half at Primedia with over 50 magazines and all of the editors involved, then, summarily making the decision to continue the same journey at New York Magazine it became obvious that it was time for a change. I deeply wanted to change it. Albert Lee, the current Director of Technology and summarily my boss at the time made the decision of putting me in-charge of content management. Initially, I just wanted Krang to work because as a System Administrator it was incessantly causing problems. Diagnosing those problems was I believe on the level of learning the Microsoft dark arts. I knew Perl, but programming as a job? Administering Krang in and of itself was becoming a full-time job. No way I thought! Perl. As a job? I didn’t like the language for all sorts of reasons but it was used to build this big system and I’ve seen that done time and time again and all the pitfalls were staring at me in Krang. At Primedia it had caused me enough grief in having to explain to editors and users why they shouldn’t be putting Microsoft-Office.exe in Krang. There was simply no choice but to get it working at least halfway decently. I then started taking a look at the code in deeper fashion, mapping it out better looking to where subsystems could be analyzed and replaced. Just to better understand how I could subplant some of the ideas that I wanted to work with (At this time OpenSolaris was about to be released and I bandied about the idea of working on it and maybe going to work for Sun Microsystems  before this content management excursion). After two or three weeks it became obvious I was climbing up the tree backwards. The system itself hadn’t been designed for any of what we planned to do, things seemed very ad-hoc and there is really no subsystem with the exception of publishing to speak of.  My nights blurred into early 2am-3am mornings and I realized I would first have to stabilize the whole idea of the way Krang published and managed content and to start with this ball of spaghetti mess felt overwhelming. This is when I began investigating totally different solutions, I think maybe Al called me in for a meeting and planted the seed which got that going in late 2007. That’s when I started taking a look at something called Zope and the more I looked at it the more it became clear that it was something that I wanted to use.  After looking at Drupal, Ez-Publish and a host of others it was the only system that seemed designed for true content management. There are a lot of pontificators who will say if you want to do a website then Drupal is great but I saw Krang in the fact that it’s using Php OO and the core tenets aren’t fully baked or are completely non-existent there. This then led into the most completely insane idea I may have ever had. Well for those of you that know me. One, on a list of many completely insane ideas I may have ever had.

I was going to write my own content management system. This was dead serious.

Using Zope and its CMF (Content Management Framework). I began searching around; I was going to base this whole thing off of OpenSolaris/Zope+CMF and Postgres using ZFS as my base filesystem. I AM SO COOL I thought in my head and I am going to get this going. New York Media could fire me, I really didn’t care, I would just take 6 months off and day and night work on it. Then I would release it and start my own awesome consulting company that got everyone in the world to use it. It had to be done if I was going to sanely continue on at New York Media anyway. That’s when someone realized I was about to drink a vial of nitrogen and prepare to accept my Darwin award. So, they simply recommended Plone, some people had already thought of that!  After the first week I was HOOKED. I even wrote a blog entry about it and since then I’ve been hardcore Plone/Zope/Grok (for one off applications). I tried to quickly demo the functionality and run a presentation stressing the fact that we NEEDED Plone and summarily; that’s the long and short. Since I don’t own my own media company. New York Media seemed like a good place for all this cool to go down.

We needed clustering capability, we were being constrained by our current content management system, our data model didn’t represent the way editors/producers or designers spoke about or envisioned our content. The management of the data itself was simply left to Mysql and scripts all of which were simply not working and not going to ever work in the long run. Most developers and/or system administrators who like working things absolutely loathed Krang or didn’t even want to touch it and it was difficult to work with all the way around. That, combined with the fact that we weren’t normalizing our data in any fashion or doing any of the things we should have been doing. Compounded by having an extremely small team. It didn’t make sense! There is/was simply no way to continue on that path if New York Mag was going to be successful as a media company with some of the ideas coming down the pipe. How could one possibly run a media company for today’s world with yesterday’s idea of it?

So the main person to thank here for this is Albert Lee for allowing the painful process. It’s not been the easiest road but the road less traveled and all that. I’m actually pretty sure no one else saw or understood the issues as being as dire as they were.

So how is New York Media using Plone? Where is it currently being used?
Currently we are using Plone in Image Management. It’s been a process and it’s easy to get fatigued but we are moving forward. There are other areas where Plone will eventually become useful whether the institution at large knows about it or not. For instance, why should New York Magazine’s content only be available in one language? Or why shouldn’t the disabled be able to read New York Magazine easier? Why limit the audience? Sure it’s a magazine about New York for New York but as we all know New York is a place of rich culture with people from all over the world living here! New York is an international melting pot but our website doesn’t reflect that; and the web isn’t just in New York. Our market is international just by the fact that we have a website! There’s so much to cover sadly, I probably need to write a book or do a phd thesis or something.

This is great! So, it sounds like Plone is maybe something you want to use. I’m going to use it for everything! (small little break dance here)
Hold on! Put that vial of nitrogen down!  It’s my turn to save you. Plone is not the Holy grail in regards to content management, nothing is. Proper content management isn’t just about using one piece of software even though you may now love Plone. For some institutions or people it may be enough but by itself it sure isn’t going to work if you think displaying your content on a webpage is the only issue. Plone at its heart is a content management system. If you plan on creating a web site that doesn’t change much or have a one off application where you are managing one “content-type” or simply you have 5 attributes to an object and you are using a LAMP stack. Plone is probably too much for you. Plone is not the Holy Grail for that space. A framework that allows you to create easy quick widgets with a modicum of management, of data, is not the same as a framework that is going to manage your content. If you are like me in a rapidly changing environment where you need to manage many content types and data models and the need of your users will ALWAYS be changing you could do no worse than Plone. Even for a small group of content-types it’s obvious you will need help with management. Otherwise, you end up with 10 different admin interfaces, 10 different data stores, all managed differently; in different places; and you start scripting around that and building around that and it turns into a spaghetti mess. Primarily and especially if you have a small team; if you aren’t a large media house with a large team of developers at your finger tips; you simply cannot afford it. Even if you are a large media house, it’s not going to work if you aren’t dedicated to the underlying processes and concepts. The underlying framework that will need to be written is staggering; and again, even if you could. You would need to be willing to dedicate time just to that! You’ll probably need proper locking of objects, clustering, permissions, workflow, security management, user management, search capabilities. Drupal? Share-point? Midgard? None of them are as mature as Plone and its underlying framework Zope. This isn’t a comparison talk but I challenge anyone here to find something comparable, today, for free, all in one package or without having to build from the ground up available in this market. Now, don’t get me wrong, for one off applications I recommend Grok, Django, Pylons, etc; but for content management. The only thing out there doing it all is Plone, and that’s thanks to Zope as an application server and the hundreds if not thousands of people who have worked on this relentlessly nearly for the last decade. Bottom line, you can’t buy developer time like that. Even if you are Google (which is probably why Google instead just hired one of the Plone founders)

There are things Plone is good for and things that it’s not so good for. So you would not want to run Plone as your blogging platform of choice. It’s possible, people do it, but as far as blogs go it’s a bunch of text and images presented in log format. Wordpress/MovableType/Drupal are great for those sorts of things because that’s what they are good at managing natively a “Post”. Using Plone would be like driving a mac-truck to work! (well unless your work involves being a truck driver of some sort). As the saying goes. Right tool for the right job. That said, technically speaking, technically. One could write a blogging product for Plone and again, people have. It could even be as feature rich as lets say Wordpress or MovableType with enough time and effort. Of course, you could save yourself the year or so, and the oodles of development money and just use Wordpress.

I should also note that contrary to our drinking vials of nitrogen analogy. There are sometimes where building your own tool is a good idea especially as it relates to content management. The space is rather new considering that management of content has become an issue due to the digital archival and creation of content across the board. New is relative by the way. As it relates to dead-tree media, let us say a decade or so and some of the tools that are available have already become useless. That combined with the fact that every different institution or project is going to have their very own special corner cases. So it’ll force you to innovate. Especially as larger companies and organizations are trying to figure out the best way to manage their digital assets. Media companies in general have been notoriously poor at this; Video media companies have a little bit of a jump-start but dead-tree media is pretty much brand new to this arena and their needs are completely different.

Dead-Tree Media, is dead but magazines are not dead. Magazines are Golden houses of content, they have the most important thing on their side. Content creators, WRITERS! A blogger isn’t a writer, people are still confusing the two. A blogger for all intents and purposes are the op-eds of this new world. The only thing that has changed is the medium, a media houses audience are using smart-phones, laptops, screen-readers, rss readers to access their content. They aren’t picking up the paper or ordering the magazine anymore. They are going to magazine.com. They are on the train with their Iphone in their hand trying to access the site or read a downloaded article or podcast by a specific author they like and then forwarding it through a social network. The only dead tree media company who has blazed something of a trail here is the New York Times. That said, since these ideas will be new to your organization there are “talks” as I like to deem them that one will have.

The System Administrator Talk

You are eventually going to have this talk with a system administrator do to the way Plone operates and the stack it works within. It uses things like Zope which is an application server and you need a proxy server to interface with it if you want to properly deploy it. Then you may actually need to have a caching system of some sort; so that means Squid or Varnish, then there’s the object database; and ZEO clustering. All of this is relatively easy once you understand the concepts so that’s not the major issue. The difficult issue will most likely lie with your system administrator. If you are a System Administrator or have been one, know one or have to interface with one. You are probably aware they can be very hard-line, structured people. They detest adding anything new to a working system most likely because they are aware that more than likely 9 out of 10 times it is highly likely to break something, somewhere. Whether it works perfectly by itself or not. Once introduced into a new environment it’ll most likely break something they’ve worked tirelessly with to get a perfectly balanced eco-system. In a time where every developer is 100% sure there stuff works and 1% of the time that is true. Trust me,when I say, you will have this talk. I know for sure, you will have this talk. I will bet you money, today, right now to anyone here. You will have this talk. Even if it’s a talk with yourself because you are the system administrator.


Before you deploy or think about deploying there are the things you’ll need to take into account. Will it scale? How much memory is my current development instance taking up? What sort of environment currently exists and how can this fit in our current environment. If you don’t know; then you need to find out. Should you need the help of your system administrator. After you ask yourself those questions and don’t have the answers, the time to talk to him or her is then. Not when you’re done, but before hand so they can either prepare to get you what you need or to prepare to put your kit into his or her environment.  Learning about all of this maybe a bit of a stretch for a system administrator under the gun. So if you can make it as easy as possible, that is what you should do.

If you do not prepare. Then you’ll most likely get answers like “It’s not LAMP, i’m not supporting it. How come you can’t use Drupal or Joomla or something that uses our LAMP stack? Everyone uses LAMP it’s like industry standard defacto!”

“Why do you have to use Squid/Varnish?! It doesn’t fit into my LAMP stack; sorry you lose, I win.. small dance here.. No, seriously. We can’t do it, little dance here.”

“Mysql, Postgres, SqlLite, Sql Server 2000, Oracle; I can handle. This object database? There’s no M no P?! I have never heard of this before in my life. Sorry, we can’t do it!”

What will make them even more adverse to any change is if you come waltzing along last minute dumping all of this on them without having answers to any of these questions.

The Developer Talk - Poisonous people
This bit is here if you have to work with a team or on a team of other developers whom you may have to interface with at some point. There are going to be battles especially with Developers. I’ve found throughout my trials and tribulations that there are two types of developers. The Good (me and you) and Everyone else. The Good are willing to use the right tool for the right job and generally aren’t afraid to learn new tools or new languages. There’s nothing wrong with picking up a new language and learning it or trying new things so that later you can add to your gamut of decision making weapons. It’s simply proper science, and the natural order of method. Pretty much, it’s open-source. Building on the backs of other great finds to create better, bigger, faster, cooler stuff. Again, using the right tool for the right job is important. Now, the other type of developer is what I’d like to call a silo’d closet developer. They don’t like anything changing from the way they do it, they have ideas that are specific to their realm and their realm only and they will do everything possible to keep it that way.


The Lingo of Business
Face it, at the end of the day this is about the bottom line. This is business and saying something is free is just not good enough. It’s highly attractive but that’s like saying “Hey this Porsche over here is free! TOTALLY! All you have to do is build it!”. That is simply unacceptable. The attractive options of Plone is that it’s free, has many features other enterprise content management systems do not, has a corporation behind it’s underlying technology and many consultantcompanies if one should get stuck. The detractors are there are areas where there is more work being done specifically with documentation so that some of these concepts are more accessible to new users and developers. Also we are dealing with a new stack so you won’t readily find as much developers as a LAMP stack but as time progresses these things are being worked on and will change.


Management Talk
Your other battles will be from the management type. No one from management ever walks over to a skilled painter and tells them what brush stroke to use for their commissioned piece. Hey they may not like the color, or they may want more paint on the canvas but they aren’t going to tell the painter what brush or stroke. Some guy chopping wood knows what axe or wood splitter works best for him/her. A mechanic knows what he/she needs to fix X car and if a specialized part for the car is needed; that is simply what is needed. So this is one of the few industries where that age old battle doesn’t even get a chance. Where people who simply aren’t qualified to make those sorts of decisions are making them and it’s forcing developers, system administrators and ilk to write and deal with systems that are at their core; void of all thought and process, essentially brain-dead on arrival. These systems never, ever, last long and shockingly the process is begun again. Some people leave after burn-out, new people fill their seats, nothing changes. Moving from broken system to broken system. We can stop this sort of behavior!

Would you would want to use or get in a car built by a manager at Ford with a degree in humanities. Who has never done the work of engineering anything in real life? [Some of you would and that car would be called the Pinto]. No one here wants to take direction from a PHd who is theorizing about how things should work but doesn’t take these ideas to real world conditions or environments. This happens a-lot in this industry and if you take anything from this talk. Take this bit. We absolutely need more people who are developers, system administrators, engineers who are doing this stuff in real world in positions of management. People who can make these decisions, get funding for them and guide the non-technical side of the company in a way that both sides are able to do their jobs effectively. If you aren’t already, please take some business and law courses. Leaving these critical topics to people who simply don’t understand what they are dealing with is dangerous and it’s putting undue strain and stress on this industry in particular. We need to move forward!

There is also the idea that doing all of this will be something that can be done by using a solution like Grok/Django/Pylons/Turbogears/Cake/etc or some other solution using some other language. It’s a fair idea because it is possible to date for someone to do something like this on one of those frameworks. However, people who say this have normally not thought everything through. They aren’t thinking user management. They aren’t thinking workflow or process management. They aren’t thinking about the data itself and the processes it has to go through, they aren’t thinking clustering and if it doesn’t apply to the three tenets of content management then they are all topics that would have to be written into the code. Zope has been around roughly since 1999 working on these problems. There is a wealth of knowledge available there that is literally untapped. If you plan on doing something new at the very least look in that direction to avoid pitfalls and traps. Also note that you’d be playing catch up. Which means you’d have to make a significant amount of investment in developer time and money to gain any traction, opensource or not. That said, again, there will be cases where you have to do your own thing and if one must go and write their own content management system using one of thoseframeworks then fine. Just be prepared to handle all of the above; in retrospect I would of had to learn all of this the hard way and someone would be given a Darwin award speech on my behalf.

Pitfalls/Traps and Office Politics
It wouldn’t be fair to just leave you with this without talking about some of the pitfalls, traps and general office politics you may have to deal with as subtle as it may seem. Believe it or not some of the hardest people to get on the content management bandwagon will be your peers. They will fight you on concepts, some, will not understand the whole idea of content management and they will generally try to kill your project. The best way to handle this or at least based on my own environment(s) has been with facts and to just try pushing forward where one can. If anyone is familiar with Linux it’s the same sort of ideas and attitudes a lot of us had to battle when it was growing up. Our Solaris and NT friends made fun of us, still everyone pushed on, regardless of, and today the idea of Linux and Open source itself is no where near foreign. It’s the “L” in LAMP.

That said, start with something small; a content type by itself, and slowly grow from there. Explain your ideas as they relate to that specific content type and extrapolate where necessary. Where you can see an angle of getting your concepts in; do so. Try not to be overbearing and generally take your time. Social dynamics take time to change and your small win here and there will eventually add up to a big win overall. Also, don’t give up. It’s easy to say just screw it; do the project in something you realize is lacking and then everyone points the finger. Either way, you lose but if you do it right, and stand-fast even if it means you have to move on. The next person in your seat will at the very least be able to see your structure. (That or destroy it completely and still nothing will get done; at least you can go to sleep at night). There is a book one of my old professors recommended that may come in handy called Fearless Change: Patterns for introducing new ideas by Dr. Mary Lynn Manns and Dr. Linda Rising. It’s a great read and I heartily recommend it. Also realize that you are battling concepts. People who think that just because some other organization did it with 50 developers at their disposal the same team of 5 developers should be able to do the same. They aren’t aware of these things; so be realistic. If you think it would be cheaper and you can achieve your goals in the long run with off the shelf commercially licensed software then maybe it’s a choice you should make. Of course I can’t realistically think of any cheap solution but I’m sure there are some out there that may fit your needs.

So what’s the best way to get started with Plone? How does one learn about this stuff?
The best way to get started is to download Plone at http://plone.org; there is lots of documentation unfortunately fragmented all over the internet and there are about 100 different ways to do things which can be absolutely confusing to a beginner. There is much debate and work going on right now on the best way to fix this problem. That said, after downloading there is a vibrant community online via mailing lists and IRC (Internet-Relay-Chat) that are extremely helpful to any questions one may have.

That’s all I’ve got, thanks. I’d like to thank Hunter College for hosting this event, the New York Plone Users Group for inviting me to be the keynote speaker on behalf of New York and New York Media for allowing me to be here.

Christopher Warner
cwarner@kernelcode.com
Christopher.warner@nymag.com

Syndicated 2008-12-03 19:07:52 from Christopher Warner » Advogato

9 Nov 2008 »

World Plone Day 2008

So World Plone Day went off with a couple of hitches but all in all it was successful. There were some video and connectivity issues but the video should be online soon as well as the paper version of my talk. Really I promise to get all this stuff up soon. The talk was well received and hopefully it will be useful to others in the future. After the talk it was obvious I need to do my Phd in this stuff. The three-core tenets of content management were a success. All those ideas are in the paper version and i’ll put up my slides or a link to them from nymag or whatever. I’ve been busy with playing pool and work so i’ve been really slack lately code/patch wise.

I’m almost done with the New York Media Plone stuff, it’s a bitch. I’d like to thank Carsten Senger, Sebastien Nicouleaud and Jonathan Wilde (GSOC, 16 year old whiz-kid phenom) for working on Gnome Plone whilst everyone else is busy. That said after Plone Conf 2008 it was thrown into the collective. Available here. So if you want to work on it.. pull it down and get busy.

Next up on the list when I get some time is Plone API manual.. then I’m taking a break for a while. There will be some work on GnomeWeb-Plone in the next couple of weeks and that’s it.

Other stuff, like embedded driver work and other stuff I’m not getting to; ever. The only Linux machine i’m using nowadays is my work machine and I plan to wipe that and install OS X. I’ll get back to that stuff when and if it gets interesting to me again.

Pool is coming along won my first couple of games after 3-4 severe ass whippings. That is all.

Syndicated 2008-11-08 03:20:00 from Christopher Warner » Advogato

14 Oct 2008 »

PloneConf 2008 Day Three

So, the final day at PloneConf 2008 was interesting. Many good topics covered and many good talks. Met a lot of people and sadly didn’t have any cards to give anyone. I’ll try to have this rectified but thanks to the Google associating everything I do with my name it’s pretty easy to find me. The most interesting conversation was actually in regards to getting the word out about Plone. We pale in comparison to the numbers at other content management events and really it’s for no other good reason than the fact we aren’t making things easy for people and then on-top of that we aren’t very vocal. The one thing I took from the conference is that we should be making these ideas more tangible, the new “plone.org” that was previewed was excellent and it’s definitely a step in the right direction. We need more easy tutorials, make things easier to theme. Espouse some of the core concepts involved in content management. It’s always the case that the best technology doesn’t always win and it would really be a tough pill to swallow if as a community we couldn’t recruit more developers and people who really are passionate about content management. I think a good tutorial for business and management types is also in order… There aren’t enough hours, just not enough. All in all I left feeling good about the future of Plone and psyched about some of the ways I was seeing it used and I hope PloneConf 2009 is just as great! So until then; it’s back to work.

Syndicated 2008-10-14 10:57:34 from Christopher Warner » Advogato

11 Oct 2008 »

PloneConf 2008 Day Two

Day two also had great talks.. Alexander gave a rough overview of what the Plone 4 UI is going to look like which gave me lots of ideas. Some of the ideas of having a module builder or widget builder are ideas that I have heard already spoken a New York Mag and it would certainly be useful for content editors to put together small widgets that displayed X list or pieces of content. Writing a routine for that would be cool. There is a lot of work for me to do; lots. So i’m going to petition for some more Plone developers who understand Plone and the concepts that I’m speaking of. There is another developer at nymag working with Plone but I’ve been wrapped up in my own stuff to find out if he’s having any problems but I guess not. I know for me personally it was difficult taking everything in but I guess it’s easier for others.

Anyway, simplfying the UI is a good thing and making Plone easier to skin is also a good thing. Martin Aspeli’s talk about basically making Plone easier to learn was a great talk. Making things simple for beginners will speed up the learning process. As it stands right now one has to be dedicated and a highly proficient python programmer to get anything done off the beaten path with Plone and there is no reason it needs to be that way. The other talks were pretty much surface as well so I spent the rest of the day really reworking my initial Plone World Day draft. It was what I believe to be too involved even for a developer audience. So, I started breaking out those ideas into what i’m calling the “paper version” of my talk that will accompany the presentation and a much much much simpler talk in general. As I started breaking stuff out it’s obvious there’s so much to cover that I may indeed at some point have to write a book someday. This will not be on my blog; the paper will probably be put somewhere on nymag.com first after I figure out the details. Technically speaking this talk wasn’t being sponsored by New York Media but since I worked on it during New York Media time; I guess you can say they allowed it to occur. I’m pretty anal about shit like that due to past transgressions. I’ll eventually publish it here if possible; the slides will be available here soon as they are complete. In the event that New York Media declines permission for whatever reason. Be prepared to bring voice recorders for my talk and i’ll bring some hard copies to hand out. That; or i’ll total revise the entire paper. I don’t think it’ll get that bad though :-)

Spoke with some people, generally enjoyed myself, had dinner at this place called Heidis Brooklyn Deli. The food here was great and the people who work there assured me that they aren’t subway. Everything is made from scratch right in that place and it taste just like that! Then I went to play some billiards and I don’t know how I got so much better but it must be because I haven’t played in a couple of days. Cleaned up!  The shots I was making, wish I had a camera.

Syndicated 2008-10-11 04:31:51 from Christopher Warner » Advogato

9 Oct 2008 »

PloneConf 2008 - Day One

Quick post about what i’ve attended thus far. First and foremost there are 310 people here at PloneConf 2008. This is great!! Most of the guys from the Ny Plone Group are here. The keynote and the “State of Plone” gave a great overview of where Plone 4.0 is headed and generally it’s exciting to be here and around other dedicated content management people. Some of the the great things I have seen up to this point were during the 3-7 minute lightning talks. I’ll probably give one tomorrow or put myself on the standby list. The whole conference is being video taped and broadcasted live.

Google donated a bunch of small mini books and the Plone foundation gave away some t-shirt schwag.

The first scheduled talk I attended on Content Mirroring was also probably the best talk scheduled today. Basically covered using Plone object data via a relational database (or anything else, pretty much) so that others can access, use and build interfaces to the content using a language and tools they are comfortable with; ie without having to do any xml-rpc. That; will definitely come in handy; as it will allow others to access anything in Plone using regular old MySQL/Postgres/BerkeleyDB etc. It even handles content objects that include files; which is absolutely perfect for deployment purposes. Like say, images. NOTE: The content isn’t managed by the content mirror; it’s just mirrored. All of the content data is still put in an object database. It is just replicated wherever you want, according to Kapil it started at around 500 lines of code and now is round just about 1,000 lines. The only problem here is failure; but after speaking with Kapil it  doesn’t seem like he wants to complicate it and keeping it simple by pushing that up the stack works; at least for things like mysql/postgres. Here is some background

The other talks didn’t really interest me that much; with the exception of the last talk on Software freedom and computing in the cloud being dangerous which was halfway interesting. Not that all the rest weren’t good but they were pretty surface level and I hoped to learn something new but sadly it was all wrote. I also didn’t realize that openplans.org is a nyc based company. Had an interesting chat with Rob Miller and Kapil on some politics and generally enjoyed myself.

The talk on computing in the cloud really needs it’s own post.

There are core Zope and core Python developers at the conference as well and sadly all of the sprints are going down on Sat/Sun. I’m leaving Friday night and I thought the sprints would of been earlier. Anyway having a good time so far. My brother has a really nice setup down here.. I would still be at the conference if I didn’t need to sleep. I haven’t slept since Monday.

Ran into Ramon and David Bain, trying to get a GnomeWeb-Plone sprint before the weekend.. It’s sad this round may fail because everyone is busy and i’m not doing the lone soldier shit anymore.  Wifi coverage at the conf is pretty bad but i’ve been checking my email. I can’t wait to get back to work on the Nymag instance for some reason. I’m not sure how long that urge will last though. People brought their teams and all of these people are well versed on Plone; it’s so fucking REFRESHING to have a conversation and someone understanding the words coming out of your mouth; this latest game at work of change, change, change is getting pretty tiresome. If you change the color of the car mid paint or while it’s drying and it has to be sanded down to the metal frame and repainted; it takes work; even if the color is from red to cherry red. Anyway no more complaining, doesn’t matter, the Plone scene is looking really good; I had no idea Google was actually using it!! The conference is fucking great so far!

Syndicated 2008-10-09 06:14:46 from Christopher Warner » Advogato

25 Sep 2008 (updated 25 Sep 2008 at 12:18 UTC) »

Can I wear an Obama T-Shirt when I go vote?!

Normally, I don’t get involved in politics because frankly. I do not trust politicians, republican, democrat, independent, conservative, working families. Doesn’t matter to me, I don’t trust any of them. For that matter, there are very few people I do trust so to those of you who know me when I say “I trust you”. You can consider yourself a friend of mine for life; i’d probably even let you drive my car. That aside, I just got this text message from a young college student which said not to wear your Obama T-shirt to your polling hub because it is illegal. Now, I haven’t endorsed a candidate yet but that is horse shit, it’s completely FALSE and I need to say something because it came from the mouth of a rep for the Black National Caucus. First, we’ll deal with the Election Law here in New York State as it’s published by the State Board of Elections in this the year 2008.

THIS RELATES ONLY TO LOCAL BOARD OF INSPECTOR MEMBERS; Meaning the people helping you around, finding the correct machine and/or district desk.
Section 5-204 Local registration; general provisions for the conduct of.

1. At the opening of each place of registration on each day of local
registration the board of inspectors shall:
a. See that the American flag is displayed.
b. Cause the election district map or maps, or certified description
thereof, to be posted conspicuously in the registration place.
c. Check to see that all necessary supplies are available in order to
properly conduct registration.
d. Affix or attach to their clothing the proper identification, buttons,
badges or emblems issued by the board of elections pursuant to the provisions
of this chapter. They shall wear no other buttons, badges or emblems which are similar in design.

THIS RELATES ONLY TO LOCAL BOARD OF INSPECTOR MEMBERS, SPECIFICALLY INSPECTORS OF ELECTION AND CLERKS; Meaning more of the same people helping local board inspector members with any issues THEY may have.
Section 8-102. Polls; opening of.

  • 1. The inspectors of election, and clerks, if any, shall meet at the
    polling place at least one-half hour before the time set for opening the polls of
    election. The inspectors of election shall:
    (a) See that the American flag is displayed.
    (b) Cause the facsimile ballots and voter information posting to be
    posted conspicuously within the polling place.
    (c) Cause the distance markers to be placed at a distance of one
    hundred feet from the polling place.
    (d) Establish a guard-rail by delineating and marking out the votingarea by a suitable means. The voting machine, ballots and all equipment shall
    be kept within such guard-rail.
    (e) Place the books, ballots and sample ballots, blanks, stationery and
    supplies so that they will be ready and convenient for use.
    (f) Affix or attach to their clothing and cause the clerks, if any, to
    affix or attach to their clothing the proper identification buttons, badges or
    emblems issued by the board of elections pursuant to the provisions of this
    chapter. The inspectors and clerks shall wear no other buttons, badges or
    emblems which are similar in design.

THIS RELATES ONLY TO ANYONE PLANNING TO IMPERSONATE AN INSPECTOR OR PRETEND TO BE SOMEONE THEY ARE NOT
Section 17-130. Misdemeanor in relation to elections.

  • 23. Not having been appointed or named an inspector of elections or
    clerk and not having taken the oath for such office shall wear or display any
    button, badge or emblem identifying or purporting to identify such person as
    an inspector of election or clerk, is guilty of a misdemeanor.
  • So! What does this mean? It means that in the state of New York, an Election Clerk and or Inspector conducting a poll CAN NOT wear any button or badge that it too similar to the official badges and buttons released for the 2008 Election. It also means that if you impersonate an inspector or clerk of an election you can be hit with a misdemeanor which seems light considering the gravity of such an offense. This is the law in New York State and most other states.. I’ll do research for whatever state someone ask about.

    Here is the link to the State of New York 2008 Election Law; anyone can confirm this. WEAR WHATEVER YOU WANT AND BRING A COPY OF THE ELECTION LAW WITH YAH!.

    Syndicated 2008-09-25 08:07:20 from Christopher Warner » Advogato

    19 Sep 2008 »

    D.J. Bernstein is hilarious

    You either like him or hate him but Daniel J. Bernstein is hilarious in his bluntness, and exploring his website is like reading through a trove of golden comedy nuggets. It’s been a while since I hit his site, but having to read some information on Bernstein vs the United States I found myself laughing hysterically. So, before I hit the pool tables and then get back to Plone/Krang work, lets cover some of this:

    2007.03.20 ~23:00 GMT?: My mail server is actively disabled by the idiots at the UIC computer center.

    2007.09.29 ~04:00 GMT: Another multiple-hour power outage at UIC. The explanation, which you’re not supposed to laugh at, was finally given on 3 October: “There are two ComEd grids that feed the UIC campus. One of the grids went down causing a power glitch for 2.5 minutes. As a result, many building level breakers tripped resulting in the loss of power on a building basis that lasted until the UIC electricians could reset the building equipment.” You’re also not supposed to laugh at the fact that, several hours after the outage, the computer center still wasn’t aware that there had been an outage.

    2008.05.05: One of my servers is actively disabled by the idiots at the UIC computer center.

    The love for UIC continues, in what is obviously a tale of woe that I hope to never experience. DJB loses his health insurance. What would normally be a somber and generally tough, upsetting even angering read is actually quite compelling. Choice quote:

  • How many months are in September October November December 2000, September October November December 2006, all the months of 2007, and January February 2008? Is that 24 months? No: it’s 4 + 4 + 12 + 2 = 22 months. Say hello to UIC arithmetic!
  • Man the University of Illinois at Chicago really, really sucks.. This specific thread is great reading! Then you get brilliant ideas like this list. The Soap Saver dish idea is awesome! Why is it brilliant? Just ask yourself how many times you’ve gone to pickup smushy soap?! There you go.. The coin-operated elevator wouldn’t be as useful though; the problem is elevators are seen as a utility. Maybe in a private apartment building where you get an elevator straight to your door but then if you can afford that it’d be odd putting quarters into the elevator. The Internet Bus Locator?? Awesomeness, but take it to the next level!! Mass Transit Authority locator. Buses, Trains, Trams, Service Buses all of that!. Ahhh well, Ms. Tarzian probably just deleted all of these. Let me state that I don’t know one way or another what happened with those ideas. I’ll have to send an email I guess, he may even respond  within a few months. Hey, that sounds funny, but trust me if I let my email go for two days without checking it I may as well prepare for a day of reading and responding to email. I don’t even bother responding to people on the phone unless I like you :-)

     

    Next up random but interesting articles like this one on Sleep and why too much may actually be bad for you.  Why wine may prevent Alzheimer’s and why drinking more coffee may reduce the most common form of diabetes.

    Then I go back to the UIC mismanagement section; for some ignoring of sponsor rules because, well, it’s great stuff and the levels of incompetence I’ve had to deal with in my lifetime pale in comparison. Actually, I wouldn’t even call it incompetence. It seems the UIC management realize all of the sham and shenanigans they are employing and DJB is just the only one to actually call them on it. When he does, they try to ignore him, then he gets external parties involved who may or may not have the authority to make them tow the line. Subsequently, they do try their best to make him comply. It’s just we gotta get the outcomes of this stuff! 

    Here’s a nice section on the 2007.12.03 standard workstation which is actually a decent machine.

    Anyway.. good reading over at cr.yp.to.. I’ll send djb some email on some of the incidents linked to find out what the general outcomes are.

    Syndicated 2008-09-19 08:53:44 from Christopher Warner » Advogato

    18 Sep 2008 »

    Same Origin Policy

    In reponse to my last post; Cross-Site Dom Form Element Modification here is some background via Wikipedia called the Same Origin Policy. Again, this simply doesn’t prevent attacks and the dom is still not safe. Some well informed individuals linked me to The FAQ_SOP for Google’s Web Toolkit where it states “While very necessary, this policy also has the side effect of making web developers’ lives difficult”. I agree with the latter piece of that statement, the preceding “While very necessary” is what I disagree with. So, for instance, lets say I have a form that takes one line of input, being a name. In that form input; I expect a name that can consists of numbers, letters, extended chars and symbols.

    No matter what happens; that input box is hijackable. No matter where you try to prevent input into that box from a remote party; so long as it’s on the web. That specific input box is prone to attack. I don’t care what you do; deny dom access remotely; fine! Just wait for a local attack. Write stuff to a temporary cookie that is read and deleted? Attacker just has to know the cookies name and continuous poll’n. No matter what you do to try and protect the dom you can’t because of the very nature of the web. Access control mechanisms work to an extent but it just changes the vector only slightly. What would be better is a way to deny/allow access to the dom based on the HTML itself so one could deny dom access for specific elements!

    After the last two days my options are fragment id’s, setting up some dns/virtual host workaround or dropping data into a temp cookie to be read on javascript event. Programming for the web sucks ass, this is horse shit! All of this to transfer one 1 line of text between forms because cwarner.dev.nymag.biz:80 and cwarner.dev.nymag.biz:8025 throw up the SOP flag.. It’s fucking stupid retarded.

    Syndicated 2008-09-18 08:59:50 from Christopher Warner » Advogato

    15 Sep 2008 »

    Cross-Site Dom Form Element Modification

    Can someone, anyone, give a good example why denying access to form element properties across sites is a good idea. From where I stand right now there is no good reason for Mozilla to be denying access to form elements across sites. All I see are alot of poor examples where what’s passed should be validated. You know validating data? That’s just part of it though because using Ajax doesn’t change anything at all. See; all it does add an Ajax request/function that exposed or not is still exploitable by an attacker. Then there is Cross-Site XMLHttpRequest, all this does is make a lot more work for people who need to update the elements or dom objects and doesn’t solve anything really. “This level of control gives content creators greater amounts of flexibility when it comes to allowing their users to build mashups and applications using their information.” What? No it doesn’t, it just adds a layer of perceived control and security, which really isn’t there. Now, i’m not saying this is totally useless because defining who gets what is useful. Except at the end of the day you don’t really control who gets what if it’s on the web, unless you are taking the blood of your users and matching dna. The core of the problem still seems to be validation. So why all the goddamn gimmicks?

    Syndicated 2008-09-16 01:30:48 from Christopher Warner » Advogato

    24 Aug 2008 »

    My entire workflow is now OS X - I’ve made the switch - Blog Catchup

    It is done, i know a lot of you may be shocked but i’ve switched my entire workflow over to OS X. Even my primary desktop workstation which has run Linux explicitly since 1994. The reasons for this are numerous including but not limited to:

    • Consistency in my desktop experience.
    • Stability in regards to underlying system components
    • An aesthetic visual experience across the board
    • Things like GDB seem to just work

    These are just some of the reasons but all in all I haven’t been doing much Linux only programming anymore. My workflow has been revolving around photography, videos and web programming. That combined with the fact that I do own trinkets such as an Ipod and it was time. All that said, this doesn’t mean that i’ll no longer do Linux it just means that it’s no longer the choice for my desktop at home. I’m not doing any kernel work or contracts, etc etc. I am not going to rehash arguments heard round the various ml’s and web in general but suffice to say. It just doesn’t work for me in this space (home). However, at work my primary workstation is a Linux desktop and will most likely remain so but after this weekend of full on immersion, in a 30 inch experience apple may steal me away :-) The old workstation will be turned into a retooled OpenSolaris workstation because thats where the new exciting shit is going on, for me anyway. (Thanks to all the people over at Sun who linked to my commentary as positive criticism; I just came across some of the commentary and i’ll do an update on that stuff soon I hope)

    As far as opensource is concerned there are things that i’m still working on. So Gnomeweb-plone hack day is this Saturday and we’ll finish the portlet stuff from 2.x and move from there. Email out about this later on tonight, swear-it. I’ll be at the 3 day Plone conference this coming October and hope to see everyone and do some cool stuff. For World Plone day I was invited by the New York Plone Users Group to speak for the NYC scene (this is November I believe). Which was a shock to me because I had no clue one existed. Up until now I thought all of my Plone sister/brothers lived in Europe :-) Definitely attending a meeting ahead of time and hope to have an outline for that first week in September. This will primarily be my work with Plone at New York Media (yes, I really do work here, and no it is fun, we need more people like me there so why not come over?) There are special use cases we have but largely i’ll be speaking on the process and politics surrounding content management and maybe a brief overview of where Plone is being applied.

    Work has me strapped, but it’s all positive stuff; this week has been a little dramatic for me personally and it’s been a really trying time. I haven’t been responsive but I’m doing my best to get to all my email and all that. My personal life seems to generally be failing at the expense of my work but i’m ok with that, the latest incident though really was depressing to hear. Anyway.

    Ahh yes, about the machine; I bought myself a 8 core Mac Pro with most of all the goodies with the only sad thing being that it has an ATI card. Which I swore off of ATI sometime in 1997 and haven’t purchased anything since. I really should of gotten the Nvidia card but it would of been special order and I don’t have time. It would of been another couple months before I got a free weekend to do something like this. I’ve decided to keep the default keyboard and mouse to see if I could get used to them. Only because of their aesthetic factor initially but the keyboard actually seems to be pretty nice after a day of hacking on it. 

    The speeding addiction has finally caught up with me and now lawyers are involved and all these shenanigans. According to people in the know the case is to be dismissed. I may have to actually either get track time or do any speeding I do; out-of-state. If anyone knows of any decent tracks in the greater TriBoro area or NYS or whatever hit me up; again, I actually need it now. Getting a case dismissed is expensive, but I found out the justice system is a total farce; all you have to do is spend more money and make “donations” to the right peoples campaigns. That’s all I’ll say on that.

    Upgraded wordpress, someone or one of you l33t hackers tried to implement some form of change to my footer file stuff via Apache process to overwrite the file and boost your page ranking. This is the problem with PHP but suffice to say it worked because I changed the permissions to the Apache processes in that dir for some reason. Of course I was notified and I made the appropriate changes; lame. Luckily I have php stuffed with the Suhosin-Patch or it would of been A LOT worse :-)

    Anyway there’s much more I wanted to say but I can’t remember. I’ll do that the next Blog Catchup in a couple months.

    Syndicated 2008-08-24 23:39:22 from Christopher Warner » Advogato

    121 older entries...

    New Advogato Features

    FOAF updates: Trust rankings are now exported, making the data available to other users and websites. An external FOAF URI has been added, allowing users to link to an additional FOAF file.

    Keep up with the latest Advogato features by reading the Advogato status blog.

    If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!