Archive for January, 2008


January 29th, 2008 No comments

Lately I’ve been migrating lots of code developed with earlier versions of Visual Studio to the latest, 2008. One situation that keeps arising, now that MSVC is more standards compliant, is the requirement to use typename when defining and using templates.

Error messages can be somewhat misleading:

Error 6 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int c:...myapp.h 59 myapp

when the compiler sees:

static instances_list::size_type size(void) { return s_instances.size();}

easily fixed as:

static typename instances_list::size_type size(void) { return s_instances.size(); }

From the Visual Studio docs:

“This keyword must be used if the name is a qualified name dependent on a template argument; it is optional if the qualified name is not dependent. For more information, see Templates and Name Resolution. ”

I expect typename was introduced to simplify compiler implementation and, while this worked in earlier versions of MSVC, this was likely due to Microsoft’s engineers putting in a lot of hard work.

Categories: Uncategorized Tags:

Boggle Solver

January 22nd, 2008 4 comments

Last week I was asked how I might implement a Boggle solver. After a bit of thought, I hacked a version in Ruby, then ported it to Windows using C++ and WTL. The zip includes source for the C++ and Ruby versions, as well as a prebuilt Windows binary and a substantial word list from YAWL. Launch from the folder containing the word.list.

By the way, neither implementation handles ‘Q’ yet.

Download Boggle Solver Executable and Source

Categories: Uncategorized Tags:

CTO 101

January 21st, 2008 2 comments

IT professionals can increase the likelihood that large tech expenditures are approved by learning to speak the language of CEOs.

For CEOs and CFOs, approving large tech expenditures can involve a leap of faith. As an IT professional, your challenge is to remove ambiguities and clarify the decisions they face. By translating your technology recommendation into a way for your company to achieve its goals, you can build rapport and forge strong connections with your CEO and CFO.

In my experience, viewing the organization through the eyes of senior management rather than through the narrow lens of a technologist enables you to speak your bosses’ language and present a solid business case for investing in a particular tech tool.

Below I’ve outlined some techniques to sharpen your persuasive power as an IT manager:

1. Frame the issue. Preface your remarks to the CEO and CFO by defining the issue in terms that top executives readily understand. Begin by stating the organizational imperative that the CEO has repeatedly articulated, for example, “We need to cut costs 20 percent.” Then tie your proposal to the CEO’s directive while highlighting an opportunity to harness technology to achieve corporate goals in less time or for less money.

2. Think in threes. Give a trio of compelling reasons why your bosses should approve your proposal. In one attention-grabbing sentence, provide a succinct overview of your three points. (For example: “This new software will allow us to track transactions in real time, reduce our error rate and produce a new and more substantive set of metrics to measure employee performance.”) From that point, you can elaborate on each of the points with examples, evidence, statistics and other supporting data. Caution: It’s important to choose three specific points that appeal to the CEO and CFO (see technique 1)—not the three best technical features from your perspective as an IT expert.

3. Cut the tech lingo. Before presenting your recommendation to senior management, rehearse to make sure that you speak in basic or non-technical terms. Practice by delivering your presentation to a non-techie peer or a trusted mentor or business coach. Attentive peers or outsiders can warn you about parroting a vendor’s technical terms.

4. Let questions drive the presentation. Because of their extensive knowledge and enthusiasm, some IT managers oversell their proposals. They may spend 20 minutes regaling the CEO on the benefits of enterprise software or the latest cutting-edge features of a new digital gadget, offering detailed demonstrations to showcase what the technology can do. There’s just one problem: the CEO may not care. Top executives usually prefer to ask questions that drive the dialogue with their IT manager. Knowing this, you should share enticing bits of concise information while pausing frequently for questions.

5. Offer options. Senior executives like a menu of choices when analyzing tech expenditures. If they feel boxed into a corner or pressured to approve an all-or-nothing technology application, they may reject it. By providing a range of options—with specific pros and cons for each—you increase your odds of triggering a favorable response from executives. For instance, you may want to suggest a relatively low-cost pilot phase as one of the choices on how to proceed. This may satisfy hesitant officials who want to test the technology before committing.

6. Align projections with historical trends. For many executives, the toughest part of assessing tech expenditures is looking ahead to calculate uncertain costs and benefits. Will the promised payback really accrue over time? What negative surprises can arise? Could the technology prove obsolete sooner rather than later? Anticipate and address such concerns by aligning the past with the future. Draw conclusions from your organization’s experience purchasing other, similar technologies and use trend analysis to extrapolate results for the coming year. Because our brain tends to lead us to think that the near future will mirror the near past, most executives respond more favorably when they can examine the recent past to predict future outcomes.

7. Acknowledge skepticism. When you champion a new tech tool by indulging in unmitigated raves, it’s like waving a red flag in front of a wary CEO or CFO. A better strategy is to approach any technology with a skeptic’s eye. IT presenters who play devil’s advocate and consider what can go wrong might sway fence-sitting executives to approve their request and better position themselves as a steward of the business.

8. Provide a timetable to track results. Evangelizing too forcefully without giving senior officials a sense of when they can expect results will lead you to “no” more often than not. Exuberance for a new technology does not trump calm, clearheaded planning. Savvy IT experts thus present a timeframe for measuring the incremental investment in a tech-related product or service. Setting up checkpoints for, say, the 60 and 120 days after purchasing software can reassure the CEO that any long-term expenditure is contingent on concrete results in the short term.

As Chief Technical Officer, Barbara Nelson drives the long-term development of the iPass platform, products and services. Previously, Nelson served as Vice President Architecture and Design, where she was responsible for researching new technologies initiatives. She also architected the iPassConnect™ universal client, the company’s award-winning software that seamlessly integrates connectivity to a wide variety of access methods (Wi-Fi, dial, 3G mobile data, etc.) with a rich set of mobility management capabilities. Nelson chaired the X.400 Special Interest Group at the National Institute of Standards and Technology. She holds a bachelor’s degree with honors in computer science from University College Dublin, Ireland.

Categories: Uncategorized Tags: