Call Stacks

I find it interesting how deep we tend to go as developers when we’re building on top of other code. I’ve been debugging a memory leak in our app and this is part of a call stack for a potential culprit.

	msxml6!LEVEL2::operator new+16 (d:\w7rtm\sql\xml\msxml6\core\base\pointer.cxx, 68)
	msxml6!AddPointerToCache+70 (d:\w7rtm\sql\xml\msxml6\core\base\pointer.cxx, 204)
	msxml6!SlotAllocator::NewPage+40 (d:\w7rtm\sql\xml\msxml6\core\base\slot.cxx, 546)
	msxml6!SlotAllocator::Alloc+98 (d:\w7rtm\sql\xml\msxml6\core\base\slot.cxx, 339)
	msxml6!Node::operator new+26 (d:\w7rtm\sql\xml\msxml6\xml\om\node.cxx, 257)
	msxml6!Node::newNode+F (d:\w7rtm\sql\xml\msxml6\xml\om\node.cxx, 295)
	msxml6!Node::_clone+1C (d:\w7rtm\sql\xml\msxml6\xml\om\node.cxx, 2971)
	msxml6!Node::clone+13 (d:\w7rtm\sql\xml\msxml6\xml\om\node.cxx, 3028)
	msxml6!Node::cloneChildren+66 (d:\w7rtm\sql\xml\msxml6\xml\om\node.cxx, 3080)
	msxml6!Node::clone+63 (d:\w7rtm\sql\xml\msxml6\xml\om\node.cxx, 3050)
	msxml6!Node::cloneChildren+66 (d:\w7rtm\sql\xml\msxml6\xml\om\node.cxx, 3080)
	msxml6!Node::clone+63 (d:\w7rtm\sql\xml\msxml6\xml\om\node.cxx, 3050)
	msxml6!Node::cloneChildren+66 (d:\w7rtm\sql\xml\msxml6\xml\om\node.cxx, 3080)
	msxml6!Node::clone+63 (d:\w7rtm\sql\xml\msxml6\xml\om\node.cxx, 3050)
	msxml6!Node::clone+34 (d:\w7rtm\sql\xml\msxml6\xml\om\node.hxx, 486)
	msxml6!DOMNode::cloneNode+9A (d:\w7rtm\sql\xml\msxml6\xml\om\domnode.cxx, 1642)
	msxml6!W3CDOMWrapper::cloneNode+17 (d:\w7rtm\sql\xml\msxml6\xml\om\w3cdom.cxx, 254)

It’s kind of fascinating, isn’t it? Notice all the steps we go through to allocate memory. All the way from Node::operator new up to the actual call into the NT runtime, RtlAllocateHeap.

Business Development

One Developers Journey

Johnny AppleseedKevin Hoctor: “The irony is that I’m the one always preaching to others that they need to be passionate about what they do. Don’t settle for a paycheck. Don’t work at a place that makes you want to rush home and down a bottle of vodka to balance out the day. Yet, here I am doing exactly what I’ve told my kids not to do.”

Kevin made the transition from frustrated Windows developer to Indie Mac developer and is still going strong. About six months after the above post Kevin shipped Debt Quencher 1.0. I don’t think he’s looked back.

That is an inspiration.


T.T.F.N LEVEL, I Still ♥ You

It’s true. Today is my last day with LEVEL Studios. It’s hard to say goodbye to a place like this, especially when you do love her and her people. It’s been a fun year, but it’s time for me to move on.


That’s the hard part to explain, because I really do love this company. It’s full of smart, energetic, people. It has a great company culture and fantastic leadership. The “problem” falls squarely with me.

They're bouncy, bouncy, bouncy, bouncy, bouncy, fun, fun, fun, fun, fun...Anyone who knows me knows how much I love the native client experience. I’ve had the honor to work with a team that created a new segment in Windows drawing applications and I’ve worked on native iOS applications and I LOVE that experience. I think User Experience, or UX, is so important and I believe the best way to provide that important experience is through native API’s provided by the platform vendor. So, yes, I’m going back to writing desktop software. No, it’s not on the Mac, or iOS, even though I’d love to do that. I’m going back to writing Windows software. That’s right, back to C++ and Windows! I can see my fellow LEVEL’ites rolling their eyes. That’s ok, I likes me some native clients. It’s in my blood.


Where is a great question. We’re staying in San Luis Obispo, we don’t plan on leaving this place. I’m going to work for a company called CygNet. They’re a product company. From the CygNet website.

CygNet Software provides enterprise software and industry solutions that collect, manage and distribute essential operations data. Robust, proven and evergreen, CygNet extends customer horizons with improved operational efficiency and increased market responsiveness

I’ll be working on products used to collect and analyze data from Oil and Gas Pipelines, and I get to work on UI again! Yes, I’m pretty stoked about it!

On the LEVEL

LEVEL is a definite powerhouse when it comes to the web. In fact I’d encourage young up-and-coming web developers or designers to consider LEVEL as a place to start your career. You’ll learn loads. LEVEL is chock full of great web developers, not to mention fantastic designers.

A wonderful boquet of flowers.Oh, yeah, and there’s this great group of folks, they keep in a dark room, that develop great, high performance, highly scalable, web services. One of our web services is serving near four million users worldwide, and growing every day. Yes, LEVEL can build these things. Shhhhhh, keep that under your hat, it’s a secret!

Would I work here again? Absolutely. That’s what made this decision so tough.


I don’t believe in saying Goodbye, goodbye is forever. I’ll just say TTFN *Le Publetta.

*Le Publetta is a combination of LEVEL, Publicis, and Rosetta. I think it’s a strong name, don’t you?

Development fun Life

The Past Weblog: My First Windows App

The original Rob Fahrni “Back when I was a young programmer… That seems like the correct way to introduce you to my first ever Windows application. I’ve kept the code for many years, and I’ve only recently moved it from 3.5″ floppies to a CD. I was checking out the code a couple of days ago and boy have I come a VERY LONG way since that project.”

I just happened to stumble upon this post while Googling for something to use in another post. My old weblog served me well and has become a bit crufty over time. The archives still work and the site still gets quite a few hits a day thanks to Google, and a nice nine-year run. (Wow, I forgot to celebrate my 10th year of weblogging, darn.)

My work on iOS based applications reminds me of my time back in my early Windows development days. It was so exciting and new. I had so much to learn and I was excited about learning it. That’s how I feel about iOS today. It’s a very exciting time.

Anywho, the link to the code for Rob’s Tic-Tac-Toe still works.

Maybe I should do an iOS version, just for old times sake?