November 11, 2008

Package Manager Fail (followup)

Uninstalling KDE beta packages...

Continue reading "Package Manager Fail (followup)"

Posted by dberger at 10:39 AM | Comments (0)

November 10, 2008

Ubuntu 8 - First Impressions

I needed a Linux box at work for some testing, and while I've been a "RedHat guy" since waaay back (RedHat 4.2), I decided to give Ubuntu a whirl. I downloaded the 8.04 64bit desktop ISO, burned a CD, and booted the installer.

A short while later, I had a mostly working machine - made more difficult only by the lack of in-built support for the Intel on-board NIC, which required me to grab drivers from sourceforge, and use a USB stick to get the machine on-line. (I say only knowing full well that such a situation would be a "dead end" for a normal user, even if they had a second machine from which they could google and download said drivers.)

Continue reading "Ubuntu 8 - First Impressions"

Posted by dberger at 9:52 PM | Comments (0)

November 7, 2008

package manager fail


$ uname -a
Darwin ... 9.5.0 Darwin Kernel Version 9.5.0: Wed Sep 3 11:29:43 PDT 2008; root:xnu-1228.7.58~1/RELEASE_I386 i386

$ man repair_packages
...
BUGS
repair_packages does not verify file contents or restore missing files;
It can only verify or repair filesystem permissions.

$ man pkgutil
...
BUGS
Package dependency analysis and reference counting are not yet available,
hence there is no --uninstall command yet.

Come on... I mean really.

FAIL.

Posted by dberger at 10:07 AM | Comments (0)

November 2, 2008

When Things That Should be Simple, Aren't...

Dawnise reads lots of craft sites - and quite often these sites have tutorials that she wants to preserve. In Windows, it was simple - drag-select the text and images in Firefox, copy, paste into Word (or WordPad, or some other rich text editor) and viola, the document, with formatting and images, in an offline form she could archive.

Turns out that on the Mac, this is what we in the business call a "pain in the ass."

Continue reading "When Things That Should be Simple, Aren't..."

Posted by dberger at 10:42 AM | Comments (1)

September 20, 2008

Crash Plan

On and off over the past year or so I've been looking for an off-site backup solution. I had looked into Mozy, but gave up on it when I discovered they didn't support backing up remove drives in the windows client (a feature they seem to have removed in the Mac client as well). I briefly looked at JungleDisk before stumbling on CrashPlan, a peer-to-peer solution that doesn't scale in cost with the amount of data to be backed up.

Continue reading "Crash Plan"

Posted by dberger at 4:18 PM | Comments (0)

August 31, 2008

Linux + netfilter FTW!

I have a Motorola WPS870G 802.11g print server that's served me well for several years. Unlike most wireless print servers available, it's got a parallel port, which means it talks to my trusty old HP LaserJet 1100A.

Trouble is, when we got our NAS a while back, I enabled Jumbo Frames for better perf and discovered that the network stack on said print server barfs in the face of jumbo frames. This afternoon, wanting to print something, I decided I was going to fix this.

A bit of goggling later, and I found another reason to love and respect iptables (I first learned to fear it when Titus and I wrote a netfilter plugin to do TCP socket migration whist in grad school):

$ sudo /sbin/iptables -t mangle -A OUTPUT -p tcp --tcp-flags SYN,RST SYN -d 192.168.0.5 -j TCPMSS --set-mss 1460

Viola.

Now if only someone could tell me how to do that under OS X I could enable Jumbo Frames on Nise's mac, and make Time Machine backups way lots faster...

Posted by dberger at 2:29 PM | Comments (0)

August 26, 2008

So frustrating...

I've been working on porting a sizable body of existing code to OS X of late, and the last week has been incredibly frustrating.

I've discovered that OS X (10.5.4) doesn't correctly support poll(2) on fifo's, and also doesn't support aio_read/aio_write to sockets, and doesn't document either limitation anywhere aside from the kernel source.

The poll issue was easy enough to work around, once I wasted time figuring out it didn't work, but the aio one looks to be harder.

