Reimagining www.asp.net, Part Four: The Toolbox Experience

Reimagining www.asp.net

Where do you go when you want to find a library or component that performs some specific function you need? Do you go to one of the many open source hosting sites like CodePlex, Google Code or GitHub? Or do you just Google/Bing until you stumble upon something that might work, try it out, find out it doesn’t, rinse and repeat.

What do you do when you’re looking for an API or third-party commercial component to integrate with your apps? More Googling, more trying things out, more wasting time.

The problem is there’s no central directory of these sorts of things. Nothing where people can rate and review projects to give you some idea of whether or not they’re worth your time. Nothing to separate the wheat from the chaff. The Toolbox section of the ASP.NET site would be a great place to centralize all of these things but limited to just stuff that works with ASP.NET.

It could be community-managed (like a structured wiki) but offer the option for specific entries to be “claimed” by their owners. Only users with sufficient reputation (earned throughout the site) would be able add entries or make changes.

Open Source Project Directory

I’d like to have a better way to locate good open source libraries (I’ve seriously considered building this for Managed Assembly and it still might happen). They’re currently all spread out across different hosting sites so a central directory would make them easier to find.

Each project can add links to their project home page, downloads, issue tracker, mailing list, etc. They could also provide their RSS feed URLs so the latest news from each project could be displayed right on their listing.

Visitors would be able to add favorites/follow/become a fan of projects which could provide for customized news feeds for just your favorite projects. Users would be able to rate and review projects as well. In addition to favoriting (which is for personal use), users could select ‘I Use This’ to publically show their support for projects. Ratings + reviews + user counts would help narrow the list when trying to find the right OSS project for your needs.

This is essentially what Ohloh does, but I’d like it specific to projects that work with ASP.NET. Like other parts of the site, this could be a subset of a larger directory that is for all of .NET.

API Directory

Similar to the open source project directory would be a directory for APIs that work with .NET. There are so many useful APIs out there that people don’t know about. Companies would jump at the chance to increase exposure for their APIs. They can provide getting started articles, code samples, etc. APIs would be able to be reviewed and rated just like open source projects.

Commercial Product Directory

This might very well not be even remotely feasible and considering the hubbub over ads on the home page, it’s a treacherous topic to even broach. But I’ve been operating in a “in a perfect world” mentality since I started this series, so keep that mind here.

Like the open source project and API directories, I’d like to see another directory of commercial products built to work with ASP.NET. This would operate identically to the open source directory above, just separated so that it’s clear that these entries cost money.

Would the community take the time to list commercial products? Would it even be useful for finding the right tool for your project? Would vendors support such a concept? This is probably the most risky of any idea I’ve proposed, but I think it would work and be extremely valuable.

A Place for Ads

This is the place on my version of the site where ads make complete sense. You’ve got people looking for tools. They’re in the right mindset and they’re actively searching out new things. Ads could actually be useful to them. They don’t disrupt what the user was trying to do (unlike the home page). Advertisers might not get the same number of eyeballs, but the ones they do get would be highly-targeted.

Conclusion

And so this little project comes to an end. I’m happy with how it turned out. I had a lot of fun thinking through each section and am glad to hear that it caught the attention of the people who are in a position to make changes. Microsoft deserves credit for the recent progress they’ve made with the lightweight MSDN view, the Web Application Toolkits, the MSDN Beginner Developer Center, etc. and I’m sure they have a lot more in the works.

Posted September 25th, 8:52 AM
Read more posts about .NET, Thoughts.

Comments
Link

Reimagining www.asp.net, Part Three: The Community Experience

Reimagining www.asp.net

If you’ve been reading my blog for awhile, this post will contain some things that sound familiar to you. The goal for this section of the site is to provide a mechanism for the community to congregate. I’ve already attempted to do that with ManagedAssembly.com. Many of the ideas in this section have come out of my experience building that site. In fact, I would suggest reading the reasoning behind creating Managed Assembly before continuing with this post.

