Signal Boosting – MA Cohousing Tour – May 16th

Forwarding some information about the upcoming MA Cohousing Tour:

Come join us for a May tour of 4 cohousing communities on Saturday, May 16th, led by Laura Fitch, a cohousing architect and 15-year resident of Pioneer Valley Cohousing in Amherst. We will travel by bus and visit Camelot Cohousing and Mosaic Commons, 2 recently completed projects in Berlin, MA, then move on to tour New View in Acton and finish up at Jamaica Plain Cohousing. The tour meets and ends at the Riverside MBTA station (on the Green Line and just off Route 128 in Newton). You will have a chance to see 2 active cohousing communities and 2 which have just been completed, and visit with members of each. A fact sheet about each community will be provided and plans are in the making to have lunch at one of the just-completed communities in Berlin!
Cost is $105 per person and includes lunch. For more information and registration, please the cohousing.org ‘tours’ webpage

primark

Kingdoms Live – Army Invite Codes!

Oh, and I also appear to be playing Kingdoms Live on the iPhone. It’s a lot of fun, pretty straightforward play, and enjoyable. Limits moves so you don’t spend your entire life on it. Not sure how far it’ll go, but if you’re playing, and you have an invite code, comment here, and expand your army!
My code is VNS22

Cohousing Day #28 – Superinsulation Works!

Super Insulation in ActionToday we had 2 more houses move in (well, technically, only one – since the second is still unloading items from the truck as I type, and it’s 9:30 at night.) Tomorrow we have another household moving in, bringing our grand total to 7 so far. That’s seven families that have pulled up everything, and moved here. And there’s more to come.

But that’s not what I came here to talk to you about.

When we designed our houses, we put great emphasis on Superinsulation. The idea that a house should be insulated far beyond what ‘code’ calls for, to the point that it can stay warm in the winter and cool in the summer with a minimal amount of work by heating / cooling systems.

Today we were able to put that to the test. It got incredibly hot today – hot for April in New England, topping out at around 95 degrees according to my indoor/outdoor thermometer (see above). (Note that wunderground history for today says it only got up to 89. But it was still damned hot). According to the thermometer, it got up to 95 outside, but stayed at or below 79 inside the house.

Note that we have no fans running, no AC, in fact all the windows were closed. The house kept in the cool air from the night before – all day long. Even with traffic in and out.

That, my friends, is energy efficiency.

How many other people turned on air conditioners today? We didn’t have to.

Perl Coding Standards – Wish there were some!

Some day some bright light will come forward and lay down the law about how Perl code should be formatted. And, just as likely, they will be roundly ignored, primarily out of sheer spite, but with a grain of “perl lets us do what we want. We don’t need no steenkin standards” tossed in just to muddy the argument.

Today’s annoyance is cleaning up some long forgotten programmer’s way of of formatting blocks of code. Only slightly edited, here’s a sub in one of the cgi scripts:

