Paul's profilePaul Sterling's blogPhotosBlogLists Tools Help
    January 20

    Umbraco v4 RC2 with Commerce for Umbraco

    With yesterday’s release of Umbraco v4 RC2 I couldn’t wait to get a production site upgraded and ready to go.  The install/upgrade went smoothly and within minutes I had the new UI displayed – it is quite beautiful (see below).  Next, a few minutes spent dropping in the required assemblies and user controls needed for Commerce for Umbraco – then a bit more time editing the configuration (yes, this part of the Commerce install sucks and we’re working on it!).  With 20 minutes of effort I had a beautiful new install of Umbraco v4, commerce enabled and ready to roll!  First thing I noticed, after the new icons, was how fast, smooth, and responsive the UI is.

    There remain a few minor issue with v4 (list here) but no show stoppers and I highly recommend you begin using v4 for all your sites as soon as possible.  I know I can’t wait to upgrade the motusconnect.com. and the planetmold.com site along with others.

    osm

    The members integration is flawless and ’just’ works with off the shelf ASP.NET membership controls.  So, if you’ve been waiting until Umbraco v4 was stable – now’s the time.

    -Paul

    January 16

    Geek Adventures in UX Design – Still Trying

    One of the most common tasks that I struggle with on a frequent basis is the effective design of web input forms.  Strangely, even though I am often frustrated by the difficulty in creating these forms, I thoroughly enjoy the process.  A bit of a disclaimer; I’m no expert at this, but believe I am learning to be an expert as I work with these elements on a daily basis, on a variety of websites, and with a few people who are very talented in this area. 

    Most recently, for our reference implementation of our Umbraco based content platform (planetmold.com), I set out to design a brief form that mold professionals use to ‘claim’ a listing on the planetmold.com site.  Initially I set out to simply represent the data elements as simply as possible.  Next I sat down to sketch a landing page that would reduce the number of steps required to ‘claim’ a listing to the absolute minimum. 

    pmSketch

    At this point I realized this was a terrific success – only two required fields! – but it also wasn’t going to work.  So I sat down with my favorite landing page design guide and revised again.  See, I neglected to factor in two of the requirements; 1) users must log in using Windows Live ID and 2) users must submit payment via PayPal for paid listings.  If you’re familiar with either of the these processes you’ll know that these requirements really mess with an effective design – namely because they send the user to 3rd-party sites. 

    scr_ECflow_559wx201h

    I should note here that even though my initial forms were not optimized in any way they weren’t wholly ineffective.  We did see more than 100 mold professional complete the process on the planetmold.com site. 

    What I’ve come up with is the following – shown here without the final styling.  It has the required elements, an additional field for categorization (based on feedback) and an option to skip the PayPal process if you have a Promo Code (pretty much everyone should have a code, if not let me know).  The Windows Live ID sign in process remains at this point. 

    take2 

    My next step is to take this basic design (which has been quite successful in terms of the number of mold professionals who complete it) and apply an appealing style to it for use on the planetmold.com landing pages. It’s a process I enjoy and one that adds value to these sites, and to my education.

    -Paul

    Mark Anderson’s 2009 Predictions – TAG NW 16 January 2009

    At noon today I attended the monthly TAG talk which featured Mark Anderson – of Strategic News Service fame.  It was a very well attended event, which I attempted to Twitter live.  In addition to Mark’s 10 predictions for 2009 he talked a bit about the importance of education in global competitiveness and challenged the crowd to come up with a local solution.  Namely what he coins ‘one to one’ computing, delivered at the pace individual students learn at, by instructors who know how.  The cost is $1450 (USD) per student – per his calculations.  I, for one, think we as a nation invest far too little in our education system and need to change the system to accommodate these types of scenarios. 

    Mark Anderson’s 2009 Technology Predictions

    1. The internet assistant will emerge - delivered via voice (phone)
    2. Voice recognition will finally arrive
    3. Broadband will reach into rural areas
    4. The 4G technology winner will be LTE [long term evolution]
    5. The netbook (carry along) will be the most popular platform
    6. Wall computing will emerge (surface + multi-touch + large scale)
    7. Diskless PC’s  will expand [SSD] usable life of devices will increase
    8. China GDP will be about 6%, which will result in political trouble (unrest)
    9. [Smart] Phone usage will explode
    10. More focus on in-home gaming (spurred by adoption of large, high-definition displays and low cost)

    The real value in attending a live talk, as opposed to reading this same list in an article, are the additional bits Mark provided. 

    Here are four of Mark’s observations

    1. In about three weeks there will be a psychological rebound for those in the US triggered by the change or administration and the resulting change in media focus. I hope he’s right!
    2. Banks cannot be trusted and must be supervised – contrary to the ‘regulators’ placed by the outgoing administration and evidenced by the ongoing global bank decline.
    3. The run up in oil prices was due to intentional options manipulation by big oil resellers and not by demand or OPEC actions. 
    4. The current global economic crises was due to too much liquidity in the global economy – and the resulting reckless behavior of financial leaders in private and government roles.

    Bonus Prediction

    Finally, Mark predicts that social networking may go away, though not necessarily in 2009, as it will become just ‘what we do.’  He contends that people, young people in particular, are becoming tired of advertising inside their social networks and some have essentially revolted by leaving large social networks with little value [Facebook] and joining more specialized and targeted social networks that are not appealing to advertisers.  Thereby, essentially removing advertising from their social networks.

    -Paul

    January 06

    Decisions: 3rd-Party Web Authentication Options

    A few months back (September 2008) when we set out to create a reference implementation of our content platform based on Umbraco we specified use of a 3rd-party authentication system.  At that time the most viable option, in my opinion, was Microsoft’s Live ID Web Authentication offering.  And that is what we used for our beta releases.  It was ready, it worked, and it was straightforward to implement.  You can see it in action on our planetmold.com site – super simple.

    Since then Facebook Connect, Google Friend Connect, Google’s Federated Login, and Microsoft’s Live ID Delegated Authentication have all launched.  In addition OpenID has gained even more momentum with both Google and Microsoft committing to being OpenID Providers – and AOL and Yahoo! were already providers.  Finally, JanRain launched their RPX service that simplifies the offerings of multiple authentication providers into a single ‘login’ form.  I expect there are others who offer, or will soon offer, a similar service. 

    The decision now is really which provider to use? 

    It seems to me that RPX is a clear choice, except for the fact that it introduces a potential point of failure.  On the plus side, once Microsoft turns on their OpenID Provider Service it should “just work” with the RPX service.  Essentially, then, RPX will offer virtually all 3rd-party web authentication options – that’s 100s-of-millions of accounts.

    Other than RPX, Facebook Connect and Google Federated Login seem to have the most traction (based on the number of accounts).  We’ve created a proof of concept using Facebook Connect and can attest to the fact that this implementation is quite straightforward.  Google Federated Login subscribes to the OpenID 2.0 Directed Identity protocol, so we expect implementation to be straightforward for this as well.

    At the time of this post we’re moving to RPX for our platform’s web authentication.  I will create a post detailing the implementation process for RPX once that’s complete.

    Assuming you’ve read this far – which would you choose?

    -Paul

    January 05

    LG Washer Dryer Drama – DIY Fix

    NB:  this post is a departure from my usual focus on technology as I delve into DIY appliance repair.  If you’re looking for just the How To Fix Your LG Washer Dryer without the background, see below.

    In April 2007 we purchased an LG Washer – Dryer combo appliance (WM3431HW) after looking for a solution to our laundry space constraints.  The year before we had moved into a downsized home and were looking to downsize our appliances as well.  From the very beginning we were thrilled – as much as you can be when it comes to laundry at least.  It was short-lived. 

    Even before the one-year warranty had expired the unit stopped drying clothes properly and a few days later the auto-dry setting stopped working altogether.  We called LG and they referred us to a local appliance repair service.  A few days later the service technician arrived (his appearance didn’t inspire a great deal of confidence) and proceeded to give me a lecture on how to clean the lint from the unit – something we’d been doing all along.  After cleaning the lint he could, he declared it fixed and left.  It wasn’t fixed.

    After several more visits from the same service technician (at least he stuck with it) and replacing a pump, a sensor, and the main control board (twice) the unit began working as expected again.  This took a full-month and four visits and resulted in numerous scratches to the unit and to the (new) laundry room floor; not to mention a month without a functioning dryer.  We live in Bellingham, Washington where hanging clothes out to dry in May is not a viable option due to the rain.

    In November of 2008, scarcely 6-months after the prior repairs had been completed, the unit began exhibiting the same behavior as before with the auto-dry setting not working.  This time I immediately called LG where they informed me that they would be unable to fix the unit as the warranty had expired.  They had a record of the prior issue and resolution but refused to acknowledge that this was the very same issue and the unit had not been repaired properly.  They were very kind and apologetic but utterly useless.  As we had purchased an extended warranty when we purchased the unit I called the extended warranty provider and left a message as requested (thrice), I have not yet heard back from this provider – four-weeks and counting. 

    After four-weeks of damp clothing I became frustrated enough to try and determine the cause myself – along with some strong encouragement from my wife.  I had seen the service technician access the inside of the unit and knew that it was quite simple to open the unit.

    The short-version is that the design of the unit is such that lint build-up inside an internal component obstructs the dryer’s airflow to the extent that the drying function is reduced and the unit’s logic board incorrectly reports the clothes as being dry, even when they are not. 

     

    How to Fix Your LG Washer – Dryer Combo When The Dry Function is Not Working

    I am not an appliance service technician, referenced no official guides, and used no special tools to accomplish this repair.  That said, you are on your own here if something goes wrong – good luck! 

    1. Turn off the water and unplug the unit
    2. Remove the top cover – 2 screws at rear
    3. Remove the interior cover – screws around perimeter
    4. You should see this:
      1. IMG_2333
    5. Locate the air return/lint drain
      1. Vertically oriented plastic component below the blower housing
    6. Unclamp the water supply hose – see below
    7. Remove the heat sensor from air return – see below
    8. Unscrew the blower unit
      1. You may want to clean the blower fan of lint while you’re at it – it’s under the white cover
      2. The seal between the blower unit and the washer drum had disintegrated on my unit, I ordered a replacement from here.
      3. overview
    9. Lift off the blower unit and carefully set aside
    10. From the rear of the unit unscrew the air return
      1. There is one screw which is accessed from the shipping lock hole – it is awkward but keep at it and you’ll get it
    11. Clean and/or rinse the air return to remove any lint – I found about a softball sized clump
    12. Re-assemble in the reverse order, plug it in, turn on the water
    13. Wash and DRY your clothes again

    Let me know if this worked or didn’t work for you and let LG know too!

    -Paul

    January 02

    Do Web Developers Need SQL?

    In 2002, when I first interviewed at Microsoft one of the questions I was asked was “how would you delete duplicate rows from a [sql] database table?”   I don’t actually recall what my answer was and I don’t suppose it much matters as I was hired by Microsoft soon after the interview – though I am no longer employed by Microsoft.  For seven years, give or take, I haven’t had occasion to consider this question a second time, until today.  Naturally, I almost immediately performed a web search and located at least five different methods for deleting duplicate records…I’m sure there are many more than five.  A Microsoft KB article suggested what seems a robust but rather involved solution, and most others are a variant on this.  In the end, as before, Pinal Dave came through with a straightforward solution that accomplished exactly what I wanted – shown here:

    DELETE
        FROM   someTable
        WHERE    Id NOT IN
        (
        SELECT    MAX(Id)
            FROM        someTable
            GROUP BY    someDupColumn, anotherDupColumn)

    If you follow my blog or Twitter feed you no doubt know that I go to some lengths to avoid writing SQL – namely by using the SubSonic ORM.  To be fair, I still use SQL databases (MSSQL and MySQL) and have not jumped to an alternative such as Amazon’s SimpleDB or Microsoft’s Azure Data Storage.  While I prefer SubSonic, even Microsoft has gotten into the ORM space with LINQ and there are many other solutions here as well.  Disclaimer:  I was once a Certified Oracle Developer and have created more than a few apps where the business logic was contained almost completely in stored procedures – those days are over, thankfully.

    In my opinion, as a web developer, I do not need to rely on a deep SQL knowledge any longer.  With the above mentioned technologies, highly-usable database administration UI’s, and a basic grasp of good data design I believe web developers can be freed from ‘having’ to use SQL.  What a relief!

    For a recent app that’s fairly data intensive, though quite simple, I used no SQL and only SubSonic to interact with the MySQL backend.  The most complex ‘query’ in the app is as follows:

    ListingDetailCollection listings = new Select().From("ListingDetail")
    .Where("target").In(new Select("code")
        .From("ListingZip").WhereExpression("Latitude")
        .IsLessThanOrEqualTo(HighLatitude)
        .And("Latitude").IsGreaterThanOrEqualTo(LowLatitude)
        .And("Longitude").IsGreaterThanOrEqualTo(LowLongitude)
        .And("Longitude").IsLessThanOrEqualTo(HighLongitude))
    .ExecuteAsCollection<ListingDetailCollection>();

    And that’s it – reduced to a few lines, in-line with the business logic, and using the same conventions as C# in general – makes it easy to create, debug, and annotate.  I hope I can encourage others I work with this year to move away from SQL to SubSonic (or LINQ, etc…)  as well.  It has the potential to increase productivity, quality, and sophistication.

    Let me know what you think.

    -Paul