Skip to main content

Posts

Resharper add-in idea - highlight IDisposable vars

[Update 18th July 2013] @RobGibbens and Greg Hurlman picked up on this - Rob pointed out that there is an FxCop rule that can do this and Greg suggested a Visual Studio extension. I've had a quick look at the Visual Studio options and it looks like an " Editor Extension " is a good fit....hmmm, Project New, click...doh...dammit I really don't have time for this but it looks a fun little diversion! I'll update here if I get anything working. [Original Post] Had an interesting idea for a Visual Studio Resharper add-in the other day but don't have the time to implement it so thought I would put it out there...it might already exist (and hopefully someone can point me in the right direction) or someone will build it (Darren Voisey where are you?!). The idea is very simple really - when you have a variable for an object that implements IDisposable it gets highlighted or a tell-tale is displayed to let you know it should be disposed or should be wrapped in a u...

Walk-Thru: Using Wolfpack to automatically deploy and smoke test your system

First, some history... The advent of NuGet has revolutionised many many aspects of the .Net ecosystem; MyGet, Chocolatey & OctopusDeploy to name a few solutions building upon its success bring even more features to the table. I also spotted that NuGet could solve a problem I was having with my OSS System Monitoring software Wolfpack ; essentially this is a core application framework that uses plugins for extension ( Wolfpack Contrib ) but how to unify, standardise and streamline how these plugins are made available? NuGet to the rescue again - I wrapped the NuGet infrastructure (I deem NuGet to be so ubiquitous and stable that is has transcended into the software "infrastrucuture" hall of fame) with a new OSS project called Sidewinder . Sidewinder allows me to wrap all my little extension and plugins in NuGet packages and deploy them directly from the Wolfpack application - it even allows me to issue a new version of Wolfpack and have Wolfpack update itself, sweet huh...

My ideal Bootstrapper...

[ Update 29-Apr-12 ] I've revisited Bootstrapper for a new project and it does register the StartupTasks in the IoC container and resolve them from there too (if you have your IoC extension before your StartupTasks) - this means any dependencies your StartupTask should be resolved. I don't know whether BootStrapper always did this or I was just too lazy to find it out - however with this feature you can pretty much disregard the following post! [ Original Post ] I like the Bootstrapper codeplex project - it's a nice clean approach to setting up your application....however... I have a specific requirement to satisfy as part of my bootstrap process and I'm not sure if Bootstrapper can solve it. I'll be honest I thought it easier to write this post as I wanted to talk about my ideal Bootstrapper as well as someone hopefully telling me if Bootstrapper can do this or not!. Lets say I have an IoC container that needs configuring - easily done with Bootstrapper. I...

Deployment - the final (.Net) frontier

[Update 19th Apr 2012]  - mission complete!...v2.4.0 of Wolfpack has been released and this includes a new set of plugins that can automatically download a NuGet package then execute a deployment tool (eg: DropkicK, MSBuild.exe) - it can even run NUnit tests (via the console runner). Wolfpack v2.4.0 Wolfpack.Contrib.Deployment [Original Post] Another day, another project and deployment raises its head... Thinking that this problem must have been cracked by now I had a look around the .Net landscape and found two interesting solutions. Octopus Deploy - a .Net convention based deployment system using NuGet packages, loosely based on AppHarbour's approach. DropkicK (aka DK) - another awesome initiative from Dru Sellers et al. I like the simplicity of Octopus but also like DK's  fluent code based deployment. Hmmm, this has got me thinking - Wolfpack could easily be adapted to be used as a deployment agent. Wolfpack can already monitor a NuGet feed for new pac...

Wolfpack vNext = vExcited