And to add insult to injury, the misbehavior in poll goes against the POSIX spec, which says "The poll() function shall support regular files, terminal and pseudo-terminal devices, FIFOs, pipes, sockets and...") and the Apple man page is just plain wrong about aio_write/aio_read - the enqueue call for aio operations against a socket return EINVAL - but none of the three conditions listed on the man page are the cause.

Posted by dberger at 6:11 PM | Comments (0)

June 20, 2008

Canon 450D + RAW == Pain

It seems that buying a new (as in recently released) camera and shooting RAW is asking for pain. I played with Bibble for a few minutes (it works, but I'm not in love with the UI yet) and LightZone (it doesn't support the 450D yet) before deciding to look into geting UFRaw working.

The end result is that I pulled the UFRaw source from CVS, built it, and viola, no more pink photos. For any in the same boat, here's an SRPM (842k) I run 64bit Fedora, so I figured distributing the packaged source would be better than. (If your distro doesn't use RPM, you might try something like alien.)

For the nitty-gritty, read on past the break.

Continue reading "Canon 450D + RAW == Pain"

Posted by dberger at 7:04 PM | Comments (1)

March 23, 2008

A Tale of Two Upgrades

The parts I ordered to upgrade my home machine arrived Friday - a new Motherboard, CPU, Video Card, and 4GB of DDR2-1066 RAM.

As of today, the machine seems significantly happier (and more stable) - the most conclusive evidence is that the machine is no longer reporting interrupt errors. Woo hoo.

The interesting bit is how the two operating systems (Fedora Linux and Windows XP) dealt with having their entire world ripped out from under them...

Continue reading "A Tale of Two Upgrades"

Posted by dberger at 1:58 PM | Comments (1)

March 19, 2008

Score One for Time Machine

Backups aren't a new idea - and while the cynic in me says that "all" Time Machine is is a fancy interface on top of some old ideas (like rdiff-backup), I have to hand it to Apple.

It works.

Once you get around the silly-arsed restrictions, that is.

Continue reading "Score One for Time Machine"

Posted by dberger at 8:07 PM | Comments (0)

March 14, 2008

The Right Tools Make All The Difference

We're a Windows shop at work - and this is the first time in my career that I've done any real development under Windows.

I'd heard people rave about Visual Studio, and after nearly two years - please, god, give me emacs, make and gdb...

Continue reading "The Right Tools Make All The Difference"

Posted by dberger at 1:40 PM | Comments (0)

February 8, 2008

Waiting for a Shoe to Drop

After over a week of daily "hardware hiccups," I found some mail threads suggesting that the reason my hard disks were mysteriously vanishing was related to APIC I/O, so I added the "noapic" option to my boot flags and crossed my fingers.

Three days later, and the machine hasn't hiccuped once.

Andrew Morton thinks that apic handling is pretty broken, has been for a while, and isn't likely to get better (no motivation to find the problem as there exists an easy workaround).

I'd really like this to be the answer... 'cause then I could bitch about how software (even linux) sucks, and not go buy new hardware.

Posted by dberger at 10:23 AM | Comments (0)

January 30, 2008

Software Sucks

Every time Dawnise expands the scope of what she wants to do with her computer, I'm confronted with a harsh reminder of how badly software sucks.

Two recent examples.

Continue reading "Software Sucks"

Posted by dberger at 8:11 PM | Comments (3)

June 15, 2007

Develops on Windows, in C++, for Windows: A Year In Review

A number of friends and former colleagues - who were surprised that I took a job developing on Windows (not as surprised as I was, I assure you) have asked, essentially, "well, what's it like?"

The executive summary is "not as bad as I feared, but I won't be giving up linux any time soon."

Read on for more.

Continue reading "Develops on Windows, in C++, for Windows: A Year In Review"

Posted by dberger at 8:59 AM | Comments (1)

April 30, 2007

More Power

Insert manly grunting noises here.

Continue reading "More Power"

Posted by dberger at 8:40 PM | Comments (0)

February 9, 2007

Enso Launcher

Stumbled on Enso. People are calling it Quicksilver for Windows.

