Scott Hanselman

Review: The Linksys WRT1900AC Dual-Wireless Router is the second coming of the WRT54G

April 24, '14 Comments [6] Posted in Reviews
Sponsored By

Linksys WRT1900AC RouterI just blogged about how I simplified my home network with a MoCA/Ethernet bridge. As a part of my home network rebuild, I swapped out my Netgear N600 for a shiny new Linksys WRT1900AC Wireless Router.

I've been a Linksys WRT54G fan for almost a decade. I ran HyperWRT for a while and then ended up with DD-WRT. Having a reliable, hackable router was a joy back in the day.

The Hardware

The new Linksys WRT1900AC has a design that is clearly meant to evoke the WRT54G, but it's a whole new beast. My first WRT54G was a Broadcom BCM4702 running @ 125Mhz, although later models went to 240Mhz. It had 16 megs of RAM and 4 megs of Flash. I was thrilled that theh WRT54G had "fast ethernet."

Compare that to the WRT1900AC with its dual-core 1.2Ghz ARM processor with 256 megs of DDR3. It's a PC, frankly, and I appreciate the power and flexibility.

This router is clearly a little spendy, and I was initially wondering it US$249 is worth the money. However, after using it for a week I can say yes. Let's say that it only lasts a year, that's less than $1 a day. If it lasts 5 years like previous routers, it's pennies. Considering that I work from home and need consistent and reliable connectivity, I'm willing to pay a premium for a premium device.

First, this is a 802.11a/b/g/n router and supports all devices, including the newer 80.11ac spec. It cover the full spectrum, pun intended, and has both 2.4GHz and 5.0Ghz support. It's got 4 large adjustable antennas, and the whole device is the size of a medium pizza. They even warn you not to put stuff on top of it so you don't block the heat sink.

I was also pleasantly surprised that the WRT1900AC has a USB 3.0 port and an eSATA port where you can plug in external storage, then access it as a file share. I was just talking to a neighbor who was considering a $600 NAS (Network Attached Storage) device, and I see now that the WRT1900AC could be that basic NAS for him. It supports FAT, NTFS, and HFS+ filesystems.

It's also super fast. Here's a large file copy for example. It's fast and rock solid at 100+ megabytes a second. I'm getting between 40-60 megabytes a second over wireless. I've also been able to get 20-40 megs a second off an attached hard drive. It's a competent simple NAS.

image

It's been consistently faster than my previous router in basically everything that I do. I haven't done formal tests, but it's looking like 20-30% just on the wireless side.

The Software

The WRT1900AC also will support OpenWRT later this year, and Linksys is encouraging folks like the DD-WRT, Open WRT, and Tomato projects to target this device. It's nice when a company creates hardware and doesn't freak out when the community wants to hack on it.

The installation was a breeze and I was impressed that they included a non-standard default password for out of the box security.

Their initial release of the built-in software is a little lacking, IMHO, in a few areas, most notably QoS (Quality of Service) and is a little bit of a step back from my previous routers. I'd like more absolute control over my traffic, but that's me. To compensate, I marked my Xbox and my Work PC as needing preferred packets, so rather than prioritizing specific traffic, the router will prioritize these machines by MAC address.

image

While it does lack in some places, it makes up in others. The interface is fast, and easy to use.

image

You can access lots of logs, diagnostics, and stats for everything. However, I have spent most of my time in the Network Map.

Screenshot (130)

Not to harp on this feature, but I really like this real-time filterable network map. From here I can see who's on which wireless channels, reserve DHCP leases, filter devices by type. It's a gimmick, but it's a gimmick that works and works well.

Screenshot (131)

I also registered my router with the LinksysSmartWifi.com site. This allows me to remotely manage the router from anywhere (without a dyndns.org account or opening the firewall) as well as from my iPhone. This also potentially means I could debug those network issues that only pop up when I'm travelling and my wife is trying to get on the internet. ;)

