Older blog entries for cwinters (starting at number 40)

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.

Yesterday was my last day at intes.net, and while things are not entirely finished, it was a good stopping point. Christian was here over the last week and we worked on documentation for OpenInteract and fixed a few bugs. The installer is (IMO) kick-ass right now -- 10 minutes after downloading OpenInteract, you can install it (normal Perl stuff), create a base installation, create a website, configure the website, import all the initial data and templates, setup the Apache virtual hosts and have a fully functioning website! (Well, for first-time users it might take a little longer :)

Still, I did this for the guys at intes.net and everything worked just like it was supposed to work. Very cool. They're building a new web application development team centered around this and other work, and I think they can make it work. The company is also skewing much younger now, which is kind of funny. The last four or five people hired have all been around 20 - 23. Makes the company's founders look like geezers...

We settled once and for all that the core OpenInteract framework will be Artistic/GPL -- our sister company raised some concerns (legal and otherwise), but we settled them. So I can still work on this thing. But it's at a point now where other folks can take it and run in new directions. Nice feeling.

So, new job starts on Monday. I should have left at least a couple days breathing room between the two...

I can spill the beans now: like many other folks on here, I'm onto a new job. This was an extremely difficult decision, since I was one of the founders of the company I'm leaving. But working at home, by myself, all the time, proved too much to bear in many ways.

Concidentally, with the recent notes on here from graydon about taking things easier (on ourselves, the earth, etc.), one of my primary motivations is taking things easier. For me, working at home really taxed my ability to separate the work and non-work areas of my life, and the balance between the two (never right to begin with) got seriously out of whack. It got so that I felt guilty doing something (even nothing) for myself -- just watching TV or going out camping for a weekend or whatever. This is no state to be in, particularly for someone who just got married.

I recognize that I work in an industry -- programming, web development -- that relies on people enjoying their jobs and not putting up much of a fuss over working 50-60-70 hour weeks on a regular basis. Occasionally, this is unavoidable, but IMO it shouldn't be the norm. Work should be a means to an end, not the end. IME Europeans seem to have a better attitude about this than Americans do, but that's neither here nor there.

Of course, another huge motivation for taking this job is working closely with other technical people. I recently learned what it's like to work closely with someone over an extended period of time, and I don't know that I can ever go back. Even if your comrades aren't at the same level as you, having someone around to interact with raises everything to another level. (Plus might get lucky and enter into a teching relationship as either the mentor or the student.) This might be a failing on my part, this relying on face-to-face contact for certain things. But I'm not trying to generalize my experience to everyone else, either :)

That said, I'm interested to hear from people who work by themselves all the time how they deal with it, or if they even have anything to deal with. It might be that my previous experience working with someone was a fluke because he's an exceptional person, and that I'll hate working with people and want to go back to working at home in my sweatpants with only the cats to talk to. We'll see.

31 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!