sub _getMediaList( $ $ $ ;$ )
{
my ($carrierId, $contentType, $contentIds, $formatted) = @_;
return undef if (!defined($contentType)); # Charts can have no contents and thus no content type
my $gpd = GPD::getDbh();
my @mediaList;
foreach my $contentId (@$contentIds)
{
my $resultList = mediaSearch(dbh => $gpd,
carrierId => $carrierId,
contentType => $contentType,
id => $contentId,
showdown => 1);
next if (!$resultList->[0]); # Shouldn't happen
push(@mediaList, $resultList->[0]);
}
if ($formatted)
{
foreach my $media (@mediaList)
{
$media->{title} = "$media->{artist} - $media->{name} - $media->{album}";
}
return formatMediaListColored('[%s] [%s] [%s] %s [%s] [%s] [%s] [%s]', [ 'id', 'isrc', 'upc', 'title', 'genre', 'label', 'relate
d_content_isrc', 'release_date'], @mediaList, 1);
}
return @mediaList;
}

Now, I’m not harping on the code itself – this is pretty innocuous, if slightly braindead. But what annoys me is the overuse of newlines to stand off functional blocks. They’re not necessary, the indenting is painful, and it makes the code hard to read. How hard is it to rework it like this:

sub _getMediaList( $ $ $ ;$ ) {
my ($carrierId, $contentType, $contentIds, $formatted) = @_;
my $gpd = GPD::getDbh();
my @mediaList;
return undef if (!defined($contentType)); # Charts can have no contents and thus no content type
foreach my $contentId (@$contentIds) {
my $resultList = mediaSearch(dbh => $gpd,
carrierId => $carrierId,
contentType => $contentType,
id => $contentId,
showdown => 1);
next if (!$resultList->[0]); # Shouldn't happen
push(@mediaList, $resultList->[0]);
}
if ($formatted) {
foreach my $media (@mediaList) {
$media->{title} = "$media->{artist} - $media->{name} - $media->{album}";
}
return formatMediaListColored('[%s] [%s] [%s] %s [%s] [%s] [%s] [%s]',
[ 'id', 'isrc', 'upc', 'title', 'genre', 'label', 'related_content_isrc', 'release_date'],
@mediaList, 1);
}
return @mediaList;
}

To me this is far easier to work with and understand where teh blocks are and how they work together. In my opinion, there’s a couple basic rules about code layout:

  • Consistent indenting – 4 spaces or 2, I don’t really care which, just use the same thing EVERYWHERE.
  • Curly braces to open a block go on the same line as the introductory keyword (if, foreach, sub, whatever).
  • Lines longer than 80 characters should be broken into sane sub-lines. Just hit enter and indent, folks. Not that hard.
  • Declarations at the top of the block when the variables are used across the entire block.
  • Separate declarations from functional code by a newline.

Now, this particular piece of code has no comments in it, so I’ll leave comments for another rant. But I think these basics sure would make perl code a lot more maintainable if everyone at least marginally followed them.

Uncomfortable Plot Summaries

When I was a kid I remember reading TV Guide in it’s glossy mini-magazine format – it was like an up to date glimpse of the future at my fingertips. (Anyone reading this who was born after 1995 – this was before the Internet).
Occasionally their summaries of movies and shows would be completely off the wall. One I remember pretty clearly was:

Wizard of Oz – Transported to a surreal landscape, a young girl kills the first person she meets and then teams up with three strangers to kill again.

Fortunately, someone has written an entire page full of them.
Thanks to Ellen for the pointer.
ETA – Well hell. That wasn’t TV guide. According to IMDB , it was written by Rick Polito of the Marin Independent Journal. Oh well. TV Guide was still pretty cool.

Cohousing day #20 – Spontaneous Outdoor Meal!

image1766156110.jpgTonight we had one of those cohousing moments everyone talks about, but this really was experienced first hand.

Cat and I were home doing normal work on the house, the kids were out doing kidstuff around the site. We bump into Diana who mentions she’s making tacos, and would we like to join her and the kids? Well this went further into ‘it’s such a nice evening, let’s eat on the common house porch!’

So we did!

Diana made tasty tacos while I got out the furniture and set things up. Cat finished up the work she was doing on the house, and the 3 adults and 4 kids sat down for a lovely outdoor dinner.

We had a visit from the fellow doing work on Beezys house, and our soon to be neighbor Ken came by as well. Later after we had finished and were lazing around chatting, Kai came by and shared some quiet time as well.

All in all, a nice end to the week, and we got to use a common house resource for something shared and pleasant.

I like this place.

My next project: Fibre Channel

image402486551.jpgThere are times I realize there are big holes in my tech-savvyness. In particular, my experience with more enterprisey storage systems, while it exists, doesn’t have a lot of ‘hey wouldn’t this be cool…’ to it.

Recently a friend asked if I’d be interested in a fibre channel disk array and associated accessories that he was disposing of. After a few seconds deliberation, I said ‘sure’ and a week later, here it is.

This is a 10 slot fibre channel chassis, hub, and a pair of HBA’s to round it out (the rackable box on top is a different project). The array has a mere 7 18 gig drives in it. In modern desktop drive land, it’s pretty pitiful. But FC drives on eBay are going for $30 for 73gig, so I can kit out this box with some pretty fast storage for very little.

For now though I have to learn about HBAs, GBICs and all the other tech that slipped by me.

This should be fun.

Arisia Retweeter disabled

Those who follow the Arisia twitter feed will notice that there have been several retweets lately related to Amazon’s abhorrent ‘glitch’ that delisted hundreds of thousands of books related to GLBT content, including science fiction and fantasy books.
Twitter is wonderful for many things, but filtering is a problem. @arisia has become a target for anything related to the topic, and is showing up in distribution lists. Advertisements for book sources and other topics are being picked up by the script and being retweeted.
I set up the Twitter retweet script to allow people attending the convention to be able to keep in touch and chat about the con and goings on around it. It’s purpose is not as a general forum for anything SF related. There are zillions of other places to have those conversations.
I have temporarily disabled the retweeter until we get closer to Arisia ’10. This is not a personal statement on Amazon’s issues, or against anyone in particular, I just feel that this is the best way to keep the @arisia target clean and on focus moving forward.
If folks have content they’d like to see posted on the twitter feed, please feel free to send mail to me, and I’ll tweet it directly.

Firefox trick of the Day – Deleting History

Ever have that link show up in your history list that you just don’t want to have flash up in the middle of a demo with a client? You know, the one about fuzzy bunnys and jello? Right, that one. You don’t have to clear your entire browsing history just to avoid embarrassment…
In Firefox, when you start typing something in the address bar, and the history appears, use the arrow keys to highlight the offending history entry, and just hit Delete – voila! No more bunny-related distractions. At least for now.
Firefox’s URL history is pretty nifty, and I like how it will ‘bubble up’ frequently used URL’s toward the top, but I also like that you have detailed control over what gets displayed there.

Bluetooth headphone recommendations?

With the upcoming iPhone v3.0 update, Apple has said they will be supporting Bluetooth stereo headphones via A2DP. This is a huge win for me, as now I can have a set of comfortable headphones that can double as my hands free link to my phone.

I used to have a set of bluetake headphones for use with my Treo, and for the most part liked them. Alas they’ve gone missing and I suspect the technology has progressed significantly.

So I’m searching for a new headphone arrangement. My requirements are:

1) must support A2DP (stereo Bluetooth)
2) must support the standard hands free profile everyone uses for phones.
3) behind the neck / neckband styling. I find these the most comfortable, and east to just ‘dangle’ when not in use.
4) microphone that doesn’t require extra dangly hardware, or at least an arrangement where the mic folds out of the way.

