Dr. Dobb's Journal - September 2008 - (Page 29) d09ryla_p2as 7/14/08 11:14 AM Page 29 automation and concurrent development. But things aren’t always that simple. Reengineering a source-control tool or folder structure are child’s play compared with changing how projects are planned and executed. (Read Scott Ambler’s “The Agile Edge” column if you don’t agree.) A goal of CI is to minimize the number of branches that are necessary for development isolation. This is accomplished by breaking down bigger projects into stories, which can be planned and executed on the trunk of the source tree. For better or worse, this kind of large-scale change in project planning is difficult to attain without direct input or the influence of project planners. In my case, project planning was happening at the same time as new build engineering activities. Synchronizing these was almost impossible. If your organization is one that depends on detailed functional specification documents and you don’t see that changing anytime soon, you’ll need to be practical and compromise. With pure CI no longer a realistic option for allowing concurrent development, different branching strategies were investigated. There is plenty of guidance out there on branching, but most of it can be distilled from the smoke and mirrors into one maxim—“branch to isolate.” When you set a goal to allow isolation, the details around how and when to branch become much simpler. For example, part of the reason we couldn’t roll out a more authentic form of CI right away is that projects are in the pipeline up to a year out, but don’t all occur serially. They overlap, touch, depend on one another, and consequently, require coordination. Allowing this isolation keeps development rolling as opposed to deteriorating in fire fights on what CI or agile development is and how to get there; see Figure 2. Don’t be legalistic: Trade continuous integration for continuous improvement when necessary. Being flexible can bring only benefit in the end, while being rigid in opinions or actions causes your attempts at change to fracture. That said, some CI concepts are still applicable. Using a tool like CruiseControl.NET allows build automation per developer check-in. There is still immediate developer feedback on the status of the build, except it’s not just one build—it’s for all isolation branches. It is critical to use a tool (like CCNET or another) to automate CI or you’ll soon be spinning your wheels on the minutiae. Figure 3 illustrates multiple branches in isolation. Under this type of setup, the build server turns into your development lifeline. Its activities are viewed with glee by the process-oriented on the team, or derision by the cowboys. No matter the opinion, this server is extremely important as the Living in a Digital Imaging World WHERE IT ALL BEGAN Founded in 1991 and headquartered in Tampa, Florida, Pegasus Imaging Corporation delivers digital imaging software development components, image compression and image editing technologies. The company exceeds speed and quality requirements for document imaging, forms processing, medical imaging, color/photo imaging, video applications and more. Technology is delivered as Microsoft .NET controls, COM controls, DLLs and applications. Multiple platforms are supported, including Windows, LINUX, Solaris, IBM AIX and Mac OS X. Living in a Digital Imaging World WHERE IT ALL BEGAN Founded in 1991 and headquartered in Tampa, Florida, Pegasus Imaging Corporation delivers digital imaging software development components, image compression and image editing technologies. The company exceeds speed and quality requirements for document imaging, forms processing, medical imaging, color/photo imaging, video applications and more. Technology is delivered as Microsoft .NET controls, COM controls, DLLs and applications. Multiple platforms are supported, including Windows, LINUX, Solaris, IBM AIX and Mac OS X. SCANNED TIFF This image is here to show how incredible the compression is for the Pegasus imaging products. It handles images as well as text. This image is here to show how incredible the compression is for the Pegasus imaging products. It handles images as well as text. AN EYE ON GROWTH Pegasus Imaging Corporation was founded in 1991 as a reseller of fractal image compression and decompression toolkits and digital image compression applications. The company entered the imaging marketplace at a very early stage with a far-reaching vision. To satisfy customer demand for well-supported commercial image compression technologies, the company focused on optimizing standards-based compression technology for speed and quality. Pegasus was rapidly shifting from being a provider of end user utilities to marketing business-to-business solutions. A testament to the company’s technology leadership, Pegasus Imaging is the only surviving commercial supplier of JPEG compression technology in the world. Well known photo imaging customers of Pegasus JPEG today include Kodak, Canon, Nikon, Fujifilm, Konica Minolta, and many others. The company’s strategy in the mid-1990s was to clearly differentiate Pegasus from its competition through investment in digital imaging research and development. The company’s senior scientists joined the team at this time. They are recognized throughout the industry, and provide Pegasus with a solid competitive edge. Pegasus Imaging is distinguished by its ability to deliver multiple interfaces to advanced technologies based on an extensive collection of intellectual capital, scientific research, and product innovations. Today, the company holds a portfolio of 11 patents granted, 12 patents pending, and a AN EYE ON GROWTH Pegasus Imaging Corporation was founded in 1991 as a reseller of fractal image compression and decompression toolkits and digital image compression applications. The company entered the imaging marketplace at a very early stage with a far-reaching vision. To satisfy customer demand for well-supported commercial image compression technologies, the company focused on optimizing standards-based compression technology for speed and quality. Pegasus was rapidly shifting from being a provider of end user utilities to marketing business-to-business solutions. A testament to the company’s technology leadership, Pegasus Imaging is the only surviving commercial supplier of JPEG compression technology in the world. Well known photo imaging customers of Pegasus JPEG today include Kodak, Canon, Nikon, Fujifilm, Konica Minolta, and many others. The company’s strategy in the mid-1990s was to clearly differentiate Pegasus from its competition through investment in digital imaging research and development. The company’s senior scientists joined the team at this time. They are recognized throughout the industry, and provide Pegasus with a solid competitive edge. Pegasus Imaging is distinguished by its ability to deliver multiple interfaces to advanced technologies based on an extensive collection of intellectual capital, scientific research, and product innovations. Today, the company holds a portfolio of 11 patents granted, 12 patents pending, and a SEARCHABLE PDF ONE OF THESE IMAGES IS 66% * THAN THE OTHER. With Pegasus Imaging SDKs, you can turn a scanned TIFF into a searchable image-over-text PDF and make the file a fraction of its original size. Save server space and search documents that were originally not searchable. We’ll show you how we do it, and give you the sample code in C#. Challenge our support team with your next imaging question. If they can’t answer it, our scientists surely will. CHECK OUT OUR NEW WHITE PAPER & FREE SAMPLE CODE. PEGASUSIMAGING.COM/TIFF-TO-PDF SMALLER PEGASUSIMAGING.COM Figure 2: Project branches. (800) 875-7009 Pegasus is a registered trademark of Pegasus Imaging Corporation in the United States. *Results vary depending on image content. September 2008 l www.ddj.com l Dr. Dobb’s Journal http://PEGASUSIMAGING.COM/TIFF-TO-PDF http://PEGASUSIMAGING.COM http://PEGASUSIMAGING.COM http://www.ddj.com
Table of Contents Feed for the Digital Edition of Dr. Dobb's Journal - September 2008 Dr. Dobb's Journal - September 2008 Contents Friday Night Fish Fry Alia Vox Developer Diaries Developer’s Notebook A Conversation With Erik Demaine Application Lifecycle Management Meets Model-Driven Development Building a Robust Development Environment Real Users Really Matter Matching Wildcards: An Algorithm The Android Mobile Phone Platform Managing Application Thread Use Signalling Integer Overflows in Java .NET Development & the IBM WebSphere Portal Server The Agile Edge Effective Concurrency Swaine’s Flames Dr. Dobb's Journal - September 2008 Dr. Dobb's Journal - September 2008 - Dr. Dobb's Journal - September 2008 (Page Cover1) Dr. Dobb's Journal - September 2008 - Dr. Dobb's Journal - September 2008 (Page Cover2) Dr. Dobb's Journal - September 2008 - Dr. Dobb's Journal - September 2008 (Page 1) Dr. Dobb's Journal - September 2008 - Dr. Dobb's Journal - September 2008 (Page 2) Dr. Dobb's Journal - September 2008 - Dr. Dobb's Journal - September 2008 (Page 3) Dr. Dobb's Journal - September 2008 - Contents (Page 4) Dr. Dobb's Journal - September 2008 - Contents (Page 5) Dr. Dobb's Journal - September 2008 - Friday Night Fish Fry (Page 6) Dr. Dobb's Journal - September 2008 - Friday Night Fish Fry (Page 7) Dr. Dobb's Journal - September 2008 - Friday Night Fish Fry (Page 8) Dr. Dobb's Journal - September 2008 - Friday Night Fish Fry (Page 9) Dr. Dobb's Journal - September 2008 - Alia Vox (Page 10) Dr. Dobb's Journal - September 2008 - Alia Vox (Page 11) Dr. Dobb's Journal - September 2008 - Developer Diaries (Page 12) Dr. Dobb's Journal - September 2008 - Developer Diaries (Page 13) Dr. Dobb's Journal - September 2008 - Developer’s Notebook (Page 14) Dr. Dobb's Journal - September 2008 - Developer’s Notebook (Page 15) Dr. Dobb's Journal - September 2008 - A Conversation With Erik Demaine (Page 16) Dr. Dobb's Journal - September 2008 - A Conversation With Erik Demaine (Page 17) Dr. Dobb's Journal - September 2008 - A Conversation With Erik Demaine (Page 18) Dr. Dobb's Journal - September 2008 - A Conversation With Erik Demaine (Page 19) Dr. Dobb's Journal - September 2008 - Application Lifecycle Management Meets Model-Driven Development (Page 20) Dr. Dobb's Journal - September 2008 - Application Lifecycle Management Meets Model-Driven Development (Page 21) Dr. Dobb's Journal - September 2008 - Application Lifecycle Management Meets Model-Driven Development (Page 22) Dr. Dobb's Journal - September 2008 - Application Lifecycle Management Meets Model-Driven Development (Page 23) Dr. Dobb's Journal - September 2008 - Application Lifecycle Management Meets Model-Driven Development (Page 24) Dr. Dobb's Journal - September 2008 - Application Lifecycle Management Meets Model-Driven Development (Page 25) Dr. Dobb's Journal - September 2008 - Building a Robust Development Environment (Page 26) Dr. Dobb's Journal - September 2008 - Building a Robust Development Environment (Page 27) Dr. Dobb's Journal - September 2008 - Building a Robust Development Environment (Page 28) Dr. Dobb's Journal - September 2008 - Building a Robust Development Environment (Page 29) Dr. Dobb's Journal - September 2008 - Building a Robust Development Environment (Page 30) Dr. Dobb's Journal - September 2008 - Building a Robust Development Environment (Page 31) Dr. Dobb's Journal - September 2008 - Real Users Really Matter (Page 32) Dr. Dobb's Journal - September 2008 - Real Users Really Matter (Page 33) Dr. Dobb's Journal - September 2008 - Real Users Really Matter (Page 34) Dr. Dobb's Journal - September 2008 - Real Users Really Matter (Page 35) Dr. Dobb's Journal - September 2008 - Real Users Really Matter (Page 36) Dr. Dobb's Journal - September 2008 - Matching Wildcards: An Algorithm (Page 37) Dr. Dobb's Journal - September 2008 - Matching Wildcards: An Algorithm (Page 38) Dr. Dobb's Journal - September 2008 - Matching Wildcards: An Algorithm (Page 39) Dr. Dobb's Journal - September 2008 - The Android Mobile Phone Platform (Page 40) Dr. Dobb's Journal - September 2008 - The Android Mobile Phone Platform (Page 41) Dr. Dobb's Journal - September 2008 - The Android Mobile Phone Platform (Page 42) Dr. Dobb's Journal - September 2008 - The Android Mobile Phone Platform (Page 43) Dr. Dobb's Journal - September 2008 - The Android Mobile Phone Platform (Page 44) Dr. Dobb's Journal - September 2008 - The Android Mobile Phone Platform (Page 45) Dr. Dobb's Journal - September 2008 - The Android Mobile Phone Platform (Page 46) Dr. Dobb's Journal - September 2008 - The Android Mobile Phone Platform (Page 47) Dr. Dobb's Journal - September 2008 - Managing Application Thread Use (Page 48) Dr. Dobb's Journal - September 2008 - Managing Application Thread Use (Page 49) Dr. Dobb's Journal - September 2008 - Managing Application Thread Use (Page 50) Dr. Dobb's Journal - September 2008 - Managing Application Thread Use (Page 51) Dr. Dobb's Journal - September 2008 - Managing Application Thread Use (Page 52) Dr. Dobb's Journal - September 2008 - Managing Application Thread Use (Page 53) Dr. Dobb's Journal - September 2008 - Signalling Integer Overflows in Java (Page 54) Dr. Dobb's Journal - September 2008 - Signalling Integer Overflows in Java (Page 55) Dr. Dobb's Journal - September 2008 - Signalling Integer Overflows in Java (Page 56) Dr. Dobb's Journal - September 2008 - Signalling Integer Overflows in Java (Page 57) Dr. Dobb's Journal - September 2008 - Signalling Integer Overflows in Java (Page 58) Dr. Dobb's Journal - September 2008 - .NET Development & the IBM WebSphere Portal Server (Page 59) Dr. Dobb's Journal - September 2008 - .NET Development & the IBM WebSphere Portal Server (Page 60) Dr. Dobb's Journal - September 2008 - .NET Development & the IBM WebSphere Portal Server (Page 61) Dr. Dobb's Journal - September 2008 - .NET Development & the IBM WebSphere Portal Server (Page 62) Dr. Dobb's Journal - September 2008 - .NET Development & the IBM WebSphere Portal Server (Page 63) Dr. Dobb's Journal - September 2008 - .NET Development & the IBM WebSphere Portal Server (Page 64) Dr. Dobb's Journal - September 2008 - The Agile Edge (Page 65) Dr. Dobb's Journal - September 2008 - The Agile Edge (Page 66) Dr. Dobb's Journal - September 2008 - The Agile Edge (Page 67) Dr. Dobb's Journal - September 2008 - Effective Concurrency (Page 68) Dr. Dobb's Journal - September 2008 - Effective Concurrency (Page 69) Dr. Dobb's Journal - September 2008 - Effective Concurrency (Page 70) Dr. Dobb's Journal - September 2008 - Effective Concurrency (Page 71) Dr. Dobb's Journal - September 2008 - Swaine’s Flames (Page 72) Dr. Dobb's Journal - September 2008 - Swaine’s Flames (Page Cover3) Dr. Dobb's Journal - September 2008 - Swaine’s Flames (Page Cover4)
For optimal viewing of this digital publication, please enable JavaScript and then refresh the page. If you would like to try to load the digital publication without using Flash Player detection, please click here.