Make Poverty History - 2005 - Abolissons la pauvreté
Paying the bills with my mad programming skills...
Today | RSS | RDF | Atom | Other


My buddy Jesse works for Google. He's also a local boy hailing from the city that rhymes with fun, Regina. He was also recently interviewed on the radio by CBC Saskatchewan. Check it out!

This is quite possibly the funniest thing I've seen all year:

Waterfall 2006
After years of being disparaged by some in the software development community, the waterfall process is back with a vengeance. You've always known a good waterfall-based process is the right way to develop software projects. Come to the Waterfall 2006 conference and see how a sequential development process can benefit your next project. Learn how slow, deliberate handoffs (with signatures!) between groups can slow the rate of change on any project so that development teams have more time to spend on anticipating user needs through big, upfront design.

Funny and sad at the same time, because I can think of dozens of people who wouldn't recognize that website as a joke :(

(H/T: Philip Hartman)

I took the website down last night for what I hoped was a three hour outage to upgrade everything on the server, but it turned into almost 24 hours because I am an idiot and have no idea what I am doing with computers or pretty much anything.

Watch this space if I get around to it for my guide to getting various things going on Fedora Core 4, tentatively titled "A big fucking waste of your time: Installing Apache, Java 5, and Tomcat 5 on Fedora Core 4".

As always, let me know if you notice anything weird with the site. If there's a problem, it's probably my fault.

If an item in your XML feed is a link to your website article or blog entry, I don't read it - it's that simple.

I don't know about anyone else, but there are lots of times when I read the contents of my RSS aggregator offline. My favourite thing to do when I'm on the plane is catching up on what's happening out there in Java and Internet land that I simply haven't had time to check out during the week. It's a great way to catch up and take advantage of some downtime. The problem is that so many posts from JavaBlogs and others are simply titles with a link to the actual entry, which means I can't read them - which means I don't read them!