Supporting multiple Bluetooth stereo sources would be a win, but I’m not sure if that’s possible (ala, be able to listen to music streaming from my laptop on occasion, without having to reconfigure the phone.)

I’ll be doing lots of googling in the next few days, but I’m open to suggestions.

Cohousing Day #10. We have a home.

img_7113.jpgA week and a half now. We’ve been living at Mosaic for a week and a half. Even though only 3 houses are now occupied, the life that is slowly coming to what was once just another construction site is tangible. I see people I’m close to almost every day – if just in passing, or to sit down for a chat. People are coming by to borrow tools, or to say hi, or for no reason at all.
Inside our house, things are starting to look sane and liveable. The living room is turning into a comfortable space, with the boxes receding like a flood tide, leaving furniture and decorations behind.
img_7112.jpgThe site in general? Wet wet wet. Color it mud. But even with the ongoing work, the dirt and rocks, the double parked construction machinery, and the strangers in your house at 7:30 in the morning working on an electrical problem, there’s no other place I’d rather be living.
In the next 2 weeks, I know of 2 definite move-ins, with 1-2 more possible. The neighborhood grows a little more, and a little more dream is realized.
Is is that shimmering utopia we imagined 10 years ago, when we started this project? No. But I’m starting to see glimmers of the thing we’ve been building. Sure, it’s been there, in the community at large, but it hasn’t been tangible and here.
Now. Bit by bit. It’s turning from a dream we all shared, to a place we can all call home.

Ubuntu Sound problem – won’t work after suspend – quick fix

Pursuant to my last post regarding PulseAudio problems under Intrepid, there appears to be a workaround.
The issue has to do with the PulseAudio system not being ‘suspended’ properly when a laptop goes into suspend. There’s a very easy way to sort of ‘nudge’ it back on track.
After resuming, type the following – this is done on my laptop ‘clipper’ :

