mrgeesbigcircus

I'm a web designer and developer from Nottingham. I mostly work in C# for getting things done, although I have a penchant for obscure and interesting aspects of programming. I come from a background of generally non-IT environments, so I tend to see things from a "human" perspective.

Away from the computer, I love cycling and mountain biking, as well as dusting off my rather large collection of records every now and then. I'm also a big fan of graphic design, illustration and typography.

I'm married to my beautiful wife Luce and we have a gorgeous girl called Bibi.

Oct 7

The Apprentice, lesson learned: get stuck in

* Warning: Apprentice spoiler alert! *

Another series of The Apprentice and another 16 vapid, egotistical, megolomaniacal yet somehow entertaining individuals sell sausages (read: their souls) to Hedge Fund Managers and Grandmothers alike in order to be Lord Alan’s bitch.

So Dan’s out. He was project manager. He was testosterone fuelled, arrogant, cock-sure - but most of all he was distant.When the other guys were up to their elbows in ground-up pig trotters, he was at the back shouting “Who’s doing the mincing?!” (I still chucle at this).

When they were out on the street selling bangers for all their worth, he was round a side street telling others to do a stock take.And when he was asked to defend himself in the boardroom, he answered “I managed the team”. And that was it.

Man-management is a fine art, and cerainly a great deal of the role is to take a step back from the coal face to review the situation in wide-focus, re-evaluate, re-coordinate, then get back on with it. Dan’s problem was that he was never actually at the coal face to begin with. He never got his hands dirty. His “staff” regarded him as a tyranical outsider, commanding from an ivory tower without actually experiencing life on the shop floor. If you’re going to manage, lead, coordinate, whatever - get stuck in with everyone else, be a part of the team, and don’t distance yourself from your workers or the actual work.

Posted via email from The wonderful world of pgdev | Comment »


Oct 6

Can’t touch this: disabling controls or warning users?

Just discovered an interesting thing with GMail, and now I can’t decide between two trains of thought - if you don’t want your users to “do” something i.e. click a button, should you disable the control completely, or display a message?

Going back to the GMail example, the buttons immediately above the list of messages (Delete, Mark as read etc.) are enable at all times. However, these buttons only perform an action when one or more messages are selected, resulting in the message “No conversations selected.” being displayed to the user. Having one or more messages selected will process the desired action without question. This is handy as it directs the user to perform a required action, but can take up screen space and could lead to bemused clicking if the message is ignored or not seen.

The alternative to this would be to disable the controls completely when no messages are selected. It could be argued that it may confuse the user, giving them no indication as to what needs to be done first before the controls are enabled. However, surely if you’re on a web-based email service (and indeed on the web in general), it should be pretty apparent that a page involving a list of items and buttons labelled with a verb requires the selection of at least one item from the list first. This obviously saves on the screen space issue created by a message, but could lead to confusion as to what actually needs to be done to enable the control.

So which is best? Enabled/message or disabled/select first? Both have their merits, both have their issues. Decisions!

Posted via email from The wonderful world of pgdev | Comment »


Oct 5

Twice the speed, half the content? What price quick consumption?

I’ve been meaning to put this into words since I met up with @philcampbell last week, where we briefly touched on the subject of how content is being optimized, streamlined and piped at high pressure to whatever device we’re using in our hectic lifestyles, to get the same content we consume when we’re sat at our desktops or laptops.

Should this be the case? When mart phones first hit the market, designers and developers created content for those devices which was either solely for that platform (i.e. it wasn’t to be consumed elsewhere) or it was seen as a “quick hit”, a fast means to get hold of content in the knowledge that you’ll see the bigger picture when you touch base at a larger viewing port.

The concern is now, with the advent of the iPhone and its brethren, these devices are being used as the primary device for devouring information. The meager inches provided by these devices are the main route for news, books, photos, videos, games - whatever can be created and used, it’s all going through this little rectangle, this tiny letterbox looking out into an incredibly big world. What sacrifices are being made to ensure we’re getting the content we want, when we want it, on the gadget in the palm of our hands? What’s being trimmed at the edges to ensure everything (figuratively) fits? Which articles are being sold as full fat, when we’re just getting skimmed?

I’m a developer, I’m lucky - I have two big monitors. I’ve got a browser with 10 tabs open, I’ve got Twitter running, news feeds streaming in, blog updates pouring through - if something catches my eye, I’ve got at least half a dozen instantly accesible sources available to cross reference and expand on the item. Nothing is trimmed down for the sake of efficiency, I don’t have to close all but one application. I have a huge canvas to display and order the information I need to see the bigger picture.

Oh, and I can see my mate’s Facebook video of him crashing his mountain bike in such better clarity.

Posted via email from The wonderful world of pgdev | Comment »


Dear Santa…

Yes please! I can see bike polo and broken limbs on the agenda…

Posted via email from The wonderful world of pgdev | Comment »


Oct 4

Calling an MVC Action from jQuery (and doing some crazy class togglin’)

Wow, been a while hasn’t it? Anyway…I’ve recently been tricking out our MVC application with some additional jQuery goodies.

The main crux of the application is about allowing the user to build up lists of people. @paulwallas designed a UI which incorporated a “star” visual - from a search, clicking it once would “light up” the star and add the person to the list. Clicking it again would toggle the process, turning the star grey and removing the person from the list. Because of initial time constraints, we built this facility to perform a page refresh when a person was added or removed - the actual HTML and CSS classes assigned to the state of the person (added/removed) was generated on the fly in the actual LINQ code on each page load - sounds oh-so-snazzy when talking about it over cheese and wine, but not terribly efficient.

