General

You are currently browsing the archive for the General category.

Plone 3 CookbookWhen I received a review request for Plone 3 Products Development Cookbook from Packt, the first thing I thought was: How didn’t I know about this book before, and who are the authors? I’d certainly not heard about them (Juan Pablo Giménez and Marcos F. Romero) nor this upcoming book ever before, but it seems there are a lot of Plone books being written behind the scenes by people not hanging at #plone too. :)

The list of reviewers, comprising Martin Aspeli, Alec Mitchell and Emanuel Sartor, being as they are core and very active developers, automatically made me think this was going to be an accurate and up-to-date book.

This is the second book in the market about modern development with Plone, after Martin Aspeli’s Proffessional Plone Development. And after having skimmed through it (if you try to proof-read this kind of books from top to bottom your brain can explode), I can say that it’s probably going to become a classic invaluable reference as PPD already is.

Plone 3 Products Development Cookbook spans over 350 pages full of useful tips, set-up instructions and step-by-step coding approaches to solve specific use-cases (that’s why it’s called “cookbook”). Even if the book title says Plone 3, I think it’s just a Packt policy – one can be sure that most of the contents (if not all them) will be valid for Plone 4 too, and the authors even included some special instructions for Plone 4.

The book show-cases the development of an hypothetical digital newspaper with Plone, covering the whole process: From installing Python and Plone in Linux or Windows (Mac OSX specifics aren”t covered in this book) to preparing the production environment, passing through the installation of useful development tools like ipdb, DocFinderTab or plone.reload, creating content-types using ArchGenXML, paster-aided plain Archetypes or Dexterity, internationalizing and localizing the product, building XML-RPC interaction with other systems, and more (see the full table of contents). All the features coded include automated tests, what is a Very Good Practice and will help devs to be less afraid of writing tests.

The book is organized in a recipe-list fashion, in chapters, every recipe including “getting ready”, “how to do it”, “how it works” and “there is more” sections. Sometimes the separation of concerns between these sections is not very clear, but one can expect a series of short steps in “how to do it”, to use as reference, and some brief explanation in “how it works”.

In my opinion, this is not a book for beginners. Even if there are some explanations in the “how it works” section of each recipe, they are almost always quite brief, and can certainly make you have to re-read and Google for more documentation often, if you really want to understand how the Zope Component Architecture, ZPT, skin layers, z3c.forms, etc. work. I see it more as a reference book for more advanced developers, who can also discover in this book some tricks and approaches they didn’t know before – I certainly did!

Summing up, this is a really useful reference for folks with previous developing experience in Plone. My sincere congratulations to the authors for their hard work to make this happen – I’m sure it will hit the shelves of every active Plone developer!

Related articles

Tags: , ,

Related articles

Tags: , ,

Internet no será otra TV
Este lunes 19 de abril se celebra en España una Reunión Informal de Ministros de Telecomunicaciones y Sociedad de la Información de la UE en la que pretende aprobarse la propuesta Española por una Europa Digital, también denominada Estrategia de Granada (ciudad en la que tiene lugar el evento).

Coincidiendo con este acto, FACUA-Consumidores en Acción, ExGae, Red Sostenible y FCForum, que agrupan, entre otros, a cerca de un centenar de organizaciones nacionales e internacionales defensoras de los derechos ciudadanos, celebrarán a las 11.00h en Sevilla (sede de FACUA, c/ Bécquer, 25A) una rueda de prensa para analizar el contenido de la propuesta española y dar a conocer los graves peligros que implica.

Apoyándose en la campaña INTERNET NO SERÁ OTRA TV diseñada por el conocido dibujante Miguel Brieva, estas entidades muestran su preocupación por las presiones que los lobbies de las industrias de las telecomunicaciones y la cultura vienen ejerciendo sobre Bruselas y los gobiernos de los Estados miembros para lograr el desarrollo de políticas a la medida de sus intereses económicos que perjudican a los ciudadanos y ciudadanas.

En el acto se presentarán las conclusiones de un estudio a nivel mundial sobre las políticas de propiedad intelectual en 34 países realizado por Consumers International, la mayor confederación de asociaciones de consumidores del mundo, de la que forma parte FACUA.

Related articles

Tags: , , , ,

Update: This project has been accepted! Martin Aspeli will be my mentor. :)

