Deprecated: Assigning the return value of new by reference is deprecated in /home/jzero/public_html/troy/wpblog/wp-includes/cache.php on line 36

Deprecated: Assigning the return value of new by reference is deprecated in /home/jzero/public_html/troy/wpblog/wp-includes/query.php on line 21

Deprecated: Assigning the return value of new by reference is deprecated in /home/jzero/public_html/troy/wpblog/wp-includes/theme.php on line 540
The Hizzle of T-Fizzle » Technical

Archive for the ‘Technical’ Category

A Linux Tale

Friday, September 5th, 2008

I have not uploaded MP3s to my player in over a year.  I have a Rio Karma which at the time of its manufacture was one of the most amazing DAPs available.  It actually still is pretty impressive - 20GB of storage and the ability to play just about any audio format - ogg, mp3, wma, flac, etc.  It even came with a dock that has an ethernet port on it that allows you to stream music from it to a web browser.  I got it for dirt cheap on Overstock around the time Rio quit the DAP business.  A sad sidenote is that I bought it concurrently with a Rio Pearl for X.  I decided not to get the Karma for X becuase I read that there were some reliability issues with the Karma and I didn’t want to get her a dud.  Well the Pearl started flaking out in a few months, the Karma has been fine for years.  Go figure.

One quirk of the Karma: it does not communicate as a normal USB device.  You can’t just plug it into your computer and drag files onto it.  It needs its own driver and you have to use the Rio Music Manager program to load music onto it, because it has its own file system and maintains its own index database (it doesn’t just index the media files).  Rio claimed it to be “linux supported” but what this means is that you can manage it via the web interface which is cumbersome and somewhat slow.  Rio never actually released a linux driver or a linux version of RMM. 

Older non-standard hardware?  No support from the manufacturer?  This has “Linux Disaster” written all over it.  After my Windows box went belly-up, I briefly researched this and determined that someone had actually cooked up a linux driver for the Karma, but it seemed a little sketchy and it’s a safe guess that just about anything of this nature in linux is going to be totally kludgy, not ready for prime time, and that’s assuming it even works at all.  But I was OK because I had a Windows virtual machine and I could just use that when I needed to, and I did occasionally but it was kind of a pain which caused me to stop ripping my CDs and loading my Karma up.

Then I decided to switch to Ubuntu, the relative success of which has been documented on this blog.  I had always intended to get all of this MP3 business working again so that I could rip CDs and populate my Karma, but just hadn’t sat down to work on it.

Actually I did at some point and came up with a solid gripe about Ubuntu - figuring out how to rip CDs to MP3 is bizarre.  I could never get the default ripper or music manager to rip to any thing but Ogg and maybe FLAC.  MP3 support is not enabled by default because its not open source and technically requires a license.  I believed I had enabled all of the correct packages to get it working, but it was never an option in any of the menus.  I ended up installing GRip since I had experience with it and knew that it didn’t care what packages were installed - if you had an encoder and could supply it with a path to it, it would work.  And it did, but it was classic Linux kludge - you put in a CD and it autolaunched one of the programs that could not rip to MP3 and then you had to close that, open GRip and then rip.  A workable solution but annoying enough that it demotivated me from ripping any CDs especially since I had not set up any way to get them on to my Karma anyway.

Then X asked for an MP3 player for her birthday to replace that ne’er-do-well Pearl.  I got her a Sansa, having gotten a general consensus that if you’re not going to spring for an iPod, the Sansas are a good alternative.  But now she has this MP3 player and she wants to put music on it.  I went to show her how to do it.  “Put in the CD.  OK now close this window.  And open that….”  This should not be more than 3 steps tops and I hadn’t even showed her how to transfer the MP3s to her player yet!

I resolved myself to figure out a better way and get Amarok or even the built-in music manager to rip to MP3 and populate her MP3 player.  But somehow I got distracted.  I wanted to figure out how to get new music onto my Karma again!  First I set up a Windows virtual machine again, although I primarily wanted this to rescue some music and photos that had been orphaned on an NTFS partition that linux refused to mount.  I pondered just installing Rio Music Manager on the VM and just using that, but I really wanted to do everything natively in linux if possible.

