The ebb and flow of personalized information whatever falls out of my brain on a given day.  
    Updated: 2/3/03; 10:48:17 AM.

 

Home

Click here to send an email to the editor of this weblog.
Email

Click to see the XML version of this web page.

General Interest

Macintouch
MacOS X Hints
Scripting News
Doc Searls
Hack the Planet
bOing bOing
Jonathon Delacour
Mac Net Journal
mac.scripting.com
SATN.org
2020 Hindsight
Flangy News
My Apple Menu
Dan Bricklin
Inspirational Technology
Yourish
Kris Amico
Sam Ruby
USS Clueless
Josh Lucas
Mark Paschal

Geekware

Apache XML
XML Protocols
XML 1.0 Spec
WSDL
xmlrpc.com
soapware.org
opml.org

Radio

Radio Userland
Cheat Sheet
Andy's Radio Resources
Frontier Scripting Tutorial
Matt's Book
DocServer
Radio Stories
RSS 0.92
RSS 0.91

 
 

Monday, February 3, 2003

More on Java exceptions

Bill de hÓra replies to my exception comments. His article has a lot of interesting details to think about, more so because of the external links:

A very interesting article by Bruce Eckel on Java and Checked Exceptions and notes by Robert Di Falco in this thread.



Comments ()
10:46:38 AM    

Sunday, February 2, 2003

Java exceptions don't have to be useless!

Bill de hÓra has started a very interesting thread in Exceptions considered pointless. Bill says:

Three rules of thumb are forming in my mind around exceptions:

  • don't swallow exceptions (with two exceptions)
  • avoid using exceptions
  • avoid inventing exceptions

The first many Java developers will understand. Rarely, you know an exception is not going to be thrown, but you have to catch it anyway, and sometimes you have to catch InterruptedException as part of normal program flow.

The last two are maybe controversial.

Although I understand where this feeling comes from, I disagree with the whole darned concept. Exceptions are one of the more powerful and well done refinements that C++ introduced to C. They allow us to enforce the idiom of one entry point, one return point unless things go badly wrong. When done well, they also allow method level determinism of what can and can not be dealt with, and for more advanced applications, turning a problem into a solution.

I agree completely with the comments by Bob McWhirter, where he says:

I truly think that the idiom of using String messages as parameters for an exception and the getMessage() method have contributed to the uselessness of many exceptions.
This is same darned problem people still have in the C++ world, and most of them have never figured it out. String based exceptions are completely useless unless you employ parsers at every level of the application (and they make internationalization nearly impossible). Java has further contributed to the problem by making exceptions have some sort of context (a stack trace for example) but has not allowed developers to easily construct one exception type from another and retain that context. Inexperienced (and seasoned) developers alike are liable to create new exception types at the drop of hat for reasons I've never been able to fathom.

Our solution to this problem has been a complex exception type (that builds its getMessage() string based on internal data, whatever that might be). We also override printStackTrace(), so that we can capture the original stack trace of the primary exception (when an exception is created from another exception). There is some overhead associated with this that we'd like to avoid, namely capturing stack trace data that we may not use, but as it turns out, we nearly always use it because getMessage() sticks the first line of the stack trace onto the end of the message data; and the nice thing is that we capture the data the first time we need it, minimizing the impact the next time around. My understanding is that 1.4.1 solves this particular problem, we shall have to see.

All of our exceptions (in one current 60K+ line application, we have three exception variants) descend from the complex exception. Unlike your typical Java application which has catch blocks from hell (or just passes on everything), we have the ability to make judgments based on the exception type (generally, we only catch one or two types at a given module level) and the semantic data within. Which leads to ...

Swallowing exceptions is not unusual at all. Consider anything which implements a try/catch/finally block. I certainly hope that you swallow all exceptions in the finally block, or else the original exception is going to get lost in the noise. Also, if you throw away rules of thumb two and three, you are going to have normal operations (hopefully rare), in which an exception is simply a way of communicating a normal error condition, so you'll swallow it and try something else based on the context information in the exception.

The single biggest problem with rich exceptions is that everything starts to bubble into them. You need to be careful to keep things well defined and when exceptions become too complicated, factor them back into an inheritance tree that everyone can live with.



Comments ()
1:58:04 AM    

