Home

Advertisement

[ki|ry]an Code & Photography [entries|archive|friends|userinfo]
Kian Ryan

[ website | [ki|an]ryan ]
[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

Links
[Links:| Gallery ]

An Android App In 20 Minutes [Oct. 19th, 2009|12:48 pm]
This post appears on kian ryan - code, photography, bob available here. If you want to leave a comment, please do so on this page.

On Saturday I presented a short talk on building a basic android application in 20 minutes. This was the full process, from generating the shell project, to writing the code, generating the layouts, testing on the emulator, signing the application and uploading the binary. I wasn’t able to do this as “live” as I would have liked - I’ll perfect the routine in time for Barcamp Manchester, but the group did a good job of being a dummy audience.

For those interested the application is called “Barcamp Blackpool” (available on the Marketplace). It downloads the latest 20 tweets with the bcblackpool hash tag and displays them as a list. Clicking on an individual item will then launch a browser session showing the tweet on the twitter website. Basic but functional. The source code for the application is available on Google Code.

If there are other things people would like to see in a 20 minute Android demo - please feel free to comment on this post and I’ll see what I can do for Barcamp Manchester.


Social Bookmarking
Link

Barcamp Blackpool [Oct. 19th, 2009|12:19 pm]
This post appears on kian ryan - code, photography, bob available here. If you want to leave a comment, please do so on this page.

This weekend saw the first Barcamp Blackpool, held at the Blackpool Pleasure Beach. Many thanks go to @ruby_gem for organising the event, and to the various sponsors, including Yahoo for sponsoring the all important bar and Pixel Programming for ensuring we had a venue and noms. My apologies to to all those I may have caused hangovers to for the following day. We also managed to lose Phil Winstanley for a few hours.

Talks were wide ranging, from some light-hearted ones on upcoming social network Pokebook through to code reviews of the new W3C website and my own talk on building and publishing an Android application in 1 hour 30 minutes 20 minutes (code to follow).

Evening entertainment was provided by Paul Sylvester, who provided the BEST MAGIC SHOW I HAVE EVER SEEN (don’t let the website fool you). So much so, there’s speculation about hiring him for one of the next Geek Girl Dinners.


Social Bookmarking
Link

You know, XKCD is right… [Oct. 19th, 2009|11:05 am]
This post appears on kian ryan - code, photography, bob available here. If you want to leave a comment, please do so on this page.

XKCD - Bag Check

You know, it’s absolutely right. We’ve got so obsessed over security of liquids, toothpastes and belt buckles that people appear to have overlooked that laptops, iPods and mobile phones are potentially a hell of a lot more lethal. Maybe we should just point to all people with beards and laptops and scream “terrorist” instead.


Social Bookmarking
Link

Fundamentalists Welcome [Oct. 11th, 2009|10:16 am]
This post appears on kian ryan - code, photography, bob available here. If you want to leave a comment, please do so on this page.

Our industry is passioned and opinionated. This is a statement of fact. Be it Emacs vs Vi, Linux vs Windows, iPod vs … errr[1], people often fall in love with tools, philosophies and companies. And this is fine. Within the industry we call them “holy wars”, since the genuine fundamentalists have gone long past the tenets of logic and rationale (at least to the naked eye).

And like all good religions, their virtuous leaders are exalted[2]. Ballmer, Jobs and Stallman, each seen as personifications of the ideals they represent. Ballmer identifies with the corporate world, where big commercial software dominates. A big man with a bald head and a known temperament, he’s a figure people associate with boardrooms and big money. Jobs appears as a slight of a man, usually seen at keynotes with a trademark roll-neck and jeans he’s become the representative of design and cool, embraced by the younger generation. Stallman is another large guy, but rather than corporate groomed appears in t-shirts with long ragged hair and beard to match. A visual throwback to the hippy days, he comes with the embodiment of “free”, leading the free software revolution.

As any good personification of an ideal, their attitudes and ideas tally with their images. Ballmer has spoken repeatedly about the values of the corporate workplace and denounced free software as evil, Jobs speaks regularly on the functions of design and Stallman denounces any software or standards not truly free as evil.

And this is fine.

Because these contrasting attitudes set up a triangle of views with these figureheads and beliefs as cornerstones. There are those that will naturally gravitate towards these polarising opinions and those that will middle around the centre, or leaning between two points of view, subscribing to different tenants of each.

Some people will insist on using nothing but free software. Some people will insist on using nothing but beautiful, design driven products. Some people are driven by the business world and purely by suits and management. Some people may be primarily driven by business, but enjoy rollneck sweaters and iPods at the weekend. Some people may use free software on top of their proprietary systems. Some people may use free software on top of their business OS to talk to their design driven MP3 player[3].

And this is also fine.

The strength of a community is based upon the mix of people within it. Even within domain-specific communities, there will be a range of philosophies and beliefs which everyone will not subscribe to. And although we may occasionally decry these firm believers, and believe them to be as much a fundamentalist as their own religious leader we should respect (even if we disagree) their position because they provide the cornerstones of diversity for the community. The more diverse a community, the larger the range of interests and the higher the liklihood of intelligent (if sometimes a little crazy) discourse. The better the quality (not necessarily quantity) of debate, the more life exists within a community, and the higher the longer the community is likely to last. I would like to see those communities I take part in last for a very long time.

Humanist vs Belief
Free vs Commercial
Pragmatic vs Puritan
Emacs vs Vi

So I say welcome to the fundamentalists.
I say welcome to the middlers.
All communities need both.


[1] I’m kidding, there’s plenty of alternatives. I use a Sansa Clip myself. [2] For the sake of simplicity, I’m restricting the set to three. I realise that in reality the triangle is more like a multi-sided polygon, but it creates a more dramatic image this way.
[3] Did I get all the combinations there?


Social Bookmarking
Link

Internet Explorer User-Agent Strings [Oct. 1st, 2009|05:36 pm]
This post appears on kian ryan - code, photography, bob available here. If you want to leave a comment, please do so on this page.

Internet Explorer can be a right PITA when it wants to be. I’m using Thickbox to render on page dialogues in one of my projects. Thickbox relies on testing $jquery.browser.version for determining the version number of Internet Explorer.


!(jQuery.browser.msie && jQuery.browser.version < 7

Apart from the fact that it doesn’t always work. Below is what you would expect to be presented as a user agent string for IE8:

Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; GTB6; SLCC2; 
.NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; 
.NET CLR 4.0.20506; InfoPath.2)

So far today, I’ve seen three customers with the following string

User Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; 
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 1.1.4322; 
.NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; .NET CLR 
3.0.4506.2152; .NET CLR 3.5.30729)

