Category Archives: Tips

The little boy that learned everything.

As Joe has pointed out, the Linux Foundation is sponsoring a “We’re Linux” video contest, soliciting budding filmmakers for their take on Linux for the masses. As someone pointed out in an earlier comment here, a winning commercial is really going to have to stand out compared to IBM’s super-cool 90-second spot and the array of supporting spots.

I think the argument rages on as to whether or not it’s useful to market Linux right now to the masses. I certainly believe Linux at least solves some of the most aggravating problems regular Joes and Sallies have with home computing. On the other hand, there’s a fair case that right now, Linux comes along with its own set of head-scratchers. All other things being equal, I’ll take freedom any day, though. I certainly believe that Fedora is on the right track both to creating a less problematic Linux, and to showing off the best of what Linux can do to solve the problems created by other operating systems, in a way that promotes the principles and practices that have made FOSS successful.

Having said all that, and with the competition hopefully being stiff, let me offer some pointers for things to avoid; were I a judge, these things would eliminate entries.

  • Bad production quality. Unless the production values play directly into the message of the spot, anything not shot at the quality level of 24p HD video and with good sound would be out.
  • Montages of community people. I love community, and I suspect most people reading this do as well. But the masses don’t care a fig about it, so it’s not a way to market Linux to them.
  • Aping other successful commercial ads. Unless the joke is really, really good, originality is what sets successful ads apart. Stand out with a new idea, not by rehashing someone else’s. Building on others’ code works wonders, but building on someone else’s ad campaign is usually a buzzkill.
  • Being wordy. Wordy is for business audiences, and explaining what Linux is in 30 seconds to the layman doesn’t make for a great ad. Finding an idea that Linux exemplifies, and then magnifying that, just might.

Anyway, this is all my humble opinion and I wish all the contestants, and the Linux Foundation contest judges also, well in their efforts! I hope any ambitious filmmakers out there in the Fedora community will give this contest a shot, and I’m looking forward to seeing the results in April.

And about that turkey…

Since I’m in the mood for tip-giving… I hope everyone in the US had a wonderful Thanksgiving however you chose to celebrate it. We had my mom and stepdad over for a nice family dinner with all the requisites, including a lot of home-made goodies from my wonderful wife (fresh biscuits from scratch, sweet potato casserole, etc.) and several scrumptious pies.

The turkey, which was my job, turned out great. I use Alton Brown’s recipe for brining (as I do every year), doubling it for the 20-pound turkey (fresh, no additives!) we cook. It’s basically a solution of OJ, kosher salt, bay leaves, peppercorns, and broth used to help the meat absorb moisture and break down some of the tougher protein chains. I also add about 1/2 cup of minced garlic for extra zing. The turkey soaks overnight in a freshly cleaned 5 gallon bucket with enough ice to keep it well below 40 F.

Around lunchtime — or midday since I usually skip lunch on Thanksgiving as if that will make up for dinner — I take it out, pat it dry, rub the whole birrd down with canola oil, and put it into a preheated oven at 500 F for about 30 minutes. (At that temperature the oil sometimes generates a wee bit of smoke so it’s good to keep the windows open.) Then I take the bird out, cover the breast with a big heavy tinfoil triangle, put in a meat thermometer, and pop it back in at 325-350 F for a few hours. For a 20-pound bird, another 3 hours 15 minutes was perfect. For a 15-pound bird, usually 2:15-2:30 will suffice.

Always check the temperature at the thickest part of the breast and the thigh — 161 F in the breast and about 180 F in the thigh means everything’s just about perfect. I cover the whole thing with heavy tinfoil after it comes out and let it sit for about 20-25 minutes to finish the carry-over cooking, and then it’s carving time.

We served it with a nice Chilean pinot noir which goes very well with poultry. Yummy!

And as I said at dinner during the toast, I have much to appreciate and for which to be grateful this year. An overwhelmingly favorable change of jobs, a wonderful wife and two great kids who support me through it all, and my mom’s steady return to health… all good things. To all my Fedora friends, regardless of whether you celebrated this particular holiday, I hope you and your families will continue to have much to be thankful for in the coming year, too.

Back in play, No. 2.

Well, one migration just wasn’t enough for me this weekend apparently. My friend (and ace author/Asterisk guru extraordinaire) Jared gave me a new mobo that I could transplant into my desktop system, which had been running an old AthlonXP 1800+ on an Asus mobo. The new one is a Gigabyte mobo with an Athlon64 3000+! (Overgenerosity is one of Jared’s many faults.) 😉

I transplanted another 2 GB of RAM onto the new mobo for a total of 3 GB, and then performed all the physical parts of the procedure (tearing my hands up minimally in the process). Everything was fine upon booting up to the point when I got a very interesting error, saying that the UUID for the new root volume wasn’t found.

Normally GRUB references the new root volume with a “UUID=” parameter, meaning that it should be virtually impossible to attach any additional storage device and have it override your normal root volume. That was a great change from back when I was doing forensic work and we had to take special precautions. You wouldn’t want to connect a working copy of evidence in the field and then inadvertently write to it because it has the same label as your normal root volume. (Nowadays there are hardware write blockers, but back when I started doing that kind of work over a decade ago they didn’t exist.)

So anyway, back to my point, which is that the system wasn’t finding my UUID. I booted off a F10 install disc in rescue mode and could easily see that the UUID for the root volume was fine, and agreed with GRUB, which told me that for some reason the system wasn’t recognizing the LVM setup in my system. The rescue disc had no problem recognizing and mounting my volumes under /mnt/sysimage as usual. I’m not sure why that kernel module wouldn’t be loading properly during the boot process, or why else my LVM setup wouldn’t be recognized — but it could easily have something to do with the brand new IDE controller my drive was using on the new mobo.

To fix it, first I chrooted to the mounted system:

chroot /mnt/sysimage

Then I rebuilt the initial RAMdisk. I’m lazy and hate having to remember the mkinitrd command line for this, so I cheated and just ran the new-kernel-pkg command as shown in the kernel’s %postinstall scriptlets. I’m sure this was overdoing it, but part of that process is re-running mkinitrd, so I figured what the heck.

rpm -q --scripts kernel

That gave me the command I needed under %postinstall:

new-kernel-pkg --package kernel --mkinitrd \ --depmod --install 2.6.27.5-117.fc10.i686

After a few minutes the command finished, and just in case that process changed the inodes (and possibly the location) for the kernel and the initial RAMdisk, I decided to rerun the GRUB installer too:

grub-install /dev/sda

Then I used the exit command to get out of the chroot environment, and exit again to reboot. Voila, the machine now started up fine and I was ready to rock and roll. Of course it’s not lost on me that I have a 64-bit capable CPU now, so I really want to blow away the system and use 64-bit Fedora, but I’ll get to that when I get to it.

The really funny thing about all this was that right after I finished all that and started writing this blog post, FedEx showed up at my door with my new replacement Dell XPS M1330 laptop! 😀

UPDATE: Whoops, copied the wrong scriptlet above, which would not have fixed the problem but actually made it worse.