MHAA in the local papers

We’ve managed to get 2 stories in the local papers about the Mid Hudson Astronomical Association in the last week.  The first came from the New Paltz Times:

Since 1985, a group of professional, amateur and the simply curious-to-learn astronomy buffs formed The Mid-Hudson Astronomy Club — which now boasts 75-plus members, a monthly outdoor “star-gazing party” and a monthly indoor meeting where a wide range of astronomy experts provide the group with compelling lectures and timely cosmic matters.

The second came today in the Daily Freeman:

MILAN — Since the days of antiquity, man has been fascinated by the star-filled heavens.

Religions were built around the worship of the heavenly orbs and temples and pyramids have been built in their honor.

Ancient mariners used the stars to chart their courses in unknown territories and it was a star that is said to have led the three wise men to Bethlehem for the birth of Christ.

The fascination with the stars continues today to draw mankind’s eye’s upwards to the night sky.

Locally, a group of amateur astronomers follows in the footsteps of those who came before them — the ancient Greeks, who developed astronomy; Copernicus,  who proposed the theory that the planets revolved around the sun rather than the earth, and Galileo, who was among the first to use a telescope to inspect the night sky.

Nice to get this level of exposure for the club.

Weekend Drupaling

I had a quite productive weekend working on the Poughkeepsie Farm Project site, and learned a lot of useful things about Drupal in the process.

Content Profiles

I now understand why core profiles are going away in Drupal 7, because they really do suck. All the flexibility and features that you get used to with custom content types and views go away when you are working on profiles. This became an issue as we were trying to create a Board of Directors page that was built dynamically from user accounts, and actually wanted to expose a draggable view to let people order lists of users manual (alphabetic sort wasn’t quite what we were looking for). I managed to convert over to content profiles, and life got a lot better. The results are here.


This weekend we pushed out the first newsletter in the new format using the epublish module. I’ve been working with Susan (executive director) and Jane (newsletter editor) for the last month to get this right. There is a lot of initial investment here on all sides as I had to make a few code changes to get this to work well for us, and a lot of theming. It’s especially tricky as we’re trying to make an HTML email look basically just like the page people see, even though they go through entirely different templates and theme paths, and html support in email clients is far less intelligent than in browsers.

I also managed to collect and submit my patches upstream, so I feel like a good little open source citizen there.


Recipes submission and indexing are now live on the site, using the really well put together recipe module. I had to build a slightly clever hack to list relevant recipes from the produce pages. I’m still trying to figure out the best way to get epublish and recipes to play nicely together, because right now they don’t. They both do slightly funny hacking with the body field and what’s in it, which is going to require patching one or both to get the display we want.


The events infrastructure on the site is now using a local calendar instead of just loading from Google Calendar. This lets us have a google calendar compatible feed. As well as having our event links go to content in our site instead of loosing the user on a Google Calendar page. There are still a few kinks to work out here, but overall this is going pretty well.

All of these have been in the works for the bulk of January, and it’s great to get this stuff coming to fruition. Looking forward to how these are received by the membership. Now I’ve just got to make a few front page changes and we’ve got to pull together the volunteer opportunity database, and the main backend work for the 2011 season will be accomplished.

Trains and complexity

When I went to Japan many years ago, I marveled at the complexity of the Tokyo JR system. There is separate pricing between every two stations, so when you get into the system you may need a different ticket amount to get out at any particular stop. At every station you see a map that looks something like this (fares listed in Yen):

At first glance, you get thrown by the complexity of it, and are really concerned you won’t do it right. What if you bought a 210 yen ticket, but need 290? It turns out, the system is built to handle that, because if you happen to have too small a ticket to exit the system, the automated gates will tell you to go to the fare adjust machine (available at any station), which will read in your ticket, tell you how much more you need, and give you a new ticket to get out of the system. All of this is done with no user interaction, it’s all machines and magstripes.

Once you realize this is the way it works, you change your strategy. Get the cheapest ticket that lets you into the system, and let the machine worry about the math when you want to get out. Simple as pie.