For those of you not familiarized with Plone nor web development nor computers: I want to press a lot of buttons to make the pattern of lights shown in a metal rectangle change however I want. (credits to xkcd #722 ;)

For the rest of you, here goes my Google Summer of Code 2010 student proposal!

Core tiles development

Deco is a revolutionary page composition system heavily based on semantic HTML and middleware software (either WSGI or using a post-publication hook), which could probably be shipped by default with Plone 5. The underlying Deco architecture, based on the concepts of panels and tiles, needs a set of core tiles (image, video, navigation tree, content-type field) to be inserted in the page.

What are you studying, and where?

I’m a Physics student from the Universidad Complutense de Madrid, Spain. I’m studying now in Stockholm (Kungligla Tekniska Högskolan) as an Erasmus student, and will study in Barcelona next year within another exchange programme (Séneca).

What is the most interesting programming project you’ve undertaken while at university?

I’ve coded a C++ app to solve the minesweeper game using different chained strategies.

Have you ever contributed to an open source project? If so, give details.

(Remember, filing bug reports and writing documentation are every bit as much contributions as writing code)

I’ve contributed to:

- Flock: Bug reports and translations to Spanish, as well as trying to lead the l10n team for a while.

- Mozilla: Providing help in the Mozilla Hispano (community website) forums, as well as writing some end-user documentation and a localization QA application in Django.

- Alqua: Wrote part of the code to use LaTeX templates written in the Cheetah template language to generate quality documents.

- Plone: Contributed and managed developer documentation. Leaded efforts to write documentation for the upcoming Plone versions. Reported a bunch of bugs, and fixed anohter (coding).

Have you used Plone before? What for?

Yes, for the Alqua website, in my first job (Zassh website), working with the Plone community and in my current job in Webworks.

Have you spoken to anyone in the Plone community about your project? Who?

Yes, Martin Aspeli, Geir Baekholt, Matthew Wilkes, Alexander Limi, David Glick, Rob Gietema and I guess some others I don’t remember right now.

What is your project idea?

This is the most important bit, so be as detailed as you can.

Deco is a new and exciting new way of composing, and I’d say that even theming pages and a website. It allows the user to create flexible grid-based layouts for the contents directly through the web without the limits of portlets and viewlets positioning and unifying these two concepts through the idea of “tile”.

Some sample tiles have been developed as a proof of concept (example.deco), but we need to develop a set of standard core tiles, including the so-called “application” ones like Text, Navigation, Image, Video, Calendar, Login Box, Search Box, Map, RSS Feed or Comments, and the field-type one, which can represent fields like Title, Description or Date. These last one would be probably integrated with Dexterity.

I want to create all these, and I think that we will find and solve a lot of issues underlying the current architectural Deco code in the way. The collective.tinymcetiles product, already usable, will allow us to insert tiles in Rich Fields and therefore test them.

At the same time, most of the infrastructure and API for creating, storing and displaying tiles is already completed (plone.tiles and plone.app.tiles), as well as the system to merge and render panel layouts (plone.app.blocks), but we still lack a system to store and manage site and page-wide layouts. I want to work also on the design and implementation of this system, with the help of my mentor.

Finally, and keeping in mind the radical change of concept Deco involves, I’d like to write quite a lot high and low-level documentation about how the whole system works, ensuring a smooth transition curve for people already used to the old way as long as newcomers.

Please complete the following sentences about how you see the state of the project at different points in the timeline:

At the start of the official coding period (i.e. a month after the accepted projects are announced) my project will be …just about to start after having read the documentation about the different packages involved and played with them, creating some test tiles and some test Dexterity content-types, to understand better how they work.

3 weeks into the official coding period my project will be …having coded an alpha version of most of the application tiles: Image, Video, File, etc. These tiles can work with Archetypes content types and collective.tinymcetiles.

Half-way through the coding period my project will be …having coded an alpha version of a sample field tile. These tiles would extract the data from a Dexterity content-type. example.deco already implements a proof-of-concept for a field tile, but this implementation needs to be rethinked according to M. Aspeli. Field tiles won’t probably work well with with collective.tinymcetiles, but Rob Gietema (from 4Digital) is already working on the plone.app.deco package to support this.

3 weeks from the end of the coding period my project will be …having polished the previous tiles and started working on a Dexterity “Page” content-type to be able to insert field and app tiles in it without collective.tinymcetiles.

At the end of the coding period my project will be …finished working on the Page type and the previous tiles.

3 months after summer of code finishes my project will be …hopefully continued to fix bugs and improve it! It will need to if we want it to make into Plone 5.

Do you have any other commitments during the summer of code period (i.e. between June and August)?

I plan to travel for holidays for at least a week. I also have to move from Madrid to Barcelona, so I’ll need to look for an apartment there and probably will be busy for a week or so till everything settles down again in my life. :)

I’ll also attend the Plone Symposium East 2010 at the end of May.

I also plan to attend the Plone Conference 2010 this Autumn.

Related articles

Tags: , ,

One of the first things you have to keep in mind when considering to get this book is the target audience. If you’re a hard-core developer who keeps Proffessional Plone Development under your pillow, this book might be a bit too “soft” for you. It’s targeted to integrators with little experience in Plone who want to learn about how to perform certain tasks, from publishing an usable events calendar to create an on-line form for visitors’ comments.

Both the author, Erik Rose, and the technical reviewers are well known and respected in the community. I’ve chatted more than once with two of the reviewers, Steve McMahon and Denys Mishunov, and I know they’re quite skillful and competent, so you can expect the book to be correct and well-written.

I must admit that, at first, I was a bit annoyed with the step-by-step recipe-style of the book. Being a Physics student, I’m used to read texts where the main points of the theory are explained, but the step-by-step procedure is often left as an exercise to the reader. Having to follow closely a list of steps makes me feel like a script-kiddie: somebody who executes a series of steps without actually understanding what is she/he really doing.

However, Erik has taken care of providing a lot of contextual explanation about the steps, with comments about the different options you have and why would you prefer to choose one or another. Moreover, the just-follow-these-steps approach is not so heavily used after the two first chapters.

Although the title of the book suggests that people in the educational context are its only target public, you can learn a lot from its suggested approaches even if you aren’t into education. Being very, very practical, it covers a freaking impressive list of tasks/features: making academic courses available on-line, a directory of personnel, setting-up a blog and a forum, publishing audio and video, creating forms easily, theming a site and managing a production system.

I wouldn’t have covered the theming and the sysadmin stuff, since it’s quite technical and there are already (or are coming) good book references on these subjects, including the Plone 3 Theming by Veda Williamson, Practical Plone 3, or the upcoming Plone 3.3 Site Administration by the popular Alex Clark. By the way, Alex, please tell Packt that this title is not attractive at all marketingly-speaking — people will think that the book only applies to 3.3!

Unlike other books, which are quite bare-Plone centered, a lot of interesting add-on products are documented, more or less extensively: FacultyStaffDirectory (of which Erik is an active contributor and therefore even provides tips about future development!), p4a.Calendar, Scrawl, QuillsEnabled, PloneBoard, collective.flowplayer, p4a.video, p4a.audio, PloneFormGen, z3c.jbot and CacheFu, among others.

Erik doesn’t simply provide general technical manager advice, but also tells you about good practices for content editors based on his previous experience and known pitfalls. What is even more impressive, he sometimes points you to some tickets in Trac about open issues! While this would be more suitable for on-line documentation, it reflects the active involvement and time Erik has spent on investigating what he’s writing about. Good work, Erik!

The book is full of evangelism, specially in the first chapter, where it comes in loads. While it shows that Erik (and the reviewers?) is really passionate about Plone, I guess that who bought this book is looking for info about how to use the product, not marketing stuff, and perhaps these pages could have seen better use with some images, more extensive explanation of a certain feature, or just removed and the price of the book lowered. But this is only the opinion of someone who’s already convinced of the coolness of Plone. Erik also takes the opportunity to expose his political view about the issues with buildout, installation and packaging.

The writing style is clear and always fun. Sentences like “Who can resist puppies? They are heart-meltingly cute and loads of fun, but it’s easy to forget, when their wet little noses are in your face, that they come with responsibility. Likewise, add-ons are free to install and use, but they also bring hidden costs.” make you smile and remind you that some people in the Plone community have a good sense of humour and are crazy enough to publish this kind of stuff in a technical book. :)