I'm new to RSS-aggregator-land, but since I have a Windows XP laptop that I am mandated to use, the best RSS reader for me that I’ve found so far is SharpReader, so that's what I've been using. It serves my purposes okay, especially for the price. I don't know if there are any RSS aggregators out there that will follow all the links there and download them for offline reading, so maybe it's just the client I'm using. With that being said, forget about the client side of things for a moment - just having a "headlines" XML feed makes no sense when folks are terrible at coming up with headlines. For a newspaper, sure, you can usually get the gist of it from the headline, but for blogs "my thoughts on the economy" usually doesn’t cut it. I don't have a problem with summaries - I can at least understand where you're going with it and mark it for later online viewing (or like many you've got revenue models to meet and need folks to see your advertisements), but I just don't have time to do that with the millions of web sites out there that don't include any content in their feeds.

Wil Wheaton has seen the light, so why haven't you?

I made the switch to Linux full-time on all my machines at home last summer. The biggest thing that I had to get used to is where all the files go. Like the early days of Windows, apps in Linux seem to place files wherever they damned-well please. Nowadays in Windows most files obey certain conventions (installed in C:\Program Files for instance), but I honestly still haven't gotten the hang of whatever implicit system people seem to follow. Following up on my earlier post, the good news is that with Red Carpet I don't have to worry too much about that anymore. The even better news is that there is that in conjunction with Open Carpet, there is a repository for Java-based software as well - jpackage.org! For me, I'd rather make installs of everything as automatic as possible rather than fiddle around all over the hard drive, so he's what I did to get it going on my newly-formatted Fedora Core 1 web server:

Installing Java

Grab the latest nosource rpm from jpackage.org for the install you are looking for. For me, I'm looking to use the 1.4.2 install of Java from Sun, but you might have other preferences. In my case, this was the file I was looking for:

java-1.4.2-sun-1.4.2.04-1jpp.nosrc.rpm

There is no automatic way to get this file, because contrary to what some might think, Java's licence means that distributing binary versions is a hassle. We'll have to make a binary RPM for ourselves to install. This is easy enough, just go to Sun and download the binary, which in my case was:

j2sdk-1_4_2_04-linux-i586.bin

At this point, I should mention that while there are definitely binary versions of Java you can go out and install, jpackage.org's structure means that you had better do things their way, because all of their RPM's create a certain directory structure, so if you don't, you're on your own and things might not work. Trust me on this one, use jpackage.org as an "all or nothing" solution as much as you can, I've got hours of swearing ot prove it!

We'll use the two files we downloaded previously to build a binary install on our system. Keep in mind your versions might be different! First, install the no-source RPM:

[root]# rpm -i java-1.4.2-sun-1.4.2.04-1jpp.nosrc.rpm

If you get a warning about some folders not existing, go ahead and create them (/usr/src/redhat comes to mind as a likely culprit). You'll need to base your new RPM on the binary file you just downloaded, so make sure it's in the right spot:

[root]# cp j2sdk-1_4_2_04-linux-i586.bin /usr/src/redhat/SOURCES

Execute the following command:

[root]# rpmbuild -ba /usr/src/redhat/SPECS/java-1.4.2-sun.spec

If you don't have jpackage-utils installed and it asks for it, use Red Carpet to install it. It will take a long time to execute and when it's finished you'll see stuff like this:

Wrote: /usr/src/redhat/SRPMS/java-1.4.2-sun-1.4.2.04-1jpp.nosrc.rpmWrote: /usr/src/redhat/RPMS/i586/java-1.4.2-sun-1.4.2.04-1jpp.i586.rpmWrote: /usr/src/redhat/RPMS/i586/java-1.4.2-sun-devel-1.4.2.04-1jpp.i586.rpmWrote: /usr/src/redhat/RPMS/i586/java-1.4.2-sun-src-1.4.2.04-1jpp.i586.rpmWrote: /usr/src/redhat/RPMS/i586/java-1.4.2-sun-demo-1.4.2.04-1jpp.i586.rpmWrote: /usr/src/redhat/RPMS/i586/java-1.4.2-sun-plugin-1.4.2.04-1jpp.i586.rpmWrote: /usr/src/redhat/RPMS/i586/java-1.4.2-sun-fonts-1.4.2.04-1jpp.i586.rpmWrote: /usr/src/redhat/RPMS/i586/java-1.4.2-sun-alsa-1.4.2.04-1jpp.i586.rpmWrote: /usr/src/redhat/RPMS/i586/java-1.4.2-sun-jdbc-1.4.2.04-1jpp.i586.rpm

Now you've got the RPM files you need to install Java using Red Carpet, so go and do it!

Installing Tomcat

I installed Tomcat 4 using Red Carpet and jpackage.org, but I ran into a few snags:

Unresolved dependencies:Installing tomcat4-0:4.1.29-3jpp[JPackage (all distros)]There are no installable providers of >=jaf-0:1.0.1[[Any]] for tomcat4-0:4.1.29-3jpp[JPackage (all distros)]There are no installable providers of >=javamail-0:1.3[[Any]] for tomcat4-0:4.1.29-3jpp[JPackage (all distros)]There are no installable providers of >=jta-0:1.0.1-0.a.1[[Any]] for tomcat4-0:4.1.29-3jpp[JPackage (all distros)]tomcat4-0:4.1.29-3jpp is scheduled to be installed, but this is not possible because of dependency problems.Marking this resolution attempt as invalid.

Looks like it's back to the creating-your-own-RPM drawing board for us, but luckily it's pretty much exactly the same process as before. Here's the condensed version:

[root]# cp jaf-1_0_2.zip /usr/src/redhat/SOURCES[root]# cp javamail-1_3_1.zip /usr/src/redhat/SOURCES[root]# cp jta-1_0_1B-classes.zip /usr/src/redhat/SOURCES[root]# rpm -i jaf-1.0.2-3jpp.nosrc.rpm[root]# rpm -i javamail-1.3.1-1jpp.nosrc.rpm[root]# rpm -i jta-1.0.1-0.b.3jpp.nosrc.rpm[root]# rpmbuild -ba /usr/src/redhat/SPECS/jaf.spec[root]# rpmbuild -ba /usr/src/redhat/SPECS/javamail.spec [root]# rpmbuild -ba /usr/src/redhat/SPECS/jta.spec --without javadoc

(All of the binary files above are available from their provider, in this case, on Sun's Java site)

Now your RPM's are ready to install with Red Carpet and your Tomcat install should go fine! In addition to the tomcat4 package, make sure you grab the tomcat4-admin-webapps package too, because I've got a feeling you'll eventually want to administer your new installation of Tomcat!

Installing Apache

Use Red Carpet to install the httpd package if you don't have it already - you're done!

Installing mod_jk2

Use Red Carpet to install mod_jk2 from jpackage.org and you're done!

Configuration

Getting Tomcat, Apache, and mod_jk2 to talk to one-another is the biggest trick of all. Even though I had done it all before, this time I couldn't get it going for some reason because I had to add some settings in httpd.conf that I didn't before. Rather than explain it all to you, I'll point you towards Diego's guide and you should find what you are looking for. Thanks a million, Diego, you saved me a lot of cursing! Once you go through that, that should be all the general customization you have to do.

Speaking of customization, now it's your turn! I've shown as much as I can right now, the rest is up to you. You'll have to do things like add the appropriate users in tomcat-users.xml and install the applications in Tomcat that you want to use. Also keep in mind that under this install Tomcat runs under a user called "tomcat4", so if that user doesn't have the right permissions, Tomcat might not be able to read the files you need it to read. Please feel free to e-mail me or leave a comment, I'd be more than happy to update this short guide if anybody has any questions or runs into problems.

Now, I know, these steps might not have been shorter than downloading and installing all the files yourself, but with jpackage.org and Red Carpet you gain a few things that I think are important:

  • I don't have to worry about where things are installed - Red Carpet takes care of that for me
  • Tomcat runs under it's own user (not root, which is good!) and I didn't have to do anything to create it/get it running
  • Tomcat runs as a service, which makes configuring when it starts and stops really easy, especially for bootup
  • I can upgrade Apache, Tomcat, and mod_jk2 with a click of a button using Red Carpet - who knows, maybe if IBM and Sun can get together, I can add Java to that list as well!
It might take a little longer (and then again, it might not), but I think it's worth it!

Another great part of using Linux - installing Ximian's Red Carpet software is free and easy - just execute the following command at the prompt after you've downloaded the necessary software for your platform:

[root]# rpm -Uvh red-carpet-2.2.2-0.ximian.7.0.i386.rpm rcd-2.0.2-0.ximian.7.11.i386.rpmrug-2.0.2-0.ximian.7.1.i386.rpm

Once you've done that, it's simple to launch the X program:

[root]# red-carpet

Better yet, use a command-line version:

[root]# rug

I'll leave the use of the program to you, but it's even more useful if you add the Open Carpet service to your list of service inside Red Carpet. I've been using Red Carpet for almost a year now and I gotta say I'm really impressed. There really isn't any equivalent to it in the Windows world. Not only can you get security updates, but you can also pick and choose from thousands of apps out there that have been released free-of-charge. Almost all of the Java development apps that I use on a daily basis are available using Red Carpet and Open Carpet together - try it today!

I finished reading Struts in Action a few days ago and I'm very glad I did. A colleague had picked it up at work but moved on to another project before he could put it to use so I finally brought it home. I would consider myself pretty much a Struts 1.0 expert, but I really don't have much experience with any of the 1.1 technology or really anything recent in Jakarta-land, although I've been reading and keeping up on it as much as I can. This book did a great job of keeping 1.0 and 1.1 things separate and clearly showing what the differences are. I am not so sure how good a how-to book this one is for those completely unfamiliar with Struts, or at least web frameworks, but my gut feeling is that it would be a good one. I might be biased, as well, because Ted Husted and his website got me out of a lot of jams when I was learning Struts for the first time ;)