MikeBD http://www.mikebd.com 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. Wed, 22 Jan 2014 14:38:50 +0000 en hourly 1 http://wordpress.org/?v=3.0.1 Evaluation of AngularJS, EmberJS, BackboneJS + MarionetteJShttp://www.mikebd.com/evaluation-of-angularjs-emberjs-backbonejs-marionettejs http://www.mikebd.com/evaluation-of-angularjs-emberjs-backbonejs-marionettejs#comments Wed, 22 Jan 2014 14:38:50 +0000 Michael Ben-David http://www.mikebd.com/?p=244 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.

Diggdel.icio.usFacebookTwitterTechnoratiemailPrintPDFStumbleUponYahoo! BuzzGoogle BookmarksDotNetKicksFriendFeedGoogle BuzzLiveNetvibesSlashdotAdd to favorites

]]>
http://www.mikebd.com/evaluation-of-angularjs-emberjs-backbonejs-marionettejs/feed 0
WHILE_SUCCEEDED: A macro to assist with cascaded operations that return HRESULThttp://www.mikebd.com/while_succeeded-a-macro-to-assist-with-cascaded-operations-that-return-hresult http://www.mikebd.com/while_succeeded-a-macro-to-assist-with-cascaded-operations-that-return-hresult#comments Fri, 10 Feb 2012 16:49:18 +0000 Michael Ben-David http://www.mikebd.com/?p=232 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
Diggdel.icio.usFacebookTwitterTechnoratiemailPrintPDFStumbleUponYahoo! BuzzGoogle BookmarksDotNetKicksFriendFeedGoogle BuzzLiveNetvibesSlashdotAdd to favorites

]]>
http://www.mikebd.com/while_succeeded-a-macro-to-assist-with-cascaded-operations-that-return-hresult/feed 0
Comments from James Gosling upon leaving Oracle / my thoughts on the creative and artistic aspects of Software Developmenthttp://www.mikebd.com/comments-from-james-gosling-upon-leaving-oracle-my-thoughts-on-the-creative-and-artistic-aspects-of-software-development http://www.mikebd.com/comments-from-james-gosling-upon-leaving-oracle-my-thoughts-on-the-creative-and-artistic-aspects-of-software-development#comments Tue, 28 Sep 2010 18:43:54 +0000 Michael Ben-David http://www.mikebd.com/?p=222 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.

Diggdel.icio.usFacebookTwitterTechnoratiemailPrintPDFStumbleUponYahoo! BuzzGoogle BookmarksDotNetKicksFriendFeedGoogle BuzzLiveNetvibesSlashdotAdd to favorites

]]>
http://www.mikebd.com/comments-from-james-gosling-upon-leaving-oracle-my-thoughts-on-the-creative-and-artistic-aspects-of-software-development/feed 0
Website Redesign – FINALLY…http://www.mikebd.com/website-redesign-finally http://www.mikebd.com/website-redesign-finally#comments Thu, 02 Sep 2010 19:26:49 +0000 Michael Ben-David http://www.mikebd.com/?p=173 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.

Diggdel.icio.usFacebookTwitterTechnoratiemailPrintPDFStumbleUponYahoo! BuzzGoogle BookmarksDotNetKicksFriendFeedGoogle BuzzLiveNetvibesSlashdotAdd to favorites

]]>
http://www.mikebd.com/website-redesign-finally/feed 2
Links on Development Managementhttp://www.mikebd.com/links-on-development-management http://www.mikebd.com/links-on-development-management#comments Tue, 23 Dec 2008 10:14:00 +0000 Michael Ben-David http://wp.mikebd.com/uncategorized/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.
Diggdel.icio.usFacebookTwitterTechnoratiemailPrintPDFStumbleUponYahoo! BuzzGoogle BookmarksDotNetKicksFriendFeedGoogle BuzzLiveNetvibesSlashdotAdd to favorites

]]>
http://www.mikebd.com/links-on-development-management/feed 0
Agile Software Development: an Answer to Procrastination?http://www.mikebd.com/agile-software-development-an-answer-to-procrastination http://www.mikebd.com/agile-software-development-an-answer-to-procrastination#comments Thu, 07 Aug 2008 05:03:00 +0000 Michael Ben-David http://wp.mikebd.com/uncategorized/agile-software-development-an-answer-to-procrastination A recent LinkedIn question on Software Estimation and Agile Methology included a concern that Agile could lead to Procrastination. I believe otherwise as detailed below. What has your experience been?

Software Estimation and Agile Methodology

I am new to Agile Methodology. I am working on a project which is following Agile. I have the following questions:

  1. What are the estimation techniques for Agile?
  2. Typically which type of Projects use Agile?
  3. In the name of Agile, can people procrastinate every single decision during requirements gathering? For example, we know what is expected but we don't know the most atomic level of the requirement. Say, I know I must build a webpage, but I don't know the validation of the webpage.

My Response:

I think Agile principles can be an antidote against procrastination. I would agree with the thoughts expressed in this post. If you continually drive to keep the design and implementation as simple as possible and don't get overly concerned with anticipating potential future needs, there is nothing left to do but build what you know is needed now.

This hinges on the fact that scope is always negotiable as long as quality remains consistently high. Therefore, developers can feel confident delivering features as required without excessive buffering of estimates and over building solutions just in case something may be needed in the future. When and if it is needed, it can be built, and the customer will defer other scope items because they have learned to trust the development team due to consistent and frequent delivery with high quality.

You may appreciate some of the points made and links posted on my blog entry which captured the introduction of Agile practices at my company.

Another important factor in your scenario is the provision of a "Customer in the room". The process works best with a high level of interactivity between developers and end-users or a suitable surrogate that can effectively direct the developers through the micro decisions (like field validations).

