Tag Archives: software-development

How to Make the World a Greener Place

As you may have already read on the Microsoft Live Search Blog, we have initiated a Will Code for Green contest! A few minutes ago, @msngreen tweeted it. It’s all true – you have an opportunity to showcase your skills, improve the planet, and possibly win some dough (the spending kind, not the baking kind).

Are you a developer? Do you know a developer? Have at it!


These are the official rules that govern how the Microsoft “Will Code for Green” contest will operate (“Contest”).

In these rules, “we” “our” and “us” refer to Microsoft Corporation and Lockergnome Inc., the Sponsors of the Contest. “You” “yourself,” “I,” “me,” and “my” refers to an eligible Contest entrant.


This is a skill-based Contest. The object is to create a publicly-accessible Web site application or “mashup” that will provide users of the application tools and information in one of the following two content categories:

  1. How to deal with the worsening global economy (“Economy Category”)
  2. How to take steps to improve the ecology of the planet Earth (“Ecology Category”)

For purpose of this Contest, each Web application you create and submit in the Contest will be called an “Entry.” All eligible Entries received will be judged using the criteria below, and the judges will select winners to receive prizes as described below.


Entries may be submitted from Noon PT on June 1, 2009 until 11:59 PM PT on August 12, 2009 (“Entry Period”). Entries must be received within the Entry Period to be eligible.


You are eligible to enter this Contest if you meet the following requirements at time Entry:

  • You are a legal resident of the 50 United States (including the District of Columbia) and are 18 years or older; and
  • You are NOT an employee of Microsoft Corporation or an employee of a Microsoft subsidiary; and
  • You are NOT involved in any part of the administration and execution of this Contest; and
  • You are NOT an immediate family (parent, sibling, spouse, child) or household member of a Microsoft employee, an employee of a Microsoft subsidiary, or a person involved in any part of the administration and execution of this Contest.
  • This Contest is void outside the geographic area described above and wherever else prohibited by law.


To be eligible for judging an Entry must meet the following content / technical requirements:

  • The Entry must consume Live Search APIs as described at http://search.live.com/developers
  • The Entry must conform to the Live Search APIs Terms of Use. http://search.live.com/developers/tou.aspx
  • The content displayed by the application and content behaviors within the application must conform to prohibited content guidelines. In addition to a prohibition against collecting personally identifiable information, prohibited content includes but is not limited to images or text that in the sole opinion of Microsoft is found to be offensive or contain any sexually explicit, disparaging, defamatory, libelous, obscene, or other inappropriate content or any content that would present Sponsors in unflattering light.

Aside from utilization of Live Search data/APIs, the Entry is not required to use any other Microsoft technologies in the execution of its function(s), however, if any other Microsoft online services are used the Entry must comply with their terms of use as well.

In addition:

  • Your Entry must be your own original work; and
  • Your Entry cannot have been selected as a winner in any other contest; and
  • You must have obtained any and all consents, approvals or licenses required for you to submit your Entry; and
  • Your Entry must not otherwise violate the rights of any other person or company by using their trademarks, music, logos, names or images without their express written consent.

Other than what is set forth below, we are not claiming any ownership rights to your Entry. However, by submitting your Entry, you:

  • Are granting us an irrevocable, royalty-free, worldwide right and license to: (i) use, review, assess, test and otherwise analyze your Entry and all its content in connection with this Contest; and (ii) feature your Entry and all into content in connection with the promotion of this Contest in all media (now known or later developed);
  • Agree to sign any necessary documentation that may be required for us and our designees to make use of the rights you granted above;
  • Understand and acknowledge that the Promotion Parties may have developed or commissioned materials similar or identical to your submission and you waive any claims you may have resulting from any similarities to your Entry;
  • Understand that we cannot control the incoming information you will disclose to our representatives in the course of entering, or what our representatives will remember about your Entry. You also understand that we will not restrict work assignments of representatives who have had access to your Entry. By entering this Contest, you agree that use of information in our representatives unaided memories in the development or deployment of our products or services does not create liability for us under this agreement or copyright or trade secret law;
  • Understand that you will not receive any compensation or credit for use of your Entry, other than what is described in these Official Rules

Please note that following the end of this Contest your Entry may be posted on a website selected by us for viewing by visitors to that website.

We are not responsible for any unauthorized use of your Entry by visitors to this website. While we reserve these rights, we are not obligated to use your Entry for any purpose, even if it has been selected as a winning Entry.