A couple years after I went to Japan I went to Germany for the first time, specifically Munich, and I got really confused about what tickets to buy to get around on their train system. In Munich there is no automated system for collecting tickets. There is rarely any checking tickets at all. As my friend Clemens once told me “But who would be on the wrong train with the wrong ticket?”. With no machine as the middle man the system can be as arbitrarily complex as the mind can come up, and doesn’t need to make any sense. There are tickets for 1 person for 1 day between certain zones. There are tickets for 1 person for 7 days between certain zones. There are bonus tickets for one trip beyond the zone your other ticket works for. There are tickets that support multiple people on one ticket. I met Clemens’ uncle because the most sensible ticket to go to the alps was for “up to 5 people”, and we only had 4 in our party.

The tickets just sit in your wallet and are never shown unless the random ticket inspector finds you. This never happened to me in Munich, but it did in Berlin years later. It is assumed you are in compliance, and it’s handle by exception if you aren’t. But it’s all handled by people interpreting German law. As complex as the Tokyo system is, the Munich system is so much more so, because there is no computer enforcement.

There are so many interesting ideas that come out of that juxtaposition, some pro for either side. Could you even make an automated system to handle the German law, or is there a realm of complexity beyond which automation is no longer feasible (lesson: some times doing it by hand is cheaper)? What would you need to change about the German system to make it validatable (lesson: some times you can’t test your software as it is written, and you need to change it to be a testable system)? Which is more efficient? In the German system there is no need for ticket checking machines, at the cost of much more time needing to be spent by people figuring out the right tickets they need at any given time (lesson: every system has a cost, if the implementer isn’t paying it, who is?). How much raw efficiency is gained by Trust being an explicit part of the equation?

Probably most importantly, both systems actually work, and have been for a long time. In the real world, there is never only one solution.

Open as a feature

I’ve been thinking about getting a new wireless router that I could install dd-wrt on, an open Linux replacement firmware, which gives you all kinds of nice features. I started this journey on the dd-wrt website to try to figure out what good options are right now. It was a confusing support matrix that I couldn’t really compare very well.

Then something occurred to me, perhaps there were some comments on newegg reviews for equipment about people doing this. Newegg is a pretty technically competent community, so this wasn’t that much of a stretch. I popped “ddwrt” into the search engine, and was surprised by the results, which looked something like this:

Linksys WRT54GL 802.11b/g Wireless Broadband Router up to 54Mbps/ Compatible with Open Source DD-WRT (not pre-load)

There are currently 11 routers on newegg that list DD-WRT in their title. Being open is now a selling feature of these products. How cool is that.


Some of the conversation that happened last night at the Hudson Valley Programmers gathering made me think about reinvention. There was a fundamental search engine problem that a few people were working with, which seemed like a solved problem, with good open source tools around it. When I asked the question, there was a lot of dismissal on those existing solutions as too slow. That could be true. It could also be that the existing solutions solve a lot of problems that they don’t realize they’ve got to solve yet. Honestly, I don’t know.

It raise and interesting general question, when is it appropriate to reinvent a solution to a solved problem? The answer isn’t never, that leads to staleness in progress, as the solutions of old sometimes aren’t appropriate any more. But the answer isn’t always either, because that’s just navel gazing with no forward progress. My experiences with Drupal have made me lean a little more towards less reinvention, if only because my time is precious, and if I’m going to do anything interesting in my hobby time I’ve got to build on top of the shoulders of giants. After building a dozen password reset systems over the years, I don’t really find that that interesting.

NYTimes on Bard’s Citizen Science

The 480 students have studied under two dozen scientists recruited from across the country for the program. Using lab equipment, computer modeling and classroom discussions, they have explored all aspects of disease, including detecting germs and managing pandemics.

“There are mixed opinions, from total apathy — ‘Why am I here? This isn’t why I came to Bard’ — to total enthusiasm,” Ms. Batkin said of her classmates. “I decided to take it 100 percent seriously; otherwise I knew I wouldn’t get anything out of it. I definitely find myself becoming more critical of the science articles I read.”

It seemed to have a pretty good kickoff, though I’m sure there will be detractors. Looking forward to how this program evolves over time.