I'm getting excited about the next release of Wolfpack (v2.3). It's going to be the first application  that uses Sidewinder  (unless someone beats me to it with my own framework!). I'd been discussing updates and NuGet with a few people and wondered how it could be applied to Wolfpack - its plugin architecture makes it a perfect candidate for being able to download or upgrade plugins plus I also wanted to explore a better way of upgrading the entire install - make this as painless as possible. Taking inspiration from the NuGet.exe commandline app that self updates I had a look at the code and took the plunge and created Sidewinder. I'll let you investigate Sidewinder yourself (if it sounds interesting) but wanted to share what this will mean when it lands in the next version of Wolfpack and how I plan to use it. Wolfpack is a pluggable, modular system - a number of contrib projects have sprung up and a few dedicated individuals have invested time and effort into a...

Wolfpack v2.1 (Build Analytics)

Hurrah! Version 2.1 of Wolfpack (formally MonitorWang) is released! This release is all about " Build Analytics " - a new set of plugins allow you to monitor the state of a TeamCity build configuration and then once this is complete it can extract stats from any* build tool run as part of it. * When I say any I mean it supports NCover, SpecFlow, StoryQ reports but as usual with Wolfpack it is easy to create your own parsers to extract from any tool you might use, eg: NDepends, FxCop. It is also simple to extend it to cover other build systems like TFS, CruiseControl. The final piece of the puzzle of to visualise this information and the Wolfpack Geckoboard Data Service does a great job of this - it allows you to display these stats directly in your Geckoboard .

Developers have Friday "playtime"?

I've observed an interesting trend from my download statistics on my main open source project, MonitorWang ...that downloads often increase on a Friday. What can we infer from this? Developers have some down time to look at "other" stuff on Friday? Interesting to know how official this is or just people getting bored with the humdrum stuff and looking for something interesting to do at the end of the week? MonitorWang's official birthday is 8th August when I first uploaded it to codeplex however it was in conception & development way before that so it's almost a year old. It's racked up over 1000 downloads and I've got some big plans for it to be revealed shortly. More importantly I'm starting to get feedback and success stories of it in use which is the icing on the cake - 1000 downloads means nothing if it's not of value to someone! Thanks to everyone that has helped shape & contribute to it, in particular Rob Gibbens and David St...

MonitorWang v1.0.8 released

It's taken a while to get this one out - mainly due to a combination of sunny weather and a series of Bank Holidays (and the odd beer festival!). MonitorWang v1.0.8 is released! This is a big release - several bug fixes and rebuilds against the latest 3rd party libraries, Magnum, TopShelf and NServiceBus plus a major new feature - AppStats  (all the details here including the Etsy inspiration behind it). Comments and feedback welcome (via the codeplex discussions page)

Spring Roundup

Podio  - currently being wowed by this web application. It's a highly customisable collaborative "space" for your team to manage there activities. Essentially you create a "space" then populate it with the apps (widgets) that have the greatest affinity with what your "space" is about. So if you were collaborating on a new website then you will use apps from the software development pack (suite of apps) but you can mix and match apps from any category to provide a completely customised environment to manage your work & team with. This concept is excellent as I've used many "management" type sites, must notably (and well known) being Basecamp and found it good but not great - its suitability & popularity varied between project/client - with Podio you can tune the environment to ensure that you only have the features you need and even better you can create your own apps if there is nothing suitable available; I've not tried this ...

Google Infographic Tool + Geckoboard?

So just saw this (via @hugorodgerbrown ) You can upload your data and visualise it - if you use Geckoboard for your business dashboard then how about a mashup - want to map your biggest customers? Order hotspots? you name it - it would now appear possible...just need to work out how to get the Google output into Geckoboard....anyone?

Roundup

Another roundup post to cover a few things of interest I've discovered lately.... (via Automated Home) comes the HDMI hacker box from Kwikwai - it allows you to bridge home automation systems into AV equipment, eg: send a text string to your TV OSD! CEC is an optional command channel built into HDMI that allows commands to be sent from one device to another - eg: when you turn your TV off it sends a turn off command back down to your DVD player connected to it. This box allows you to sit in between devices and fake commands or just discover (sniff them). (via HRB/JasonFried/Twitter) Great post on un-managing your team to unlock potential from a guy at 37signals (basecamp). Superb post - a must read! 37signals are rewritting the development team book!

