One danger of the N900’s flexibility

When I first heard about Nokia’s super-awesome Debian-based N900 amazingphone, my first two thoughts were “I want this phone” and “man, I hope I don’t break it.”  By offering access to the full OS, the N900 allows developers and users the freedom to make their phone into whatever they want.  That also means an unprecedented ability to turn the phone into a very expensive paperweight.  Just as with a full-sized computer, a user not paying attention to what’s going on could render the system inoperable in a heartbeat.  Even the relatively competent could find themselves in that situation.

The chief drawback of the N900 is the way the disk space is layed out.  The device has 32 gigabytes of storage, but most of that is on a separate partition for user data.  The system and application space is only 2 gigabytes.  This means that as the number of installed applications grows, the available space shrinks rather quickly.  It can get to the point where there’s not enough space to store repository data and some of the software repositories become unavailable in the Application Manager.

In order to work around this issue, I copied /var/apt/cache to the user space and made a symlink to point to the new location. After a while, the space became tight again, so I started moving more things out, and eventually nearly all of /usr/lib ended up on the user partition.  Everything seemed fine, so I wasn’t concerned.

Then one day, I couldn’t connect to the wireless network at work.  I figured I’d try rebooting the phone to see if that helped.  Instead, I got the boot screen with some not-so-friendly text: “Device error”.  Nothing I could do could get the phone to boot.  Presumably what happened is that some of the files that live in /usr/lib need to be accessed before the /home partition is mounted and since they lived on /home, things just went kablooie.

Regardless of why, I found myself stuck, and I knew I had to get it fixed quickly or my wife would never let me hear the end of it.  Fortunately, Nokia provides tools to re-flash the device firmware.  The process was quick and painless and in a few minutes, I had my phone back.  Because user data is kept separately, I still had my contacts, music, etc. I just needed to re-install the software packages I wanted.

One thing of note is that my SIM card wasn’t read initially. I needed to do a round of software updates before it would work.  Fortunately, I had the phone back to full use in about an hour.  It’s good to know that I can easily unbreak any software issues I cause, and I hope the application data space issue is resolved in one form or another in the future.

Who doubted Purdue? Not this guy!

You’ll have to excuse this post.  It’s one of complete fanboyism, written while still under the influence of a nail-biting win and the 92 fluid ounces of Killian’s I had at Buffalo Wild Wings.  If you don’t want to read my excited babbling, it can all be summed up in two words “Boiler up!”  Remember a week ago when everyone was saying that Siena would be the only 14-seed to be favored in the first round?  Remember how even President Obama had written Purdue off?  Remember how the Big East was God’s gift to college basketball?  It seems things have changed.

Purdue has earned its way back into a second consecutive Sweet 16.  Like I had written last week, the Boilers needed the bench to step up.  D.J. Byrd and Ryne Smith certainly earned their scholarships this weekend, although Patrick Bade made some solid contributions of his own. But it was senior Chris M.F. Kramer who really carried the team through the first two rounds.  Kramer simply refused to let his career be over, and in a repeat of the game at Alabama in December, took the team on his shoulders at the end and carried them to victory.

Let’s be honest, it’s not all beautiful for Purdue.  When JaJuan Johnson is shooting from the perimeter, there’s absolutely no one to get an offensive rebound.  E’Twaun Moore scored 15 points, but was still 7 of 17 from the field. Point guards Lewis Jackson and Kelsey Barlow still make some really poor decisions at times.  Despite all this, Purdue is still one of only 16 teams playing in the NCAA tournament at the end of the week.  Very few people outside of the Purdue locker room and the loyal fans even considered this as a possibility.  You know what?  Some of us still believe that this Purdue team, without Robbie Hummel, could get past Duke and make it into the Elite 8.  How’s that for a big middle finger to the “experts” who figured Purdue would lose in the first round?