I already hate the fact that I can't re-map their key choice (caps lock) and I really dislike the fact that there's no way to make the sticky interface (caps-lock to start, type, caps-lock again to finish) the default. You can do it with a rather awkward key sequence, but I *always* want that behavior.

And a couple of guys telling me how my UI should work reminds me way too much of Apple, thanks.

But give it a try - you might love it.

Posted by dberger at 2:06 PM | Comments (0)

January 15, 2007

Please, Tell Me You're Joking

A handful of years ago, a friend of mine who was working at Microsoft on DirectSound and I had a conversation about the futility of DRM and content protection.

My basic argument - which he didn't disagree with - was that at some point you have to convert the digital signal back into analog so a human can consume it - and at that point, your scheme falls apart (the so-called Analog Hole).

He asserted that Microsoft's desire was to push this hole as close to the rendering device (speakers, monitor) as physically possible, and thereby make it as difficult as possible to exploit the hole.

I was incredulous - I mean, how do you obsolete speakers? And why? What value does it add to the consumer? I shook my head - not disbelieving that Microsoft would think that way, but disbelieving that they'd ever go anywhere with this scatter-brained notion.

I was wrong.

Peter Gutmann has written a great little piece on the cost of the content protection in Vista - and reading it makes me wanna cry. Unlike previous ass-backwards moves by the 800lb Gorilla of the software world, which I was content to ignore living in my little open source paradise, this one fundamentally changes the economics of hardware development. The collateral damage, in the form of increased end-user costs and complexity - and the necessarily correlated reduction in reliability - affect the entire PC market.

Posted by dberger at 2:03 PM | Comments (0)

January 5, 2007

Good Agile, Bad Agile

I don't know Steve Yegge, but a former colleague sent me a recent post on his blog entitled Good Agile, Bad Agile.

I don't have nearly as much experience with capital-A-Agile as he reports, mostly cause it set off my "won't work for me" alarm pretty early, so I was more interested in his description of the process at Google. Has a lot in common with my current gig, including the Noogler Fifteen (read the post).

Posted by dberger at 11:44 AM | Comments (0)

December 28, 2006

MTP Sucks (Follow Up)

Discovered two things in trying to re-sync my Zen today:

1. RealPlayer 10.5's MTP support seems to be much worse than the previous version.
2. WinAmp 5.32's MTP plugin seems to suck lots less than the last version I tried.

Winamp has been happily transferring tracks for a couple hours.

Posted by dberger at 3:35 PM | Comments (0)

God I Hate MTP

I know, I rant about this every time I sync my Zen Touch, but jeezy-creezy does MTP suck. RealPlayer does the best job of any app I've found trying to do a "sync", but the transfer rate to the device seems to be inversely proportional to the number of tracks transferred.

Today my luck is even worse, I can only transfer a hundred or so tracks at an attempt before the transfer rate drops through the floor.

Calgone, take me away.

Posted by dberger at 11:18 AM | Comments (0)

November 19, 2006

samba and firestarter

Now that I can't completely ignore Windows (working for a Windows shop and all) I've been trying, on and off, for a couple weeks to get samba working happily with firestarter.

I found the magic tonight.

[21:29:09] dberger@rage : ~
1136 $ sudo cat /etc/firestarter/user-pre
$MPB ip_conntrack_netbios_ns 2> /dev/null

Oh, and:

[21:33:23] dberger@rage : ~
1142 $ grep hosts /etc/nsswitch.conf 
#hosts:     db files nisplus nis dns
hosts:      files dns wins

works great, provided you also start the winbind service

Posted by dberger at 9:25 PM | Comments (0)

November 8, 2006

My Resolve Is Weakening

The more I think about having a boat-load of reliable disk space on the network, the more drawn I am to the idea. I haven't really gotten around to doing anything with the Linksys NSLU2 I bought - save for taking it apart and admiring the hardware design - and after looking at USB2/SATA enclosures (about $40 each for ones with reasonable cooling), I'm wondering if I should bother moving forward...

Continue reading "My Resolve Is Weakening"

Posted by dberger at 9:44 AM | Comments (0)

November 4, 2006

nspluginwrapper

This solves a long-standing problem of mine.

Glad I stumbled onto it.