If you (or, if you are a minor, your parent or legal guardian) do not want to grant us these rights to your Entry, please do not enter this Contest.


If you wish to participate in this Contest, you must complete the registration Webform, select the Category you’re entering, and include the URL where the judges can find your website application. The website must be publicly accessible, cannot require an id/password to access and the application must remain posted online until August 23, 2009.

We will only accept two Entries per entrant and e-mail address; one per Category.

In other words, two people may not enter using the same email address you each must enter using a unique email address. We are not responsible for Entries that we do not receive for any reason, or for Entries that we receive but are not decipherable for any reason.

We will automatically disqualify:

  • Any incomplete or illegible Entry; and
  • Any Entries that we receive from you that are in excess of the Entry limit described above.


All eligible Entries will be posted online at gnomedex.com from 12:01 AM PT on June 1 to 11: 59 PM PT on August 12, 2009 and website visitors will be invited to vote for their favorite application. Each visitor will be limited to one vote per Category.

On or around August 19, a panel of Microsoft judges will review all eligible Entries received and select five Semi-Finalists; 2 from each Category, and 1 from either Category based on the following criteria:

  • 50% effectiveness in helping users address the Category problem
  • 10% innovation in display or usage of Live Search data
  • 20% usability/user interface design
  • 20% customer appeal (would people use this, as determined by initial community voting on gnomedex.com)

All Semi-Finalists will be demonstrated at the Gnomedex conference August 20-22, 2009. Attendees at the Gnomedex conference will be invited to vote to determine a Grand Prize winner in each Category and three runner-up winners from both Categories combined.

The decisions of the judges are final and binding. If we do not receive a sufficient number of Entries meeting the Entry requirements, we may, at our discretion, select fewer winners than described above.

In the event of a tie between any eligible Entries at any level, the tie will be broken by an additional judge who will judge the tied Entries based on the criteria listed above.


The Grand Prize winner in each category (Economy & Ecology) will receive the following:

  • $10,000 Cash
  • A 3-year BizSpark membership (Estimated Retail Value, $100)

3 Runner Up Prizes:

  • $3,000 Cash
  • A 3-year BizSpark membership

We will only award one prize per person during the Entry Period.

If you are selected as a potential winner of this Contest:

  • You must agree to keep your application live on a publicly accessible website until September 22, 2009; and
  • You may not exchange your prize for cash or any other merchandise or services; and
  • You may not designate someone else as the winner. If you are unable or unwilling to accept your prize, we will award it to an alternate potential winner; and
  • If you accept a prize, you will be solely responsible for all applicable taxes related to accepting the prize; and
  • If you are a minor in your place of residence, we may award the prize to your parent/legal guardian on your behalf; and
  • Unless otherwise noted, all prizes are subject to their manufacturers warranty and / or terms and conditions.

If for any reason an advertised prize is unavailable, we reserve the right to substitute a prize of equal or greater value as permitted.


If you are a semi-finalist, we will notify you by sending a message to the e-mail address, the phone number, or mailing address (if any) listed on your Entry within seven (7) days of winner determination. If the notification that we send is returned as undeliverable, or you are otherwise unreachable for any reason, we may award the prize to an alternate winner.

If there is a dispute as to who is the potential winner, we will consider the potential winner to be the authorized account holder of the e-mail address used to enter the Contest, or the person residing at the mailing address listed on your mail-in Entry.

If you are a potential winner, we may require you to sign an affidavit of eligibility, liability/publicity release and W-9 tax form. If you do not complete the required forms as instructed and/or return the required forms within the time period listed on the winner notification message, we may disqualify you and select an alternate winner.


By entering this Contest you agree:

  • To abide by these Official Rules; and
  • To release and hold Microsoft and their respective parents, subsidiaries, affiliates, employees and agents from any and all liability or any injury, loss or damage of any kind arising from or in connection with this Contest or any prize won; and
  • That Microsoft’s decisions will be final and binding on all matters related to this Contest; and
  • That, by accepting a prize, Microsoft may use of your proper name and state of residence online and in print, or in any other media, in connection with this Contest, without payment or compensation to you, except where prohibited by law.


This Contest will be governed by the laws of the State of Washington, and you consent to the exclusive jurisdiction and venue of the courts of the State of Washington for any disputes arising out of this Contest.


If someone cheats, or a virus, bug, catastrophic event, or any other unforeseen or unexpected event that cannot be reasonably anticipated or controlled, (also referred to as force majeure) affects the fairness and / or integrity of this Contest, we reserve the right to cancel, change or suspend this Contest. This right is reserved whether the event is due to human or technical error. If a solution cannot be found to restore the integrity of the Contest, we reserve the right to select winners from among all eligible Entries received before we had to cancel, change or suspend the Contest.

If you attempt to compromise the integrity or the legitimate operation of this Contest by hacking or by cheating or committing fraud in ANY way, we may seek damages from you to the fullest extent permitted by law. Further, we may ban you from participating in any of our future Contest, so please play fairly.


We will post the names of confirmed major winners online at gnomedex.com. This list will remain posted until Sept 22, 2009.


Microsoft Corporation
One Microsoft Way
Redmond, WA 98052

1420 NW Gilman Blvd. #2543
Issaquah, WA 98027

Outsourcing or Communitysourcing Software Development?

Yes, the coupons site currently looks ghastly – but at least the script works quite well (VERY well). I’ve had an idea about how to improve the Web site itself, but was waiting for the search script developer to make a few necessary changes… which are now in place.

I’m considering outsourcing the design / Web site structure to one of those third-party services. Someone very knowledgeable in building software teams clued me in to oDesk.com. I’m likely going to submit a RFP there tonight, but wanted to see if you: (a) wanted to make a bid, (b) had any feedback about oDesk’s workflow, or (c) had a better outsourcing option in your rolodex.

I want to overhaul the site, independent of the script that is running in /rss/ on the same subdomain. There’s nothing wrong with the form that’s at the top of the site right now, although it could use a bit of touching up style-wise.

Every page would include this form at the top, and below it a list of coupons appropriate for the semantically-structured URL. I’d also like to add an email newsletter form (which is handled, much like the ‘latest’ RSS feed, via FeedBurner). The front page would merely list the latest items from the database (as based on a specific RSS feed), as well as the most recent searches that yielded results.

We can currently output two master OPML files:

  • http://coupons.lockergnome.com/opml/categories
  • http://coupons.lockergnome.com/opml/stores

And completely dynamic OPML files can be created from any given keyword, with the RSS feeds changing within the OPML as well:

  • http://coupons.lockergnome.com/opml/categories/keyword
  • http://coupons.lockergnome.com/opml/stores/keyword

I need the Web site to pull these master OPML files and create subdirectories accordingly. Upon the following URLs would be displayed the latest coupons:

  • http://coupons.lockergnome.com/stores/storename
  • http://coupons.lockergnome.com/categories/categoryname

I would also like new pages created whenever a new keyword is searched (that contains results):

  • http://coupons.lockergnome.com/stores/keyword
  • http://coupons.lockergnome.com/categories/keyword

There are to be NO other ads on-site. For design inspiration, look at the MovableType Action Streams. Would be preferred to use open source software as a framework, as I’d consider open sourcing the ‘OPML-to-dynamic site’ that I’m looking to build here.

Software Development

http://live.pirillo.com/ – A couple of guys from the AlphaGeek crew interviewed Chris about Software Development – what he thinks is wrong with it and how to correct its problems.

Want to embed our Software Development video in your blog? Use this code:

Formats available: MPEG4 Video (.mp4), Flash Video (.flv), MP3 Audio (.mp3), Microsoft Video (.avi)

Easy Software Development

Years ago, Brandon created the Leopard programming language – not to be confused with Leopard, the operating system that Apple will never release to manufacturing.

I didn’t realize just how deceptively simple it was to use until he sent me the link to a desktop widget mashup program he compiled with the following lines of Leopard code:


window title
Chris Pirillo – Live!

window size

background color


<embed width="320" height="261" src="http://ustream.tv/XNNCxeJ6icRBcYSZm,eDKw.usc" type="application/x-shockwave-flash" wmode="transparent" >
no scrollbars

<iframe width="595" height="365" scrolling="no" src="https://chris.pirillo.com/live/chat.php" noresize="noresize" frameborder="no"></iframe>
no scrollbars

<img src="http://www.rentmychest.com/tallboy.jpg">
no scrollbars


That code makes this Windows EXE:

Making Windows Programs in Leopard

You can download the latest version of Leopard now. Seasoned software developers may laugh at the simplicity of the logic, but regular power users oughta love it just as much as they’ll love PopFly.