Somewhere, somehow, the user agent string has become corrupted (and hence the MSIE 6.0). There’s some information on this available on Microsoft communities.

The way around this is to do some explicit regular expression checking on the useragent string. For those that didn’t know about this previously, it’s demonstrated by Jamie Thompson. He introduces a new property called $.browser.msie6 which is used to check for the presence of the IE6 string without the IE7 string.


$.browser.msie6 =
    $.browser.msie
    && /MSIE 6.0/i.test(window.navigator.userAgent)
    && !/MSIE 7.0/i.test(window.navigator.userAgent);

You then adapt thickbox.js to test for this new property.


if ( !(jQuery.browser.msie6)) { // take away IE6
    $("#TB_window").css({marginTop: '-' + parseInt((TB_HEIGHT / 2),10) + 'px'});
}

Which works great for IE6, great for IE7, fine for vanilla IE8 (which doesn’t suffer from the above bug), but falls down on corrupted IE8. Not to panic, simply adjust $.browser.msie6 to look for this additional string.


$.browser.msie6 =
    $.browser.msie
    && /MSIE 6.0/i.test(window.navigator.userAgent)
    && !/MSIE 7.0/i.test(window.navigator.userAgent)
    && !/MSIE 8.0/i.test(window.navigator.userAgent);

The downside to this fix is that if and when Microsoft comes out with Internet Explorer 9, then you’ll need to adjust this script again to take this into account. I therefore propose a slight departure, using regular expressions to test for values above 6:


$.browser.versionOver6 = function() {
    var re = /MSIE (\d+)/ig;
    var match;
    while (match = re.exec(window.navigator.userAgent)) {
        if (match[1] > 6) {
            return true;
        }
    }
    return false;
}</p>

<p>$.browser.msie6 =
    $.browser.msie &amp;&amp;
    $.browser.versionOver6();

This modified version should work on all future versions of IE. Browsers which report a MSIE 6.0 as well as a MSIE 7.0, MSIE 8.0, MSIE 9.0, etc will now also report as not IE6, which should make filtering off IE6 fixes a little easier.

Enjoy.


Social Bookmarking
Link

Guathon - After Tea [Sep. 29th, 2009|03:44 pm]
This post appears on kian ryan - code, photography, bob available here. If you want to leave a comment, please do so on this page.

