• Anthony Stevens

f.lux

Software

My massage therapist let me know about a program called f.lux about a year ago, which alters the brightness and warmth of your monitor during evening hours (after sunset).  The idea is that it puts less stress on the eyes and helps you wind down before bedtime and get better sleep.

I didn’t realize until recently that it was available as a free download for Windows, but it is, and I’ve been using it about two weeks.  There’s a noticeable adjustment when the auto-adjust algorithm kicks in, but it’s not unpleasant. The screen dims a bit and the color palette shifts away from the blues and more toward the reds.

As for quality of sleep, I can’t yet say for sure (some other things are going on that are affecting my sleep), but I like the idea and I’m going to stick with it.

Download f.lux here.

Enjoy!

No Comments

Just an FYI

Blogging, Personal

I haven’t been writing very much lately, and it disturbs me. I am going to rededicate myself to blogging, at least for a while.  I would like to redevelop the habit that I used to have.

I feel like I have a lot to say; I’m just not sure how to say it (yet).

No Comments

Teaching Reflections

Teaching

Last night was the final class in the Winter quarter cloud computing course that I teach for the Professional and Continuing Education department at the UW.  It’s the second year I’ve taught, and while I really enjoy the teaching part (the in-class time), the prep is quite a bit of work and I’m wondering if I’m going to ask to teach again next year.

