I find myself doing a heck of a lot of twittering lately. The updated version of Twitterrific has an excellent interface, allowing me to post pictures, follow threads, do things like like “show me tweets that are coming from nearby me physically” (which has led me to make some new friends!).
This unfortunately has meant I don’t blog as much. When I see something I want to talk about, I just throw out a twitter post – which may include a picture of something I’ve just seen.
I understand that many of my readers don’t log into Twitter at all, and that’s fine. There is, however, a nice RSS feed of my postings available.
To read my tweets via RSS, use my RSS feed link (which is available on my twitter home page). My tweets are also forwarded into my Facebook page.
Last but not least, there’s a cute widget on my blog home page that shows the last couple tweets I’ve posted.
Twitter, for all it’s buzzwordism, is an interesting medium. I’ll stick with it for a while.
Some repercussions. Jay Severin gets spanked.
On my way home from work I frequently tune to WTKK in Boston to get an idea about what the far right is saying. I think it’s good to hear “the other side” of things. In the spectum of social policy, I’m frighteningly liberal – so it’s good to hear what the conservative wanks are going on about.
This leads me to listening to Jay Severin, who is about as far into radical politics as you can go. He’s a foaming-at-the-mouth Libertarian, from which you can get an idea where his politics are.
I listen to him because it gives me perspective on how twisted a view of reality can be generated. This is the fellow who consistently refers to the president as Barack Hussein Obama, well known Muslim and Communist, etc etc etc.
Apparently WTKK had enough of him during a show Severin did on April 30th. I happened to be listening to this when it aired, remember going “Yep, it’s Jay completely off the deep end again. Ah well” – but here’s his words:
Now, in addition to venereal disease and the other leading exports of Mexico — women with mustaches and VD — now we have swine flu… When we are the magnet for primitives around the world — and it’s not the primitives’ fault, by the way, I’m not blaming them for being primitives, I’m merely observing they are primitives — and when you scoop up some of the world’s lowest of primitives in poor Mexico and drop it down in the middle of the United States — poor, without skills, without language, not share our culture, not share our hygiene, haven’t been vaccinated… Millions of leeches from a primitive country come here to leech off you…. Now, at this particular moment in history, they are exporting to us a rather more active form of disease, which is the swine flu.
Now, after hearing, er. commentary like this, before I get all indignant, I ask myself “Does he really think this? Or is he affecting a persona that believes this?” – Jay is very eloquent – he could easily be presenting this image and these ideas deliberately to push folks into the red.
TKK wasn’t having anything to do with it, and has indefinitely suspended him.
Maybe there is some sanity in the world.
TechGripe – iPhone Mail app
First and foremost, I still love my iphone. It’s become my internet-in-your-pocket device. When I’m not carrying it, I feel like something’s missing.
But that doesn’t mean it doesn’t have it’s faults – and today’s itch is with the Mail app.
I have Mail configured to chat with the Exchange 2007 server at work (which works remarkably well – I get meeting notifications, etc). I also have it configured to talk to my Homeport mailbox over IMAPS. This works… well, but has some quirks.
First, Mail crashes like clockwork on startup. My guess this is due to a large inbox (frequently I’ll update and see 50-75 messages waiting to download. It’ll get 2/3rds of the way through the download, and BOOM). A restart usually completes the update.
I’ll do my mailbox cleaning, removing a bunch of spam, checking notices, etc… and then go on about my daily business.
When I sit down at my desk and run up Thunderbird – which connects to the same IMAP server, I see that all the messages I deleted or marked as read are still in my inbox.
I can’t find a way to tell the iPhone to sync it’s view of my inbox with the server. It does happen eventually, during some dark and sleepy period when I’m not watching it I’m sure, but I can’t figure out how to make it happen on my time – like, say, after I’ve updated my inbox during a boring meeting, and before I sit back down at my desk.
I know OS 3.0 is right around the corner, and will be a monstrous update. Perhaps there’ll be some Mail app tweaks?
The Portable Stack – Is there a place for the EeePC?
Recently I was successfully marketed to by Woot.com and aquired an Asus EeePC 900 Linux netbook. For those who are not familiar with these puppies, they’re hyper-small fully functional ‘laptop’ computers, scaled down to be the size of a hardcover book. The Netbook article on Wikipedia is a good summary of these devices.
The Asus EeePC 900 is an ‘older’ version (hence the reason I got it for only $149) with 512meg of RAM and a 4 gig SSD drive. It has all the basic features you’d expect for a laptop – wifi, decent screen, touchpad, USB ports, good battery life (about 3.5 hours), etc. In all respects, it should be a geeks dream. A fully functional Linux box that is only a few pounds, and can run for hours.
So why am I considering handing it off to my son?
The main problem is that in the current portable computing environment, the ‘slot’ that Netbooks like the EeePC can fill is narrowing rapidly. On the ‘full laptop’ side, there’s a trend toward longer battery life, lighter designs, and stuffing all the functionality of a full desktop machine into a portable form. Many people don’t even have desktop machines anymore, they use their laptops for all work (that’s my situation). On the other side we have the emergency of smartphones like the iPhone (which I have). The iPhone is an enormously capable device. I can read my email, chat online, browse the web, play games – all the things I’d likely do on my laptop if it were small and light – the space that the EeePC and others are shooting for.
Even in the face of all this, I really did give the EeePC a try. I carried it around for a week, trying to see where I’d use it and where I wouldn’t. I never ‘clicked’ into it in any particular fashion, due to a number of obstacles that were either filled by my iPhone or by my laptop:
- Very small keyboard
The EeePC has a very small and somewhat wobbly keyboard. I have quite large hands, and though I could ‘shrink’ my hands down to type away, it took some serious concentration, and really only worked when the EeePC was flat on a desk and I was sitting in a proper chair. If I were in that situation, I’d just use my laptop. - Wireless twitchy
This is probably a fault of the Linux distribution the EeePC uses, but I had all sorts of problems with the machine waking up and not reassociating with any available wifi (it wouldn’t even show networks available). - No LEAP support
The wireless also could not use LEAP authentication on wireless. This meant I could not use the EeePC anywhere at the office. Total loss there – I was hoping to be able to bring the machine with me to meetings so I didn’t have to undock and haul my normal laptop along. - Update failures from Asus
ASUS has broken their updater. The EeePC will not software update properly from ASUS’s servers. This is a real problem. There are workarounds, naturally, but it likely means there won’t be OS updates from the manufacturer anytime soon. The answer seems to be to use Eeebuntu, a version of Ubuntu linux designed specifically for the EeePC netbooks. - Touchpad
I don’t like the touchpad. I don’t know why – I just can’t get comfortable with it. The two-finger scrolling is cumbersome and prone to ‘pausing’ (this compared to the two-fingered scrolling on a macbook, which is smooth as silk). - Yet Another Power Supply
I have a problem with power supplies. If I’m going to carry another laptop, I have to have another power supply with me. So now I have 2 laptops, 2 power supplies. This is not saving me anything in weight in my backpack.
Given all these issues, I find myself either picking up my iPhone to twitter or check something on wikipedia, or get out my laptop if I’m going to do any real work.
So what to do? The current plan is to reload the EeePC with Eeebuntu and evaluate that. If it’s stable, is able to browse youtube, run Python’s IDLE environment, and play nethack, then it will be a perfect upgrade for my son, as he’s outgrowing his XO laptop.
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
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!
Today 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!
Tonight 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
There 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.
Cohousing day #16 – ownership
And now, after all the moving and painting and organizing…
This morning we closed. We are once again homeowners.
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.