All in all, I'm very satisfied with this new router.

  • I've got greater wireless coverage than ever before.
  • I've got good management tools, inside, outside, and while mobile.
  • The speed is as good as anything I've ever used.
  • It has 90% of the features I need, and I'm confident I'll get more advanced features with updates or via open source projects.

For now, the Linksys WRT1900AC Wireless Router is sold only at Best Buy or on Linksys.com direct. It's worth the money if you want the fastest router out there.

* Disclaimer: I use affiliate links to buy gadgets and tacos. Click them and you support me, my lunch, and my blog.


Sponsor: Big thanks to Red Gate for sponsoring the feed this week. 24% of database devs don’t use source control. Do you? Database source control is now standard. SQL Source Control is an easy way to start - it links your database to any source control system. Try it free!

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by ORCS Web

Simplifying your network with a bridge - Making an FIOs ActionTec MI424-WR a Network Bridge

April 22, '14 Comments [20] Posted in Tools
Sponsored By

I have FIOs Fiber-optic internet at my house and I'm very happy with it - have been for years. I get 35Mbit/s both up and down and it's rock solid. It's not technically all fiber of course, as the fiber goes into an ONT (Optical Network Terminal) in my garage and is changed into a COAX (Coaxial Cable) using MoCA technology, travels 50 feet, then goes into a very old ActionTec MI412-WR wireless router with 4 LAN ports. This common device is multi-function and not only changes the Coax to RJ-45 (Standard Ethernet), it acts as a LAN and Wi-Fi router, and also has been my home's DHCP server, passing out IP addresses to devices in my house.

NOTE: It may be possible to call your installer and have your ONT changed to use RJ-45, but Coax is the default for almost every installation I've seen. For most folks, it's fine. However, that Coax connection can limit our choices when adding 3rd party routers. Hence, this article.

The ActionTec MI424-WR is an old but competent router, but it has a very small NAT table which can cause issues over Xbox Live or in houses with dozens of devices, like mine. It also is a router with just 10/100Mbit Ethernet connections. If you're like me and push a lot of local traffic through it or use Gigabit Ethernet you'll want to think twice between flowing your entire home's traffic through this little router. I added a gigabit switch to partition things, but this router remains a weak part of the network.

There's a number of ways to optimize your home network when still using a mediocre router. The #1 complaint with wireless networks is wireless range. The second complaint is (perceived or otherwise) performance, both internally and externally.

TIP: Before you switch the ActionTec router to a bridge and possibly void warranties, here's two other options to improve your network. Otherwise, skip past these to the Bridging Instructions.

Option 1: Add a better wireless router and the ActionTec still does DHCP

I added a Netgear N600 a few years back along with a Netgear GS724T-300 24-port Gigabit Smart Switch. The N600 is powerful and faster Wireless N router for <$100. You can just disable the Wifi on your ActionTec and plug a new router into the old with a wired connection. The new router will get an IP address from the ActionTec and provide Wireless to the house. Just adding a new wireless router may be enough to get you more range without a lot of trouble.

Option 2: Add a second Wireless Router on the same SSID for double coverage

I've written up this option on my blog. You can have two routers with the same wireless network SSID. Before I had the N600, I added a second wireless router on the same SSID and used it effectively as a repeater.

Or, you can bridge the Coax and Ethernet and disable everything else on the ActionTec, removing all but the most fundamental of its functions.

GIANT DISCLAIMER: Let's just be clear here. I'm a random dude on the Internet and I'm showing you how to mess up your router and home network. If this works for you, awesome, I take full credit. If not, we never spoke and I don't know you. I know only what I wrote here. While some of you will write me with questions, I'll apologize now, everything I know is in this post, and I can't help. If there's errors in this post, they are mine and I'll try to correct them. Mess with your home router at your own risk.

Why did I do this? I want my internet traffic flowing through fewer boxes. I also wanted better wireless coverage in the house. I wanted a new, modern router with a larger NAT table, and better management tools. I didn't want to affect my (currently) very reliable internet connection by swapping out my old but reliable ActionTec. I just wanted to remove it from the equation.

WARNING TO THOSE GEEKS IN RELATIONSHIPS: You'll work on this for a whole weekend, like I did, and when you get it all working it'll be totally awesome and you'll love everything about yourself. Then, you'll go and regale our gender-non-specific-non-geek partner with tales of your dramatic success and they will not care. In fact, ideally, they won't even know that you did anything, but perhaps they'll be able to watch House of Cards in the tub when previously they couldn't. Regardless, be prepared for the deafening silence of your non-technical partner's profound apathy.

New Option: Make the ActionTec a Bridge, effectively hiding it from the network, and use a new Router for everything.

First, some irony. There's two great documents at the ActionTec support website.

  • The first is called "Can I Bridge the Actiontec MI424WR FiOS Router?" and basically says "The MI424WR does not support Transparent-Bridging, and neither Verizon nor Actiontec support attempting to bridge it."
  • The second document located at the same exact website is called "Configure MI424WR as a LAN MoCA Bridge." So. Ya. Drink that in. The point is, you're basically on your own and your Internet provider won't support you if you don't use their devices

That said, here's what I did. I picked up a new Router, specifically a Linksys WRT1900AC (between US$250 and US$300) that just came out.

MORE WARNINGS? REALLY? When redoing your home network you'll want to be prepared to lose connectivity, freak out a little, set static IP addresses, and be prepared to reset things if it doesn't work. If you're not comfortable with any of these things, just stop now.

You're going to be changing your router into a Bridge and it won't be passing out IP addresses any more. You best know where you'll be getting your next IP address from.

  • Set your PC to an unused static IP address within the range that your router passes out. For example. 192.168.1.100 for the PC.
  • Login to the router's existing IP address, usually 192.168.1.1, and go to My Network, then Network Connections, then Home/Office, then Settings

image

Note your current router's IP address:

image

  • Set a static IP. You want the PC and Router to have static IPs so you don't lose connectivity between them while you're doing all these changes. Once your IP has changed, you will likely need to access your router from that new IP to finish these instructions.
  • Also, disable the Wireless Access Point, you'll be using your other router soon. You only care about Ethernet and Broadband Connection (Coax).

Note also that my Coax and Ethernet are connected and not bridged. Ethernet and Wireless are bridged. That's the normal configuration for this router.

image

  • Go back to my Network, then Settings for Broadband Connection (Coax). Go to Internet Protocol and set your Broadband Connection (Coax) to No IP Address. This step is important.
    (They are all important, but this one is doubly so.)

Why? That means you don't want your Coax to pick up an IP Address from the ONT. You intent to pass traffic through (bridge) the Coax to the Ethernet. Your NEW router will use the Ethernet port and pick up the external IP Address from your provider.

image

  • Go back to Configure Home/Office Network and make sure you've checked the boxes under the Bridge section, so Broadband Connection and Ethernet are both checked, as seen below. Note that Wireless is disabled.

image

  • Click Apply and reboot the router.

At this point, the Coax port and the LAN 4 ports will be bridged. If you plug an Ethernet cable from the WAN port of your new router to ONE of the LAN ports of the ActionTec (and wait a while) you should see your new router pick up an external IP address. This did take about 5-10 minutes for me.

NOTE: Don't forget to change your PC's network back to automatically get an IP via DHCP.

Hopefully that's reasonably clear. Here's a visual way to look at it.

Typical Network

TypicalNetworkHanselman

Typical Network After Bridging COAX/Ethernet+ New Router

After performing major brain surgery like this you'll need to go over EVERY DEVICE IN THE HOUSE and Release/Renew their IP Address (I recommend this, although there are technically ways around it) as well as connecting them to your new Wireless Network's SSID.

