Been busy - work, antennas, motorcycle

It's been a little since I last made an entry here. I've been busy on a work project. A conglomeration of VB.Net, Lotus Script, VBA, SQL server, DBF and XML stuff. It's nearing test/production and I'll be happy to move on to the next project. I was working on my motorcycle this weekend getting ready summer and came up short some parts. I made the hour and a half round trip to the Harley dealer only to get home to find out he'd given me a male part that I needed as female. That'll have to wait now. Having to special order some vinyl tubing from another dealer too. I'm really anxious to get the bike going again so I can get to the shop and have a new rear tire put on. So, what to do since I couldn't get going on the bike? I built an antenna. A colinear design from the September 2003 QST. It's about 9' tall (I built it for a higher frequency) and it works gang busters! A friend will be putting it to use out at his farm so I'm looking forward to hearing how well it performs there. I may build another one for putting out on a remote weather station. Tonight I played a little QRP portable. I was outside with a random wire (sort of) antenna with a tuner and RG-62 coax. Worked VE6CQ in western Canada. What a blast! He had a bit of a hard time copying me at first, so I switched to the home rig. Copy there was 59/59. We did a quick swap of mics on the FT-817 to the regular mic with the One Big Punch installed and he said the signal was considerably stronger. However, with the set up I had, RF was definately getting back into the mic. Ah well, it was fun!

ADO.net, the Connection Pool & Garbage Collection

How often do we code something like this:

for each object O in ObjectsCollection
    SharedFunction.Processing(O)
    do some stuff
    SharedFunction.WriteToDb(O)
next
A little background

The SharedFunction.Processing call does some SQL reads. I'm using the SQLHelper from Microsoft.

Problem

The problem is that with the above code after about 120 objects O I'm getting an error. Connection Time Out or Max Pool Size reached.

The Cause

It is such a tight loop that garbage collection isn't having a chance to clean up the left over connections from the Processing and WriteToDb.

Solution

The solution I used was to force a garbage collection. Then everything is honky dory.

Currently their is a "global" of sorts that carries the SQL Connection string. I didn't want to mess with a global connection as that's just asking for problems. However, an alternate solution could be to refactor SharedFunction.X to be instance functions, instantiate a connection in the instance and reuse it with the instance functions.

After looking at this some more, the alternate solution really isn't that nice to implement. It would require modification of two Business Logic Layer code modules and their associated Data Access Layers. I'd rather not be worrying about carrying a connection around and be more focused on what I'm really trying to accomplish.

Zeigarnik effect

I read this with interest.  I would have to agree with it from my own personal observations.

What does this mean to us in terms of software development?  Is it better to end the day (or go to lunch?) in the middle of a task?

The Zeigarnik effect is the psychological tendency to remember an uncompleted task rather than a completed one. Bluma Zeigarnik first discovered this effect in the 1920's while in a viennese coffee shop. She noticed that a waiter was able to...
[Rachel Davies]

Untitled

The audio that spewed forth
assaulted my ears and shook my core.
The piercing highs made me wince.
Mushy bass churned in my stomach,
like a bowl of left out too long cereal.

The Omelet model of Management

Ok, so I believe in looking at the world around you and seeing if there is a metaphor their that goes along with some concept I've learned. The other morning I was cooking an omelet and saw how the steps I was taking fell in line with the primary functions of management. POSLC: Planning, Organizing, Staffing, Leading and Controlling.

Decide what type of Omelet - what you want in it.

Plan
Gather ingredients Staff
Prepare cook area and ingredients Organize
Saute the ingredients w/seasoning Training

Cook the omelet

  • medium to medium-high heatt (so it doesn't scorch)
  • watch the omelet rise
  • flip it over when ready

Management functions

  • Controlling
  • Stretching (working to minimize risk of failure)
  • Controlling and Leading
Eat the omelet and smileAppraise and give feedback

7 Habits & The Church

It's been about 10 years since I last read this book. Now that I am working through it again I am able to internalize it much better. Definitely a book that is worth re-reading. In my opinion it would behoove church leaders to check this book out. From what I have seen the church at large needs to re-examine it's mission and goals and objectives. I think we will start seeing more of this viewpoint with Generation Y'ers. Generation Y people and to some extent gen X'ers are examining their faith's goals and objectives and are finding that they are inconsistent with current practices. One example is the "mega-church" with it's multi-million dollar building and expensive fixtures. The question is, "Why did we spend $10 million on a new church instead of going for a modest structure and planting a lot more new churches?" Counterpoint, how Spartan is too Spartan? I recently attended service at a new church plant. They are meeting in a former grocery store (for now). They do plan to build a "real" church. They purchased chairs for seating and they have a band for the service. This all seems reasonable. But when does reasonable become too much? The gen Y'ers I know would be more than happy to meet, study and worship in someone's house or out in a field. More later...

Pave Hawks go to Sri Lanka

Check out this brief article and some pictures of our Air Force sending some helicopters to help out in Sri Lanka.

Washed my flash drive

Well for the second time I've washed a flash drive. The first flash drive came through ok, although my level of confidence in it's reliability dropped significantly. This drive seems to be sealed much better. We shall see later today how it faired. This has got to happen more often than we'd think.

UPDATE: The drive seems to have made it OK. Both drives are made by SanDisk. One is the Cruzer Micro and the other a Cruzer Mini. The only issue I've had is that the caps don't seem to fit very well now... too loose.

Be careful to make sure that ALL moisture is removed from the drive. Water can real a do job on your device by causing corrosion between the legs on the SMT components. You can try and remove by flushing with rubbing alcohol and placing the USB drive in a container of uncooked rice.

XP and the 7 Habits

I am currently reading Extreme Programming Perspectives and The Seven Habits of Highly Effective people. The thought that really struck me is how 7 Habits is about being principle centered and that's what XP is about. While the waterfall model is all about a rigid framework, XP is focusing on certain key principles and what needs to be done when we stick to our principles. From personal experience it seems like we come with up rigid frameworks and steps when we are trying to get a group of people that aren't operating under the guidance of the same principles to produce something. And not surprisingly, no matter how detailed your process, the person operating outside of those guiding principles will find a way to break the process or bend it in a way that is contrary to the principle that is the fundamental reason for the process. So, my experience leads me to believe that no matter how many processes you put in place and no matter how detailed they are, if the developer isn't committed to the same principles, you aren't going to get the end result you were wanting. On the other hand, if everyone is committed to the same principles it seems like you don't need much of a framework to get the desired end result.