The primary goal of the Community section is to give developers a reason to keep coming back to the site. The way to keep them coming back is to consistently provide fresh content to discover and discuss. Social news sites are perfect for aggregating blog posts and articles and promoting the best ones. But there’s a lot of good content that only exists in Twitter streams. The .NET community has a particularly good Twitter community going, so we need to tap into that as well.

Aggregating and organizing ASP.NET-related content

Social news sites like Digg, Reddit, Hacker News and others have become a standard way to aggregate and share content. The .NET community even has at least four (that I’m aware of) of these types of sites. The current ASP.NET site is already attempting to aggregate the best content, but why not outsource that to the community? The .NET social news sites have proven that it this type of thing has value. The very best items can be promoted on the home page which could result in significant traffic for content producers, likely leading to more quality content.

While all the current .NET social news sites do a good job of promoting quality content, none of them have a big enough audience to spark discussions. Only a very small percentage of users will comment on a given post, so you need a critical mass of users to have meaningful discussions. The ASP.NET site already has the traffic to allow for this. There will be people who try to game and spam the system but that can be overcome with a proper moderation system. Hacker News and Stack Overflow have proven that gaming and spam can be managed at a large scale.

Hacker News allows people to submit either a link or a topic to be discussed. One common type of discussion topic is a request for reviews of a project that was built by the poster. I’d like to see this for .NET projects. Most people know about the high-profile sites that use .NET, but I want to hear about what you built with ASP.NET MVC, jQuery and IronPython over the weekend just for the heck of it. There’s a lot that can be learned from seeing how people actually built something and how they used the tools we all use every day in some unique way to accomplish something you didn’t think was even possible.

I think the next evolution of the standard voting sites will be Twitter integration (or whatever the next real-time distributed discussion method is). You could track links posted by Twitter users who are known to post ASP.NET content and then automatically present those stories to be voted on if enough people tweet and retweet them. Nothing would be auto-published without being reviewed by the community but it was provide an easy way to find new links quickly after they gain traction on Twitter.

How do you get a list of ASP.NET Twitterers? Let them opt in. Right now there’s no good way to find other ASP.NET Twitterers. Why not create a directory of them? Take that directory and use it as a starting point to scan for links (with the users’ permission of course).

Once you have a list of all the Twitterers you can do more than just harvest links. Twitter’s trending topics are a complete wasteland now, but trending topics specific to a community? That would be interesting, especially during special events like MIX and PDC.

If you really wanted to take it to the next level, have human editors pick the best Tweets and feature them on the home page. Give people that are creating quality content the exposure and recognition they deserve. Let a couple people have access to the account that’s pulling the tweets, tell them to favorite the best ones and feature them.

All these Twitter-related features exist to pull value out of the places existing conversations are happening and repackage it for people who are new to the community, refuse to use Twitter or don’t have time to invest in following Twitter more closely.

Now that we have the ability to find the best blog posts, articles and Twitter content, there’s only one more type of content that changes often enough to be worth organizing: podcasts. The current site lists the latest episodes from popular podcasts which is a good start. I would expand that to include episode ratings and discussions and provide a more organized view of a podcast’s metadata and episodes (like iTunes).

Coordinating real-life events

How many *good* user group web sites have you been to? I haven’t seen that many. If you want people to get together and talk about your technology, why not provide them the tools to do so? A simple user group web site and registration manager, tied in with a directory of user groups and their associated events would help a lot of groups be better organized and get more attendees. Upcoming meetings can be listed on the home page, helping with publicity that can often be hard to generate on your own. These tools should actually be part of a larger solution that spans product lines, with each subset hosted on the specific site it pertains to.

Please chime in with your thoughts below. Tomorrow I’ll wrap up this series with ‘The Toolbox Experience’.

Posted September 24th, 9:50 AM
Read more posts about .NET, Thoughts.

Comments
Link

Reimagining www.asp.net, Part Two: The Support Experience

Reimagining www.asp.net

There are three parts to the overall Support Experience:

  1. Getting Started
  2. Documentation
  3. User-to-user support

Getting Started

