Too much time on my hands

The sign of a workaholic? I just got told that my vacation time has built up over the max. Not just a little over the max, but 65 hours over the max and I won’t accumulate anymore until I spend those hours. And so… So what to do with an unexpected 2 week vacation with only 1 day warning? Hmmm. I’ve got my ideas. Besides helping my wife out around the house, the customary lawn mowing and weeding, and other chores, I’ll still have many hours to kill. As luck would have it, my new computer is scheduled to arrive during this vacation. After 7 years I’m ready for a new one, not counting the Mac Mini I got in February. For the first time since I got out of school, I’ll have unscheduled, uninterrupted time to just play around on it, and play I will!. …If you consider doing a stage-1 Gentoo linux installation as "play", that is.

Posted by Chris Uzdavinis on April 14th, 2005 under Uncategorized | Comment now »


Why are unconventional languages important?

Through the years I have been, and continute to be, a big proponent of learning and using alternate languages. Sometimes they’re called "scripting" languages, but some have compilers to bytecode or even native code, so the lines blur.

One often overlooked reason to learn new languagse is to keep the mind fresh. I believe that thinking about programming in other ways can only help your overall skills. In many cases, languages are designed around key ideas that the designer thinks are extremely important. In many cases, learning the idioms of that language can actually make you a better programmer in other languages too. For example, learning polymorphism in OCaml, or writing recursive functions in Scheme both make you a better C++ template programmer, because they train your brain to think in those terms. (And the syntax is far less challenging than C++ templates!)

Additionally, the "right tool for the job" only makes sense if you know more than one tool. I’ve found that writing tests for C++ classes can be much more tedious in C++ than in a dynamically typed, interpreted language like Ruby. It takes a little up-front effort to make C++ classes available for use in the ruby environment, but once done the benefits are the runtime flexibility of the language, and rapid change-and-run with no compile-time delays. We wrapped our C++ CORBA objects with ruby objects which had a surprising (unexpected) major benefit: we could write scripts in ruby to interact with our corba code on-the-fly without any deployment issues. Our applications are distributed with ruby wrappers to communicate with the Corba objects, so now all that is required is to write a ruby script, "require" the proper library, and make the call–no compiling, and no mess with the orb. It was designed for testing, but now helps us with day-to-day administration of the system.

Posted by Chris Uzdavinis on March 20th, 2005 under Uncategorized | 5 Comments »


Computer decisions + digital home audio

I have two computers, one is PII 450 MHz, the other a dual PIII 550 MHz. The PII is dying a slow, painful death, and the PIII is owned by my work and is loud as a vacuum cleaner. My computing experience has been good enough to keep them this long, and I just have trouble justifying a replacement.

Except that I’ve decided that the noise has to go. And to complicate things, my wife got me a gift of getting the house wired for stereo speakers throughout. I have to design how I want to control this, and digital music from a centralized audio-server seemed a good choice. And finally I had justification to convince myself to go ahead and replace the machines.

But in the meanwhile I started ripping all my CDs, mostly classical. It’s about several hundred discs, and between my 2 computers have 3 CD ROM drives my ripping sessions get some nice parallelization.

I love the iPod, but do not own one. I’m wondering if a home network could somehow make use of an iPod, but the direction I’m going is starting to look no. The main reason? It does not support Ogg Vorbis file formats, and I *like* ogg vorbis. (I’m into free and open formats for all things, not just music files.) The ogg files sound fantastic when played on my Linux box.

So I’m on a quest to find a good iPod-like ogg player. I’m on a quest to get a nice, quiet computer that can handle serving audio while doing other things. I’m on a quest to figure out what I want to do to my house.

So I bought a Mac mini. Whoa, that even surprised me, but Apple must be doing something right. It is a nice, cheap, quiet computer that has good multimedia support. It’s not super-powerful but compared to what I have, it’s a huge step forward. And it’s still BSD Unix based, a nice touch. However, I really like to run Linux and I think I’ll be getting another quiet machine for that purpose as well. (Gentoo linux already runs on the Mac mini, which is intriguing in its own right.)

To play the ogg files on the Mac, I had to download and install an ogg decoder for QuickTime. After doing this, and a little struggle, I had iTunes playing my ogg files, which I copied over from my Linux machine. The results were far from stellar. It paused and crackled frequently. Obviously the problem is in the software player, since the oggs sound good on Linux and the Mac is a far more powerful CPU.

My entire ogg collection takes 5.9 GB of space, using a quality level of 2.75 for most tracks, and 3 for the rest. Due to the problems, and my desire to phase out my current loud machines, I want to play music on the Mac. However, if oggs pop and crackle, that’s no good. So I’ve started ripping the discs again as MP3s using iTunes. I notice it encodes much faster, but the files are considerably bloated compared to the corresponding oggs.

I’m not even done re-ripping the CDs to MP3s yet, but the MP3 directory already takes 4GB more space than the complete collection of CDs ripped as ogg. I like ogg a lot. Not only is ogg a free, open format, but it compresses much tighter and has better sound when used with a decent decoder.

In the meanwhile I’ll keep ripping to the Mac as MP3s, wasting drive space and time, until I get a new computer that is quiet and runs Linux. Then I think I’ll make my audio server run on that playing oggs.

Posted by Chris Uzdavinis on March 11th, 2005 under Uncategorized | 5 Comments »


Introduction

Today I saw a post from a user wishing for more C++ TeamB people to keep blogs. I took the bait and blundered through the setup of this account, but perserverence paid off and so here is my first post. Hopefully this is the least interesting post I make. We’ll see. I’m currently reading Herb Sutter’s "Exceptional C++ Style", which has caused me some considerable surprise in the area of exported templates. I knew he was generally campaigning against them, but some of the issues he brings up were enough to lean me against considering using them in code even if exported templates were supported by the compiler. The surprise he mention, which I have not yet researched, is that names in the anonymous namespace and names with static file storage can be "promoted" to have external linkage and participate in normal overload resolution when exported templates are involved. That is, he said you can actually have the compiler choose the best anonymous function from multiple files to select the best name. Up until now I thought the anoymous namespace somehow protected your names from being usable from other files. Not so anymore, apparently. The problems this produces are big, especially when you end up with name conflicts or the need to hand-mangle your names to avoid such conflicts. As I learn more I’ll share it.

Posted by Chris Uzdavinis on March 7th, 2005 under Uncategorized | 3 Comments »



Server Response from: dnrh2.codegear.com

 
 

Copyright © Chris Uzdavinis  Powered by WordPress and Delphi For PHP

Close