Posted by dberger at 8:26 PM | Comments (0)

October 25, 2006

Bluetooth on Windows: Pain? Try Macintosh.

Several months ago, as an experiment, I paired my Treo with my Powerbook and played around with dial-up-networking. It took about15 minutes to get it working - most of that googling, downloading, and installing the right modem script.

Yesterday I decided to replicate the experiment on my Asus notebook, running Windows.

It took, let's just say, waayyy longer than 15 minutes.

Continue reading "Bluetooth on Windows: Pain? Try Macintosh."

Posted by dberger at 11:39 AM | Comments (0)

October 21, 2006

Greylisting Rocks

I remember reading the Greylisting White-paper whilst in Grad School and immediately loving it. It's a simple, elegant, and (based on the last 12 hours) very effective anti-spam technique.

Basically, you configure an MTA (mail transport agent, the things that route email around the Internet) to send back a transient delivery failure code on the first delivery attempt from an unknown sender. A well behaved MTA will reattempt delivery after a while, whereas many spammers simply see that as a delivery failure and give up. Once a sender has behaved correctly, they're added to an automatic whitelist for a few days, so subsequent messages aren't delayed.

Continue reading "Greylisting Rocks"

Posted by dberger at 12:11 PM | Comments (0)

October 16, 2006

I'm Carrying a Pager...

...for the first time since c. 1999, and I'm really not sure how I feel about that.

By design, we don't have an operations team as such - so the development team rotates responsibility for the live system. This is my first turn in the rotation since joining the team about 5 months ago. That's not to say that the rotation list is 5 months long - there was a grace period in there, but when I was asked this morning if I could focus on some stability work this week, taking the pager seemed to come with the territory.

Continue reading "I'm Carrying a Pager..."

Posted by dberger at 6:16 PM | Comments (0)

October 15, 2006

Reliable NAS on the Cheap?

I've been thinking about trying to move some of the data on my workstation onto a network-attached storage server of some kind. Among other things, it would simplify accessing key "stuff" from both Linux and Windows, and would mean that Dawnise's access to our photos and music doesn't live and die with my machine.

Continue reading "Reliable NAS on the Cheap?"

Posted by dberger at 9:29 AM | Comments (2)

October 7, 2006

Norton Anti-Virus Sucks

Since purchasing Dawnise's Notebook a little over a year ago, we'd been fighting an on-and-off battle with it not reliably resuming from suspend. Google revealed nothing, Dell tech support was useless, and we had just basically decided that suspend/resume was beyond it's capacity.

On it's one year anniversary, the included Norton Anti-Virus subscription expired. I uninstalled it and replaced it with AVG's free personal anti-virus offering, and suddenly, lo-and-behold, the machine has a near-perfect track record for resuming from suspend.

Conclusion: NAV sucks.

Posted by dberger at 3:02 PM | Comments (1)

September 12, 2006

Does Anyone At Microsoft Actually Use Windows?

That's a rhetorical question, I know they do (in fact, I know from talking to recent escapees, that most of them are still using XP and avoiding Vista, but that's a different story).

I'm rebuilding Dawnise's computer, and step 1 was backing up her old drive onto a spare HD I have here for just such a purpose. I found a tool called XXClone, and to make a long story short, I ended up needing to run that tool as the SYSTEM account so it could copy all the files on her drive, even the ones that neither my account nor Administrator had rights to read.

Continue reading "Does Anyone At Microsoft Actually Use Windows?"

Posted by dberger at 2:28 PM | Comments (1)

August 29, 2006

Cutting the Layer Cake

