Ramble On

Rambles of a University Systems Manager

Archive for January, 2007

Man, I like good framworks

without comments

In the end it’s all code - but this is the first time I’ve done this and I just think this is the coolest thing that I don’t have to futz with this.

(and by the way, being able to test this in a console - great stuff)


$ script/console
Loading development environment.
>> newposition = Position.new
=> #<Position:0x25489f8 @attributes={"name"=>"", "entrytype"=>0}, @new_record=true>
>> getuser = User.find_by_login("jayoung")
=> #<User:0x2540668 @attributes={…da-da-da…}>
>> getuser.position = newposition
=> #<Position:0×25489f8 @attributes={”name”=>”", “entrytype”=>0}, @new_record=true>
>> getuser.save
=> true

And the fact that it saves newposition too. This is good stuff

Written by jayoung

January 9th, 2007 at 10:17 pm

Posted in Uncategorized

Tagged with

KarmaKarmaKarmaKarmeleon

without comments

So I can be an exorbitantly reactive person. (if you don’t know me, you should have heard a collective “duh” rise up just now from anyone that does). Given a series of pokes, or unresolved issues, or continued frustration about something, and I’ll react. (It’s the flipside of being quick to respond and resolve problems/issues quickly, but it still doesn’t excuse it). At the very least I’m also exorbitantly self-reflective and will usually recognize in short order when I over-react (and I have zero issues eating my pride and admitting it).

I’m working on it. Especially because it send my stress levels through the roof.

Anyway And it helps to have continued “corrective examples” of how stupid the reaction can be.

(I really need the Milton “haaah haaaah” from the Simpsons now)

So we’ve had this issue at work with grants. For good reason, Government bureaucrats have all kinds of rules that follow along with grants that involve federal money. The good reason is that you want to be responsive and responsible with the taxpayer’s money.

The problem of course with bureaucratic rules are bureaucratic interpretations of said rules - whereupon you will waste all kinds of money trying to follow the rules to not waste money.

But I digress. The long story short is that we can’t buy chairs. We have part-time staff sitting on the worst excuses for chairs you have ever seen. No arms, barely any padding, no height adjustment. You name it. It’s not like we are trying to get anyone an Aeron. We haven’t even been able to buy a decent Staples-brand task chair.

This has been driving me bonkers. And push came to shove with me wigging out monday about the fact we gave a new person that started helping us out the padded equivalent of a cafeteria chair. So I sent a nastygram, gave my chair to one of the part-time staff, so they could give their chair to the new person, and went out to buy my own damn chair (a Global Mesh-back chair - seats great). I took it home, and took my chair from home to work.

And it’s about 4 inches too short at maximum height to use my keyboard at the right height.

Karma.

But I have a new chair at home. Guess that’s one way to do it.

(p.s. we did manage to get some movement on the chair problem - so we’ll be getting new chairs for the folks that need them - and I’m working on the keyboard tray :-) )

Written by jayoung

January 9th, 2007 at 8:26 pm

Posted in Uncategorized

Tagged with

This is why I’ll never be a full-time programmer

without comments

Because I spend too much time worrying about stuff like this (my side of the IM conversation with my wife):


1:47:51 PM jason: so
1:48:21 PM jason: this programming language I use will automatically pluralize things
1:48:41 PM jason: like "tag" will become "tags" when you need it to
1:48:44 PM jason: too
1:48:56 PM jason: I'd like to use the attribute "expertise"
1:49:05 PM jason: but "expertises" sounds funny
1:49:20 PM jason: so what's a good synonym for expertise?
1:49:41 PM jason: skill I guess
1:49:46 PM jason: but that is stupid
1:50:25 PM jason: I think I'll just leave as expertise/expertises
1:50:49 PM the wife: why is skill stupid?
1:50:53 PM the wife: expertises sounds more stupid
1:51:02 PM jason: (and no, areas of expertise won't work in the code - it'll be labeled that way for the user though)
1:51:41 PM jason: because if you are listing something for the user - telling a bunch of extension staff to list their "Areas of expertise" is more relevant than listing their "Skills"
1:51:48 PM jason: the users will never see "expertises"
1:51:52 PM the wife: oh
1:51:54 PM the wife: ok
1:51:59 PM jason: it will always be in the program
1:52:26 PM jason: maybe I'll call it "expertag" and "expertags"
1:52:40 PM jason: the programming construct is a "tag"
1:52:59 PM jason: this is why I'm not a professional programmer

Written by jayoung

January 8th, 2007 at 1:55 pm

Posted in rambles

Wow They Did It

without comments