As I identified in the previous post, getting new users started quickly is the top priority for the site. Because of this the ‘Getting Started’ section gets its own spot on the main navigation and all the links from the home page for new users lead here.

Note: I wrote this a couple days ago before I knew the MSDN Beginner Developer Center existed which looks like a great resource and meets most of the needs I describe.

New users come in all forms. They could be completely new to programming or be an experienced programmer new to the web. They could be familiar with web development but know nothing about .NET and ASP.NET. Each type of user requires a different starting point and progression:

learning_flow

If you’re new to programming you need a lot of info to get started. The site should provide a basic overview of everything you need to get going: HTTP, HTML, CSS, JavaScript (what it is and does instead of how to write it to start), etc. In an ideal world, no one would even get to the point of downloading Visual Studio without knowing how these fundamentals work. Microsoft obviously knew I was going to write about this since they very recently launched the MSDN Beginner Developer Learning Center. The only thing I would change in the Web Track is to move the web basics before the Visual Studio Express basics. Regardless, this content should be co-opted and reused on (or even better, moved to) the ASP.NET site using the same branding.

Sidebar: Why use the same branding?

As much as possible the ASP.NET site should avoid linking out to other Microsoft sites. It should be the only place you need to go for learning and reference material related to ASP.NET. You shouldn’t have to jump around MSDN developer centers, MSDN docs, CodePlex, Channel9, etc. If a site doesn’t reliably give you the information you need quickly when you feel it should, you subconsciously decide not to use it. Causing a context switch is a great way to trigger the feeling of dissatisfaction. Every time you switch sites or branding, you have to reorient yourself. It’s an unnecessary burden on the user. Over time that feeling of ‘slogging through’ has a negative impact on user experience.

All the existing starter content can be reused, with some minor changes to organize it better (grouping by skill level most notably). I would also add some videos and walkthroughs that show building actual application features people are already familiar with instead of showing how to do specific programming tasks (e.g. build a blog vs. displaying a grid).

Documentation

Along those lines, all relevant MSDN docs should be hosted within the site. The current forums are handled this way: only the relevant subforums from the MSDN forums are listed directly on the ASP.NET site. In the same way, only the subset of the MSDN docs that pertain to ASP.NET should be shown right on this site itself, preferably using the content of the MSDN Lightweight view with the frame of the ASP.NET site.

The docs should be prominently featured on the main ‘Support’ page. I don’t understand why the current site doesn’t put any emphasis on links to the docs. Experienced developers coming from other frameworks will expect to have documentation readily available. Check the sites for Django, Rails and PHP. Notice anything in common about what each framework’s main navigation contains? ‘Documentation’

User-to-User Support

I’m a huge StackOverflow fan. They’ve nearly perfected Q & A on the web. In my ideal ASP.NET site, the forums are completely replaced with either a knock off of StackOverflow or a StackExchange install. Anyone that’s used the MSDN forums and StackOverflow knows there’s no comparison. StackOverflow blows it out of the water in every way. You can integrate the user-to-user support with other parts of the site too, like featuring popular questions on the main Support page. I would love to write a lot more about fixing the user-to-user support options, but this is really all I think there is to it.

With a clearer focus, better organization and a better user-to-user support system, the ASP.NET would offer much more compelling reasons for experienced users to return for help.

This was a fairly uneventful section of this exercise but things will pick up in Part 3 when we take on integrating social media concepts into the site.

Posted September 23rd, 9:55 AM
Read more posts about .NET, Thoughts.

Comments
Link

Reimagining www.asp.net, Part One: The Home Page Experience

Reimagining www.asp.net

Before I begin with Part 1, I want to add an additional disclaimer. The ideas I present in these articles are not necessarily new, clever, novel, etc. Many times I will be describing a feature that already exists in some form either on the ASP.NET site itself or other sites (including competing frameworks). I do not intend to take credit for each feature presented. My goal is to combine the best ideas and features to create a whole that is more valuable than its individual parts.

The Home Page Experience