Kudos to Erik — while I was certainly biased about reading a book for non-developers and just for Education, you managed to make me learn new stuff and enjoy doing so!

I’d like to thank Packt Publishing for providing me a free review copy of the e-book for my reading pleasure. The 2nd chapter, Calendaring, is available from their site free of charge, in the case you want to take a peek before considering to get the book.

Related articles

Tags: , ,

The second day of the Conference was named the “Unconference” and consisted on a series of open workshops proposed by the Conference attendees. The list is quite long and impressive, but at each time there were four or more workshops taking place simultaneuslly, so I wasn’t able to attend them all. ;)

Below you can find some notes on the ones I participated in.

Hacking the Hill

This workshop was about who you should contact if you want to influence the political decisions in your state inside the USA. People usually contact their most local representative, but what is important is to influence the representatives who are part of the committees where the topics you’re interested in are discussed.

The most effective method to influence their decisions is to ask them for a physical appointment and talk to them to explain your point. They don’t directly watch their heavy-loaded mail account nor Facebook (:P), but conversations can change minds!

Opensecrets.org is an amazing website where you can find a lot of data, mainly economic, about politics, politicians and lobbies. Under Politicians & Elections → Congress you can find a list of the current representatives, and if you click on their names, the committees assignments.

On the Spanish side, the Hacktivistas group maintains a very interesting wiki page where who is who in the Copyright politics game is described. Also, they’ve recently published an article about the anatomy of the Special 301 Report lobby.

Charter for Innovation, Creativity and Access to Knowledge

This workshop versed about the already (I hope famous) Charter authored during the 2009 Culture Forum in Barcelona. While we often are tempted to point out the bad and worse stuff of the current legislative initiatives, this Charter aims to be a positive reference document for discussing Copyright, A2K and Net Neutrality topics.

It is the work of more than one hundred experts and it’s always being improved. The current version 2.0 has been endorsed by dozens of individuals and organizations, some of the most popular listed at the end of the Charter.

Michael Johnson pointed out the existence of a similar document, the Libre Society Manifesto, by David M. Berry and Giles Moss. While (IMO) the purpose of this last document is different, I’m sure we can take ideas from it to include in the Charter, and of course welcome the manifesto’s authors to join us.

During the presentation we had a very interesting conversation with one of the attendees, a photographer who was publishing her work under CreativeCommons licenses. She told us that she usually faces problems with her clients since they’re not used to this (new?) way of publishing photos, and they often look for sole rights.

We arrived at the conclusion that this open-licensing is opening a new model of payment orientation: whereas the closed-licensing (all rights reserved, can’t copy nor redistribute, etc.) built the value around the content, the open-licensing is building the value around the work itself. Instead of paying for a piece of content, you pay the people who create this content to create it.

While it can sound rather new, this has been the most natural model in the Free Software world for a long time now. Since most Free Software is provided free of charge, as a consultant you can only charge a client for the work you have to do in order to adapt and customize it to his needs. One usually releases the resulting product, when appropiate, as Free Software, so instead of having to reinvent the wheel over-and-over again, other people can just pick up your work and extend it, which is much more efficient.

For example, I work with Plone, a Content Management System widely used in government-related and NGO sites. The amount of time the Plone contributors have spent on it must be really impressive, but it’s provided free of charge, gratis! This is sustainable because we use Plone to build websites, and the better and more powerful Plone itself is, the easier it is to adapt it to the customer needs, and so the more clients that are willing to hire these skillful developers.

This also encourages a new strategy to develop products: instead of developing the product and hoping to be able to sell it to enough clients to compensate the investment, you wait until customers have commited enough funding for the development. This way you have sold the product before developing it and therefore reduces the risk of supreme failure.

Open Educational Resources tools

The open.michigan team presented the dScribe framework to extract atomic content from existing material, edit its metadata, clear copyright issues and create new material. They told us that the software powering the framework is still a bit hard to install, since it was developed to work in the Michigan University, but they can open an account in their servers for you if you ask them.

One of the problems we’re facing is how to create, maintain and publish the contents in a way they’re easy to comment and contribute to and, at the same time, high quality. One of the most advanced tools to generate high-quality documents is LaTeX, but the way it works makes it a bit hard to be converted to HTML and published in the web, where contributing is much easier and accessible than having to dive into the LaTeX source.

