continuously inked!

For Christmas, I bought Jane an Epson Stylus Photo R1900 printer so she can produce nice color prints and I can stop direct depositing my paycheck at Kinko’s.

As you can tell from the 8.5×11 sheets of paper, this thing is a beast. It can handle paper up to 13″ wide, and has an attachment to allow you to print on rolls of photo paper, so you can make panoramas several feet long. There’s also a tray attachment you can use to print onto CDs and DVDs.

The problem with this printer is that its very thirsty. The printer takes 8 separate cartridges, and the ones Epson ships are a tiny 11.5ml each. At $16 each, reloading the ink in this thing can be a very expensive proposition. So I wanted to get a continuous ink system. I checked out the various offerings online and decided to get InkRepublic’s CIS.

The system is basically bottles of ink feeding into “fake” cartridges. The bottles of ink are 100ml each, and cost about $17. That means I am getting 8-9x as much ink for the same money as if I were just buying Epson cartridges! I anticipate the system paying for itself by spring with the way Jane prints. ;-)

Here are a few pictures showing what the system looks like:

One thing I found amusing was that because of the hoses coming out of the printer, the lid does not shut all the way. Inkrepublic’s solution to this? The kit includes a small piece of foam to shove into the printer to fool it into thinking its closed!!

To make room for the ink system, I needed a bigger table than the one I was using. Most “printer stands” are either made for tiny consumer-grade printers, any I saw that would fit this setup cost several hundred dollars. IKEA to the rescue! I bought a very sturdy, yet inexpensive (relatively, considering its real wood) TV stand, the Leksvik. The bonus is that there’s lots of storage underneath, so that’s where all the printer supplies and random computer accessories are stored.

Posted in Misc, Photography | Tagged , , , , | 6 Comments

building subversion on solaris 10

I’m posting this because google is filled with unanswered questions and half-answers regarding this topic.

I’ve built Subversion 1.5.5 on a Solaris 10 sparc system using gcc. I had already set up a subversion server using the packages. However, I wanted to build my own self-contained subversion package to install on the other servers (“client-only” i guess, though there really is no such thing with subversion)

I was building this from source, because the subversion package on has too many dependencies and I was not interested in having to install all that extra stuff on every solaris box wishing to access my repository, especially packages like apache.

Step 1:
You will need to get the latest subversion source code. Make sure you get both the main package AND the dependencies package too!

Step 1b (optional):
If you require your subversion “clients” to talk to a subversion repository using ssl, you will need the Solaris openssl packages installed. Don’t try and build your own. I did, and later in this post you’ll see what happened. The Sun-supplied packages you will need to have installed on your system are:

Step 2:
Unpack the main package somewhere. Unpack the dependencies package on top of the main package.

I set the following environment variables:
LDFLAGS="-L /usr/local/lib -R /usr/local/lib -L /usr/sfw/lib -R /usr/sfw/lib -L /usr/lib -R /usr/lib"

LIBS="$LIBS -lintl"

Step 3:
Run the configure script. The configure options that worked for me in the end were:


Ignore any warnings it gives you about not finding BerkeleyDB. You don’t need it unless you are trying to access old repositories using that format. Any recent Subversion repositories are using the built-in fsfs format.

Step 4:
Run “make install” and you should be done!


I ran into two problems which are extensively mentioned on subversion message boards. Here’s how I solved them:

1. Multiple inclusion of file errors while building neon libraries