While we’re on the subject of disrespect, which conference was supposed to be the best in the country?  All season long we’ve heard about how the Big East is just leaps and bounds ahead of the rest of Division I basketball.  The funny thing about the tournament is that it points out when people are full of crap.  If you look at the teams in the Sweet 16, you’ll notice that there are three from the Big Ten, and only two from the Big East.  Even that pathetic conference called the Pac-10, which we were told was barely worthy to even play basketball at all, has a team in the Sweet 16 (and an 11 seed at that!).  So really, to all the experts out there (who will never read this), I cordially invite you to shut the hell up.

It’s also worth noting that the state of Indiana has two teams represented in the Sweet 16: Butler and Purdue.  Both teams survived close games in the second round, but either or both of them could find themselves in the Elite 8.  Considering how much basketball means to the state of Indiana, that is only fitting.  Although I have a bit of a personal dislike for one of the Butler players, I’d be happy to see them keep progressing through the tournament, and I hope my Boilermakers do as well.  All I know is that the moment Robbie Hummel’s ACL gave way, most of the country was done with Purdue.  But not me, not the other loyal fans, not the coaches, and certainly not the players.  Boiler up, and beat Duke on Friday!

Book review: “The Breathtaker” by Alice Blanchard

Enjoying both tornadoes and mystery novels, Alice Blanchard’s 2003 work The Breathtaker seemed a natural fit for me.  In a sense, it was.  I read it much faster than I normally read books, and I found myself trying to guess the twists along the way.  However, I found the ending to be completely unsatisfactory.   The killer, as always, is not who the reader thinks it is, and when it was revealed, I found myself quite surprised.  There was no way I saw that coming.  The killer’s reason becomes clear as well, but it is never explained why the victims are selected.  The killer says that there are people “so evil…they deserve to die,” yet it is never explained what made these particular victims evil.  In fact, the killer’s motivation in the final chapters is decidedly unclear.  My initial thought upon finishing the book was “well, where’s the rest of the story?”

I will say this: Blanchard did her homework. Although there are a few parts that offended the meteorologist in me, the terminology and weather descriptions were fairly accurate throughout, even if the references were a bit forced in a few places. Certainly the novel is far ahead of other artistic works in that regard (I’m looking at you, “Twister”!)

The most annoying part of this book for me was the writing style.  There were a few points where I had to stop reading because I felt the descriptions and dialogue were trying way too hard. Blanchard suffers from the same problem that I’ve noticed in other female authors: unconvincing male dialogue (before anyone gets up in arms, I’m sure there are many men who do not write convincing female dialogue). All-in-all, though, the book is an enjoyable read, and it’s not likely that most readers will guess who the killer is before the protagonist does. If you’ve got a free weekend and you want to never see a thunderstorm the same way again, give this one a try.

A warning about Condor access control lists

Like most sane services, Condor has a notion of access control.  In fact, Condor’s access control lists (ACLs) provide a very granular level of control, allowing you to set a variety of roles based on hostname/IP.  One thing we’re working on at my day job is making it easier for departments across campus to join our Condor pool.  In the face of budget concerns, a recommendation has been drafted which includes having departments choose between running Condor and powering machines off when not in use.  Given the preference for performing backups and system updates overnight, we’re guessing the majority will choose to donate cycles to Condor, so we’re trying to prepare for a large increase in the pool.

Included in that preparation is the switch from default-deny to default-allow-campus-hosts.  Previously, we only allowed specific subdomains on campus, but this means that every time a new department (which effectively means a new subdomain) joins the pool, we have to modify the ACLs.  While this isn’t a big deal, it seems simpler to just allow all of campus except the “scary” subnets (traditionally wireless clients, VPN clients, and the dorms. Especially the dorms.)  Effectively, we’ll end up doing that anyway, and so keeping the file more static should make it easier to maintain.

So on Wednesday, after the security group blessed our idea, I began the process of making the changes.  Let me point out here that you don’t really appreciate how much IP space an institution like Purdue has until you need to start blocking segments of it.  All of,, and  That’s a lot of public space, and it doesn’t include the private IP addresses in use.  So after combing through the IP space assignments, I finally got the ACLs written, and on Thursday I committed them.  And that’s when all hell broke loose.