I discovered yesterday, to my horror, that under DOS (and it's Windows descendants) each application is responsible for doing what, in the POSIX world, is referred to as "globbing."

Continue reading "Cutting the Layer Cake"

Posted by dberger at 9:27 AM | Comments (1)

August 16, 2006

The Continuing Search for Quicksilver for Windows

Quicksilver is, hands down, the best Mac application I found during my stint with my Powerbook. It's powerful, beautiful, simple, and everything computing should be.

Unfortunately, what's it's not, is Windows.

I plunked down money for AppRocket, but it has a horrible run-away thread problem on my work machine that renders it useless, and the Candy Labs folks haven't answered any of my several emails for support. So screw 'em.

Continue reading "The Continuing Search for Quicksilver for Windows"

Posted by dberger at 2:02 PM | Comments (0)

August 15, 2006

External Validation is Always Good

I discovered, by accident, that the ACSAC paper that John Jones, Ravi, and I wrote, based on my thesis (PowerPoint slides), is being used by Mike Erlinger @ Mudd in his security course.

I'm stoked :)

Posted by dberger at 12:30 PM | Comments (0)

June 5, 2006

Observations on MTP

I decided to take the plunge and load the MTP-based 2.x firmware on my new Creative Zen Touch. The libmtp project seems to be doing a respectable job of implementing the protocol feature-set, and gnomad2 is a usable transfer tool.

Since gnomad2 doesn't support the sort of inclusion/exclusion patterns I had been using with rsync, I ended up using lndir (1) to create a mirror directory structure with symlinks to the actual mp3 files, and a simple shell loop to remove files from the exclude list (still in rsync format). I selected the toplevel, pressed transfer, and ignored the machine for most of the day. By late afternoon it had (finally) transferred all 6000-odd tracks to the device.

Continue reading "Observations on MTP"

Posted by dberger at 10:07 PM | Comments (0)

March 2, 2006

Step 0: Insure The Unit is Plugged-in

A colleague, who I consider generally bright, spent "all day" debugging a problem with a PHP script that was behaving strangely making LDAP calls.

"Did you make sure PHP was compiled with the LDAP module?" I asked.

"I'm way past that" was his response.

He described his troubleshooting steps, which seemed reasonable, so I returned to my office with a promise that I'd drop him an IM if I found anything interesting.

When I got there, I IM'd the guy who admins the server that the code was running on, asking him for an account with shell access. Sure enough, the php-ldap module wasn't installed.

There's a lesson here. Always check the simple things before you start digging. Once you've checked the simplest thing, check the next, and the next, and methodically proceed until you've found the problem. It may take a while - the problem may, in fact, be deep, but many problems aren't - and you've got a much better chance of finding what you're looking for with a plan.

Finding a needle in a haystack is simple - it just takes a long time. (Assuming you can't just torch the haystack and sift the ashes...)

Oh, the colleague? He gave up for the day moments before I made my discovery, so I'll have to wait 'till tomorrow to find out if I was right.

Posted by dberger at 8:22 PM | Comments (0)

February 23, 2006

Might be time for another run at Linux

I was reading the Fedora Core 5 release notes and noticed this:

Support for Broadcom 43xx wireless chipsets (http://bcm43xx.berlios.de/) has been included in the kernel.

Lack of support for the onboard WiFi chipset was one of the major hurdles to trying Linux on the hardware.

Seems that when FC5 comes out I might have to give it a whirl on my PB. I figure if MOL actually works, it might be just the thing. Of course, I suspect that power management under Linux won't be as good as under OS X (I love the fact that closing the lid - and reopening it later - does the right thing) and screen reconfiguration (similar - under OS X, when I attach or detach my external monitor at work, the screen magically reconfigures) will suck, but it might just be worth it...

Posted by dberger at 6:34 PM | Comments (0)

July 21, 2005

Patterns Patterns Everywhere

Late last year, before we moved, a colleague loaned me a copy of Organizational Patterns of Agile Software Development and suggested I read it.

It promptly got lost in a pile during our move into the house, and finally surfaced at the same time I found The Party's Over (also loaned to me, by a different colleague). I finished it on the ferry this morning.

Overall, I thought it had some gems in it. It's hard to judge a pattern book based on the "merit" of it's patterns - you don't (can't?) know if they "work" until you've applied them in a given situation - but many of the patterns enumerated in the text have a ring of truth to them.

Continue reading "Patterns Patterns Everywhere"

Posted by dberger at 8:59 AM | Comments (0)

July 12, 2005

Start at the beginning...

Talking about an "Agile" process is the current "in-thing" in many software circles, but finding someone who can offer a clear explanation of what an "Agile process" is has proven problematic.

So I went back to the source - the first (that I could find, at any rate) published paper that used the phrase "Agile Process": Agile software process and its experience.

It's an interesting read, if you can get past the choppy English. The author was a principal contributor at NEC for over a decade, and is essentially documenting the process they evolved over time in an effort to improve their quality, delivery predictability, and stabilize developers work-load characteristics.

If you're fortunate enough to have an ACM library account (I knew there was a reason I kept my alumni relationship with the University active), take a read.

Posted by dberger at 11:38 AM | Comments (0)

June 16, 2005

Code, Process, and Violent Monkeys

I remember reading about a study a few years back -- can't find it now for the life of me -- done with a group of monkeys. The short of it is that when any member of the population performed a specific action (like pressing a button), the whole of the population got negatively reinforced (that's psychology-speak for administering electric shocks). After a while, the population would stop performing the action - having associated the shock with the act. If a new monkey was introduced, it would inevitably try to perform the action - at which point all the other monkeys would persuade it not to (that's a polite way of saying they'd beat the snot out of the newcomer).

Over time, the whole of the original population was replaced with new subjects -- none of whom had ever actually been shocked, or seen what happened when someone pushed the button, but who had all tried to push the button and been roughed up for it.

Each newcomer would move to push the button, and the rest of the population -- monkeys that had no first hand experience getting negatively reinforced -- would move to stop them.

The conditioning was passed on across generations, in this case by administering pain. There's an oft-repeated story about a woman cutting the ends off a pot-roast - they do it because mom did it, mom did it because her mom did it,etc. Turns out, it's all because someone far enough back in the line didn't have a big enough oven (or roasting pan) ; it's the same concept - the "why" is lost, only the after-image survives.

Continue reading "Code, Process, and Violent Monkeys"

Posted by dberger at 10:04 PM | Comments (0)

May 26, 2005

Form an opinion, but don't make up your mind

I've been getting rather frustrated at work lately when I run into people who've made up their minds on a technical question before, it seems, they've gathered and analyzed sufficient data. Worse is when it comes out later that they've made their decisions not on knowledge, but on assumptions that could easily be demonstrated to be incorrect.

A hallmark of a good engineer is that when confronted with a problem, they immediately start to mentally solve it - making assumptions along the way. With more experience the time between hearing about a problem and having the rough draft of a solution decreases; previous similar solutions are dusted off, shaved to fit the new situation, and mentally whipped into shape.

An equally critical hallmark is that they not marry themselves to the assumptions and solution that they reached while the problem was still being described.

Good engineers re-use patterns heavily - eschewing reinvention in favor of adopting proven solutions - saving innovation for where it counts.

Continue reading "Form an opinion, but don't make up your mind"

Posted by dberger at 5:23 PM | Comments (0)

May 20, 2005

How would a "normal" Mac user handle this?

I upgraded my powerbook (yes, the one I've given up on - I still haven't found a suitable Dell to replace it with) to OS X 10.4 yesterday. Everything was fine yesterday and this morning, 'till suddenly the VPN software we use stopped working.

It complained that it's service wasn't started, so rather than trying to figure out how to restart and reload it's kernel extension, I rebooted (gracefully) to restart it.

When I logged back in, any app I tried to launch (even the terminal) crashed, immediately. And then the Apple Crash notifier crashed. And then Finder crashed.

Lather, rinse, repeat.

I was screwed.

Continue reading "How would a "normal" Mac user handle this?"

Posted by dberger at 2:40 PM | Comments (1)

May 19, 2005

All it took was $130 and a 6 month wait...

Non geeks should cover up their heads right about now...

[16:00:46] dberger@prova : ~
502 $ /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Commands/java -version
java version "1.5.0_02"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_02-56)
Java HotSpot(TM) Client VM (build 1.5.0_02-36, mixed mode, sharing)
[16:01:12] dberger@prova : ~
503 $ uname -a
Darwin prova.local 8.1.0 Darwin Kernel Version 8.1.0: Tue May 10 18:16:08 PDT 2005; \\
     root:xnu-792.1.5.obj~4/RELEASE_PPC Power Macintosh powerpc

