| Paul's profilePaul Sterling's blogPhotosBlogLists | Help |
|
Paul Sterling's blogMarch 18 Umbraco Integration with the Windows Web Application GalleryWith the launch today at MIX09 of Microsoft’s Windows Web Application Gallery we are thrilled to announce that Umbraco is already integrated with this excellent platform. We worked hand-in-hand with the Microsoft Web Team to quickly integrate the latest Umbraco release (4.0) with the Windows Web Application Gallery. With Microsoft’s revision to the Web Platform Installer and Web Deployment technologies we believe the case for building your web solution on the Microsoft Web Platform is irrefutable. (We at Motus Connect have made this assertion from the founding of out practice.) Using the Web Platform Installer a user can now install and configure all the components of a web solution (even a PHP-MySQL solution!) using a single interface – the enormity of this set in when I was setting up a new web server and wanted to install the Microsoft Web Platform, MySql, ASP.NET MVC, and Umbraco. Until now that process entailed visiting numerous different web sites (Microsoft, CodePlex, SourceForge) and individually installing the components of the platform – it is not an understatement to say that it was a real pain in the bum! Enter Web Platform Installer – now I can get all of the above components (including Umbraco!) from a single source, within a single interface. What’s more, the Web Platform Installer does more than just gather the various downloads into a single interface, it installs and configures the components based on the best practices as provided by each component’s author. For Umbraco, we set the required ACL’s, connection strings, and database security as part of the install. No more slogging through a 30+ page installation guide. Just click, click, click and bam! you’ve gone from zero to web app in a few minutes and can get on with the business of doing what you do best – creating web solutions (unless you *like* installing web components). For web developers this is no small thing as is stands to significantly boost our productivity. For the Umbraco project this is a fantastic development as more exposure is always a good thing. As we who are involved with Umbraco on a daily basis know; once you’ve had Umbraco it’s *really* hard to go back to another CMS/Framework. Umbraco’s presence in the Windows Web Application Gallery allows Umbraco to stand side-by-side with its peers Drupal, and DNN; and will allow even more web developers to discover and fall in love with the Friendly CMS. Go check out the Web Application Installer and the Windows Web Application Gallery now. If you just want to get on with it, here’s the direct link to Web Platform Installer for Umbraco -Paul March 02 In Defense of Frequent Flier ProgramsIn preparation for this year’s Umbraco Codegarden 2009 in Copenhagen I decided to try and obtain an award-travel itinerary from Seattle to Copenhagen. For last year’s Codegarden I purchased an itinerary on SAS in coach for nearly $2,000 (USD). Although SAS offers a very convenient direct Seattle to Copenhagen flight, the level of comfort was low and the cost high – I arrived tired, stinky and found working (which we were there to do) very difficult. Having heard the extreme pessimism surrounding the ability to actually locate and book one of these itineraries without being forced to use the higher point requirement (200,000), I was not very optimistic. I collect most of my award points in Continental’s OnePass program and also have an American Express card which earns points that are transferrable to the OnePass program. All in I had 96,000 points available in the OnePass program. Note: these points do seem to add up fast as I had previously booked an award itinerary in December 2007 for Seattle to Copenhagen. Continental provides an online booking engine for award travel and allows you to book on partner airlines as well. My first attempts were fruitless, but a bit of perseverance paid off and I was able to locate an itinerary from Vancouver, BC, Canada (about 30 minutes from my home, hooray!) to Amsterdam in Business class on Northwest for 100,000 points. Good enough, the dates fit perfectly and, while Northwest Business class isn’t Virgin’s Upper class, not having to sit in coach for a 10+ hour flight is a huge benefit. I booked it entirely online (including the purchase of the additional 4,000 points I needed) and received immediate confirmation. Kudos Continental! All that was left was to book from Amsterdam to Copenhagen. As it turned out I had just enough points in my SAS EuroBonus account to book a very convenient itinerary, not in Business class but since the flight is only 80-minutes long it’s not of much concern. SAS also provides an online booking engine and I was able to locate, book, and confirm this itinerary in less than 15-minutes. Kudos SAS! Granted this itinerary is not quite as direct as Seattle to Copenhagen nonstop, however the extra couple of hours in travel time will be made up for by the more comfortable seating…at least I hope so. In addition, the total cost covering taxes and fees was less than $230 (USD), just a fraction of what I could’ve otherwise spent. As far as the level of booking difficulty and time-required – while it certainly took longer than sending a request to a travel agent and receiving a complete itinerary in return, it did not require more than one-hour of effort in total, I consider that a fair trade-off. February 24 Registration Keys and Licensing for the Umbraco StoreA message I received this morning has again caused me to consider if and how we will implement registration keys and licensing for the Umbraco Store. A search through my Google Mail archives tells me we’ve had at least a dozen inquiries with regard to this feature – all in favor. While we consider the least intrusive way to implement this, please take a moment to tell us your opinion. I’ll update this post with our approach as soon as its decided – this week if all goes well. -Paul February 05 Umbraco Tip: How-To Create a Simple, Big XHTML EditorThis is a tip that is so simple I’m a little embarrassed to post about it. But, some of the front-end developers were thrilled by this, so what the heck. I am lucky to work with a group of very talented external front-end developers that have access to some of our Umbraco installations. To date, I’ve given them access to the Content, Media, and Settings areas in the UI. Of these, the Settings area is the most ‘sensitive’ as it allows them to view all templates and document types in the installation and has the risk of inadvertent changes to underling templates. The goal was to allow them to input their beautifully crafted XHTML without worrying about what Tidy or TinyMCE might do to it. Of course, using a SimpleEditor or Textbox Multiple data type is an option, but this allowed them to view only a small portion of the code at a time. As a solution, I’ve used the Textbox Multiple data type and edited the related CSS and created a nearly full-screen view for these developers to work with (see below). Now, if I can create something similar for CSS and JS files they’ll be eternally grateful! How To:
Another example of the incredible flexibility of Umbraco. -Paul January 20 Umbraco v4 RC2 with Commerce for UmbracoWith 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.
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 TryingOne 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. 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. 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. 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 2009At 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
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
Bonus PredictionFinally, 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 OptionsA 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 FixNB: 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!
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 |
||||
|
|