Saturday, February 27, 2010

Oracle is once again making people enter contact information just to receive, via email, a link to download "legacy" versions of the JDK.

A couple of these links, for your convenience:

and, for 1.4.2_19:

Note to The Google: Please categorize this post under "Links to Sun JDK 1.4", "Links to Sun JDK 1.5", "Sun JDK Download Links", "Oracle Please Be Nice", etc. Not that I expect The Google to listen much.

Thursday, February 11, 2010

Dumb Discussions with Dell

Silly me to think that Dell could answer a basic question about its own product via its "Chat with an Agent" website feature. Here's my chat transcript. Thoughts?

22:48:03 System
You are now being connected to an agent. Thank you for using Dell Chat
22:48:03 System
Connected with BE_PR2_Rep_Hermelyn

22:48:13 BE_PR2_Rep_Hermelyn
Welcome to Dell's Sales Chat! I hope you are doing well and thank you for waiting. My name is Hermelyn and I will be your personal sales agent today. There are instances where chats get disconnected (we don’t disconnect you on purpose). Feel free to email me at or leave me a message at 1-800-379-3355 ext. 2160085, from 8AM CST – 12 CST. How may I help you with your purchase today?

22:48:38 Steve Shabino
I have a question about adding a SSD as a 2nd drive in a Studio 17

22:49:07 Steve Shabino
If I order a model with a single drive, can I add a 2nd myself? Do I need to buy anything else (a chassis, etc.)

22:49:33 BE_PR2_Rep_Hermelyn
you would need to buy only an external hard drive

22:49:56 Steve Shabino
So, what's different about the Studio 17 machines that ship w/ 2 drives?

22:52:03 BE_PR2_Rep_Hermelyn
how many GBs will you be needing for the hard drive? you may have the option to choose 500GB, 600Gb and 1TB

22:52:41 Steve Shabino
The point for me isn't so much size as speed. 7200RPM is absurdly slow compared to an i3 w/ 1066 bus speed

22:53:26 Steve Shabino
However, I'd like to have some slower disk available for media space. So, a small SSD w/ a 2nd mechanical drive seems like a good option

22:53:49 BE_PR2_Rep_Hermelyn
let me check

22:55:08 BE_PR2_Rep_Hermelyn
I am sorry but there are no available options for an SSD for the laptop of your choice

22:55:38 Steve Shabino
I understand that. What I want to know is whether I can add a 2nd drive myself to a Studio 17 if I purchase it with only a single drive

22:56:04 Steve Shabino
What is different about the machine as configured w/ 2 drives from Dell other than the existence of the 2nd drive?

22:58:23 BE_PR2_Rep_Hermelyn
i see... you mean, you want to overclock your laptop?

23:00:45 Steve Shabino
No. It is my understanding from the available configuration options that the Studio 17 can hold two 2.5" SATA drives. As a buyer, I have the option of buying it with either one or two drives. Given that Dell does not sell this model with an SSD and I want one, an option seems to be for me to purchase the laptop with only one of these drive bays filled and add an SSD (that I purchase elsewhere) myself.

23:01:30 Steve Shabino
My question is whether there is anything else different about a Studio 17 that only ships with a single drive. Does it contain the second bay? Must I purchase some sort of tray to hold the 2nd drive? [I'm ok w/ that]

23:03:09 BE_PR2_Rep_Hermelyn
there is no extra bay for it

23:03:35 Steve Shabino
So, where does the 2nd drive go when one purchases the Studio 17 w/ 2 320G drives?

23:05:59 BE_PR2_Rep_Hermelyn
you have to choose the 640G (2 x 320B) Dual SATA Hard Drive (7200rpm)

23:06:54 BE_PR2_Rep_Hermelyn
you must click on the Hard drive icon and choose the 640G (2 x 320B) Dual SATA Hard Drive (7200rpm)

23:08:36 Steve Shabino
I understand that I have the option of ordering this laptop with two hard drives. However, you have not answered my specific question. Is there any technical reason that one can not add a 2nd drive to a Studio 17 which shipped with a single drive? Does it contain an empty drive bay?

23:09:14 BE_PR2_Rep_Hermelyn
we do not have an extra bay for the laptop

23:09:42 Steve Shabino
Then, how do you sell the same model with two drives? Surely there must be two, 2.5" drive bays in that model?

23:13:14 BE_PR2_Rep_Hermelyn

23:15:19 System
BE_PR2_Rep_Hermelyn has left this session!

23:15:19 System
The session has ended!

Hermelyn "hung up" on me! How dare I ask Dell a question and expect an answer?

Friday, January 4, 2008

Drools on JRockit

So, I've obviously ignored my blog for way too long. I'm going to catch up on the project entries real-soon-now. But, in the meantime we've been trying out Drools on JRockit, and we have good results to report.

I compared the JRockit implementation of 1.5.0_12 with the Sun version. To start up Drools with a rather large set of derived facts (inserted in the consequence of various rules), JRockit was 1/3 faster out of the box with no tuning other than setting a large max heap size. I measured 10 successive start-up runs because JRockit's aggressive precompilation caused the first run to be significantly slower than subsequent ones. These tests were on a 32bit Windows box.

Also, large blocks do make a difference. JRockit allows for large block allocation on OSes that support it (I'm no expert on memory allocation, so be warned). On Linux (RHEL 4) with a 10 gig (yes, 10 gig!) heap, we improved Drools start-up by 20% by turning on -XXlargePages support.

We're going to continue to tune JRockit for our large heap. GC pauses are still really long (well over a minute), but we really only care about start-up speed. Responsiveness doesn't matter until we're ready to make tons of working memory queries. When we learn more, I'll report back.

We're a Weblogic shop, so there are no licensing issues involved for us to use JRockit, and we expect to embed Drools within a Weblogic instance anyway. As always, your mileage may vary.

Friday, November 2, 2007

More Requirements

Today, we have a system in place that provides users with a ranked list of worker assignments for a job. It's pretty good at coming up with a useful list, but it's a little slow and "mysterious. "


Users want to know why the system gave out the suggestions it did and why it didn't give out some other seemingly obvious ones. Our support team fields questions like this all the time:

  • I know there's a worker right around the corner from this job site. Why didn't the system put him on the list? Possible Answer: This worker doesn't have the proper certification to do a job of type X.

  • Why was Worker A ranked lower than Worker B? Worker A hasn't done a job for a bit, but Worker B just completed one. Possible Answer: Worker A was too far away from the job site and would have to start work late.

  • What are the differences to the business between selecting Workers A, B, and C? Is one choice more profitable than another one?

So, the new system will be required to explain itself. Why did it select and rank the workers as it did? Why did it not select some seemingly obvious workers? And, what are the key attributes about potential choices that affect the business?

Monday, October 29, 2007

The Problem at Hand

So, this isn't really the problem, but it's close enough...

We assign workers to jobs at various client sites around the country. Although we learn about some of these jobs a few days ahead of time, most are rush jobs -- "How soon can you get here?" sorts of things. And, these jobs are specialized. Not all workers can perform all jobs. Special equipment is often required as are various worker certifications. Fairness matters too -- workers who haven't done a job in awhile get first dibs.

Does this sound like a problem for a rules engine yet?

Even though there are a lot of hard-and-fast rules, my client's employees still need to exercise some discretion when making assignment choices. So, our goal is to provide a ranked list of workers appropriate for particular jobs. Speed is important. Users won't wait for us to compute a list of workers each time they want to contemplate a decision. A half second is probably all the compute time we can tolerate.

This leads me to discuss the scale of our problem. We have about 500 jobs starting every day and about 1000 workers. While these numbers don't seem large at first, we're looking at half a million potential assignments at any given time. Some of the rules for assignment are straightforward: If the job requires the worker to have a particular certification, he or she must have the certification. However, many of the rules are more computationally intensive: How long will it take the worker to drive to the job site, and will he be able to start on time? A call out to our routing server takes a couple of seconds, and that alone is way beyond our SLA for our users.

We're Piloting Drools

Hi. I'm Steve Shabino, and this is my first post on this blog. I'm a software consultant based in Cleveland, Ohio who works with Java technologies.

For the past couple of weeks, I have been working on a pilot project with my client where we are building a decision support system using Drools. In the following weeks, I will document our progress so that others may learn from our efforts. While these posts will be technically accurate, I will obfuscate the problem domain to protect my client's privacy. Although I'd really like to share details, I think I can represent all the important parts via the "fake project."