Saturday, May 30, 2009

Google Wave - Developer Preview

At the latest Google IO conference Google announced their new Wave application, currently hosted on a sandboxed Google Apps for the (very) priveleged 4000 devs at IO. See the best Dev Conv video since the iPod launched here:
And, a bunch more links - the places I've been reading/watching -up on Wave...
I'm completely blown away by the Developer's Preview video on Youtube already - not even half way in - and I can imagine people connecting, editing, reviewing and mashing up conversations in all forms - web, mobile, tv, everywhere! It's so easy to picture someone picking up the Wave service from a blog page, news article page or (what will used-to-have-been) SMS and just deciding that because they can leave text, photos, videos (live and recorded), maps, snippets of anything etc, that they just begin considering it "the way I communicate with anyone who isn't just in front of me right now." Even if they are, it's easier to share photos or any media with those around you, without needing anything more than a wireless connection (forget bluetooth or even peer-to-peer wifi, etc) simply because adding people to your Wave gives them all the content you've got - along with your messages to them (both open and private!)

Friday, May 29, 2009

BBC: 10 Things You Need To Know - Losing Weight

Really interesting program from the other night about losing weight and how some of the things we're led to believe are wrong, some are slightly off centre and, more to the point, how to do it right with a reasonable amount of will power:

Dilbert, Users And The Search Results Halo Effect...

Dilbert on...

Thursday, May 28, 2009

Friday, May 22, 2009

When Would You Use GUIDs As Primary Keys?

Here's a question which I'm sure comes up in the odd interview or developer water cooler debate:

There's many answers, but the quick win is: "When using a de-centralised database."

Thursday, May 21, 2009

One Post To Bind Them All: Security, Antivirus And Firewalls

Thought I would create a single post for keeping a log of all security 'best-of' links, (hopefully) updating and bringing it to the top when necessary...

First, lists:
Next, articles:
Blog entries and expert advice articles:
Finally, direct downloads:
Commercial anti-virus applications, most with free, online utilities:
If you have other links/advice, please leave comments...

LifeHacker, Stuff You Didn't Know And Links

The latest from LifeHacker - VLC changes you probably didn't know about and how to stay safe from Google:

Tuesday, May 19, 2009

Scared? RTFM! Be Informed And Don't Kill!

People should be more informed. That might be easy to say in an information age when there is too much information (or "info"; go figure) to cope with (see the existence of Twitter as proof of information curbing) sensibly. Reading articles is, believe it or not, the better way to stay informed simply because glib and media hungry headlines are the quick start for selling papers and page hits.

If you don't believe me, check out Cracked's latest: http://www.cracked.com/blog/dont-listen-to-jenny-mccarthy

I completely agree with the article. If the media were to treat their content with respect they would title appropriately - and don't tell me that a good title is hard to generate from any story. If CNN and FOX can broadcast the thinly veiled rubbish they headline as even news-worthy (see just about any Hate By Numbers on Cracked.com for evidence.

Explorer Improvements

Wednesday, May 13, 2009

London To Brighton Bike Ride For British Heart Foundation

As the 58 mile bike ride from Clapham Common to Brighton Pier on the 21st of June draws ever nearer, again, I would like to remind everyone that if you're not taking part you can still participate by sponsoring me...
I really appreciate all sponsorship and though I am not taking special requests I do promise to do my best and get there as fast as I possibly can.

This year I'll essentially be racing my brother, whose only mode of transport is his bike, so for me, whose typical mode of transport is the train, this is a challenge! I don't know how he'd fare in the dojo, though.

If you do want to take part, please visit BHF's website where, for the first year ever, you can sign up online:

Get Rid Of Spam! Temporary Inbox Heaven!

So, with the demise of Temporary Inbox I went searching for some new site which offer completely dynamically assigned email addresses. These are basically mail servers which accept any email sent to their list of domains, store them for a given period, not always keeping attachments, and then delete them. This means that any address is always valid, for example bubble@mailinator2.com or eriguiegb@mailinator.net are both valid emails. Also, checking their inboxes is as simple as going to the host site and entering the email address you want to check.


Of course!

Tuesday, May 12, 2009

T-SQL "WITH NOLOCK"

Ignoring the locks SQL places on tables during transactions can be useful, but be careful:

LifeHacker Daily And Recycle Bin On Task Bar

Ok, so I was reading today's LifeHacker articles and here's a thought which never occured to me before: (Windows 7 has) A recycle bin icon on the taskbar for dropping things straight to it without being able to see the desktop:
Now, if you're like me and put things in the bin by hitting delete, this won't impress you too much. However, there are a lot of people out there, mostly ex-Apple and GUI-obsessed users, who "drop to delete". This is for them. And those who can't be bothered to use the keyboard(?)

I'm also adding a right-nav link to Wiggins' Hacks & Tricks tag page:
Now the dailies...

Monday, May 11, 2009

chrome-ui://

Google's Chrome browser has a lot of hidden stuff. Some things I've found are:
And here's some other easter eggs:

Web Design Prototyping

Found this from twitter, allowing you to prototype website design:

Thursday, May 07, 2009

Ballpoint Pen Art

Ran across this on StumbleUpon.com and just had to post it because this artist really has talent:

Wednesday, May 06, 2009

BrĂ¼no

Saw the preview showing of BrĂ¼no last night, Kingston Odeon, and can definately say that if you didn't like Borat you'll hate BrĂ¼no!

Started well, got good and ended disturbingly :) The **** helicopter is not to be believed, especially when it then says, "BrĂ¼no". After that, the most memorable quote has to be, "Have a good life" and hardest to watch is either the whipping scene at the swingers party or the gay sex in the cage fighting cage - especially when the flying chair narrowly misses both their heads!