A good home page quickly moves a user closer to their final destination on a site. On the ASP.NET site, the home page presents a unique challenge: how do you adequately serve both new users who have no idea about the what, why and how of ASP.NET and experienced users who have come back to get the latest info or interact with the community?

This leaves us with two somewhat competing goals:

  1. Guide new users to the appropriate ‘Get Started’ section for their skill level.
  2. Provide an overview of what’s new and notable in the community.

With these goals in mind, I put together a mockup of what the home page could look like. I Am Not a Designer™ so it’s intentionally light on the polish. I put this together to demonstrate intent and no more (as you can see by my egregious use of copy and paste). Think of it more as a sketch than an actual design. I just happen to sketch with Fireworks 8.

HomePage

Guiding New Users

The goal list above is a little misleading. If I could more accurately prioritize the goals of the home page, it would look more like this:

  1. Help new users
  2. Help new users
  3. Help new users
  4. Help new users
  5. What’s new and notable

Since it’s by far the most important goal of the home page, it needs to be the most prominent part of the page. We can’t account for everyone, but I think there are three major types of new users: complete beginners, experienced non-web developers and web developers familiar with other development stacks. Every type of new user needs to be able to quickly find relevant information tailored to their experience level. (I’ll cover the needs of the different types in more detail in Part 2.) It should be immediately obvious where their starting point is.

Once a user has moved beyond needing the introductory material, they can hide that content area and allow the other features to move into a more prominent position on the page. Or the beginner stuff can be replaced with more advanced material.

What’s New and Notable

The www.asp.net needs to be the authoritative source for the latest official news and announcements. When something is announced, you want the first place people check to be the official site. You have to earn that trust though by posting consistently high-quality and relevant content in a timely manner. This is the perfect opportunity to create an official ASP.NET blog.

ScottGu’s blog is current serving this purpose. A lot of what he writes could be moved to the site as a post on the official ASP.NET blog. Having the posts on Scott’s blog works for those of us who know he is and how he fits into the overall scheme of things, but if you’re not familiar with the org structure of DevDiv the posts would carry more weight being on the main site. Scott puts out such great content. It deserves more than a link to a community blog site sitting on a subdomain.

Google really excels in this area. All their major products have their own blogs that are frequently updated with quality information. If something is wrong with Gmail, the Gmail blog is the first place you go (after complaining about it on Twitter) to find out what’s up. If there are new features, they’re announced there. For the most part, we’ve been conditioned to trust that the Google blogs will give us the information we need, when we need it.

The rest of the home page is designed to aggregate the most noteworthy content from the rest of the site. The community/social features will be covered in Part 3 and the toolbox features will be covered in Part 4.

Ads

If you’re familiar with the current site, you’ll notice one huge difference in my mockup from the current site. There are no ads in my design. This is 100% intentional. Microsoft has repeatedly drawn fire for including ads on this site. Unfortunately Microsoft’s reasoning is hard to defend. The justification that the ads exist to offset the cost of running the site is indefensible for a company Microsoft’s size. There have been other reasons proffered as well, but I don’t think any of them are compelling enough to justify having ads on the home page. They do nothing to serve either of the primary goals I identified above; in fact they detract from them.

Let’s look at it from the perspective of someone with PHP experience that has started a new job and needs to get started with a new project that has to be ASP.NET. When they head to the site, do you want to distract them with hosting offers or do you want to get them up to speed as quickly as possible?

Putting ads on a site also changes the relationship between the user and the site. Visitors are indirectly informed that they’re there to be sold to. When you want to learn something new, do you want to wade through a sales pitch or get right to the tutorials? If you’re trying to sell someone on using your framework, do you want to simultaneously sell them something they don’t need yet?

There are places in my redesign where ads will find a home and feel more natural and complementary to their surroundings instead of distracting. The home page is just not the place for them. You’ll see in the mockup that a commercial product is featured in the toolbox features. This is not an ad. It will be explained in Part 4.

Thus concludes Part 1. In Part 2, I’ll cover the ‘Get Started’ and ‘Support’ sections and what the experience should be like for learning and getting help.