In this sense, Alqua is investigating plasTeX, a modular and very extensible LaTeX document processing framework written in Python. The aim is to be able to publish LaTeX documents in HTML and provide a per-paragraph and per-formula comment system like the one you can see in the Mercurial Book.

Another approach is to use a markup syntax and a wiki-style site to compose and comment the document and make use of some scripts to convert the markup to LaTeX when generating a high-quality and ready-to-print version of the content. The testing/beta veresion of Wikipedia already allows you to generate a beautiful PDF-book from a set of articles of your choice, so it’s clear that this approach is reasonable.

FLOSS in scientific education

The goal of this workshop was to ask the attendees about the approaches to free software taken in their educational environments, related to Science.

A lot of universities are using and teaching their students to use privative scientific software, like Matlab, Maple or Mathematica. These universities often have to spends huge amounts of money on multi-PC licenses for the software, or even encourage students to install non-original copies of the software in their PCs. Moreover, the internals of these software pieces are hidden to the students, in clear contradiction with the scientific spirit.

There already exist quite a lot of Free Software replacements for the privative counterparts, like you can check in the Open Source as Alternative website. One of the most interesting emerging frameworks is Sage. As their developers define it, it is a free open-source mathematics software system that combines the power of many existing open-source packages into a common Python-based interface.

The combination of different packages provides the most efficient way to deal with each type of problem and warrants interoperability. For example, Sage can use Maxima to solve a differential equation symbolically and Matplotlib to plot the results, all under the hood.

Another impressive and very convenient feature of Sage its Through-The-Web interface. You can set-up a web server for some students to use Sage in a collaborative environment from their own homes without installing anything on their computers. Try it and break your jaw at the Sage Notebook website.

Related articles

Tags: ,

Son varias las razones que me llevan a solicitar este intercambio.

La primera de todas es que Barcelona es una ciudad que, desde la primera vez que la visité, me ha resultado tremendamente atractiva. Mis visitas han sido siempre bastante cortas y no he tenido demasiado tiempo para dar vueltas por la ciudad, pero lo poco que he visto me ha parecido llenísima de vida y de gente muy variada. Me encantaría poder disfrutar de casi un año allí.

Además, Barcelona está situada en un lugar estratégico en España, muy cerca del resto de Europa, lo que me permitiría visitar países que aún no conozco bien, como Francia.

El catalán, si bien en un principio puede parecer un problema porque no lo hablo aún, no es si no una oportunidad para aprender un idioma más.

Este año estoy disfrutando de un intercambio Erasmus en Suecia y conociendo gente proveniente de todo el mundo: su cultura, su forma de comportarse, su gastronomía, etc. Esto viene muy bien para abrir la mente, para ampliar el enfoque que uno tiene del mundo. Un intercambio SICUE tiene un ámbito más limitado, pero aún así creo que sería interesante conocer en profundidad cómo es la vida en otra ciudad de España.

Por otra parte, estudiar en otra universidad me da la oportunidad de estudiar asignaturas que no se imparten en mi facultad y conocer formas distintas de exponer un mismo tema, de evaluar, etc. Al igual que con las personas, esto ayuda a darse cuenta de que las cosas se pueden hacer de otro modo, con sus ventajas y sus inconvenientes.

Por último, ésta es una oportunidad única que se me presenta para estudiar fuera de mi cuidad gozando de una beca (Séneca, que tengo intención de solicitar a continuación) que me permitiría vivir cómodamente sin tener que quitar tiempo de mis estudios para trabajar ni que seguir dependiendo de la economía de mi familia.

Related articles

Tags:

I’ve spent some time this weekend updating the Plone Help Center product to work in Plone 4, specifically in Plone 4.0a2. Some reasons/excuses:

  • I had free time.
  • I love coding for fun.
  • I wanted to experience myself how easy/hard can be to updating a Plone 3 product to work in Plone 4.

The changelog will tell you about every change I performed, but a summary of the most important stuff is:

  • The attribute __implements__ of a class cannot be used anymore. Use zope.interface implements and implementsOnly instead.
  • Use mailhost.send instead of mailhost.secureSend. Learn how to upgrade your product accordingly (thanks alecm!).
  • Manually define all needed variables which were formerly globally defined in the famous main_template. This was the most time-consuming step, because I had to fix them one-by-one following a try-error approach. Thanks god PHC has automatic tests, which helped a lot there.
    Perhaps we could come up with a handy find-grep expression to be run in the root of your add-on package to identify all templates where you’re using global expressions (no longer available). find-grep hackers are welcome to comment this post. ;)