Thursday, January 30, 2003

Crab Soup

If you are the delicate type, I'll warn you ahead of time; don't venture below. Animal kingdom does not have shots like this, that's for sure.

With that warning out of the way, I offer you Crab and Pipeline. Somehow, it reminds me of the phrase: "livin' in a world of hurt". (thanks Kurt!)



Comments ()
8:13:07 PM    

Clearing the stop bit...

Sometimes I guess I need a kick in the rear end to get things onto the weblog. This week, it wasn't really my fault. I was all set to put up the previous story about Jon and the family at Magic Mountain on Sunday when the vomiting began.

First it was Jonathan. Every twenty to sixty minutes, for hours. We tried Pepto a couple times but that wasn't staying down any longer than anything else. We (mostly Sarah) finally got him calmed down enough to get to sleep and first thing in the morning, Stephen joined in while Jon moved back into full rejection mode. By Monday evening when I got home from work, Adam was part of the crowd. We had a pack of sick kids, so I worked from home on Tuesday where we had a few interesting incidents before Sarah came home to rescue us all.

By Wednesday (yesterday) morning, things had more or less settled down, but Adam and Jonathan were sore and wrung out from stomach gymnastics, so they stayed home again. Adam ended up having his seventeenth birthday while feeling pretty blah. He was happy non the less when we talked just before he went to bed; he'd gotten his present two weeks earlier (we are insane, we bought him a car; then again we are also tired of being a chauffeur service, and he wants to work part time).

So anyway, a friend sent me something funny today that I wanted to post. To do that, I had to clear the stop bit, and get all this stuff out of queue so that I could move on.



Comments ()
7:22:23 PM    

Coaster Crazy

I believe that I've mentioned before that my family in crazy about roller coasters, especially Stephen.

On Sunday, they outdid themselves. I knew that Steve was a member of American Coasters Network (ACN), but now I've learned that we have added a family membership in American Coaster Enthusiasts (ACE) as well. Sarah took the two younger boys to Magic Mountain and they joined up with a bunch of fellow ACE members.

Apparently, some of the kids were filming Point of View (POV) movies during the rides. Somehow, someone talked Jonathan into doing a POV filming of Goliath Jr. (he's still just six so he can get on) which he did. From what I've heard (we still don't have the movie), it's a little shaky, and sometimes dark as the camera points down, but it works. Later in the day, Jonathan was in the first car on Ninja with an ACE member who was filming a Point of View (POV) movie there and had a blast.

Jon came home very proud of his work to support their efforts...



Comments ()
7:20:02 PM    

Sunday, January 26, 2003

Korea was Slammer'd?

This Reuters story appears to verify earlier (and often fuzzy) reports that the "SQL Slammer" worm (given its operation, it seems more like a viral agent than a worm) hit Korea hard.

As to the why? I'll hazard a guess.

High broadband penetration means that there are a lot of Windows based systems sitting on the net with little or no protection. The same kinds of systems often used for other types of DDoS attacks because its easy to get control of a process there.

Microsoft has officially divorced itself from responsibility, stating that everyone should have applied SQL Server Service Pack 2 six months ago. What's not completely clear yet is whether this would have been effective. Service Pack 3, released eight days ago seems to work, but we'll have to wait and see if the claims from Redmond are valid. This particular incident could have political ramifications for Microsoft.

Comments ()
3:12:40 AM    


Saturday, January 25, 2003

Floatsam

I don't remember where these came from, but here they are:

Motivational Quotes of the Day
SlashNOT
Todays SlashNOT is humorous (Microsoft completes purchase of Klez) when considering last nights problem with MS SQL DDoS attacks.

Comments ()
4:19:40 PM    

Radio Comments

Thanks to Phillip Pearson and his Comment Monitor [via Nicholas Riley], I understand the format used by the Radio comment server a whole lot better.

Here are the Ztuff Comments and the raw dump from the Radio comment server.

Comments ()
4:05:16 PM    


Super Bowl XXXVII Letdown

I just realized that we're going to have to listen to John Madden for three plus hours if we want to watch the Super Bowl. I listened to one Monday Night Football telecast this year and it was depressing. After a little while I switched to the radio feed from Green Bay. Sarah can't decide whether she wants to go to Magic Mountain tomorrow or stay home and watch the show (and under the circumstances, I'm dithering a bit too, but I know I'll watch). I have no idea what the kids want to do.

The game has a decent chance of being good, although I'd venture that more than half the people who see some part of the game could care less who wins.

The Super Bowl has become an American mid winter party. In between nearly six hours of talking heads and commercials, they'll actually show almost sixty minutes of American football (where feet are only infrequently used). If you count all the slow motion replays, there will be almost 70 minutes of football. The day after, the actual game will be forgotten by most, but discussion will rage about the best new commercials and stories will float around about all the crazy things that happened at the parties.

Some day, the football hype will fade and we'll have to come up with a new way to celebrate American Corporation Day.

Me? I just want to watch the damned football game.

Comments ()
3:45:16 PM    


Week in review

I ought to rename this the weekend blog, or maybe the once in every blue moon blog. Oh, it's been busy.

This week I had jury duty, which was interesting. I was called to sit through the jury selection process for one trial, but was never brought into the inquisition phase. There went one day.

I finished reading "The Summons" (which was appropriate) and have started back through the whole John Ryan series starting with "The Hunt For Red October".

We had a new engineer in from Atlanta, and spent a lot of time with him, just getting him up to speed on things.

We're having a department meeting in a couple of weeks to talk about what we're all doing and where we are on it. So I've been working on fleshing out a lot of ideas and putting together presentations on several different things.

I spent most of yesterday reading and working on documentation and then chasing down a rats nest of related bugs. I'll have to go back and work on that some more later today.

Oh yeah, I learned how to put a custom icon on a page in a browser. Browsers are looking for 'favicon.ico' (I'd been wondering about custom icons and noticed all the icon requests in the server logs).



Comments ()
3:20:05 PM    


Sunday, January 19, 2003

Presentation Advice

This is timely (via Doc Searls)! I'm working on a presentation right now (and need to have two more ready by February 11). I'm trying for funny, I'll settle for corny or just about anything but dreary. Derek also reminded me to go read this by Doc, which I'd read a couple times before, but not while actually working on a presentation.

I'm interested in Keynote mostly just to see if it's templates are easier to do than those for PowerPoint. I've actually created a few PowerPoint templates and they are a bear.

Why templates? Because I still do most of the work in MORE and then pull it into PowerPoint. It's also a bear to get graphics to line up from one slide to another in PowerPoint (it's actually probably easy, but I haven't a clue). If can do in templates what I'd otherwise need to do manually, this is good.

If all else fails, I'll do it as Derek did using a localhost link. In many respects, it's more portable than PowerPoint.

Comments ()
11:09:09 PM    


Ship, Captain and Crew

Thanks to Rogers Cadenhead I now know that I was playing Ship, Captain and Crew this past Friday evening (on a tie, we threw more money in the pot and started again with the last winner rolling first). It's also known as Ship, Captain, Mate and Crew. Here is another set of rules (although it's called Destroyer).

Finally, I'm really glad we weren't playing this variation!

Comments ()
9:33:37 PM    


Jon's new piano

Jon at keyboard
We finally got around to taking some pictures of Jonathan's new piano on Friday (well after it should have been done). He's really taken to it and had no trouble adjusting to the 'weighted keyboard' from a variety of keyboards he's been using at home and in his classes. Adam and I, who like to dink around on the keyboard from time to time are struggling more, probably because we don't have any idea what we're doing and had gotten used to the lazy way you can play a typical keyboard. Sarah seems pretty comfortable (but she goes to all the lessons).

The sound quality on the Casio PS-20 Celviano is very good and when using the piano settings, sounds very much like the real thing. I especially like the "Grand Piano 1" setting, it seems to get left there most of the time. The piano also has MIDI in/out ports. For years I had a MIDI box and at least one Mac which could use it, but no keyboard nor interest in buying one. Now that we have a MIDI keyboard, we've retired all the ADB based systems. It seems like its time to go looking at the USB and/or Firewire MIDI products out there and see what might work.

The most surprising recent piano related event occurred last night when Jon sat down in the family room for about half an hour and wrote some music. This morning, he was upstairs playing something unfamiliar and Sarah said it was the music he's written last night. I'm still somewhat amazed, and just had him play it for me again. After dinner Adam was telling me that Jon is the one who showed him how to use his left hand properly.

At least one of us will really learn how to play the piano, perhaps more.

Comments ()
8:53:57 PM    


Saturday, January 18, 2003

It sounds so sixties...

Weather Underground sounds subversive but seems to be the commercial spinoff of a university project.

Here are links for Thousand Oaks and Pasadena.

The bad part is that their TO data kinda sucks. The data comes from Camarillo which is only about ten to twelve miles away, but it's also 900 (or more) feet lower in altitude (sitting on the Ventura coastal plain), which makes a big difference. Our wind patterns are different and we've usually got some sort of a temperature gradient (sometimes its hotter, sometimes not).

I looked around to see if they are looking to add amateur stations (that would be interesting), but it doesn't see to be the case.

Comments ()
1:01:03 AM    


Unintentional surprises

What a weird evening.

I decided to go out and have a couple drinks after finishing things up for today. As I was going out the door, Sarah and the boys were coming back from Lazerstar in Camarillo (and dinner). They completely startled me as I was heading into the garage (after turning out all the lights in the house, I open the garage door and one of my kids friends is standing right there in front of me).

So anyway, out I went to our local Elks Lodge to have a couple drinks and mingle with people who don't spend all day thinking about computers (it's nice sometimes to talk to people who aren't geeks -- it helps keep the balance).

I ended up in a very interesting conversation with my friend David Pearson (he got me into the Elks). He was explaining how his company Frank Stubbs Company, was expanding itself and making itself more flexible. David is a natural speaker; full of passion and can go on at length about things they've done over the years to get better, mistakes they've made, etcetera.

Over time, they've had to get and maintain all kinds of certifications. They have experience working as an OEM, and with doing custom SKUs and a thousand other things that sail right over my head. He was also explaining how they've changed things so the floor supervisors can collectively make better decisions; it seems like they get a lot more information about orders ahead of time (by removing all the middle management) and by keeping them in the loop on inventory. Here, David has something really interesting to say; raw numbers don't work automatically. By creating simple charts that show some combination of orders, popularity, parts inventory and a couple of other things the floor leads are now able to make good decisions early on about manufacturing schedules, while maintaining a high degree of flexibility. They're now seeing far less problems with jobs being suddenly interrupted to deal with an un-anticipated emergency which makes everyone happier.

They are also constantly looking for new markets that map to the manufacturing experience they already have. What they've been doing over the last few months is to find new opportunities, and make small test runs at it. If it doesn't work out, that's fine and they move on to something else.

After listening for a bit and asking a lot of questions, I told him about Agile Software Development and said that he seemed to have hit upon one way for small(ish) companies to do in manufacturing what many of us are trying to make happen in software. I called it Agile Manufacturing, and I think that's an apt term. From a quick check, many others agree with me.

I also talked to him for a bit about search engines and weblogs, I'll have to see if I can push him in that direction. I'd love to read about it...

As that conversation wound down, Annie (David's wife) asked me to throw a dollar on the table. I knew we were getting ready to gamble on something and normally, I don't gamble, but it's just a buck. I went to a casino once (I spent my $5 at a casino on the island of Curaco, that was it). I've driven through Vegas before but had no reason to stop. I've played poker at a few parties, and come out about even (my wife likes it more than I do). I think I avoid gambling because I am cheap and hate to lose. I will participate in bowling sidepots, although I have not been doing so this year (I'm still not quite right, although I'm getting closer after taking nine months off because of an elbow problem). Anyway, we played some sort of dice game. You start by rolling five dice, you need a 6-5-4 to have an eligible score, the other two die counts as your score. You need the 6, then the 5 and then the 4. You get three rolls (pulling out numbers you've already hit). I managed to win the first round or I might have ducked out (already lost a dollar, time to go).

After about an hour, everyone was leaving and I walked away with $24. I don't think I've won anything like that since back in the years I used to play pool for money. Weird evening indeed!

Comments ()
12:32:53 AM    


© Copyright 2003 Dave Ely.



Click here to visit the Radio UserLand website.

 


February 2003
Sun Mon Tue Wed Thu Fri Sat
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28  
Jan   Mar