I’m trying to pair back some of my side projects so I can focus on the ones I really enjoy the most like RestSharp and some other things not yet public. That combined with a new job that is more time-intensive than my previous one led me to start looking for some new caretakers for a couple of my side projects.
Managed Assembly and @dotnetlinks
I have sold Managed Assembly to DotNetKicks. If anyone can take this site and make something of it, it’s James Avery whom you probably know from The Lounge ad network and TekPub. I don’t know his exact plans for it, but I trust it will be great. Control of @dotnetlinks was transferred in this transaction as well. Looking forward to seeing what comes next for my little link sharing site!
jQuery Snippets for Visual Studio 2010
I’m very happy to announce that Jon Galloway and Rey Bango have taken over maintaining the jQuery Snippets for Visual Studio 2010 project on CodePlex. I can’t think of two better people to take the project and run with it. Rey is a member of the jQuery team and Jon is best known for being my first Twitter follower. Thanks Jon and Rey!
I’ve updated my .NET Cheat Sheets page once again. The Visual Studio 2010 C# Snippets sheet has been updated for RTW (only two months late :) and I’ve added a brand new one for Visual Studio 2010 ASP.NET/HTML/JavaScript Snippets.
If you’re into this sort of thing, I highly recommend DevCheatSheet.com, the most comprehensive directory of cheat sheets out there. The interface is clean and not overwhelmed with ads like most sites of its kind. They’ve listed my sheets since they launched and I’m appreciative of their support.
I’ve been thinking for over six months now that it would be cool if there were a frequent, live, topical video podcast-like thing with a .NET slant to it. Basically a 1-3 times a week thing no longer than 10-15 minutes per episode where the latest in .NET and technology were discussed via Skype and broadcast via something like UStream. Instead of talking about a specific tech topic like most podcasts it would instead by oriented around the latest news and happenings. And it doesn’t just need to be .NET news, but it would be viewpoints interesting to .NET developers. For each episode I’d pull in a member of the community to get their take on things and take live video questions from viewers as well. With the new group video chat features of Skype this would be pretty easy.
My question is: would you watch it? Is it something you think would be valuable? Got a clever name I can use?
UPDATED: My choice of layout wasn’t very clear so I’m updating this for clarity…
Twin Cities Code Camp 8 is coming up and I’d like to submit a talk for consideration. REST has sort of been my thing lately but I don’t want to do an exact repeat of my Twin Cites .NET User Group talk.
Which of the following talks sounds the most interesting to you?
Talk #1: State of REST in .NET
Topics covered:
- 5-minute ‘What is REST’: what, why and how.
- Examples creating RESTful services in MVC, Siesta and OpenRasta (in-depth on one method, quick demo of differences with others)
- Examples consuming RESTful services with framework classes, RestSharp, and ServiceStack.net (in-depth on one method, quick demo of differences with others)
- WCF REST Toolkit probably not covered (there’s only so much time you know)
Talk #2: RestSharp in Depth
Topics covered:
- Assume knowledge of how REST works and how to create/consume services
- What RestSharp does and doesn’t do for you
- How it does it
- Challenges encountered while building it
- Future plans
Talk #3: Utilizing Web Service APIs in your Applications
From my MIX10 open call submission: "Can your web application send and receive phone calls? When your employees call your help desk and leave a message are their messages transcribed and a ticket automatically created? This talk will show you how and explore other practical ways to integrate third-party web service (REST) APIs into your applications. Technologies put to use include ASP.NET MVC, Windows Azure, RestSharp (OSS .NET REST client) and more."
The last one is essentially version 2.0 of my TCDNUG talk.
If I get the chance to present I will definitely record it and post it so even if you’re not attending, your feedback is valuable. Which talk sounds the most interesting to you?
I’ve been doing a lot of link sharing lately through Managed Assembly, @dotnetlinks, @dotnetpodcasts, @dotnetvideos and the recently redesigned DotNetKicks. There’s numerous other .NET link sharing sites, linkblogs and other methods so if you want to take advantage of these resources to get your stuff out there, here’s a list of things to make it easier for those doing the promoting on your behalf.
0. Make good content
Enough said.
1. Use accurate but short titles
When possible, keep your titles under 140 characters (less than 100-120 if you want retweets or your username included) so they can be easily tweeted. Make sure your title is a good summary of the content so the promoter doesn’t have to rewrite it. If you use a title that doesn’t reflect the contents or is intentionally inflammatory (say, if you’re writing about exception handling and your post makes good points but uses a linkbait title, I won’t promote it. Not that you care Karl).
2. Use proper HTML titles
A lot of sites automatically grab the title from the <title> tag on your posts. Bookmarklets (in use on MA and DNK) also grab this. If it’s just the name of your site without the post title, it takes extra work for the promoter to copy and paste it. Don’t clutter up your title either. Site name and post name is all you need. All that extra stuff isn’t giving you the SEO benefit you think it is for starters, but it also requires a lot of clean up when posting.
3. Make your Twitter name easily discoverable
I always try to include the Twitter name of an article’s author (and I’m not the only one) when posting links to Twitter. If I don’t have time to go search for you on Twitter it won’t be included so make sure it’s visible on every page of your web site. Unless you don’t care, which is fine too.
4. Include video/podcast length
If you post videos, screencasts or podcasts be sure to include the length of the video or podcast in the post. The length of a video can be as equally important as the title when determining whether or not to watch it.
5. Space out your posts
Maximize your exposure by spacing out your posts. If you write a whole bunch at once, schedule them out to be posted over a few days. Don’t clog up link sharing sites with a bunch of your posts at once as it will dilute the votes you receive.
6. Post stories yourself, but don’t use Twitterfeed
On most link sharing sites, including MA and DNK, self-submitting is allowed. Just don’t ask your friends to vote it up every thing you post. Also, if you have a link you want shared on @dotnetlinks, just do an @reply to either @johnsheehan or @dotnetlinks and I’ll review it.
The Twitterfeed thing is a personal pet peeve. I’m probably already subscribed to your blog if I’m following you on Twitter. I don’t need to know about it twice. If you really, really want to have your feed reposted on Twitter for the people that don’t like RSS, set up a dedicated account for it. Which reminds me, time to go set up @JohnSheehanBlog.
I submitted a talk for the MIX10 open call for sessions and I need your help! If you could be so kind as to vote for my talk I would be greatly appreciative!
About this time last year I decided that I wanted to make 2009 the year that I really got more involved in the .NET community and started giving back. Here are the goals I had last December (and a few I picked up a long the way) and what ended up happening:
Goal: 52 Blog Posts
I didn’t get there. This post is #43 for the year, which isn’t bad. I had a lot more I wanted to blog about but just didn’t find the time. I’m not sure what my goal for 2010 is going to be. Here are the numbers (with 2008):
Pageviews: 104,088 (89,539)
Feedburner Subscribers: ~420 (~130, biggest jump explained here)
Top Posts:
Self-proclaimed ‘best’ posts, in no particular order:
My popular posts from pre-2009 continued to be popular (in particular Slightly more dynamic ORDER BY in SQL Server 2005 and .NET Cheat Sheet: ASP.NET 2.0 Page Life Cycle & Common Events, both from 2007) and the .NET Cheat Sheets continued to be the most popular page on the blog while also bringing in the most traffic from search engines.
While I didn’t meet my post number goal, overall it was a successful year for the blog.
Goal: Give 1 Technical Presentation
The best way to learn something is to teach it so I set a goal of giving one technical presentation in 2009. Why just one? Well, I want to be a coder who occasionally speaks instead of vice-versa. I also only want to speak about things I’m building or built (to keep the talks practical) and I don’t kick out enough things to be speaking all the time. I ended up doing 1 1/2 talks.
While at the jQuery conference I decided to do an open spaces talk on using jQuery with ASP.NET MVC since MVC wasn’t being represented as well as I hoped it would. I demo’d the .NET Twitter Stream to a room of about 15 people. I think it went well.
I also was fortunate enough to have a chance to talk at the Twin Cities .NET User Group. While working on this talk, RestSharp was born. You can read more about my experience and watch the recording.
I enjoyed giving both talks and I hope to do a few more in 2010. I’ve submitted an abstract for MIX and will try to do more local events like code camps and barcamps.
Goal: Start 1 Open Source Project
I use so many OSS projects that I really wanted to find a way to contribute back to the ecosystem. My first attempt was a library for reversing short URLs, which led me down a road that involved working with a lot of REST APIs. Not wanting to have to write parsers for all of them, I started kicking around the idea of a SubSonic-like project for REST APIs. I was also looking for a topic for the aforementioned technical presentation and things sort of just fell into place. While working on the talk, the concept for RestSharp (then called Stillwater) really took shape. A few weeks after the talk, RestSharp went live on GitHub. Progress has been steady since and a 1.0 release is nearing.
While playing with Visual Studio 2010 I tried out the new support for Javascript code snippets and was disappointed there weren’t any for jQuery, so I cranked out 130 of them and posted them on CodePlex. The project was retweeted by Scott Guthrie, Scott Hanselman and many, many others as well as covered on Channel 9. Thanks to everyone on Twitter and otherwise who helped spread the word!
Goal: 500 Legit Twitter Followers
First let me say the right thing: Twitter follower count doesn’t matter. That said, on January 1, 2009 I had 38 followers on Twitter. I set at the time what I thought was a ridiculous goal of 500 legit followers by the end of the year. I focused my tweets on technical content (very little personal stuff, that’s what Facebook is for), tried to tweet regularly (but not too much) and tried to provide consistent value in my tweets. My count slowly rose throughout the year. Once TweetDeck introduced groups (eventually supplanted by lists) I was able to follow many more people which also helped boost the count. I also aggressively weeded out spammers, SEO scum and other fake accounts so that the count is more legit. In early December I reached my goal of 500 and now sit at 580 (graph). I appreciate every follower and try not to waste their time. It’s really encouraging to see people only following 20 people who are mostly big names and then to see your avatar next to them.
Bonus: Build a Better Community Site
I’ve already written about why I started Managed Assembly so I won’t rehash that. The site is growing and I’m going to keep improving it in 2010 (hopefully with a redesign sooner rather than later). The site has also spun off some Twitter accounts for sharing links which are growing steadily as well.
Bonus: Win a Developer Contest
As a result of my posts on building a hotline with Twilio, I was honored to win the ‘Coordinating People’ category in the Twilio Developer Contest. I don’t use the netbook as much as I thought I would, but it was still fun to win!
Twenty ten
So what’s in store for 2010? I spent the years preceding 2009 focusing on building web apps instead of tools/resources. This year I sort of took a break from the app building to rev up my skills and get re-energized to build stuff. It’s time to put the tools to work. And that’s what I’m going to do. 2010 is going to be the year I start making some of these crazy ideas (outside of the .NET developer community) I have come to life. Of course I will keep talking about the things I learn on here and on Twitter as I go along. I can’t wait to get started!
I came across an interesting post today on using Google Analytics data in your ASP.NET apps. In the comments people started complaining that there was no source code download available. I frequently get this request as well and looking back I can only find one case where I provided a download. I’m writing this post to have something to point to when I’m asked next.
Producing Downloads is Time-consuming
Usually when I write about something I’m pulling it out of an application I’m currently working. Taking the time to remove the parts of the code unrelated to my project, testing it out, compiling the download and keeping it updated when people find bugs can be a lot of work and I’d rather be working on another post or project.
You’ll Learn More Putting it Together Yourself
If I give you an example project and you’re not familiar with how it all works you’ll be doing yourself an injustice by not learning how all the pieces fit together. I know there are ‘git-er-done’ types out there that don’t care if they understand how it works as long as it gets the job done, but that’s not my style and I don’t want to support that mentality.
One Size Does Not Fit All
While my examples may be a good starting point for your project, sooner or later there will come a point where my code is not exactly what you need anymore. I’d rather you built something specific to your needs while incorporating concepts from my posts instead of bending what I’ve built to meet your needs.
I’m Not Here to do Your Job
This blog is my outlet to share interesting ideas and projects I’m working on, nothing more. Hopefully my posts give you ideas and tools (like the .NET Cheat Sheets and jQuery Code Snippets) to help you get your job done better and faster, but it ultimately comes down to you to do the actual work. Go make something happen!
There may be times I find it useful to post a download so as a preemptive disclaimer, I reserve the right to post examples when I see fit. But don’t count on it :)
Here’s another boring meta post, but with a valuable lesson.
When I first set up this blog, I created a Feedburner feed to give me some idea of how many people were subscribing to my feed. To direct people to the feed, I edited my template and added hard links to the Feedburner feed URL. Since then the subscriber count has slowly grown to about 200 subscribers.
While I was creating my new blog theme the other day I noticed that not all the links were pointing to my Feedburner feed. Most notably, the <link> element in the <head> of the pages that causes browsers with RSS support to “light up” was still pointing to the old feed. That made me wonder how many people were subscribing directly to my feed and how many were subscribing to the Feedburner feed.
When I recently set up a WordPress blog for my wife, I downloaded and installed the FD Feedburner Plugin which worked well for her blog. I installed it on my blog, removed all the hard links from the template files and waited to see what would happen. The plugin works by issuing a 301 permanent redirect to the Feedburner URL for all incoming requests to the built-in feed URL, unless those requests come from Feedburner in which case it serves up the raw feed.
Two days after installing the plugin I went back and checked my subscriber count and was shocked to see it had jumped up to 384. Not a bad jump for such a small change.
I read most blogs through my RSS reader so I never see when they update their designs. I suspect both of the readers of my blog do the same, so as a service to you two, I’m announcing a new blog design! Here’s a screenshot so you don’t even have to visit the site:
This is an original design that I cooked up. I tried to focus on just the bare minimum needed. I’d consider it about 84% done. There’s some polish I’d like to add if I can find more time to work on it.
Enough with the boring meta stuff. I promise more posts soon. Here’s what I’ve got in my drafts queue: SubSonic 3, Windows 7, my Azure experiment, Managed Assembly updates and more.