attempted multiple inclusion of file
Undefined first referenced
symbol in file
libintl_dgettext main.o (symbol belongs to implicit
dependency /usr/local/lib/
ld: fatal: Symbol referencing errors. No output written to .libs/svnadmin
collect2: ld returned 1 exit status

I fixed this by doing a two things:
- Make sure the $LIBS variable has “-lintl” included.
- Don’t build static libraries. I’m not sure why you would want to do this anyway. When running the top-level configure, include the options --enable-shared="yes" and --enable-static="no"

2. SSL disabled due to library version mismatch

When I was building this package, I wanted everything to be self-contained to reduce dependencies. So I downloaded openssl 0.9.8i and installed it in /opt/subversion prior to building subversion itself. However, no matter what I did, I was unable to stop getting this error, even when building neon separately and verifying via ldd that my binaries were all linking to the custom-built openssl libraries. I gave up and ended up just using the openssl 0.9.7 included in /usr/sfw/lib on Solaris 10. If you are like my workplace and install most of the OS packages on the servers, that library ought to be there, otherwise you will need to get your os media and install the packages manually. Once I set my LDFLAGS to include /usr/sfw/lib and rebuilt subversion, everything was ok. The neon-config script automatically includes /usr/sfw/lib, which I think is why most people are getting tripped up building subversion on Solaris 10. They may not install those packages with the OS.

Posted in UNIX | 5 Comments

radio siriusly sucks

I’ve been a very happy XM radio subscriber for over 4 years now. Recently, the two sole providers of Satellite Radio in the US merged. So now its Sirius/XM. But really it’s Sirius with XM’s name attached to the end.

All my XM radio staples are gone, replaced with the watered-down Sirius equivalents. My “Lucy” is now “Lithium”, “Fred” is now “First Wave”, “Fungus” is history. The 80′s and 90′s channels remain but now they have DJ’s, which I cannot stand. I already have the time, artist and song title on my radio┬ádisplay. There is absolutely nothing else a DJ can say that I would be interested in hearing. At least they are still commercial-free.

Its been long known that XM’s playlists were much wider than Sirius’s. I loved that I could listen to a channel like Lucy (80s new wave through 90s alternative with the occasional early 2000′s song thrown in) and still hear stuff that I either haven’t heard in years or have never heard before! Now you got Sirius with their “Lithium” channel with just plays your 90s alt-rock staples, and “First Wave” which plays the 80′s new wave music. It replaced “Fred” which was a similar genre but would play a lot of more obscure stuff like Soft Cell, Modern English, Flock of Seagulls and Missing Persons songs OTHER than the one or two hits they’re each known for.

I think I should just invest in an ipod already. RIP XM.

Posted in Uncategorized | 4 Comments

siri’s non-xmas cd

It was almost 10 years ago now where I decided it was time I bought a cd burner. I splurged on a 4x model, which set me back almost $300.

In comparison, today, you can get a 52x writer that burns every type of cd and dvd made for less than $20.

I decided to see if I could actually make a mix music cd. Such things were very uncommon back then. I got the software I needed to do it, so I decided since it was close to Christmas I would send friends mix cds instead of cards. “siri’s non-xmas cd” was born, and the end result was pretty good. I got a lot of people saying they didn’t know you could do that (from home, at least)

Interestingly, Jane was one of the recipients of the original batch of cds. Who knew what the future would hold. ;)

The burner came with a blank cd, which I used to burn the original copy. I bought a spindle of 50 cds and could not get any of them to burn at 4x. So I ended up burning 25 copies of this cd at 1x, which sucks at 75 minutes a pop. MUCH later I realized that the speed rating on a blank cd is not just a marketing gimmick but really does matter, at least to some degree.

I still have the original cd, and surprisingly it still works despite spending much of the last 10 years in my car. I’ve decided to make a 10-year anniversary edition of the cd with new songs. I’m picking out songs to put on it now. I hope to figure out who got the originals. I think I remember most of the list, but I don’t think I have it anywhere. The facebook version of this post will have the names tagged of people I think got one. Feel free to respond to this post here on, or on facebook, but not on livejournal, thank you, because I most likely won’t see it there.

If you got a copy of the original and want this new one, you are first on my list to get it! The new friends I’ve made in the last 10 years are welcome to get a copy too. Anyone interested needs to email me or jane with their address. :)

Posted in Personal | Tagged , | Leave a comment


…and yes I did!

Here’s a grainy, blurry shot of the big event:

That’s Obama for President, and Jim Martin for US Senate! Yeah!

I set my alarm for 5am to get there early. Unfortunately I slept through it and didn’t get up until 610am. I raced to get dressed, stopped to get some caffeine and snacks and got in line. I was about 100th or so by the time I got there at 620am. The precinct (Fulton County 09A) is in an old folks home, rather large like 6-7 stories or so. And much to everyone in line’s dismay, the poll workers let all the residents vote first before any of the folks in line could go. So that slowed things up a bit. Once that got done, the line was pretty efficient. The line was however, out the door, through the parking lot and onto Marietta Rd. I estimate there were about 300 or so people by the time I got out at 845am.

