Plone
This is here to serve as contents for the atom/rss feed for Plone, also read by planet.plone.org.
Wil jij mijn collega worden?
Mijn werkgever Zest Software is op zoek naar een Python programmeur.
Mijn Franse collega Vincent Pretre gaat weg bij Zest Software. Ik vind het jammer om hem te zien gaan, maar uiteindelijk was de aantrekkingskracht van familie, bergen en kaas die ook goed smaakt buiten een tosti te groot. Wij zoeken dus naar iemand om hem te vervangen, anders hebben we teveel werk te doen.
We willen iemand met ongeveer de vaardigheden van hem of mij. Het belangrijkste is dat je competent bent in het programmeren in Python en dat ook graag doet. We bouwen websites gebaseerd op Plone of Django, dus als je één of beide beheerst, is dat handig. Als je geen ervaring hebt met deze twee frameworks, maar je houdt van een uitdaging, neem dan toch contact met ons op. Leren hoort bij het vak.
Ik werk al zeven jaar voor Zest en dat bevalt me nog steeds goed. Ten eerste hebben we een klein, maar goed team. Jean-Paul Ladage is de baas, met vele jaren ervaring in Zope en Plone. Hij heeft er een handje van uit te vogelen wat een klant nodig heeft in plaats van wat hij wil, en hij kan dat uitleggen aan het ontwikkelteam. Fred van Dijk houdt het hoofd koel bij het helpen van klanten met veel websites en servers. Hij zoekt uit of een wens of bug aangepakt kan worden met standaard Plone of met add-ons of dat Vincent of ik als programmeurs erop los mogen. Thom van Ledden heeft veel styling voor ons gedaan, maar hij zal weinig tijd hebben, want hij gaat de komende tijd aan een afstudeeropdracht zitten. Daniel Ferreira doet marketing voor ons. Elke dag lunchen we samen.
Ik vind het leuk dat ik de hele week veel kan programmeren. Ik kan me concentreren op Plone en wat Django en ook een beetje Grok, terwijl Jean-Paul en Fred de meeste klanten opvangen voor ze me af kunnen leiden. Klantcontact is prima, maar niet teveel op één dag. :-) Ik vermaak mezelf het beste als ik aan een project werk en daarbij verbeteringen kan doen aan de kern van Plone of aan add-ons, en dat komt geregeld voor.
Dus: als je op zoek bent naar een Pythonbaan met een goed team in Rotterdam (Hoogvliet), neem dan contact met ons op.
Want to become my colleague?
My employer Zest Software is looking for a Python programmer.
My French colleague Vincent Pretre is leaving Zest Software. I am sad to see him go, but finally the pull of family, mountains and cheese that also tastes good outside of a tosti was just too strong. So we are looking for someone to replace him, otherwise we will have too much work to do.
Basically we want someone with about the same skill set as him or me. The most important thing is that you need to be competent and happy when programming in Python. We build websites based on Plone or Django, so being skilled in one or both of those is good. If you do not have experience with those two frameworks, but you like a challenge, do contact us. Learning is definitely part of the job.
I have worked for Zest for seven years now and am still enjoying it. First of all, we have a small, but good team. Jean-Paul Ladage is the boss, with lots of years of Zope and Plone experience, and a knack for figuring out what the customer needs instead of what he wants, and explaining that to the development team. Fred van Dijk keeps a clear head when helping clients with lots of websites and servers, and figuring out if a feature or bug can be dealt with using standard Plone and add-ons or if Vincent or I as programmers should have a go at it. Thom van Ledden did lots of styling for us, though he won't have much time anymore as he will be busy finishing his studies. Daniel Ferreira is doing marketing for us. Every day we lunch together.
I like that I get to do lots of programming the whole week. I can concentrate on Plone, and some Django, and also a bit of Grok come to think of it, while Jean-Paul and Fred keep most customers out of my hair -- and the other way around. Contact with customers is fine, just not too many on one day. :-) I enjoy myself the most when working on a project means improving core Plone or add-ons, and that regularly happens.
So: if you are looking for a Python job with a good team in Rotterdam (Hoogvliet) contact us.
Mountain Lion
Upgrading to OS X Mountain Lion.
IANAME (I Am Not A Mac Expert), but I have recently upgraded my MacBook Pro from Snow Leopard (10.6.8) to Mountain Lion (10.8.2). Some pointers follow.
Get the software
Just open the App Store application, search for Mount Lion (it may be on the front page as popular download), and buy it. The download is about 4 GB, so you will want to start with this step. Or buy it on CD somewhere.
Cleanup
I do not think you need much extra hard disk space for the new Mac OS X version, but this is still a good time to make some extra room. Disk Inventory can be a good assistent here, showing you which files or directories take up the most space.
Your Downloads directory may also contain old installers that can be deleted. Maybe you have some backups from 2004 that you finally realize you will not need anymore.
Be sure to go to the Trash folder and empty it.
Backup
Make sure you have a backup, probably with the Time Machine. If you are a developer, make sure all your source code changes have been committed and pushed.
Upgrade
Close your programs and run the Mountain Lion installer. I think this took about half an hour.
TRIM Enabler
If you have a Solid State Disk, you are probably using TRIM Enabler. After the first reboot, you will need to start that application and enable it again. Then you probably need to restart again, but the application will tell you this.
XCode
If you are a developer, you will want to install the latest XCode from Apple. Open the App Store and download it. It is about 1.6 GB so this will again take a while.
When you install it, make sure to install the command line tools too. Open XCode, open the Preferences, go to the Downloads section and download and install the command line tools.
Status
At this point, as I am a Plone developer, I tried starting an existing zope instance. This worked fine. But then I tried rebuilding the Python buildout, specifically installing the 3.3 one, which failed. If I recall correctly, no good C compiler could be found. I have that in Mac ports, so I needed to update those.
Mac ports
You will need to completely reinstall the Mac ports package and your active ports. Follow instructions at https://trac.macports.org/wiki/Migration
For step 1 under 'Reinstall ports' you may want to gather only the active ports:
port -qv installed | grep active > myports.txt
Then you can open that file and remove the lines for ports that you think are not needed anymore. Maybe keep a copy of the original file in case you later find things are missing.
In step 3 you execute this:
sudo port clean all
This might fail with an error like this:
Error: Unable to open port: can't read "build.pre_args": can't read "build.cmd": Failed to locate 'gnumake' in path: '/opt/local/bin:/opt/local/sbin:/bin:/sbin:/usr/bin:/usr/sbin' or at its MacPorts configuration time location, did you move it?
If that is the case, then most likely you have not installed the command line tools of XCode. See http://guide.macports.org/chunked/installing.xcode.html on how to do this. Or see above.
Note that freshly installing all you favorite mac ports will take a while. You may want to grab a drink or some sleep at this point.
Python buildout
If you are developing Plone, you may already be using the Python buildout. This is on github now. It seems best to rebuild your pythons at this point. Use the bootstrap-1.4.4.py file, otherwise you will run into problems.
Initial impressions
Wow, it feels fast! My feeling is that starting an application is now twice as fast. Maybe I would have had the same result with a fresh install of Snow Leopard, but it sure is nice. Note that I was already using a Solid State Disk, so it was already fast.
I have switched the natural scrolling off (System Preferences, Hardware, Mouse). Maybe I should just try it, but I am used to the old behaviour.
For a while, iTunes started up and began playing music without me doing anything. It did this lots of times. Today I did not see this anymore.
Mail looks rather differently. I started it up and did not see my mail accounts and folders, just some messages. So I quit Mail and started ThunderBird, which is still my favorite mail reader because I know its keyboard short cuts. The Mail interface can be easily tweaked though, nothing wrong with it, just a bit surprising for me the first time. I think the layout will work fine, at least on wide screens.
Lightning talks Friday
Lightning talks during the Plone Conference 2012.
Lightning talks on Friday during the Plone conference 2012.
Paul J Stevens - BlobStorage improvement
We had a site with PloneMultiSite. Content items end up in multiple sites. The blobs are then also duplicated. So this takes up more hard-disk space than needed. Whether you use PloneMultiSite or not, this can happen. So I created a tool to compress the blob storage with a script. It deduplicated the blobs using hard links. So with this, you use less disk-space and get faster copy and move actions. A few patches need to be updated. I want to talk with collective.recipe.backup authors too [that would be me, welcome!].
Philip Bauer - Theme Editor
You can have a Theme Editor, started by David Glick. As Starzel we want to make this a company-sponsored PLIP. I propose a new process for plips: everything that David creates should be plipped and he should get gittipped, so we have a Glick-PLIP-Git-tip.
Johannes Raggam - plone.app.event
I have made a better version op plone.app.event for the PLIP. Please read the README.rst file for usage info. It supports recurring events. Please test it and use it.
Eric Steele, Elizabeth Leddy - teams
If you run a team, for example the UI team, please come on stage so we can see you and know how you look. If you want to get involved, these are the people to talk to.
Lucas Graf - ftw.tabbedview
I work for 4teamwork (ftw). ftw.tabbedview integrates collective.js.extjs, collective.quickupload and ftw.table. You can filter content listings, sort tables client side, group things, manage columns, batching support, flexible sources (catalog, SQLAlchemy, etc), data transformations (you have a user name in the table but want to show the fullname) and lots more.
Philip Bauer - Plone Konferenz
I helped organize the Plone Konferenz 2012 in Munich, Germany. Lots of visitors. Most were long-time users, but not yet part of the community. We wanted to attract decision makers and people new to Plone. We had great success and a lot of fun. How can you do that yourself? Get your local usergroup drunk and have them say yes. Organize a sprint. Have a party at the first day so people get to know each other faster. Spend money and effort on marketing. You get (local) visibility, new community members, a great party, you give large tips. We have 3,000 euros that we donate to the Plone Foundation.
Mikko Ohtamaa - Solving problems
I will show some packages: visualtitle, imageportlet, silvuple (it's French) which shows untranslated items, plomobile, sevabot (irc bot). Low let's party.
Sprint at the end of the world
World is going to end December 21st. So go to the end of the world to sprint. Come to the South of Argentina on 1 December 2012. We will see what we will sprint on.
Jukka Ojaniemi - Whiskers
Whiskers is a Pyramid application. It collects all the packages you use in your buildouts. You need a buildout extension called buildout.sendpickedversions that sends info to the whiskers server.
[Mark van Lent blogged about it earlier this year.]
Érico Andrei - Desk surfing
We need you in Brazil. We are lonely. Please visit us, otherwise we need to drink. If you need to travel to Sao Paulo, we have a place for you where you can work on Plone. Keep calm and Plone in Brazil.
Calvin Hendryx-Parker - Playing with blocks
We have a desk in Fortville as well: welcome!
Choose good building blocks:
- Use APIs versus embedded iframes. Get the content in your site.
- Evaluate your options: are mailing lists taken over by spam, what is the activity in version control?
- Try out Single Sign On.
- Supercharge your search with Solr. Index external content. Fix spelling.
- Beware of over customization.
- Testing, testing, testing.
See my talk from earlier today.
Radek Jankiewicz - stxnext.greyscale
Transforms the content of the page into grey scale colors. We use it when a website needs a mourning color after a national incident. There is a filter attribute in css, but is only supported by IE. Javascript also not really an option. Images are cached in filestorage.
Johannes Raggam - amplify.cc
This provides a framework for old php/postnuke based community portals. One content type for everything, using dexterity and behaviors. I gave a talk about this.
Maurizio Delmonte - Plone in your country
Your country may have a national Plone site. Italy: http://plone.it. Netherlands: http://plone.nl. You can now see a link to national Plone sites in other countries in the right hand corner of your own site: we are world wide! Thank you for being here.
Maarten Kling
Thanks to all our sponsors, gold, silver, bronze, personal, supporting. Rita from RebelX: thanks a lot for all the designs. Guido Stevens created the Plone awards. The Brazilian Plone community has won the Plone Awards 2012 for their PloneGov.br community building efforts! Thanks Wyn Williams for the Wifi. Thanks to Musis for their support here at the Musis Sacrum location.
Crowd: "Thank you, Four Digits!"
Lennart Regebro - Blame it on Ceasar: A rant on calendaring
Talk during the Plone Conference 2012.
Lennart Regebro blames it on Ceasar when giving a rant on calendaring during the Plone conference 2012.
I live in Krakow, Poland, and can be hired. I ended up doing a lot with calendaring support.
We have the day, the month and the year. These cycles do not fit into each other nicely, which causes problems. Rome has seen all kinds of problems for this. Rome had 10 months per year. For lunar months you may need twelve or thirteen months in a year. So several days did not actually exist. With lunar months you get out of sync with about 12 days. So you get leap months. The roman calendar went out of sync about four months compared to what the season should have been.
Julius Caesar wanted to fix this. Solar calendars let the year follow the solstices and seasons. They got months of 29 or 31 days, because even numbers were unlucky. The new calendar was probably the worst ever made, but it was forced on an unsuspecting world because Rome was the boss.
Several calendars had ten days per week, but seven is a good cycle. The week is now a cycle that has nothing to do with months or years. That makes it difficult to calculate the day of the week for a certain day of the month.
momentjs.com looks best now for javascript.
http://www.date4j.net is promising for date handling in Java.
What day is the start of the week. Sunday? Monday? The isoweekday function is the correct function to use. Monday=1, Sunday=0 or 7.
The world is not split into 24 time zones. Every country decides which standard time or times are used. But we call them time zones even though they do not exist. Some time zones used to be for example one hour and fourteen seconds before GMT.
William Willett thought other people were lazy so he invented the Daylight Savings Time.
Some time zones get abbreviated the same, which is obvious as most of them end with Standard Time:
- BST: 5 different zones
- CST: 4 different zones
- IST: 4 different zones
So you can name them America/Chicago, Australia/Canberra, etcetera. Daylight savings has started at various dates and times for the same zone.
Javascript: new Date(2011, 1, 29) can give 1 March, as February=1. For date checking it is better to check a date at 12:00 at the middle of the day.
Now Python. The datetime library supports timezones, but no zoneinfo is included. So there is pytz, which is always up to date. dateutil uses what the OS gives, which is probably also up to date. There are more advantages and disadvantages. "Which half past three do you mean?" is a hard question in Daylight Savings. You can tell pytz to break when no information for DST is given. I have recently created http://pypi.python.org/pypi/tzlocal that helps pytz a bit more here.
Parsing timezones. POSIX has a number and a sign wrong here.
Recurring events: repeat every third Monday, except when it is the first of the month and not the third year. You can come up with really ridiculous rules here. It got simplified luckily. dateutil has good support. With dateutil.easter you can say things like: get the third Sunday after Easter. Other crazy stuff is in dateutil.rrule. The icalendar module helps for creating and parsing calendar files.
So what happens when you mix timezoned and timezone-naive events? plone.app.event does not allow this. Timezones do not make sense for conferences on boats. Do you use an end-date or a duration? plone.app.event supports whole day events.
With a datepicker popup you can pick a date with javascript. That is fine. But you want a fallback for non-javascript too. A dropdown box for hours is okay. For sixty minutes this is a long list. Plone limits it to five minute steps. That is a decision you need to make. An end date and time should not always be needed.
Solgema.fullcalendar is good, with hardly drawbacks and it pretty. Plone4Artists calender is good too, without javascript. Think twice before you create something new yourself. And if you do, you should limit yourself.
In calendaring you can luckily ignore leap seconds.
My blog: http://regebro.wordpress.com/