10 Harder-to-find-than-they-should-be Answers for Silverlight Beginners

I’ve been teaching myself WPF / Silverlight as part of my next big project at StannardLabs: a line of trivia games for WinMo7 / Android / iOS phones. It’s mostly an exercise for learning how each of those platforms work, how they differ, and some of the application marketing differences on each platform.

In the process of learning Silverlight 4, the most recent version of Silverlight for which few guides or books exist, I’ve built a list of the top ten answers I wish were easier to find when I started learning Silverlight.

I was unable to quickly find answers on these subjects perhaps because I was using the wrong lexicon or perhaps these are things that professional Silverlight / WPF developers consider to be too “obvious” to be worthy of inclusion in any of their books or blog entries.

Well to make it easier for all of you,...

Read More

My Talk at BarCamp San Diego: How to Create Applications People Love

I showed up at BarCamp7 this morning and saw that absolutely no presentations were up on the board whatsoever, so me being me I spent most of the day putting together a presentation at the last minute.

I spoke for an hour about How to Design Applications People Love. I’ll add more to this post later after I decompress with some TV, but here’s my PowerPoint:

All in all, it turned out really well – I’ll try to update this post with some more detail tomorrow.

Update 7/13/2010

Ok, here’s the run-down of my talk:

...

Read More

BlogEngine.NET Extension: Footnotes

I finished this extension up last night but I was reluctant to deploy it to my own blog given that there was a major flamewar in progress on my recent post about Why .NET Adoption Lags Among Startups. Having actually tested this extension on that very post, I feel confident sharing my latest BlogEngine.NET extension with you: Footnotes![footnote:A lot of credit is due to Ruslan Tur for his awesome blog post on How to Create a Custom Plugin for TinyMCE. I used his code as a basis for developing my own plugin and he's quite masterful with both C# and JavaScript.]

Once you've installed it, all you have to do to add a footnote is to click on the new "footnote" button visible on your TinyMCE text editor:

Once you click it you'll see a pop-up window - just type in whatever you want[footnote:Actually, not WHATEVER you...

Read More

.NET Culture Shock: Why .NET Adoption Lags Among Startups

One of the other things I took away from Code Camp was a bit of .NET culture shock. As you can tell by glimpsing around on this blog, I am somewhat enamored with the idea of starting my own business. I’m a natural entrepreneur and it is my wont to think about startups constantly.

That being said, I’ve always wondered why a platform as widely adopted and supported as .NET isn’t more visible in startup culture. Many major open source  platforms and languages have very visible and vocal presences in the startup community, everything from mainstays like Python and PHP to even the more obscure and specialized ones like Clojure and Hadoop.

.NET on the other hand is conspicuously absent from the startup conversation despite the fact that it is a singularly larger platform than any of the others.

It’s like there’s a silent majority among the development...

Read More

Lessons from Code Camp 2010

This time last weekend I was in the middle of the second session of Southern California Code Camp. Ever since I came to the realization that no man is an island and I’m going to ultimately need to work with other programmers in order to be successful in this business, I’ve made an effort to attend as many geeky networking events as I can.

Code Camp was a fantastic learning experience for someone who’s as interested in the .NET platform as I am. During Code Camp I was introduced to:

  • Silverlight 4;
  • Silverlight for Windows Mobile Phone 7;
  • ASP.NET MVC2, which I used this past week to build The Great Wall of Geeks;
  • .NET 4.0 multithreading (Parallel.For, Task engine etc…);
  • .NET coding standards; and
  • Agile Development and working with legacy code.

By far and away the best session for me...

Read More

Announcing the Release of Quick and Dirty Feed Parser

Alternate headline: "never see XML again."

Ok, that may be a bit of a stretch. Regardless, I'm quite pleased to announce the launch of Quick and Dirty Feed Parser, a library for people who want a seamless way to use Atom and RSS feeds in their .NET 2.0+ applications without having to deal with the XML.

"Does the world really need another RSS/Atom parser," you ask? I'll let my source code speak for itself:

using System; using System.Collections.Generic; using System.Linq; using System.Text; using QDFeedParser; namespace QDFeedParserCMD { class Program { private static readonly string DefaultFeedUri = "http://www.aaronstannard.com/syndication.axd"; static void Main(string[] args) { try { string strFeedUri = args.Length == 0 ? DefaultFeedUri : args[0]; Uri feeduri = new Uri(strFeedUri); IFeedFactory factory = new HttpFeedFactory(); IFeed feed = factory.CreateFeed(feeduri); foreach(var feedItem in feed.Items) { Console.WriteLine("{0} {1}", feedItem.DatePublished, feedItem.Title); Console.WriteLine(feedItem.Link); } //Just to prevent the window from instantly bailing out....
            
       

Read More

Learning When It's Time to Walk Away from a Project

I wanted to take the time to follow up on some of the additional lessons I learned from my May startup project, some of which I already shared in The Myth of the Single-Person Startup.

This week I decided to indefinitely postpone my startup project, the same project I spent a month of unpaid leave working on sixteen hours a day. The decision wasn't at all painful, and I came away from it feeling oddly successful and much wiser for it. The project taught me a lot of hard-earned lessons, the kind you only learn experientially, and all it cost me was a couple of paychecks - not bad considering that I don't have any obligations outside of paying my rent on the first of the month at this stage in my life.

But back to the point of this article: learning when it's time to walk away from a project. I...

Read More

Programmer's Dilemma: Baby-Proofing vs. Giving Guns to Monkeys

One of my best friends from college once described a previous job in the financial industry as something akin to "giving guns to monkeys."

He felt that the product he sold, although it was something that could reap tremendous benefits for his customers if used properly, was something that more often than not harmed customers' livelihoods because the tool was too unwieldy and naunced for the average person to use correctly.

Like my friend in the financial industry, programmers are faced with a similar quandry - do we give our users enough rope to potentially hang themselves (more freedom) or do we provide a more authoritarian, constrained, "baby-proofed" experience (less freedom?)

All programmers are UX designers

Giving guns to monkeys and baby-proofing aren't about bugs or errors in the software. The concepts are both about making judgement calls in user experience design, and it's not just the UX gurus who have to worry about this sort of...

Read More

How to Query a User's del.icio.us Feed with RestSharp

I've been meaning to give RestSharp a go since I first started using Hammock in my startup project's codebase, just because I had heard some good things about RestSharp's auto-parsing capabilities.

This weekend I cobbled together a small example using del.icio.us' RSS feeds (not to be confused with its draconian REST API) for users and RestSharp performed magnificently, although its POCO -> XML Element mapping process requires a lot of experimentation before you get it just right.

Read More

The Myth of the Single-Person Startup

During the month of May, 2010 I took an unpaid leave of absence from work for the entire month and set off to launch my own web-based startup company.

My objective was to take a month off work, shut myself away in my apartment, spend a month coding up all of the basic plumbing I needed to get the first core part of my service in working order, and profit. Needless to say, I failed to reach my goals,  but not for any of the typical reasons like poor project planning, lack-of-focus, and so forth. No, I failed because I took the experiences of other entrepreneurs too literally and tried to “be my own boss,” without appreciating what that really means.

Success doesn't occur in a vaccuum

I...

Read More

P.S. Get the latest from Aaronontheweb

Have my most recent essays and articles delivered directly to your mailbox.