December 2004 Entries

2005 Article Topics

I’ve given some thought about what I’d like to write about in 2005. I enjoy writing, and I even enjoy thinking about writing. Writing is a great way to come to grips and form opinions on a topic, and thinking is a relaxing way to pass time. I’ve thought up a list of topics I’d like to research and write about for OdeToCode next year. Here are some of the general areas. Interviewing Configuration management Debugging Patterns Unit testing Project management How’s that for a list of vague predictions? Perhaps I should post the top 10 articles I won’t write...

Happy Birthday

Happy Birthday, OdeToCode. You are one year old now. I'm amazed at how well you've done in just one year. Let's see what we can pull off in 2005.

Fragile

When I was growing up, I thought I lived in the most boring place on earth. The Blue Ridge mountains in Maryland reach a humble elevation of 2000 feet (600 meters). The mountains are known for coal, and coal is relatively uninteresting – at least compared to, say, the hot magma inside of Mt. Saint Helens. As a kid, I always wanted to know what an erupting volcano would look like. The climate in the northeastern United States is tame. Tornados are extremely rare, and I figured there was little chance of me being whisked into the Land of Oz...

The Shared Folders

Tomorrow, dear reader, is not a day I am looking forward to. Tomorrow, I’m going into the labyrinth alone. I’m heading into the shared folders. The shared folders embody the essence of our company. They contain the past and the future - all inside of a single hierarchical structure. A few months ago, I went into the folders, and they looked something like this: I went to the powers that be, and asked for some insight as to the structure I found. Are the final specifications the complete specifications? Or are the complete specifications the final specifications? Do we...

Atkin’s Query Plan

One of our customer’s warehouses threw a fit over an extraction query this week. The query ran for two hours before we cancelled. We expected the query to run for about 5 minutes, but the database turned out to be subtly different then the testbed we use for optimizations. Here is a zoomed out view of the estimated query plan we started with: Notice the line along the top where SQL is working hard between join steps to prepare data for the next join. After every little change to the query and indexes, I’d revisit the zoomed out plan to...

Even More On Static Members

Bruce brought up an important point about my MSDN article that I left understated. In order to show the full impact of the beforefieldinit flag on a type constructor, the code has to compile with optimizations. Also, many optimizations take place with the JIT compiler, but the JIT doesn’t optimize when the app is running under the debugger. See John Lam’s post “Beware of Heisenberg effects” for in-depth coverage. Static methods are debated regularly in the forms and newsgroups. I posted two little OdeToCode tidbits on the subject: Statics & Thread Safety Part I and Part II.

This Post Brought To You By The Letter K

When I was in school, I decided in addition to needing money I desperately needed to expand my cooking repertoire beyond grilled cheese sandwiches and scrambled eggs, so I applied to be a cook at a steak house restaurant. After three years of part time work in a kitchen, I came away knowing a lot more about meat, fish, and vegetables. A funny thing happened along the way, and it started the day I was hired. It went something like: Manager: So, ahhh, Kenneth. Do you prefer to go by Kenneth or Ken? Me: Actually, I use my middle name,...

Reporting Services News

Here are some miscellaneous tidbits I picked up about Sql Server Reporting Services over the weekend. Service Pack 2 It looks as if Service Pack 2 will bring some new features to Reporting Services, including client side printing, SharePoint integration, and a new Report Viewer component. The man, myth, legend, and mid-Atlantic Developer Community Champion Geoff Snowman will deliver a webcast about the new features on January 10. People have complained about the lack of a ‘direct print’ feature in Reporting Services since the initial release. Earlier this year it was refreshing to see Group Program Manger Brian Welcker point...

Top Features for SQL 2005

The CLR gets all the press in articles about SQL Server 2005, but I think the most popular features won’t involve CREATE ASSEMBLY. The most popular features will be those that prevent ‘uncomfortable conversations’. You know, those conversations you don't want to hear.... Feature: DDL TriggersPrevents: Well I thought I was in the test database when I dropped the Orders table, but, um, well, um. We have a backup right? Feature: Snapshot IsolationPrevents: Hi, I’m Sandy with the Oracle Corporation. Your application will suck wind with with their database. Pick us. We can do things they can’t do, blah blah blah multi-version consistency blah...

Omea Reader