Here we go Visual Studio 2010 & ASP.NET 4.0

  • Lots of content not being covered. At least he’s clear about this.
  • Now built on WPF - woof. Multi monitor support.
  • Demos being done on the MVC codebase :-)
  • Code navigation - select param, highlights all instance usages.
  • Intellisense - Mid term search, no longer need to type start of term. Filters based on camelcasing woot. Someone has been using Quicksilver.
  • Oh dear - resharper is in trouble. Navigate to - “goto Type”. Although now quite as neat - needs keyboard interaction.
  • View call heirarchy - more Resharper features :-) (althought being able to keep searches around is a nice feature.
  • Col based code selection as well as line selection.
  • TDD support - “Consume First”, stops intellisense from attemting to autocomplete when writing not-yet-existing classes. Then becomes aware of class and allows you to define/work with properties. Nice.
  • TDD support - generate class (wait - this wasn’t in 08? More resharper?)
  • MY GODS - 2010 really is 2008 + Resharper (so far). Remind me to reiterate my love for Resharper.
  • CodeSnippets in VS2010 feel like completion in TextMate. Nice mechanism. Extended for ASP.NET, download extra snippets.
  • #scottgufact - Scott Gu works at Redmond, you don’t.
  • Debug history - useful landmarks in lifecycle.
  • Historic debugging - allows step forward/step back through source code.
  • Test tool - run on client, captures information on state of crash. Sends state back to developer. Developer can debug from the state of the crash. That’s pretty damn neat. Can also capture screenshots/video.
  • .NET 4.0, new version of CLR (guessing because of dynamics, etc).
  • Visual Studio 2010 filters intellisense and properties for target framework. Uses reference libraries.
  • ASP.NET 4 - emphasis on clean HTML and SEO (routing, user configurable ClientIDMode), etc.
  • Are we back on web apps vs web sites? (Scott jumped straight to web app rather than web site).
  • New web app template looks good. Jquery, logins, etc included out of the box. Very nice.
  • ClientIdMode - Predictable is the new black (and will save front end developers having migraines when given ASP.NET apps).
  • CSS rendering for controls - YES! THE TABLES ARE BANISHED! RenderTable=false
  • Finer grained control over the viewstate.
  • Improvements coming to the WYSIWIG designer - who uses the designer for ASP.NET? Really?
  • Routing support for ASP.NET 4 - quite elegant :-) Page.RouteData.Values. Doesn’t to URL rewriting, more subtle mechanism.
  • IIS SEO Toolkit. Analysis tool for SEO optimisation of sites. Target site does not need to be running on IIS. Can perform some optimisations to IIS sites - hence linked to IIS manager.
  • It looks like VS 2010 javascript support no longer sucks. A seriously robust engine. Involves intellisense which can keep track of quite impressive object definition at design time. Woot!
  • ASP.NET Ajax - new things for those people that use it (I’ve never got on with it).
    • ADO.NET Entity Framework - more T4 support good. Model first and POCO to boot.
  • Apparently LINQ 2 SQL is not dead - improvements coming. I remain sceptical.
  • Design surface no longer has a “dump and replace” attitude. This may rendel DBML Tools redundant.
  • Inbuilt fake support, reliance on T4 - looks like MS is buying hard into T4 for code gen. I see this as a positive thing.
  • I admit - the chart control is cute :-)
  • WAIT? Multiple config file support - build config dependant. I do this already! I will no longer be special! Don’t like deployment support from within VS, prefer to do it clean from a build server.
  • Release specific configs only contain overwrites - this is useful.
  • If you can tie the Deployment Projects up with build servers (I’m looking at you CCNet), you’ve got a rather powerful test & deployment environment.
  • Seriously folks - this is one of the really nice things…

[Please note these posts are done from my G1. Typos and errors may/will/are included].


Social Bookmarking
Link

Guathon - Before Tea [Sep. 29th, 2009|01:17 pm]
This post appears on kian ryan - code, photography, bob available here. If you want to leave a comment, please do so on this page.