It’s kind of a catch-22.  To get the benefit (the good experience of being in class with the students, who, almost to a person, are intelligent, enthusiastic, and eager to learn), I have to take on the burden (the time it takes to prep for class, create homework, grade, follow up on administrivia, etc.

Is it worth it?  Probably.  But I’m going to give myself until mid-April to decide what to do.  That will give me a couple week’s distance from the class, allow me to read the feedback from the students and see if *they* thought I was a good teacher, and get some mental rest.

Ironically, last night’s class was one of the best.  I taught OAuth and MapReduce, and both units went really well.  I think I have a knack for teaching, for explaining, for mentoring.  Part of it might be empathy, part of it might be topic-related experience, part of it might be my demeanor – I don’t know.  Last year’s feedback was pretty much uniformly positive, and I’m hoping that this year’s feedback is similar.  But that doesn’t make the decision of what to do next year any easier.

I also should mention that the teaching assistant and the support person that I worked with were both awesome.  They made my life a lot easier and I’m grateful to both Ky Ha and Laura Horan for their great work.

More to come in a couple weeks.

No Comments

TeamCity 7.1.4 Error: “java.io.IOException: Failed to start TeamCity build agent service. Please check TeamCity build agent service user have enough permissions to stop and start the service.”

Software

I saw this error in my TeamCity’s /buildAgent/logs/upgrade.log file, and IIRC, it’s the first time I’ve seen it when using TeamCity.

This is on Windows Server 2008 R2. I use a local computer account for both the TEAMCITY and TCBUILDAGENT services, and that account has “log on as a service" rights, which (again, IIRC) used to be all that’s required in the way of permissions.

However, there’s an interesting little tool called SUBINACL.EXE that allows you to set permissions on Windows Services, which I didn’t even know was a thing.  It is, however.  Download the installer here and then use a command line like the following:

PS> subinacl /service TCBUILDAGENT /grant=COMPNAME\ACCTNAME=F

This will give the COMPNAME\ACCTNAME account full control over the TCBUILDAGENT service.

No Comments

Nexus 7: USB Debugging Setup

Software

My first foray yesterday into pushing my Mono for Android app onto my new Nexus 7 was mildly frustrating.  The emulator had worked fine (if slowly), so I figured it was plug-and-play – connect the Nexus to the USB port on my laptop and the deploy process would see it and allow me to pick it as the target.

No dice.

Turns out there are a few steps.

First, you need to enable developer mode.  There’s a short YouTube video showing this part of the process, but here’s the text description: In Settings | About Tablet, find the Build Number element at the bottom.  Tap it seven times.  No, I’m not kidding.  After the third tap you’ll see a message that says something like “Only 4 more taps to become a developer!”.  After the seventh tap, nothing will happen.  Huh?  It turns out that if you go back a page, to the main Settings screen, there’s a new entry in the System section at the bottom called Developer Options.  Tap that and you’ll see a couple dozen developer options for you to fiddle with.

Next, enable USB debugging by checking the “USB Debugging” item.

Finally – and this is the most oddball – you need to go back a screen, to Settings, and click on the Storage item.  Up in the upper right of the screen are three tiny squares which represent the Jelly Bean way of doing a context menu.  Click that, and a small “USB Computer Connection” item will appear.  Click that.  You’re taken to a new screen with two “Connect As” options.

Check “Camera”.  Yes, because USB debugging requires the use of a camera (no, not really).  It’s just a requirement.  Something about the communication protocol or file transfer encoding or something.  I don’t make this stuff up.

At that point, you should be able to see your device.  Make sure you’ve got it connected via USB, and then go into a PowerShell prompt and navigate to your Android SDK directory.  Go one more level down, to the \platform-tools\ folder.

Type:

.\adb devices

And you should see a single item representing your Nexus.

Easy peasy.

1 Comment

UnsupportedClassVersionError with TeamCity and JTDS driver

Software

I saw the following error in my TeamCity server logs as I was setting up a connection to a local SQL Server Express database, using the JTDS open-source driver:

Unable to load JDBC driver class: net.sourceforge.jtds.jdbc.Driver, due to exception: java.lang.UnsupportedClassVersionError: net/sourceforge/jtds/jdbc/Driver : Unsupported major.minor version 51.0

Hm. I downloaded version 1.3 from the JTDS Sourceforge website.  There are older versions available too – I wonder if that’s the problem?  That I have a too-recent version of the JTDS driver that TeamCity doesn’t support?  Seems like an odd restriction, but…

What’s this “major.minor version 51.0” stuff? Jar files don’t have versions, typically.  So that must be related to either TeamCity or the Java install.

Sure enough: “51” refers to J2SE7 (thanks StackOverflow!) so it looks like my JTDS driver needs Java 7, whereas TeamCity probably comes with 6.

So I tried JTDS 1.2.7: Yay. Here’s the relevant part of my TeamCity server log:

Connected to the database successfully
Current stage: Checking the database 
Using schema: dbo

I guess I’m sort of surprised that TeamCity doesn’t use Java 7, what with all the security issues that have been floating around.

No Comments

2013 #brandbowl – Best and Worst

Branding, Sports

Half the world’s attention yesterday was focused on a football game; the other half was focused on the advertisements, each of which cost almost $4MM for a 30-second spot.  Tagged #brandbowl on Twitter, most of the commentary in my stream was about the ads rather than the game itself.

Best?  In my opinion, the Paul Harvey “So God Made A Farmer” piece for Dodge / Ram.  It broke the recent mold of shtick for shtick’s sake and stood out from the humor (forced or otherwise) that a lot of brands attempted.  It had a timeless feel to it.

I know a lot of people thought the Budweiser Clydesdale ad was tops, and it was good, but for me it was a little overly sentimental.

Most of the rest of the ads were ho-hum.

Worst – by FAR – was the GoDaddy “kiss” advertisement.  I threw up in my mouth a little bit.  It was so offensive, I’m moving whatever domains I have left parked at GoDaddy to NameCheap this week.  Yes it was THAT gross and creepy.  The sound – ugh, I can’t even begin to tell you how much I want that sound out of my head.

I’m not sure if GoDaddy is completely clueless and tone-deaf, or if they’ve discovered (or hypothesized) something about advertising that the rest of us haven’t.

Oh, and there was a game.  The power outage allowed San Francisco to regroup and make an exciting last quarter out of what had appeared to be an incipient blowout.  I’m not a fan of either team, but I am less a fan of Ray Lewis than any NFL player other than perhaps Michael Vick, so I was sort of disappointed that SF didn’t pull it out at the end.

No Comments

Open Plan Offices?

Software

I’m a proponent of open-plan offices.  Browsing around this morning, I stumbled across this interview with Rob Pike from 2004 which touches on a lot of things, but one thing in particular struck me: his description of the “Unix room”:

One odd detail that I think was vital to how the group functioned was a result of the first Unix being run on a clunky minicomputer with terminals in the machine room. People working on the system congregated in the room – to use the computer, you pretty much had to be there. (This idea didn’t seem odd back then; it was a natural evolution of the old hour-at-a-time way of booking machines like the IBM 7090.) The folks liked working that way, so when the machine was moved to a different room from the terminals, even when it was possible to connect from your private office, there was still a `Unix room’ with a bunch of terminals where people would congregate, code, design, and just hang out. (The coffee machine was there too.) The Unix room still exists, and it may be the greatest cultural reason for the success of Unix as a technology. More groups could profit from its lesson, but it’s really hard to add a Unix-room-like space to an existing organization. You need the culture to encourage people not to hide in their offices, you need a way of using systems that makes a public machine a viable place to work – typically by storing the data somewhere other than the ‘desktop’ – and you need people like Ken and Dennis (and Brian Kernighan and Doug McIlroy and Mike Lesk and Stu Feldman and Greg Chesson and …) hanging out in the room, but if you can make it work, it’s magical.

Serendipity is an underrated element of the magic of creation.  As is collaboration.

1 Comment

Udinese 0-1 Liverpool

Soccer

Yesterday.  Match Day 6 in Europa League’s Group A and Liverpool found themselves needing a win, or a point and a good result from the other group match between BSC Young Boys and FC Anzhi Makhachkala, to advance to the knockout round.

As it turns out, YB easily dismantled an Anzhi side that was already guaranteed of moving on, so a win for the Reds was required.

I’m happy to say that our performance was good, if not outstanding, and we played the way that Rogers wants us to play, took the full three points and ended up somewhat surprisingly winning the group.  It’s on to the round of 32.

Skrtel and Carragher were solid in the back.  They weren’t really tested that much, however, which is because our midfield really bossed possession.  The starting trio of Allen, Henderson, and Sahin did quite well.  Shelvey subbed for an injured Sahin relatively early in the game, but our possession game never really wavered until the last 10 minutes, when we seemed to lose a bit of confidence.  Ironic, that, given that Udi were down to 10 men by that point, following a (probably undeserved) 2nd yellow to Pasquale.

Suarez seemed off the pace a bit, or perhaps he’s not quite gelled with Suso, Henderson, and Downing the way he has with Gerrard, Sterling and Enrique.

I found our display in the last 10 minutes perplexing.  We’d been comfortably handling possession all game, and yet, against 10 men, we flail around a bit and gift a golden opportunity to Di Natale to equalize in stoppage time.  Play your game, lads!

Having said that, in the past couple years we probably would have found a way to give up the game at the end, so… progress?

I’m hoping we can build on this for the weekend game against the Hammers.  I doubt too many people think we can win against an in-form  West Ham side away at Upton Park, and without Suarez in the side, but…I like this possession game we’re slowly adapting to.  I think it will pay dividends as we learn to put away our chances.

No Comments

How to Develop a Curriculum

Teaching

It’s that time of year again, the time of year when I’m about a month out from starting to teach at the University of Washington’s Professional and Continuing Education (PCE) program on cloud computing.

And, given that, I need to come up with a curriculum.  What am I going to teach these students?  I’ve been procrastinating a bit, to tell the truth.  Last year I thought I did a good job of getting together topics that were both relevant and hands-on, but it seems like I’m worried about missing some new trend in the industry that has just recently popped up that my students should know about.

There’s actually a lot that goes in to creating a good curriculum.  Off the top of my head:

1) What is the background of the students? How technical are they?  How technical do they want to be?  How diverse are their backgrounds – i.e. are some students already day-to-day cloud developers, while others haven’t touched a line of code in a while?

2) What’s trending?  What are the “thought leaders” in the cloud space talking about now?

3) What’s the installed base?  That’s a sort of old-school world for “what’s popular now, merely by sheer volume”.  To use an analogy in the automotive industry, Toyotas are installed base; Teslas are trending.

4) What is my expertise?  This is important. If you teach it, you have to know it.  Sometimes in our industry the “knowing” part comes down to only knowing about the context – how something fits in to the big picture, and sometimes that’s enough.  Of course there is always the handy skill – which is teachable, by the way – of knowing how to go about looking for more information on a particular topic.

5) What are the program’s goals?  This can be further split into “what are the goals as stated right now”, and “what direction is the program heading towards?”  We have some very smart insiders on our board and I need to make sure I’m trying to hit the overall goals that have been established for the program.

6) What are others doing?  Cloud computing programs like this are not (yet) very widespread, but I’m sure with a little digging I could sort out what others are doing, as a point of reference, or a benchmark.  It’s only a short horizontal step to online learning, of which I’m sure there elebenty billion offerings on tap, mostly specialized to a particular platform or product or technology, but again, good input.

7) What worked last year?  Yes, I felt like last year’s Cloud 302 program worked pretty well, so I should take the topics that seemed to work well and, unless I have good reason to exclude them (because of obsolescence, or obviousness, or whatever) keep them again this year.  Some topics, like authorization and authentication across the wire, never go out of style (although best practice implementations and guidelines may change).

That’s a lot of things to consider.  If you were coming up with a list of heuristics for developing a Cloud Computing In Action curriculum, what would you include?

No Comments
« Older Posts