Hello, and welcome to DDJ.com
CMP Media Launches New Dr. Dobb's Journal

SD West 2006 announces this year's list of Jolt Product Excellence Award winners and Productivity Award winners.

LOG INRegisterForgot password?
What are the green links?
All Access members only
RSS Feed
DDJ > Dr. Dobb's Departments > Global Developer

Global Developer

Editor's Note | News | Features |

Working across timezones? Building apps (or selling them) in EMEA or ASIA-PAC? Developing without borders demands a new take on teamwork and new flexibility in transferring, sharing and applying know-how.


The Future of Commercial Open Source
Jonathan Erickson
Andrew Aitken examines some of the challenges and opportunities facing the commercial open source software industry. (MP3, 3:07 mins.)

Adventures in Offshoring: Global Success Stories
Software Development editors
The latest trends are polar opposites. While some mavens crow about pair programming and on-site customers, others distribute development across the globe. Do lower costs justify oceanic rifts among team members? Three offshore project managers say yes.

Career Center: Going It Alone
Gary Evans
Ever dreamed of leaving that corporate development job for the challenges of independent software consulting? Here are 10 tips to make your solo career path a success.

People, Policy & Primacy in the Offshoring Era: Webcast with IEEE’s Ron Hira
Alexandra Weber Morales
Dr. Ron Hira of IEEE-USA, and SD's Alexandra Weber Morales discuss salaries and joblessness for IT workers; growth trends of offshore outsourcing firms such as Infosys and Tata Consultancy Services; and current U.S. policy and research on offshoring.

Vendor Perspectives NetSeminar – Practical Best Practices for Development
Alexandra Weber Morales
When it comes to using best practices in Microsoft-based development, many organizations are still stuck at square one. The good news is that you don’t need to turn your organization upside down to take advantage of basic disciplines that save you time, money and effort, while improving overall application quality.