Covered so far:

  • Websitespark (we know about this already
  • Web Platforms Installer (Apt for windows - this looks good - can developers submit apps to it?)
  • MVC (we’re here for two hours on this - basic intro and new stuff on 2.0)
    • Support for jQuery.validate in MVC2
    • (Usual MVC basics - saw this at Mix 07)
    • Humm, routes supports reg-ex. Is this new to 2.0?
    • Ahh - scaffolding, etc is T4. That’s been an itching question. I severely like the layout of the default generated views.
    • MVC2 - new “filter” attributes. [HttpPost] replaces [AcceptVerbs(Http.Post)]. Small but nice detail.
    • Ohh, you can mark which attributes are bindable in the class - you don’t have to do it in UpdateModel.
    • “buddy class” - way to get around partial method limitation. Haven’t seen this before… Link the buddy class to the type class using [Metadatatype(typeof(buddy))]
    • Er, okay. This is new stuff in the validation. Direct validation attributes using the buddy class. COOL! System.ComponentModel.DataAnnotations.
    • The binding has changed quite a bit. I like the new architecture, much less messy, much stronger.
    • MicrosoftMvcJQueryValidation.js <– nice one.
    • Complex validation - base off a webservice.
    • New helpers: Html.EditorFor, Html.DisplayFor. Strongly typed lambda syntax - compile time checking.
    • Templates allow override of HTML generated for EditorFor and DisplayFor. Uses partial views. Name partial view to type (e.g. Decimal). Drop in “EditorTemplates” folder. Can be applied to shared folder and/or view specific. Nice.
    • Can also generate templates not related to type, pass to “EditorFor” as a parameter. Also nice.
    • Can use the buddy class with [UIHint] attribute to specify type to field. Big emphasis on DRY. Ohhh nice.
    • Whole model can be CRUD rendered on the fly. [ScaffoldColumn] can be used to inclue/exclude properties.
    • Unit testing time… First up the unit testing sales pitch.
    • “Vs 08 adds all this value added … crap” as the Gu goes mad with the delete key.
    • Unit testing models, unit testing controllers (nothing new here so far).
    • Simple testing on controllers to ensure they render views, etc.
    • Here we go - the hiccups with tight binding to the DB for tests. Ohh, dependancy injection.
    • IService, Db imp of service. Pass into constructor.
    • Use 3rd party dependancy injection or “poor mans - pass through the controller”.
    • Pass collection of objects to “FakeService”. How should you happen multiple services?
    • No shame in writing tests to test the database and tests against the fake services.

Social Bookmarking
Link

First Techcrunch - Now Forbes [Sep. 28th, 2009|09:49 am]
This post appears on kian ryan - code, photography, bob available here. If you want to leave a comment, please do so on this page.

Polanski

Apparently, hitting the “publish button” on articles that aren’t finished, or in some cases even started is all in vogue this year. First of all techcrunch manage foot-in-mouth syndrome over Spingate, and now Forbes has managed one, publishing an internal memo or note over the Polanski affair. Link available as long as it’s live.

This begs several questions:

  • Who is Frank?
  • Who are the sources in the Justice Department.
  • Does no one even look for the draft button anymore?

Social Bookmarking
Link

Fencing for Geeks [Sep. 23rd, 2009|08:06 am]
This post appears on kian ryan - code, photography, bob available here. If you want to leave a comment, please do so on this page.

Sheffield Open 2006

Since a few people have been asking recently… I am currently coaching at two clubs in the North-West: Manchester and Altrincham. Beginner geeks are welcome to turn up to either, and will be welcomed by a smile and a circuit board.

Manchester - Manchester Fencing Club
This club caters for all fencers from beginners to international.
I’m here every other week (other coaches are availible at other times). Ping for details.
West Hill School, Stalybridge, SK15 1LX
Thursday 1900-2130

Altrincham - Salle Kiss This club is a new club, currently catering to beginners. A good environment for beginners to feel comfortable.
Altrincham Grammar School For Boys, Altrincham, WA14 2RS
Wednesday 1900-2100

Fees vary from club to club. For your first session, stick a tenner in your pocket and you’ll get plenty of change (I don’t handle money and can rarely remember what fees are from one week to the next).

I’m horribly unfit!

Isn’t that the point? Seriously, we cater for all shapes, sizes and fitness. Turn up and give it a try. The sport is fun, addictive, painless (mostly) and we provide all the kit you need. Just bring yourself, a pair of trainers or squash shoes, tracksuit bottoms and a t-shirt. You’ll want some water and a towel as well.

To make it a bit more fun (and to leave out those first week blues), why not organise a couple of you to turn up together?

Oh, and you’ll get to hit me in a large leather jacket repeatedly. What could be more fun?

Interested?

Drop me a quick e-mail or comment to let me know you’re coming. It’s also useful to know how big you are (chest size and height) so I know if I need to grab some larger jackets from elsewhere.

But I’m a Foreigner!

Not a problem - there are plenty of clubs out there. Have a look at the British Fencing Club directory, and contact the club secretary (using that old-tech thing called a phone). That’s why they’re listed.


Social Bookmarking
Link

Ecommerce Headaches - Prices & VAT [Sep. 21st, 2009|03:05 pm]
This post appears on kian ryan - code, photography, bob available here. If you want to leave a comment, please do so on this page.

Hector the Tax Inspector I felt this warranted a blog post.

I’m currently writing an e-commerce system for some very nice people which is quite literally all-singing, all-dancing. When we originally wrote the prices part of the system, we had a very serious conversation about how pricing and VAT would be handled. It went something like this:

Client) We want to store prices inclusive of VAT.
Me) Are you sure? Inclusive of who’s VAT?
Client) We want the prices to be nicely rounded, and then we take the VAT off the total price.
Me) Are you sure? This has some interesting international implications.
Client) Yes, we’re sure. Here - go do pretty things.
Me) Ok.

Seems fair enough. They want pretty rounded prices on the site which meant they didn’t have to think about VAT. Which is great for working in the UK. Then I received a change request asking us to display the VAT dependant upon which country the user was purchasing from. This would still be calculated as a percentage of the earlier specified total price.

Me) So if the user’s country has a VAT of 90%, you’re happy to only receive 10% of the total sale value?
Client) Erm…. Ah.

This is a little extreme, no-one as of yet uses a VAT of 90%. The UK has a rather modest 15%, but countries such as Norway have a rather more eye-watering 25%. Admittedly, if you’re shipping to Panama, you’re quids in, since VAT is only 5%.

There are several different ways pricing and VAT can be managed on an e-commerce site. When I brought this topic up in an IRC channel I frequent, I thought the following exchange illustrated the complexity and confusion rather nicely:

15:17 <@ccooke> kian: you need to store the VAT on the exact item at the exact moment it was stored.
15:18 < kian> ccooke: no you don’t.
15:18 < kian> ccooke: hold. for which scenario. a, b or c?
15:19 <@ccooke> which one’s which?
15:19 < kian> ccooke: a) static price, flexible VAT b) static base price + UK VAT, remove VAT add countries VAT, c) Price Ex VAT + WhateverVAT, d) sod this - pub.
15:20 <@ccooke> d!
15:20 < kian> I’m with you. Be there in three hours.

So, for your interest and ponderings, here are the three options I see:

Fixed Price, Flexible VAT

Price is stored, inclusive of VAT. VAT is calculated as a percentage of the price at point of sale with respect to the user’s country. So if you buy from the UK, you’re paying £100 of which 15% is VAT and if you buy from Norway, you’re paying £100 of which 25% is VAT.

Pros: Nice pretty prices. Cons: The amount of money you return from each sale is dependant upon where the user purchases your item from.

Price + “Home” VAT, Flexible VAT

Prices are stored, inclusive of “home” VAT. When calculating prices for foreign countries, the VAT for the home country is deducted before adding on the VAT for the user’s country. So if you buy from the UK, you’re paying £100 of which 15% is VAT, and if you buy from Norway, you pay £108 (100 * 1.25 / 1.15 ) of which 25% is VAT.

Pros: Pretty prices for home country, protected base price for foreign country. If home VAT rate changes, prices remain same (gain or loss dependant on home VAT). Cons: You could end up with some odd prices for non-home countries.

Price Ex VAT, Flexible VAT

Prices are stored, exclusive of any VAT. VAT is calculated on the shop at run time dependant on the user’s country. So if you buy from the UK, you’re paying £115 of which 15% is VAT, and if you buy from Norway, you pay £125 of which 25% is VAT.

Pros: Your base price does not fluctuate, therefore the value of the VAT is irrelevant. Cons: Potentially ugly, non marketing friendly prices. Price changes on VAT changes.

We’re still debating which one of these is the best option for the system we are currently building. We are currently using “fixed price, flexible VAT”, but this position may change as we delve into the implications more deeply.

If you’re still with us at this point, well done. I’ve spent an hour trying to get my head around this rather prickly topic, double checking import/export and VAT regulations as I go. But its a good example of how something so initially clean-cut as product pricing can lead into a headache of trouble.

It’s all about scope.


Social Bookmarking
Link

Android 1.6 - Brings Awesome Bar [Sep. 21st, 2009|08:40 am]
This post appears on kian ryan - code, photography, bob available here. If you want to leave a comment, please do so on this page.

The Android 1.6 API has now been released, and with it is coming one feature which outshines all others. The “Quick Search Bar” provides instant access to local phone and Google results in near real-time.

Basically, it’s spotlight for Android, launched as a widget from your home screen. I can see this really becoming the central hub of any phone.

The new marketplace looks a hell of a lot better as well.


Social Bookmarking
Link

Log Parser Is My New Best Friend [Sep. 11th, 2009|11:24 am]
This post appears on kian ryan - code, photography, bob available here. If you want to leave a comment, please do so on this page.

SEO may be something of a dark art, but even if we don’t practice it, as web developers we’re usually responsible for putting into place the mechanisms that allow the Mouldy-morts to practice their forbidden forms. Recently, that usually consists of dropping analytics code onto a page to track your users every move, but what do you do when someone’s “forgotten” the analytics code, or it fails for some unknown reason?

Step up to the plate server logs! Both IIS and Apache quite happily dump their site logs for you to parse through them. But this is where the fun bit comes in, since they can get quite large. How large? This morning I’ve had to wade through 102GB of logs. Most unix monkeys will probably laugh at their windows using counterparts, and with their long hair and sandals decry, “102GB! Hah, I eat 102GB of server logs for breakfast with my organically grown shredded wheat!”. And yes, with Perl, awk and sed, 102GB is pretty much nothing. But you don’t tend to have these tools easily accessible on a window box, and if you’re messing around on someone else’s Windows box, you want to create the smallest footprint possible.

