Hooray for Open Source .NET!

Thinking about this amazing news from Scott Guthrie today. It’s been a long and winding road for .NET. Many of us have moved on completely, most of us now are polyglots. I’m excited for the prospect of solving problems with my familiar .net class libraries in new and different ways.

When I think of my beloved .NET, I often ponder this question – Would I launch a web-oriented startup based on .NET today?

Of course there’s many many factors involved in the answer to this, admittedly unfair question. Web startups are only one very small class of new projects that are started every second, and there are many times when the decision to use .NET is a no-brainer. But to me, this is one of the most interesting questions to ask about .NET today, and one I recently had to ask myself.

Almost a year ago we began work on a new startup in the intermodal shipping space, it’s called Quick180. The stack is Nancy, SQL Azure, EF, and Angular.

So why .NET in the stack? There were many reasons, but to name a few, I’d say low risk because of our existing knowledge of the platform was a big one, and free Azure hosting from BizSpark was another. I also LOVE Nancy.. But I have a nagging feeling that a stack with node would have been an good choice, and the fact that I could easily run on my mac, and just about anywhere else is a big, huge win.

And I know, it’s possible to do .net development in Mono on Mac and elsewhere – Nancy runs on Mono and Mono’s compatibility statement – “Everything in .NET 4.5 except WPF, WWF, and with limited WCF and limited ASP.NET 4.5 async stack.” is a huge mouthful of cross-platformy goodness. But I’ve never come across .net code in the wild that runs cross platform without special care taken to ensure that goal. Other stacks just work de facto cross-platform.

So, perhaps this news gets us one step closer to being on par with other stacks, where I don’t have to boot in to Parallels just to work, and I can kiss my old Windows installs goodbye forever.

Posted in Uncategorized | Leave a comment

ThinFolio “Stuffed Wallet” Giveaway!

12345Got it? No?

Okay, let’s try this… Our friend Mark (who you may know from running the BizSparkSF and  SF .NET Meetup Groups) is starting a new company ThinFolio.  “Go west young man!” I remember saying to him, nearly twenty years ago when we first met at a Boston startup.  With a tear in my eye I’m here to tell you that ThinFolio just launched their Kickstarter Campaign yesterday.  By the looks of it, (134 backers already) they’re going to be funded and Mark’s going to be the next wallet tycoon!  Huzzah! You can Back This Project $1 minimum pledge

So, as a thanks for being such an all around nice guy, devoting countless hours to the .NET community in his “spare time”, I offered to try to promote his Kickstarter with a giveaway:

We are giving away four ThinFolio Wallets, each “stuffed” with a free book from the InformIT site (a quick search of their site for “Fowler” tells you how good their selection is),  a copy of Ants Performance Profiler Pro  and a copy of R# or WebStorm - great tools which could theoretically help you “stuff” that new wallet with real $$.

Pretty good giveaway, I thought, but it needed something more. I tried to think of a good tagline – “Win a Stuffed Wallet, Stuffed with Stuff to help you Stuff … ” that was obviously going nowhere.  I went to my good friend Jacob Llaneras for help and and, um, well, that cartoon happened. Jacob thought this TLDR version would say it better:


I think he’s right. I should probably leave the marketing to the professionals.  So without further ado, enter below for your chance to win and good luck!

a Rafflecopter giveaway

Posted in Uncategorized | 3 Comments

Python Fabric Script for Setting up TeamCity on Ubuntu

I’m currently working on a project requiring a TeamCity setup on a Rackspace cloud account.   I’m a huge fan of Python Fabric for automating deployments, and have put together a recipe for installing TeamCity:

Fabric is a Python library and command-line tool for streamlining the use of SSH for application deployment or systems administration tasks.

It provides a basic suite of operations for executing local or remote shell commands (normally or via sudo) and uploading/downloading files, as well as auxiliary functionality such as prompting the running user for input, or aborting execution.

It’s pretty simple, but there’s some good stuff in there, like how to install the JRE via a non-interactive install.   If you are looking to install MySql, I’ve put a gist for that as well. 

One word of warning. I’m NOT a ‘nix expert, so you may want to double check anything I’ve done here against your own best practices.


Posted in Python, TeamCity, Ubuntu, Uncategorized | 2 Comments

Welcome Marcus Hammarberg

I’d like to welcome Marcus to the CodeBetter.Com group.  I’ve been learning lots about Nancy Testing from his awesome series over on his personal blog.   By my understanding of Vertical Slice Testing, Marcus’ “Hatless, Shoeless” testing is a great example of  VEST a la Nancy.

One look at his tag cloud and it was obvious that he’s going to be a great fit around here:

.NET (180) Agile (147)ASP.NET MVC (41) BDD (47)BrassBand (86) C# (25)ContinuousDelivery (5) CQRS (1) DDD(13) Euphonium (14) Fun (66)Kanban (27) KanbanBoards (6) Lean(18) Life of a consultant(245) LINQ (6) Marcus private (217) MSBuild (24)Nancy (3) NHibernate (14) Salvation Army (50) Scrum (35) SOA (12)SpecFlow (30)SpecificationByExample (12) Sprint Planner Helper (32) TDD (46)Test (2) TFS (42) Tools (144)VB.NET (39) Visual Studio (46)WCF (24) Web Design (4) ÖreDev (15)

He’s a Lean and Agile coach, and currently co-authoring Kanban In Action.  Welcome Marcus!

Posted in .NET | Tagged | Leave a comment

TDD I Learned… Code Katas

Continuing to make my way through Roy Osherove’s TDD course.  There’s an interesting exercise that he introduces to help practice and gain the muscle memory required to do TDD well – the Code Kata.  Wikipedia attributes the code kata to Dave Thomas:

Code Kata is a term coined by Dave Thomas, co-author of the book The Pragmatic Programmer, in a bow to the Japanese concept of kata in the martial arts. A code kata is an exercise in programming which helps a programmer hone their skills through practice and repetition.

There’s a nice project over here on Github containing descriptions and code for a bunch of Katas, including the string calculator  that Roy introduces. Roy’s site has the string calculator kata executed in a bunch of different languages, including AutoHotkey!

Posted in TDD, Uncategorized | Tagged | Leave a comment