Many businesses balk at providing a true customer in the room because of how valuable their time is. I think this is short-sighted and would always expect better results with direct customer interactions vs. large formal requirements documents.

Diggdel.icio.usFacebookTwitterTechnoratiemailPrintPDFStumbleUponYahoo! BuzzGoogle BookmarksDotNetKicksFriendFeedGoogle BuzzLiveNetvibesSlashdotAdd to favorites

]]>
http://www.mikebd.com/agile-software-development-an-answer-to-procrastination/feed 0
QA Estimation: Testing hours as a function of development hourshttp://www.mikebd.com/qa-estimation-testing-hours-as-a-function-of-development-hours http://www.mikebd.com/qa-estimation-testing-hours-as-a-function-of-development-hours#comments Fri, 29 Feb 2008 01:12:00 +0000 Michael Ben-David http://wp.mikebd.com/uncategorized/qa-estimation-testing-hours-as-a-function-of-development-hours The following question on LinkedIn caught my eye as something that is often assumed in project management and estimation efforts.

Testing hours as function of development hours.

Does it make sense to say that number of testing hours in a project should be a function of the number of development hours, such as
TestingHours = X% * DevHours? If so, what should X% be. What considerations would make it be lower or higher. Are there industry standards around this?

My Response:

In a word - no.

There are just too many variables at play of which some will include:

  • type of testing (functional, regression, performance / stress /load, usability, automated / manual, UI / API, back end / white box, browser / multi-platform compatibility)
  • strength of your requirements definition process / artifacts and likelihood of disagreement between the business and the developers which QA must arbitrate. Also, how soon QA is engaged in the project life cycle.
  • strength of the bug list triage and management process and health of communications between all involved. Related issue: is any part of the project outsourced / off-shore.
  • system complexity
  • maturity of system (getting version 1 through QA may take more effort than getting version 2 out depending on the level of innovation between versions)
  • strength of development unit and integration testing (manual or automated)
  • quality risk assumption comfort level / industry quality requirements (medical device / financial services / flight control would be examples with high quality requirements)
  • project time line
  • time line compression (the more a project time line is compressed from its natural length - overall or in any of the phases before QA), this is a paradox though as the forces that tend to compress a project time line usually are unforgiving of long QA cycles. You can bend a time line but eventually the project will break.
  • number and type of users / diversity of their activities with the system (related to system complexity)
  • time to market as a strategic need to break new ground, if so I would rather reduce the feature set than compromise on quality
  • QA build frequency - test concurrently as development proceeds rather than wait for the final build. Some rework will be required but this is well worth the many benefits.
  • headcount ratio between development and QA
  • seniority of staff in BA, development and QA
  • development and QA tools
  • UAT / beta / release candidate process factors
  • prototype activities / early access releases.
  • project manager strength (natural ability, experience and empowerment to minimize scope creep) and attention level. Same for software architect / development manager and business lead if they are not the PM. Product of this factor for all three roles. Apply a communications frequency and health factor to that.

Having said that, I expect that most teams come to a sense of comfort with a testing hours % of development that works for them and can be applied as a rule of thumb as new projects are conceived. Take the last successful project of similar size / complexity etc...

I've never thought of it before but wonder if you could apply the concepts of XP story points and velocity as an estimation tool for future work. This would fit with the statements above about the factors that are unique to your environment and would require measurement before use. You would write stories for testing (separate from development stories) and measure velocity. I would not look for a correlation between developer story size and QA story size or between developer velocity and QA velocity, although they may appear to emerge, I fear they could be deceptive.

What do you think? Respond through comments or to the LinkedIn Question here.

Diggdel.icio.usFacebookTwitterTechnoratiemailPrintPDFStumbleUponYahoo! BuzzGoogle BookmarksDotNetKicksFriendFeedGoogle BuzzLiveNetvibesSlashdotAdd to favorites

]]>
http://www.mikebd.com/qa-estimation-testing-hours-as-a-function-of-development-hours/feed 0
The Network Effect – Part 2http://www.mikebd.com/the-network-effect-part-2 http://www.mikebd.com/the-network-effect-part-2#comments Sun, 24 Jun 2007 13:11:00 +0000 Michael Ben-David http://wp.mikebd.com/uncategorized/the-network-effect-part-2 Reference: The Network Effect - Part 1 (2007-02-19)

What a difference 4 months makes. My LinkedIn statistics have improved by 123 direct, over 26,000 2nd degree and 750,000+ 3rd degree connections:


The ratio of my 2nd degree to 1st degree connections on LinkedIn is now 164, in February it was 146. I believe this is related to two causes:

  1. direct connections with greater variability of relationship (not all from shared employers) so there is less overlap in the 2nd degree connections
  2. time. Akin to passively managed index linked investments, time is on your side. So, invest now young fella and stay invested. One day you'll be able to retire richer than you can imagine.

The ratio of my 3rd degree to 1st degree connections is 5600. Imagine that - by adding just one connection to your network you can easily reach 5600 people with referrals through your network. As LinkedIn gains popularity as a Job Board this has a direct benefit for your career management. Also, LinkedIn is now doing a great job with Answers, an anti-forum approach to asking your network questions and receiving considered and well researched responses (in exchange for valued expertise rankings and general good karma). My: questions and answers.

Since my previous post on this topic I have begun using Facebook as well. After long ignoring all but LinkedIn, Facebook is the first of the friendster / myspace / hi5... social networks that has value for professional networking with the added spice of personal profiles and interactions. I was first attracted to Facebook through a blog posting of one of my professional contacts discussing Facebook groups with professional appeal. All of the local user groups I belong to have representation on Facebook and it is a great place to discover like minded people and have engaging conversations.

I have tested LinkedIn answers vs. Facebook groups for harnessing the wizdom of crowds and so far am much more impressed with the results achieved on LinkedIn. Both LinkedIn and Facebook are now moving in on the space of domain specific forums / bulletin boards where crowds gather to discuss issues of importance to them. I believe that this should be encouraged as it scales much easier to maintain profile information in few places which can be leveraged in many scenarios while interacting with different communities of interest.

There is a very high percentage overlap in my contact base between LinkedIn and Facebook. But I expect to always have more casual friends on Facebook (not in the way that I will network openly with potential professional contacts on LinkedIn) and more professional contacts on LinkedIn.

The benefits of networking are many, but don't forget to protect your critical ID info for online privacy.

Remembering not to forget the real world of offline social networking and events, today I am looking forward to a Bar Mitzvah and Ariyeh's 2nd birthday party!

Diggdel.icio.usFacebookTwitterTechnoratiemailPrintPDFStumbleUponYahoo! BuzzGoogle BookmarksDotNetKicksFriendFeedGoogle BuzzLiveNetvibesSlashdotAdd to favorites

]]>
http://www.mikebd.com/the-network-effect-part-2/feed 0
I’m not having enough funhttp://www.mikebd.com/im-not-having-enough-fun http://www.mikebd.com/im-not-having-enough-fun#comments Tue, 19 Jun 2007 05:41:00 +0000 Michael Ben-David http://wp.mikebd.com/uncategorized/im-not-having-enough-fun By now everyone has probably Googled themselves at least once. I'm pleased that the top 3 results when searching for my name are related to me, one is my resume and another is my LinkedIn profile. Not bad since I've essentially done no specific search engine optimization (although LinkedIn does I'm sure).

However, how many of you have searched for your profiles on ZoomInfo? Zoom info currently boasts profiles on 36,479,288 People and 3,474,916 Companies. If you use LinkedIn, ClaimID and other sites to maintain a public profile then ZoomInfo is one more to consider.

In my case, there are 2 other Michael Ben-Davids (and neither is the other IT guy in Toronto by the same name, A.K.A. Moran - who once got me in trouble when his resume came through on my boss's FAX machine). One is a semi-pro soccer coach and the other is a professional dance partner. Seems I lost the interesting career lottery to these folks.

Ah well. There's always a chance life will get interesting, without making a tragic news leading story. Hey - if I've learned anything from all those genie in a bottle, 3 wishes, bedtime stories it's to be very careful what you ask for and include lots of qualifying statements.

Here's hoping you have an interesting day - if not career :)

Diggdel.icio.usFacebookTwitterTechnoratiemailPrintPDFStumbleUponYahoo! BuzzGoogle BookmarksDotNetKicksFriendFeedGoogle BuzzLiveNetvibesSlashdotAdd to favorites

]]>
http://www.mikebd.com/im-not-having-enough-fun/feed 0
Daily Stand-Up / Scrum Kickoffhttp://www.mikebd.com/daily-stand-up-scrum-kickoff http://www.mikebd.com/daily-stand-up-scrum-kickoff#comments Thu, 10 May 2007 22:48:00 +0000 Michael Ben-David http://wp.mikebd.com/uncategorized/daily-stand-up-scrum-kickoff Today was day 3 of our adoption of Daily Stand-Up / Scrum meetings at GS1 Canada. I've chosen an open location and policy for observers (a nice crowd formed today). So far so good - lots of positive feedback on the format and value. The following is how I introduced the concept here:

Agenda:
  1. Accomplishments since the last meeting
  2. Planned activities before the next meeting
  3. Identification of any blockers that are preventing progress
The result should be the following benefits:
  • knowledge sharing / reuse scenario identification
  • quickly identify sore spots that require further deep dive follow-up meetings / actions
  • dynamic balancing of work assignments as people have availability and projects can benefit from additional resources that are not dedicated to them
  • build the team work / sense of commitment to each other

Please be on time, we will start promptly and this should only take 10-15 minutes once we get into a rhythm. The idea is not to talk a lot but to say what needs to be said. Resist the urge to get into detailed requirements or design conversations - this is quick status and identification of issues. We can decide to have a few people hang back and get into deeper conversations once the main group meeting is complete. The remainder of the hour is reserved for that purpose so everyone knows there is a set time for these things if they need them.

Read these:

Developers and QA are the Pigs. PMs and business stakeholders are Chickens. Support are Pigkens (we'll work on that)… Obviously, everyone is fully committed to all of our initiatives and we don't mean to imply otherwise. This is mainly a tool for development and QA to plan and track our work effort and ensure we're each doing the most important things we can be doing on a daily basis. Having others attend the meeting should provide mutual benefit in knowledge sharing and issue identification / resolution and will naturally provoke healthy follow-up conversations.

This is an open meeting. Everyone can feel welcome to forward this invite to other chickens and pigkens as long as they are told to stand on the outside of the pigs and observe silently unless spoken to. We can do a quick hand raise at the end for chickens to ask questions. We'll work on the format as we go…

I expect the result will be that it becomes easy for anyone to quickly see where we are and where we are going as a team and what we need help with (blockers).

I've not specifically gone to any lengths to "sell" Agile, Extreme Programming or Scrum. Some of the values and practices were discussed briefly in my Team Introduction. Beyond that I am trying to foster adoption without any great fuss. This meeting is more Stand-Up than proper Scrum as we have not yet begun moving toward sprinting in iterations and working off backlogs.

I hope this might help someone else get over the early hump of adoption. The benefits demand a concerted effort...

Diggdel.icio.usFacebookTwitterTechnoratiemailPrintPDFStumbleUponYahoo! BuzzGoogle BookmarksDotNetKicksFriendFeedGoogle BuzzLiveNetvibesSlashdotAdd to favorites

]]>
http://www.mikebd.com/daily-stand-up-scrum-kickoff/feed 0
Java Framework Stack: Spring / Hibernate / Tapestryhttp://www.mikebd.com/java-framework-stack-spring-hibernate-tapestry http://www.mikebd.com/java-framework-stack-spring-hibernate-tapestry#comments Thu, 26 Apr 2007 22:56:00 +0000 Michael Ben-David http://wp.mikebd.com/uncategorized/java-framework-stack-spring-hibernate-tapestry Any thoughts on this proposed framework stack?