So I started searching about Karma compatibility and I decided I hadn’t abused myself with a linux challenge in awhile so I was due.  The linux Karma driver still seemed a little kludgy but if it got the job done, I could at least stick to my current crappy ripping process and have a crappy way to populate both MP3 players.  Problem solved even if it’s in a crappy linux way.  I grabbed the driver and went to compile it and, predictably, it failed.  Before I decided to go nuts searching for dependency after dependency, I decided to (duh) see if this was in the official Ubuntu repository, and remarkably it was!  I grabbed the necessary packages, hit “apply” and a few seconds later it reported success.

I plugged in ole’ Karma, and tried to mount it and - classic Linux! - it failed to mount because OMFS is not one of the available file systems (even though I had just installed OMFS support in the previous step).  Cue a few hours of troubleshooting.  Best I can figure is that when you “install” this particular package it downloads the source code to your src directory and reports this as “success” even though it hasn’t actually done anything!  I found a tutorial that tells you to execute some program to build and install the package - failed with the same error when I tried to compile directly from source.  I found another tutorial that claims the repository package is broken (more typical Linux behavior) and recommends downloading the current source code and overwriting the files in the src directory.  Same error.  No luck at all.

Just about to give up, it occurred to me that somehow these other people got it to work.  Maybe the driver had been updated (and broken) since they wrote their tutorials?  Package updates causing epic failure is another typical linux behavior, btw.  I decided to try building the previous version of the driver from source.  I’m sure you can imagine my utter amazement when it actually compiled successfully on the very first try!  All that means is runtime errors are guaranteed, though.

I plugged in the Karma and ran the mount command.  If I was utterly amazed that it compiled, I was completely astounded that it actually mounted successfully and I could browse the cryptic proprietary file system!

The main technical barrier overcome, I just had to figure out how to actually use the accompanying programs to actually add songs to it.  I had a feeling they weren’t pretty.  When I configured it to automatically mount when plugged in, I noticed some typical linux behavior - sometimes it mounts as removable storage (and automatically launches a nautilus session) and sometimes it mounts as an MP3 player (and automatically launches the built-in music manager).  When the latter occurs, it actually appears in the music manager AND it displays all of the music!  Amazing!  Unfortunately, it appears to be reading the contents of the Karma by brute force and takes about a half hour to read in a few thousand songs.  And it doesn’t store the database so it does this every single time you start the music manager.  Not a showstopper, though - if I want to see what’s on the Karma I can do that by looking at the display on the Karma.  As long as I can put songs on it, I’m fine.  I tried to load an album.  It reported success!  I unplugged the Karma and went to find the album…nowhere to be found.  Whatever the built-in music manager was doing, it was doing it WRONG!  So close, yet so far.

But thinking of music managers, I remember seeing something in the Linux Karma how-to about a guy named Bob Copeland who had cooked up a Karma plug-in for a music manager called Banshee.  The installation looked a little troubling…you had to use the patch command to install a diff onto the source code and then there’s all the dependency nonsense that comes with trying to compile it. 

Ever the optimist I searched for it in the repository and there it was.  A couple of clicks later I had launched Banshee and without any further prodding, it spotted the Karma and queried the database displaying all of the songs!  Amazing!  I started looking at the settings and I noticed that it had the same “no MP3 encoder” syndrome as the built-in music manager.  Evidently they are both referencing the same thing even though it’s not clear what that might be.  Some research said it was a gstreamer plugin, but as far as I could see in the package manager, I already had a bunch of gstreamer plugins installed and one of them *had* to be MP3 support, right?  Apparently not.  Then I noticed a package called something like “ubuntu-restricted-extras.”  The name is a little bit cryptic in that while it’s apparently extras that are restricted (not open source) it doesn’t really clearly say “Install this package to get an MP3 encoder” but it does obliquely reference MP3 support in the description.  I gave it a whirl and suddenly MP3 appeared as an option in the config of Banshee.  Just to test, I loaded the built-in ripper and music manager and they also had MP3 now.  Apparently this problem could have been solved fairly easily if only there was some solid document telling you to simply install that package.  I’m sure it’s on some wiki or forum somewhere but it didn’t come up very high in a Google search!