All in all, very funny movie that is an ideal follow up to BrĂ¼no, just finer tuned :)

Some fun for you:

Nasty Future Food.


Nice. I Like You.


http://www.booooooom.com/2008/12/01/project-5-submissions-part-7/


Tuesday, May 05, 2009

Paging In T-SQL (SQL 2005)

Needing some paging ability for pre-XSLt operations (to keep it all database-side and avoid the hard work in C#) I found this neat little post which helped me create some very compact and efficient paging T-SQL:

LifeHacker and Best Utilities

Latest from LifeHacker, preceded by some awesome utilities links:
And now the awesome recent:
And my latest tools downloads:

Friday, May 01, 2009

Alternate Row Colouring In XSLt

So, trying to get rows coloured alternately in an HTML table is easy in .NET, just a styling option, but in XSLt it's a little harder. Check out this post for an easy solution:

Ctrl+Left Shift Vs. Ctrl+Right Shift = Chrome Justifying

I've been battling with Google Chrome for a while because it keeps messing about with my text entry on web forms. The text justification just goes wrong after I do a certain key combination and until today it completely baffled me.

Finally solved it: Ctrl + left Shift = Left justify. Ctrl + right Shift = Right justify.

I don't really understand this even existing as an option, but I also seem to remember reading about it, thinking it was a good idea and turning it on. Now I can't remember how to turn it off, but as soon as I find out I'll post it here! Grrr.

Posting Code On Blogger/BlogSpot.com

I've been trying to post code to my blog for ages. Sometimes I suck it and just hand craft all the little symbols which need manipulation, but today I was trying to post a shedload of XSLt and there ain't no way I'm going through that by hand!

So, a quick google about and here is a couple of really good links:
Having said that, LiveWriter is pretty good at posting code and is my preferred weapon of choice.

[EDIT] Ah yes, the problem with LiveWriter is that it won't install on Windows Server 2003, as won't the other Live applications.

Date Formatting In XSLt

I wanted a date to be changed, essentially a string containing a date time. See my previous post for some good XSLt links, but here's my solution:
<xsl:call-template name="FormatDate">
<xsl:with-param name="DateTimeParam" select="@InvoiceDate"/>
</xsl:call-template>

<xsl:template name="FormatDate">
<!-- expecting datetime example: 2009-04-20T00:00:00 -->
<xsl:param name="DateTimeParam" />


<!-- reformat date param to be easier to use -->
<xsl:variable name="DateTime">
<xsl:value-of select="substring($DateTimeParam,1,10)"/>
</xsl:variable>

<!-- new date format January 20, 2007 -->
<xsl:variable name="year">
<xsl:value-of select="substring-before($DateTime,'-')" />
</xsl:variable>
<xsl:variable name="mo-temp">
<xsl:value-of select="substring-after($DateTime,'-')" />
</xsl:variable>
<xsl:variable name="mo">
<xsl:value-of select="substring-before($mo-temp,'-')" />
</xsl:variable>
<xsl:variable name="day">
<xsl:value-of select="substring-after($mo-temp,'-')" />
</xsl:variable>

<xsl:if test="(string-length($day) &lt; 2)">
<xsl:value-of select="0"/>
</xsl:if>
<xsl:value-of select="$day"/>
<xsl:value-of select="' '"/>
<xsl:choose>
<xsl:when test="$mo = '1' or $mo = '01'">Jan</xsl:when>
<xsl:when test="$mo = '2' or $mo = '02'">Feb</xsl:when>
<xsl:when test="$mo = '3' or $mo = '03'">Mar</xsl:when>
<xsl:when test="$mo = '4' or $mo = '04'">Apr</xsl:when>
<xsl:when test="$mo = '5' or $mo = '05'">May</xsl:when>
<xsl:when test="$mo = '6' or $mo = '06'">Jun</xsl:when>
<xsl:when test="$mo = '7' or $mo = '07'">Jul</xsl:when>
<xsl:when test="$mo = '8' or $mo = '08'">Aug</xsl:when>
<xsl:when test="$mo = '9' or $mo = '09'">Sep</xsl:when>
<xsl:when test="$mo = '10'">Oct</xsl:when>
<xsl:when test="$mo = '11'">Nov</xsl:when>
<xsl:when test="$mo = '12'">Dec</xsl:when>
</xsl:choose>
<xsl:value-of select="' '"/>
<xsl:value-of select="$year"/>
</xsl:template>

How To Count Elements In XSLt

In looking to count the number of instances of an XML element I was looking about for a piece of XSLT. Every example I came across had the xsl 'number' element within the 'for-each' element, which meant that the XSLT had to parse the element I was counting first. I didn't want to have a 'for-each' involved at all, but eventually I was in luck, and it's much easier that using a 'number' element:

<xsl:value-of select="count(elementname)" />

I was directed to this solution by experts-exchange: http://www.experts-exchange.com/Web/Web_Languages/XML/Q_21294193.html

However, if you do want to perform counting operations, this is an excellent starting point: http://www.w3schools.com/Xsl/el_number.asp

And for more general XSLt references:
I highly recommend D. Pawson's site as it is basically a massive list of examples and explanations for just about everything anyone would ever want to do in XSLt.

Also, of course, the http://www.developer.com/xml/article.php/3383961 article will tell you everything you need to know about traversing XML - especially useful if you are writing code which needs to build, navigate or parse XML.

Latest Links For Today... Awesomeness Abounds!

LifeHacker this friday... first the serious stuff: