It actually crashed

Man, Linux actually crashed. My little Workrave window was about to come up telling me to take a break, and before it could be drawn by GTK, the whole computer hard-locked. That teaches me to run a development kernel (2.6.6-rc2) when there is a newer, stable release out.

Luckily I didn’t lose anything since I constantly save my work. But hard-locks are exactly why I switched away from Windows, so this was disheartening.

Once August rolls around I’ll upgrade my kernel to something more stable. crying

Spike in the geekiness curve

Just got back from Northampton today. Was able to do some work remotely but not as much as I wanted, so I’ve been working late into the night. Still much to do, but at least I got JavaMail working properly and am finally, finally, finally finalizing my form design with JSP/Servlets on the UAC project. In the meanwhile, in Noho I was able to use my notebook to put together new form designs to be plugged in later.

But in more interesting news (not much more interesting)…. Wow! Lots happened while I stayed out of touch with the major news websites. Eclipse 3.0 (including new native builds) is well-received. Mono 1.0 was released. Java 1.5 (or, ahem, 5) Beta was released. Looking Glass was open sourced. Apple’s OS X Tiger was previewed and is now being scrutinized by Mac lovers. Wow, wow, wow, wish I had more time to explore all this good stuff.

Man, Dashboard is what gdesklets should be. sad Once we have a solid X system that is actually 3D accelerated in Linux, then we’ll be able to have more fun on the desktop.

Spotlight seems very cool, but I think Gnome Storage will be better. This may be an armchair code pundit speaking, but I think Linux geeks know how to do searching better than Apple geeks. Spotlight’s integration with Finder will look nicer, but Gnome Storage will actually find me my files. wink

Argh, gonna lay off this blog for a few days ’till I can say work isn’t bogging me down.

Levels of abstraction

I think I must be doing the funkiest development on the planet right now. Connecting to a Debian Linux server running under VMWare Server under Windows 2000 Server as my test server, which is modeling the production server, a Redhat environment.

Locally, I’m connecting to this virtual Linux server via NFS, and plugging Eclipse right into the NFS exported directory, using uid/gid mapping to make sure permissions are okay.

Finally, running VMWare Workstation locally (for access to Dreamweaver/Photoshop) and connecting to the NFS mounted drive by connecting to the mount point on my local machine via SAMBA! That is, I have a mount point on my machine /mnt/server1 which maps to the IP of my server via NFS. And I made /mnt/server1 shareable via samba to my VMWare “Virtual Machine’s” IP address. So that means when I write a file from VMWare, it’s using the Windows SMB implementation which is interpreted by Linux’s SMB daemons, which are then sent over the Internet to my server using the NFS protocol and finally written to my server’s disk. All in milliseconds, no less.

Wow! That’s a lot of layers to peel off when something goes wrong. But so far, nothing has (this is very surprising for me).

MultiTail and syslogd’s heartbeat

Just wanted to post this here in case anyone else runs into this little quirky thing. A lot of the time running Linux you want to see your log files (like /var/log/messages), and so someone has been nice enough to code a gdesklet called MultiTail that sticks the output of your log files on your desktop. This is useful for me not only for monitoring server output (like tomcat, apache) but also for monitoring things like apcupsd (my UPS daemon) and even error messages coming from Gnome programs, etc.

But I started noticing this annoyance, that every few minutes I’d see an entry that went was just — MARK — show up in my log, which unnecessarily cluttered MultiTail. Well, you can actual get rid of that (which is just syslogd telling you he is still alive) in the following ways.

Why don’t things just work?

Nice follow-up to yesterday’s post. I’m frustrated with things not “just working.”

The light bulb for my torchiere light went out a couple days ago. Turns out it’s a weird bulb, so I had to buy it online (at topbulb.com), but then I stuck in the new bulb, and nothing turned on. Turns out the bulb didn’t die (though it seemed that way), the fucking light died!

Then I realized the recently-installed cheap CD changer still doesn’t play MP3 CDs properly. Better than before, but it still skips. And it can’t be a power issue anymore since it’s getting it direct from the battery. Grr. I hate stuff like that. I may just return the damn thing.

Oh yea, and Windows XP crashed while I was recording something off TV for Olivia. Nice. Luckily I rebooted and I think I only lost 2 minutes of commercials from the recording, so no harm there. But still.

On a final breakage note, yesterday I hit CTRL+ALT+BACKSPACE by accident went I meant to hit CTRL+ALT+DELETE. When running X, CTRL+ALT+BACKSPACE shuts down XFree86 entirely, if you don’t know (while CTRL+ALT+DELETE does nothing–I needed to send that command to my Windows server which I was VNC’ing into). Well, it turns out that somehow, by shutting down X at the wrong time, my Gnome panel’s clock applet wouldn’t start. Had to dig around the error message to find the solution, but in the end I had to copy my root account’s gconf entries for /apps/panel/profiles/default/ and then re-customize my gnome-panel. Havoc sure was right awhile ago when he said gconf can corrupt sometimes. I didn’t listen, and I had to rebuild my panel as a result. sad

Now I have to get to work. Let’s just hope things work while I work.

On keeping things

You know, my philosophy about buying things used to be, never buy high-end because you’ll always have to replace it/upgrade it within a few months. But now I’m starting to reject that whole idea entirely.

I mean, I’ve already posted on other sites about how new PDAs don’t impress me because I still use a Palm Vx and it does everything I need in a PDA, and then some. Everything I need. No, it doesn’t play seven or eight MP3s in its Flash memory. No, it doesn’t play video clips I record with the tiny video camera embedded in the back. No, it doesn’t connect to wireless internet access if hotspots are available.

Nope, all it does is keep track of my todo lists, download articles from AvantGo and download maps, directions and listings from Vindigo. I can also set reminders, create shopping lists, and play DopeWars. All in 8MB of RAM. Plus, it’s thin, it’s beautiful, and it’s made in the USA.

Now that computers keep getting faster and faster and most software is not proportionally taking advantage of it, I find it easier to say, “Okay, I’ll have this computer for a few years.” That’s a good thing. In retrospect, these last five years have moved so quickly that it really made us geeks spend a ton of cash. I mean, I’m on a 2.6Ghz machine with a gig of RAM. I never use more than 300MB of RAM unless I’m running VMWare (which I’ll admit, is often nowadays). My CPU never gets cranked unless I’m doing video processing. I mean, things aren’t as speedy as perhaps they should be (I/O being the bottleneck), but I haven’t felt my computer “lagging” in years.

As a side note to that, software needs to get smarter. At 2.6Ghz of raw power, my computer should be doing more for me automatically 🙂

300 lines of (careful) code later…

And I am chiseling away at this project. Coded the registration form in true MVC fashion. As I said to Olivia today, they don’t call it software engineering for nothing. I had to really plan this out properly and code the components with lots of reuse in mind. It’s paying off, slowly.

So anyway, I can see why my brother’s developers shy away from doing extensive error checking on their forms. It’s a pain in the ass. But a necessary one, I think. I really wish something like XForms were widely adopted so that us poor web developers could enforce constraints easily at the client level. I would do it with JavaScript except I really fucking hate JavaScript. It’s slow, clunky, and almost always makes your page look-n-feel unprofessional.

So, I said, fuck it, might as well take some OOP features of Java and code some reusable error handling for forms. I came up with a nice idea of using a HashMap that stores keys of the form element identifiers and passing that object to the JSP page through the RequestDispatcher/Session. Once my JSP page has it, it checks if there are errors, and if there are, it outputs the error message and also marks off asterisks next to invalid form elements.

This is probably the kind of thing Struts/FormBeans handles for you easily, but I’m doing it from scratch. All in the name of knowledge, I guess. Is the time I’m spending on this from scratch > the time it would take to learn the Struts framework/deal with the issues arising from the Struts framework? Who knows. But at least I’m learning more, so I guess that’s why it wins out.

Argh, I need sleep. I’m so pathetic. I disabled Workrave, and so I haven’t taken ANY breaks in the last 2 hours. sad

Busy days

Been working like crazy the last couple of days. Spending most of my time on the UAC project–coding all the great Java classes that will make the website run smoothly. Learning a lot more about MySQL (and Connector/J) in the meanwhile. In fact, yesterday in order to get up to speed I spent about two hours reading some relational database theory (stuff I had stupidly forgotten to review when I jumped into MySQL earlier this year, in a very practical way).

Yesterday, after finishing my Java work, I had the pleasure of setting up a Bugzilla for my brother’s web developers. I say pleasure because the Debian bugzilla package rocks and literally makes it an apt-get install bugzilla bugzilla-doc affair. From there I was able to customize it up the wazoo by editing /etc/bugzilla/localconfig and rerunning dpkg-reconfigure bugzilla. Ah, Debian. Makes things so easy.

Bugzilla is really nice when you play with it. I’ve been entering bug reports for my brother on and off as I browse his websites. 10 minutes ago I got bored so I added a bunch of Stephen Wright jokes to Bugzilla’s “quips” feature (displays a random quip on every bugzilla query). Hopefully that’ll keep my brother’s devs entertained as they try to face the growing steep of UI bugs and such.

Anyway, back to work. Just felt I was leaving this web page without love. More to come later, when I’m less under pressure.

NFS sucks

I started using NFS the other day because I realized I wanted to have transparent access to my server so that I could deploy Tomcat applications there easily (more easily than with FTP, SCP or CVS, at least). Well, it turns out NFS is complicated on its own. When I asked about NFS in #debian, someone told apt to tell me what NFS is. Quoth the bot: “NFS, or Not Fucking Secure: The Networked Filesystem from Sun.” Among the other replies in the room were that it “never fucking works,” or that “when it does, it works poorly at best.” If you care about stuff like this, read on…