Earlier this month Christopher Steen gave a CMAP presentation on ReSharper by JetBrains. Chris had a lot of ‘oohs’ and ‘aahs’ going. I was prepared to steal Chris’s laptop and lock myself in a room- just to spend a few minutes alone with the tool before surrendering to police, but I exercised patience instead. While checking out the JetBrains site I noticed Omea Reader (currently free) and Omea Pro. I’ve been looking for a better newsgroup reader. For the last 10 years I’ve used Agent, but it still doesn’t support multiple newsgroup servers in a single instance. Omea Reader currently...

To You, Sony

Dear Sony, By the time you read this, I’ll be gone. I’m sorry for doing this, but I feel our relationship has run the course. I realize this might come as a bit of a surprise to you, but I need some freedom. I’m going to gather together all the pieces around the house with your name on them and put them into a pile. This includes: The 36 inch television with a flickering display. The two dead ‘MP3’ players. The phone that requires a hard reset every two days. The Playstation that requires a manual calibration every week (not an uncommon...

January MSDN Magazine Is Online

I’m quite excited to see my article published in this issue alongside so many people I’ve read and followed for years. Just one example is Paul DiLascia, who has been writing a C++ Q&A column each month. I still have a well worn copy of his Windows++ book that I bought 10 years ago. I even remember where I bought the book, mostly because I thought the store name was so cool  (README.DOC). I think I might frame this issue so my kids can look at it someday and marvel at the primitive tools we work with.

Threat Modeling For the Holidays

Many of you will have friends and family over between now and the beginning of the new year. They’ll eat your food, drink your eggnog, and fall asleep on your sofas at the most inconvenient moments. More importantly, however, they will be around your electronic equipment and your home network. Don’t let love, friendship, or a blood relationship lull you into a false sense of security. The time to start planning your defense starts now. Whenever I need some information about security, I turn to Anil John’s SecureCoder.com site. Anil is a fellow CMAP member whose obsession with security shows...

Hiding Report Parameters

Dear Vivian: You didn’t leave me a return address, so I hope you see this response. I said I had an answer for you, but it’s taken many days to respond, and I apologize. It has been a difficult week in the salt mines. Deployments. Conference calls. Customers destroying network settings. Sales staff destroying demo software. It's crazy around here. Anyway, the question was: how to hide a parameter in Reporting Services? Go to the Report menu, select Report Parameters, and highlight the parameter you need to hide. The key is to clear the Prompt text box, and make sure to...

AppDomains and ASP.NET

Thanks to Jason Haley for the kind words about OdeToCode.  Today I responded to some questions I’ve gotten over the last week with a little something entitled “What ASP.NET Programmers Should Know About Application Domains”. I hope you like it.  

Thinking Ahead

Local carpenters have rebuilt the Ise Jingu shrine in Japan every 20 years since 690. The 62nd rebuilding will start in 2013, and will take about 8 years. Twenty years seems like a terribly short time for a shrine to be around. A common mortgage term in the U.S. is 30 years. We’d be upset if we had to rebuild our homes every 20 years. On the other hand, twenty years is a terribly long time in software. Even 5 years can be a stretch. Off hand I can only think of 1 major piece of Microsoft software that has...

Speaking Of Blogger Power

If you’ve never heard of a company named MEDITECH, it doesn’t surprise me. You might be surprised, however, to know they are one of the largest enterprise-scale software vendors in the healthcare industry. They are a private company and go quietly about their business. With such a quiet reputation, it was surprising to see their President and COO accept an invitation for an interview. Not just any interview, but an interview with a blogger – and an anonymous blogger no less. You can read the interview over on HISTalk, which always has juicy tidbits about the healthcare IT space from...

I'm Grumpy?

A couple days ago, my editor at Packt sent me an email and described my blogging as “grumpy”. Wow! I never thought of myself as a grumpy type. I took an informal poll among co-workers and 3 out of 3 people said I did not fall into the grumpy category. The next day at work, the CEO came in and announced the need for a “get on the same page” type of meeting. The meeting time was 12 noon, and he ordered food to be delivered. The food, he explained (while looking directly at me), was because “some of you...

ISNULL versus COALESCE

SQLJunkie Adam Machanic has a good analysis of the SQL functions ISNULL and COALESCE, both of which we can use to replace NULL values in T-SQL. I wasn't aware of the perf difference, but I quit using ISNULL when it bit me in some code I was using to extract records from a client’s database. They had a field allowing NULL values where we did not. I was using something like the following batch, which has a bug. CREATE TABLE #Foos ( FooID int PRIMARY KEY IDENTITY, FooDescription varchar(5) NULL ) CREATE TABLE #Bars ( BarID int PRIMARY KEY IDENTITY, ...

Scott Allen
Posts - 869
Comments - 4493
Stories - 14