This isn’t quite on the scale of Linden Labs opening the sim code (actually, I’d be far more in favor of them packaging it up so that you could run your own sim) - but I’ll be damned - they open-sourced the client

That will certainly reverberate across the 2nd life and other 3D virtual world blogs today.

Written by jayoung

January 8th, 2007 at 7:54 am

Posted in Uncategorized

Tagged with

There’s a whole lot we just don’t know

without comments

This article from David Polack is fascinating. (via another interesting article from Jeff Moore about OOP, PHP, and futuring).

Written back in October 2006, after RubyConf - it talks about the language VM’s under development for Ruby - and well, it’s not all that positive on the future of Ruby for depolyment (which of course makes big enterprise-oriented shops with large development staffs doing things like payroll nervous).

Did I say it was fascinating? So are the comments. This is a space that most of in the ranks of small shops are nowhere near - in fact it’s usually over our heads most days (maybe every day, usually the small shops are just dealing with people that want some checkbox to move from one side of the screen to the other, or doing the web application support equivalent of helping someone “print from Word”). I’ve been more than a little bemused recently with all the mentions of JRuby (like why the heck do I care whether Ruby compiled to bytecode and executed by a JVM). I get the implications when I stop and think about for a bit, but I don’t really care.

It’s damn sure completely off the radar for the folks that use tools produced by the languages like ruby, or java, or php, or haskell, or whatever language you want to pick. I absolutely know that watching this kind of stuff is not understood one whit by a lot of the people in “technology.”

Anyway, I recommend reading it, not because you’ll care, but it does impact the future of the tools we all use. And it will show you a little, of just how broad this area called “IT” really is.

I like ruby as a language a lot. I like it better for my systems purposes than perl, and php. From a web development perspective - I think it’s a wash vis-a-vis the language itself - though I enjoy ruby more than I enjoyed php. Rails was/is a big deal - and sure makes a lot of what I’ve done with PHP before a lot easier to do (at first, and then it’s just good old programming sweat after the first few days) Maybe it’s not any better or worse than something like Django (but I certainly like ruby better than what little python I’ve done) but it’s better than anything PHP had (though I’m completely ignorant with any current PHP frameworks).

I don’t particularly care about enterprise computing either. I’m not sure that the enterprise IT space ever actually helps anybody do anything interesting (but it does make sure they get paid, which is pretty damn important). But the enterprise drives a lot of things and it will be a interesting 2 or 3 years watching all this shake out. What else don’t we know that will come up and impact our business?

Written by jayoung

January 7th, 2007 at 5:21 pm

Posted in Uncategorized

Tagged with

Keep Track of Your Balls

without comments

Kevin Gamble pointed out this article from Marcia Connor. It’s a nice little pick-oneself-up article, targeted at the perfectionists (especially women perfectionists) who often take on way too much in their lives and worry about what happens when they can’t get to one of them.

But before the little moral of the tale gets too far extended into other areas of life, or the men get hold of it. There’s one important caveat that has to be added to the story.

Keep track of your balls.

It’s completely okay if you drop a ball. The world definitely won’t end. But if you drop a ball - just remember it’s on the floor. It’s completely okay to leave the ball on the floor, no really - DROP THE BALL AND LEAVE IT ON THE FLOOR. But know it’s there. Even better find a teammate - a spotter if you will. “Hey I dropped that ball - it’s on the floor” They might not be able to pick the ball up either - but they can help you keep an eye on it too.

Because if you don’t keep track of your balls - inevitably you are going to be walking around, juggling your current set, and step on that one, and have your feet fly out from underneath you, and fall on your rump and have every other ball go scattering everywhere.

Which, actually, the world doesn’t end then either, just rub your sore rump, laugh out loud (don’t blame the spotter) and go pick your some of the balls back up. Return some of them from whence they came, or just mark their spot on the floor.

(p.s. of course all this gets terribly difficult when others insist on handing you more balls, even when you tell them you are going to drop those balls. They’ll try anyway, leaving on the floor. At which point they’ll trip over the ball and blame you for their sore rump. That’s their problem, not yours.)

Written by jayoung

January 7th, 2007 at 3:31 pm

Posted in Uncategorized

Tagged with

Quote of the Day

without comments

From Matt McAlister’s “Eweek doesn’t want me to visit eweek.com”

I thought the IntelliTxt issue was dead, but media sites scrapping to maintain profits on the page view model are bottom feeding for clicks with clutter and misleading links. Instead, they should spend their resources courting relationships with readers.

Written by jayoung

January 6th, 2007 at 9:54 pm