So, all aboard the good ship jQuery.ajax!The basic functionality of the application remains, however rather than an <a> tag performing all the back end trickery to add the person to the list, then reload the list with the toggled markup code, we now have something like this:

    addUser = function (id) {        $.ajax({            type: "POST",            url: "/Controller/Action",             data: "id=" + id,            success: function (result) {                $("#starSpan" + id).removeClass().addClass("starredIcon");                 $("#starSpan" + id).unbind("click").click(function () { removeUser(id); });                 $("#dropSpan" + id).removeAttr("class").addClass("expandUserIcon");             },            error: function (req, status, error) {             }        });    }
Pretty neat!The user stays where they are, but the loveliness of the MVC action performing the adding/removing all kicks off behind closed doors. There’s obviously the removeUser() function which performs the opposite, and toggles the classes back.

Posted via email from The wonderful world of pgdev | Comment »


Jul 20

T-SQL Script Runner

Just a quick one - I’ve made a simple T-SQL script runner which can connect to a SQL Server of your choice, then run a T-SQL script against a selected database.

This is obviously the first iteration, so it’s fashionably flaky.

Let me know what you think!

Posted via email from The wonderful world of pgdev | Comment »


Jul 15

Jul 9

ASP.NET MVC: Return a View from a different Controller

The problem: You want to return a View that’s in a different Controller to the one you’re currently in. Doing return View(“/OtherController/OtherView”); results in an exception, as MVC looks first in the current Controller folder structure, then the Shared folder structure.
The “proper” solution: Copy the View you want into the Shared folder structure and reference it.

Quick & dirty solution: Use return Redirect(“OtherController/OtherView”); Hurrah!

Posted via email from The wonderful world of mrgeesbigcircus | Comment »


Jul 8

ASP.NET: Is WebForms too uncool for school?

I’ve recently read Aaron’s great blog post on why .NET has had a very poor uptake in the startup arena, and is seen primarily as an enterprise commodity. Aaron, in my opinion, correctly states that it’s the .NET development community itself, with it’s lean towards developing interoperability of business systems and legacy systems, that keeps .NET from ever being used outside of the large corporate castle.
If you’ve ready any portion of my blog or had a look at my Twitter feed, you’ll know I’m a C# guy. Not that I’m a Microsoft fanboy - I fell into using it because, surprise surprise, a large corporate that I was working at used it. Having said that, I really enjoy using C# and in general the whole .NET framework - I actually use it on my home Ubuntu laptop using the Mono framework and MonoDevelop.

Just as Aaron says in his post, I too am a natural entrepreneur - I’ve currently got one big idea in the pipeline revolving around a hybrid of realtime communication, online forums and interconnected streams of related data (I really need to work on that pitch), as well as some smaller dog food apps for day to day development. Hopefully sometime soon I’ll have the time to grind out all the code I need to get things released. The thing is, everything I’m developing is in C#. I could follow trend and go all RoR/PHP/Python etc., but that means eating into development time by having to learn new stuff. Okay, so I’m actually in a full time role so it’s not like mission critical to get a product up and running in order to put food on the table, but 3 months of coming up to speed with a new language is 3 months of not writing production worthy code. Joel Spolsky’s post from a few years back gives a great insight into this.
Back to my main point, all of my core web-facing development is done using ASP.NET MVC. As far as C# and .NET is concerned, this is the forefront of being a web darling. It’s new. It’s shiny. It’s fast. It works well in teams. It works well for a lone developer. It structures your code base. It’s in bed with jQuery. It promotes the use of everything else that’s new and shiny from the Microsoft sweet shop.

WebForms is perceived as old school, with an emphasis on the “old”. Looking at my company’s two software family trees - one WebForms, the other new developments MVC - they couldn’t be further detached.
The WebForms software is slow and clunky, full of redundant code, huge amounts of custom and 3rd party controls, different data and business layers for doing the same thing.

Conversely, the MVC lineage is easy to navigate, easy to understand, elegant in it’s implementation, is standard and consistent.
Okay, so it could be argued that the developers that have worked on the projects are to blame/praise for the quality of the code, which is fair, but I think a bigger reason is cultural. WebForms is seen as the old guard. Old, boring WebForms. Why bother with it? MVC on the other hand is a spritely, playful minx, allowing .NET developers to join the same ballpark as the new media boys. Hurrah!

So what next? When it comes to developing startup/community applications, I would have used .NET/C# anyway, purely because that’s where my skillset is best suited. Any applications released for consumption on the web would have been in WebForms. But now MVC is on the block and is becoming proven in the field, are the days of the old guard numbered, and are we going to see a bigger uptake of non-enterprise developers coming over to the Microsoft development house?

Posted via email from The wonderful world of mrgeesbigcircus | Comment »


Jul 5

Introducing “Razor” – a new view engine for ASP.NET - ScottGu’s Blog

Holy moly, the new “Razor” MVC View Engine looks like it’s about to bend over the web development community and lube it up.

ASP.NET MVC becomes faster, more powerful and less like a Microsoft product every day…

Posted via email from The wonderful world of mrgeesbigcircus | Comment »


Page 1 of 8