Older blog entries for cwinters (starting at number 42)

Not to be preachy-pete, but I noticed a few people here talking about wrist pain. I know it's not universally applicable to every problem, but I'll put my two cents in for the Kinesis Ergo contoured keyboard. (That link goes directly to a frame -- lop off the page name for more info.)

I got this thing about nine months ago and have had little to no wrist pain since. It took about a week to get used to it, and I think it would be much more difficult (maybe impossible) if you're not a touch-typist. (But then you could argue that a coder not being a touch typist is like a carpenter not being good with a hammer.) Typing is one of the few things I learned in high school that I use every single day.

The keyboard is pricey compared to normal ones (around $250 for the Classic version), but considering the alternative it's worth every penny. It's also well-built -- my friend Christian has been using his for 4+ years and it still works great. He takes advantage of the macro and keymapping stuff of the keyboard as well.

One of the only difficult things is that once you get used to it going back to a normal keyboard is a bit of a chore -- takes about a half-hour for me, although I try to minimize it as much as possible. After I got a new job I took my keyboard to work with me every day to work on Java and brought it home to work on Perl. But I don't have to do this anymore since work just bought me one.

Wow, a decent article on Slashdot regarding the company/employee code ownership swamp. (It's decent reading at +2, anyway.) Joel Spolsky also has a good article on the related issue of NDAs and the like.

This sort of thing is quite scary. I've had two experiences with this, neither of them terrible but both with potential. Going into detail would probably be a bad thing, but let's just say the terms of the agreement were quite broad in saying who I could not work for after leaving the company.

The scary thing to me is that *people* actually write up these documents without thinking about how it might apply to them. One of the /. posters made the excellent point that lawyers would never sign an agreement which made their experience in a particular type of case law property of the firm under which they gained the experience. But these same lawyers seem to have no problem drawing up agreements for software developers which say, for instance, that all experience and knowledge learned regarding customer relation management or other broad topic is property of the company and the signee is strictly forbidden from working at a company which might employ that experience.

The thing they have on their side is that nobody wants to get involved with a lawsuit -- it's expensive and brands you forever as some sort of rabble-rouser. Quite the chilling effect....

In (mostly) fun news: rewriting the packaging system for OpenInteract to dump the GDBM stuff. Should have done this quite some time ago, but it's quite a bit of work. (So much that I should really be doing other things right now...)

Finally saw "Crouching Tiger, Hidden Dragon" this weekend. Some amazing scenes and scenery. Well worth it, altho it would have been nice at a better theater.

I posted a message about message queues in perl to clpm but no newsgroup response. A couple interesting items via email, but that's it. So the PerlMQ project now exists on sourceforge. Of course, there's nothing there yet, but there's a mailing list and the pressure for me to make sense of the pages of notes and many ideas I have running around right now :-)

I'm not sure how long I can continue to do consulting work in addition to real work and having a life (or trying, anyway). We're soon going to have to get heavy duty into design at real work and then a brief (2-3 week) blitzkrieg of stored procedure -> session bean (likely) translation so we can let it germinate for a bit and see what we've got. At least life is interesting...

Response so far is pretty decent to OpenInteract -- we got a couple of minor patches for SPOPS from one person and a potential porter for Postgres as well. Not bad for a little more than a week. (I was also psyched to see a handful of what I consider to be very smart Perl folks on the -dev list.)

I have a number of ideas (and a growing itch) for a generalized message queue system in Perl -- reading up on this in Java has given me lots of ideas. Surprisingly, there doesn't seem to be much out there. Message queues seem to solve a lot of common problems. But they're probably more complicated than I can imagine right now.

In work news, they agreed to let me release my minor Ant taskdef under a BSD license. And we're moving from a client-server (VB-MS SQL Server) system to an application server (EJB) environment. And I'm the most experienced Java programmer. And I just learned Java three months ago. Fun!

OpenInteract is now out there! Code is available on Sourceforge along with mailing lists, etc. Freshmeat page is coming soon, as is one for SPOPS. Both are also available via CPAN as well as in handy Bundle:: form.

It's at a very usable point now -- yes, there are bugs, but none of them are showstoppers and I had passed the point of diminishing returns quite some time ago. Someone else (preferably many someone elses) looking at the code would be a good thing. I think the code is quite decent -- I tried to be readable, although in some areas methods are too long and need to be refactored. And it really is a pretty cool product. We'll see.

jauderho: I feel your pain regarding LDAP. The idea that someone's name is essentially acting as the primary key sends shivers down my spine.

I love Perl: check out some cool stuff people are doing. The fact that Perl can be a glue for so many different things is (IMO) amazing.

Today was the demo that's been sucking up 12+ hour days for the last couple of weeks. Things went great -- we didn't have everything done, but everything that was there worked like it was supposed to. My boss and I created a nice (but ugly) hack: call a servlet with the right parameters; the parameters are passed to a command-line Win32 app which feeds them to a Crystal Reports engine and a report template which prints out the report to the default printer which has to be setup beforehand to pipe the output to ghostscript which saves the data to a file which is then sent directly to the browser.

U-G-L-Y you ain't got no alibi!

All of this could have been avoided if Crystal's engine wasn't so retarded. Closed-source sucks.

Anyway, we're using a number of open-source technologies (the previously mentioned JBoss, XMLC, and Tomcat) and the management (surprisingly) seemed very cool with this. Particularly when we told them that, in theory, the beans could be ported to a mega-expensive proprietary platform (read: Weblogic) if the client really wants.

So now we just see what happens and how much we'll start moving to Java + middleware from VB + client-server. I suspect that we can develop quickly enough (particularly with two or three more smart people) that the higher-ups would be astonished how much functionality we can replicate from the existing system within, say, six months.

Reading note: been going over Refactoring by Martin Fowler (et al). What a great book.

More soon on OpenInteract stuff, too. Things are hitting on all cylinders programming-wise right now. Nice feeling.

XMLC is working fine now. The error message I got was quite cryptic, but once I figured it out it wasn't so bad. Everything (Tomcat, JBoss, XMLC) was using its own XML parser, but the XMLC one was getting "buried" in the classpath. Once I put the Xerces parser sufficiently early in the cp, everything worked fine. (Frustrating, tho.)

It doesn't seem as if anyone on here is working on it, but Ant (in the Apache Jakarta project) is great! It's a pure Java replacement for make and is very easy to extend with new tasks. I was able to dope out the interface, create a new task (concatenating files/messages) and learn the basics of Java file IO in a relatively short time. (Hey, I hadn't had to deal directly with files yet!)

I recently rewrote box handling for OpenInteract -- much easier now and I implemented a standard box interface on a per-theme basis. I'll probably go back down to Washington for another training session in a couple of weeks.

And I've been at my current job long enough that I now have a looming deadline. Long days and nights await...

Work is picking up, in good and bad ways. Deadlines are nice to have because you can have something to shoot for, but they have some downsides as well.

Technology-wise, for now we're using JBoss as our EJB server, XMLC to compile HTML pages to DOM objects and Tomcat to serve everything up. It took some time for me to play around with the technology enough to decide what's good and what's bad, being new to Java and all. It didn't take long to figure out that JSPs seem to suck horribly -- I think I'm allergic to any solution that mixes actual code and HTML (including Embperl, etc.). I do wish there were a Template Toolkit for Java, tho.

Anyway, the bad part is that XMLC refuses to work consistently. It's probably something I'm doing ("It's not you, it's me.") but I can't get it to do the most basic things anymore. Complicating matters is the nutty Enhydra build process -- XMLC is still intertwined enough with Enhydra that you need the latter for the former. And the build process requires the cygwin tools on Win2000, my workstation (for now) and our target platform. Isn't Java supposed to solve these things? Hopefully they're moving over to Ant as a build tool rather than make so they can get rid of this silly requirement. I have no problem with make and company, but using appropriate tools helps people use your technology.

The nifty thing about XMLC is that it does a good job (IMO) of separating the presentation from the data layer and does so in a way that works perfectly with existing html tools. Traversing and manipulaing the DOM tree is kind of painful, but I feel comfortable in saying that the pain will at least diminish with practice. There's a tool (HTML Tree) that does something similar with Perl that I'm going to look into, just for kicks.

Fun OpenInteract stuff recently: installation goodies, lots of documentation, hierarchical "file" security (and the "file" can be either in the database or filesystem) and some other cool things. It's got a Sourceforge page now, but no CVS yet as things are still in flux with planning, etc. They're planning a big release at the end of January -- should be fun!

I am beat.

New job is working out pretty well. Java is frustrating sometimes because in some ways it doesn't have the flexibility of Perl, and because easy things aren't as easy, but overall it's pretty nifty. (I'm glad I don't do GUI development tho -- ick.) Need to get a Linux workstation in there somehow -- I think I've proved that I'm not a ding dong, so hopefully I can use the sane argument of productivity.

My sister is visiting for an undetermined amount of time -- she needs to get her life straightened out, and I'm trying to convince her to move up here to Pittsburgh. Not as many jobs as in DC, but it would (in many ways) be a clean break for her. Clean breaks are important sometimes.

Trying to do OpenInteract and SPOPS development after hours but I think I need to get in better physical shape first, or something. (See previous statement about being beat.) The folks at intes.net are planning to do a release, community building and all, sometime in January, which is cool. I went down there a week and a half ago for some training which seemed to go very well. They were stuck on something and blaming the software, when in fact they "discovered" that you can't use HUP to restart a mod_perl-enabled Apache process when you want it to re-read libraries. You need to blast those buggers away and start clean. (Very frustrating lesson for them, but that's how these lessons stick...)

The steering wheel in the car is shaking in a disturbing way. This equates to money. We've decided that we won't be getting a new car -- either an old one or fix the existing one. This makes practical sense but I must admit that I was looking forward to a new car. I've never owned a car before. But I suppose the rush wears off after a bit. (Unless you've got a cool convertible like Mr. Fancy Pants kuro5hin.)

ErikLevy: You should only need to logout and log back in to get changes made to /etc/profile. Try opening a new XTerm after you make the changes to see...

17 Nov 2000 (updated 17 Nov 2000 at 04:24 UTC) »

jmg: Heaven knows I reinvent the wheel as much as the next person, but there seems to be a pretty active project underway to replace CVS. See Subversion.

New job: going ok so far. I'm changing a ton of things at once: working in an office again (with more than a little typical hacker anti-poltical-correctness), commuting, learning about an entirely new realm of business problems, figuring out how to use Win 2000 instead of Linux (hopefully I'll be able to change this...), using an IDE for the first time, and getting the ropes of Java along with lots of its associated goop (EJB, JDBC, container this, entity bean that, blah blah). It's kind of interesting and I'm sure the Perl part of my brain will stay developed. But I already miss Perl a little.

33 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!