Last year, around this time, I did a 2008 retrospective with one blog post from each of the blogs hosted by Atalasoft. Here is my 2009 version.

Atalasoft Office Blog

This year, Christina (our Vizit Marketing Manager among other things) started an office blog to let our customers, partners, etc get to know us a little better. No post does that better than the chronicle of Bacon Day:

The 3 of us sat around my desk and thought, "What is something FUN we can do for the handful of staff members in the office? Something that will make the rest of those guys, enjoying the night life in Philadelphia, CRINGE with JEALOUSY?"

Steve's answer to everything is "bacon." And in this case, he was 100% spot on.

I’m not sure how you name something “Bacon Day” when you do it three times in a year.

Rick Minerich’s Development Wonderland

Rick has been speaking more and more about F#, and his blog has become a popular destination for the community. In June, he wrote this concise history of programming languages – my favorite part is the quotes he chose for each part:

“Real programmers can write assembly code in any language.”
Larry Wall

Steve’s Tech Talk

Staff meetings at Atalasoft became epic in 2009. In May, we changed our format so that a rotating producer would be in charge of organizing and running the meeting. One aspect of the meeting is a topical presentation on something relevant to the company – in July, Steve, our Chief Architect, explained our development process to the rest of the company with an educational video.

Bill Bither’s Insights

Bill, our CEO and founder, wrote this entry just ahead of the Vizit 1.0 release with some practical advice on introducing a new product on a limited budget:

We researched the market, talked to potential customers, built relationships with industry recognized players, and are now in the midst of turning Atalasoft from a one product company to a two product company – all without any external financing, and during a recession.

I believe that now IS a good time to start a new company, or launch a new product. This is the year for small agile companies to innovate while larger companies cut back and wait it out.

David Cilley’s Ajax Imaging Blog

While Dave was working on a demo using YUI, he whipped up a way of converting YUI Button Groups into Image Buttons.

I poked around YUI’s documentation a bit and came up with simple function that can convert a YUI Button into an image only button, much like a button on a tool bar.  These converted YUI Buttons still maintain the same original properties internally, so you can use them interchangeably.

Jake Opines

When Jacob told me he was going to move his personal projects from WordPress to SharePoint, I was shocked. I personally use WordPress, but have been unhappy with it for years – it’s just the best of a lot of bad alternatives to me. This entry explains some of his rationale for using SharePoint 2010 over LAMP:

SharePoint offers a framework that abstracts away databases and security design, it gives you a complete content management system, a plug-in architecture, and for the price, unmatched scalability. This doesn't even begin to take into account the growing ecosystem of third party features available both for free and fee.

If you can’t be a developer, be a developer supporter

Elaine runs our support and training. On her blog, you’ll find a mixture of information about our products and posts like this one, an account of her experience as a customer using some other company’s support:

I could end all this with some philosophical advice and parallels of my experiences as a support engineer in the software industry, but, really, everything is pretty clear in four rules:

1. Do it right.
2. If you can’t, communicate.
3. Do what you can do.
4. Do it quickly.

If you build it, They will come

Dave named this blog when he was in charge of builds – now, he’s a Vizit engineer (but still the most knowledgeable about our builds). When these worlds collide, you get a very thorough post on using TypeMock for SharePoint to mock SharePoint SPSecurity Delegates.

The main problem I found was that SPSecurity had to be mocked, otherwise it would throw a NullReferenceException […] for obvious reasons, there’s no SharePoint to test against!  Let’s flex those Mock muscles and handle calls to SharePoint’s static objects.

Insert Quality Here

In 2008, I discovered LLVM for Cocoa/Objective-C static analysis, which, unlike Lint, lists problems with no false positives. Adam did this round-up of static analysis tools last year that gives a few good reasons to use them even if their output is unwieldy.

It has seemed to me that most folks' (including mine) first impression of the massive amounts of output that a static analysis tool generates is, “Oh, dear Lord. What's all this crap about code style?”, and “Where're the useful results?”.

Dan Barvitsky

Our newest engineering blog is from Dan. I’m a sucker for sequence diagrams and unit testing techniques, so I love this post he wrote about unit testing to find concurrency bugs.

When I run this test it passes on my laptop. Why? Because it is fairly old and has single CPU. Once I move it to my desktop (TADA) it still passes inconsistently. If I uncomment priority setting line it messes everything up badly. It turns out threading introduces some randomization which makes test non-deterministic. Bad test. We’d better fix it.

He thought about the problem some more and eventually documented a solution.