Archive for August, 2009

The Amazing Pitchers in Middle-School Softball

Friday, August 21st, 2009

trophy.jpg

This evening Liza, Nina and I went to Nina's Softball Party where the Varsity (and parents) played the Junior Varsity (and parents) in a simple 3-inning game. We then had Portillo's hotdogs (yum) and lots of little cookies and brownies, etc. It was a fun little party that the Coaches put together for the teams.

What amazed me was the arms of these middle-school pitchers. I mean Wow! I've gone to the batting cages for fastpitch softball, and it's pretty fast - face it, I can't get a complete swing in time. I can get my bat in front of it, but that's about it. But these pitchers make the machines look almost slow!

Middle-School!

I can't get over it. By the time they get to High School and College these ladies are going to have Rocket Arms! I was simply stunned at the speed and control. Thankfully, I didn't have to bat - there were far too many people there to get through everyone in the 3-inning game, but it was enough to play a little outfield and be amazed at the skill of these players.

Hats off to these girls. I was certainly put in my place.

It Always Feels Good to Make Progress.

Friday, August 21st, 2009

cubeLifeView.gif

Intellectually, I know that there are people that really do enjoy doing nothing. The Dilbert Wally's of the world. They enjoy the amount of work they don't have to do. I'm not one of them. Today was a very un-Wally day for me, and I loved a lot of it. While not everything was going my way, the vast majority was, and it was really fun.

I was able to get several things done for my webapp. They weren't terribly hard, and it didn't take more than an hour each, but the cumulative effect is to make the app seem like I was really making progress. Lots of little things that had been nagging at the users were cleared off my TO DO list.

It's great to have that feeling of accomplishment.

A Bit of Personal Growth – Keeping My Mouth Shut

Thursday, August 20th, 2009

Today I was in a meeting about a service/project and realized that the best thing I could do was to keep my big mouth shut. This is a big step in personal growth for me, folks. There are a lot of ways to write systems - lots. You can do the huge design docs and then go off in a room and code, you can sit with the users and have them involved from the jump, lots of ways. But today I ran into yet another person that wanted to do what they thought was best - regardless of what the users were asking for.

This isn't new. Letting technology drive the project is common, and often a horrible mistake. Today I saw a user of this project ask (twice) for a C++ wrapper for the low-level RPC calls that the group felt was their interface. I would have written the wrapper before it was asked for, but that's OK, being asked isn't so bad.

But this manager said they were going to write it. Several people very gently objected, and it was still maintained that this was what was going to be delivered.

The funny thing is, they have to write some kind of wrapper in order to test their code, so why not take a few more days, make it nice, and let everyone have it? Don't know the answer to that one, but I was glad that I saw what I saw as it led me to believe that my opinion wasn't being requested (on this topic), and I should therefore just let them do what they want.

In the end, I can write a wrapper for the service, and probably will. If someone wants to use it, great, if not, then that's OK too. I'm not trying to make my stuff used in every project in the Shop. I'm just interested in doing a good job.

After the meeting I talked with my Manager - a nice guy that's trying to understand my point of view. After about 30 mins of talking to him I think I made it clear as to why I was feeling the way I was, and why it was futile for me to try and express those opinions and feelings to the group responsible for the project - it'd be completely unwanted and make me look like a judgmental individual.

While the latter may be true, it's not exactly the point. They asked for feedback on the project, someone asked for something that was very reasonable for them to provide, and it was rejected. Period. End of story. Done.

I really don't like working with people like this, but there are people like this in all walks of life. You just have to do your best to identify them and hope you don't have to deal with this too awfully much.

NetNewsWire 3.2b19 is Out

Wednesday, August 19th, 2009

NetNewsWire3.2.jpg

Again this morning there are a ton of updates for the latest beta cut of NetNewsWire 3.2. I have noticed a faster response time to most things, and that's nice, but the nicest thing of all is the smooth transition to any new feature. I don't have to learn a new app just to upgrade. I like that.

So it's worth getting on this beta, as it's good software.

[8/19] UPDATE: there's now 3.2b23 out already. It's moving fast and furious there. Exciting times.

iPhoto 8.1 is on Software Updates

Wednesday, August 19th, 2009

iLife09.jpg

iPhoto 8.1 has been updated by Apple, and is available on Software Updates this morning. It adds a few new book print options:

  • Hardcover books can now be ordered in a new extra-large (13?x10?) size
  • Includes three new book themes with travel-oriented designs: Tropical, Asian, Old World
  • A variety of new holiday greeting cards themes are now available

With all the pictures I'm taking with my iPhone, iPhoto has become a great tool to organize them. Gotta get the update.

Working on a Barrier Breach Alert System

Tuesday, August 18th, 2009