Posted in Uncategorized

Tagged with

Why the Future Belongs to User Generated Content

without comments

Or maybe just small firms that go viral.

Check out this commercial from the Cary, NC team of 5pointproduction (warning way too much non-direct linkable flash).

And I love the blog

It’s talent + access to pro-quality tools that’s getting easier and easier + web-based resources that make it easy to get yourself out there (but only if you are willing to try and learn those resources) + more talent.

Wow, I’m actually positive about the future of content generation again.

Written by jayoung

January 6th, 2007 at 9:41 pm

Posted in rambles

Transitions

without comments

From Chuq’s It’s Almost MacWorld Time

It’s almost hard to remember back to when the Intel transition was announced. Remember all of the pundits predicting disaster? the gnashing of teeth and rending of clothes? Well, the Intel transition was so painless Steve can’t even bring it up and say “hey, we did a nice job, no?” — because it was, basically, automatic and invisible. that’s a good problem to have, but not one to manage the hype here.

You know, besides the time delays for parts of the userbase that had to wait a year for a Universal Photoshop (which is still much better than Quark’s delay getting to OS X) - that PowerPC to Intel transition may be the absolute smoothest transition of that magnitude I have ever seen. I was doing Macintosh things at the transition from 68K to PowerPC (had one of the first 6100’s out the door) and don’t remember it being that smooth.

To heck with any other product Apple has, that CPU transition impresses me the most.

Written by jayoung

January 6th, 2007 at 11:23 am

Posted in rambles

Almost, but not quite, completely off-topic

without comments

Articles like this one from the ADC reference library (I subscribe to the feed) - make me so completely happy that I’m not doing desktop programming anymore (I never have done it on the Macintosh, Win32 was enough).

If you receive this return value from AuthorizationCreateFromExternalForm it means that the AuthorizationRef from which the AuthorizationExternalForm was created is no longer valid. Typically this is because the process associated with that AuthorizationRef has quit.

wow, I just fell asleep at the keyboard. (for my estimated 6.5 readers, it’s not safe to wake up yet from my last post)

Written by jayoung

January 5th, 2007 at 9:58 pm

Posted in Uncategorized

Tagged with

Checking the angles

with one comment

I’m not sure if the systems background that I have or that I am a perfectionist or that I’m just flat-out pedantic - but one of the things I’ve noticed in my approach to creating code that I haven’t seen in people that I’ve worked with that have come up through the developer (not support, not IT/systems) ranks is that I’m far more likely to do two things. One, I’m far more likely to clean up after myself. I’ll remove unused code blocks and/or re-factor as I go, and if I find a better/different way (or pending deprecation) of doing something - I go back and clean up/change most or all the places that aren’t using the new way to be consistent Two, I seem far more likely to mentally consider more of the input edge cases and handle them.

Maybe it’s just the style of those that I’ve been around - or maybe it’s endemic - I don’t know. Maybe I have a systems mentality and a development training that come of age in the functional and waterfall years (but thank heavens those are over). But even with current developer discussions that tend toward design patterns, talk about unit testing, code coverage, which are certainly good and useful things - when not used as a trendy buzzword - nothing seems to beat old-fashioned coding sweat. Good variable names, the occasional comment, cleaning up after oneself, and sanity checking input.

Anyway, I’m just reminded of this today, possibly out of guilt. I recently combined a bunch of shell scripts that were handling my apache log analysis process for the 30+ vhosts we have into two vhosts. The shell scripts were working perfectly fine, but were heavily dependent on hard-coded strings and were a bear to extend (in the current “Don’t Repeat Yourself” mantra of the Rails crowd - they were like a needle on a scratched 33 1/3rd LP on a 78 rpm roundtable). I did a relatively straight port for round one, with some useful loops, and then after I left out a few calls to awstats that broke daily stats - I went back and cleaned it up some more and added parameters to deal with dates. I split things out into a few methods to make it cleaner - and of course had to rename all the variables because they were no longer semantically valid.

One of the things the scripts do is during awstats report production - they create convenience symlinks for the html reports for the “currentmonth” and “currentyear” and “yesterday” - which is slightly better than having to walk web directories for year/month and year/month/day (I’m using index walking for report browsing - it probably needs a front end app to ease browsing, but other priorities first). Well, those symlinks assume the natural scheduled running of the application. It runs early in the morning - based on the logs and data generated up through “yesterday”. However, when you pass dates in to re-run reports if necessary (a very rare thing that’s not likely to occur again for months) - generating those symlinks is worthless if the date you gave the script is not the “currentmonth” or the “currentyear” or “yesterday”