What do you think? What should be on the home page? What shouldn’t be on the home page? Do you agree with the priorities and goals I’ve set? Let me know what you think.

Posted September 22nd, 9:25 AM
Read more posts about .NET, Thoughts.

Comments
Link

Reimagining www.asp.net – Introduction

I work with ASP.NET nearly every day. It’s the primary platform we use at my day job, my startup’s main product uses it and I even spend a fair amount of my free time building sites in ASP.NET just for the fun of it. I think it’s a great platform. It’s not without its faults but I’m generally able to accomplish what I want or need to with it.

You would think with the amount of time I spend using ASP.NET that I would spend a fair amount of time at www.asp.net reading docs, getting support, helping others, learning more about the framework. But I’m almost never there. In fact, I think the only time I’ve visited recently is to download ASP.NET MVC. It was a decent resource years ago when I started seriously moving away from Classic ASP to ASP.NET but the site didn’t grow with me as I grew as a developer.

A lot has changed in web development in the past few years as well. There are a lot more web frameworks available, jQuery and other JavaScript frameworks have revolutionized client-side development and even ASP.NET has evolved, most notably with the release of the MVC framework.

The web itself has changed too. There’s a lot of value now in having your sites and services provide a social aspect to them. You’ve seen how compelling this type of thing can be if you take part in the vibrant community of .NET devs on Twitter. This is where the .NET community hangs out, shares ideas, argues about stuff and solves problems together.

Unfortunately www.asp.net hasn’t evolved along with the community it was intended to support and the current state of affairs on the web. I thought to myself, “How would you build www.asp.net if you could start from scratch?” I decided to write a series of articles to answer that question. I’m breaking it up into four parts that will be posted throughout the week (links will be updated as each part is posted):

I do not claim to have all the answers. These are strong opinions, weakly held. I would love to get your feedback throughout the week so that when the series is over, it’s something Microsoft can point to and say, “This is what the community needs from us.” Don’t hesitate to chime in with your thoughts, especially if you disagree with me.

Part one will be posted Monday night or Tuesday morning. Subscribe to my RSS feed or follow me on Twitter to be notified as each part is posted.

Posted September 20th, 10:59 PM
Read more posts about .NET, Thoughts.

Comments
Link

Yet another Twitter post: How to extract signal from the noise.

I frequently come across developers that scoff at Twitter as a waste of time and a cesspool where productivity goes to die amongst the social media “experts.” Yes, it is definitely those things, but it doesn’t have to be. Here is how I use Twitter to maximize its professional value.

Unfollow/don’t follow people whose tweets bother you.

The great thing about Twitter is that relationships are one-way. You’re in total control of what content you subject yourself to. You should never feel obligated to follow someone that follows you or is notorious.

When I look at someone’s profile trying to decide if I should follow them I look for a few things:

  1. Mostly original content. Frequent retweeters that don’t add value or insight are out. If I see more than ~25% of your recent tweets are retweets, I’m likely to skip following.
  2. Content relevant to my profession. If you are using Twitter as a platform for your political/religious/other viewpoints, I’m probably going to pass. I’ve got my views, you’ve got yours and we’re probably not going to change each other’s minds so lets just stay away from it.
  3. Using Twitter where Facebook would be better suited. Related to #2, if you’re using Twitter to give me the blow by blow of your day and I don’t know you personally, you’re not providing much value to me. Facebook is great for this kind of stuff and if you want to know more intimate details of my life (and you don’t, trust me), add me as a friend there. Twitter isn’t the ‘what’, it’s the ‘why’.
  4. People who prefix replies. This is particularly a problem in the .NET community. I understand people are disappointed Twitter removed the option to view all replies but prefixing only makes the issue worse. I can’t click on a link to the replied-to Tweet to follow the conversation so now you’re just cluttering my stream with portions of a conversation I can’t expose the rest of. I’m probably the most lenient with this rule especially with more prominent people.

Put the tools to work.

