Archive for the ‘Everything Else’ Category

Obama Not Taking Public Funds for Election

Thursday, June 19th, 2008

vote.jpg

This morning I got a tweet from Barack Obama saying:

Made an important decision today and wanted to share it with you. Visit http://my.barackobama.com/mydecision

while I think it's very much worth listening to, the essential point is that his campaign this Fall will not take any public funds. This means no more "Paid for by friends of Barack Obama", and all that crud that other elections have used to skirt the issue of campaign finance reform. They have someone else pay for it. Still... it's the special interest groups that are funding the vast majority of these (expensive) commercials.

With this, it's going to be an election where the people fund the candidate. While I might talk about the other nominees, I'm not going to. The point is not what they do, it's what I do, and by extension, what the person does that I cast my one, important vote for.

We need leadership, not just another President. Good for Obama!

MarsEdit Updated to 2.1.4!

Thursday, June 19th, 2008

MarsEditIcon128.jpg

Yesterday, I got a tweet from 'MarsEdit' saying that 2.1.4 was released, but it was too late in the day for me to have the time to download it and see what's what... so this morning that's the first thing I wanted to do.

The changes really don't seem to effect me much as they are for Blogger and a few things to do with drag-n-drop in the preview window. Not bad, and I'm sure there were a ton of people clamoring for these changes, but I'm still looking forward to the time when I can resize the main Edit Post window smaller than it's current default. Also, an improved media library window would be nice - things like the size of the icons... organizational features like folders, etc. All these would be nice, but it's not essential.

Anyway, it works, and it's nice to stay up to date even if you don't need the updates right away.

Learn Something New Every Day – C++ Destructors

Wednesday, June 18th, 2008

cplusplus.jpg

I was talking to a guy yesterday and something hit me like a ton of bricks - the virtual keyword in C++ really is just about polymorphism (the ability to have a pointer know the right type to call) and has nothing in the order the destructors are called.

In my (weak) defense, I've always used virtual destructors in C++ - just to be safe, but safe from what is the issue? While I knew the reason for the keyword virtual in C++ class definition, I was thinking that there was something special in the use on destructors. Something where it told the compiler to 'unwind' the destruction properly. Not so.

If I have the simple class structure:

  #include <iostream>
 
  class GrandParent
  {
    public:
      GrandParent() {
        std::cout << "constructing GrandParent" << std::endl;
      }
      ~GrandParent() {
        std::cout << "destructing GrandParent" << std::endl;
      }
  };
 
  class Parent :
    public GrandParent
  {
    public:
      Parent() : GrandParent() {
        std::cout << "constructing Parent" << std::endl;
      }
      ~Parent() {
        std::cout << "destructing Parent" << std::endl;
      }
  };
 
 
  class Me :
    public Parent
  {
    public:
      Me() : Parent() {
        std::cout << "constructing Me" << std::endl;
      }
      ~Me() {
        std::cout << "destructing Me" << std::endl;
      }
  };
 
  int main(int argc, char *argv[]) {
    Me    a;
    return(0);
  }

we get the output:

  peabody{drbob}30: a.out
  constructing GrandParent
  constructing Parent
  constructing Me
  destructing Me
  destructing Parent
  destructing GrandParent

Which confirms the conversation I had with this C++ developer that the only reason that the keyword virtual would be used on the destructor is if you had a GrandParent pointer that was really pointing to an instance of Me and you wanted to make sure that the destructors for Me and Parent were called along with the destructor for GrandParent.

I made the silly assumption, and this guy was right. I'm glad we had the talk we did, as I'm going to question a lot of the assumptions I've been holding on to regarding C++ coding because of it. Interesting talk. Never too old to learn.

OsiriX 3.2 is Out!

Wednesday, June 18th, 2008

OsiriX.jpg

They have updated my favorite medical software - as if I had that great a need for medical software, OsiriX 3.2. The web page indicates that the 64-bit add-on is now 25-50% faster, but the standard Open Source app is 32-bit - which is an interesting business model.

These guys have put a ton of work into the app, and they started Open Source, and mean to stay Open Source, but they want to make some money. Understandable. Rather than have the app need a lot of work, like JBoss, and charge for the manuals and consulting, these guys have a fully functioning 32-bit app, and they charge $149 to get the 64-bit add-on that boosts the memory space and speed. So... free is limited by the memory of a 32-bit process, and if you want to spend the $149 you can get more capacity. Nice.

I can't say as I'd ever need the 64-bit add-on as I only have the family's xrays in OsiriX, but I can imagine my sister and her husband (doctors) that would pay for something like this - or the clinics/hospitals they work at. To them, this is easy, just like paying for BBEdit is for me. It's a tool of the trade.

