Today at GDC, Microsoft announced that XNA Game Studio 4.0 will support application development for Windows Phone 7 Series.
At noon on Thursday, February 18, 2010, the Computer History Museum in Mountain View, CA is hosting a talk titled “IBM ACS System: A Pioneering Supercomputer Project of the 1960’s”. They’ll even buy you lunch! A free lunch and a slice of computing history, what could be better?
Gwaredd writes a long blog post titled “Game Development in a Post-Agile World”. Its interesting, but I don’t agree with the characterization of agile development provided by the author, even if they do admit it is a bit of a rant :-). The interesting part for me was from the “Creativity vs. Production” section through the end. Give it a read.
I created a test suite for C++ refactoring tools. You can download release 1.0 for yourself to see the tests. Results of the tests are included for ReFactor!Pro v9.1.10.
Citizen K. writes about The Who’s “Substitute” on his Just a Song blog.
Zane Healy forwarded on a link to a nice set of 1960s computing photos. Check out the pictures of the gargantuan prototype CRT terminals!
The CRT and raster graphics have become such a pervasive aspect of personal computers since the 1980s. Its easy to forget that there was a time when only character data was used to interact with computers. Most of that interaction was remote and distant via batch processing. You submitted a job as a deck of cards and got a paper printout of the results of running your job. Interactive timesharing systems introduced in the 1960s changed all that and made interaction with the computer a personal experience. First vector and later raster graphics display systems introduced a new level of interaction with the computer through images instead of text. Bitmapped raster graphics is now commonplace on even the cheapest of throway cell phones.
MaximumPC has an article giving the history of the PC video cards from the 90s through today, starting with the S3 Virge from 1995 and ending with the GeForce GTX 295 in 2009.
Zhon Johansen and I will be covering C++ mock object frameworks at the January, 2010 meeting of XP Utah. Zhon will cover googlemock, the Google C++ Mocking Framework, and I will cover mockpp, Mock Objects for C++. XP Utah meets from 7pm to 10pm on the second Wednesday of every month at the Borders bookstore in Murray, UT.
During this workshop, we will practice test-driven development in C++ using mock objects. We will be using Boost.Test as the underlying unit testing framework. The workshop will be organized as a programming kata, first with mockpp and then repeated with googlemock. By repeating the same exercise with the same unit test framework but two different mocking frameworks, participants will be able to compare and contrast the two mock frameworks for C++.
The workshop is free and open to all.
To participate, bring a laptop with a C++ programming environment. There is free wireless at the Borders bookstore. You will want to have downloaded and installed Boost.Test before the workshop. We will start promptly at 7pm in order to work through the kata with both mock object frameworks. If you are unfamiliar with writing unit tests in C++, consult my tutorial on unit testing with Boost.Test.
Fellow MVP Miha Markič has written up a blog post about his experience with DirectCompute and managed code.
Over at the DirectX blog, they’ve announced the Direct2D Debug Layer. For those of you using Direct2D, this will be a welcome addition to figuring out problems with using the API.
Fanboy.com has an interesting post about DEC’s attempt to enter the PC market:
This is an promotional film produced by Digital Equipment Corporation (DEC) documents their attempt to enter the PC market in 1982. DEC owned a major chunk of the mini-computer market and to their credit they got the idea that the PC was the wave of the future and they knew they had to compete.
VMWare Workstation 7 now has better support for 3D graphics with Direct3D 9.0c with Shader Model 3 and OpenGL 2.1 support. I’ve always liked VMWare for testing, particularly for testing installations. The one drawback with it has been the 3D support; sure, it was always great for testing business applications in multiple OS environments from a single machine, but for graphics applications it was pretty weak. Where I work, we recently bumped up the minimum OpenGL requirement to version 1.4 and that was not supported in VMWare Workstation 5. Now that VMWare 7 is out, I’ll try the upgrade and see how the new version supports our applications. I’m not expecting it to be as fast as a native machine, but I’m willing to pay a performance penalty for an environment where I can reset to known conditions quickly. Our applications are content creation applications, so while its annoying to have them perform poorly during testing, its not going to make the testing worthless.
Fellow MVP Nick Gravelyn has written a two-part article series on getting started with SunBurn.
When developing Direct3D code using test-driven development, you need test doubles to stand in for interfaces used by your code. This way you can control the interaction of your system under test with its environment. This post is the first in a series of posts that discuss several ways you can create test doubles for the COM interfaces used by a Direct3D application.
I’ve created a project on codeplex, http://d3dgraphicspipeline.codeplex.com, to house the sample code from my book. It will also be used to distribute sample code on other Direct3D related articles that I write on this blog. Initially you will find the code from my article on description helpers, but I will be uploading the sample code from the book there in the next few days.
Windows Installer provides a rich set of standard actions that handle the typical needs of an installation: installing files and folders, manipulating the registry, searching for existing resources in the registry or the file system, controlling Windows services and so-on. Custom actions are handy things for when you need to do some custom processing that isn’t covered by one of the standard actions. You can customize your UI experience by invoking an action when the user interacts with a control by publishing a DoAction control event for the control. This post describes some guidelines (and one workaround) for custom actions invoked by the user interface in a Windows Installer MSI package.
Wizard dialog sequences are common in Windows Installer packages as they lead the user through a series of questions to customize the installation of a product. Welcome to the install, select the installation directory, ready to install and so-on are common dialogs present in the wizard dialog sequence. Sometimes you need to make a choice between two dialogs based on the user’s input, however:
So you’ll need to branch to different dialogs on the Next button of the Installation Type dialog (and the Back button of the Install Location dialog) based on the user’s input. This post describes the best way to achieve this branching dialog behavior in Windows Installer, using Windows Installer XML (WiX) as the authoring tool.
My first exposure to Macintosh programming was with THINK’s Lightspeed Pascal in 1988. I was a graduate student at the University of Utah and the teaching assistant for the introduction programming course using Pascal. The student machines were Mac SEs running Macintosh System 2. Pascal provides a fairly encapsulated runtime environment to simplify its use in teaching programming, so it wasn’t really “Macintosh programming” although you could interact with the toolbox if desired.
Twenty years later, I find myself working at a digital content company and our content creation applications support both Windows and Mac OS X as a customer platform. While we largely rely on UI toolkits to isolate our applications from UI differences between platforms, we still need to build and debug code on Mac OS X. All of this work is done in Xcode. I was in a weird situation: I needed to know how to use Xcode, but I didn’t need to know how to program Mac native applications. I needed a book that would tell me about Xcode and how to accomplish typical developer tasks in it, but I didn’t need a book that would spend too much time on Objective C, Carbon APIs, Cocoa APIs and other Macintosh specific coding tasks. “Xcode 3 Unleashed” by Fritz Anderson is just the book I needed.