And here’s where Microsoft has been quite clever with a little known, but very powerful tool called LogParser. Log Parser provides you with SQL-style syntax access to the data contained in those log files and can output it in a range of formats from CSVs through to charts. I’ve been playing with it most of the morning. It’s nice.

Install it, add it’s location to your path variable and the log world is your oyster. Open a command prompt and traverse to your IIS log directory (mine is at c:\iislogs) and execute the command using the following:

logparser -i:iisw3c -o:csv "{insert-sql-query-here}"
or
logparser -i:iisw3c -o:csv file:query.sql

-i:iisw3c tells log parser its looking at w3c formatted log files, -o:csv to output as CSV and you can either present your sql inline or reference an external file. I’ve listed a few examples below to get you started:


-- Return page hits for all aspx pages handled from the beginning of the year to today in a given directory.
SELECT COUNT(*), cs-uri-stem 
INTO hits.csv 
FROM *.log WHERE EXTRACT_EXTENSION(cs-uri-stem) = 'aspx'
AND cs-uri-stem LIKE '/subdirectory/%'
AND date between timestamp('2009-01-01 00:00:00','yyyy-MM-dd hh:mm:ss') 
    AND timestamp('2009-09-11 00:00:00','yyyy-MM-dd hh:mm:ss')
GROUP BY cs-uri-stem</p>

<p>-- Return number of hits for different query string tokens
SELECT COUNT(*), EXTRACT_TOKEN(cs-uri-query, 0, '&amp;'), EXTRACT_TOKEN(cs-uri-query, 1, '&amp;')
INTO search.csv 
FROM *.log WHERE cs-uri-stem LIKE 'Query.aspx'
AND date between timestamp('2009-01-01 00:00:00','yyyy-MM-dd hh:mm:ss') 
AND timestamp('2009-09-10 00:00:00','yyyy-MM-dd hh:mm:ss')
GROUP BY cs-uri-stem, EXTRACT_TOKEN(cs-uri-query, 0, '&amp;'), EXTRACT_TOKEN(cs-uri-query, 1, '&amp;')

And here’s a few links to other people who’ve done more with it than I:


Social Bookmarking
Link

Bolton Bazaar (7th - 8th August 2009) - Free Tickets [Aug. 3rd, 2009|09:33 am]
This post appears on kian ryan - code, photography, bob available here. If you want to leave a comment, please do so on this page.

My partner, Cat Ashton is doing the photography for the Bolton Bazaar this year. The bazaar is a celebration of the cultural mix of Bolton’s communities. You can see some of the photographs from the rehearsals on this link.

There’s some coverage from the Bolton News in the run up to the event and there’s a Youtube video of the 2007 (no idea why there isn’t one for 2008).

The event runs over two days (7th - 8th August 2009), with “Walk The Talk” on Friday (entertainment, food and debate) and the actual Bazaar on the Saturday. The Bazaar is held at the Victoria Hall, in Bolton starting at 1830 (arriving from 1815) It gains a little coverage from the local press, but that’s about as far as media attention goes.

Bazzar

We’ve got 9 tickets for the Friday event and 9 tickets for the Saturday event to give away. I’d like to see bloggers attend the event and help gain some extra publicity for it. The more publicity, the more likely community driven events like this will continue.

Bloggers may cringe at this bit, but there is a dress code - “smart”. I’m taking this to mean smart jeans, jacket and shoes, make of it what you will. I will be attending both evenings, and will happily meet people in the MacDonalds around the corner from the Victoria Hall before the event to abuse their Wifi at around 1800. Although I’d like to see people attending both days, the focus is on the Saturday event.

If you would like to attend, holler as a comment here or reach me on twitter.


Social Bookmarking
Link

Ooops… TechCrunch just dropped the bomb on Spinvox [Aug. 2nd, 2009|11:20 pm]
This post appears on kian ryan - code, photography, bob available here. If you want to leave a comment, please do so on this page.

This just dropped into my RSS reader. By the look of the title, people weren’t supposed to know just yet. It’s still on the cached RSS feed, but not on the website so by now its probably common knowledge.

Spinvox

Notable highlights: [snipped since no longer relevant]

The row over Spinvox is something I may comment on at another time. I use Spinvox for my voicemail service, it’s brilliant and means I’ve got a more useful form of a voicemail in the form of a text message. I don’t really care if it’s handled by an offshore call-centre or using automated software, it fits a gap in my workflow perfectly. And that’s good enough reason for me to keep supporting it.