So, hat's off to finding a new model for getting a little money out of the Open Source model.

Wild Day Yesterday

Wednesday, June 18th, 2008

blogs.jpg

Yesterday (Tuesday) things were so hectic in the morning that I didn't have time to post anything - or read anything, either. Today I'm playing a little bit of catch-up to get everything back in-sync with the daily goings on.

Thankfully, the treadmill is still there, the train is still there and life goes on. It's just going to take me a little bit of the day to get caught up with everything and get a few posts in about the day. It was memorable.

Kindle.jpg

UPDATE: I was sitting waiting for an appointment yesterday, reading my Kindle, like you do, and someone walked up to me and said "Hey, is that a Kindle?"

"Yes, it is" I replied as I turned it to show her a better view of the screen.

"I've been thinking about getting one, but I've read a lot of the online reviews saying that it's too easy to accidentally hit the change a page buttons. Is it?" as she looked at the Kindle.

I showed her the buttons, told her of my experiences, which are that I've hit it accidentally once, and it was no big deal. Just hold it, and it's right there. Very convenient. No problems.

She remarked on the clear, crisp screen, which I had noticed day-one as well, and after a few minutes she was off, saying I'd made up her mind and she was going to order one. So... Amazon... send me a free book for being your sales force! 🙂

Why a Job isn’t Slavery and Slavery isn’t a Job

Monday, June 16th, 2008

cubeLifeView.gif

I was talking to an old friend this weekend - it had been ages since we talked and we spent a lot of time on the phone getting each other up to date on what's been happening lately with the families, etc. It's fun to play catch-up with an old friend as they know a lot of the old jokes, but a lot of the neat, new stories are new to them, and it's always fun to tell stories about the kids.

Anyway... after a while we got to talking about work, and he has been going through a really tough patch at work where the place is not doing well, and the morale and attitudes of nearly everyone there is really taking a beating. People are slacking off, not doing their best - and the work shows. But I know my friend, and that's not like him - nor is quitting as he's big into the loyalty, commitment, etc. But he had a recent story to tell that even made me cringe.

He's been doing all that's asked of him for years, and recently, because this other group of developers is really not pulling their weight (I'd say they were lazy and inept, but he's nicer than that) he's been asked to do a little of their work because they are too busy with other things. Well... he does it. In my experience, it's worth lodging a complaint - respectfully, to let your manager know that this is not 'ordinary' - no more so than them asking you to be a janitor or security guard, and even though "The Team" needs you to do this, will the "Team" be there when you need them? Not bloody likely, which is my point about lodging the complaint - respectfully. But I digress.

He's been forced to do this work of the others and even on occasion told to get it done by deadlines when the principals are out of the office. It's like "Hurry up and get this done for Steve by Friday" and then Steve takes Thursday and Friday off. Why the rush, if they aren't going to be in the office? It seems reasonable that if the work needs to be done that fast, that he'd be in the office. But maybe it doesn't need to be done that fast, it's just the manager's way of trying to suck up to the guy.

This is why I really don't like these kind of 'rush' jobs - many times they really aren't a 'rush', they are just a rush from the point of view of the manager looking for some brownie points with their management. Which, again, is the reason I always try to make a respectful point of properly setting expectations.

In the end, my friend is unhappy, but he's resigned himself to the fact that this is the job. Much like any relationship, it takes work, and it's a given-and-take with a natural ebb-and-flow that means that sometimes it's not a lot of fun, and sometimes it is. I can certainly understand his point - having been married more than two decades, but there can come a point when a job - or an relationship, for that matter, is destructive for one or both parties. There are tons of times when people aren't fitting in at a job and are 'let go', or 'right-sized', but the other side of this same relationship happens as well. Jobs and managers can get overly oppressive, thankless, demanding, and in general, one-way. When that happens, it's time to step back and realize that there are times to sit out the ebb and flow, and yet there are times when it's really best to step away and decide if it's really a good idea to stay in the relationship.

I'm not going to tell him to get another job, I respect him too much. I know he's a good guy and when it's the right time to make a move - or re-set expectations, he's going to do the right thing. But it's hard to see a friend having this much trouble, when he's such a nice guy. Sigh.

Getting Better – Firefox 3.0 RC3 is Out!

Friday, June 13th, 2008

Firefox.jpg

Nice to see that the auto-updating of Firefox 3.0 is working, and that the Team has released RC3. It's getting better and better, with fewer issues on Windows, and stellar performance on my Macs and Linux. I'm guessing we're getting close to the final release as it's June, but no idea when the final release will be delivered. Great work.