NServiceBus and BizSpark

Just seen a post by Udi Dahan about NServiceBus (NSB) licensing and companies that participate in Microsofts BizSpark program (which I/mine does :-). Essentially... " So, if you're company is in  BizSpark, in addition to all the software you're getting for free from Microsoft, I'm happy to offer you a free NServiceBus Foundation license or $1500 off a Standard license. That includes support ". The new NSB licensing model is pretty well thought out but still restrictive in terms of physical layout of applications - the community license (and even other licenses) only allow it to run a single machine - if you want to use it across machines then it's big bucks (as far as I understand it). Anyway - if you are in BizSpark, check the link out to benefit from Udi's/NSB Limited generosity.

These are the 'droid's you're looking for!

I recently posted about Brands and API's and in it I mentioned the rise of Android and this new article on mashable confirms things.... Some great stats in the article if you are interested in the smartphone market. Ok, - it is from a single company but I think it shows the general trend - Android is big and getting bigger, fast....now, how's that app coming on? ;-)

MonitorWang v1.0.6 released

Just a quick note to say that I've released v1.0.6 of MonitorWang - all the details are here . The main focus of this release is to add some more HealthChecks... Windows Service State and Startup type Checks - monitors that services are in the expected state (eg: running) and have the correct startup type (eg: automatic). Url Ping - pings your urls checking for http failures and slow performance (response threshold configurable) PS: I'd love to hear from anyone using MonitorWang - what sort of checks are you running, any problems or suggestions you have would be great! J

Why a Brand needs an Open API

This is a great article by Adam Kleinberg on how a brand and enabling third parties to write exciting applications and mashups targeting new channels via your Api is so important . The resources required to produce a website and accompanying iPhone app can be significant - what if you invested in your business/eCommerce API and a referral/developer programme instead? The world becomes your development partner and ANYONE can start creating applications backed by YOUR business. Take Android as an example - it's gaining market share at such a rapid pace that you will need an Android App soon to stay in the game as it's not a sector you can afford to ignore. Pouring all your money into a specific vendor channel (say iPhone) could mean you are left out in the cold when other technologies/forms/channels become viable. With an API in place it would be a simple, cheaper exercise in creating an Android application on top of the API calls - and the API gives you options in how you...

MonitorWang v1.0.5 released

Just a quick note to say that I've released v1.0.5 of MonitorWang - all the details are here . The main feature is "Growl Notification Finalisers" - these allow you to modify the Growl notification based on the result or result count plus you can easily write your own Finaliser to adjust the Growl Notification priority or message text based on your custom logic. There is also a major bugfix to the Castle Interceptor logic that affects the Publisher Filters. Enjoy - please report any problems via the "discussions" tab on the codeplex site.

MonitorWang v1.0.4 released

Big release this.... Added support for SQLite databases Added a check that captures energy usage data from an Owl Energy Monitor Added Publisher Filters to allow you to hook custom logic into the publication process Added support for swapping between data sources for you Geckoboard Data Service Activity Plus a refactor of the internal HealthCheck/Publisher mechanism (now uses the cool Magnum Pipeline components) More details on the v1.0.4 codeplex release page.

FreeAgent Geckoboard widgets....its a trust thing

So I've been looking at how simple it would be to get Geckoboard widgets up and running to visualise your FreeAgent data....and the answer is, pretty easy really. The idea I had was for a text widget to display your due invoices. The FA api is pretty comprehensive and this data is available via REST as XML - authentication is http basic using your FA username and password. I created a new FA widget user for my account and assigned it permissions up to the Invoicing Level - this protects my more sensitive data. Wrap all this up in a Google-AppEngine (GAE) app and there you have it - your FA pending invoices.... In glorious public view....oh dear Ok, no problem - we use the Geckoboard ApiKey to secure it so that only requests with the correct ApiKey (that we set in the widget configuration) will be allowed access to the feed. Or rather I use my Apikey - it works in my GAE app as I can hard code the apikey check into it...this app instance cannot be used to provide FA data ...