Today I've been working on a lot of ideas for a barrier breach alert - something where a data stream is coming into the system and you have set up a series of barriers defined by an expression - typically something like this:

  value > (2.0*n + 1)*10000.0

where:

  n = 0..5

so that the first barriers are actually at:

n Expression
0 value > 100000.0
1 value > 300000.0
2 value > 500000.0
3 value > 700000.0
4 value > 900000.0
5 value > 1100000.0

so now we have the barriers we'll be crossing through.

The trick is that when I cross any two barriers, I need to alert on the last one we crossed. So if we're going from 50,000 to 550,000 I want to alert on the 500,000 barrier not all the ones getting up to that value. Likewise, if I fall from 550,000 to 50,000 I need to alert on the 100,000 barrier not anything before that.

So we have to have an idea of direction of each barrier we're crossing, and we have to maintain a history of some sort to know what we crossed last, so as to know if we need to report on the crossing we're making right now.

This has been something I've been working on most of the day. Sadly, I do not, as yet, have a solution to the problem, but I'm sure I'll get something tomorrow.

[8/19] UPDATE: Yeah, I have something that seems to work rather nicely. I have two arrays of booleans - one for the previous state of all the barrier equations and another for the current state of the same equations. Then, I can compare the differences. If there's a difference, that's the "edge detection" we need. By looking at the values, we can tell if the current values are rising or falling.

Slick ideas that seem to be working nicely. Love this stuff.

Added numberFormat() to BKit for Completeness

Tuesday, August 18th, 2009

BKit.jpg

I was pretty impressed with Java when it added in the String.format() method. It's very much right out of C and can make some formatting tasks very simple. I added this into the BKJEP expression parser as format() with the pretty impressive Java VarArgs. Pretty nice stuff. But over the course of the last few days I've been wishing for a little more control of the numeric formatting on the format() command. It wasn't allowing the optional decimal place like the DecimalFormat class.

So I decided to put in another method to the BKJEP parser: numberFormat(). This guy takes two arguments: a Number, and a String format consistent with the DecimalFormat class. This helped me clear up a nasty little formatting problem on one of the logging messages I was working on in a project. Very nice to have the flexibility of both, that's for sure.

While I admit the argument list is backwards from the format() function, it's in keeping with the dateFormat() function already in the BKJEP parser. I decided to keep these two similar, and let format() stand alone. It's not perfect, but I didn't want to switch everything and then worry about the things that might break.

Miracles Don’t Warrant Attention Any Longer

Monday, August 17th, 2009

cubeLifeView.gif

Well... maybe it's the Slump talking, but today I was asked to put in a feature quickly and in less than two hours I had a new view of the data available to my clients just like they'd asked for. Two hours. One would call that pretty nice - maybe even pretty wild. But today it didn't even warrant a "Nice job!" email.

I'm sure they expect this from me now, and that's a double-edge sword. One one hand, it's great because I can then expect impressive bonuses, but on the other hand, it's expected now, and if I just do a "good" job, it's seen as me 'slipping'.

Everyone likes to hear that what they are doing is appreciated. I'm no different. I don't require it, but there are times when I hammer out a new feature on a 'rush' schedule and it'd be nice to hear something. Oh well... I do it for myself. I do it because I'm who I am.

It's just a little tough to take this hit in the middle of a slump. But I'll get over it. I always do.

[8/18] UPDATE: I did get a 'good job' email today, so I guess it was noticed. It helps.

Base 1.3.2 is Out

Monday, August 17th, 2009

Base.jpg

I haven't been keeping really good tabs on Base recently, but this morning I was thinking about an interesting take on SQLite3 in Mac OS X development voiced by a pretty good developer a while back. Basically, he sees SQLite3 on the Mac as an easy way to skip using fopen() ever again, and to that I can see his point: if you're using files to save data, be it parameters, or application data, you can use a file and deal with encoding and decoding, or you can simply use a database that's a single file and have it organized any way you like.

It's a neat concept. Using a database system as an alternative to the standard file formats. When that happens, it's easy to dig into the file and see what data you've written - as opposed to making a custom file reader/displayer. Slick.

Anyway, Base is a nice GUI tool for the Mac that would be that GUI viewer tool for SQLite3 databases. Today's update to v1.3.2 means it's moving along nicely which is a real treat.

MacVim Snapshot 49 is Out

Monday, August 17th, 2009

MacVim.jpg

The guys working on MacVim have been busy once again, and released Snapshot 49 (actually 48 and then 49) to refactor the keyboard code and make it a little more international-friendly as well as allowing key bindings on more key combinations. Interestingly, this also ends up help us ASCII folks, and that a nice perk.

Still one of the bet editors on the planet.