Archive for the ‘Vendors’ Category

Scribbles v1.2.3 Update

Wednesday, August 13th, 2008

Scribbles.jpg

This morning I read that there was an update to Scribbles - the new drawing app I'm looking at, to v1.2.3. The release notes said something about a bug in one of the brushes, which is nice to know they are paying attention and listening to users. I was able to pick up a nice wireless Mighty Mouse for my MacBook Pro, so I'm hoping to really start to use Scribbles soon, but it's going to depend on the task(s) at had as well. I've got to have something I need to do to really test it out.

A Funny Thing Happened in Grad School

Tuesday, August 12th, 2008

Purdue.jpg

I was talking to a few guys around the office today - specifically about how they had not passed a test in their series of certification exams that several more people need to take around this place. I've written about the evils of these vendor exams - written by people that aren't professional educators, graded in the most cursory manner - computerized for the most part, and the resulting problems this makes for people in the workplace that need these certifications for their jobs.

But that's not what I'm writing about now. No, this is something I hadn't realized I'd picked up along the way to where I am today. I'm talking about understanding the difference between "testing" and "fact checking".

What I mean by the first is that anyone, at any time can make a test for someone. We do it all the time as parents ("Did you knock this over?"), we do this as developers ("Is this the problem with the system?") and as companies - in the form of these certifications. They aren't fair, don't really concern themselves with "right" and "wrong" - they are questions, challenges, and tasks that we must overcome to someone else's satisfaction in order to achieve what they have promised we'd receive.

"Fact checking" is all about the "right" and "wrong" - Can a 3kg spherical lead ball dropped from 1m crack a 1cm thick piece of glass? That kind of stuff. It's all something that that is by it's very nature objective. And for the most part, dispassionate.

"Testing" is all about someone's passion - I guarantee it. The person that wrote the material the test is based on... the instructor... the test's author - someone in this chain cares a great deal about this test. And as such, it's not about you, the test taker to tell them what's "right" and "wrong" - they already believe they have a firmer grasp on that than you - which is why you're taking the test and they are administering it.

What surprised me today was that I knew all this, and my co-workers didn't. Then I got to thinking about it and I realized where it all came from - grad school. I have to hand it to grad school, it really taught me this lesson. You sit in a class of less than a dozen grad students, and the professor knows you all by name. He's spending a lot of time trying to make this material understandable to you all, and so there's a lot he's got invested in the exams (tests). You need to make sure that when you take the tests, you give him what he's looking for. Period.

Maybe the university is an easy place to learn this, I don't know. But I do know that I have learned it, and I don't think of myself as cynical on this point. I think of myself as recognizing the concerns, issues, and feelings of the people involved. There's nothing to gain by making the test so simple it's useless as a gauge of the material retained. It's also equally useless to make it so hard that it's nearly impossible to pass - no one will pass it and therefore it'll have no value.

So there's a compromise there - an optimization of sorts. Again, grad school helps me there more than I initially realized. It's taken me 20 years, but I'm really starting to look back fondly to that place. Who knows... maybe we'll take a road trip and see the campus.

Who’s Data is it Anyway?

Tuesday, August 12th, 2008

flickr.jpg

Last week I saw an interesting video making the rounds which included a few comments about the legal ownership of data available on the web. For instance, flickr is nice, but in order to put one of my pictures uploaded there on my blog, I have to make a link to the flickr page with that image.

Makes sense from flickr's point of view - it's how they pay for things. But it brings into question - Who's data is is anyway? I mean really... if they can make that rule, and Yahoo's music service can go dark, then what guarantees are there that my images uploaded to flickr aren't going to disappear? Or find their way into someone's photo gallery?

Nothing. Absolutely nothing.

This is one of the reasons I've tended to stay away from these "repository" sites - or hosted source control like SourceForge, hosted Subversion, etc. You never know what your rights are, and what theirs are. Even if you don't plan on having something of value there, are you opening yourself up if you put something up there, later decide to remove it and then try to claim it's really "yours"?

I'm certain there are some cases and some sites where you're out of luck the second the first upload it complete. It's theirs. and nothing you can do is going to change that. You just loose.

With the fact that license/usage agreements can include language that essentially says "subject to change without notice", you can't even be assured that you'll be alerted if the rules of usage change while your data is hosted there. It's almost impossible for the non-lawyer to know what they legally can do and can't do. And saying "Hey, it's a picture of me" doesn't count for squat in a courtroom.

So it's tough for me to see what the best course of action here is. I've decided not to post a lot of things to flickr even though it's a decent service, and could be really useful, but it's that like to the flickr page that causes me to pause.

Skitch is different - they might very well go away, and that would be bad, but I'd be willing to pay got Skitch usage/storage. No question. I might be willing to pay for flickr if they relaxed the rules, but I don't think I can trust that they will.

For the most part, I'm using HostMonster, and that I know I own the data. It costs more, but it's worth it. It's my space and my stuff. I've thought about the dotMac and MobileMe, and if they stabilize it out, I might be willing to go that route, but again, it has to be clear that it's mine for me to really depend on it.