My shiny new router is a Linksys WRT1900AC and it's AMAZING. It's spendy, but works fantastically and is worth the premium. It's nearly doubled my effective range and includes Gigabit Ethernet ports. Everything is faster, both internal traffic, and external.

TypicalNetworkHanselman

I hope this guide helps someone improve their home network. Have fun!


Sponsor: Big thanks to Red Gate for sponsoring the feed this week. 24% of database devs don’t use source control. Do you? Database source control is now standard. SQL Source Control is an easy way to start - it links your database to any source control system. Try it free!

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by ORCS Web

Windows Phone 8.1 has my attention now

April 18, '14 Comments [62] Posted in WinPhone
Sponsored By
WindowsPhone 8.1-Nokia 920 and 1520

I've had an iPhone since the 3GS (I have a 5S right now) but I'm always flirting with the Windows Phone. It's just prettier than my iPhone, but my iPhone has a lot of apps...so I stay with it. Folks tease me at work and at conferences for not using a Windows Phone. I always say "when it's an awesome phone platform, I'll use it."

Man, Windows Phone 8.1 is definitely more than "point 1 better." Seriously.

It's the platform Windows Phone should have been from the beginning. From a general functionality perspective, this 8.1 update brings the Windows Phone (finally) on par with my iPhone 5s, and in some cases, takes it beyond. It's REALLY tempting now.

There's a lot of new stuff, but a few things really grabbed my attention that my iPhone doesn't have yet:

  • Notification Center - Finally. Swipe down from the top and get notifications in one place. Just like an iPhone you get quick access buttons for airplane mode, wireless, etc. Even better, those buttons are configurable. I added Internet Sharing to mine. You can also swipe down then press Settings as a fast way to get to the main settings page.
  • Transparent Live Tiles - You can use a background image for your whole start screen, and it will show through transparent tiles. It also has a nice parallax effect when scrolling. Check it out in the video below.
  • "Show more Tiles" on smaller resolution devices - The 1520 on the right has the 1080p screen, while the 920 is a lower resolution screen. Previously only high-res screens got the extra column of tiles. Now smaller screen devices can choose their start screen size and add LOTS more info to a single screen.
  • Pinnable Website Tiles - This one surprised me. I recently added support to my blog for IE11 Pinned Tiles, so you can pin this website to your start screen and get an updated Live Tile showing the latest stories. I talked to the front end developer at The Verge and he added the feature for theverge.com as well. His implementation is REALLY impressive. The surprise was that Windows Phone 8.1 now supports that same technique and I didn't need to do anything. See on the 920 on the right, at the bottom, that's a pinned flipped tile showing a story from my blog. Very nice.
  • Cortana Voice Assistant - You could say this is the Windows' Siri, but it's more like Google Now with a personality. The voice recognition happens as you speak as opposed to after the fact, which is nice. You can ask questions like "How old is Oprah" and she (or he) just knows. You can say "Call my wife" and she'll say "Who is your wife?" then associate a contact with that nomenclature.
  • Quiet Hours - I use Do Not Disturb on my iPhone. Quiet Hours takes this a little further with the concept of an "Inner Circle" and a more sophisticated series of configurable rules like "Don't bother me at night on weekdays unless it's these three people, and text everyone else back that I'm not answering calls."
  • Driving Mode - This was added in a Windows Phone 8 update but I love it. It knows you're driving because you associate your cars' Bluetooth with it, then it will text folks "I'm driving, I'll get back to you" if they text you. You can choose to never see the text until you stop. Very cool.
  • Keyboard Swiping - It's built into the main keyboard now, no separate app. The predictive text has gotten better as well.
  • Battery Sense - The phone can tell you what apps are eating the battery, and when they are eating it. It'll show if the battery is being used by apps in the background or in the foreground.

I recorded a video on a real phone (the 1520 above, in fact) and demonstrated a LOT of the new feature. Check it out as part of my Windows 8 YouTube video playlist, or embedded below. I used the Project My Screen app (MSI) and turned it on in Settings on the phone, connected with USB.