Windows Vista RC1: a Piece of Sith

The last thing I wanted to do upon returning from Alaska was rip Windows Vista “Ultimate” a new one. I also don’t want to go through my list of Vista UI nitpicks, as several of them still have not been addressed – and likely never will be. Even after installing RC1, I find myself feeling like I did after I first saw Star Wars: A Phantom Menace. For whatever it’s worth, I left the theater disappointed and dejected.

Sadly, the first release candidate for Windows Vista feels more like an alpha to me (or early beta, at best). I’m not talking about performance issues, which will most likely be improved upon before this OS goes gold. No, it’s all about a cohesive user experience / user interface for me. Vista fails on most UI fronts. It doesn’t look or behave similarly across any part of the operating system. Even more sad? That’s by design, folks.

I never thought I’d say this, but… we’ve finally seen the day when KDE / Gnome look, work, and feel “better” than Windows. Vista is schizophrenic, and that disorder has been further enabled by the range of vigilante software development teams who are providing code to the core without cross-checking with other teams for UI consistency. Unless Microsoft is sitting on major detail revisions, I’m afraid they’re sitting atop a “Phantom Menace.”

If OS X had a decent desktop PIM, I think Vista would push me to switch. As far as the inconsistency of Apple’s UI is concerned, that’s already been UNOfied. There’s no such app for Windows Vista, and I’m not holding my breath for Stardock to produce anything I want to use for longer than 3 minutes at a time (sorry, but 99% of Windowblinds skins are bloated and inelegant).

Express Software

The voting booth for that Made in Express contest is now open. Twelve finalists, as linked below. I have to give every one of these guys “props” for participating, but that doesn’t mean I’m going to turn off the snark filter:

Tim Shay – Here’s YARS (Yet Another Radio Station), claiming that it was NJAORS (Not Just Another Online Radio Station). I’m not quite sure what’s wrong with Last.fm? That, and… Tim proves that all Microsoft platform developers translate UI as “unimportant interface.” Suggestion: find a Web interface partner.

Sanchez Roman Canlas – For those of you who think that Microsoft Agent is teh shiz, you can place John C. Dvorak a curmudgeon chat bot on your desktop. Cute, but… about 10 years too late. Maybe if my real-life therapist wasn’t so darn entertaining, I might like the desktop curmudgeon bot a bit more. Suggestion: no comment.

Mark Johnson – He’s got a community-based video remix tool. So, this is a Web-based video editing tool? If so, that’s very cool – and very needed. Mark hasn’t uploaded any files for us to see, though. Suggestion: drop the remix/mashup thing, focus on the basic editing features.

Edmon Begoli – Let’s throw Web services at the X-10 protocol. Not a bad idea, although I think home automation is still 20 years away – and the products have to get 1000% more reliable. The big problem with X-10 is the brand association – pop-unders, anyone? Suggestion: develop it for all wireless home automation protocols, not just X-10.

Daniel Crenna – A “poker bot” is nice if you like the game. I, however, live in the state of Washington – where it is now illegal to discuss, write, or think about poker. Suggestion: polish the UI, release it as the first video poker game that doesn’t try to upsell you.

Ali Khalid – Dude, an instant (live) IM translation plugin is long overdue. This is the most original idea in the entire “Made in Express” contest. It shouldn’t be an MSN plugin, it should be a Trillian plugin. Microsoft Research allegedly developed a similar tool a few years ago, but never released it! Suggestion: don’t stop until this works with every IM client out there.

Douglas Steen – As a “visual learner,” I appreciate the concept – but his execution leaves something to be desired. Couldn’t figure ‘er out, got confused, kept clicking, got more confused. Suggestion: make it more imagey, less texty.

Chris Fuenty – How many of you don’t already have an IRC client? Here’s an AJAX-driven Internet Relay Chat script. On the surface, it’s rather blase – but I’d give my left nut to eliminate all Web-based Java (and ActiveX) IRC Web applets. Suggestion: work on the interface, send it to chat mods for suggestions, domainte the Web-based IRC chatosphere.

Ernie Hall – What kid wouldn’t want his or her own all-terrain, self-maneuverable robot? The problem with robots, however, is that they’re not very sexy. Suggestion: slap a camera on it and let it videocast adventures.

