Loading...
If the page contents do not appear, it may mean that JavaScript is disabled in your browser. Please enable JavaScript to view this.
Random tidbits, thoughts, ideas, reviews, etc.Aaron Goes Yakkity Yak Photo: BeedaisyIPv4You are not logged in. Click here to log in. | |
Here are a few of my latest Yakkity Yak web log entries. Don't forget to check out my GPS cache hunt adventures, Astounding Adventures. Or click here for the RSS feed.
Use Google to search aarongifford.com:
I Still Love Those Klipsch ProMedia 2.1 Speakers
Saturday, 08 March 2008 9:00 AM MST
Yakkity Yak
The very first computer speakers I ever bought that sounded good, really good, were the Klipsch ProMedia 2.1 stereo speakers plus subwoofer. I don't recall when this was, but it had to be five or more years ago (before 2003).
Today while watching the latest episode of Tekzilla wherein they were reviewing computer speakers in the $90-$150 range, they agreed with my own personal experience that the Klipsh speakers sound great. The hosts of the show several times shared their amazement about how inexpensive these high-quality speakers were. They just sound like they should be much more expensive. Since buying the Klipsch speakers, I bought a new Apple Mac workstation in 2003 and with the new Mac I bought a Creative 5.1 THX certified speaker set. I gave my Klipsch 2.1s to my parents for their computer use. Years later, I now regret giving up the Klipsch ProMedia 2.1 speakers. While the Creative speakers are also THX rated, I just don't quite care for the sound. I love, love, LOVE the sound of the Klipsch 2.1s and I miss that sound! And since I never really did do much that needed the additional 2 surround channels that the Creative set added, I would happily go back to the Klipsch ProMedia 2.1s. I have noticed that Klipsh offers a newer 2.1 speaker set, called the ProMedia GMX A-2.1, but these are not THX certified. While they look funky, I wonder if they would sound as good as the older ProMedia 2.1 THX certified speakers. I have grave doubts. I've also seen other Klipsch speaker offerings, even another ProMedia set, but they too were not THX certified. My original Klipsch speakers (now at my parents' house) are still going strong and sounding great on my folks' PC. And my brother also has Klipsch ProMedia 2.1 speakers attached to his PC at his apartment. I know he loves 'em too. The newer Creative speakers I replaced the Klipsch speakers with is now on the fritz, sporadically refusing to power up, randomly cutting out. Once they're truly dead, I'm going to replace 'em with the Klipsch ProMedia 2.1 speakers. When I do, I'll be in computer speaker heaven once again! The Klipsh speakers have a suggested retail price of $149.99, but I hear they can be found on the street for anywhere between $100 and $150. They're worth it. More than worth it! Once you hear 'em, you'll be a believer too. You to will think $150 is a steal for these. In Which I Discover I Enjoy KT Tunstall's Music
Monday, 03 March 2008 9:38 PM MST
Yakkity Yak
Anyone who follows pop music would probably be astounded to learn that I'd never heard of KT Tunstall before becoming acquainted with her Suddenly I See track from Eye to the Telescope (2006) in the Devil Wears Prada (DVD) (Blu-Ray) soundtrack. It wasn't until 2008 that I decided to check Amazon's MP3 downloads and iTunes to add that track to my iTunes library, and that's when I learned KT Tunstall's name for the first time.
After buying Suddenly I See from Amazon, I had to see if there were any other KT Tunstall tracks I might be interested in. Before I knew it, I'd bought Other Side of the World and Black Horse and the Cherry Tree, both also from Eye to the Telescope from the iTunes store, and the track If Only from KT's 2007 album Drastic Fantastic from Amazon's MP3 store. Just the other day, I shocked my sister Janna when I told her I'd never heard Black Horse and the Cherry Tree at all prior to my online purchases, and that my first introduction to that track was listening to an iTunes or Amazon MP3 preview. In February, I noticed while listening to music while working that a friend's iTunes library (visible on the local network) had both KT Tunstall albums. So I was hooked. I knew I needed those CDs. The CDs arrived near the end of February, and on Monday the 24th joined my iTunes library, then joined the CD rotation in my RAV 4. I tend to leave CDs in my RAV for months on end, as I did in March last year with Dana Glover's Testimony album. I enjoy most tracks on both CDs, and really, really like quite a few. I haven't noticed myself skipping over any particular tracks yet, so I don't actively dislike any particular tracks. I guess that means I'm now officially a KT Tunstall fan! What's With All the Reboots, Apple?
Thursday, 21 February 2008 1:38 PM MST
Yakkity Yak
I used to joke about having to reboot Windows XP for every little item of software or every update installed. Then I got my Apple Macbook notebook. I was glad to be away from such madness.
Now running Apple Mac OS X 10.5 Leopard it seems I'm back in the land of eternal rebooting for upgrades. Apple's Software Update just popped up yet again informing me of available updates, and that a restart is required. Apple! What's up with that? Fix your system! Your kernel has elements of a microkernel. Use that! One shouldn't have to reboot except perhaps to upgrade the running microkernel itself. Okay, probably a few other times too. Today upgrades makes sense, a Keyboard Firmware Update and Leopard Graphics Update. But the past several updates to QuickTime and/or iTunes all also required rebooting, which made little sense to me. Tell me, Apple, why? In Which I Learn of Yet Another Excellent Jazz Diva: Sophie Milman
Saturday, 09 February 2008 8:57 PM MST
Yakkity Yak
Curse those free Amazon.com downloads! It's all Amazon's fault that I first encountered Sophie Milman when I ran across her MP3 track So Long, You Fool as a free download. I'm a Jane Monheit fan, and enjoy Madeleine Peyroux too—and I think Norah Jones shares some slight overlap with these ladies as well—so the chance to download a free MP3 from a female jazz vocalist I'd never heard of before was an opportunity I couldn't pass up.
So why am I cursing? She's good! That meant I just had to purchase a few other tracks. So I curse that in finding a new jazz vocalist I like, my pocketbook is a bit lighter. *grin* All in all, I've now got three of her songs in my iTunes library:
In googling the 'net a bit, I ran across this 2006 Jazz Monthly interview with Sophie Milman (at least I think it's from 2006—I couldn't find a date anywhere other than a copyright year). I look forward to more music from this young, talented Russian-born Canadian jazz vocalist. Monday, 03 March 2008 UPDATE: I'm now the happy owner of two of Sophie's CDs, her self-titled album Sophie Milman, and her latest album, Make Someone Happy. I like many of the tracks, though there a few arrangments I don't care for. Overall these two CDs (now a part of my iTunes library and added to my vehicle's CD player for playback rotation while I drive) make me happy. Ruby Regexp Class Oddness
Wednesday, 19 December 2007 9:52 AM MST
Yakkity Yak
This morning while working on an email log processing ruby script, I discovered this bit of strangeness with Ruby's Regexp regular expression class.
It appears the in-group match modifier (?i) (which should enable case insensitivity within the group) correctly modifies the A option, but does something strange on any subsequent options, apparently inverting the regular expression case so that string "B" doesn't match regular expression character "B". Here's the same thing with a lowercase regex:
There is no odd inversion in this case. String character "B" doesn't match regex character "b" -- leading me to conclude that the (?i) modifier only applies within grouping's first option. This would be a perfectly fine expected behavior if when I use uppercase in the regex, the (?i) modifier didn't act on subsequent optional subsets and effectively invert them when they're uppercase. It gets worse:
In the above, the first match of string "bb" with regex group option "Bb" makes it seem the (?i) modifier is acting correctly on both the first group option AND the second group option. However the failure of all other variations of capitalization of "bb" means there's something screwy. My conclusion? Don't use (?ix-ix) modifiers (or at least (?i) anyway) inside groups with multiple options separated by the bar/pipe "|" character unless you stick the modifier in each and every such option, or unless you stick it outside the group with multiple options by enclosing the group in a non-capturing group with the modifier, thus:
Now THAT works as expected. NOTE: I'm running ruby version 1.8.6 on Mac OS X Leopard. However I get the same results with 1.8.6 under FreeBSD too. Update (29 April 2009): I'm now running Ruby 1.9.1 on Mac OS X and it looks like things are fixed:
The Well of Ascension
Tuesday, 28 August 2007 9:38 PM MDT
Yakkity Yak
Brandon Sanderson's second book in the Mistborn series, The Well of Ascension is now out! I got my copy a few days early on Saturday the 18th.
Saturday morning my brother, sister, and I decided it would be fun to drive up to Provo to go to Brandon Sanderson's first book signing for The Well of Ascension and pick up some early release copies. Before we could go my brother and I helped my sister move a bunch of her stuff from St. George to Hurricane. By the time we were ready to leave, it was well into the afternoon, but we still had time to make it to Provo by 6:00 PM. Unfortunately during all the moving work, my sister began feeling ill and so would not be accompanying us. We promised to take her Elantris and Mistborn: The Final Empire books up with us and ask Brandon to sign them. So my brother and I drove over 250 miles northward from St. George, Utah to Provo, Utah, arriving and parking at the Towne Centre Mall shortly after 6:00 PM when the event was scheduled to begin. Though Mother Nature was urging me to visit the mall's public facilities, that could be ignored as there were more important things at hand. We'd chosen our parking place well, for we were unfamiliar with the mall and knew not where Waldenbooks was located inside. Turns out we parked near the closest entrance. The bookstore was on the second floor. The line was still forming, already winding out the Waldenbooks entrance into the mall's interior past several adjacent storefronts, turning a corner, and obstructing nearly half of the large Dillard's store entrance. We quickly claimed our places in the line and began the wait. With our place in line assured, I had my brother save my spot and hang on to my camera and the bag containing the two of my sister's books, then I was off to find the mall's restrooms, for nature was growing insistent. When I arrived back at the line it seemed it hadn't moved at all yet. I found my brother, a guide for a St. George area spa in leading groups on hiking, reservoir kayaking, and mountain biking adventures, engaged in conversation with several friendly newcomers in line behind us, exchanging snowboarding stories and bicycling adventure tales. It made waiting in line enjoyable to encounter friendly people. By the time we had moved forward perhaps 20 feet, the line still growing, mall security had taken notice of the line, and while most Sanderson fans in the line were courteous and careful to keep a gap in the line open for other mall patrons to enter and exit the nearby stores wherever the line crossed in front, the mall people had a better plan. The line was moved and reformed along the railing of the second-story walkway bridging the two sides of the wide two-story hall, overlooking the lower floor, then turning sharply to follow the railing down the length of the central hall. Slowly but surely the line crept forward. Finally we arrived at the table just inside the Waldenbooks entrance. It was our turn. Brandon Sanderson was courteous and friendly. I don't know how he manages to sign so many books. He numbered fresh copy of The Well of Ascension (it's #98) then signed and numbered (#99) one for my sister. He signed my sister's books we'd brought with us and also some others I bought on the spot. (I asked for a hardback copy of Elantris so he grabbed the one he had displayed on the table and signed it, all because my own copy was still in St. George, forgotten on my bookshelf in my haste to depart. That forced someone at the bookstore to go scrounge up some more hardcover copies. They found some, but they were already signed.) While Brandon and also Isaac Stewart (the man who did the map work and symbol design work) signed the books, Brandon was being continually bombarded with questions. (I helped in the bombardment.) I don't know how he managed to keep track of things, but he did, signing away, chatting, and answering questions nearly simultaneously. When one of our line neighbors with whom we'd been chatting asked Brandon about his future plans for Elantris, I surreptitiously captured it as a video clip with my camera. Here is video of Brandon's answer. My question for Brandon was "What is the least asked question you get at book signings like this one?" since I wanted to be a little different, and I suspected that "What is the most asked question..." is one of the more often asked questions he fields at such events. Once finished, and after paying for the books, it was time for some grub. We had time to hit the mall's food court (Panda Express) then come back for the drawing at the end of the signing. The big prize? A manuscript of the third Mistborn book. I wanted it! In spite of having purchased several books and having a greater chance at winning, sadly I didn't. Nor did I win one of four or five gift certificates. *sigh* Overall it was a fun event. I appreciated Brandon Sanderson, Isaac Stewart (the map and ornaments designer who also signed the books), Brandon's wife (I only assume that was her), the others helping, including all those at Waldenbooks for making the experience enjoyable. I only wished while waiting in line, Brandon was miked so we could all hear the questions and answers of others as he signed away. (Ooooh the carpel tunnel, signing so many many books!) So thanks, Brandon! On the way back home, my brother and I paused for a night visit with our brother who lives in Nephi, Utah. If only we'd been able to leave earlier, it would have been a blast to visit longer with him and his family. Once back in St. George, after midnight, my brother and I having parted ways, I immediately had to begin reading. Overall I really enjoyed The Well of Ascension. It's a good follow-up to the first book, which remains my favorite Sanderson novel. I look forward (and wish I didn't have to wait) for next year's release of the final installment. Ruby ActiveRecord Newbie Question (Answered) and a PHP Cake/Rails Question
Wednesday, 15 August 2007 2:14 PM MDT
Yakkity Yak
I'm using Ruby's ActiveRecord single-table inheritance to define several types of objects. I've got a burning question that perhaps someone may be able to answer for me.
[NOTE: I've since answered this question, though I would still love to hear an answer to the question at the bottom of this post.] Read on, and if you can help me, please send me a message. First, an example of an ActiveRecord set of classes:
In the above, class Bar and the two subclasses Baz and Bop are all be stored in a single database table, with a type column that will determine which class each row in the table belongs to.
What if I want to make sure that for any particular set of Bar , Baz , and Bop instances that exist as rows in the database belonging to a particular Foo instance, that only a single Bop instance can exist at any one time in the database.
I can think of many ways that are quite cumbersome to enforce this restriction, but nothing simple and elegant. It would be nice to even be able to create a new Bop instance that was not yet saved to the database, and perhaps on save, to enforce the single instance rule, delete any previous Bop instances from the database.
Any suggestions? UPDATE: (Later, the same day as the above question was first posted) With a little experimentation with the has_one relationship, I answered my own question. I'd previously believed I couldn't use it with the above class structure, but in fact I can. So my modified Foo class looks like:
Of course this is only enforced if I don't bypass ActiveRecord's normal operation and set the foo_id field of a Bop class instance directly, but instead do something like foo.bop = Bop.new to replace the Foo 's single Bop instance.
There's nothing like yet-even-more online searching of documentation to answer one's own questions. END-of-UPDATE Oh, and here's another only vaguely related question: Does anyone know if PHP Cake's implementation of ActiveRecord is 1:1 compatible with Ruby's ActiveRecord such that a PHP application and a Rails application could share a single back-end database data store? Think of it, the PHP app. creates an object, saves it, then sometime later, the Ruby app. accessess and modifies the object. It would be a thing of beauty. UPDATE II: Electric Boogaloo Now that I'm more familiar with Cake, it turns out it isn't really a PHP implementation of the Active Record though overall it shares some similar behaviors. So it definitely is NOT 1:1 compatible with Ruby's Active Record, though I'm sure with a little extra code one could get an application in one to work with objects from an application that uses the other. Just What I Needed: Match-Returning String Substitution
Tuesday, 12 June 2007 6:03 PM MDT
Yakkity Yak
I'm posting this from work, so this is your geekiness warning.
I've been working on some ruby scripts and I really could use a method in ruby's String class that does what String#sub! does but instead of returning the modified String returns the MatchData from the Regex that was String#sub! 's first argument.
Also, when passed a block of code, I wanted the MatchData passed to the block as the argument, not the string of the entire match.
So here's what I came up with: class String def matchsub!(*sym, &blk) unless (blk.nil? ? (sym.size == 2) : (sym.size == 1)) raise ArgumentError.new( "wrong number of arguments (#{sym.size} for " + (blk.nil? ? '2' : '1') + ')' ) end unless (sym[0].is_a?(Regexp)) raise TypeError.new( "wrong argument type #{sym[0].class} (expected Regexp)" ) end m = sym[0].match(self) return nil if (m.nil?) s = blk.nil? ? sym[1] : blk.call(m) self.replace(m.pre_match + s + m.post_match) return m end endYes, I could have just used $~ (a.k.a. $LAST_MATCH_INFO when using require 'english' ) after calling String#sub! .
For example:
String method:
String class and one is able to avoid using $ variables.
Yes, there are other ways to accomplish the same thing using $1..$9 , but for me, coming to ruby from perl, I like to avoid as much $ clutter as possible so my ruby code looks less perl-ish.
Microsoft: Who Can We Annoy Today?
Saturday, 14 April 2007 10:17 PM MDT
Yakkity Yak
Okay, I understand Microsoft's logic in requiring a "validation code" or other form of validation before allowing downloads. But sadly it affects honest licensees of Windows products like myself negatively.
Tonight at my parents home, my brother installed an 802.11 wireless networking card in their validly licensed Windows XP Pro workstation. I installed the drivers from the accompanying CD-ROM. Their wireless network uses WPA2 encryption, and unfortunately the software from the CD-ROM did not include WPA2 functionality, and their installation of Windows XP Pro lacked support as well. So I hop onto the net with my trusty Macintosh thinking I'll download whatever is necessary (KB893357) for WPA2 support under Windows XP, save the file(s) on my handy 2 gig USB thumb drive, take that to the windows box, and voilą all will be well. No such luck! Thanks, Microsoft! NOT! Thanks instead for a headache! I can't download the files to my Mac as it isn't running Windows and thus can't validate. Yes, there are work-arounds. I could download the validator software, stick it on the thumb drive, copy it to the XP box, run it, get a validation code, hand-type the code in on my Mac, then download the software I wanted in the first place. But what a rigamarole of hoops Microsoft makes one jump through! Annoying! So instead of taking the time to do just that, here I am griping on my blog. *chuckle* I've just managed to put off the inevitable is all I've accomplished here. Now I must stop typing and go do just that. Or I could fire up Parallels and use my valid XP Pro license running there to download it. Either option is an unneeded annoyance that makes non-Microsoft alternatives look more and more pleasing to recommend to those around me. So, Microsoft, get a clue! I'm running a Mac now and I love it. Perhaps if you didn't annoy your legitimate customers so much, they might stick with you. I only run XP for a very, very few applications. Sometime that reason might disappear, and then Microsoft will have lost me as a customer completely. Well there ya have it, my Microsoft is a pain-in-the-neck peeve of the day. UPDATE: -- 11:28 PM the same evening I gave in, launched Parallels and downloaded the WPA2 Windows XP package from Microsoft. My Parallels-installed copy of XP Pro validated perfectly as expected. I even went so far, once my parents' computer was finally online, to validate their XP Pro installation—it validated perfectly. This annoyed Microsoft customer may suggest a Mac mini the next time the parental units need a computer system. Hooked on Sanderson
Saturday, 07 April 2007 8:01 AM MDT
Yakkity Yak
I first heard about Brandon Sanderson in October 2004 and devoured his debut book Elantris when it came out in 2005. Then this winter I belatedly learned he had another book in print, Mistborn: The Final Empire, the first volume in a fantasy trilogy.
Immediately I headed to Brandon's web site and scarfed down the sample chapters. That only fueled my appetite for the intriguing story, interesting characters, and the unusual magical world those few chapters introduced. I was an hungered. To feed the need to read I did something unusual for me. I paid a visit to the nearest local brick-and-mortar book store with intent to buy immediately, but was thwarted by lack of inventory. As usual, the store's clerk offered to order the book which would arrive in a week. In these days of online stores why on earth would I want to order something at a store that I'd then have to go pick up when it arrived when I could far more easily order it online and have it brought to my doorstep? Doesn't my nearby bookstore realize that their competitive advantage over online orders has to be either price, immediacy of inventory, or charm or atmosphere? As the store in question was a small B. Dalton in the nearby mall, a store essentially unchanged since it opened in the early 1990s (or was it late 80s, circa 1989?), it distinctly lacks charm and atmosphere. And in price it can't compete with online stores that include free delivery. The only chance they had to make a sale with me was to sate my immediate thirst, but they had not wherewith to quench. When the book arrived it was consumed in short order. The book did not disappoint. On the contrary, it lived up to my every expectation, and even exceeded them. I'd worried that as it was the first book in a trilogy that the story might end abruptly with a cliffhanger that would leave me a reader without nourishment until the second book arrived later in the year (August 2007 I believe). To my delight, the first book is a story complete in itself, though yes, there are plot threads-o-plenty to continue the overarching story. But the first book delivered a satisfying climax that will leave me well-fed enough to survive until the sequel comes. This is another excellent book. I'm now officially a Brandon Sanderson fan. (Okay, I already was based on Elantris, but now I'm doubly so.) I discovered that Brandon has been releasing chapters of another book he is finishing up called Warbreaker. Anyone can read the draft chapters online. In a few more weeks all chapters will be available online. That's the entire book! Of course I've been reading the chapters since I learned of them, eagerly awaiting Brandon's weekly release of the next one. He should consider this strategy of releasing a book completely online a success, as I will definitely be buying a hard copy when it's finally published. What can I say more? I'm definitely hooked on Sanderson. | |
Copyright © 1993-2012 - Aaron D. Gifford - All Rights Reserved |