Dave Johnson on open web technologies, social software and Java
Long story short: I ran into too many build failures during and after completion of my Gentoo Linux installation. I'm not sure if I have hardware problems or if Gentoo's support for my Athlon XP CPU is flakey or what, but I'm out of patience. I'm switching over to Debian.
After months of relatively trouble free operation, JRoller is straining against the load of 3980 users and heavy traffic. I adjusted some of JRoller's mod_jk2 settings today and restarted the server. It failed to start, so I reversed my settings change and tried again - still no luck. Unfortunately, I'm not going to be able to touch the system until tonight, after I get off work, take the kids to soccer practice, and to the end-of-season dinner. Sorry JRollers, I'm a soccer dad first and a JRoller admin second. Matt Schmidt may be able to do something after he gets out of class this afternoon.
Update - 11:30PM EST - JRoller is back up. JRoller's JIRA instance should be up shortly.
I'm replacing Redhat 9 Linux with Gentoo 2004.0 Linux on my old AMD Athlon 1600+ box tonight. So far, the process has gone very smoothly.
Update: Around the time that I wrote "the process has gone very smoothly" my install suddenly took a bad turn. I am in the bootstrapping part of the install and, every time I run the bootstrap script, the build fails with a compiler, assembler, or loader crash. Each time, it fails in a slighly different part of the process; once in gettext and once in ncurses. One of the error messages indicated a hardware problem and the guys on the #gentoo IRC channel say the same thing. Perhaps I have some faulty memory./p>
Another update: Turns out, I did have a bad memory module and I forgot to properly configure my swap partition. I removed the bad module, configured my swap partition, and the bootstrap build proceded without a hitch.
My latest re-installfest was a classic example of this phenomenon. I had told myself and even mentioned to my wife that I wouldn't do it. I would resist the urge to install Gentoo Linux. I had too way to many things to do, but late one night in a moment of weak geekness I burned a Gentoo install CD and it was all downhill from there. It took me a week and a half to get back where I started: a Linux box with Apache hooked up to Tomcat via JK2, MySQL Roller, and Gallery. Along the way I installed Gentoo three times, took out memory modules then put them back in, moved my CD drive from one IDE controller to another, installed Debian unstable, unstalled Debian testing, and fought and won a bloody battle with JK2. I gained nothing! I think need a therapist..
Once I had built JK2, I followed the JK2 documentation on the Jakarta website. I was able to get JK2 working, but I kept getting intermittent HTTP 500 errors from the server. I started looking for alternative ways to configure JK2. I found some very helpful instructions at Greenfield Research titled Tomcat-Apache using JK2 Connector. I followed those instructions and I haven't seen a 500 since.
I'm not exactly pleased with the open source Java IDE situation on MacOS. Eclipse 3.0 M8 works and connects to SourceForge CVS/SSH just fine, but it is slow, looks obnoxious, and it just crashed while I was editing a Java source file. I hope that, by the 3.0 release, Eclipse will be usable on MacOS. Next, I tried Netbeans.
Netbeans 3.6 seems fast, fits in with the MacOS GUI, and even recognized the SourceForge CVS/SSH configuration that Eclipse left behind, but... when I attemped to login to CVS, Netbeans showed me a stack-trace. I decided to try using a real cvs client instead of Netbeans built-in implementation. I used Fink to download the cvs command-line client, configured it, and confirmed that it works with SourceForge CVS/SSH by doing an update on the Roller CVS. I configured Netbeans to use the command-line cvs client, but no luck. Netbeans says "Permission denied (publickey,password,keyboard-interactive)." I have CVS_RSH set in my .bash_profile and in Netbeans CVS environment variables... is there some other trick?
Anybody had any luck connecting to SourceForge CVS/SSH with Netbeans on Mac OSX?
I picked up my new PowerBook on Wednesday. I bought one of the new 15" models with 1.5Ghz processor, 1.25GB RAM, and Apple Care. Apple provides a great out-of-box experience - everything is attractive, even the packaging, and well designed and everything just works - right off the bat. I was happy to find lots of cool software pre-installed, including, to my surprise, both vim and JDK 1.4.2. The system comes loaded up with cool Apple software including iPhoto, iDVD, iMovie, and GarageBand as well as 3rd party programs like the OmniWriter outliner and the Visio-like Omni Graffle diagrammer. Within an hour I had established a WIFI connection, mounted shared folders from my Windows box, and ssh'ed into my Gentoo Linux server. Very cool! I'm gushing now. Sorry about that. I haven't bought an off-the-shelf computer in about ten years and I've never bought a laptop. Normally, I build my own machines from el cheapo components, crappy cases, and noisy fans. This is a very different experience than that.
After getting comfortable with the UI and some of the pre-installed software, I started to download some of the same software that I use on Windows: Firefox 0.8, Thunderbird 0.3, Eclipse 3.0M8, Microsoft's Remote Desktop client, and Palm Desktop. I spent a short time with each of these applications; here are some nutshell reviews. Firefox seems functional, but I prefer the built-in browser Safari. Thunderbird also seems to work, but I could not figure out how to import my existing Thunderbird mail files from my Windows-box, so I guess I'm stuck with the built-in Mail.App. Eclipse 3.0 works, but the new M8 look-and-feel looks especially crummy on Mac OSX. Remove Desktop works well. Palm Desktop works well, but I only downloaded it so that I can get the Conduit Manager necessary to iSync my PalmOS-based PDA. Perhaps I need to try using IDEA instead of Eclipse and Microsoft Office/Entourage instead of Mail.App, but I'm not in the mood to spend more money right now. Plus, I missed the $249 IDEA sale by one day.
Last night, I tried some of the multi-media software. I plugged my digital camera into the USB port and iPhoto popped up. It imported my photos and I tried doing some rotations, cropping, and enhancements. It seems to provide more than adequate thumbnailing and photo management/organization features. I hooked up my digital camcorder and imported some video footage with iMovie but I haven't tried to compose a video yet or burn a DVD. iPhoto is no Photoshop and iMovie seems pretty rudimentary, but I didn't have to set any preferences or install any drivers to get my camera and camcoder hooked up. That has not been my experience with my home-built Windows and Linux machines.
That's all for now. I'll be blogging my Mac experiences as I go and I've sarted a new category just for that: /Main/General/MacOS.
Iñtërnâtiônàlizætiøn. Making Sam Ruby's suggested I18N test work in Roller required a code change and a configuration file change. First, the code change: I added the following line to force incoming form data to be parsed as UTF-8.
request.setCharacterEncoding("UTF-8");The config change: I updated my velocity.properties file to support UTF-8:
input.encoding=UTF-8 output.encoding=UTF-8 default.contentType=text/html; charset=utf-8
Unfortunately, this breaks comments as you will see if you try to leave a comment. I'm working on this now.
Update: Roller followed a linkback to Simon Brown's Iñtërnâtiônàlizætiøn post, and lookee there, linkbacks need work too.
Another update: I'm tracking this in JIRA as bug ROL-341. By the way, it appears that JIRA handles iñtërnâtiônàlizætiøn flawlessly.
Yet another update: Thanks to a suggestion from David Czarnecki, who literally wrote the book on Java Internationalization, comments are working on posts with I18N titles. I had to add URIEncoding="UTF-8" in the Tomcat Connector configured in server.xml:
<!-- Define a Coyote/JK2 AJP 1.3 Connector on port 10039 --> <Connector port="10039" enableLookups="false" redirectPort="10033" debug="0" protocol="AJP/1.3" URIEncoding="UTF-8" />
Google's new GMail Web mail application apparently looks and acts a lot like a desktop application as well. I haven't seen it yet, but take a look at what Rafe Colburn had to say about it:
Rafe Colburn Very slick. Most impressive though is that this is the first email client that I've used (maybe ever) that does something completely different with email than the dominant paradigm. I'm glad to see innovation of some kind happening on the email front [...].
And Aaron's Scwartz's take on it:
Maybe it shouldn't, but this troubles me. Everybody - and by everybody I mean enterprise software customers and product managers - seems to want Web applications to behave just like desktop applications. I don't like that, but perhaps I am just a lazy developer, spoiled by Swing, and yearning for sweet SWT. This leads me to two questions and these are not rhetorical questions. These are real questions and I do not know the answers to them.
First: is it possible to create a Web application that behaves just like the desktop application and is accessible to those who are differently-abled? Sure, you can create beautifully designed and aesthetically pleasing Web sites that are accessible, but can you create super-slick Web applications that behave just like desktop applications and are still accessible? Obviously, Google put a lot of effort into making Gmail behave like a desktop application and where did that get them? It got them on Mr. Accessibility's shit-list. See what I mean:
Mark Pilgrim: NOTE TO SERGEY BRIN: stop dressing yourself in drag, fire one of your PhDs, and use the money to buy yourself a cluestick. Then beat your developers with it until they start taking accessibility seriously. I don't want to read a single review of Gmail that doesn't contain the words 'discriminates against the blind'. This isn't rocket science, people. Try harder.
Second: assuming that it is possible to create a Web application that behaves just like a traditional desktop application and is accessible, does that mean it is a good thing to do so? Most people - and by most people I mean enterprise software customers - know how to use the Web. They know how to use My Yahoo, they know how to use Fidelity.com, and they expect Web applications to behave like Web applications - don't they?
We've been making some big improvements to the Roller Editor UI. It is not as slick as a desktop application and it is not exactly accessible, but it is a lot better than it used to be. Below is a screenshot and you can see a recent revision running on Matt Raible's demo site. Feedback is welcome.