April 2006 Archives

It's amazing, I can actually smell spring this year. the last several years my allergies have been growing steadily worse, to where no amount of medicine could keep my head clear, and my nose working.

So last spring I visited an allergist to get the test, and figure out what I could do. This is the fun one where they make a grid on your back, and poke each spot with a different allergen, wait 15 minutes, and measure. I knew something was up when the nurse came in after 7 minutes to check, and upon entering gave a gasp then, stated those simple words, "Oh WOW!"....
--------

I've stepped forward to proffer this months Northern Utah Perl Mongers (NUPM) meeting. I'll be presenting on the CPAN Cache API.

The Cache system is a very well built API with pluggable back-ends for different storage mechanisms. In the presentation I'll be reviewing usage of the API in different applications, as well as discussing the various strengths and weaknesses of the different back-ends.

Come learn how Caching is easy to implement into any perl program, how it can easily be customized for different needs. NUPM meets the hour before PLUG in the same location.
--------

What to do with old Cat5

More desktop toys :)
--------

As Kelly quoted I have created a monster. I have nobody to blame but myself, and yet I find a certain satisfaction in it. Probably because I get to come to work and get away from it.

After helping Garion learn some writing, he made a scribble that looked very much like an R after the word Badge . So I told him he had written the word badger , he then wanted to know what that meant.

All geeks know what I had to show him to demonstrate what a badger is

He can't get enough of that song now, and of course, he singing it and doing 'the badger dance'.
--------

Boot to the m-HEAD-i

| | Comments (1) | TrackBacks (0)

One annoyance I've had with Mac is that by default, they format their drives has HFS+ -case-insensitve. That's right, people willingly choosing case-insensitivity in a filesystem. Overall it's rarely gotten to me, since I've known about it. Only biting usually with CVS (README | Readme). Well, it bit me for a while without me knowing.

For a long time I've been very upset at the Fink project because nothing would install, upgrade, or usually even work with their system. Several times I would wipe it's software and retry, only to die in flames.

Finally, while I've been testing out stuff I've been reading in O'Reilly's Mac OSX Tiger For Unix Geeks I decided to give it another try. Yet again, things were failing horribly, and I once again began pouring through various wiki's, HOWTO's and other documentation. Finally, I found an interesting little nugget, buried among the cinders of other people travails.

It appears that a source install of libwww-perl gives the option of installing a 'HEAD' function in /usr/bin, and at some point one of my upgrades selected that. Problem is, the standard HEAD function, doesn't have a 'n' flag.

What makes that bad, is fink is programmed to use the Mac OSX version of /usr/bin/head (note the case change) which does have that option. Fink dies without that!. All of us geeks will of course see the problem with HEAD and head on a case-sensitive filesystem. Now, if I just had the time to reformat without that darn flag set.

Of course, now that I replaced my 'head', fink works, and I now feel the pain that gentoo masochists enjoy that is extremely long compiles. But ad least I'll get my KDE apps back.

On Saturday, we went over to the Lances along with Joe and Nat for a Pizza-q. James prepped up some of his special Pizza Dough, and cooked it on the grill to get it ready for a few ingredients we brought over. While we cooked a "mystery cheese" pizza from joe, and my BBQ chicken pizza, Nat told us a fun little story about the first time she had seen No Doubt in concert. (You can ask her about it:) )

So I decided the share here the story of the first time I heard No Doubt, not in concert, but ever...

F1rst p0st!

| | Comments (0) | TrackBacks (0)

Ok, so the blog has been running for a while, but the first post is in reference to the weekend. With the nice weather, I got to spend my time outside setting fence posts. At least now we have the posts up on the West side of our property.