I’ve got to say this part is an amazing success story and a glimmer of how fun and easy to use linux could be.  This Banshee program supports Karma right out of the box!  Amazing!

The rest of the saga is more linux headache, albeit entirely of my own doing..  I had at some point gone looking for the user manual for Banshee thinking that maybe I had to make a setting change somewhere to enable MP3 support.  I noticed on the Banshee website that the package in the repository is pretty far out of date and the new version has some really nice-looking features.  Seeing as Karma works right out of the box, I might as well give this new one a try!  In defense of linux, I have often lamented running into problems with Windows when trying to “get more out of something.”  Not just a linux problem there.

In any case, I followed the instructions to hook up to the Banshee repository and install the package and dependencies.  Went off without a hitch.  Score another one for linux!  I launched the program and there was my Karma nestled in the pretty updated user interface.  Clicked on it…a progress bar came up…a little bit of time passed…the progress bar disappeared.  No music listed.  It doesn’t actually work.

A little more research.  A post from Bob Copeland - Karma support had somehow been omitted from the release.  Attached was a diff file to be used with the patchcommand, but you had to apply it to the source code and then compile.  More adventures in building.  Fortunately they’ve got things set up so that you can automatically download the build dependencies, so it was actually straightforward.  The patch seemed to work except on the changelog which, as far as I know, should not matter.  But when I compiled it, it did the same behavior.  I tried a few different ways without success.  I sent an e-mail to a guy who seemed to have had success with this and he confirmed that my steps looked correct but that patch wasn’t working.  His best offer was to try the latest development version since the Karma support had been re-added there already.  I figured the “old” Banshee works either way so I’ll just give it a try and if it works great, if not I’d just go back to the old one until the next major update of Banshee.

Building from the development svn source is a little different than the regular source, but mostly the same.  Once I figured it out and resolved a few dependency problems related to my local configuration, not Banshee, it built successfully.  Score another one for linux (or perhaps open source in general this time).  When I first launched the new Banshee it crashed.  No idea why…the second time it launched just fine and has been fine ever since.

But more importantly, the Karma was back and working correctly!  As I explored the UI I noticed a cool feature.  I’m sure other music managers already do this, but this was new to me.  You can set a preferred file format for each DAP that you have and it will automatically transcode whatever file format is on your hard drive into the one you want for your MP3 player.  You see I had run into some issues when I first got the Karma and Pearl - the Karma can play ANYTHING, the Pearl can only do MP3 and WMA.  Not realizing this I had ripped a bunch of stuff as Ogg only to have to re-rip it as MP3 for the Pearl.  Not wanting to have multiple file types, I just stuck with MP3 even though I think the Ogg format is a little better.  With the transcoding feature, it doesn’t matter.  I can rip the CDs using lossless FLAC and then automatically transcode them to MP3 for X’s Sansa and Ogg for my Karma! 

After a little further tweaking and removal of the crappy default ripper and music managers (why don’t they use Banshee as the default?  Even the older repository version is much nicer!), I was ready for a final test of the process.

Inserted a CD.  Banshee launched automatically and automatically ripped the CD to FLAC.  Plugged in the Karma.  Dragged/dropped the album onto the Karma icon.  It converted the FLAC to Ogg and transferred them to the Karma.  Unmounted and unplugged the Karma and the music was there and played!  Success!  Now X can easily rip and manage her Sansa using a single intuitive program.  This is actually a pretty nice solution!   

More importantly, for the first time in over a year I’ve got new music on my MP3 player and I can start ripping CDs again!

If you look overall at this process, aside from the problem with the newer version of the driver mysteriously not working at all, getting this piece of nonstandard hardware working was remarkably straightforward.  Most of the headache came trying to install the newer version of Banshee not in the repository - headaches that are one of the main reasons we use repositories now.

Overall it’s a sign of how far Linux has come and how close it is to being ready for prime time.  Not quite there, but ever closer.  Banshee is a really nice program and of course I’ve got to shout out Bob Copeland for the Karma integration and Benjamin Jao Ming for the Ubuntu-specific help.

The Linux Clock Is Ticking…plus…Content?!

Monday, April 14th, 2008