dbs@clipper:~$ pacmd
Welcome to PulseAudio! Use "help" for usage information.
>>> suspend 0
>>> suspend 1
>>> <control-d>
dbs@clipper:~$ 

I just tried this, and things started making noise appropriately – didn’t even need to restart Firefox to get youtube videos going again.
This is documented in Bug 202089 in the Ubuntu bugtracker, but I’m reproducing it here if folks can’t find the answer.

Ubuntu Linux Gnome Desktop Gripes

I’ve been using Ubuntu Intrepid Ibex as my desktop platform of choice on clipper for a few months now. As part of that changeover, I also switched to using Gnome as my desktop environment.
I have to say, after my initial “ohh, look, this just works” with Gnome, the shine has certainly come off. There’s a consistent series of twitches that are causing me to grit my teeth whenever I come across them. Some of them have been identified in the Ubuntu bug tracker, and even after numerous comments and “me too” updates, the powers that be have not seen fit to include the fixes into the regular updates.
My guess is they’re waiting for Jaunty Jackalope, which is scheduled to be released this month. Be that as it may, I’m going to list out my current gripes now, and hopefully in a few weeks, when Jaunty is released, we can see if these will be addressed.
Compiz Window issues
There’s an annoying bug in how Compiz interracts with gnome’s window manager. In particular, transitory windows (such as the calendar popup, the ‘shut down..’ dialog box, etc), tend to pop up underneath existing windows. So it’s common to go to System->Shut down, and apparently nothing happens. Alt-tabbing, you find the shutdown dialog box buried under existing windows.
Shutdown Madness!
Speaking of the shutdown dialog, lets hear it for inconsistent interface design. On other Linux installs, and under KDE, hitting control-alt-delete brought up the suspend / logout / shut down dialog. Not so under Ibex! Control-Alt-Delete brings up a dialog that JUST has “Switch User” and “Logout” (and, as noted above, it tends to be under other windows). Suspend is not on that panel. To suspend, you have to mouse to System->Shutdown and select Suspend. Or, I found out recently, in the upper right corner you can click on a little ‘power’ icon, and select ‘shutdown’ on that menu. (Small tidbit – that pulldown menu looks completely different than the system menus. No icons, different layout. Nice going Gnome.)
Sound + PulseAudio
Anyone who has touched current versions of Linux has seen this come up, and the rants and vitriol have been piled all over the net. Some bright light in linux-land decided to set sound under Linux back half a decade. Getting sound working used to be quite a challenge, using the old OSS sound drivers, later replaced by the enormously stable and well supported ALSA (Advanced Linux Sound Architecture) toolset. All was fine and dandy through multiple releases.
Then someone decided that that wasn’t good enough, and they introduced PulseAudio. Naturally, some tools support PulseAudio, some tools support ALSA. Under many circumstances, this will cause a deadlock, where an audio application simply will not play sound. The only way to clear it that I’ve found is to reboot, and even after that, chances are it will lock up again at some point.
Further research has shown that this instability is being blamed on a botched release of PulseAudio by the Ubuntu team (the Pulseaudio folks are blaming Ubuntu for the craptastic port), but be that as it may, it still has not been remedied. To me this is a HUGE issue, as I listen to sound and watch video every day on my laptop, and not knowing whether sound is going to work next time I sit down to do some coding for half an hour is a huge impediment.
Wireless Tools
I consistently have problems with the wireless browser not being able to ‘sniff out’ local networks. There appears to be no mechanism to say ‘scan for new networks now’ – there’s some passive ‘oh, I’ll get to it at some point, maybe’ timer mechanism there, and there’s no way to tickle it and say “No, really, you’re RIGHT NEXT to the WAP. Browse please!” Frustrating.
Conclusions
I’m not sure exactly where I’m going to go when Jaunty is released. I may do a from-scratch install (saving my home directory), just to make sure I don’t have old configuration details lying around. I’m still willing to stick with Gnome for one more release, but if the issues I’m finding have not be fixed, and progress on the environment doesn’t move forward, I’ll have to seriously consider seeing how KDE4 is doing, and switching back.