Guess what I get to next week :( Time for a whole lotta planks.

At least with this side going up, and the East already up, we're almost enclosed. I also took advantage of the time to finish out one of our planting beds, The second one needs just a little more dirt and it'll be done too.
--------

Fun with the media

| | Comments (0) | TrackBacks (0)

So the white house is looking for a new Press Secretary, let me suggest the best candidate for the job, Ann Coulter

Can you imagine just how much fun that would be? Most media outlets have been sending the snottiest, most annoying whiners to review the white house for years, turning the average question into more of a political grandstand than useful information gathering. Imagine with Ann to give the responses it would level things out for the current administration, and make the session worthwhile to people besides those in attendance.
--------

Why you force people to keep using it.

Ok, read this ridiculous patent and lets go over what they are saying.
--------

USRSF Units

| | Comments (0) | TrackBacks (0)

New Elite Military Unit will be used to solve the Iraq terrorist problems.
--------

Gifts

| | Comments (1) | TrackBacks (0)

Now, why would my wife see this comic as totally believable?

Maybe it has something to do with me offering to get her a mac mini for her birthday, so it could be used as a media center.

iWeb

| | Comments (0) | TrackBacks (0)

After using iWeb as a test for a site, I have a couple of key points that I'll mention about it. Overall it's a simple tool for basic sites. For a first version, there is a lot of pollish making it very easy for an average mac user to publish something.

Pro's

--------

Web Design Taste

| | Comments (2) | TrackBacks (0)

And on the subject of web design, I have to go on a rant. Now I'm sure this is a rant that any of you who have done any web design work for other people will understand. Please share your horror stories in the vein of 'Biting the hand that feeds you'.

One of the nice features about where I work is that I have switched the division from a really crap old proprietary, windows based billing system, to a Perl based, GPL billing system using Postgres (optionally MySQL) as the back end.

One of the main tasks I have at work is "Enterprisifying" this system. Making sure it can handle enterprise level features that my company needs.

Right now I'm working heavily on caching mechanisms and middleware storage, turning it into more of an N-tier architecture, and I'm looking at some existing code that starts with...


$statement .= ' WHERE ' . join(' AND ', 
    ( map {

A really simple SQL building block (that's another issue altogether) but the problem is what comes next. That join of course means there is a list next, but the map has a '(' before it. That's right, there is more than one (two in fact) which take up the next 2 pages. ARRRGHH! What were you thinking people? Yes it's possible, might have even saved 2 variables, but it sure didn't help readability. This should most positively have been broken out into multiple statements, over even better, re-factored into some subroutine call or similar visual optimization. Two pages of code written in what is a single line tool. It will look so much nicer when it's more like:


$statement .= ' WHERE ' . join(' AND ', define_columns( @data ) );


Oh well, I have the source, I have cvs, I can correct this blasphemy.
--------

Intermediate Perl

| | Comments (0) | TrackBacks (0)

The recent upgrade to what was a very useful book. When it came out, I reviewed the originally named "Learning Perl Objects and References", with very high marks. It was a book targeted for an unfulfilled niche in the Perl book market. That extremely important step from the Learning Perl book and into the world of full development.

Read on for my overall review...
--------

dapper dist-upgrade

| | Comments (0) | TrackBacks (0)

On my main home machine I've been using ubuntu-64 for a little over a year now. Last time I attempted to upgrade versions I went to breezy, which frankly has been a bug-ridden version on every machine I've used it on. Recently I've been trying to get MythTV running on the box, without any success.

  • the breezy packages are abandoned, mixes of .18.1 and .17.1, they can't even be installed
  • almost every breezy .deb source seems to be offline most of the time
  • I can't get any svn version to compile (which I'd like anyways, to be up to date)
  • using other debs, I can't get it to compile, even though friends say they had it working

One coworker is running his system via dapper, and has had more success, so I threw up my hands, and prepared for a rough weekend of upgrading my box. Amazingly, changes my sources to dapper and doing a dist-upgrade worked extremely well though. The only problems were ia32-gtk libs needed by openoffice.org-gtk, and python-twisted modules. I just got rid of those (didn't care), re-upgraded, and everything worked great. Best ubuntu upgrade I've had.

The dapper myth packages are .18.1, and installed well. But I learned that you should run mythtv-setup as root instead of as the mythtv user (as several sources suggested). I still can't compile my own, due to libavcodec problems (relocation error with libdts) :( but am grabbing sources to do my own debs from a coworker. Hopefully will have some patch or other requirement I need.
--------

One of the things I love with Perl is how well it can tell when you want something to be in list or scalar context. However there are a couple times that the compiler isn't sure which you want, and assumes incorrectly. This happened today to me on what seemed a very minimal issue. This was one of those cases where I typed a one-liner to confirm something, and the answer wasn't what I expected and led me down the path of finding out what was wrong.

The basic problem was that I wanted to verify something with the 'mday' value out of the localtime() function, without capturing an entire array, or listing out undef in array locations when it assigned. so my one liner listed:

print localtime( time ) [3]1;

But this doesn't work. So I figured I need to make sure it sees the list that localtime returns:

print ( localtime ( time ) ) [3]2;

And I got the same syntax error. Playing around I tried to assign it to a variable instead of printing:

$mday = ( localtime ( time ) ) [3];3

And that works.. Why?
The basic reason is that print actually expects a list, and the assignment was to an array, so the two really are different. Now, since in my real code I was doing an assignment anyways, that worked just fine. If by chance you actually wanted to print this without the capture though, just use the compiler hint of '+' :

print +( localtime ( time ) ) [3];4

So, just remember kids, understand list and scalar context.

1 Print the 4th element of the localtime array as parsed from time()

2 Enforce the List context of the localtime function

3 Only difference is an assignment to a scalar instead of the print

4 The + in front just gives the parser/compiler a hint, or an anchor when it's figuring out what you are really trying to do in what could be ambiguous circumstances.

Green River Pictures

| | Comments (0) | TrackBacks (0)

For those interested, I now have some pictures from our recent paintball sojourn. Kia took pictures from the players perspective outside of the games. Whereas the SpecOps media man allowed usage of some of his In action photography

A couple of my favorites:

The Convoy Bridge Desert Edge Squad 2 Advancing in the smoke --------

Plug Map

| | Comments (0) | TrackBacks (0)

Google Map to Plug Meeting For those that have requested it.
--------

Counter Struck

| | Comments (1) | TrackBacks (0)

A great google video for counter-strike players

Mailman and Exim4

| | Comments (0) | TrackBacks (0)

I was recently trying unsuccessfully to setup mailman to provide list features for some groups of friends. My problem was that instead of the classic usage of aliases, I was trying to follow the newer 'HOWTO' provided by the debian folks. For some reason the mail would never go through, except one copy to me. At first I figured that was because I was the list owner possibly, but that was incorrect. As it turns out, I had a specific feature added that was causing my problems.

You see, Exim router definitions (in a split config) are loaded in order, and take that precedence in said order. Well, I like using wildcard addresses, so I had a 950_unknown_user definition sitting in router/, and was adding a 970_mailman* like the documentation gives and expecting it to work. A little renumbering, and vioala, things work as they should. The spiffyness of this automated config is very cool, and I now can recommend it over the old method of using aliases.
--------

Over the last several years I've gone through several paintball guns. As I was able to move up, I would keep the previous gun as a loaner/backup/etc. Well, I just changed guns again, only this time, my wife really wants me to sell my old ones to pay for the new gun. So if any of you are wanting a chance to get some quality equipment at a good price, I am selling two of my guns...

--------

Plug Meeting

| | Comments (0) | TrackBacks (0)

Wednesday at 7:30 is the monthly Plug meeting. As Stuart posted, he is presenting on ConTeXt .

The big change for this month, that everybody needs to note, is our NEW LOCATION. My company has offered us usage of a nice, much larger, conference room. We're location in Canyon Park (*MAP*) , Building Q.

The entrance will be the NE door of building Q, which is just off of 1200 N in Orem, I will have a sign on the door for information. We are on the second floor.

For those that don't want to click for the map, just take 1200 N in orem East until 600 East, take a left, then your next left. Find a parking spot and head in the NE door (not the SE one!), and head up the stairs to your left, we'll just to the left on the second floor.
--------

The Desert Duel

| | Comments (1) | TrackBacks (0)

I can now say I have hit a new height in paintball fun. I think just about everybody who's gotten into paintball has had the dream of what it would be like to play against a real military unit. I'm not talking about just playing against some people in the military, that's common. I mean full fledged army units with their equipment.

Well, I got to do that this weekend, read on for a full write-up.

Jobs

| | Comments (0) | TrackBacks (0)

Hiring time. United Online is hiring Sr. Engineers for our Orem office. Come work with me and many other Plug members in a nice, stable company. Benefits are excellent. Details will be going up on UOLjobs and HotJobs . Also, send me your resume to pass along (if you submit on the site, then add me as a referrer).

If you know another Plug member that works here as well, go ahead and choose them over me... sniff

Perl experience is the most important, but other language skills help. It's nice that we're hiring at Sr. Level now, instead of Principle level like we have been. Makes it easier for people to actually get accepted :)
--------

Out for blood

| | Comments (0) | TrackBacks (0)

Well, people who know me will be surprised by this, but I am now a new member of "Al-queda in Utah" :) So what's that mean? My paintball team was invited to be the 'resistance forces' for the local National Guard training exercises. We received documentation from the CO giving us our our background with how we are al-queda folks, our attack styles, reasons, etc.

It'll be a lot of fun, they wanted us since we have experience working as a team, and can provide a stronger resistance/better training than just a mix of regular people.

Hope to fill in folks with details of the slaughter after Saturday night.

Oh yeah, there will be real flashbangs, pyro's, and more :) This is going to be fuuuuuun.
--------

After the upgrades today, I was quite disappointed with disk speed. It seemed no matter what I did, the generic-ide module was taking over my drives before the specific (piix) module could load them. While it did allow me to access my data, it was extremely slow, and I couldn't turn on DMA, no matter what. After much headbanging, several reboots testing different options and attempting every known way to load the module, I finally went back to my last kernel which worked perfectly.

It appears the 2.6.15-1 and associated udev scripts have a problem where ide-generic is loading first, no matter what. I found some debian threads where they want to get this fixed (they are in the -5 range) by .16. Hope they do.
--------

Back Up

| | Comments (0) | TrackBacks (0)

System is back up and running with a new drive. (Hey, did you know you can fit 5 3.5" drives in a 3u that wasn't designed for it?) :) Definately can't handle any more in terms of power needs. Next time I need to grow, It'll be time for a new case and everything.

Debian came back perfectly, only issues I had (besides very cramped spaces) was my idiocy of always forgetting which end is master and slave on an IDE cable (now that I have to put two disks on one ide channel).

I definitely remember why I didn't want to be an 'IT' specialist :)
--------

Downtime redux

| | Comments (0) | TrackBacks (0)

So, I'm about to have some planned downtime. Hopefully it will be kept to a minimum. If things work right, I'll be wedging in another drive in this box and be up again in a few minutes.

Problem is, it's a rack box, and pretty tight. There is a chance that I might have to take one of my old scsi drives out, breaking the raid it's in :( Hopefully we can avoid that.

Worst case, things don't come back up right... bleh..
--------

Privacy

| | Comments (0) | TrackBacks (0)

Tired of the obnoxious credit offers, overloading of junk mail offers, and other crap we all receive every day? Take the time to visit the FTC Privacy Page and see not only how to reduce the crap you get, but usually reduce the chances of getting your identity stolen.

Every day I have to work with dealing with scams and stolen cards, taking the time to limit what these people spam you with can reduce the chances of your identity getting stolen. It's worth it for the privacy, it's worth it for less crap every day.
--------

Paladin Switch

| | Comments (0) | TrackBacks (0)

A great video styled after apple's switch campaign that summarizes my experience as a paladin.

Paladin Switch
--------

Ice Age 2

| | Comments (1) | TrackBacks (0)

So, one of Garion's favorite birthday presents was tickets and candy for Ice Age 2 . What a winner. Not too much to really say, yes it is a sequel. If you liked the first one, you'll love this one. Plenty of new comedy on now established characters. Enough jokes for the adults, and it sure kept my son laughing the whole time. An excellent movie to take the kids to, and still enjoyable for just adults.

Methods in a Regex

| | Comments (0) | TrackBacks (0)

So I had some old code I was debugging, trying to figure out why something wasn't triggering when I came upon this:

grep /$event->pkgevent/, @finished_ids

That is when something twitched in the back of my head. I'm sure everybody has felt something similar at some point in there life. It's the feeling you get when you realize something is quite wrong, and it should have been obvious to you.

If you don't know what's going on there, it is trying to check and see if the $event object's pkgevent value (via an accessor method) is inside an array called finished_ids. Here's the problem, it's using pattern detection, and inside the pattern, it is not running the subroutine. It needed to be:

grep /${\$event->pkgevent}/, @finished_ids

which marks the method as code, and says run that first, then use the value for the pattern. Of course, this is just if you want to use the method inside the pattern (barring other stuff), instead of pulling the value out to search in another manner.

Props to HarleyPig for remembering the ${\ } syntax off the top of his head.
--------

Conversion

| | Comments (1) | TrackBacks (0)

Finally a toolkit I can wholeheartedly support...

SQL on Rails

Make sure to watch the screencast.... 'cause everybody is doing those nowadays.

Well Put

| | Comments (1) | TrackBacks (0)

Howard Tayler creator of Schlock Mercenary (if you aren't reading this yet, you're missing out) has quite a way with words. His description of morning pretty well sums up my view.

"Hopefully far enough from dawn's crack that I don't have to smell it. I know some folks like sunrise, but for me dawn is a 300lb plumber with his head under the sink. Wake me in time for MORNING, with the sun safely clear of the horizon, and the crack of dawn planted in the seat of his pickup where I don't have to see it."

New Neighbor

| | Comments (0) | TrackBacks (0)

Finally, last night we got new neighbors in the house behind us. The old owners had quite a long history, and finally were kicked out by their bank about two years ago. The house has sat empty until a couple of months ago when somebody bought it and started fixing it up, to flip it.

With neighbors, now we'll have somebody to help us get the fence up back there finally, and it'll definitely help the old resale value. The neighbor (Jameson) seems quite fun and easy to get along with.

The only scary part, is the guy looks very similar to Dwight Schrute

Creepy...
--------

Is it just me, or does anybody else just get mad when people get up and leave before the closing hymn and prayer? Would it really kill you to sit through 2-3 more minutes after being there for two hours? I stayed, walked out, and was still home within 4 minutes of the last 'amen'.

About this Archive

This page is an archive of entries from April 2006 listed from newest to oldest.

March 2006 is the previous archive.

May 2006 is the next archive.

Find recent content on the main index or look in the archives to find all content.

Technorati

Technorati search

» Blogs that link here

February 2008

Sun Mon Tue Wed Thu Fri Sat
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29  
Creative Commons License
This weblog is licensed under a Creative Commons License.
Powered by Movable Type 4.01