Here's a quick macro to assist with blocks of successive calls that should proceed as long as none of them satisfy
FAILED( operation ).
// WHILE_SUCCEEDED: // HRESULT hr = S_OK; // WHILE_SUCCEEDED( hr, function_returning_HRESULT() ) #define WHILE_SUCCEEDED( hr, operation ) ( SUCCEEDED( (hr) ) && ( hr = (operation) ) );
HRESULT hr = S_OK; WHILE_SUCCEEDED(hr, S_OK) CPPUNIT_ASSERT( SUCCEEDED( hr ) ); CPPUNIT_ASSERT_EQUAL( S_OK, hr ); WHILE_SUCCEEDED(hr, S_FALSE) CPPUNIT_ASSERT( SUCCEEDED( hr ) ); CPPUNIT_ASSERT_EQUAL( S_FALSE, hr ); WHILE_SUCCEEDED(hr, E_OUTOFMEMORY) CPPUNIT_ASSERT( FAILED( hr ) ); CPPUNIT_ASSERT_EQUAL( E_OUTOFMEMORY, hr ); HRESULT hrPrevious = hr; bool executed = false; // Test that executed = true should not be executed WHILE_SUCCEEDED(hr, ( executed = true, S_FALSE ) ) CPPUNIT_ASSERT( FAILED( hr ) ); // hr should not have been assigned S_FALSE CPPUNIT_ASSERT( ! executed ); // executed = true should not have been executed CPPUNIT_ASSERT_EQUAL( hrPrevious, hr ); // hr should not have a different value than previously assigned
Comments from James Gosling upon leaving Oracle / my thoughts on the creative and artistic aspects of Software Development
Excerpts From: Java Creator James Gosling: Why I Quit Oracle - In an exclusive interview with eWEEK, Java creator James Gosling discusses a series of issues he earlier declined to take public, including why he left Oracle.
- Also, asked whether in hindsight he would have preferred Sun having been acquired by IBM (which pursued a deal to acquire Sun and then backed out late in the game) rather than Oracle, Gosling said he and at least Sun Chairman Scott McNealy debated the prospect. And the consensus, led by McNealy, was that although they said they believed “Oracle would be more savage, IBM would make more layoffs.”
- However, in Gosling’s case personally, he may have fared better at IBM, where technical savvy is generously rewarded. For instance, when IBM acquired Rational Software they saw value in Rational’s chief scientist Grady Booch, co-creator of the UML (Unified Modeling Language), and made him an IBM fellow and more.
- “All of the senior people at Sun got screwed compensation-wise. Their job titles may have been the same, but their ability to decide anything was just gone.”
- Also, there are number of interesting comments on Google's use of Java in Android and the relative merits of software patent litigation.
This is an interesting read on employee motivation, reconfirming that the intangibles - including intellectual / creative freedom really do matter.
I have always felt that Software Development is as much a creative / artistic endeavour, if not more so, than it is a science. The scientific aspects reinforce the need for considered methodology, measured responses to create healthy feedback loops on both progress and results, and the imposition of order upon chaos (e.g. design, usability and information architecture). This is true as well of all fields of human activity traditionally considered by many to be purely creative / artistic: music, art, architecture etc...
I believe many technical managers would do very well to contemplate this in hiring by gauging creativity and in production by allowing time boxed exercises to evolve functional and non-functional capabilities. At worst, some time is lost in 15-30 minute manageable increments, but even then, the team benefits from the exercise in many ways. Trust the team, give them the support and tools they need, then prepare to be amazed at how they will add unexpcted value - often willingly contributing their own time.
I have put this off far too long and, of course, with every passing year my previous website design grew increasingly unsatisfactory. The old site used Protopage to wrap a blogger blog that was started before it was purchased by Google. I think Protopage is a very cool "start page" service, but I would prefer it for private use and not public publishing.
For one thing, the old approach offered very little Search Engine Optimization capability.
I have many posts in mind but had put off updating the old site for these reasons. I hope to catch up shortly and share lots...
Please let me know if you have any feedback on the new site or experience any problems viewing it.
Some jumping off points I've encountered today and agree with on the management of software development processes and professionals:
- How to Motivate Developers - A three step framework
- Coding Around the Campfire (oops - dead link...)
- Statement of Values