In 2004, there were 1048 votes cast in this precinct. And lots of people probably voted early (Jane and Moon waited SEVEN HOURS on friday!!).

With the growth in this area and the excitement about this election, I estimate the vote total will be around 1900 for our precinct. The results in this precinct for 2004 broke 68-30 in favor of John Kerry, which warms my heart. The place I lived in 2004 had the opposite results.

This time around for this precinct, I estimate 73-25 for Obama with maybe 1.5% split between Barr supporters and the half dozen or so write-ins for Ron Paul.

Posted in Personal, Politics | Tagged , | 1 Comment

17 years ago today..

Some guy in Finland posted a message to usenet about a project he was working on. The world has never been the same since.

It was just over a year later, around November 1992 or so, when one of my classmates at Tulane, Larry Butler, told me of some unix variant that you could run on your pc. I was certainly intrigued.

At that time, I still had the 386sx/20 that I had bought just before starting college a year and a half before, it was getting rather old at this point, though I did upgrade it to a whopping 4 megabytes ram earlier in the year. I really only ever used it to call BBS’s, since I worked in the computer lab I could just use those computers for my schoolwork… they were newer, had all had the latest software, and were hooked up to laser printers which I got to use for free since I worked there.

So anyway, I decided to load this thing onto my computer. The only thing close to a pre-packaged distribution was something called SLS, which eventually grew into what Linux folks know as Slackware. You downloaded disk sets and loaded them onto 1.44MB floppy disks. The only pieces I had at first were the two main disks.. the boot disk and the root disk. I loaded it up and was just blown away by the fact that I had a unix login prompt showing on my computer.

The next thing I did was get some more of the disksets and find some terminal software so I could call BBSs. Minicom proved to be a easy substitute to the Telix that I had been using in DOS. Yep, all text mode for me.

It was from then that I decided to ditch DOS and run this Linux full-time as my computer OS. My requirements were minimal, so this did the job, and hey it was unix, how cool was that.

For the rest of my sophomore year and through junior year I got a reputation on campus among my fellow computer geeks for being the Linux Guy(tm) which helped me get a job during senior year as the system administrator for the biomedical engineering department, where I managed servers running several different flavors of unix, including OSF/1 running on a DEC Alpha and UNICOS on a smallish Cray machine (by small, I mean it was about half the size of a refrigerator)

That on-campus experience was sufficent to get me a real system administrator job up in the Chicago area after graduation.

13 years and 5 companies later, I don’t know what else I’d want to do. :)

Posted in Personal, UNIX | Tagged , , | 1 Comment

happy talk like a pirate day!

Arr! Here be my annual posting of the pirate keyboard.

Posted in Uncategorized | Leave a comment


Jane and I went to Asheville, NC today. We had no set-in-stone plan for what to do once we got there other than to go exploring.

We started off by visiting Black Mountain, a nearby town with a lot of shops. There was a German restaurant that she wanted to go to but apparently of all the weeks to pick to remodel they chose this one. Oh well. But I did buy a great tshirt. Here’s Jane outside the store.

After that we headed into Asheville. It really seems like a cool little town. Sort of if you took a few of Atlanta’s more eclectic neighborhoods and turned them into one big neighborhood… and then doubled its size, made it look like a downtown area, and took out almost all of the panhandlers. I was pretty impressed.

We visited a lot of shops there and then went out for some BBQ before heading home. I took the scenic route home, through the mountains of western North Carolina instead of the boring highway route we took to get there. I got this picture right at sunset.

Posted in Uncategorized | 4 Comments

Solaris Jumpstart, Part 2 – Profiles

Requirement #1: Standard Partitioning Scheme For All Servers

Setting up a jumpstart profile with a standard partitioning scheme is very trivial, when you have a small number of servers or all your servers have identical hardware. But this requirement presented me with a challenge. I support around 15-20 different models of Sun and Fujitsu (Sun clone) servers running Solaris 8, 9 and 10. The only thing they share in common is that every one of our Solaris servers, no matter its purpose, contains two internal disks of the same size, either 36, 73 or 147GB so that they may be mirrored together for redundancy. Some servers may even contain additional internal disks. Because of this, I wrote a Begin script that automatically generates a profile based upon the OS version and hardware detected. The Sun documentation calls these generated profiles derived profiles.