Building and Releasing Winning Products
Alexandra Weber Morales
Luke Hohmann, author of Beyond Software Architecture: Creating and Sustaining Winning Solutions (part of Addison-Wesley's Martin Fowler Signature Series), describes how developers at independent software vendors can avoid classic mistakes in the second half of the lifecycle, from prototyping through quality assurance, prelaunch and launch.

The Changing Face of Software Licensing: Managing Rights in the Global Digital Economy
Alexandra Weber Morales
DRM, license compliance, and targeted marketing are some of the reasons developers are looking to the realm of license management. This seminar explores the key industry software licensing trends in the global digital economy, and discusses how the US legal provisions are affecting the licensing climate in the US.

Career Center: Are You a Promotable Developer?
Donna Davis
Racing up the fast track or mired in corporate mud? Take this 10-question quiz to learn how to ensure a career upgrade in your future.

Salary Survey 2005: Holding Pattern
Alexandra Weber Morales
Little has changed in the last year, according to our eighth annual examination of compensation and satisfaction trends for software developers. Salaries have increased by a hair, and most other job measures are dormant or just budding.The one bright spot? The continued growth of head-hunting.

Begging for Brains
Warren Keuffel
Our job crisis is partly due to the advent of global software development and the dearth of immigrants. Is a flattened world squeezing the economic juice out of the U.S.?

10 Outsourcing Antipatterns
Ronald B. Smith
It's deceptively easy to farm out IT work. Here are some worst practices that guarantee your time and money won't be well spent. But if you cared about that, you wouldn't be reading this, right?

Offshore Forum: Counter Point
RON HIRA
Eroding Opportunities: Although it offers obvious advantages for U.S. companies, the global IT business model based on offshoring is not nearly as beneficial for the U.S. workforce—-or our economy.

Offshore Forum: Point
MARK WESKER
Outsourcing Works: The biggest threat to the U.S. software industry isn't offshoring—it's insular attitudes. Cast off the myths and open your mind to this new global opportunity.

11 Clients You Need to Fire Right Now
Christopher Hawkins
Is your customer a chiseler, perpetually dissatisfied or a bully? Are you tired of justifying software development practices to people who think it's just so much high-paid typing? It's time to cut loose those clients who are earning you gray hairs.

Software Piracy: Who Are the Real Victims?
Paul Panks
Does exchanging disks or downloading from the Internet really undercut into sales of software?

Measuring Java Reuse, Productivity, and ROI
W. David Pitt
David presents a way to measure productivity and reusability that occurs in Java development projects.

Agile Outsourcing
Scott Ambler
Communication barriers, time zone and cultural differences all hinder offshore development. But what if offshore titans learn to work with collaborative techniques? By Scott W. Ambler

Cooperation Costs
Warren Keuffel
Apparently, it takes more than genius to make it in the agile world. Will pro-agile hiring criteria cripple our industry by sacrificing problem-solving skills at the altar of collaboration? By Warren Keuffel

The Dream Team
Alexandra Weber Morales
What if you could have a staff of five software development superheroes? Whether it's building the Mars Rover or Amazon's new A9 search engine, no task is beyond this team of mythic proportions, endowed with the skills and experience of IT greats.

Back into the Bottle
Fariba Matin, Steve Adolph
How do we turn back the clock and select a single version of the product when it continues to multiply·and make us money? We offer Epsilon four options. Part 4 of a series.

Save Your Job
Howard Adamsky
A good education used to equal employment. But today, in the face of outsourcing, work means much more than doing your job. Here are six tips to keep you working.

Cheating Deadly Success
Steve Adolph, Fariba Matin
Unlike manufactured goods, the cost of software increases with mass production: the more lines of code, the more each line costs. How can we change this? Part 1 of a series.

Metamodeling with Perl and AMPL
Christian Hicks, Dessislava Pachamanova
To create sophisticated financial models that required simulation, statistical analysis, and multistage optimization, our authors turned to AMPL and Perl.

Getting in the Game
Tamara Carter
New Orleans won't be left behind in the next high-tech explosion. Government officials, local business leaders and universities are working to transform the Big Easy into the Silicon Bayou.

Coming Out of Cold Storage
Alexandra Weber Morales
The good news? After two years of stagnation at $77,000, staff salaries show a glimmer of growth this year, to just under $80,000, and recruiters are beginning to stir after a long winter. The bad news? Fewer women are in IT, and benefits are frozen solid.

Quantifying Popular Programming Languages
Dr. Thomas Plum
In a study of programming languages stipulated in job listings, Perl scores higher than you might think.

WinHEC: The Future of Windows
Jerry Pournelle
Jerry spends some time at WinHEC, the annual Windows Hardware Engineering Conference.

Optimizing Pixomatic for x86 Processors: Part I
Michael Abrash
In the first installment of a three-part article, Michael discusses his greatest performance challenge ever—optimizing an x86 3D software rasterizer.

Out of the Shell
Rick Wayne
The fabled MKS Toolkit lives on, enabling Microsoft OS developers and administrators to use the same bulging toolbox as their Unix brethren. Grep, vi, rlogin, find—it’s all here.

The 14th Annual Software Development Jolt and Productivity Awards
Rosalyn Lum
Recognizing innovation, effectiveness and quality: Open source and Web offerings come of age.

Palpable Progess
Gregor Kiczales
From the podium to the hallways, the third annual Aspect-Oriented Software Development Conference in Lancaster, England, was suffused with the energy of commercial adopters.

Tech Tips
George Frasier
Boris Eligulashvili shows how to programmatically invoke the Microsoft Speech API.

1998 Salary and Job Satisfaction Survey
George Walsh
Finding a comfortable balance between earning money and finding happiness can be a difficult task. Naysayers might even tell you the two goals are diametrically opposed by their very nature. It's a vicious cycle perpetuated by the American dream. By earning the money that buys us the freedom to pursue the happiness we desire, we sacrifice that very freedom. And so it goes.

Hot-House Computing
Jerry Pournelle
Jerry's newest system is built around a 3.2-GHz Intel "Prescott."

Tech Tips
George Frasier
May 2004 Tech Tips

People, Then Process
Scott Bureau
The annals of IT bulge with page after page of project failures. But when we look at the flip side of the story, we find a common theme behind success: leadership, teamwork and skill.

The Three Ps
Larry Runge
The interview is a brief—and crucial—window to land that coveted job. Take advantage of this make-or-break moment and become an Interview Ace by preparing, practicing and performing.

The Politics Discipline
Scott Ambler
Extending the traditional RUP lifecycle with the machine that powers development may be controversial, but it’s time to expose what really goes on around the office.

Dr. Dobb's Journal Excellence In Programming Award
Jonathan Erickson
P.J. Plauger is the recipient of this year's Excellence in Programming Award.

A Wrinkle in Time
Nicole Garbolino
At the 17th Annual Software Development West Conference and Expo, we're commemorating the two decades that have passed since our field's current luminaries first started to shine.

None of the Above
Larry Runge
Knowing what not to say on your résumé makes all the difference. You're aiming for an interview, right? Don't list salary, complaints about your last gig or references.

Changing the World
Donna Davis
In which one overworked IT manager dreams of the day her efforts are recognized, and realizes the importance of truly making a difference—one line of code at a time.

Cold Comfort
Warren Keuffel
Robert Reich, Secretary of Labor in the Clinton administration, and other offshore cheerleaders, push aside the dark clouds to find the sunny side of outsourcing. Can we believe them?

Well-Chosen Words
Larry Runge
By packing your résumé with concise, detailed descriptions of your accomplishments, you can give hiring managers a clear image of your expertise, versatility and value.

Clear Eye for the Stale Company
Michael Swaine
Sun gets a makeover.

Has This Trend Sprung a Leak?
Alexandra Weber Morales
Proponents of the contractor-programmer labor model argue that design and project management jobs will stay in the U.S. while basic coding gets shipped out. But is the tide of high-abstraction tools and practices rising fast enough to compensate for historic levels of IT unemployment?

Offshore by the Numbers
Alexandra Weber Morales
The types of projects being outsourced closely mirror the makeup of application development overall, but they do skew to large, Java-based client/server systems for the software, finance and telecom industries.

North Dakota: Is This Near-Shore Enough?
Tamara Carter
The Great Plains are trying to establish themselves as a new tech mecca. Will North Dakota help to stem the offshore tide?

You're a Schmatte
Ben Ettlinger
The offshore exodus inspires some sad musings about the attitude of gratitude—and its conspicuous absence in today's American corporate life.

Experience Pays
Larry Runge
Hiring managers value time in the trenches over advanced degrees and tool mastery—so make your résumé reflect that fact. Part 2 of a series.

Are You Certifiably Agile?
Scott Ambler
Want to stay competitive in these volatile times? Certification in your chosen specialty may help you stay employed.

Policy-Driven Design & the Intel IPP Library
Shehrzad Qureshi
Shehrzad turns to generic programming techniques when using Intel's Integrated Performance Primitives Library to build a C++-based signal-processing application.

Consummate Coaches
Rosalyn Lum
Watts Humphrey, father of CMM, kicked off a week of best practices as more than 600 developers gathered in Boston from September 15 to 18, 2003, to learn from the experts and network with their peers at Software Development's semiannual encounter.

Résumé Rehab
Larry Runge
In today's tough economy, you need more than technical savvy to get your foot in the door—your résumé must also reflect the skills that managers are seeking. Part 1 of a series.

Developing with Components
Author No
Developing with Components

Feedback

In which readers look to the falling sky, get in an uproar about offshore, and revisit horror. Plus, our Mr. Been goes batty.

A Blind Spot
Warren Keuffel
Despite XML's great promise in expediting the production of Braille educational materials, politics and the profit motive are threatening to stall its adoption.

Spy: A Windows CE API Interceptor
Dmitri Leman
Spy, Dmitri's Windows CE API spy, is a valuable tool for exploring, troubleshooting, and debugging Windows CE-based applications.

AutoLogout for Application Security
Jonathan Lurie
AutoLogout is an application-level security technique that shuts down the system due to user inactivity. Jonathan presents a C# AutoLogout implementation for .NET.

The First 10 Seconds
Roland Racko
A product's installation can be a make-or-break moment for your users. Take a look at three top installers that help cement that all-important first impression.

Dr. Dobb's Software Tools Newsletter - July 2003
Shannon Cochran
Do you find keeping up with new developer products and version updates harder than keeping up with the Joneses (whoever they are)? If so, Dr. Dobb's Software Tools e-mail newsletter is just the deal for you. Delivered once a month to your mailbox, this unique newsletter keeps you posted on the latest in SDKs, libraries, components, compilers, and the like.

WPA, Where Are You?
Christopher Grassi
An IT professional's post-tech boom job hunt proves that, in this dreadful economy, it's all about who you know—and how low you are willing to go before prospects improve.

The One-Click Trick
Gary McGrath, John Viega
To make your customers’ lives easier, you store their credit card information and enable fast payment. But watch out—balancing usability with privacy is a wobbly business.

The 13th Annual Software Development Jolt & Productivity Awards
Rosalyn Lum
Ever-evolving from their 1990 launch, the year's Jolts expand to include five new categories, juried and reader's choice tracks and—surprise—an electric blue bottle!

Crossing the Full-Text Search - Fielded Data Divide from a Development Perspective
Author No
Where individual PCs can store gigabytes of data, and enterprise Intranets and public sites terabytes, finding the correct document (or Web page) requires a complete arsenal of full-text indexed and fielded data search tools. This article covers five methods for synthesizing full-text and fielded data searching from a development perspective: (1) self-contained documents with fields; (2) separate database and documents; (3) BLOB data; (4) adding fields "on-the-fly" during indexing; and (5) display of "stored fields" in search results.

You're On Your Own
Warren Keuffel
Belying business journalism’s puff pieces on sought-after free agents taking the gravy train, stats in today’s tough economy reveal that IT independence is no easy journey.

Plan Perfect
Johanna Rothman
Don't depend on a work breakdown structure to keep your project on target: Write it out to help managers, team members and stakeholders find consensus.

Wrap It Up
Larry O'Brien
Sometimes, good things come in big packages—and the .NET Compact Framework is mighty big, signaling once and for all to cautious companies that it’s time to jump on the .NET bandwagon.

Curiosity Never Killed the Programmer
Rick Wayne
As you can imagine, good developers are a diverse bunch, but the ones I know all share one trait: the urge to understand how things work. To help Windows programmers scratch that itch, Heaventools offers PE Explorer. The product lets you look inside Windows “portable executable” files (EXEs, DLLs, SYSes, OCXs and more) and figure out what’s going on.

Mobile Miracles
Rosalyn Lum
Once the Next Big Thing, mobility is almost a matter of course today. But, beyond the lowly PDA and ubiquitous cell phone, these exciting new apps stretch the far, bright horizons of Cool.

BSTR to char* String Conversion Gotchas
Mark Baker
The OLE2T() and T2OLE() macros convert strings effectively—but don't use them in an exception handler

Skinning in MFC, Part 5
Mark Baker
A skinning manifest describes the appearance of your app, but it can also add behaviors that extend your app's functionality

Business Analysts: Bridge or Barrier?
Scott Ambler
Many organizations have an IT role called business analyst, sometimes called system analyst or simply just "analyst." No matter what they're called, these professionals serve as bridges between the development staff and your project stakeholders. Business analysts work with project stakeholders to identify, document and validate requirements. They may also help to scope the system, identify potential areas of automation and reengineer the underlying business process. Business analysts work with developers to translate those requirements into something that they understand, and then translate developers' subsequent questions into something the stakeholders can understand--thus, the cycle continues.

Geekcorps Wants YOU!
Laurie O'Connell
While headlines scream of corporate corruption, a different kind of startup called Geekcorps proves that technology isn't bereft of benevolence. Funded by the U.S. Agency for International Development and independent partner companies, the North Adams, Massachusetts-based nonprofit sends technical volunteers to developing nations to work with small companies and community organizations, sharing IT and business skills.

Data Validation Strategies
Mark Baker
How do I force a control to retain focus if a user enters incorrect data?

Isn't That Special?
Scott Ambler
Each year, it's traditional to make a New Year's resolution. Personally, many people resolve to exercise more, eat vegetables or quit smoking. Professionally, folks resolve to learn a new skill, earn certification at an existing skill or eliminate a bad habit, such as not following common coding standards. While these resolutions are clearly important, they're also rather dull. Here's a more radical resolution for software professionals: "I will become more than a mere specialist and instead become truly effective at software development."

Private Desktops & Windows XP
Stephen Lardieri
Kiosk and similar applications need full-screen user interfaces that suppress other dialog boxes and the windows of other applications—something that's easier said than done under Windows XP. Steve shows you how.

T3: Technology To Teaching
Jonathan Erickson
California's Technology to Teachers Initiative is a good first step toward addressing both high-tech unemployment and the shortage of math and science teachers.

WinForms Data Validation
Chris Sells
The Validating event can help validate free-form data entry entered into a text box control

Repainting Non-Client Areas
Mark Baker
How do I force a refresh of non-client areas of my legacy apps when the windows are inactive?

Process Termination
Mark Baker
What's the right way to terminate an Explorer.exe process on all of the different versions of Windows?

Tech Tips
Chris Branch
Trouble With RegQueryValueEx() and Uninitialized Values • Michael Brown
If you try to retrieve data from a REG_SZ value that has never had data put into it, RegQueryValueEx() returns a size of 1, but it should return a size of 2.

Disabling Ctrl+Alt+Delete on NT/2000 • Alan Feldman
The question of how to disable the Ctrl+Alt+Delete key sequence has been raised on numerous newsgroups, with answers suggesting a variety of solutions. But those methods are not as clean as the one Alan reveals. It involves some interesting hacking with the Winlogon process.

Creating Sticky Windows • Mark Repetto
Sticky windows are aware of the position of other windows spawned from the same process and will stick together according to a “server” and “client” hierarchy. Clients stuck to a server window will move when the server is moved.

Using Default Argument Values for Optional Output Results • Dan Shappir
You can declare C++ functions with optional parameters that assume default values when not supplied by the caller. In the case of a pointer to an optional output buffer, the default value is typically NULL, so care must be taken to avoid writing to a NULL pointer. Dan presents a trick that can help simplify your code in this situation.



Encrypting and Decrypting Data with the CryptoAPI
Paula Tomlinson
The CryptoAPI seems quite complicated, but by just using a handful of the simpler routines and default parameters you can do some very useful things, such as hashing data and encrypting and decrypting data.

Design Mode Drag-and-Drop
Mark Baker
How can I implement a drag-drop feature similar to way that Microsoft’s Visual Studio Resource Editor allows a user to move controls around on a dialog while in design mode?

How Can I Trap the Enter Key to Control the Cursor on a Dialog?
Mark Baker
The Tab key and the mouse are the default controls for navigating through text-input fields, but for some data entry tasks, the Enter key makes more sense

New Products



Readers' Forum



From the Editor
John Dorsey


Tech Tips
George Frasier
Font creation and rounding differences
Philip Hamer

How to relocate GetOpenFileName dialogs
Stephen Schumacher

Querying Multiple IDispatch method identifiers
Matthew Wilson

Partial array expansion in the Microsoft Visual Studio Debugger
Gigi Sayfan



Generating C# or VB.NET Code
Paul Kimelman
Paul shows how to write a code generator in VB.NET that is capable of generating a strongly typed collection of any type in C# or VB.NET.

Template Fixes and Type Conversion Bugs
Jeff Claar
Jeff presents two more workarounds for member template functions in VC++ 7.0. He also shares a reader's letter about a bug in VC 6 involving arrays, pointers, and type conversions.

ISAPI Proxy Filters for IIS
Mike Mongale
Some ISAPI filters conflict with FrontPage Server Extensions or other filters that process HTTP requests. Mike shows a workaround that uses a custom ISAPI DLL as a "proxy" DLL for a vendor's ISAPI filter to make these mixed environments work.

Writing SMTP-Based SOAP Messages in PHP
Shane Caraveo
With the buzz around web services, most SOAP usage has focused around the HTTP protocol, but other protocols can be used as well. SMTP has advantages not found with HTTP, including SMTP's ability to store and forward messages, implement one-to-many broadcast messaging, and use attachments to embed extra data into a SOAP message.

TCP Programming Gotchas
Noah Davids
Programs that don't properly parse TCP-based messages may exhibit random failures that can be hard to detect. Noah provides some insights to avoid random TCP parsing errors.

Using OpenSSL with Asynchronous Sockets
Len Holgate
OpenSSL is often implemented using a UNIX-style sockets architecture. Len presents an "asynchronous connector" for OpenSSL that makes it easier to use on the Windows platform.

Encrypted Preferences in Java
Greg Travis
If you're using the Preferences API in Java 1.4, this encryption strategy lets you hide your preferences data in plain sight.

Web Services Workshop
Rick Wayne
Everybody who does J2EE development knows about BEA's WebLogic application server. Now, BEA has come out with a development workshop to simplify adding Web services into the mix.

PDC and DevCon Conference Reports

Paula has been on the conference circuit this fall, hitting two of Microsoft’s shows. She reports on .Net My Services and all the SDKs released at the conferences and sorts out the various permutations of Windows CE now available. She also picked up a book she’d like to recommend, Essential XML Quick Reference, by Aaron Skonnard and Martin Gudgin.

Make It Snappy
Petter Hesselberg
Petter demonstrates his take on a snap-to-edge behavior found in some programs. This feature will allow you to snap a window to the edge of the screen whenever it’s dragged near the edge or to confine a window to the working area of the screen.

Tech Tips
Chris Branch
Memory Corruption Using VB Type Libraries with Strings • Darin Higgins
COM’s IUnknown interface contains method signatures that just aren’t compatible with Visual Basic. You can redefine this interface by creating a custom type library and then referencing it in your project, but you need to watch out for a bizarre memory corruption bug when using structures that contain String elements.

Making LogonUser() Work • Eric Lee Steadle
Trying to Call LogonUser() can be problematic if the privilege level is not set right. However, granting the “act as part of the OS” privilege to your interactive login account may solve your problem.

Preventing Invisible MDI Child Windows after Sizing • Zuoliu Ding
Minimizing child windows makes them doc to the bottom of the parent window to be recalled easily, but resizing the parent window can cause some child windows to be hidden. Zuoliu presents a solution to keep the child windows visible.

Options for Indicating Progress of Variable-Length Operations • Matthew Wilson
There are some situations where it’s difficult or impossible to know ahead of time the number of steps required in an operation. When attempting to indicate the progress of operations where the extent of the operation cannot be precisely determined, a number of alternative approaches can be used. Matthew describes two alternatives: cycle-step and completion-scope.



On the Newsstand


Table of Contents
Order this issue now.
Subscribe to DDJ

Departments

64bit
AI
Architecture & Design
C++
Database
Eclipse & Open Source
Embedded Systems
Global Developer
Java
Lightweight Languages
Linux/UNIX
Mobility
Security
SOA, Web Services & XML
Testing & Debugging
Windows/.NET

CMP DevNet Spotlight

Career Center: Going It Alone
Ever dreamed of leaving that corporate development job for the challenges of independent software consulting? Here are 10 tips to make your solo career path a success.

In the News

DDJ Newsletters

Dr. Dobb's Software Tools Newsletter
Do you find keeping up with new developer products and version updates harder than keeping up with the Joneses (whoever they are)? If so, Dr. Dobb's Software Tools e-mail newsletter is just the deal for you. Delivered once a month to your mailbox, this unique newsletter keeps you posted on the latest in SDKs, libraries, components, compilers, and the like.
--more--

DDJ Resources

Mobilized Software
Developer Events

DevNet Podcasts

Antarctica: Eclipse Comes In From the Cold
Josh Reed discusses the Antarctic Geologic Drilling Program, and the important role that open source tools played.

Software Glitch Implicated in Mars Global Surveyor Failure
NASA Watch reports that NASA's Mars Global Surveyor stopped responding to commands a few months ago due to improperly coded software.

Info-Link

DDJ Store


Dr. Dobb's Developer Library DVD: Release 2
The Dr. Dobb's Developer Library DVD is a new fully searchable DVD that includes 17 years of Dr. Dobb's Journal, 14 full years of C/C++ Users Journal, 3 years of The Perl Journal, nearly 4 years of Dr. Dobb's Sourcebook, and thousands and thousands of lines of source code—all on one DVD!

Click here for more information.

 




MarketPlace

Instant Answers to Your IT & Business Questions
Sign Up & Get Full Access To The Definitive Online Book Collection With SkillSoft's Books24x7�.

Build IT Knowledge with Current & Trusted Content
Helps Employees Develop & Hone New Technical Programming Skills. Sign Up & Get Full Access.

Online Crash Analysis
Automatically capture customer crash data, no debugger required. Support for .NET, C++, OS X, Java.

Discover WinDev 11 RAD
and develop 10 times faster ! ALM, IDE, .Net, PDF, 5GL, Database, 64-bit, etc. Free Express version

Wanna see your ad here?