Condor uses commas to separate as many hosts as you want, and asterisks can be used to wildcard hosts (Condor does not currently support CIDR notation, but that would be awesome).  The danger here is that if you accidentally put a comma in place of a period, you might end up denying write access to *. Obviously, this causes things to break down.  Once people started complaining about Condor not working, I quickly found my mistake and pushed out a correction.  However, Condor does not give up so quickly.  Once a rule is in DENY_WRITE, it will not stop denying that host until the Condor master has been stopped and re-started.  A simple config update won’t change it.

We had to learn that by experimentation, so I spent most of Friday helping my colleagues re-start the Condor process everywhere and testing the hell out of my changes.  Fortunately, once everything had been cleaned up, it worked as expected, and this gave me a chance to learn more about Condor.  And I also learned a very important lesson: test your changes first, dummy.

All is not lost for Purdue

Anyone who pays even the least bit of attention to college basketball has heard about the total blowout that happened in Indianapolis on Saturday. Minnesota earned their way into the NCAA tournament with a 27-point dismantling of Purdue.  With the loss, Purdue dropped to 0-2 against NCAA-bound opponents since Robbie Hummel’s season-ending ACL injury.  There’s a lot to be disappointed about for Purdue fans.  11 first-half points, 14% from beyond the arc, 44% free-throw shooting, being out-rebounded by 25, Lewis Jackson and E’Twaun Moore getting injured.

But not is all lost.  My good friends at Boiled Sports have summed the game up pretty well, but their tone is unsurprisingly deflated.  I’d be lying if I said I wasn’t crushed after watching the game, but there’s no need to give up yet.  This season isn’t quite what we’d hope it would be. A Final Four run seems nearly impossible, but there’s still a Big Ten title to hang in Mackey.  And who knows what the NCAA tournament will bring?  There’s a reason March is the best month.

For Purdue fans, Saturday’s game does have some positives to take away.  Most notably, the contributions of two key freshmen.  The oft-maligned Patrick Bade has spent most of the year being a liability, but he has stepped up since Hummel’s injury.  At 6’8″, Bade helps fill the gap between JaJuan Johnson and the rest of the team.  In the last five games, Bade has played an average of 9 minutes. Those minutes include 1.8 points and 1.4 rebounds. Those aren’t great numbers, but he’s turning into a solid basketball player, and that’s important for the Boilermakers right now.  Bade still picks up a foul every 5 minutes or so, but his fouls have become fouls of effort, not of clumsiness.  If Patrick Bade continues to improve, Purdue’s chances for success increase dramatically, not only this year, but next.

D.J. Byrd has also received some scorn in his freshman year.  The Mister Basketball candidate had a lot of expectations  and has been fairly underwhelming through most of the schedule.  At 6’5″ and 214 pounds, Byrd could also find a spot on the football team’s depleted secondary, and some of his fouls have resembled tackles. On Saturday, though, Byrd provided what was closest to passing for a spark.  Making his first three-pointers since December 22 (ending a streak of about 13 misses), D.J. Byrd provided nearly a quarter of Purdue’s points against Minnesota.  That was Byrd’s first double-digit scoring since the season opener. For a team that has been relying on Johnson and Moore for most of the points, Byrd’s off-the-bench contributions will be very welcome, and even necessary.

On Friday afternoon, Purdue takes on the Siena Saints in Spokane, Washington. Siena has a losing record against the Big Ten, but includes a first-round upset of Ohio State in last year’s tournament.  Purdue has won its last 11 first-round NCAA tournament games, and has a good chance to extend the streak to 12. It will depend largely on the contribution from the bench, and on Johnson and Moore not having bad games. Even noted optimist and Purdue basketball expert Sara Yelich has said she “might [have] Purdue getting beat (sic) in the first round.”  By Friday evening, we’ll know, but Purdue fans still have reasons to be optimistic.

Big Ten tournament predictions

This afternoon, the 2010 Big Ten men’s basketball tournament tips off in Indianapolis.  This marks the beginning of the best five weekends of the year.

Game 1 Michigan vs Iowa – Without a doubt, Michigan has been the biggest disappointment in the conference this year.  The Wolverines beat top-seeded Ohio State at the beginning of January, and swept 6th-seeded Minnesota. Their other four conference wins came against the bottom three teams in the conference.  Iowa, meanwhile, has exceeded expectations by winning four conference games. Iowa has been playing hard, but they’ve got no answer for Manny Harris and DeShawn Sims.   Michigan by 11.

Game 2 Northwestern vs Indiana – After starting the season 10-2, it looked like Northwestern might make the NCAA tournament for the first time in program history, but without Kevin Coble it has been a tough season for the Wildcats.  They closed the regular season with an overtime loss to an underwhelming Indiana squad. The Hoosiers have played most of the season without their best player as well, which has contributed to their 4-14 season. They’ve had trouble against Northwestern, but Indianapolis is practically a home game, and I think they’re ready to pull off an upset.  Indiana by 4.

Game 3 Minnesota vs Penn State – Penn State is a better team than their record suggests. The Nittany Lions closed the season by nearly upsetting Michigan State and Purdue.  Talor Battle receiving help from his teammates has been the difference in the late part of the season.  In fact, Penn State looked better against Purdue when Battle was on the bench being treated for leg cramps.  On the other end, Tubby Smith plays Minnesota deeper than any other team in the Big Ten, with every player on the roster getting at least 2 minutes per game, and no one in the thirties.  That kind of depth, along with the multiple threats that the Gophers pose, will spell the end of the season for the defending NIT champs.  Minnesota by 7.

Game 4 Ohio State vs Game 1 (Michigan) – Thad Matta’s strategy is the exact opposite of Tubby Smith, keeping the starters in for most of the game. The key to OSU having a successful tournament run will be the ability to keep that level of effort going.  And, of course, Evan Turner, who was out with a back injury when Michigan defeated the Buckeyes in January.  Ohio State is the hottest team in the conference right now, and with the best player in the country healthy, Michigan will miss the tournament again.  Ohio State by 10.

Game 5 Wisconsin vs Illinois – These two teams faced off on Sunday to close the season, with Wisconsin blowing out the Illini in Champaign.  The Illini have been two different teams this season, but the bad team lately, having closed the season 1-5.  In large part, the fortunes of Illinois follow the performance of Demitri McCamey.  Illinois is playing for a tournament appearance, and a win here would help reserve them a space.  However, the Badgers have been playing very well of late, excepting a loss to Minnesota.  Wisconsin by 8.

Game 6 Purdue vs Game 2 (Indiana) – The conventional wisdom is that it is very difficult to beat a team three times in one year, but most Purdue fans are looking forward to a potential re-rematch against an in-state rival that has looked really bad lately.  Without Robbie Hummel, the Boilermakers need to re-prove themselves and a convincing win on Friday would do just that.  The Hoosiers ended the season by snapping their second 10-game losing streak of the year. People in Bloomington would love to see Tom Crean’s team win this game, but they’re at least another year out from that.  Purdue by 6.

Game 7 Michigan State vs Game 3 (Minnesota) – If the Gophers want to make it into the NCAA tournament, they need to win this game.  With wins against Wisconsin and Illinois in February, and a pair of close games against Michigan State, that doesn’t seem out of reach.  Michigan State has looked vulnerable in losses to Purdue and Ohio State and a near-loss to Penn State and will note the absence of Chris Allen.  If the Minnesota guards can contain Kalin Lucas, they’ll move on to the semifinals. Minnesota by 2.

Game 8 Game 4 (Ohio State) vs Game 5 (Wisconsin) – Both teams ended the season by dismantling Illinois and they’ve yet to face each other healthy. Wisconsin defeated a Turner-less OSU in Madison and then fell in Columbus when Jon Leuer had a broken wrist.  This is definitely the sexiest matchup of the tournament, and will be a good chance for Evan Turner or the Badgers to impress people.  Despite what the Big Ten media might think, Bo Ryan is the better coach and I think he’ll have his hot team a little hotter.  Wisconsin by 4.

