When did you last ask an Aardvark a question?
Not too long ago, companies chased the illusive ‘Web 2.0′ buzz-phrase which seemed to only consist of glossy icons and sticking ‘BETA’ somewhere on your new site design. These days it’s ’social networks’ that is the ‘must-have’ feature for the success of any new online service.
Social networks have their uses in finding out what your friends and contacts are up to, but what if you wanted to unlock the power of these connections?
Aardvark seems to have hit the nail right on the head with their offering to the social network revolution. Their service, usable via their website, email, IM and now iPhone, aims to get you an answer to any question you care to pose to the collective brain of its connected users. Sure, you can post a question to Twitter and hope one of your followers (or someone searching at the time) can answer it. Chances are you’re just shouting into the darkness. Alternatively, you could just hit your favourite search engine and try any combination of keywords to try get a tailored answer.
Aardvark increases the likelihood of a better answer to your question through three important advances over any other social network
- You can list topics which you’d like, or would feel able to, answer questions about.
- You have ‘The Vark’ as a central co-ordinator who looks at questions, figures out what they might be about and goes off to find people who might be able to help. Through a single contact you interact with everyone on Aardvark.
- The most important difference over any search engine is that Aardvark connects you to real people. Sure, people are biased and fallible but you get the power of the human mind interpreting your question. The lateral thinking and real-world experience this brings can far outweigh a search engine gleefully returning 2 million results when all you wanted was an answer.
So I’m a convert. Aardvark is an exciting way of getting and giving assistance without it feeling like hard work. There is a fantastic community which has been brought together by a dedicated team of people over in San Francisco. And one of the reasons there’s fuel to this idea is that they listen. The Community section of the Aardvark website allows users to suggest new features which the team have started to work into the product.
There are other sites out there offering answers, like Yahoo Answers and others, but they present answering questions in a far more selfish manner. By offering ‘points’ for answering questions, users find questions by browsing around a website looking for easy pickings. One sentence answers on questions getting no attention, along the lines of the dreaded forum post answer of ‘me too’, eventually leads to a user getting the points for being the only one to bother answering.
Thankfully, as Aardvark generally approaches things from the other end by asking for topics to answer rather than leaving users with free time on their hands to climb pointless ranks; the whole experience is much more rewarding. You just get answers fast, which at the end of the day is all you need from the service. By allowing access to the service through many means, it’s easy to interact with it wherever you are. The new iPhone application (available through the iTunes App Store) supports push notifications so you can get your answer even faster on the move.
If you’ve not joined the growing Aardvark community yet, I’d advise you give it a try. I consider it a part of my daily toolkit for helping to find answers to problems, and giving a little help back too in my spare time.
Plesk 9.2.1 Greylisting
In case, like me, you’re having trouble enabling the newly supported ‘Greylisting’ feature after upgrading Plesk to 9.2.1, I managed to find the solution.
Every time I tried to enable Greylisting I got
Failed to exec glmng cli. file does not exist or is not executable: / usr / local / psa / admin / bin / glmng
It seems that the Updater from the Control Panel fails to complete all the tasks necessary. Thankfully I found a blog post on huschi.net which explained how to complete upgrading manually.
/usr/local/psa/admin/bin/autoinstaller
and then proceed through the remaining screens using ‘Enter’ for the default Next Page action.
After that the option to enable Greylisting doesn’t produce the error.
Speedy MIME Image decoding using HTML
I’ve been working with our Esendex Email MMS service which forwards any inbound MMS picture messages to an email address. As the picture is MIME encoded I needed a quick way to check the image included.
Thanks to a post by Zmeeagain I found the very handy trick of pasting the Base64 encoded text into an HTML Image tag to quickly render the message in a web browser.
Simply create a new HTML file and paste your Base64 text replacing BASE64TEXT and ensure that the data: type reflects the MIME encoding type of the attached image (image/jpeg in this case):
<html><body><img src="data:image/jpeg;base64,BASE64TEXT"/></body></html>
Save the file as an HTML document and open in your favourite browser. Voila! Simples, hey?
Avoid Google keyword detection picking up Firefox ‘aq=’
For those of you who are monitoring or stripping keywords from referrer strings from Google you may be seeking out the query string parameter ‘q=’.
Beware that a simple string match on ‘q=’ could lead you to match on the additional Firefox parameter ‘aq=’. This appears in a Google referrer string if the search terms were originally searched for from the Firefox searchbar.
The aq=t parameter was added by Mozilla in 2006 at the request of Google.
Make sure that any string matching you’re doing is looking for a preceeding ampersand (&) or question mark (?) so that you match the ‘q=’ parameter correctly.
TechEd Day 2: Summary
Today was the first fully packed schedule. Lots of notes still to write up but here’s a quick overview of what happened.
First off I went into the Building Rich Web Applications using Silverlight 2 session. Kathy introduced a 200 level session on what kinds of things Silverlight 2 can do over Silverlight. The answer basically is a heck of a lot more. Most importantly now having been built on top of the .NET Framework, it means that you can leverage the power of the framework with the rich presentation controls offered through Silverlight.
The use of a video streaming site as a demo kept enough attention going. I’d have preferred more time to examine the code she’d used to pull in XML data and then format for display but it was an overview session. Her ‘Hola World’ application was very effective when using a VideoBrush to quickly paint media assets into simple controls.
Second session was on Team Foundation Server Work Item Use and Planning with Chris Menegay. If Chris gets paid on words per minute, he’ll be making a fair buck! He crammed a heck of a lot of useful information with his experience in the field into a standard Breakout session. Some of his best practice tips were very valuable and it made me realise that anyone using a Team Project template out of the box really needs to understand what they’re doing first. No one template will necessarily fit the business demands straight away: for example, the order in which states of tasks may progress from Active to Resolved to Closed may change between businesses. It’s made me want to go download a project template and go rooting around in the XML again to understand everything that’s going on under the bonnet. Chris’ other very useful suggestion was to make sure that any Process Template editing should go into its own Team Project in TFS to manage changeset history rather than just hacking XML.
After lunch, I went to see Roy Osherove’s ‘Sense and Testability’ talk in the auditorium and had a brief chat with Sarah Blow of Geek Girl Dinner fame (the power of Twitter) and it was great to meet her and put a face to the name. Roy’s talk was excellent and it’s already sent me off researching new methods of unit testing. I was pleased to see some of the approaches we’ve been taking recently in using public properties to allow for mocking, rather than prescribing Constructor overloads (mandatory vs optional) were mentioned.
The other interesting suggestion was to make every class a virtual class. Whilst seemingly going against the OO principle of encapsulation, it does allow for test methods to be over-ridden. For example, if you had a method which simply retrieved the current time, overloading this virtual method in a test class derived from the virtual base class would allow you to return any time you chose.
Neil had been to a Scrum session and it bears a lot of similarities to how we’re working currently, anyway.
Finally at the end of the day, we both went to ASP.NET MVC Practices which was a pretty deep dive into areas which are still pretty much up for debate as the toolset moves from Beta towards RTM. Maybe Hadi Harini had firmer information than is available from the MVC website.
A very useful tip was to write tests to test your Routing class and to remove the default catch-all route (controller/action/param) that is created to avoid patterns that you want to fail to match then serving back a page that maybe not suitable.
More to follow once I’ve decrypted and rewritten my notes.
TechEd Day 1 : Keynote speech
As we were ushered in to an imposing auditorium It seemed the three DJs and VJ were entertaining a lonely, featured HP server rack on stage.
Having a tiny special ‘Early Bird’ section down the front did seem a little pointless when I’d hazard a guess that well over 70% of delegates would’ve been signing up for the conference straight away.
The stage was very, well, orange. The black auditorium with its glossy black camouflage ceiling makes the whole place feel like we were about to get a paintball briefing rather than a Microsoft presentation. Loud percussive beats start about 10 minutes to go to fire up the spirits. It did start to work too.
TechEd : Day 1
Greetings from Barcelona. Today started in the afternoon with the keynote speech from Jason Zander which has introduced new functionality in Visual Studio 2010. A very honest bloke who was brave enough to demo us Visual Studio 2010 on Windows 7. Not just taking the safety off, but practically taking the tightrope away as well.
I’m going to write up my notes as I go, but the fact that Visual Studio 2010 has had its IDE re-written using Windows Presentation Foundation means that a lot of exciting new add-ons are coming. Also the ability to specify transforms for web.config files is a welcome addition after the frustration I’ve had with Web Deployment projects.
Well, its the Welcome Drinks party here at CCIB in Barcleona now so I’m off for more ‘networking’ (where networking = free beer, nibbles and XBox 360 stands
) It’s hard work being a developer on the cutting edge of Microsoft technology you know ?
If any of you are twittering and are here, send a message to JBJon and I’ll try and catch up with you.
Gracias!
Using MSBuild to deploy a website cross-domain
The task: to have an automated build process which would take the fresh built files and deploy them on a remote web server.
The challenge: the remote web server was not in the same domain as the machine with Team Build on it.
Initial research found plenty of helpful advice on how to do a copy using the <Copy> task. I tried various different methods of specifying the files I wanted to copy but all hit the same trouble. I tried adding on some community extensions to MSBuild to FTP Copy but didn’t get far with that as it seemed to want to transfer only one file at a time.
In the end, our Operations Team came up with the answer in the form of a Trust Relationship between the two domains in question. Now, my share was browsable without needing to enter remote domain credentials.
So the Target I wrote overwrites the behaviour of the ‘AfterDropBuild’ target and looks something like this:
<Target Name="AfterDropBuild">
<CreateItem Include="$(DropLocation)\$(BuildNumber)\Release\_PublishedWebsites\PROJECT\**\*.*">
<Output ItemName="ItemsToDeploy" TaskParameter="Include"/>
</CreateItem>
<Message Text="Found items: @(ItemsToDeploy,'%0d%0a')" Importance="high"/>
<Copy SourceFiles="@(ItemsToDeploy)" DestinationFiles="@(ItemsToDeploy->'\\REMOTESERVERIP\PROJECTDROPSHARE\%(RecursiveDir)%(Filename)%(Extension)')" /> </Target>
Esendex Last Minute Sprint
In a change to normal development activities, this afternoon saw us do a bit of last minute preparation for a triathlon that Esendex is the headline sponsor for. It will, I guess, be business as usual on Sunday too for the Esendex Last Minute Sprint at Southwell with both Adam and Julian leading the way forward in the overall times for the eight staff members who will be competing.
Today we had a visit from Richard Stannard which was very worthwhile. Chatting to a world class althete was not only inspiring but he was full of useful advice. It has made the whole prospect of swimming, cycling and running at Silly-o’Clock on Sunday morning less daunting. I say morning, I think I need to get there just after the milk does, so its more a.s. (Apres Sanity) than a.m.
There have been times at the gym these last few weeks that I did question my own sanity for attempting this but it has been a great goal to aim for.
The motley crew from Sales, Operations and Development are joining in with the semi-professionals and this will be my first triathlon. I think Julian has such a good swim time that he’s starting on Monday (I joke!). Despite gunning for the wooden spoon prize I am just looking to have fun and make it around in one piece. Oh, and I’m also trying to aim to not be overtaken by Adam or Julian
Thanks to Ewan for his kind words of support. I’ll let you all know how I got on (if I have the energy to type!)
Remote Desktop Connection Smart Sizing
If you use Microsoft’s Remote Desktop Connection (RDC) a lot then you might be interested in an option that’s not available via the GUI. ‘Smart Sizing’ allows you to scale the screen to the size of the RDC window rather than the default option where the remote desktop gets cropped.
If you open a new RDC instance and expand the ‘Options >>>’ button you see the following screen :
At the bottom of the dialog is the option to ‘Save’ the current settings. Fill out as much as you normally would to connect to a remote box and then Save the file onto your local machine somewhere.
Edit that file with the text editor of your choice and add the following line to the bottom of the .rdp file you saved:
smart sizing:i:1
This will force RDC to scale the window when you shrink it and will stretch back to full screen when you click ‘Maximise’.
I create a collection of these .rdp files for each of the servers I need to communicate with and have a directory of them as a custom toolbar on my task bar.
Just remember to start your RDC session from your saved .rdp file to take advantage of the scaling trick



