We had a productive code sprint as part of the PDX11 Hackathon.

Participants

Roy Martin, Daniel Hedlund, Bart Massey, Selena Deckelmann, Leif Warner, William Van Hevelingen, Kirsten Comandich, Dunbar Aitkens, Mary Anne Thygesen, Reid Beels, Audrey Eschright and Igal Koshevoy.

Resolved

  • Added mobile interface to improve user experience on devices with small screens. The new interface puts the most useful information at the top and makes better use of screen real estate, reflows text for graceful zooming, and hides infrequently-used features behind click-to-expand controls.
  • Improved iCalendar exports and feed to include the venue’s address and Calagator source URL.
  • Updated to Hpricot 0.8.4 library, which should eliminate or reduce segmentation faults, primarily encountered in tests.
  • Fixed missing “bundle exec” references in documentation and webadmin service.
  • Improved documentation to explain the search engine service ports used, which need to be firewalled.
  • Fixed “Cinderella event” handling, so events ending at midnight aren’t shown as part of the next day’s listing.
  • Added per-event venue details field, for describing the room used and other event-specific information.
  • Improved Plancast importer to add machine tags to the event, so that their RSVPs and links are immediately available.
  • Confirmed that all index and show actions can emit XML and JSON for those consuming our data.
  • Fixed test suite to eliminate non-deterministic behavior caused by state leaking between tests.
  • Fixed tests so they don’t access the network and fail.
  • Refactored views that display subnav menus by extracting common logic into helpers.
  • Removed custom geocoder keys in hopes of simplifying setup — only to have to revert these changes because the keys are still needed for displaying maps on anything other than “localhost”.
  • Updated “Code” link in header to point to github.
  • Removed unwanted files that were accidentally checked in.
  • Added a custom iCalendar “prodid” value. Unfortunately, the patch to populate this with Unicode 6.0 glyphs of a crocodile, a calendar, and a happy-snowman-wearing-a-fez were rejected. This decision may need to be reconsidered in the future.

Closed completed issues

  • Issue 434: Review and merge rical_remodel branch.
  • Issue 443: Recent changes feed should link to both the change log entry and actual entry.
  • Issue 357: Deleting sources should delete their associated events and children.
  • Issue 424: Refresh version shouldn’t throw an exception.
  • Issue 423: Calagator should be able to export events to Google Calendar.
  • Issue 306: Submit patches to acts_as_versioned.
  • Issue 316: Consider adding version number to iCalendar export.
  • Issue 196: Fix acts_as_solr, make it log to a file.
  • Issue 401: JSON should be supported by all controller actions.
  • Issue 436: Solr’s admin port should not be publicly accessible.
  • Issue 447: Import Plancast events.
  • Issue 191: Submit patche to acts-as_solr that make it work.
  • Issue 397: Timezone in settings should be used.
  • Issue 24: Include venue information in iCalendar exports.
  • Issue 339: User should be able to create a new event from an old one.

Added and updated issues

  • Updated Issue 387: Add JavaScript widgets and usage instructions.
  • Added Issue 450: Write guide with per-platform installation instructions.
  • Added Issue 451: Add per-item duplicate squasher.
  • Added Issue 452: Add fuzzy venue search.
  • Added Issue 453: Improve the import system.
  • Added Issue 454: Migrate to Ruby on Rails 3.

Thank you for your contributions and support!

-igal

We had a Calagator code sprint this weekend at Recent Changes Camp, an unconference about wikis and related topics. Wikis have strongly influenced our design decisions (all events and venues are freely editable by all users, and changes are tracked so you can see what’s been edited), so it’s very cool to hear Wikipedia editor Steven Walling describe how our support for the Universal Edit Button sold him on Calagator. Listen to him talk about this in a short video recorded during RCC09.

We made good progress at Saturday’s sprint. Perhaps the most exciting bit of news is that Igal’s “with_theming” branch has now been merged into the main code. This means that Calagator now has support for other groups using our software in their own communities, with custom text and styling.

Before this, people had to edit out the Portland-specific parts by hand. There are already users in Sweden and Vancouver, BC running their own Calagator instance, and this update makes the process much easier. We’re working on fleshing out the documentation, but take at look at the theming README to get started.

Other documentation on how to install, use, and contribute to Calagator is available on our Google Code wiki.

Happy Birthday Calagator!

January 19, 2009

First Birthday Cake

Today Calagator is one year old. From the mailing list report on our first code sprint:

Update for 1/19 (first meeting): Today several of us met during the Code Sprint gathering at CubeSpace to talk and work on the calendar. … The first draft of the application is available at http://calagator.org/

In just one meeting we had a working application with basic features. Since then we’ve fleshed it out substantially, but of course there’s so much more to do. Please join us for a first birthday code sprint and party afterward, on January 24th, to celebrate how far we’ve come from “wouldn’t it be nice to have a community calendar anyone could edit?”, and build toward future awesomeness.

As we’ve been working on Calagator, I’ve told people “we want you to be able to have a calendar with only the Ruby and beer events if that’s what you like” as our goal for tagging, search, and feeds. This weekend we accomplished that goal. Now, if you enter a search term into the box in the upper right corner of the page, you’ll be offered Atom and iCalendar feeds to subscribe to. It’s a proud moment.

OSCON attendees might like to try this OSCON search.

With this update, we’re most of the way to our 1.0 milestone. The remaining items are recurring events, and creating a Calagator user guide to share with our user communities, both of which we’ll be tackling at future code sprints. And of course there are always bugs. You can help us as always by using Calagator, entering your events, and letting us know of any problems via Get Satisfaction and our issue tracker.

First up: we have a new design! You can see it in its full green glory at the usual place, calagator.org.

Our two meetups last week accomplished a lot. Some little things, some bigger (like the design). We’re continuing to struggle with our iCalendar & hCalendar tools, mofo and vPim. Mofo had a bug that was preventing postal codes from being read accurately. We now have a one-line patch that fixes this. A note to other open source developers: make it easy for people to find out about known bugs and send you patches when we encounter one! It’s very frustrating to lose half a day of work to something like this. We want to keep the ‘many eyes’ principle working.

All event pages now have a “Add to Google Calendar” link in the right sidebar, in addition to the previous iCal download link. This way you can send individual events to your personal calendar. There’s still also several ways to consume the entire events feed from the main events page.

We did more work on our duplicate event and venue management pages. You can get a sneak peek: events page & venues page. Help us out by spending a few minutes gardening duplicate entries.

You can see the full list of squashed bugs and other work on our wiki: http://code.google.com/p/calagator/wiki/StatusReports
Keep reporting any bugs you find to the issue tracker: http://code.google.com/p/calagator/issues/list

Update: One thing I left off—we started re-importing sources that have been flagged to request that. You can tell us to do this for your group’s calendar by checking the “re-import” box when you submit the url at http://calagator.org/sources/new.

We’re going to meet twice this week. Wednesday we’ll do another mini-sprint at Backspace (downtown on NW 5th), starting at noon. Come have lunch and work on bugs. Then on Saturday, we’ll meet at CubeSpace for our regularly scheduled code sprint at 10AM. We need to get the duplicate-entry management tools polished and ready for public use, and start importing and updating events on a recurring basis so users spend less time manually importing everything.

As a reminder, our meetings are open to everyone. Programmers (at any level of Ruby experience) and web designers are especially needed, but anyone can test the site, write documentation, and work on figuring out what’s left to do so we’re importing all calendar events for groups in the Portland tech community.

Despite lovely spring weather on Saturday, a small group gathered for our regular code sprint. We did get a little outside time by having lunch on the patio at Produce Row.

Changes you might notice:

  • The events pages now have a link to get an hCalendar version of the event. You can copy and paste this into your own blog or webpage, to display the full event details as well as sharing the microformat love.
  • We’re continuing to work on management of duplicate venues and events behind the scenes. You might see more of these merge as we test the new functionality.
  • We did some pre-emptive sanitization of displayed data. No one has tried to do anything crazy or malicious with the event or venue fields yet (except us, for testing purposes), but this is a good problem to take care of now, before it’s a serious issue.
  • You might have seen a bug where not putting an end time on an event raised an error. We don’t want to make end times mandatory, so that’s fixed now too.

If you spot a bug while you’re using the site, please report it. We test things as well as we can, but there’s always something that slips through.