Game 9 Game 6 (Purdue) vs Game 7 (Minnesota) – Losing Robbie Hummel in the first half of the game in Minneapolis nearly derailed Purdue, it was all the Boilers could do to stay in the game and manage a very close win. Minnesota still hopes to be invited to the big dance, and defeating two of the Big Ten co-champions on consecutive days would give their resume a nice boost.  By spreading the minutes around, Tubby Smith should ensure that his team is relatively well-rested, and the Gophers have a range of weapons.  However, Purdue can shut down any weapon that you can bring. If E’Twaun Moore has come out of his recent slump, the Boilers will have a chance to defend their tournament title.  Purdue by 6.

Game 10 Game 8 (Wisconsin) vs Game 9 (Purdue) – Purdue has had Wisconsin’s number in recent years, going 5-1 against them in regular season play the past three years.  If Purdue can manage to win the tournament, they can ensure they remain a high seed in the NCAA tournament and certain sportscasters will be told where to go.  Wisconsin won the first matchup this season even after losing Jon Leuer mid-game and nearly got the upset in West Lafayette on the back of Keaton Nankivil’s 25 points.  This may be the lowest-scoring game of the tournament, but Purdue will have a hard time containing the Badgers without the help of Robbie Hummel. Wisconsin by 7.

Firefox’s market share stuck below 25%?

Last week Ars Technica reported that Firefox may never hit 25% market share.  Firefox has certainly put a big dent in Internet Explorer’s share over the past few years, but it seems to have stalled out. Certainly Google Chrome is one reason, as it has attracted the attention of many web users in the past year. Since its 1.0 release in 2004, Firefox has been the most widely-adopted success of the open source world, but now it appears to be stuck.  And my response is “who cares?”

I’ve been a Firefox user since the 1.something days, with occasional forays into Opera and Chrome.  I appreciate the work the developers have done, and I think Firefox has been an excellent product, but I don’t particularly care what the market share is.  In fact, the more browsers that are in widespread use, the better I think it is for the web.  Having a larger number of browsers forces browser and site developers alike to adhere to standards instead of implementing however they see fit.

The whole point is that users should have a choice, and that websites should work no matter what browser is used.  Realistically, we’re not to that point yet, but look what’s happened in the past six years with less than a quarter of the market. I’ll continue to use whatever browser I feel is best for me, and I won’t care how many others agree.  It’s just a tool, people.

Grub error 17

Earlier this week, I moved offices (hooray!), which meant I had to move all my stuff.  Since I had just moved a few months ago when I changed jobs, I had things pretty well pared down, but it still took two trips in the Jeep to get my office mate and I moved across campus.  Everything went pretty well, though, until I tried to boot my desktop.  After the BIOS screen, the video went black for several seconds and then an ominous “Error 17” came up.  That was it, no other information.

Doing some research, I found that this is the error you get when grub thinks the partitions are out of order and freaks out.  So what the heck?  I burned a Knoppix CD because I left my boot USB at home and followed the instructions on this site.  One thing I noticed was that my sda2 partition overlapped with the two partitions around it. The last cylinder of sda1 was the same as the first cylinder of sda2, and the last cylinder of sda2 was the same as the first cylinder of sda3.  Since sda2 was just my /tmp partition, it was no big deal to re-size the partition so as to not stop on any toes and then create a new filesystem on it.

I have no idea how that happened, and I would expect that if it was an existing problem it would have made itself known when I rebooted for kernel updates. Maybe the cylinders got shaken up in the move?  I didn’t think they could do that.

Using Mac’s nvram(8) command

I recently came across the nvram(8) command included in OS X.  nvram is used to manipulate the settings of non-volatile RAM, which persists after reboots and power off.  From what I’ve seen, there are about 50 variables that are meaningful to the system, but I haven’t found a comprehensive list so far.  So what is this command used for?  That’s a good question.

