Dr. Dobb's Journal - October 2008 - (Page 37) D10gold_p6as 8/15/08 9:07 AM Page 37 For Adobe AIR, there are two important chains: The one used to establish the publisher ID and the one used, at install time, to establish trust. The former impacts application identity and therefore must not change; this is why it’s required to be embedded in the keystore used for signing. It doesn’t matter if this chain is trusted at install time. It only matters that the publisher trusts the entities in this chain to properly renew their certificate. The second chain, built at install time, is used to establish trust. This chain may differ between target machines, assuming it can be built at all. It may or may not match the publisher ID chain, and the presence of the publisher ID chain does not guarantee that a chain can be built at installation time. 3. You can read the publisher ID directly from an installed application in the METAINF/ AIR/publisherid file. (This is inside the Contents/Resources directory on Mac OS installs.) Publisher IDs specified to adl are not validated—nothing prevents anyone from entering a publisher ID they don’t own. Publisher IDs provide secured identity for installed applications; they don’t provide any guarantees with respect to applications being run with the debugging tools. If you need to communicate with another application—for example, to address it via LocalConnection—then you need its publisher ID as well. If you’ve installed that application, you can find its publisher ID in the publisherid file, as mentioned in step 3. Even without the application, however, you might be able to obtain the publisher ID from the application’s publisher. Publisher IDs do not contain any confidential data and can be comfortably posted on websites and the like. Timestamping and Longevity Key pairs, as used for creating digital signatures, become less secure the older they are. 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 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. Developing with Publisher IDs Publisher IDs operate in a straightforward way for installed applications, but can be trickier during development. There are two sides to this: your own publisher ID, and the publisher ID for another application you need to communicate with. When you debug an application (started via the adl command), it is not yet signed and so runs without a publisher ID. During debugging, anywhere that a publisher ID would normally be used—for example, in a LocalConnection endpoint name—it is simply omitted. This will change, however—and a publisher ID will be used— once the same application has been installed. This is often fine, but can be tricky in certain workflows. Suppose you install a version of the application on your machine and then debug the application on the same machine. You might expect both to access the same location as the application’s storage directory, but they won’t, because that location uses the publisher ID. To work around this, you can specify a publisher ID for debugging sessions with adl’s -pubid argument. There are a few ways to obtain your own publisher ID: 1. You might already know it. Remember, publisher IDs are tied to your signing certificate—not the signature. If you use the same signing certificate across multiple applications, they all have the same publisher ID. 2. You can determine it at runtime via the NativeApplication.publisherIdentifier property, assuming you’re running an installed copy of the application. 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 (800) 875-7009 Pegasus is a registered trademark of Pegasus Imaging Corporation in the United States. *Results vary depending on image content. October 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 - October 2008 Dr. Dobb's Journal - October 2008 Contents Friday Night Fish Fry Alia Vox Developer Diaries Developer’s Notebook Is Your Next Language COBOL? Conversations Safe Coding Practices Code Signing in Adobe AIR OpenID Single Sign-On The Book Cipher Algorithm Indexing and Searching Image files Extending Continuous Integration Into ALM The Agile Edge Effective Concurrency Swaine’s Flames Dr. Dobb's Journal - October 2008 Dr. Dobb's Journal - October 2008 - (Page Bellyband1) Dr. Dobb's Journal - October 2008 - (Page Bellyband2) Dr. Dobb's Journal - October 2008 - Dr. Dobb's Journal - October 2008 (Page Cover1) Dr. Dobb's Journal - October 2008 - Dr. Dobb's Journal - October 2008 (Page Cover2) Dr. Dobb's Journal - October 2008 - Dr. Dobb's Journal - October 2008 (Page 1) Dr. Dobb's Journal - October 2008 - Dr. Dobb's Journal - October 2008 (Page 2) Dr. Dobb's Journal - October 2008 - Dr. Dobb's Journal - October 2008 (Page 3) Dr. Dobb's Journal - October 2008 - Contents (Page 4) Dr. Dobb's Journal - October 2008 - Contents (Page 5) Dr. Dobb's Journal - October 2008 - Friday Night Fish Fry (Page 6) Dr. Dobb's Journal - October 2008 - Friday Night Fish Fry (Page 7) Dr. Dobb's Journal - October 2008 - Friday Night Fish Fry (Page 8) Dr. Dobb's Journal - October 2008 - Friday Night Fish Fry (Page 9) Dr. Dobb's Journal - October 2008 - Alia Vox (Page 10) Dr. Dobb's Journal - October 2008 - Alia Vox (Page 11) Dr. Dobb's Journal - October 2008 - Developer Diaries (Page 12) Dr. Dobb's Journal - October 2008 - Developer Diaries (Page 13) Dr. Dobb's Journal - October 2008 - Developer’s Notebook (Page 14) Dr. Dobb's Journal - October 2008 - Developer’s Notebook (Page 15) Dr. Dobb's Journal - October 2008 - Is Your Next Language COBOL? (Page 16) Dr. Dobb's Journal - October 2008 - Is Your Next Language COBOL? (Page 17) Dr. Dobb's Journal - October 2008 - Is Your Next Language COBOL? (Page 18) Dr. Dobb's Journal - October 2008 - Is Your Next Language COBOL? (Page 19) Dr. Dobb's Journal - October 2008 - Conversations (Page 20) Dr. Dobb's Journal - October 2008 - Conversations (Page 21) Dr. Dobb's Journal - October 2008 - Conversations (Page 22) Dr. Dobb's Journal - October 2008 - Conversations (Page 23) Dr. Dobb's Journal - October 2008 - Safe Coding Practices (Page 24) Dr. Dobb's Journal - October 2008 - Safe Coding Practices (Page 25) Dr. Dobb's Journal - October 2008 - Safe Coding Practices (Page 26) Dr. Dobb's Journal - October 2008 - Safe Coding Practices (Page 27) Dr. Dobb's Journal - October 2008 - Safe Coding Practices (Page 28) Dr. Dobb's Journal - October 2008 - Safe Coding Practices (Page 29) Dr. Dobb's Journal - October 2008 - Code Signing in Adobe AIR (Page 30) Dr. Dobb's Journal - October 2008 - Code Signing in Adobe AIR (Page 31) Dr. Dobb's Journal - October 2008 - Code Signing in Adobe AIR (Page 32) Dr. Dobb's Journal - October 2008 - Code Signing in Adobe AIR (Page 33) Dr. Dobb's Journal - October 2008 - Code Signing in Adobe AIR (Page 34) Dr. Dobb's Journal - October 2008 - Code Signing in Adobe AIR (Page 35) Dr. Dobb's Journal - October 2008 - Code Signing in Adobe AIR (Page 36) Dr. Dobb's Journal - October 2008 - Code Signing in Adobe AIR (Page 37) Dr. Dobb's Journal - October 2008 - Code Signing in Adobe AIR (Page 38) Dr. Dobb's Journal - October 2008 - Code Signing in Adobe AIR (Page 39) Dr. Dobb's Journal - October 2008 - OpenID Single Sign-On (Page 40) Dr. Dobb's Journal - October 2008 - OpenID Single Sign-On (Page 41) Dr. Dobb's Journal - October 2008 - OpenID Single Sign-On (Page 42) Dr. Dobb's Journal - October 2008 - OpenID Single Sign-On (Page 43) Dr. Dobb's Journal - October 2008 - OpenID Single Sign-On (Page 44) Dr. Dobb's Journal - October 2008 - OpenID Single Sign-On (Page 45) Dr. Dobb's Journal - October 2008 - The Book Cipher Algorithm (Page 46) Dr. Dobb's Journal - October 2008 - The Book Cipher Algorithm (Page 47) Dr. Dobb's Journal - October 2008 - The Book Cipher Algorithm (Page 48) Dr. Dobb's Journal - October 2008 - The Book Cipher Algorithm (Page 49) Dr. Dobb's Journal - October 2008 - The Book Cipher Algorithm (Page 50) Dr. Dobb's Journal - October 2008 - The Book Cipher Algorithm (Page 51) Dr. Dobb's Journal - October 2008 - Indexing and Searching Image files (Page 52) Dr. Dobb's Journal - October 2008 - Indexing and Searching Image files (Page 53) Dr. Dobb's Journal - October 2008 - Indexing and Searching Image files (Page 54) Dr. Dobb's Journal - October 2008 - Indexing and Searching Image files (Page 55) Dr. Dobb's Journal - October 2008 - Extending Continuous Integration Into ALM (Page 56) Dr. Dobb's Journal - October 2008 - Extending Continuous Integration Into ALM (Page 57) Dr. Dobb's Journal - October 2008 - Extending Continuous Integration Into ALM (Page 58) Dr. Dobb's Journal - October 2008 - Extending Continuous Integration Into ALM (Page 59) Dr. Dobb's Journal - October 2008 - Extending Continuous Integration Into ALM (Page 60) Dr. Dobb's Journal - October 2008 - Extending Continuous Integration Into ALM (Page 61) Dr. Dobb's Journal - October 2008 - Extending Continuous Integration Into ALM (Page 62) Dr. Dobb's Journal - October 2008 - Extending Continuous Integration Into ALM (Page 63) Dr. Dobb's Journal - October 2008 - The Agile Edge (Page 64) Dr. Dobb's Journal - October 2008 - The Agile Edge (Page 65) Dr. Dobb's Journal - October 2008 - The Agile Edge (Page 66) Dr. Dobb's Journal - October 2008 - The Agile Edge (Page 67) Dr. Dobb's Journal - October 2008 - Effective Concurrency (Page 68) Dr. Dobb's Journal - October 2008 - Effective Concurrency (Page 69) Dr. Dobb's Journal - October 2008 - Effective Concurrency (Page 70) Dr. Dobb's Journal - October 2008 - Effective Concurrency (Page 71) Dr. Dobb's Journal - October 2008 - Swaine’s Flames (Page 72) Dr. Dobb's Journal - October 2008 - Swaine’s Flames (Page Cover3) Dr. Dobb's Journal - October 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.