Jonas Martinsson – Newspaperize your fave feeds into PDF. Still has a long way to go, but I’d say that sample output is quite nifty. The only thing that keeps me from installing and recommending the app wholeheartedly is the need to install SQL Server 2005 Express Edition first – which I’m not going to do on my desktop. Suggestion: push forward with this one, but rely on something else for feed information storage (sorry, but installing SQL is overkill for users like myself).

Daniel Bryars – How are you feeling right now? That’s the questions all playlists should ask, and don’t. Song ratings should be based on emotion, not stars. Milton’s got a good idea here, but the Windows Media Player team will promptly ignore it. Suggestion: make it a WMP plugin.

Neil Bamber – Watch out, we’ve got another relationship tracking system on our hands! The only way you’re going to get my attention with these types of tools is by completely automating the “friendship management” process (which is never likely to happen). I don’t even use Outlook Journal, and I live in Outlook. Suggestion: look at all the Web-based social networks out there and then do something really different.

There you go – my gut reactions. A few gems, a few gomers. I’d really like to see Mark, Jonas, Ali, and Daniel continue their work (seriously, they MUST keep me posted). Next time, Microsoft should select six male developers and six female developers as finalists – unless fewer than six female developers stepped forward in the first place?

Users vs. Developers

In prepping for my talk at BloggerCon tomorrow, I thought I’d incite a riot tonight. Most of the world won’t be there, but you can tune into the live stream at some point right after lunch (when I’ll be leading the discussion). I put all of this in tonight’s Lockergnome report for the Windows Fanatics channel, but I figured it was worth repeating here… where I’m likely to get flamed out of existence.

What would the world of software be like if the inmates were running the asylum? I’d argue a lot more useful, and a lot more beautiful. But users are usually in the back seat when it comes to the evolution of a utility – from beginning to end. We have all the control in the world, but few of us ever choose to exercise that power. We are expected to treat developers like they’re gods – but they’re no more important in this cycle than the average user. Let me put it to you this way: software is useless if there isn’t anybody using it. There are certainly users who are content to take whatever programmers hand to them, but I don’t believe that this Utopian level of interaction will exist for too much longer. The world of software is getting larger by the day, and more people are finding new and different ways to improve lives with digital code. I got sick and tired of meeting programmers and developers with attitude, so I decided to get an attitude myself – as a power user. I expect better, I expect faster, I expect smarter, I expect more.

Base functionality is crucial – but I would argue that software should look twice as good as it runs (which should be fast to begin with). I’ve been labeled a “nitpicker” for pointing out font inconsistencies and pixel discrepancies. But if you don’t complain about the things you’d like to see change, how do you ever expect them to change? Developers develop, users use – but it’s up to both parties to communicate with one another. When I see a new piece of software that holds promise, I call out its shortcomings in the hopes it will be closer to perfection with the next revision. Programmers believe that they’re in charge – but I believe the true power lies within the user. Years ago, when I started Lockergnome, there were few people writing publicly about good (or bad) digital tools on the desktop or the Web. The blogosphere has since exploded with a flood of positive and negative opinions – and if you’re not a part of that revolution, then you’re missing out on an important part of history. I’ve seen countless developers struggle to get their apps recognized – but most of those same programmers suffer from an overinflated ego and miscalculation of a uesr’s wants, needs, and desires. Users don’t talk – but I’m asking you to start flappin’ your electronic gums for the sake of making the software landscape better for all of us.

FWIW, I love developers – couldn’t live without ’em. Can’t live with ’em, either. 🙂


As Dave mentioned the other day, I’m leading a discussion on the power of users at BloggerCon IV. Take a look at my recent string of Windows Vista and Office 2007 posts. Try to look past the “Chris is really ripping apart Microsoft’s flagship products” angle, focusing instead on the “Chris is really a passionate user” position. This is the foundation of our impending BloggerCon discussion. As a blogger, you have tremendous opportunities to tell developers what you need, what you expect, and what you want. You are the user – power or casual. If you don’t stand up for yourself, nobody’s going to do it for you. And contrary to popular belief, developers aren’t gods – and neither are users. If this is a real ecosystem, we need balance where none currently exists. Problem is, as users, we have to deal with the developers – who don’t always see the world from a user’s perspective. I’m not suggesting a revolution – I’m merely asking for other passionate users to start speaking up for the things they care about. I want to know if I’m the only user out there who isn’t afraid to say something (right or wrong) about the applications I work with (good or bad).