This week, on June 11th, Twitter retired version 1 of their API. As a
result, the Twitter portlets of some of our customers stopped
working. They are all using collective.twitterportlet
so we created a
quick (and slightly dirty?) fix to get them up and running again:
edition1.twitterportletfix.
A note to myself on how to get a quick insight in the content in a
ZODB.
Since April 2012
we are using Whiskers
to store information about our Plone and Django buildouts. But when I
moved the setup behind SSL, the browser started to complain about
unsafe content.
On Wednesday the 12th of December,
Goldmund, Wyldebeast & Wunderliebe
organised a Diazo workshop. Douwe van der Meij and Kim Chee Leong
introduced us to the wonderful world of theming Plone the easy way (my
words, not theirs). Since this workshop took a full day, this is not a
complete summary but a more an extended version of the notes I took
during the day.
The lightning talks of the last day of the Plone Conference
2012. Again only three minutes each since we had 14 talks!
What is sprinting all about about?
Tutorial on how to write templates for ZopeSkel.
Cris is the maintainer of ZopeSkel for
three years now. This is a historical, non technical talk about ZopeSkel: where
did it start and where it is going.
A overview of the changes in Plone 4.2 and 4.3.
A talk about Travis CI: hosted continuous integration for the open
source community.
What can product developers do to make their products faster to use
and easier to cache.
The lightning talks of the second day of the Plone Conference. This
time they were just three minutes a piece due to the large number of talks.
Kim shows us a collection of tools that can be useful during
development.
Steve McMahon
talked
about Plone specific stuff, Christian is going to talk about the stuff
around that.
A special version of this talk: no secrets or tricks. It discusses the
things that are in mainstream use.
Insight in how RedTurtle manages their projects using their own tool:
Penelope.
How to deploy tens of sites that are not really identical but share the
same infrastructure.
Simone is a developer but is still talking about design to bridge the
gap between both ‘worlds’.
Several five minute talks about various subjects.
How can we improve Plone?
Performing asynchronous tasks with Plone using message queues.
Andreas Jung talks about best practises.
Matt Hamilton, president of the Plone Foundation Board and Eric Steele,
release manager, talk about the state of Plone.
The first technical talk of the 10th Plone conference is by Jan Jongboom, who
works for Cloud9.
Several Pythonistas switched to a static blog this year. If you are
also looking into static blog engines, give
Acrylamid a go.
While working on a client project, I created an (Archetypes based)
content type with a text field. After adding a custom view as the
default view, I got an AttributeError
when I tried to add a new
object.
Last year I participated in a
deployment knowledge sharing session
and I started implementing changes at my company pretty soon
after. The result is that we are using
Puppet for some parts of our server
configuration. We also added Munin to
our monitoring toolset (and I used Puppet to deploy Munin and manage
its configuration). But an important piece that was still missing in
our setup was an overview of which packages we use in the buildouts of
our clients and more specifically which version each client uses.
For years web development was quite predictable. The resolution of the
average screen slowly but steadily increased, bandwidth became less of
an issue and everything was good. Then smartphones became
mainstream. Suddenly we have to make sure our websites are also
accessible on small screens. And bandwidth may also be limited to a
few kilobytes per second. In other words: new challenges. But how are
we responding to them?
Thanks to a tweet by @pypi I discovered
collective.backtowork,
created by Patrick Gerken.
A lightning talk
by Thijs Jonkman at the Dutch Plone User Day once again brought
Compass to my attention. I’ve read about
it on other occasions, but I never actually tried it. But Thijs really
made me want to try it for myself.
This article is a short example of how to use a list as a value of a
dict when using
plone.app.registry. Perhaps
a similar example is already in the docs, but I could not find it when
I was looking for it. And since it took me some trial and error to get
it right, I figured I could just as well post my solution.
On June 16th Jan-Jaap Driessen from The Health Agency (THA) organised a meeting
to share knowledge about using Puppet, zc.buildout, release management and how
those are related. For the most part, Jan-Jaap showed us his setup. My
impression in one word: wow! They are running a tight ship at THA!
Today I wanted to set the workflow for the content type File to
(Default)
.
After migrating a Plone 2.5 site to Plone 3, I got a
UnicodeEncodeError
when viewing the site.
Initially I was a bit sceptic about
Fabric. After all, I’m already using
buildout to manage projects. “How much
better can it get?” After watching the video of the
Django Deployment Workshop (held by
Jacob Kaplan-Moss at PyCon 2010 Atlanta), I finally decided to see for
myself what Fabric is all about.
After a bit of experimentation I’ve succeeded in moving an existing
Plone 3.3.5 from the normal FileStorage storage (in other words a ZODB
in a Data.fs
file) to RelStorage using PostgreSQL. This is a blog post
about what I needed to change in the buildout configuration and which
resources I used.
Yesterday I was experimenting with RelStorage and ran into an error:
“UnboundLocalError: local variable 'blob_storage' referenced before assignment.
”
One of the latest Plone books from Packt Publishing is
Plone 3 Intranets
(Design, build, and deploy a reliable, full-featured, and secure
Plone-based enterprise intranet easily from scratch) by Víctor
Fernández de Alba. Packt sent me a copy and asked me to review it.
While reading
Plone 3 Intranets
by Víctor Fernández de Alba, I discovered the logreopen
command.
Google’s Webmaster Tools provide the modern webmaster/developer with some nice
tools to improve a website and the way the site is indexed. In this article I’ll
focus on the crawler related tools. Specifically, how they helped me when I
migrated from Plone to Django.
While updating a buildout, Pound would
not compile anymore. “All” I did was update it from version 2.4.4 to
2.5.
After a comment by
Matt Hamilton on Twitter about the lines of code in my website project
I listed in
my previous weblog entry, I
decided to dive in a bit deeper.
This site is now powered by Django instead of Plone. Yes, I’ve finally
made the switch!
The summary: as of today, you no longer need to checkout
enablesettrace
from the Zope Subversion repository. You can just use
the Products.enablesettrace egg to debug your restricted Python code.
I frequently have to send emails from web applications. But before I
deploy to a production environment, I want to make sure the mechanism
works and the right mails are constructed. Here’s two ways to do that.
Be careful when parsing dates with the Zope DateTime
module.
For the second time in the one month, I ran into this problem. Here’s
how I solved it. (As a reminder for myself the next time I need it…)
Time for another small update of my site. I changed some ‘back office
stuff’ and improved my blog. Apparently this also triggered some
changes in the RSS feed, resulting in older entries popping up again
on planet.plone.org. Sorry about that!
While I’m enthusiastic about Git, I still have to communicate with
Subversion repositories like the Plone Collective. I also like my
editor (Emacs) to help me interact with Git. In this blog entry I’ll
explain how I setup my work environment.
A quick fix became an upgrade. :)
Brief summary of the discussed issues.
The migration of www.contentmanagementsoftware.info
in an nutshell.
Plone4Artists Audio and Video.
A talk about working with packages, zc.buildout and managing the
application lifecycle.
Mastering the bureaucracy perfectly.
A talk by the creator and release manager of PloneFormGen (PFG).
A talk about agile development.
Principles to help development teams.
Constituent Relationship Management
Deliverance can be used to theme a site without having to have any
knowledge of Plone.
Adapters are the way to go to change behaviour of objects.
Plone is a great CMS but is it the best product to actually deliver
the content?
Best practices for Plone deployment.
Taking advantage of Amazon’s Elastic Compute Cloud (EC2) and Simple
Storage Service (S3).
An overview of Plone4ArtistsCalendar, targeted at integrators.
Bradley encourages us to critically think about how free Gmail and
Twitter actually are.
A talk about issues specific to intranet sites.
What tools can be used to run a business?
Things to be proud of, work to be done and the way ahead.
Ken Wasetis talked about the benefits for governmental sites to use
Plone.
Setuptools doesn’t seem to like subversion 1.5.