[UPDATE] It turns out it was all just a big whoopsy on the part of (Techcrunch)[http://uk.techcrunch.com/2009/08/03/an-apology-for-an-accident-of-publication/]. Mike Butcher claims it was a draft obituary which somehow managed to leak on to the RSS feed. James has not left Spinvox, and the Techcrunch article was entirely speculative. The lesson to be learnt here is if you don’t want it on the internet, don’t put it there. Anywhere.


Social Bookmarking
Link

Livejournal iGoogle Gadget [Aug. 2nd, 2009|09:19 pm]
This post appears on kian ryan - code, photography, bob available here. If you want to leave a comment, please do so on this page.

Livejournal Gadget

For the past few weeks I’ve been using Google’s “iGoogle” service, a customisable home page with widget support. Gadgets are HTML/Javascript and fit in nicely with Google’s philosophy of everything on the cloud. If you’re running other chunks of Google Apps, such as Google Calendar or Google Reader, you’ll find iGoogle a nice unified dashboard to work from.

I’m an avid LiveJournal user, and have been since January 2004, but the lack of portability of the friends page - arguably the most vital resource for a LiveJournal account has griped me. You can’t access entries as an RSS feed, and until a few days ago there was no decent mobile solution.

This morning I received a nice e-mail from LiveJournal notifying users they’ve updated their mobile site to be more inline with the current crop of mobiles. It’s nice, displays full entries and has a straightforward UI. I like it. I liked it so much I wanted it on my iGoogle page.

So after a bit of griping with the Google Gadgets documentation I finally came out with the following code which works quite nicely. I present it to you in all its majesty:


<?xml version="1.0" encoding="UTF-8" ?>
 <Module>
   <ModulePrefs title="LiveJournal Friends"
        height="400"
        scrolling="true">
        </ModulePrefs>
   <Content type="url" href="http://m.livejournal.com/read/friends/"><br />
   </Content>
 </Module>

Impressive, innit?

Strangely, although Google provide wizards and templates for generating boiler-plate gadgets they don’t provide a way for embedding remote HTML content. There’s probably a very good reason for that, but I’ll be damned if I know what it is at this time of night.

If you want to add the gadget to your own iGoogle page, click on the button below. If you know anyone who does use LiveJournal, pass it on.

Add to Google


Social Bookmarking
Link

The Garden Is Trying To Eat Me (So I’ll eat it) [Jul. 27th, 2009|07:56 pm]
This post appears on kian ryan - code, photography, bob available here. If you want to leave a comment, please do so on this page.

Back in April, I discussed my epic plans for the garden in an attempt to put some genuine home-grown food on our plates. Well dear readers, the garden has somewhat flourished since that post, and we now appear to have a good run of crops in potatoes, shallots, and tomatoes. For a full list of what’s growing in the garden, click on the landscape garden image to view the notes on Flickr.

Has it been worth it? Yes. It’s been a fun exercise and we’ve learnt a lot of lessons about how much effort and time it takes to grow your own food and the restrictions of working in a terraced yard. If you do plan on doing this yourself there are a few things to bear in mind:

  1. Get a greenhouse. Just a small £20 one. It helps to germinate the seeds quickly, and who knows how long it would have taken to get some of the plants going without it.
  2. Get lots of cheap containers. The dirt the food grows in has to grow in something. Oddly, most people seem to overlook this when budgeting. It doesn’t have to be elaborate - the basic requirement is that it adequately holds dirt. We’ve got a range of containers, from wooden tubs which were on special offer at a tenner a piece, to garden rubbish buckets currently holding the potatoes. We made an extravagance on two galvanised steel containers which to be quite frank are rather rubbish. Keep them basic and large.
  3. You will spend an extraordinary amount of money on dirt. By dirt I mean compost, but when you get down to it, it’s glorified dirt. If like us you live in a terraced house, your yard contains no natural dirt and you’ll have to import all of it. Vegetables on the whole are relatively unfussy things. They do not care if you use miracle grow or Uncle Pete’s wholesale budget compost at a tenth of the price. Save the cash for more containers.
  4. You will spend most of your money on 2 and 3. The rest pales into insignificance by comparison.
  5. Get a book that you can understand on the subject.

In your first year, you are not expecting to become a master gardener. Your aim is to put something in the ground and make it grow. As such, your first reference book needs to be something with bright colours, simple instructions and guidance you can understand. My recommended reference for the novice would be Plot, Pots or Growbags available from Amazon for under £7.

I don’t need to say much about this book, the reviews on the Amazon page tell it all. It’s such a straightforward and useful book, you really can’t fail with it. We bought most of our seeds from Suttons online shop and were surprised with how slick an operation it was.

Cat is currently cooking a chicken, mushroom, leek and shallot pie to celebrate some of the early harvest. Today we shall ignore the diet. Now, time to plan for Autumn planting…


Social Bookmarking
Link

Trucking Hell … In Bits [Jul. 27th, 2009|06:26 pm]
This post appears on kian ryan - code, photography, bob available here. If you want to leave a comment, please do so on this page.

Back in January, I wrote about Trucking Hell, a entertaining book by “Bowen T Hunter” available through Lulu. It’s an entertaining book, if a little rough around the edges.

Mr Hunter went around the block trying to get the book published after his original intended publishers went into the big corporate heaven in the sky. After some frustration, he’s finally decided to serialise the book with chapters being uploaded on Tuesday and Friday. Add it to your RSS reader, and if you like what you read consider buying a copy.


Social Bookmarking
Link

Photography Ebay Listings [Jul. 19th, 2009|08:26 pm]
This post appears on kian ryan - code, photography, bob available here. If you want to leave a comment, please do so on this page.

There’s something of a clear-out going on. Some of it’s mine, some of it’s being sold for a friend. Listed for your pleasure.

Photography - Minolta

Minolta X-300 35mm Film Body
Minolta SRT-101 35mm Film Camera (MC/MD Mount)
Minolta MD 28-70mm f3.5-f4.8 (Minolta MC/MD Mount)
Minolta X-300 35mm Film Body (Minolta MC/MD Mount)
Tokina SD 70-210mm f4-5.6 (Minolta MC/MD Mount)
Minolta 2x Teleconverter
Minolta X Series Power Winder (X-300/X-700/XG/XG-M)

Photography - Pentax

Ricoh KR-5 35mm Film Body (Pentax K Mount)
Chinon 50mm f1.9 Lens (Pentax K Mount)

Photography - Canon

Canon AV-1 35mm Film Camera (Canon FD Mount)
Canon FD 70-210mm f4 (Canon FD Mount)
Canon MD 50mm f1.8 (Canon FD Mount)
Canon 1000F 35mm Film Camera (Canon EF Mount)
Canon 3000N 35mm Film Camera (Canon EF Mount)

Photography - Nikon

Nikon FE-2 35mm Film Camera (Nikon Mount)
Nikon EM 35mm Film Camera (Nikon Mount)
Sigma UC Zoom 27-70mm f3.5 - f22 (Nikon Mount)

Photography - Flash

Jessop 300 TTL Flash (Minolta/Nikon/Pentax)
Cobra MD-210 Flash (Sigma/Olympus/Minolta/Nikon/Canon/Pentax)

Non-Photography

Pioneer TSG1001i 100W 10cm Dual-Cone Car Speaker
Nokia E61 Mobile Phone Dock
Dell Laptop Docking Station


Social Bookmarking
Link

Northern Geeks Has A Website! [Jul. 5th, 2009|09:05 pm]
This post appears on kian ryan - code, photography, bob available here. If you want to leave a comment, please do so on this page.

This took me long enough. It’s not much of a site yet, but it does have the basic information for the project.

Spread it around! Shout it out from the moutaintops!

http://www.northerngeeks.info/

We’ve even got a Twitter account…

http://twitter.com/northerngeeks


Social Bookmarking
Link

I Want To Ride My Bicycle [Jul. 5th, 2009|08:16 pm]
This post appears on kian ryan - code, photography, bob available here. If you want to leave a comment, please do so on this page.

Pennyfarthing

My bike is dead. I was asked to sign its death warrant yesterday. It was in pretty poor shape. It was the best thing I could do for it.

I admit I’ve not cycled for over a year. The bike I had been using was donated to me by Cat’s dad. It was rather too large for me, but it was a touring frame and rode well. Unfortunately I don’t agree with non-indexed shifters located on the bike frame, and this cough may have cough caused a few cough slips. Nothing epic, just a few occasions where I may have been forced to cough stop, due to a lack of chain on gear.

Oddly though, I’ve not suffered a serious crash on it, which I can’t say for my beloved pearlescent-yellow Muddy Fox MTB, on which I was hit by an ASDA lorry, side-swiped by a car on an estate, knocked flying by a pair of yobs in a white Fiesta into a bramble bush and finally, hit an unseen grate and slid for 25m on my face. That particular bike was nicked from my parent’s back yard when I came back from university and I was absolutely devastated.

Now I’m needing a new bike. I’m looking for a second hand road/race bike, 50-54cm frame size, drop bars and shifters on the bar. The last point is rather important (see above). I’ve missed two bikes in the past week that fitted the bill on Ebay. I’ve got a budget of around £150, if you know anyone selling, or if you’re selling yourself, drop me an e-mail.


Social Bookmarking
Link

navigation
[ viewing | most recent entries ]
[ go | earlier ]

Advertisement