MikeBD Musings of a 24/6 techie (Software Architect / Technical Manager) family guy struggling to find meaning, balance and strong design / implementation supporting excellent user experiences.

22Jan/140

Evaluation of AngularJS, EmberJS, BackboneJS + MarionetteJS

If you are looking to review JavaScript frameworks, have a look at Binarymist: Evaluation of AngularJS, EmberJS, BackboneJS + MarionetteJS. This review includes a lot of strong commentary on the general process of conducting reviews and links to related tools for the frameworks reviewed.

  • Digg
  • del.icio.us
  • Facebook
  • Twitter
  • Technorati
  • email
  • Print
  • PDF
  • StumbleUpon
  • Yahoo! Buzz
  • Google Bookmarks
  • DotNetKicks
  • FriendFeed
  • Google Buzz
  • Live
  • Netvibes
  • Slashdot
  • Add to favorites
10Feb/120

WHILE_SUCCEEDED: A macro to assist with cascaded operations that return HRESULT

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) ) );

CppUnit Test:

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
  • Digg
  • del.icio.us
  • Facebook
  • Twitter
  • Technorati
  • email
  • Print
  • PDF
  • StumbleUpon
  • Yahoo! Buzz
  • Google Bookmarks
  • DotNetKicks
  • FriendFeed
  • Google Buzz
  • Live
  • Netvibes
  • Slashdot
  • Add to favorites
28Sep/100

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.

  • Digg
  • del.icio.us
  • Facebook
  • Twitter
  • Technorati
  • email
  • Print
  • PDF
  • StumbleUpon
  • Yahoo! Buzz
  • Google Bookmarks
  • DotNetKicks
  • FriendFeed
  • Google Buzz
  • Live
  • Netvibes
  • Slashdot
  • Add to favorites
2Sep/102

Website Redesign – FINALLY…

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.

  • Digg
  • del.icio.us
  • Facebook
  • Twitter
  • Technorati
  • email
  • Print
  • PDF
  • StumbleUpon
  • Yahoo! Buzz
  • Google Bookmarks
  • DotNetKicks
  • FriendFeed
  • Google Buzz
  • Live
  • Netvibes
  • Slashdot
  • Add to favorites
23Dec/080

Links on Development Management

Some jumping off points I've encountered today and agree with on the management of software development processes and professionals:

It's all about the people and the way they communicate and interact.
  • Digg
  • del.icio.us
  • Facebook
  • Twitter
  • Technorati
  • email
  • Print
  • PDF
  • StumbleUpon
  • Yahoo! Buzz
  • Google Bookmarks
  • DotNetKicks
  • FriendFeed
  • Google Buzz
  • Live
  • Netvibes
  • Slashdot
  • Add to favorites