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. 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.
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.
Why New York Media chose Plone 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.
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).
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? 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) 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.
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.
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)
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.
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
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.
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.
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!
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!
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
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
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
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
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
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
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
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
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:
Syndicated 2008-08-24 23:39:22 from Christopher Warner » Advogato
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!