I know someday there's going to be a shake-out and these "free" services are either going to have to charge or be a lot more up-front about the ownership issues. But until that day comes, you have to be personally careful. Better safe than sorry.

Quality == Zero Hidden Gotchas in the System

Friday, August 8th, 2008

SwissJupiter.jpg

I've been working with a system today that has nearly driven me to drink with it's hidden features. I know each complex system will have them, but when you are paying millions of dollars for a serious system, you should have as few of these hidden gotchas as possible. I submit that the higher the quality of the product, the fewer the number of hidden gotchas it has.

Take a good messaging system like IBM MQ or Sun ONE MQ. Both have serious price tags, both do a serious job, and while I may not like the configuration of one, or the other, I have to say that there are so few hidden gotchas in these two products as to really make them almost perfect. Ideal? No... but they do exactly what they say with no ambiguity and very little learning curve.

In comparison to the product I'm working with. They have a feature where you can define supplemental fields to the existing fields (attributes) to the stock objects in their system. You can add strings, doubles, dates, etc. Seems reasonably flexible, until you have to actually have to use them.

Say you have an object that has a built-in value (attribute) called 'date', and you want to add a supplemental field for 'expiration'. You can define the 'expiration' field just fine - as a date, even. You can then use the fields like:

  print obj.date
  print obj.expiration    // <- WRONG!!

You cannot "just use" the field you've defined even though the system has all the data it needs to work this out. No, you have to read it through a special method:

  print obj.read_supp('expiration')

and writing is even worse. You have to scan through all the supplemental fields on the type of object and see if there's the one you want, and then scan the object itself for this 'id' as you can't look it up on the name.

In short, this is an enormous pain, and there's even more. Even if you define a supplemental field as a double, you have to store it as a string! All supplemental values are going to be strings. The only advantage the 'type' has in the definition is the input checking in the GUI. It's a joke. I'm stunned.

In a good product there aren't any gotchas like these. Things work in a similar and symmetric manner. Sure, it takes more work on the part of the developers, but that's what it takes to have quality software - work. I'm continually amazed that this product sells any copies at all. (which is why I'm not referring to it by name, clearly)

If I"m lucky, this will die soon enough.

The Premature Demise of the News Groups – Not

Thursday, August 7th, 2008

blogs.jpg

There has been stories of late talking about the possible end of USENET and the newsgroups based on the fact that certain states are asking ISPs to block large blocks of the binary newsgroups because of the concern of kiddie porn. Now far be it from me to advocate kiddie porn, but there's got to be a limit to the assumption of guilt as opposed to having it proven beyond a reasonable doubt. That is, after all, what we're all about, right?

In An American President, in one of the most eloquent speeches written, the President says:

You want free speech? Let's see you acknowledge a man whose words make your blood boil, who's standing center stage and advocating at the top of his lungs that which you would spend a lifetime opposing at the top of yours.

You want to claim this land as the land of the free? Then the symbol of your country can't just be a flag; the symbol also has to be one of its citizens exercising his right to burn that flag in protest. Show me that, defend that, celebrate that in your classrooms. Then, you can stand up and sing about the "land of the free"

To me, the best our country is about is captured in those paragraphs. Sure, we've got liberty, but the best part about it is that I'm free from you imposing yourself on me. Majority rules, minority is heard.

Then someone decides that people are doing something wrong and they need to be stopped. Hey, I've got an idea... enforce the laws already on the books. When bank robbers moved from six-shooters to computers the FBI didn't need any new laws to catch them. They got smart and caught them. Period.

Don't take away the newsgroups because some one decides to use them illegally. Stop him (or her). Don't take something away from me. Don't ask to make your job easier at the expense of my freedoms. Lock the bad guys up, and leave the newsgroups alone.

Interesting Drawing App – Scribbles v1.2.2

Thursday, August 7th, 2008

Scribbles.jpg

I came across an interesting drawing app today on VersionTracker... it's called Scribbles and has an incredibly simplistic user interface, but at the same time, when I look at it, I can see a lot of utility in that program. Very interesting.

It's not Photoshop, and it's not a vector-based drawing app like DrawIt. It's more pixel-focused than that. It's got layers implemented very cleverly in the GUI, and yet the tools selection is purposefully simplistic. It's almost like you should be using it to... well... scribble. Little doodles - not mechanical drawings or fully rendered images. Just scribbles.

I've got Acorn for a lot of my image work, but it's more my Photoshop Elements replacement (even though I have PE as well). I use Acorn far more than any other graphics app, but there's still a place for something more, and I'm looking at Scribbles and thinking this is that something else.

Hard to say for sure now, but I'm going to register it and play with it a little. Can't hurt. It's certainly something to look at for a completely different, yet completely usable, GUI on the Mac. Very nice.

Like the Battle of Britain – Only Worse

Tuesday, August 5th, 2008

SwissJupiter.jpg

Never have so many suffered so much based on a single product selected by so few

My respects to Mr. Churchill, but had he been a developer today, he might say the same thing about a product I'm working with. It's become meeting madness, where it's common to have one, two or even three meetings a day on this single product that was supposed to simplify things here. Instead, it's making things far more complex than ever before.

Let's not even get into the fact that users are saying we're not supporting it to the same level of service that they have come to expect with other applications we've delivered. Ignore that people in the trenches have been saying that there needs to be significant staffing increases in order to get this product rolled-out and supported properly. Forget this stuff.

Just focus on the humanity.

It's horrific. People are beaten down. They are lifeless. They have given up hope. There's no motivation coming from the top... no sense that this is the good fight... it's just like trench warfare. Never ending. Depressing.

Someday this might work. I don't know anymore. Right now, I just want it to end.

Solving a Problem and Upgrading All at Once – Sweet

Saturday, August 2nd, 2008

NetgearWNR3500.jpg

At home we've been having a real issue with Comcast where the speed was so unreliable that it became almost unusable. Huge pain in the rear. So we've gone through the Comcast angle and on Friday they came out and swapped out the cable modem and when Liza connected her machine directly to the cable modem it was fast, but after going through all the network in the house, it was slow. So it was clear that I had another issue to clear up.

All my tests in the house were showing me that the network wasn't the problem. Everything was fast, all tests showed things were just fine until I wanted to leave the house - then things got hit-or-miss. While I was doing some of these tests in my office I noticed that the LinkSys router's network port and the LinkSys 16-port 10/100 hub's network port were going offline and then back online. The router has only 4 ports, and I need the 16 for all the things in the office. But this was the first clue that there was something else going on.

My next test was to get on a machine on the hub and ping a machine on the router. When I did that and let it run, I could see that packets were getting dropped. HA! I was onto something. There seemed to be intermittent connectivity issue with the router and hub so off to BestBuy to see if they had what I needed. Thankfully, they did.

I picked up the NetGear WNR3500 wireless-N router and gigabit 4-port switch. I decided that while I was replacing the hardware, let's go gigabit and get a good wireless-N access point in the bargain. I also picked up a Netgear 16-port gigabit switch to replace the 16-port 10/100 hub, should that be the problem. Thankfully, it was just the router and when I got the new guy in and configured I saw marked speed improvements right away.

What a relief! I had enough evidence to think it was one of the two, but I'm glad it was the first one to replace and it means I can take my time replacing the other just to get to gigabit wired network speeds in my office. Nice upgrade, but getting a functional link to the cable modem was essential.

Java and HotSpot Errors – No Fun to Debug

Friday, August 1st, 2008

java-logo-thumb.png

This morning I had a Java HotSpot error in one of the components of a production system of mine, and I have to say, it's not been very helpful. I've looked at the HotSpot file and the problem seems to be in java.util.zip.ZipFile.getEntry() and Google tells me this is because of a possibly corrupt jar file, or someone has written to the jar file and made it so that the reading get very confused.

Unfortunately, all the jars have been stable for quite a while, but maybe the filesystem was the issue. We might have had some NFS issues which might have lead to this. Unfortunately, I can't do a lot about where the jars are stored, they need to be centrally located and there's only the one filer. Bummer.

I've sent a few emails the the guys who wrote this component to see if they have any ideas about what might be done to increase stability. I'm on JDK 1.5.0_10, but would 1.5.0_15 be better? 1.6.0? I'm searching for anything because there's no way the files were corrupted. I restarted the app and it all came back. Odd.

I just wish there were more information or a clear explanation of other possible causes so I might find the real culprit of this crash.

UPDATE: when it looks like the chips are down, sometimes you get a break. While digging into this with the developer that wrote the component having the problem, he noticed that the crash occurred when a script was being run through the system. I noticed that the last two crashes occurred at 8:00 am for the last two Friday mornings - just when cron launches these jobs. BINGO! While he was going to track down if the problem was in the bsh jar I was using, I decided to take a completely different track - forego the bsh script and write it in perl. Then, I'm not calling the system to do the work for me, I can do it outside the system and it's much safer and cleaner. Not to mention faster. I recoded this and it works like a champ. It's going to make things so much easier. Whew!

Lots More Testing of the New Ticker Infrastructure

Thursday, July 31st, 2008

MarketData.jpg

I've spent a lot of time today working with a good guy in the ticker infrastructure team to get bugs in his group's code worked out. It's not been easy on him, that's for sure. Today I showed him no less than 4 bugs, each requiring new libraries be built - or in the case of one, the infrastructure itself had to be patched and upgraded.

I gotta hand it to him, it's a massive change, but I'm amazed that his developers didn't find any of these bugs in their testing. I'd have thought they'd have seen these as I did upon first inspection. I guess this is what he's going through to get his guys to get the bugs fixed.

In the end, I know it'll work, but I just feel really bad for him when I keep pointing out bugs less than 5 mins after a new release that he's thinking fixed the very last bug. Nope. There's a few more.

At least he's taking off for the weekend and getting some rest. I'll email him the next set of bugs in the morning and he can get to them on Monday. He deserves a break. It's close, but it still needs work.