Faithful readers will recall that over a year ago when my computer went belly-up, I decided it was time to switch to linux full time since I had a working linux box.  A few months ago, I also tried to run linux on my work laptop figuring I could use a VM for anything that *had* to run in Windows.  I had to abandon this effort because my on-board wireless simply would not work under Ubuntu.  My mantra for linux has been “It’s not ready for prime time.”  And it’s still not.

But I have good news: It’s about ready for Final Jeopardy or perhaps the beginning of Wheel Of Fortune (here in Phillyland, Jeopardy runs at 7PM and Wheel runs at 7:30 - just shy of the elusive 8PM start of prime time.

I had been using CentOS mainly because I’d been using it at work so at least had some familiarity with it.  Once I got through the somewhat ridiculous hurdles involved with setting the display resolution, getting wireless working and getting my printer going, I found that it was working passably and I only REALLY had to launch the Windows VM to access my MP3 player and print to my HiTi photo printer.  But there were some tasks that I simply hadn’t been able to master to my satisfaction such as ripping CDs and even playing MP3s.  Every so often I would feel like perhaps it was my lucky to try my hand at some of these…and then spent a few frustrated hours accomplishing nothing.

Recently, I started to think the perhaps the problem wasn’t so much that linux is not ready for prime time (which is still true), but more that CentOS is based on Red Hat Enterprise Linux and neither of these products was intended to be used as a “workstation” OS - they were supposed to be server OSes!  As a result, there is not great support in the major software repositories for things like MP3 players.  You end up with a lot of dependency problems and trying to compile from source isn’t much easier.

So with the release of the new “Hardy Huron” version of Ubuntu imminent, I decided that now might be a good time to give the prior version, “Gutsy Gibbon” a shot.  And it’s close…so close to prime time.  Many pieces of it really did “just work.”  In CentOS my audio was barely audible.  I thought it was my speakers, but Ubuntu came pre-loaded with drivers and a mixer that allows me to actually increase the volume to an audible level.  The display came with the correct resolution automatically.  Wireless is still fairly weak.  In my case, the driver auto-detected just fine, but using the built-in network-manager app I could not connect at all and it would lock the card up.  But if I configure my wireless settings manually, it works fine.  Since this is a non-portable computer, it’s not even a hassle.  Getting my printer working was a tiny bit sketchy, but because of the large userbase for Ubuntu, it was fairly easy to figure out how to install it.  At this point, I’m pretty much where I was with CentOS…but it was much less frustrating.  My only complaint right now is that it keeps crashing randomly, but this could be a variety of things.  Also, my KVM switch causes all sorts of strange behavior from the mouse.

But things are progressing nicely for linux and Ubuntu.  In fact, at this point if you don’t have any incompatible hardware, I might even go so far as to say that if you had a friend or relative that didn’t have any non-linux specific needs and isn’t going to poke around too much and screw something up, you could probably give them an Ubuntu machine and they’d be pretty satisfied!  The clock is ticking towards prime time, and I’m looking forward to seeing what Hardy Huron (or is it Heron?) has to offer.  Hopefully it’s a simple upgrade, too!

This upgrade also forced me to start catching up on my picture updates.  I had no really sensible way to back up my data for the re-install, so I had to use my camera to back everything up to SD-card (note to self: get an SD reader).  In restoring my data, I also loaded a stack of pics to the PC that had languished on my camera for many months, and I noticed that Ubuntu comes pre-loaded with something called “F-Spot” which is a photo-management program.

I never felt the need to have something like Picasa, but since it was there I figured I would at least give it a try…and let me tell you…I love it!  It gives you an intuitive way to browse and sort your pictures, offers some light-weight editing right in the UI and interfaces directly with GIMP for heavier editing AND it automatically preserves the original so that I no longer have to do this myself.  In fact, I used to upload the originals, make a new copy of each original, then edit those copies and sort them into various folders for pictures that would be published, rejected, etc.  Now I can simply tag them accordingly in F-Spot and away I go.  You can also tag them with people, places, etc, so in just a click I can see all the pics of curling, my dog, or both!  Oh, and it also has a handy plugin to upload directly to both my gallery here AND to Facebook!

So inspired was I by F-Spot that I immediately began uploading pictures.  Those of you on Facebook should note that everything posted on Facebook will also be posted here, but not the reverse.  Basically if the subject matter does not involve Facebook friends, I will just post them here.

Here we go…there may be commentary posted later on for some of these sets.  Clicking the pic will take you to the corresponding gallery.

Our 2008 Saint Patrick’s Day party

The Jeff Harris Curlathon…a benefit for our friend who suffered a spinal cord injury last Summer.  You might see a couple local legends in this gallery.

A rugby game…a few years ago my brother-in-law (pictured here) spotted a sign that read “Give Blood…Play Rugby” and he has been playing ever since for Whitehorse Rugby Football Club.

There are still some curling posts to come…and even more pics.

Stay tuned!

VMWare: Ready For Primetime

Wednesday, April 25th, 2007

One thing that always kept me from switching to linux over the years was the unavoidable fact that some things just plain don’t work in linux.  You could dual-boot with Windows, but I tried that back in my college days and find that I quickly got tired of rebooting all the time and just stopped using the linux setup. 

Now we’ve got access to free virtualization products.  We’ve been using VMWare a lot at work and it’s really handy.  It seems like a pretty robust program and therefore it ought to be REALLY hard to install, right?

Wrong.  Here is a pretty well-developed program.  Installation was this simple:  Download the RPM.  Install the RPM (I even used the GUI RPM installer).  Run a script that prompts you for various configuration options.  Start the program.

And it worked!  I didn’t have to dicker around with anything!  I just started it up, provisioned a virtual machine and kicked off the XP install.  It works like a champ.  I could probably put the XP virtual machine into full-screen mode and X would never even realize she was using a VM.  I can also give it direct raw access to my old NTFS drive.  Very convenient.

So now I have a sensible fallback.  If I find something that simply will not work under linux, I now have the option to just switch to the XP VM and do it from there - no muss, no fuss.

Another note, I set my printer up last night.  That wasn’t primetime, but it’s at least 6 o’clock news.  I had to track down a driver.  Canon isn’t too linux-friendly.  They do have some linux drivers, but they aren’t too forthcoming about drivers that work for multiple printers.  I have an IP1600 which has no linux driver, but I read reports that the IP2200 linux driver will work.  I installed the driver RPMs and this caused the printer config wizard to segfault.  The pre-populated list of drivers vanished!  Removing the IP2200 driver caused them to return.  I’m not sure what that’s about.  But once I tracked down where the .ppd file hides, I was able to choose that in the wizard and the printer worked right away.

Things are much better than they used to be, but there’s still a ways to go.

Linux Update: Still Not Ready For Prime Time

Wednesday, April 18th, 2007

Last weekend my computer was acting a little flaky…kept crashing.  The crashes got more and more frequent.  On Sunday I went downstairs after using the computer.  A few hours later, I came upstairs and it was turned off.  After switching it on, it would just shut back down after a few seconds.  Maybe the motherboard went…maybe the power supply.  Who wants to mess with that stuff anymore?

I decided it’s time to get back into multiprocessors.  I have a 2×800MHz box that I got from work awhile back.  Already has linux on it.  I don’t really want to blow it away because I need some of the stuff on it.  But I don’t want to put my Windows drive in completely different hardware and risk losing all my data if I have to format.

The obvious solution seems to be to put my Windows drive in the linux box and start using linux at home.  These days I use mostly open source stuff anyway.  Linux is getting easier, and I’m getting better at it.
It took me 4 hours of head-pounding before I found this wonderful step-by-step on how to get my Wifi card working!  I kept finding various leads, and as usual one bit or another just doesn’t quite work right.  I think at some point I crossed this tutorial but decided to pass over it before finally coming back to it in a last-ditch effort to make it work.

Fortunately getting access to my NTFS drive was much easier.

Sorry, linux.  I’ve got a BS in Computer Science and a lot of experience and it *still* took me 4 hours to do something that should take 5 minutes.  Still not ready for prime time.  Maybe next year?

Welcome back to The Hizzle

Saturday, January 14th, 2006

After a lengthy hiatus following my website being hacked bya worm that advertises Brazillian leftists (you just can’t make this stuff), I have finally taken the time to get the site back in order. One of the key reasons I felt like starting back up is that the technology seems to have finally matured enough to allow me to do the things I want to do (in particular, making photoblog posts from my Sidekick) without having to do a whole lot of coding myself. My educational background as a Computer Scientist may lead you to believe that I would *love* to sit around coding all night, but the truth is that I like to program here and there, but not too much, especially when it’s something that I believe in my mind that enough people are interested in that it *should* already exist.

So here we are. The photo gallery will return soon. Since the PHP-Nuke Coppermine Gallery was the attack vector which allowed the site to be compromised previously, I simply scrapped the entire thing. I have all of the pics saved, so all I’ve lost is the method for displaying them easily, and there are plenty of alternatives including the standalone Coppermine now that I am no longer tied to PHP-Nuke. PHP-Nuke was a decent CMS and I enjoyed customizing it to my liking, however it was designed for far larger projects than a simple personal blog. I briefly tangled with MovableTypeuntil I realized that while there is a way to use Flickrto make photoblog posts by e-mail, it does not natively support posting by e-mail! Is this the 21st century? Sure, the open source folks say “If you want that feature, add it yourself!” See comment above about how much I like to program.

MovableType did, however, introduce me to OpenID, since I had to sign up for TypeKeyin order to download MovableType. OpenID is a bit hard to wrap your mind around at first, but it essentially allows me to tie troy.fisher-fam.orgto an account registered with an OpenID server (in my case TypeKey) by adding two simple lines to my index.html. This is my OpenID Identity. I can then use troy.fisher-fam.orgas a login on any site that supports OpenID, and after logging into TypeKey, my identity is established. The most significant use for this right now is cross-functionality with LiveJournal. Using OpenID, I can have an identity at LJ that ties back to my own non-LJ blog, and allows me to have friends and be friended instead of having to post anonymously and miss “friend-only” posts, which seem to be many posts these days. Furthermore, once better OpenID functionality is available for WordPress(the software driving this blog), LJ users will be able to interact with this site using their LJ addresses as OpenID Identities. It’s a very handy system, and I hope that it takes off.

Most OpenID pundits are careful to mention that OpenID does NOT cover trust. I’ll repeat that same warning here. Anyone can go to TypeKey or MyOpenIDor any of a number of other free OpenID serversand register an account and claim to be someone else. It is up to you to decide whether or not that person is who they say they are. Linking your Identity to your own website helps (the OpenID term for this is “Delegation”). Since I own fisher-fam.org, you have some assurance that it really does tie back to my OpenID; why would I tie it to someone else’s ID? Another good option would be a server that includes a PGP-style “Web Of Trust” in which you can log in using your Identity and then assign a trust level to my Identity based on how certain you are that it’s really me. Then when you come across a new OpenID Identity, you can gauge whether or not it can be trusted.

Onle last thing to mention. Those of you who are aware of my career in Information Security are probably wondering just how I could allow MY OWN site to be hacked. Truth is, I chose not to stop plug the hole. In InfoSec, we often talk about risk analysis: what is the likelihood that a risk will actually be exploited, and if it is exploited, how much damage will be caused? In the case of the flawed Coppermine for PHP-Nuke vulnerability, I was aware that the vulnerability existed, however by that time Coppermine had scrapped PHP-Nuke integration and recommended installing the standalone Coppermine as the fix for the issue. It was a hassle to remove the PHP-Nuke for Coppermine, install the standalone version, hook it in to PHP-Nuke and then upload the pictures, especially since everything was chugging along quite nicely. I felt that the likelihood of actually being hacked was fairly low (a correct assumption based on the fact that it took over a year to be exploited) and that the potential “damage” was pretty much nothing - I have local copies of all of the pics, and as far as posts are concerned, let’s face it - I’m not blogging the Magna Cartahere. They were actually safe in the database, but saving them was not a high priority, so I just wiped the whole thing clean. I have more confidence in WordPress, but let’s face it - if another vulnerability is published that requires more than a simple patch to fix, I’ll probably follow the same “wait and see” course of action.

With that, welcome back. Since WordPress supports e-mail posting right out of the box, I expect to be able to update more often than before. Hoorah.