Because of the variety of hardware I support, there are many things to consider:

1. The root disk is not always c0t0d0.

Jumpstart will always select the rootdisk by picking the first disk to show up in a probe… c0t0d0 in this case. Thankfully I have never run into an instance where an alphanumeric sort of all detected cXtXdX devices did not show the correct rootdevice as first in the list.

2. On a system where you have more than two internal disks, which is the secondary (mirror) disk?

Consider this real-world example from one of my servers:

c0t0d0 – 73GB
c0t1d0 – 147GB
c1t0d0 – 73GB
c1t1d0 – 147GB

Which is the secondary disk, the one you want to mirror to? Jumpstart doesn’t know or care. To you and me, its obviously going to be c1t0d0. However, if all four of these devices were the same size, which would make the best choice of a mirror disk? Most people would agree that mirroring across controllers makes the most sense, so it’d still be c1t0d0.

The ability to configure disksuite (SVM) mirroring of the root disk in a jumpstart profile was introduced in Solaris 9. Prior to that the only way you could mirror the disks during the system build was with a script you would put at /etc/rc2.d/S99firstboot (or some such name) that ran the disksuite commands, updated vfstab and rebooted the system on the first boot. This works fine, but you still need to figure out which disk to mirror to.

The begin script takes care of this issue. It takes an inventory of all drives detected by the kernel via the ${SI_DISKLIST} and ${SI_DISKSIZES} variables.

The following order of logic is used to select a mirror disk:

  • Is there only one disk of the same size besides the rootdevice? If so, select it.
  • If there are multiple disks matching the size of the selected root device, do any of them have the same target number but different controller number? If so, that’s what we want.
  • If there are multiple disks matching the size of the selected root device, but all the ones on other controllers have differing target numbers, pick the first one found on another controller.
  • If the only disks matching the size of the root device are on the same controller as the root device, pick the first one from that same controller.

Note About Configuring Disk Mirroring via Profile vs Mirroring At First Boot:

With Solaris 8 builds, we have no choice but to partition the root disk and install the OS to it, saving the mirroring step until the first boot of the new system. With Solaris 9 and 10, we can set up the disk mirroring in the profile itself.

However, with Solaris 9, I have found that configuring mirroring at profile time rather than at first boot gives us a significant performance penalty when installing the OS. Installing Solaris 9 with all updated patches takes 4 hours when disk mirroring is configured in the profile. It takes only two hours when the mirroring is done at first boot. Solaris 10 is lightning fast (in comparison) with mirroring configured in the profile, so I have not had to try and get it to set up mirroring on first boot.

3. Which packages do you install?

Different versions of the OS contain different package cluster names, etc. Depending on the contents of the variable ${SI_OSNAME}, we write the appropriate package cluster list to the derived profile.

With all these items addressed, we can write out the profile!

Sample generated profile for Solaris 9:

install_type initial_install
system_type standalone
locale C
partitioning explicit
isa_bits 64
cluster SUNWCXall
<additional cluster/package add/remove commands here>
filesys mirror:d0 c0t0d0s0 c0t1d0s0 15120 / logging
filesys mirror:d10 c0t0d0s1 c0t1d0s1 10240 swap
filesys c0t0d0s2 all overlap
filesys mirror:d30 c0t0d0s3 c0t1d0s3 10240 /opt logging
filesys mirror:d40 c0t0d0s4 c0t1d0s4 10240 /var logging
filesys c0t0d0s5 free
filesys c0t1d0s5 free
metadb c0t0d0s7
metadb c0t1d0s7

Posted in Scripting, UNIX | Tagged , , , , , | Leave a comment

Google Chrome, you’re fired! (for now)

I’d been using Google Chrome for the last week or so. Very speedy browser, that is for sure! But some things still not working the way I’d like.

It doesn’t seem to want to display .jpg files. I think that’s why I can’t click on the rating buttons at Also, my collage from last night’s posting doesn’t display.

I’ll wait for the next version and give it another whirl. Back to Firefox 3.

Posted in Uncategorized | Tagged , , , | Leave a comment