Once you start following a lot of people, the web interface and simple clients like Twhirl, Witty, etc. just don’t scale to handle the workload. I needed a way to extract the most relevant tweets from the people I follow. In the latest version of TweetDeck they added groups that you can sync with the iPhone version. This makes a huge difference.

From the people I follow, I’ve selected a subset of them to be included in my main reading list. This list contains the people I follow who consistently tweet high-quality content. I read it frequently throughout the day. When I have a little more time to browse, I scroll over to the ‘Everyone’ list and see what else is going on. As I start to recognize consistently high-quality tweets in the Everyone list, I move them over to the main list. This lets me loosen up a bit on my rules for following AND follow conversations. It’s sort of a compromise between viewing all replies and viewing just those to people I follow.

Best of all, TweetDeck syncs the groups to my iPhone so I get the same reading experience on my two primary devices. TweetDeck has a lot of deficiencies and UI quirks, but the sync’d group settings are such a killer feature that I’m willing to deal with those issues.

I never used to think I’d be able to follow more than 30 people and get any value out of Twitter but the combination of a well-curated follower list and the proper tools I’ve been able to ramp up the number of people I follow while maintaining a good signal-to-noise ratio without any additional time commitment.

Related: How to not abuse your Twitter followers

Posted August 11th, 11:01 PM
Read more posts about Technology, Thoughts.

Comments
Link

The Killer Twitter App Hasn’t Been Built Yet

Imagine an application that acts as a super proxy for your Twitter account. The server acts as the client, pulling updates from the API. Updates are relayed to your iPhone and desktop clients in near real-time1 with XMPP. No more multi-device API limitations getting in your way. Add in analytics, trends (specific to your follow list), link harvesting, groups, searches, filtering and more automatically sync’d to all your devices.

Why doesn’t this exist? This should be what Twitter itself does, but I can’t see them suddenly going in this direction. Build it and you can have my money.

[1] As in, as fast as it can be delivered once it is retrieved from the API. Not real-time to the initial update.

Posted July 1st, 9:51 PM
Read more posts about Thoughts.

Comments
Link

Yes Virginia, this is a post about Twitter.

If you don’t care about Twitter, see you next week. It seems like every Twitter blog post I come across is immediately barraged with anti-Twitter sentiment so if that’s what you’re planning on doing, save your keystrokes. I promise I won’t write about it often. That’s what Twitter is for.

Twitter is still relatively new and as such there isn’t a lot of precedent for good and bad behavior, especially for businesses. I have some recent experiences about the right way to use Twitter for your company, and the wrong way.

First the wrong way. If you’re a Mac enthusiast you’re probably familiar with MacHeist. They bundle a bunch of software together, sell it for a big discount and then give a portion of it to charity. The more people buy, the more software that’s included in the bundle. Neat system. For the recent MacHeist 3 there was an additional software package you could get if you sent out a tweet to your followers promoting MacHeist. I had probably a dozen of those come through my Twitter stream before I added a filter in TweetDeck to hide any more of them.

There’s a lot wrong with this situation. Those tweets were essentially paid advertisements that MacHeist was extorting out of people in exchange for a popular piece of software. This is tantamount to spam. Imagine Twitter didn’t exist and you got an email from a half dozen of your friends from an automated system with a standard message provided by MacHeist. There is no doubt you would consider this spam. Why is it different on Twitter?

This is the problem with how many companies are approaching Twitter. They see it as another broadcast medium when in actuality, it’s a distributed conversation platform. So if you’re a business you should use Twitter to engage in conversations with your current or potential customers.

So here’s the right way. A few months ago I complained about Telerik controls ruining my day. Shortly there after I received an email from one of the cofounders of Telerik asking me if I would care to elaborate and that he was sorry his product has ruined my day. I wrote back outlining my issues with the r.a.d. controls and after a little back and forth we were able to work out the issues we were having. The latest version is really not so bad and is markedly better than the version we had.

Ideally, the Telerik conversation would have taken place out in the open on Twitter, but despite that not being the case, there was a happy ending.