If you have a Windows Phone 8 now and want to get the preview of Windows Phone 8.1:

If you get the Preview today,your phone will update to the final version automatically, I'm told. Go check it out!

Related Links


Sponsor: Big thanks to Red Gate for sponsoring the feed this week. 24% of database devs don’t use source control. Do you? Database source control is now standard. SQL Source Control is an easy way to start - it links your database to any source control system. Try it free!

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by ORCS Web

Exploring ASP.NET Web Pages - A fully-featured MiniBlog using just Razor

April 16, '14 Comments [33] Posted in ASP.NET | Open Source
Sponsored By

ASP.NET "Razor" Web Pages are ASP.NET sites without models, views, controllers, or project files. Some folks say "oh, that's just Classic ASP, or PHP right? Not at all. It's the full power and speed of the .NET CLR, the full syntax of C#, LINQ, along with things like C# dynamics. It's super powerful, and my friend Mads and I are surprised more people don't use them for small things.

In fact, Rob Conery and I did the http://thisdeveloperslife.com web site using just Razor and Rob's "massive" micro-ORM. Later I made http://hanselminutes.com with Web Pages as well.

This blog runs DasBlog, an older ASP.NET 2.0 blogging engine I worked on with Clemens Vasters and a lot of co-contributors, but I'm actively checking on Mads' MiniBlog, a minimal but VERY competent blog engine using Razor Web Pages. Why wouldn't I use something like Ghost? I've thought about it, but MiniBlog is SO minimal and that makes it very attractive.

Here's some things I like about MiniBlog, as both a blog and a learning tool.

Minimal

It's not called Mini for fun. There's a truly minimal packages.config of dependencies:

<packages>
<package id="AjaxMin" version="5.2.5021.15814" targetFramework="net45" />
<package id="Microsoft.AspNet.Razor" version="3.0.0" targetFramework="net45" />
<package id="Microsoft.AspNet.WebPages" version="3.0.0" targetFramework="net45" />
<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net45" />
<package id="xmlrpcnet" version="3.0.0.266" targetFramework="net45" />
<package id="xmlrpcnet-server" version="3.0.0.266" targetFramework="net45" />
</packages>

Clean use of Handlers for Web Services

Blogs do more than just serve pages, there is also a need for RSS feeds, MetaWeblog Web Services for things like Windows Live Writer, and dynamic minification for JS and CSS.

<handlers>
<add name="CommentHandler" verb="*" type="CommentHandler" path="/comment.ashx"/>
<add name="PostHandler" verb="POST" type="PostHandler" path="/post.ashx"/>
<add name="MetaWebLogHandler" verb="POST,GET" type="MetaWeblogHandler" path="/metaweblog"/>
<add name="FeedHandler" verb="GET" type="FeedHandler" path="/feed/*"/>
<add name="CssHandler" verb="GET" type="MinifyHandler" path="*.css"/>
<add name="JsHandler" verb="GET" type="MinifyHandler" path="*.js"/>
</handlers>

MiniBlog uses .ashx (HttpHanders) and wires them up in web.config. RSS feeds are easily handled with System.ServiceModel.Syndication, even JavaScript and CSS minification. Though MiniBlog is very new, it uses the old but extremely reliable CookComputing.XmlRpc for the MetaWeblog service communication with Windows Live Writer. I

No Database Need

I like apps that can avoid using databases. Sometimes the file system is a fine database. I thought this when we worked on DasBlog, Mads thought it when he made BlogEngine.NET (his original blog engine) and that "no database needed" design tenet continues with MiniBlog. It stores its files in XML, but MiniBlog could just as easily use JSON.

Clean Content-Editable Design Service

I always (exclusively) use Windows Live Writer for my blog posts. WLW is also the preferred way to write posts with MiniBlog. However, if you insist, MiniBlog also has a really nice content-editable scheme with a great toolbar, all in the browser:

Nice Editing Experience

When you are viewing a post while logged in as Admin, you click Edit and turn the page into editable content.

editPost = function () {
txtTitle.attr('contentEditable', true);
txtContent.wysiwyg({ hotKeys: {}, activeToolbarClass: "active" });
txtContent.css({ minHeight: "400px" });
txtContent.focus();

btnNew.attr("disabled", true);
btnEdit.attr("disabled", true);
btnSave.removeAttr("disabled");
btnCancel.removeAttr("disabled");
chkPublish.removeAttr("disabled");

showCategoriesForEditing();

toggleSourceView();

$("#tools").fadeIn().css("display", "inline-block");
}

The resulting HTML you write (in a WYSIWYG mode) is converted into XHTML and posted back to MiniBlog:

parsedDOM = ConvertMarkupToValidXhtml(txtContent.html());

$.post("/post.ashx?mode=save", {
id: postId,
isPublished: chkPublish[0].checked,
title: txtTitle.text().trim(),
content: parsedDOM,
categories: getPostCategories(),
})

The JavaScript is surprisingly simple, and gets one thinking about adding basic editing and CMS functions to websites. A design mode would be a daunting task 5 years ago, and with today's JavaScript it's almost trivial.

It even automatically optimizes images you drag and drop into the design surface and upload.

public static string SaveFileToDisk(byte[] bytes, string extension)
{
string relative = "~/posts/files/" + Guid.NewGuid() + "." + extension.Trim('.');
string file = HostingEnvironment.MapPath(relative);

File.WriteAllBytes(file, bytes);

var cruncher = new ImageCruncher.Cruncher();
cruncher.CrunchImages(file);

return VirtualPathUtility.ToAbsolute(relative);
}

The code is fun to read, and you can go check it out at https://github.com/madskristensen/MiniBlog. It supports HTML5 microdata, sitemaps, both RSS and Atom, simple theming, and gets a 100/100 of Google Page Speed.


Sponsor: Big thanks to Red Gate for sponsoring the feed this week. 24% of database devs don’t use source control. Do you? Database source control is now standard. SQL Source Control is an easy way to start - it links your database to any source control system. Try it free!

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by ORCS Web

Open Source is a thankless job. We do it anyway.

April 13, '14 Comments [49] Posted in Open Source
Sponsored By
Photo by Sweet Chili Arts, used under CC

Open Source is hard.

Security is hard

There's been lots of articles about the recent OpenSSL "Heartbleed" bug. You can spend a day reading all the technical analysis, but one headline that stood out to me was "OpenSSL shows big problem with open source; underfunded, understaffed." A fundamental part of the fabric of The Internet Itself is mostly just one person plus a bunch of volunteers.

"The fascinating, mind-boggling fact here is that you have this critical piece of network infrastructure that really runs a large part of the Internet, and there’s basically one guy working on it full time."

Moreover, we don't sing contributor's praises for their hard work and success while their software work, instead we wait until a single line (albeit one of the more important lines) fails to live up to expectations. Darn that free stuff, mostly working, and powering our connected global network.

Open Source is largely a thankless job. Sometimes in the Microsoft .NET community, it feels more futile because it's often hard to find volunteers. Many folks use the default stuff, or whatever ships with Visual Studio. With Rails or Node, while they have corporate backing, there's a sense that the projects are community driven. The reality is in-between, but with open source projects built on the Microsoft stack volunteers may say "we'll just use whatever the ship."

There's anger around past actions by Microsoft, but as I've said publicly before, they've come a LONG way. I will keep pushing open source at Microsoft until I think I'm done pushing and can push no more. There's a seismic shift going on inside. Mistakes get made, but it's moving in the right direction. Everyone is learning.

Visibility is hard

Jeremy Miller's team recently stopped active development on the "FubuMVC" open source .NET framework. In his exit blog post, the question of the viability of .NET open source comes up:

"Setting aside the very real question of whether or not OSS in .Net is a viable proposition (it's largely not, no matter how hoarse Scott Hanselman makes himself trying to say otherwise), FubuMVC failed because we — and probably mostly me because I had the most visibility by far — did not do enough to market ourselves and build community through blog posts, documentation, and conference speaking."

It's very true that in a large way visibility drives viability for many open source projects. Jeremy's retrospective is excellent and you should read it.

I think it's harder to bootstrap a large framework project that is an are alternatives to existing large frameworks because for many, it's easier to use the default. Frameworks like FubuMVC, OpenRasta, ServiceStack, Nancy and others all "reimagine the default." They are large opinionated (in a the best way) frameworks that challenge the status quo. But it's much more difficult to cultivate support for a large framework than it is a smaller library like Humanizer or JSON.NET.

Still, without these projects, we'd all still be using the defaults and wouldn't be exploring new ideas and pushing limits as a community like the FAKE F# build system, or Chocolatey, or Boxstarter.

Microsoft can better support OSS projects not just with licenses and money, but with visibility. I'd propose dedicate Open Source tracks at all Microsoft conferences with speaking slots for open source community members. DotNetConf is a start, but we can go bigger.

Organizing is hard

OWIN is an example of a small, but extremely important project that affects the .NET world that is struggling with organization. Getting it right is going to be important for the future. There's a small, but influential group of community members that having been trying for months to find middle ground and build consensus around a technical issue.

ASP.NET Web API and SignalR both build on top of an open source project called OWIN (Open Web Interface in .NET) that aims to decouple servers, frameworks, and middleware from each other.

There's an issue open over on GitHub about what may seems like an obscure but important point about OWIN. The OWIN specification doesn't include an interface called IAppBuilder, but IAppBuilder is used by default in most Microsoft examples. Can the underlying OWIN framework remain neutral? The issue is a long one, and goes off on a few tangents. It's a complex problem that perhaps 20 people fully understand.

Scott Koon worked hard on a Governance document for OWIN and hasn't seen any forward motion. He vented his frustration on Twitter, rightfully so. Under the often-used "Lazy Consensus" technique, if folks are silent or don't reply in 72 hours, that is effectively consent and can change the direction of a project. Active involvement matters.

The fun part of open source is the pull requests and writing code, but before the code building, there's the consensus building. Ownership is the most contentious part of this process. Ownership means control; control over direction. The key to finding control and working through ownership issues is by thoroughly understanding everyone's differing goals and finding a shared vision that the community can rally around, then move forward.

This sausage making process is tedious, messy, but necessary. These discussions are as much a part of OSS as the code is. It takes equal parts patience and pushing.

Getting involved is hard

I get dozens of emails every week that all ask "how can I get involved in open source?" Everyone assumes my answer will be "write code" or "send a pull request," or sometimes, "help write documentation."

In fact, that's not all you can do. What you can do is read. Absorb. Understand. Be welcoming, inclusive, and kind. Offer thoughtful analysis and ask questions. Avoid hyperbole and inflammatory language. Show code examples when commenting on issues. Be helpful.

Your blog posts are the engine of community, your open source commits, documentation, promotion, samples, talks, gists are important. But getting involved in open source doesn't always mean "fork a project and send a giant pull request with your worldview." Sometimes it's the important but unglamorous work of writing a governance document, organizing a conference call, or thoroughly reading a giant Github issue thread before asking a question.

Why do we do this? It's not for the glamour or the money. It's because we are Builders. I encourage you all to get involved. There's lots to be done.

* photo by Sweet Chili Arts, used under CC


Sponsor: Big thanks to Novalys for sponsoring the blog feed this week! Check out their security solution thatcombines authentication and user permissions. Secure access to features and data in most applications & architectures (.NET, Java, C++, SaaS, Web SSO, Cloud...). Try Visual Guard for FREE.

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by ORCS Web

Disclaimer: The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.