Last year, at Braga, with the help of friends, colleagues and also some teachers from University of Minho’s Department of Informatics, I’ve started Braga Geek Nights, a project that aims to bring together geeks from the Minho region (Portugal), to share their views and experiences about technologies, science and other geek stuff.

The concept is based on the Oxford Geek Nights, but with a broader range in regard to the session subjects (not necessarily focused on web related technologies). Each monthly session is made of two or three talks, which may be related to a common subject or completely independent.

Braga Geek Nights

From June 2009 till now, we had eight sessions, on a regular monthly basis (each first tuesday in the month). Exceptions were August and September mainly because, due to our proximity to the university’s campus, student speakers and attendees play a major role, and so we missed this period, filled with vacations and exams. So far, the reception to each session has been great and I hope the event keeps growing.

Tomorrow, April 6th, we’ll have the ninth session (April 2010). If you think you’re a geek and live near Braga, don’t miss it.

I recently released the first beta of collective.eventinviter — sorry for the name, but couldn’t come up with a better one. It’s a simple add-on package that enables Plone to send an iCal invitation (email with an attached .ics file) to each event attendee. Something that may be desirable in collaboration/intranet environments.

The emails are sent based on the content of the attendees field. So it checks each value at the attendees field, and sends email messages if:

The value is the username of a registered user, and if that user has a valid email address.

The value is a valid email address.

Values that match none of the these conditions are simply ignored.

Although it is intended to work out-of-the-box for the most common use cases, it is also possible to adapt collective.eventinviter to other event content types, i.e. other than ATEvent. For example, if we have a custom content type ‘MyEvent’, to enable iCal invitations it just needs to implement the marker interface IInvitationAware:

If, for some reason, MyEvent holds information about attendees at different field(s), an adapter implementing IAttendeeEnumerator must retrieve such list of recipients properly, which should be pretty simple to implement:

Although the results are not surprising, there are some interesting data that’s worth note:

Mac OS X 10.5 is the primary operating system, followed by Windows XP.

Firefox 3 is the primary browser used by developers to surf the web.

Most tested browsers in web development are Firefox 3, IE 7, IE 6 and Safari.

Most used HTML style tags attributes are width, height, cellspacing and cellpadding.

A developers majority follows a development approach that considers consistency across browsers important, and so providing features not supported on all browsers, but making sure it works on the non-supported ones.

A large majority leaves IE problems to the end, developing according to W3C standards and only then working around IE.

JQuery is the most used javascript library.

In respect to the software used on servers, Apache stands as the primary web server, Linux as the choice for the OS, MySQL is the preferred DBMS and PHP the most used programming language.

Of course, we must also keep in mind that the Web Directions’ audience is not an accurate sample of the whole web development world. It’s composed of web developers and designers that are mostly well informed about web standards and accessibility, which explains some of the trends.

The new release cycle is, without a doubt, a big step forward for Plone. More regular and predictable releases will attract more attention for new features, and more visibility means new potential users. Making a major release last for a while, complemented with periodic upgrade releases, also contributes, ultimately, to a more robust code base.

Now we don’t have to wait for a year, or even more, for a new feature-rich release. There is, obviously, a lot to improve, but Plone-3.1, which includes a set of handy features like new portlets, dependency handling in GenericSetup and more, is already a clear evidence of the new release cycle success.

It’s also interesting to see that for universities using a web CMS, a large number uses a custom built solution. For the ones using solutions available on the market, Plone is the most adopted. The comments page also includes some interesting opinions about the issues raised in this particular context of content management.

Another important information is that a large majority of universities don’t consider mandatory the usage of the adopted web CMS. This means that each department, faculty or institute will make its own choices. But that’s the nature of universities, and maybe that’s the way it should be.

This blog is intended to include my opinions and thoughts about software development for the web and its specific issues, like browser support, accessibility, usability and web standards compliance. Having developed web applications with Python/Zope/Plone for a few years, I’ll also give some extra attention to the reality of the Plone world.