So if you’re a company looking to use Twitter to your advantage you have two options. You can become a slimy spammer and get the resulting negative PR, or you can directly converse with your customers and leave them with a favorable view of you (so much so I was compelled to blog about the experience). Which would you prefer?

Posted April 16th, 9:30 PM
Read more posts about Technology, Thoughts.

Comments
Link

The Perils of Being a Linux Newb

I’m a Windows guy and I’m not ashamed of it. Despite the problems it has (and what software package doesn’t have problems?) it has been a productive and profitable platform to build a career on. I don’t have anything against other platforms either. Whatever works for you, go use it. Someday I will be cool enough to own a Mac :).

So even though I’m a Windows user, I’m a technology enthusiast at my core so I’m always up for trying new things. A loooonnng time ago (probably 9-10 years ago in my late teens) I set up Linux on a spare machine to see what the fuss was about. I tried Red Hat. I tried Mandriva. Once I got it installed I didn’t know what to do with it. It was nice enough, but it just didn’t grab me. This was also pre-Firefox so the Internet browsing experience was subpar. The biggest hurdle though was installing programs, if I could even find one to do what I wanted. Package managers were sparse and compiling from source was well beyond my capabilities at the time.

Fast forward a few years and I was churning out web sites with ASP/VBScript and some PHP and this new thing called Ruby on Rails came out. I, like many others, was wowed by the famous “build a blog in 20 minutes” video so I got it up and running on my machine but didn’t do anything with it because I was a scripter not a programmer and learning Ruby was well beyond my capabilities at the time.

I’ve been a professional programmer now for 3.5 years. I worked as a sysadmin for a couple years. I’ve used Mac OS a lot more. To save time, let’s just say I’d consider myself a seasoned computer guy with a broad understanding of How Things Work and the ability to figure out almost any new thing. Or so I thought.

I’ve been wanting to learn a new programming language for awhile now. I really like C# and feel I have a pretty good grasp on it so I thought it was time to broaden my horizons. Ruby and Python are en vogue right now and have some philosophical differences from C# so I thought I’d try to learn some Ruby (and Rails along with it). I have an old ThinkPad T60 I just retired so instead of setting up Rails on Windows (which was not that great of an experience the first time around) I decided to go with Linux on the T60. Ubuntu seems to be all the rage lately so I burn the CD and it installs beautifully. No driver issues, in fact, not a single install issue. Awesome! We’re off to a great start.

Time to get Rails installed. I figured the software installing experience had to be better than 10 years ago. It is, but barely. Look what it takes to get Rails installed. Are you serious? I went through all this and encountered a couple errors along the way that I was able to solve with some lengthy Googling. I know what you’re thinking “Lame Windows dude wants a GUI.” Yeah that’d be nice, but I’d settle for an apt-get one-liner. RubyGems appears to be the solution for this, but getting that installed and configured was not exactly straightforward either.

I eventually got it running. In the process of trying to get all the packages installed and configured I had no idea what version of what was installed or how to uninstall Ruby 1.9 after accidentally installing it. I didn’t want to run into some conflict down the road because I had the wrong versions installed.

Worst of all, I felt like I was wasting tons of time configuring everything just to get going and I had no way to really verify I was doing anything right. This feeling would be mitigated with experience so I’m not blaming the platform for that feeling, just pointing out my experience.

With Rails up and running I thought I’d try to find a text editor or IDE with some basic Rails support to at least provide a little structure for messing around with it. Googling around I come across RubyMine but that’s not in the Ubuntu package manager and downloading and installing (still after all these years just an afterthought) requires Java, which is in the package manager. Download Java and try again. No go. This was about the point I had enough with trying out Rails.

Here’s my advice if you want to try Rails: buy a Mac and TextMate.

Not wanting to entirely give up on things, I recalled that there were some big Mono releases earlier in the day. I try following some steps with apt-get to get MonoDevelop 2. No go. Tried the package manager and ended up with MonoDevelop 1. I have no idea what version of the Mono core is installed anyway. Download from the Mono site? Yeah, not so much. Ubuntu, even though it’s the most popular distro, doesn’t have a supported download. So much for that.