UPDATE: this news story puts the release of 3.0 on this coming Tuesday, June 17th. Looks like it's only a few days away. Nice! Looks like it'll be official in just a few days.

Touching Base Across the Globe

Monday, June 9th, 2008

Adium.jpg

This morning I found an old co-worker on chat - Pete E. Pete used to work right next to me but then moved to another division and then to another Bank. Now he's in the middle of a six-month stint in Singapore for Morgan-Stanley. Amazing. I haven't talked to Pete in at least 3 years. We spent a little time catching up and I really liked finding out what he's doing and where he hopes it's taking him. Computers and the 'net really are making communication so effortless that the world has changed, and I was in the middle of it and didn't see it really close-up until today. Wow.

An Online Test for Tending a Garden

Friday, June 6th, 2008

GottaWonder.jpg

I was talking to a friend today that is looking for a new position. He's interviewing at a place that uses online tests as a measure of the skill of a developer. Problem is, he and I know that the ability for an online test to predict your ability to program is virtually zero. He likened it to having an online test for tending a garden.

Oh, he'll take the test, but the fact is that he's probably not going to perform on the test to the same level that he can perform in person. It's an entirely different kind of knowledge. That's not to say that online testing can't be done well, but it can't give you a good measure of a large spectrum of individuals. Even the best tests can't do that if they don't have some real human being interpreting the results. Multiple-choice tests are only able to really discriminate a very narrow band of skills.

For example, if you have a simple test - like a driver's license exam. That's good because it's measuring a minimum level of competency. You aren't called upon to make judgement calls in these tests (like you are in real driving) - that's left for the driving part of the exam. But it does register well your level of basic understanding of the laws governing the use of an automobile.

But let's see if that works for programmers.

Can you generate any multiple-choice exam question that can even remotely test a person's ability to 'use' a language? You can test if they can spot a syntax error... or what the result would be if this code was executed... or even what would be the proper form of a certain statement. But you can't really tell if they will be a good developer.

Mastery of the basics of the language is possible - do you know what the basic data types are, that kind of stuff. But what happens if a person hasn't used a certain class library - or a certain feature? Is it essential to mastery of a language to use every feature? I can't think of a language outside of assembly that I've used every feature of. Nor do I think that many really can. Maybe a compiler write could, but then that's all they are writing - tools that turn code into machine instructions.

But you can't really tell if one developer is going to be faster at implementing new features or bug fixes than another. Or if the designs one guy will create are going to have longer staying power than those of another person. Yet these are the essential questions of a developer's worth. How quickly can they add features and fix problems? How does their design stand up to the test of time? Knowing that they know the difference between an STL set and vector is not nearly as important.

Yet that's the only thing these online tests can really point out.

I would like to see more employers asking for code samples. The problem there is that almost every company I know of late would not want even one coding example shown to a potential competitor for fear of losing the 'edge' they felt they maintained. Artists of all kinds do this every day - it's their portfolio. I'd like to see developers build a portfolio as well. Show it to someone - if they are in the business of writing code it's not going to take them 15 mins to see if the code you've written is good, fair, or poor.

Do you have comments? Is there a basic style to the code? How are errors and exceptions dealt with? What level(s) do you take with each of these? It's all there in black and white if you look at the code. Even moderate to bad coders will be able to recognize good code.

I'm sure my friend will do fine. I've known him for more than twenty years and he's a good coder. If the test is even close to measuring what it claims to measure, then he's going to do fine. It's just interesting that as two ex-teachers with a lot of love for a good test, that we got to talking about this upcoming test of his today. Good tests are hard to write and even harder to grade. Anything online and multiple-choice is dodgey at best.

Upgraded to WordPress 2.5.1 at HostMonster

Friday, June 6th, 2008

wordpress.gif

This morning I noticed that Fantastico at HostMonster had gotten the update of WordPress to 2.5.1 - so I took the time to upgrade. It's pretty simple, and I keep the roll-back instructions in VoodooPad Pro (just in case), but I doubt I'll ever need them. I'm pretty sure the 2.5.1 upgrade is for security issues, and there aren't a lot of additional features in this guy, but it's always nice to stay current with these things - just in case someone decides to create a 10 million machine bot storm to crack all WordPress sites.

I'm still looking forward to the Google Summer of Code work for putting a caching system into WordPress. While I don't get enough page hits to really need a cache, you never know when you might be Slashdotted, and for that, a cache can be a lifesaver.