A snip from a recent message to the development team at GS1 Canada:

I propose the following for new applications (we can have a separate discussion on if / when / how we migrate existing code).

I believe all of the above are stable enterprise quality frameworks with a critical mass of developer support and strong reference resource availability. It also seems that the particular combination of frameworks play well together and have been documented to be a good combination, see Beginning POJOs (combining Spring + Hibernate + Tapestry).

My motivations for this include:

  • reduce design risk / complexity / time to develop and debug custom code that provides non-domain specific functionality (logging / tracing / profiling, database access, transaction management, pooling / caching, security, configuration, UI templates etc...). Save our innovation efforts for domain specific value added use cases.
  • ease the ramp up for new developers by leveraging industry recognized frameworks which are either readily available in candidates or easily learned

I'm especially interested in trap doors and negative experiences you were unable to workaround.

Also, what version numbers of these would be a stable combination that is recent enough to leverage JDK 5 Generics and metadata / annotations?

Feedback: please comment here or contact me.

Happy, highly leveraged, coding...

Cheers,
Michael.

Diggdel.icio.usFacebookTwitterTechnoratiemailPrintPDFStumbleUponYahoo! BuzzGoogle BookmarksDotNetKicksFriendFeedGoogle BuzzLiveNetvibesSlashdotAdd to favorites

]]>
http://www.mikebd.com/java-framework-stack-spring-hibernate-tapestry/feed 1
Working online; Guru, IFreelance, Elance, BitWine…http://www.mikebd.com/working-online-guru-ifreelance-elance-bitwine http://www.mikebd.com/working-online-guru-ifreelance-elance-bitwine#comments Tue, 06 Mar 2007 13:28:00 +0000 Michael Ben-David http://wp.mikebd.com/uncategorized/working-online-guru-ifreelance-elance-bitwine If you currently or have considered working through online freelancing sites there is a thread developing on LinkedIn Answers that could be of interest.

My thoughts are:

With a bent towards code slinger service providers...

In my travels I have been passively collecting a list of resources to be used in this manner and was optimistic that starting small on one or two of these and collecting strong rating / feedback would be a good approach.

My caution personally and from advisors has always been the economy of scale and whether I could expect to win many bids if they came down to pricing vs. offshore consulting houses or individuals.

The key then is to either compete primarily on capability / niche (very current or very dated but still sometimes required) skill sets vs. price - at least until a strong record has been established. Another alternative is to do business development outside of these sites (or between them) and farm out the bulk of the crank turning to an offshore consulting firm using these sites if your skills lean towards client facing technical / project management. Just build in buffers to the project plan to account for the extra handoffs, communications and possible rework required. Know yourself though, if you're an overly perfectionistic OCD plagued code artist you might not be successful representing other people's work at your accustomed level of quality / elegance (I could also recommend a good therapist).

In practice I have not yet had (made) the opportunity to diligently pursue this plan as I've since decided to refocus on being an employee - will I ever learn??? When I was focused on self-employment business development I found that knowing people was much more important to finding and winning bids than knowing things or pricing level. That would argue strongly in favour of the argument in your blog posting.

One tool to use in building a validated portfolio of work that can be referrenced from any of these sites in your profile is claimID.com (mine is http://claimid.com/mikebd).

Sites I've bookmarked - YMMV:
https://www.odesk.com/
http://www.rentacoder.com
http://getafreelancer.com
http://www.sologig.com/
http://freelancepool.com
http://www.freelance.com
http://www.guru.com
http://drupal.org/node/57624
http://www.php-freelancers.com/
http://www.hotgigs.com
http://www.getacoder.com/
http://contractedwork.com/
http://www.eworkmarkets.com/
http://Drupalancers.com
http://drupal.org/forum/51
PHP: http://www.php-editors.com/forums/forumdisplay.php?f=25
http://www.elance.com
CMS: http://www.freelancecms.com
http://www.ifreelance.com

Diggdel.icio.usFacebookTwitterTechnoratiemailPrintPDFStumbleUponYahoo! BuzzGoogle BookmarksDotNetKicksFriendFeedGoogle BuzzLiveNetvibesSlashdotAdd to favorites

]]>
http://www.mikebd.com/working-online-guru-ifreelance-elance-bitwine/feed 0
The Network Effecthttp://www.mikebd.com/the-network-effect http://www.mikebd.com/the-network-effect#comments Tue, 20 Feb 2007 04:40:00 +0000 Michael Ben-David http://wp.mikebd.com/uncategorized/the-network-effect See also, follow-up: The Network Effect - Part 2 (2007-06-24)

Originally posted 2007-02-19:

I have many hobby interests which have occupied my free time in the past. If you asked me what I would like to spend my free time doing (outside of work, family and spiritual pursuits) I would say squash / racquetball, hockey, electronics circuit building, working on my stamp collection, coding for fun, coding for profit, reading, gaming...

However, to describe what I have actually spent free time doing recently, I would say that Social Networking - especially on LinkedIn has dominated my spare moments. In 5-10 minutes a day and the odd day of 30 or so I have grown my direct connections to 369 and that quickly multiplies to over 50,000 2nd degree and over 2,000,000 3rd degree connections.