How is it after all these years the Linux software install experience is still so awful? Are my expectations unrealistic? Am I still too dumb to get all this stuff? I really wanted to like Linux/Ubuntu/Rails/Ruby/etc and to be energized by learning something new, but apparently I’m just not ready for that yet.

Posted March 31st, 7:37 PM
Read more posts about Bush League, Programming, Software, Technology, Thoughts.

Comments
Link

Post-MIX Thoughts

I had a hunch I’d be too tired to write up a day-by-day recap of my first MIX conference which turned out to be exactly right. You’ve probably heard by now all the stuff that was announced, so I’ll try to keep this an opinion piece instead of a news article.

The Good

Prior to attending I had read that the most valuable part of conferences like MIX was not the presentations, but the people. This was absolutely and completely true. There’s no substitute for having conversations with brilliant people and there were a ton of brilliant people at the conference. I had good conversations with Phil Haack, Jeff Atwood and the Stack Overflow devs Jarrod and Geoff, Joel Spolsky (possibly the highlight of my career), Rob Conery, Jon Galloway, Scott Hanselman, Dave Ward from Encosia, Justin Etheredge, some guys from Woot and many more. Learning the how and why of how they do things is educational and inspiring.

Thankfully, Microsoft has realized the importance of these types of interactions and does a great job of facilitating them. They set up a room called “3rd Place” with couches, snacks, free wifi and power strips. It was a great setup and worth the price of admission alone. If you’re at MIX next year and none of the sessions at any given time really inspire you, go hang out at 3rd Place and strike up conversations instead. You can always watch the session video later.

One conversation I’m particularly enthused about is the meeting I had with Rob Conery of SubSonic fame. SubSonic has gone a little stale and needs some freshening up. We discussed some issues getting in the way of progress and some ideas for going forward. I’m going to try to get it kick started again, which I will blog about when that happens. I love SubSonic and am excited to start contributing to it’s future.

I also showed off Managed Assembly when I had a chance and got some good feedback on the site both design-wise and vision-wise. Now that it’s up and running, we’ll see how it goes for a little bit before I make any significant changes.

MIX also does a good job of keeping a good balance of content for designers and developers. I think all devs should have some basic understanding of good design principles and MIX does a good job of exposing that without overdoing it for devs. Bill Buxton and Deborah Adler (she designed the new Target prescription packaging) gave insightful keynotes that had some good design insights for both designers and developers.

The Not-As-Good

One reason 3rd Place was more appealing to me than the sessions is a matter of timing. ASP.NET MVC went final, but there was very little new content that wasn’t already covered at PDC or in blog posts since. Rob Conery’s session stood out because it was the only one that had more stuff in it that I hadn’t seen than stuff that I had seen. It was great. The video has been posted so you should watch it. Almost everything else that was new was tied to Silverlight. Which brings me to…

The ‘meh’

Silverlight 3. Meh. It’s nice. It does cool stuff. It now works out of the browser, which has huge potential. Adobe AIR now has some serious competition for building Twitter clients (ba-dum-dum). I did learn some things about Silverlight I didn’t know (like support for threading), but overall, I just don’t care that much about it yet.

The Bad

IE8. OK, IE8 isn’t so bad, but until IE6 is dead, it’s completely irrelevant. Slices? Yawn. Accelerators? Yawn. I don’t want to write browser-specific code anymore. The IE intro video was pretty funny though.

Was it worth the trip?

Absolutely. If you’re a MS web dev or a designer that works with them, you should be at MIX. You’ll learn a lot from other people and the sessions. You’ll have a chance to talk directly to the people who build the tools that are the basis for your profession and give them feedback and ideas from the real world. You’ll have fun because it’s in Vegas. Try to make it next year. You won’t regret it.

Posted March 21st, 1:12 PM
Read more posts about ASP.NET MVC, Life, Programming, SubSonic, Thoughts.

Comments
Link

My Projects

ManagedAssembly

RestSharp

jQuery Snippets for Visual Studio 2010

@dotnetlinks on Twitter

SnapLeague