Posted by dberger at 4:01 PM | Comments (0)

April 14, 2005

This is what I wanna be when I grow up...

I was telling a colleague about an article I read in FastCompany in the late 90's about the shuttle software group.

I made the mistake of reading the first few paragraphs:

As the 120-ton space shuttle sits surrounded by almost 4 million pounds of rocket fuel, exhaling noxious fumes, visibly impatient to defy gravity, its on-board computers take command. Four identical machines, running identical software, pull information from thousands of sensors, make hundreds of milli-second decisions, vote on every decision, check with each other 250 times a second. A fifth computer, with different software, stands by to take control should the other four malfunction.

Continue reading "This is what I wanna be when I grow up..."

Posted by dberger at 5:01 PM | Comments (0)

March 27, 2005

Responsibility without Authority

I don't remember when, exactly, I realized it - but some time, a handful of years ago, I realized that a necessary but insufficient condition for being successful in any position is having authority over the things one has responsibility for.

It was hammered home this week, when a direct report gave notice that he's leaving the company.

I always considered this individual my peer, not my subordinate - he really shouldn't have been reporting to me, but it just worked out that way. I've really enjoyed working with him, and I'll miss his enthusiasm and optimism. And I hate to see smart people leave.

But what's really eating me up is the feeling that I let him down.

The grievances that led to his resignation were well known and legitimate. He and I had discussed them a number of times over the past 6 months, and I'd escalated a number of them to my manager and to the CTO. I'd talked to HR to try and work out some creative solutions - but ultimately, I failed to fix the problem, and an excellent engineer, and a damn good person, decided his best option was to abandon ship.

I think I know, in my logical mind, that I did everything I could - everything I had authority over; but it wasn't enough. I was responsible for getting roadblocks out of his way so he could succeed, and I wasn't able to.

What's even more disturbing is I can't say his complaints were baseless - or even wrong-headed - and he was complaining about some fairly fundamental dysfunctions in the organization. Not sure what that means, yet. But I have a sneaking suspicion when I figure it out, I'm not going to like it.

Posted by dberger at 10:03 PM | Comments (3)

March 17, 2005

A rose by any other name

I'm having this recurring issue with folks at work - there are at least two names associated with any given relevant concept - and the names chosen have incompatible semantics.

One guy in particular likes to try to side-step the issue by suggesting we call everything a "foob" (or some other meaningless name).

It's starting to really get on my nerves.

Language exists to communicate - and vocabulary exists, in a sense, to compress communication. Using the right word facilitates communication - it draws on common context and understanding to eliminate the need for a more detailed explanation.

By contrast, using the wrong word (or, equivalently, overloading the common-use meaning of a word) does the opposite - it sends different listeners off in different directions - impeding communication.

English is, to some degree, inherently imprecise. Often significant context required to disambiguate meaning, and even with context, it's not guaranteed that everyone draws the intended meaning from a statement. That means we're fighting an up-hill battle to begin with, there's no need to make it worse.

I don't quite know how I'm going to combat this - but I have to try, it's really getting under my skin. Most annoying of all is when two groups that are ostensibly working to solve the same or related problems use the same word to mean different things, and neither usage is consistant with the norm.

Posted by dberger at 6:48 PM | Comments (0)

February 25, 2005

It's the Software, Stupid

After 4 months trying to become a happy Mac user, I'm officially throwing in the towel on "my" powerbook. It's driving me insane, and I'm giving up and going back to intel/linux.

This morning I wrote an email, with my tail between my legs, thanking my VP for bending the rules and approving the powerbook purchase 4 months ago, and asking if I could give it to someone who would be better suited to it and get a Dell (the corporate standard) instead.

The last straws were the performance of Eclipse and the lack of availability of JDK 1.5 on OS X.

I hated writing that email for a number of reasons - not the least of which is that the PB hardware is nice. The form factor is almost unparalleled in the PC world (certainly Dell doesn't have anything that comes close) and the fit and finish, well - let's just say that Apple builds the BMW of the notebook world.

I've written before about some of the reasons the powerbook and OS X have annoyed me, so I won't rehash them here. There are a few things I'll miss, though.

Continue reading "It's the Software, Stupid"

Posted by dberger at 3:45 PM | Comments (0)

February 11, 2005

Interoperability

http://go.theregister.com/feed/2005/02/11/hakon_on_ms_interroperability/

Posted by dberger at 12:54 PM | Comments (0)

December 29, 2004

Hackers and Painters

Hrm, something about the title of the book and the name of this entry's category doesn't quite fit...

Oh well.

I finished Hackers and Painters today - Paul Graham's book of collected essays on software and life in general. It has some gems in it, but overall I wasn't terribly impressed.

In spots it reeked of someone drawing conclusions from a sample size of one (all projects/products/web applications are just like Viaweb). Oh, and I don't know how he could have plugged lisp as the end-all-be-all programming language one more time... In the interest of full disclosure - I've tried picking up lisp a few times, but I've never really "gotten it" - so clearly this sentiment is all sour grapes.

Don't get me wrong - some of the essays (mostly the ones that don't wax naively about how "in the future web software will eliminate the need for a well-defined software life-cycle) were really good, but overall, the book left a bit of a bad taste in my mouth.

Bookpool is selling the hardcover for $13 - which I'd say it's worth.

Posted by dberger at 9:52 PM | Comments (0)

December 21, 2004

Think Different, As Long as it's Like Us...

There's no shortage of articles attacking OS X (even Tog has weighed in), and I debated bothering to post this, but I've had this conversation too many times, with too many different people, so in the hopes that it prevents me from having to rehash it yet again, here goes...

I'm not a Mac person, in general. I've used previous versions of System on occasion, and always came away thinking "build a system any idiot can use, and only idiots will use it..."

When I joined Real I did an exhaustive search for a notebook that could compete with the 15" Powerbook in terms of power/form factor. It wasn't really surprising that I came up short - oh, and the "we only buy Dell" restriction sorta clinched it. (As an aside - I've got nothing against Dell in general, but their notebook designs are bimodal - either light and useless executive models, or big stompy machines that give you a permanent lean from carrying them on your shoulder.)

Anyway - OS X was getting generally positive reviews, and being built in large part on NeXTStep (which I really liked) I figured I couldn't go terribly wrong. So I took the plunge - and convinced Real to buy a 15" powerbook. After using it for a couple months, I've concluded that I wouldn't do it again.

Continue reading "Think Different, As Long as it's Like Us..."

Posted by dberger at 11:19 AM | Comments (0)

December 19, 2004

Books that make you go "hrm."

I picked up a copy of the O'Reilly Eclipse book. I've been toying with Eclipse for about a year and a half, and I've always felt like there was power hiding just under the surface of the functionality I've used. Watching Stu (a co-worker) use Eclipse reminds me how little code I get to write these days.

Anyway, back to the book, I have to give it a 3 out of 5 stars. It tried to cover a lot of ground, and was a useful overview of using Eclipse with various technologies (Ant, Struts, Tomcat, etc.). Unfortunately it could have covered more useful ground if it had been consistent in it's assumptions that the reader was versed in the non-Eclipse technologies and hadn't spent pages showing how to construct a JSP, or tweak a servlet deployment descriptor.

As an introductory overview it's pretty good, but if you've been using Eclipse for any length of time, I don't know that you'll find to much terribly new and interesting.

Posted by dberger at 9:58 AM | Comments (0)

December 13, 2004

All Work and No Play Cures Insomnia...

On the advice of a co-worker, I picked up and read Facts and Fallacies of Software Engineering, by Glass. It was a good book - written by an old software curmudgeon who's seen it all - several times. Makes me want some of my other books out of storage. 's been a long time since I've read Peopleware - and it's time for a refresher.

Also grabbed Joel on Software by Joel Spolsky. I'd read his blog on and off over the years - he was one of the first people I found who agreed with my fundamental dislike of the "let's re-write it" approach. The book (a collection of his columns) was a good read; occasionally Windows/thick client centric, but usually broadly applicable. If you've never read his rants, wander over to his site and sample a column or two.

Posted by dberger at 11:47 AM | Comments (0)