I am facinated by the 6 degrees of separation type observations of how small the world is in this information age. I try to practice Open Networking to link with like minded people and help the collective where I can with referrals. I've seen the value of this with interesting contacts being made by people that discover my profile through their network and in making targetted requests of my network which return results any sales/marketing team would drool over.

I made a decision a long time ago to pretty much ignore all social networking sites other than LinkedIn as I prefer to have one strong network rather than a bunch of weaker ones. LinkedIn caters mostly to professional networking and can be a very good tool in career development.

Please drop me a line if you'd like to join my network.

Happy Networking...

Cheers,
Michael.

Diggdel.icio.usFacebookTwitterTechnoratiemailPrintPDFStumbleUponYahoo! BuzzGoogle BookmarksDotNetKicksFriendFeedGoogle BuzzLiveNetvibesSlashdotAdd to favorites

]]>
http://www.mikebd.com/the-network-effect/feed 0
It’s time to embrace open distributed / federated identification (authentication)http://www.mikebd.com/its-time-to-embrace-open-distributed-federated-identification-authentication http://www.mikebd.com/its-time-to-embrace-open-distributed-federated-identification-authentication#comments Sun, 11 Feb 2007 21:14:00 +0000 Michael Ben-David http://wp.mikebd.com/uncategorized/its-time-to-embrace-open-distributed-federated-identification-authentication Updated: Feb 3, 2008...

Yahoo has joined the OpenID universe: http://openid.yahoo.com/, use your existing Yahoo or Flickr account to login to OpenID enabled sites.

Originally posted on: Feb 11, 2007...

I won't rant about all the usernames and passwords I need to keep track of for my personal and professional use because I can already see everyone nodding.

In the past, Microsoft tried to solve this problem for the masses with their Passport authentication service (now known as Windows Live ID). The idea is that you maintain one user ID and password with a trusted site and other sites can delegate user logins to the trusted site. Anyone with a hotmail account automatically had a passport. The problem here was it was Microsoft and they were not able to overcome the paranoia / distrust / hate / etc... that many in the industry have for them. Also, if I recall correctly from when I considered adding this feature to Ticketmaster's ReserveAmerica.com, Microsoft was charging for the use of their API. However, many took notice and decided that a consortium of industry leaders should collaborate on such a service.

Thus was born the Liberty Alliance and their Project Liberty. And so I was heartened, it will take some time but this effort seemed to have some significant backing and should have revolutionized the way we manage our online identities. I was patient, every time I needed to create yet-another-login on a new site I would recall the promise of Passport and Liberty and wonder - what ever happened? As the years passed, patience turned to apathy as I gave up hope that any sites I care to visit or enterprise services I use will adopt Project Liberty. Perhaps this will yet emerge as a useful platform, or is rampantly being adopted - just not by the 7,543 sites and services that I seem to need to track my IDs on.

Today I see new hope!

Not from a press release, not from an editorial article but from a real live site (Simile Wiki) that is using an existing platform which seems poised to capture critical mass in this space.

OpenID exists today and you have your choice of authentication providers to maintain your trusted account with. It seems that adoption is still early but shows much promise with authentication services and libraries available. If you have a Technorati account then you're all set to play, just login to Technorati and then provide your profile URL (http://technorati.com/profile/<your account name>) as an OpenID identifier into any site that allows authentication using OpenID (e.g. http://www.openidenabled.com/).

I've found that the Technorati authentication is a little buggy, it claims an error but one or two browser reloads corrects the problem. This will likely get corrected soon and there are other service providers to choose from if you wish. Also, you can find implementations of OpenID libraries in most popular web development languages if you prefer to run your own server.

ClaimID can be used in the same manner as Technorati and I have found that the site I tested was able to reconcile two OpenIDs to the same account - how very cool... ClaimID authentication seems to not suffer from Technorati's bugs but does not currently support as many stored profile attributes for distribution to trusted sites when creating accounts.

Once again, the FOSS community demonstrates how it can overcome 300 pound gorillas and bring new technologies to market quicker than an industry consortium.

Hopefully this will be one way technology can begin simplifying our lives as intended, a promise long unfulfilled. Do your part by participating as a user and site developer!

Diggdel.icio.usFacebookTwitterTechnoratiemailPrintPDFStumbleUponYahoo! BuzzGoogle BookmarksDotNetKicksFriendFeedGoogle BuzzLiveNetvibesSlashdotAdd to favorites

]]>
http://www.mikebd.com/its-time-to-embrace-open-distributed-federated-identification-authentication/feed 0
Team Introductionhttp://www.mikebd.com/team-introduction http://www.mikebd.com/team-introduction#comments Fri, 02 Feb 2007 15:36:00 +0000 Michael Ben-David http://wp.mikebd.com/uncategorized/team-introduction Welcome to the team (for me).

Taking a page from two thought leaders in the software development industry (Joel Spolsky and Reginald Braithwaite), I thought I might start posting here messages within my team that have common application. I hope you'll agree or comment otherwise :)

What follows is my introduction / team orientation message to the development team at GS1 Canada.

Day 2 dawns and I am filled with thoughts of a new business domain to master, lots of bits and bytes that need to get delivered and a new team to work with.

Please notice I said team. We all come from different backgrounds, culturally and technically, and from that diversity comes our strength - IF we behave as a team. If we do not, then we are bound to fail. It's been said many times before but bears repeating: we will succeed or fail as a team. Whether it be at an organizational or personal level, I do not consider failure an option. So here comes...

Rule #1: Be a strong teammate. We all have different titles, years of experience and contract / permanent status. I do not consider any of those important factors in the way we should be treating each other or the correctness of any of our positions / arguments. Correlates of rule #1: Open and honest communication, transparency, politeness, respect. We should not need to cut anyone off to get our point across. Be patient, listen, and respond constructively. No finger pointing.

Rule #2: Get IT done. We have lots to do. We can not sit around debating forever, if the way forward is not completely clear, go in the most sensible direction and adjust as necessary when clarity arrives. Often, clarity will not come until a direction is chosen and traveled to some degree. Correlates of rule #2: Stomp on stoppers. Stoppers are anything that prevent you from getting IT done. These can be communication inefficiencies, critical bugs, analysis paralysis, organizational bureaucracy or personal / family issues.

My job is largely to help you be as productive as possible while maintaining the overall team health. To do that I will actively be spending as much time with each of you as I can but I also need and want you to come to me with any concerns. Do not sit and stew, come to me and we will find solutions or at least we can talk.

Rule #3: Don't be afraid.

  • Don't be afraid to be wrong. Ask questions that you think you know the answer to, you might be surprised by the response. If you said or did something in the past that you would like to change, don't regret it - correct it. While learning to ski I remember thinking, if I never fall then I'm not trying hard enough to improve.
  • Don't be afraid of the code. Adhere to the XP value of courage. Refactor your code if it starts to smell. Unit test, as much as possible with automated test suites.
  • Don't be afraid to question the status quo. Practice continuous improvement in your personal and professional development and in the way we exercise tools and processes to get our job done.

I could continue this for quite some time but I think that's enough to get the gist. More will come for sure but please remember the 3 rules and we'll all enjoy coming to work each day and achieve our individual and organizational goals.

In the spirit of 3, I have a set of 3 challenges for you and a prize for the winner of each:

  • The first person to send me the name of my cat.
  • The second person to send me an invite or respond to one I send on LinkedIn.
  • The third person to send me their Instant Messaging contact info so we can have brief, efficient interactions that do not clutter our mail inbox.

The winner of each of these will have their pick of any item(s) up to $20 US from ThinkGeek "stuff for smart masses".

I look forward to working with you and celebrating many individual and team successes!

Cheers,
Michael.

Diggdel.icio.usFacebookTwitterTechnoratiemailPrintPDFStumbleUponYahoo! BuzzGoogle BookmarksDotNetKicksFriendFeedGoogle BuzzLiveNetvibesSlashdotAdd to favorites

]]>
http://www.mikebd.com/team-introduction/feed 0
Web Hostinghttp://www.mikebd.com/web-hosting http://www.mikebd.com/web-hosting#comments Mon, 29 Jan 2007 05:37:00 +0000 Michael Ben-David http://wp.mikebd.com/uncategorized/web-hosting I just completed moving many of my sites to DreamHost. The hosting provider I have been using for the last 6 years is still offering the same features they did then. I now have many more toys to play with and look forward to leveraging them. One limitation, if you view it as such, is that they host on Linux only and do not support ASP / ASP.Net / MS SQL.

The process was fairly painless and AFAICT I had no downtime. If you need some help arranging or moving your hosting please let me know.

You can save $25.00 with DreamHost by providing the promo code MikeBD.

Diggdel.icio.usFacebookTwitterTechnoratiemailPrintPDFStumbleUponYahoo! BuzzGoogle BookmarksDotNetKicksFriendFeedGoogle BuzzLiveNetvibesSlashdotAdd to favorites

]]>
http://www.mikebd.com/web-hosting/feed 0
Help Mike Stop Rhyminghttp://www.mikebd.com/help-mike-stop-rhyming http://www.mikebd.com/help-mike-stop-rhyming#comments Thu, 09 Nov 2006 06:42:00 +0000 Michael Ben-David http://wp.mikebd.com/uncategorized/help-mike-stop-rhyming Once in a while I get started rhyming and have trouble stopping. Witness the following essay on exceptional experiences:

It has been said that in many categories, brand loyalty is near negligible these days. Often times, purchasing decisions can be made by consulting online or hard copy customer and editorial reviews and shopping around for the best prices. I have done this myself many times. However, there is one brand in particular that I now have very strong loyalty to because they rescued me from a horrible user experience.

Once upon a time in a cheerful land before the ultimate rein of Schwartz and Reisman, lived a wonderful site known as Chapters.ca. It had books and so much more but mostly a very functional store. With checkout options galore, but not so much as to implore, a need for manual interaction to complete the transaction. It was speedy as can be and always led me to believe that my order would arrive exactly as it was described. Trust, you see, is a key to usability.

But darkness descended on the land when one day tragically began with a rude shock awaiting me when the site unexpectedly had a new name and colour scheme. What once I knew and loved before alas it was to be no more. Chapters.ca had been usurped by Indigo. The experience I had enjoyed was ruined when I was annoyed to find errors and timeouts interrupting my checkouts.

When once I was described as sane, exasperation overcame my calm serenity and threatened to bring me to my knees. At last it occurred to me the notion of a property named for so many tropical trees. Amazon.ca had sprouted in the land and it was then that I began what is a likely guaranty of faithful brand loyalty. It works and does as I expect, leaving me sans any regret for the time and money I invest into their flourishing forest.

Please send $9.99 to the “Help Mike Stop Rhyming” fund (http://www.HMSR.ca).
Funds will be distributed at the sole discretion of the HMSR fund operators with up to 100% covering administration fees.

Luckily for me I met my Wife when it could be that such cheesy prose was not held against me as perhaps it should have been. (Oops, there I go again).

DISCLAIMER: All characters, names and places used in HMSR fiction and semifiction (whether online, in print or any other media) are fictitious and are used herein for the purposes of comment, criticism, parody, pointing out political and/or social injustice or any other purpose through which humanity is held up to the ridicule it frequently deserves. Any similarity to real people, without parodic purpose, is a coincidence. All trade names, product names and trademarks of third parties, including any trademarked characters, used in HMSR fiction and semifiction (whether online, in print or any other media) are used without the authorization of those third parties, and are used only for the purpose of parody and identification. No sponsorship, endorsement or affiliation by or with those third parties exists or should be implied.

Diggdel.icio.usFacebookTwitterTechnoratiemailPrintPDFStumbleUponYahoo! BuzzGoogle BookmarksDotNetKicksFriendFeedGoogle BuzzLiveNetvibesSlashdotAdd to favorites

]]>
http://www.mikebd.com/help-mike-stop-rhyming/feed 0
Online Privacyhttp://www.mikebd.com/online-privacy http://www.mikebd.com/online-privacy#comments Mon, 09 Oct 2006 18:30:00 +0000 Michael Ben-David http://wp.mikebd.com/uncategorized/online-privacy In my last post I pledged to overthrow the evil FalconPain from his perch atop the Metroid Prime Pinball leaderboard.

My battle strategy, should I want to include social engineering tactics in my warplan could have started with a quick web search. How easy the mighty can fall. In less than 5 minutes I had FP's real name and birthdate on my screen. That needed cross checking for verification but was very much contextually valid and I would say 85%+ likely to be the target of my conquest.

PEOPLE - WATCH WHAT YOU POST ONLINE. Sorry for screaming. But geez...

I like to play Canasta on Yahoo Games (let me know if you play) and as a public service I often warn people when they are revealing too much online. One unsuspecting opponent was shocked when I asked her how disturbing the noise was from the local airport. Her id included a part that I guessed was her zipcode. And so it was. I found a map of her region and narrowed her location to within a small area in < 10 minutes.

This day of personal publishing / blogging / online resumes has its advantages, but we must remember to not go over the line. At the very least, never display your birthdate in a public profile. Identity thieves and other scoundrels are on the prowl...

Not to mention, pinball wizards on a mission. So BEWARE!

Diggdel.icio.usFacebookTwitterTechnoratiemailPrintPDFStumbleUponYahoo! BuzzGoogle BookmarksDotNetKicksFriendFeedGoogle BuzzLiveNetvibesSlashdotAdd to favorites

]]>
http://www.mikebd.com/online-privacy/feed 0
Metroid Prime Pinball High Score – Pirate Frigate Single Missionhttp://www.mikebd.com/metroid-prime-pinball-high-score-pirate-frigate-single-mission http://www.mikebd.com/metroid-prime-pinball-high-score-pirate-frigate-single-mission#comments Mon, 09 Oct 2006 18:18:00 +0000 Michael Ben-David http://wp.mikebd.com/uncategorized/metroid-prime-pinball-high-score-pirate-frigate-single-mission Updated: 2007-02-27

It took a few months and many attempts (glad I was not paying by the quarter, or is it loonie these days?). But - MISSION ACCOMPLISHED (where's my flight suit?).

Woo Hoo!!!

And not just by a little bit either, smacked it out of the park baby :)



Originally posted on 2006-10-09:

Metroid Prime Pinball High Score - Pirate Frigate Single Mission, originally uploaded by michaelbd.

Step way back to the mid - late 70s and early 80s on any particular Tuesday night and you'd likely find me hanging out at the local bowling alley. While my Mom or her Parents were knocking down pins in their league I was often chocking up points on the old classic pinball games.

Other than Galaga - which still rocks on the Nintendo GBA / GC, pinball was my thing. Something about the tactile feedback and sequence missions satisfy my compulsive stimulation requirements (OCD posting coming as soon as I perfect it with an even word count and balance the sentence symmetry).

Some of my friends participate in a pinball league which I dare not try as I'm sure to get sucked in beyond rescue. But I'm there in spirit and kicking your butts: John + Tom :)

The best of form factors for me is the Metroid Prime Pinball (http://www.metroidprimepinball.com) on the Nintendo DS (Lite). A combination action packed pinball game with embedded mini-game challenges from the Metroid shoot'em up series. All in a package easy enough to keep my brain from exploding from contemplation of germ sources and distribution patterns on my daily Subway commute.

I generally stick to puzzle type games that I can get in and out of very quickly with little if any back story and deep command sets to learn. E.g. tetris, galaga and f-zero are some of my longer running GBA favourites and now sudoku and metroid pinball on the DS.

Watch out falconpain - I'm coming after you.

Diggdel.icio.usFacebookTwitterTechnoratiemailPrintPDFStumbleUponYahoo! BuzzGoogle BookmarksDotNetKicksFriendFeedGoogle BuzzLiveNetvibesSlashdotAdd to favorites

]]>
http://www.mikebd.com/metroid-prime-pinball-high-score-pirate-frigate-single-mission/feed 2
Got me a new PC – part 2: command line fun + a sidebar on how timesheets suckhttp://www.mikebd.com/got-me-a-new-pc-part-2-command-line-fun-a-sidebar-on-how-timesheets-suck http://www.mikebd.com/got-me-a-new-pc-part-2-command-line-fun-a-sidebar-on-how-timesheets-suck#comments Wed, 02 Aug 2006 06:32:00 +0000 Michael Ben-David http://wp.mikebd.com/uncategorized/got-me-a-new-pc-part-2-command-line-fun-a-sidebar-on-how-timesheets-suck In part 1 - hardware / OS platform, I discussed the rationale behind purchasing a new PC laptop and configuring it with Windows as a virtual machine host and Ubuntu as a guest OS.

The unfortunate reality of my professional life for the last few years has been that I have spent most of my time in meetings or using MS Word, Outlook, Project and a series of horribly designed timesheet management applications.

Is there a rule in some obscure tome that precludes any usability testing on timesheet applications? One of these timesheet applications was so bad, that I built my own front end to it which quickly grew in popularity amongst the staff. I have enough trouble understanding why employees are made to suffer with the chore of recording their time in the first place. Any manager that is paying attention should be able to account for the time their staff is spending in enough detail to serve realistic enterprise reporting needs. Especially in companies that routinely expect staff to work unpaid overtime, it is counterproductive to force overworked employees to record a detailed accounting of their time. In the companies I have worked for, I have witnessed much more selfless effort contributed by teams that were not asked to keep timesheets than I have seen at other organizations.

My coding habit is crying out for some attention and that is a big part of why I recently changed jobs. When not using MS bloatware and attending endless meetings, any self respecting software developer spends a lot of time at a command line.

Tweaking the command line experience is an up-front task that I always do with every new development environment. The rewards of such time investment in capability and productivity are many.

The first step many take on a Windows machine is installing Cygwin. This provides a Unix style shell environment and portability layer for running Unix commands in Windows. The command shell native to cygwin is, for the most part, not a big step forward from the Windows command shell.

Power users that have experimented with various terminal environments know many benefits that others never realize they are lacking. Tabbed shells in one parent window, split / tiled windows, command macro environments specific to terminal operation (not shell scripting)...

GNU Screen is one great utility in this class that deserves a look by anyone who spends significant time at a command line (especially if it is at multiple concurrent command lines in separate windows). This is the only option of its caliber that I know of that can be used in pure text (telnet, SSH) environments.

In addition to the pure text mode terminal utilities, further usability and functional enhancements are available through X windows GUI terminal emulators. Those running a KDE desktop have access to Konsole which drove my expectations when looking for a lightweight, fast, feature laden option that is a step up from xterm, without all the overhead of a full KDE or Gnome footprint. Konsole can be run outside of a full KDE session and that was my original plan.

I started looking through the X terminals installed with cygwin which led me to rxvt. It was a nice step up over xterm but still a ways away from what I remember having with Konsole. But it led me to a very happy place when I found mrxvt. mrxvt does not do all that GNU Screen does but I plan to use them together to get the best of both worlds. mrxvt for a tabbed interface with highly configurable look and feel and macro support + Gnu Screen for split / tiled windows inside the tabs + additional macro support. Truly, I think I could go a long time with just mrxvt given the availability of X windows on the machine hosting the terminal process and leave Screen for the pure text mode connections. However, they both have their strengths and I hope they will play together nicely (I have not tried the combination yet - perhaps a future post will document that).

I have mrxvt running in cygwin on Windows and on Ubuntu. The install for cygwin was a simple:

  • download of source
  • tar zxf
  • ./configure --enable-everything --disable-debug
  • make
  • make install

The Ubuntu configuration took longer, I suspect because it is a clean server install and I had to apt-get a lot of development and X tools and libraries before the .configure would run cleanly. I probably went through 10 or so google searches as a newbie trying to figure out all the packages I needed to install. If I recall correctly, something like the following (before the ./configure step should do the trick):

  • sudo apt-get install build-essential libx11-dev libfontenc-dev libxaw-headers libxmu-headers libxft-dev
  • optionally, if you want background images in these formats:
    sudo apt-get install lib{jpeg62,png,tiff4}-dev

I used the very nice checkinstall package (sudo apt-get install checkinstall) to replace the final 'make install' step with 'sudo checkinstall' which monitors the installation and creates a package that can be distributed and removed / upgraded in the future.

The apt-get for lib{jpeg62,png,tiff4}-dev and checkinstall both require universe repository support. Enable that by uncommenting the corresponding 2 lines in /etc/apt/sources.list and perform a 'sudo apt-get update'.

The next step is man mrxvt and editing ~/.mrxvtrc to get a comfortable look and feel. I am using white on black as my colour scheme and dircolor support by putting alias ls='ls --color' in ~/.profile on cygwin (it is already enabled in Ubuntu).

My .mrxvtrc looks like:

# Look and Feel
Mrxvt.background: Black
Mrxvt.foreground: White
Mrxvt.geometry: 100x40
Mrxvt.saveLines: 3000
Mrxvt.scrollbarRight: True
Mrxvt.scrollabrStyle: next
Mrxvt.showMenu: True
Mrxvt.syncTabIcon: True
Mrxvt.syncTabTitle: True
Mrxvt.xft: True
Mrxvt.xftAntialias: True
Mrxvt.xftSize: 12

#Functionality
Mrxvt.loginShell: True

The following is a screen shot of 3 mrxvt terminals, each with different font settings, to show the difference in quality. They are arranged top down from worst to best (IMO). The respective settings are:

  1. xft without antialiasing:
    Mrxvt.xft: True
    Mrxvt.xftAntialias: False
  2. xft off:
    Mrxvt.xft: False
    Mrxvt.font: -misc-fixed-medium-*-*-*-14-*-*-*-*-*-*-*
  3. xft with antialiasing:
    Mrxvt.xft: True
    Mrxvt.xftAntialias: True


If xft is available to you, and the mrxvt host is local or near to your X server on the network, then use xft with antialiasing. If there is a lot of network latency between the mrxvt host and your X server, then turn xft off rather than running it without antialiasing (which would otherwise be required to have decent performance given the network overhead).

I haven't yet gotten to all the macro programming of the mrxvt terminal or integration with GNU Screen yet, but I hope this is enough to get you interested in exploring the world of power terminal tools.

When I'm not at the command line, I expect to use mc (midnight commander) for file management, gvim / vim for straight text editing and eclipse for Java and now PHP coding / debugging.

Happy coding :)

Diggdel.icio.usFacebookTwitterTechnoratiemailPrintPDFStumbleUponYahoo! BuzzGoogle BookmarksDotNetKicksFriendFeedGoogle BuzzLiveNetvibesSlashdotAdd to favorites

]]>
http://www.mikebd.com/got-me-a-new-pc-part-2-command-line-fun-a-sidebar-on-how-timesheets-suck/feed 0