Older blog entries for cwinters (starting at number 36)

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.

agntdrake: The perl module you're looking for is XML::Simple. Very (!) easy to translate from a hashref of whatever (arrays, hashrefs, scalars) to XML and back again. The only slightly annoying thing is that it represents almost everything as XML name keys (<key name1="val" name2="val2">) versus the way you describe. It's all valid XML, but one is easier (IMO) to hand-edit than the other, which is a legit concern when you're using it for configuration files.

Making a trip down to DC tomorrow to visit the home office. Should be... interesting. Enough for now, more later.

Added some cool functionality to the package management program. Christian thought it was lame (not his words) that whenever you exported a package (to a .tar.gz dist file) it took all the files in the package directory. He said, why don't you use a MANIFEST file (just like perl modules) and the ExtUtils stuff for it?

Sure enough, ExtUtils::Manifest does exactly that -- creates MANIFEST files, reads them in and does checks (files in MANIFEST not in the fs, files in the fs not in MANIFEST) for you to ensure everything matches up. It even copies all the files into a separate directory of your choosing, making it easy to use something like Archive::Tar to create a distribution file (even on Win32 machines). How cool is that?

I did find a little annoyance about the module but was hesitan tto send it to Perl demigod Andreas Koenig just because I figured he had already thought of it (being a demigod and all). I turned this over for a bit, not wanting to look foolish, and sent it anyway. One of the cool things about this community is that most people won't bite your ass off if you're trying to be helpful and do sufficient research and testing before bothering them. Even the demigods.

For today's excitement: the hard drive in the machine storing our CVS repository crashed. At first I didn't know what was wrong, the machine wasn't responding to cvs or ssh but it was sending back pings. I called up the office and asked someone to take a look at it. He called me back two minutes later and said, "Well, I have some bad news...", instantly giving me that bad feeling in the pit of your stomach that you have when you do a 'rm -rf' on something and realize that the prompt is taking way too long to return.

Fortunately, the partition with CVS was recoverable and we promptly put it on a machine with access to the backup system. That could have been a really painful lesson -- really dodged a bullet.

I feel so special: my very own CPAN id: CWINTERS. Yay! And as my first task, I uploaded SPOPS to CPAN. (OpenInteract might be a day or three, still some SQL issues to deal with, but the package management system is looking good.)

Yes, I know it's silly to get excited over this stuff, but I can't help it. Even more exciting is the idea that I can get good enough for publishing modules to be an everyday thing. If you'd have told me a couple years ago that I'd be sending something to CPAN I'd have told you to go smoke some more.

dhd: Let me know if you want help with moving into a new place in Pittsburgh. (Seriously!) It's a great place to live!

Funny node on perlmonks, a site that's rapidly addicting itself to me: Mortal Kombat

When people say they are (or provide) 'the plumbing of the internet', I'd like to be there when they have to take a plunger to the thing because someone's been putting their food down the drain and it's been backing up in the stationary tub in the basement.

Even thought it has a lot of generalizations, The Tipping Point is one of the best books I read in a while. I love cross-disciplinary stuff like this that's still accessible to us non-geniuses who don't read Gödel, Escher, Bach while they're on the can with just a few minutes to kill...

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