Related articles

Tags:

I just read on a tweet that the first alpha release of Plone 4 is already available for testing and I wasn’t able to resist the temptation. :P  As some people have already pointed out, Python 2.6 for Debian is only available from the experimental repository, and most of us prefer to stay testing or unstable at most. :)

Thanks god, there’s a buildout recipe (we should create a Linux distro based on buildout someday, alecm ;) to build Python from source in an isolated environment. Steps:

  1. svn co https://svn.plone.org/svn/collective/buildout/python/ buildout.python
  2. cd buildout.python; python bootstrap.py
  3. Edit buildout.cfg to fit your needs. You might want to comment out the references to the Python versions you don’t want to install.
  4. bin/buildout
  5. cd to-another-directory; paster create -t plone3_buildout plone4.
  6. Enter “4.0a1″ (without quotes) when asked about “Which Plone version to install”. Make sure you have the last version of ZopeSkel (2.14.1 while I’m writing this – easy_install -U ZopeSkel) or the generated buildout.cfg won’t be valid for Plone 4 otherwise. Thanks to MatthewWilkes for the pointer and of course for the ZopeSkel release. :)
  7. path-to-buildout.python/python-2.6/bin/python bootstrap.py
  8. bin/buildout. If you get tons of lines in your console output about fetching distribute, see this post by Reinout van Rees.
  9. You’ll need to install PIL to run Plone, so do either:
    1. python-2.6/bin/easy_install-2.6 http://dist.repoze.org/PIL-1.1.6.tar.gz, or
    2. Add PIL or PILwoTk to any of the eggs sections of your Plone 4 buildout and re-run bin/buildout.

If you stumble upon an error message similar to:

Downloading http://dist.repoze.org/PIL-1.1.6.tar.gz
Processing PIL-1.1.6.tar.gz
Running PIL-1.1.6/setup.py -q bdist_egg --dist-dir /tmp/easy_install-Fev48C/PIL-1.1.6/egg-dist-tmp-SNtCRu
In file included from decode.c:608:
libImaging/Zip.h:11:18: error: zlib.h: No such file or directory
In file included from decode.c:608:
libImaging/Zip.h:37: error: expected specifier-qualifier-list before ‘z_stream’
error: Setup script exited with error: command 'gcc' failed with exit status 1

try “aptitude install zlib1g-dev”. Thanks davisagli!

The previous procedure should work… But it didn’t in my system. :(  I get an error in the buildout.python bin/buildout:

SystemError: ('Failed', 'patch -p0 < /somepath/buildout.python/parts/readline-patch/readline.patch')

I’ve already tweeted fschulze (who is presumably the author of the collective.buildout.python stuff, according to comments in the #plone IRC channel) about this issue. I hope it will get solved soon! :)

In the meanwhile, removing or commenting out the stuff about readline.patch in the collective.buildout.python buildout.cfg before running bin/buildout appears to be a valid workaround, at least for me.

Related articles

Tags: ,

Hej!

Hey people! I’ve finally moved to Stockholm to study within the Erasmus programme. I will study Engineering Physics at KTH: Nuclear Physics, Experimental Particle Physics, Many Particle Physics, Relativistic Quantum Physics, Chaos and Self-Organization and Fluid Mechanics for this autumn 2009 term.

Stockholm looks really beautiful but I’ve not find the time yet to do some tourism. I’m totally overwhelemed by all the bureucracy, shopping and… cooking! I love cooking and since now I’m living alone I can cook without limit (just money ;).

The people here is friendly in general. Lots of people from France, Germany and Spain! The KTH facilites are absolutely amazing and the buildings are really cute too. I was afraid of my English but I’ve managed for now to understand and make people understand me. The fact that English is not the mother lang of almost everyone here helps, of course.

I still don’t have Internet access in my room in Lappis, that’s why I’m not posting too often.

Studying abroad is being a really exciting experience. I can’t stop reccommending it to everybody. You’ll regret if you let it go!

Related articles

Tags:

« Older entries