One thing you can do is set arbitrary asset tags.  If your organization uses a central asset-tagging system, you can write the asset tag to NVRAM.  You can also set contact information like your name and e-mail address. Of course, none of these options are a guarantee you’ll recover a lost or stolen system. Assuming someone even thinks to look at nvram, the variables could be changed or deleted, or the whole NVRAM could just be wiped.

I asked Twitter if anyone had uses for nvram(8) and no one seemed to.  I’ll leave it open to my readers to suggest uses for this command.

A tale of two Mackeys

It was the happiest of crowds, it was the saddest of crowds.  That’s how I’d describe the 14,123 fans who filled Purdue’s Mackey Arena on Sunday afternoon to watch the Boilermakers play host to Tom Izzo’s Michigan State Spartans.  A win would have kept Purdue in sole possession of the Big Ten lead and an easy road to the first conference championship, but everything changed in Minneapolis on Wednesday night. Robbie Hummel’s torn ACL was big news in college basketball, so big that “Robbie Hummel” was a trending topic on Twitter for a while.

The national media gave up on Purdue very quickly. After Kansas and Kentucky both lost on Saturday, there wasn’t even mention of the fact that #3 Purdue might win against the 13th-ranked Spartans and would be the default choice for a #1 ranking. Loyal Boilermaker fans refused to be swayed by the lack of confidence displayed by writers and analysts across the country, though, and they showed up early to give their team encouragement.

Twenty minutes before tip-off, the seats were nearly full.  By the time the teams came out for the game, Mackey Arena was as loud an energetic as I’d ever heard it.  Two hours later, the fans were slowly shuffling out in disbelief.  A game that was winnable and would make a big statement turned into a seeming vindication of the doubters.

My good friends over at have already written about some of the numbers from yesterday’s game, so I won’t repeat the effort.  While it is obvious that Purdue could have benefited from Hummel’s presence, his absence wasn’t the difference maker.  It’s hard to blame E’Twaun Moore for his poor shooting, since Tom Izzo made sure he was always covered in a sea of green.  But you can blame Chris Kramer (never thought you’d hear me say that, eh?) for committing five turnovers.  You can blame JaJuan Johnson for spending most of the day away from the basket.  You can blame Kramer and Keaton Grant for not pulling the trigger on open threes. You can even blame Tom O’Neill, Curtis Shaw, and John Higgins for repeatedly missing MSU walks in the first half.

Still, there are positives to take away from the game.  Patrick Bade, while not very impressive on the box score, looked about as good as he had all season.  He looked like a basketball player today, albeit a young and confused one, and he’ll need to continue this in order to give Purdue a non-Johnson inside presence.  The defense as a whole played quite well, as evidenced by the low score.  Michigan State had more turnovers than made baskets, and that gives the offense a lot more breathing room.

Up next is the final home game of the year, against a comically bad Indiana team.  Anything less than a 20-point win on Wednesday should be disappointing to Purdue fans, especially given that it is Senior Night (maybe Mark Wohlford will even get to play).  After that, the season closes for Purdue at Penn State. The Nittany Lions have finally figured out how to win a few basketball games, and this one might not be as easy a win for the Boilers as some might expect.  Still, if Chris Kramer (and/or Lewis Jackson) can keep Talor Battle contained, there’s no reason Purdue shouldn’t end up 14-4.

This means that Purdue will likely end the season sharing the title with Ohio State and Michigan State.  Michigan State closes out the season with home games against Penn State and Michigan, and has no business losing either of those two contests.  Ohio State has only to host Illinois on Tuesday night.  Illinois has lost 3 of the last 4 games, but will be playing for an invitation to the NCAA tournament, so they should keep it close.

The fact remains that there’s still a lot of basketball to be played, and Purdue fans have a lot to be proud of.  In the tradition of “One Brick Higher“, expect to see 14,123 loud fans on Wednesday night.