So of course, I had to add code to check for that. Pedantic isn’t it? Especially for something that rarely, if ever, will occur again - so what if the symlinks are temporarily broken until I run the standard process again (either scheduled or by hand). But date comparisons I added.

The guilt that I have, of course, happens on the first of the month. Given that the scheduled job that runs on the first of the month - and only processes yesterday’s data (the last day of the prior month) - well that invalidates the semantic meaning of “currentmonth” (or “currentyear” for Jan 1). Before I didn’t bother - I just created the symlinks even though “currentmonth” really means “lastmonth” on the 1st.

But code that I added keeps the symlink from being created if the month of “yesterday” doesn’t equal the month of “today”. Oh well.

Of course, it also prevents removal of the previous symlink. So in the end its a wash ;-)
This story brought to you by the number 3 and the word “anal”


postscript:

While I was writing this, I looked at my code to double-check when the symlinks would get created. In order to create date-based directory names in places - I end up doing:


reportday = timevalue.day
reportmonth = timevalue.month
reportyear = timevalue.year

(I do need the distinct values for those things as opposed to doing to producing a yyyy/mm/dd string)

My month comparison code just copied that model - and so I was doing:


# is currentmonth?
todaytime = Time.now
todaymonth = todaytime.month
todayyear = todaytime.year
reportmonthdate = Date.parse("#{reportyear}/#{reportmonth}/01")
todaymonthdate = Date.parse("#{todayyear}/#{todaymonth}/01")
iscurrentmonth = (reportmonthdate == todaymonthdate)

Totally inefficient right? While writing this article I ended up re-factoring it :-)

# is currentmonth?
reportmonthdate = Date.parse("#{reportyear}/#{reportmonth}/01")
todaymonthdate = Date.parse("#{Date.today.year}/#{Date.today.month}/01")
iscurrentmonth = (reportmonthdate == todaymonthdate)

(which could be collapsed to one line - but the above is slightly more readable to me)

Written by jayoung

January 5th, 2007 at 9:34 pm

Posted in Uncategorized

Tagged with ,

Poor Tubby

without comments

By far, one of the more interesting engineering failures is that of the Tacoma-Narrows bridge collapse (of which I’ve pointed out before in a rambly treatise about IT as an engineering discipline

Anyway, the collapse is the subject of the latest Damn Interesting post. Highly recommended damn interesting reading.

Written by jayoung

January 4th, 2007 at 9:34 pm

Posted in Uncategorized

Tagged with

One more year! One more year!

without comments

So I decided to keep my venerable four-year old desktop macintosh one more year. I had been previously going to sell it - but right now, it just makes sense to stay put.

This is by far the longest I’ve ever gotten use out of a home computer - mainly because I tend to want to stay current - and usually end up upgrading or obtaining software that goes beyond the capabilities of the hardware I have. About the only thing I can’t run on this configuration is Aperture - which I might could if I upgraded the graphics card, but I’m not sure that’s worth it.

So I’ll end up just using Photoshop or Lightroom, or even iPhoto. I’m not sure that I’ll take it to Leopard at all, probably not.

It just works.

That might be the best compliment I could ever pay to Apple, Inc - and my venerable Mac.

P1000870.JPG

p.s. - now watch Apple come out with something utterly brilliant next week that I will desire greatly and break this resolution

Written by jayoung

January 4th, 2007 at 9:00 pm

Posted in rambles

Parallels Tip - use an external drive

without comments

I’ve switched to a laptop as my primary business computer - this turns out to be a wonderful convenience, because I’m no longer having to duplicate my development environment between three different computers (a casual laptop, work desktop, and home desktop - given that I used my home desktop for about 95% work).

Like many of my colleagues I use Parallels Desktop - some of the systems management tools require windows, and I’ll use the parallels windows image to connect to other windows computers running in VMWare (I should so diagram the almost absurdity of that). And I also use to double-check my web development - given that some of our applications get more modern features and are starting to push the 5-year-old Internet Explorer 6 to its limits.

Well, Parallels rocks - but either it’s the 5400 RPM drive in the Macbook Pro, or it’s some other I/O issue - or even the fact that I’m running the Parallels beta - but when the Parallels image is doing heavy I/O - the whole box goes to pot.

I’ve found that I am much, much, much happier when I run the Parallels images off an external FireWire hard drive. Highly recommended.

(yes, it kills portability for the windows image but the performance benefit is way worth it).

Written by jayoung

January 3rd, 2007 at 8:45 pm

Posted in rambles

Tagged with

Loudness of Silence

without comments

I’m a very open-information kind of guy - and a huge proponent of organizational transparency. This is one of the primary reasons that I work for a University, where, in spite of some tremendous pressures resulting from the philosophical battle of the “open” vs. “closed” information campus - especially in University Information Technology, it’s still allowed practice to publish and share intellectual property and business practices.

That transparency/openness desire is one of the major reasons that I have never had much of a desire to work for closed information institutions e.g. the privately held SAS, located in Cary, NC, in spite of the quality of the company, or the quality of their products.

But one company has managed to earn my begrudging respect as a master of buzz generation and marketing. And that’s of course Apple. Even their homepage teasers:

Applewelcome

generate excitement. MacWorld should be fun to watch.

The Apple’s are few and far between. They are one of the rare groups that may have earned the right to be silent. If only that they seem to successfully deliver, and support what they deliver, and on occasion up-end entire markets.

The rest of us have to stay open.

Written by jayoung

January 2nd, 2007 at 9:31 pm

Posted in rambles

Quotable

without comments

From Nicholas Negroponte via this AP article published at Yahoo!:

“In fact, one of the saddest but most common conditions in elementary school computer labs (when they exist in the developing world), is the children are being trained to use Word, Excel and PowerPoint,” Negroponte wrote in an e-mail interview. “I consider that criminal, because children should be making things, communicating, exploring, sharing, not running office automation tools.”

Written by jayoung

January 1st, 2007 at 7:49 pm

Posted in Uncategorized

Tagged with

The Year Ahead

without comments

I’m a notoriously reflective person - so I’m fighting every last tendency I have to write a “year in review” post. But as my father always said while I was growing up:

Whatsa behinda me, donta bother me

My dad is as southern as I am - but his put-on italian is much better than mine.

I’m not a betting man, but I sure do propose wagers a fair amount ( “I’d bet money that…” or “I’m not a betting man, but I’d wager that…” ) - which might explain that I lose every time I actually bet on anything (note to the I.R.S - not that I ever do that) - so it’s not like I can make any prognostications on what will actually happen in 2007. So I won’t. Maybe I’ll just talk about what I hope to see in the upcoming 525,600 minutes of 2007. (there, stuck the song in yer head didn’t I?)

The Wife and I Buy a House

I currently own a townhome-looking-condo. It’s nice enough, but both she and I are looking for something to call ours, with a porch, and a deck, and a yard. I haven’t cut grass in 10 years, but I’m actually looking forward to it. Watch for the 2008 year ahead post wherein I yearn for making everything in the yard a natural area.

And a dog. Yes a dog. Maybe two.

The Wife and I Get a Dog

Had to say it twice for good measure.

I implement OpenID somewhere/anywhere

OpenID is important - in ways everyone can appreciate, but only can be explained to geeks (although I have an awful lot of starred items in Google Reader that I haven’t bothered reading yet that might explain it to non-geeks). I also need to implement it because I plan on presenting about it in June. You might think that presenting it will make me learn it well enough to explain to someone else. Nope. It’s all about implementation.

Work

I’m not sure what to say about this one. My job and the things that I do in my job take up the majority of my time - and so how well it goes or doesn’t go affects other areas of my life disproportionately. Maybe that’s the hope for 2007 - keep work from affecting everything else more than it should.

At the very least, I want to do something interesting - somewhere something related to xmpp, aggregation, openid, maybe even second life. We have a fair number of spare cycles on our servers, and I’d like to take advantage of those with little things that get a good return (because I don’t have all that many spare cycles).

Was that all sufficiently vague enough?

10 years

February will mark my 10 year (work) anniversary with the University. I’m sure I’ll come up with something sappingly reflective by then.

My new camera and lens gets here

I’m finally taking the leap into the DSLR world. It’s not like my abilities eclipse any of the cameras I have now, but I am seeing the limits of the lenses I have in them (and the fact that I drink too much caffeine). I haven’t been excited about photography in a long time. But I’ve spent more time in Flickr - just on the idea of the camera and lens (a great lens, a really, really great lens) coming. I’m excited. And I don’t get excited very easily at all.

I write something vaguely funny again

Not that my sarcasm isn’t completely wasted on my co-workers, but it’s been far too long since I’ve written anything that’s even remotely related to funny. And my job needs funny, a whole lot of funny.

I get completely tired of all the “Double-Oh-Seven” Jokes

If I were a betting man, I’d definitely wager that’s happened already.

Happy new year. Hope 1, Furies 0. Film at 11.

Written by jayoung

January 1st, 2007 at 1:25 pm

Posted in rambles

Tagged with