. Topicala Page Index Token

A Journal about the experiences I have developing little applications in C#, Perl, Html and Javascript and talking about things new things that I use. Always Geeky; Always Nerdy; Always poor Grammer!

I am a Software Analyst Developer working in Southport, England but living in Liverpool. I develop mainly in C# and ASP.Net. I have been developing comercial software for several years now. I maintain this site (hosted at SwitchMedia UK) as a way of exploring new technologies (such as AJAX) and just generally talking about techie geek issues. This site is developed through a host of Perl scripts and a liberal use of Javascript. I enjoy experimenting with new technologies and anything that I make I host here.

Quick Search

Web www.kinlan.co.uk

Wednesday, June 28, 2006

My Dad has Started a blog!

The Kinlan Blogging network is getting bigger

My dad has started a blog about one of his passions, cycling.

If you too are passionate about cycling check out his blog: http://frank.kinlan.co.uk

About the Site:

A weblog giving firsthand advice to the overweight looking to improve their fitness throught [sic] cycling.

About Me:

A 46 year old bloke who has lost over 4 stone (27KG) to date through a combination of cycling and the Lifestyle and Weight Management Service.

Drop in a comment or two if you have some thoughts about cycling or his site. I know he would be very pleased to get some feedback.

Related Tags
[feed], [feed], [feed], [feed], [feed], [feed], [feed], [feed], [feed]

Related Amazon Books
Bicycling for Dummies (--For Dummies): / Bike and Superbike: / Cycling in Cyberspace: Bicycling News, Introduction and Advice on Line: /

Related Images From Flickr

Friday, June 23, 2006

BBC Programme Calendar to iCal Works in Outlook 2007

A little while ago, I created a mini mash up that used the BBC’s programme API to find programs with a specific keyword in and then convert that data into an iCal file.

I thought it would be a good test to see if Outlook 2007 can import the date from the mash-up. The good news is that it can, and it is easy to do.

Simply go to your account settings menu, and then click on the internet calendars tab, click "new" and then enter the URL for the programme timetable that you want to see. [http://www.kinlan.co.uk/bbc/football]. Outlook does the rest!

Thursday, June 22, 2006

Yahoo's API Terms and Conditions are really Harsh

I have been a long time advocator of Yahoo's developer API's, they had a high API usage limits and fairly flexible terms and conditions.

That is until recently.

Yahoo has updated their T & C's just recently, and I am sure that they have been tightened just enough to stifle innovation and competition.

  1. You are no longer allowed to have any sort of advertising on your site that displays any Yahoo API results. Unless it is a Yahoo Advert! Therefore there are a lot of sites out their that are breaking Yahoo's T & C's including
    1. http://gada.be (unless they have special arrangements, in which case I will remove this)
    2. Lots of the example applications that people have created include Google Adsense adverts.
  2. You are no longer allowed to display Yahoo's search results alongside any other search engines search results. So all your Meta search engines are now breaking their contracts (including the two examples above)

Why they are specific about this is that they do not want to lose out to the completion, so by having adverts on your site you are giving money to someone else and not them, likewise with the Meta Results, they are worried that you are in completion with them and also that another search engine may be getting the same exposure are they would be.

After reading their T's & C's for RSS Feed searches, I think you are allowed to use them in an application that aggregates data alongside other search engine results and also with advertising. So that might be just enough to get around the licence. I have updated www.topicala.com/ to use the RSS feed.

I am writing this to let other people know, so that they don't fall into the same trap that I have done.

I really don't understand their issue with this, because as long as they are getting attribution to their services they are getting extra users to their services that they probably would not have got in the first place. Topicala.com for instance has Yahoo results as the primary results, with the associated RSS feed easily subscribeable to. (I know that lots of people are subscribing to their results).

For www.Topicala.com sake Google and MSN don't complain about all this free advertising.

Anyway, until the licensing becomes more flexible I can no longer recommend Yahoo as a company that I would suggest to use, nor can I suggest that their API's are some of the best out their.

Testing to seem if Smart Art Gets put into a Blog Entry

I am only really testing the smart art in word. It is not too fast on my PC, the smart art keeps refreshing with every key press.

Testing From Microsoft Word 2007

I am just testing the Blog feature from Word 2007. If this works it is pretty cool.

I really love the interfaces to Excel, Word and PowerPoint. The ribbon is sooo sweet. I am slightly disappointed so far with Visio. Visio seems to be a simple rehash of earlier versions.

Smart Art is pretty cool, it is appears to be CSS to the max!

I may end up using Word 2007 permanently!

Wednesday, June 21, 2006

Topicala Needs your Help

I need as many peoples helps as I can get. I am setting up a hierarchical tag directory and I need people to help me populate it.

You can add tags in to the database by simply searching for a topic via the web interface, or you can also use standard http GET requests via my “API”. Simply type in your browser address bar http://www.topicala.com/api/add/[TagName]

To make it hierarchical, it would be a great help if people could put a parent topical category by using the input box on the search results. For example if you seach for C#, a parent topic would be Programming Languages, or musical Notes.

You can also use the API to add a parent topical tag in by using the following query string http://www.topicala.com/api/add/[ParentTag]/[ChildTag]. If either the child tag or the parent tag don’t exist in the database then it will automatically create them.

Once I have a good corpus of information, I will enable it so that it will be easier for people to filter their topical search results through topicala.

I really appreciate any help you can give me!


Saturday, June 17, 2006


I have invested in some Adwords Advertising campaigns, for this site and also my http://www.Topicala.com. I will let you know how they get on but for now they are bringing an extra 60 visitors each to both sites on average a day [which I can afford :)]

I am still in the early stages and I have been playing around with differnt things to see how they work, but I have tuned off adverts in googles search results because they were costing too much.

I managed to get 600,000 advert impressions the other day for my kinlan.co.uk domain, but I cannot tell what keywords they are hitting and on what sites they are displayed. The Click though rate was quite low though.

If anyone has some good "Marketing ideas" let me know.

If you came to this site via an adsense advert let me know what you thought of the advert and of my site. [paul.kinlan@gmail.com]. Also if you could tell me the site you came from that would be brilliant.

I am thinking of highlighting specific posts I make with adverts on the google network. It seems likea good way to get people directly to posts I want them to see on my site.

Related Tags
[feed], [feed], [feed], [feed], [feed], [feed], [feed], [feed], [feed], [feed], [feed]

Related Wikipedia Documents
, , , ,

My Related Documents
, , , , ,

Related Amazon Books
A topological approach to the matching of single fingerprints: Development of algorithms for use on rolled impressions (Computer science and technology): / Make Easy Money with Google: Using the Adsense Advertising Program: / Winning Results with Google Adwords: / Google Advertising Guerrilla Tactics: Google Advertising A-Z Plus 150 Killer AdWords Tips & Tricks: / How to Do Everything with Google (HTDE S.): /

Related Images From Flickr

Sunday, June 11, 2006

Another reason why .Net 3.0 should be called .Net 2.5 (or something similar)

Check out Kirk Allen Evan's blog entry (http://blogs.msdn.com/kaevans/archive/2006/06/11/626299.aspx) . All through it, his reasons given point to calling it something less than .Net 3.0 IMHO.
Again, note that .NET Framework 3.0 is an additive release to .NET Framework 2.0. With .NET Framework 3.0, the languages still use the 2.0 compilers, and leverage the 2.0.50727 Framework.
It is based on 2.0 for everything so why not keep with that!!! The version number really doesn't make anything clear!

Related Tags
[feed], [feed], [feed], [feed], [feed], [feed], [feed]

Related Wikipedia Documents
, , , , , , ,

My Related Documents
, , ,

Related Amazon Books
CLR Via C#: Applied .NET Framework 2.0 Programming: / Beginning Visual C# 2005: / NET 2.0 Wrox Box: Professional ASP.NET 2.0, Professional C# 2005, Professional .NET 2.0 Generics, and Professional .NET Framework 2.0: / Windows Forms 2005 Programming in C#: / Pro .Net 2.0 Windows Forms and Custom Controls in C#: From Professional to Expert: / Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries: / MCTS Self Paced Training Kit: Microsoft.NET Framework 2.0 Foundation: /

Related Images From Flickr

Friday, June 09, 2006

.NET Framework 3.0

I have just seen the following over at Somasegar's blog (http://blogs.msdn.com/somasegar/archive/2006/06/09/624300.aspx)

With this in mind we have decided to rename WinFX to the .NET Framework 3.0. .NET Framework 3.0 aptly identifies the technology for exactly what it is – the next version of our developer framework.

The change is in name only and will not affect the technologies being delivered as part of the product. The .NET Framework 3.0 is still comprised of the existing .NET Framework 2.0 components, including ASP.NET, WinForms, ADO.NET, additional base class libraries and the CLR, as well as new developer-focused innovative technologies in WPF, WCF, WF and WCS:

I don't see any mention of c# 3.0 in this package. I think this name change is pointless and confusing! Really, the reasons they give are not that convincing!

Related Tags
[feed], [feed], [feed], [feed], [feed], [feed], [feed], [feed], [feed], [feed], [feed], [feed], [feed], [feed]

Related Wikipedia Documents
, , , , , , ,

My Related Documents
, , ,

Related Amazon Books
Naked Conversations : How Blogs are Changing the Way Businesses Talk with Customers: / CLR Via C#: Applied .NET Framework 2.0 Programming: / NET 2.0 Wrox Box: Professional ASP.NET 2.0, Professional C# 2005, Professional .NET 2.0 Generics, and Professional .NET Framework 2.0: / Beginning Visual C# 2005: / Windows Forms 2005 Programming in C#: / Pro .Net 2.0 Windows Forms and Custom Controls in C#: From Professional to Expert: / Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries: /

Related Images From Flickr

RE: Some things about XLinq

This is a response to the comment on my blog (http://www.kinlan.co.uk/2006/05/some-things-about-xlinq.html) by Mike Champion

Firstly, I can point to the XML file for you easily. It is the Wikipedia XML Abstract file (http://download.wikimedia.org/enwiki/20060518/enwiki-20060518-abstract.xml ). The format of it is pretty rigid, I am not too sure if there is a schema available but you can see that it is pretty self explanitory, there is no header information (from what I can remember) and it is one large document.

In my example that I was playing with, I ended up using an XMLReader and it was blazingly quick. Additionally I had to do a bit of logic (inserts in to a hash table) based on the content of each node and I couldn't work out how to do it in XLinq, I still find the syntax a little bit odd and the lambda syntax don't always come accross as easy to read for me at least.

The project I was working on would take the XML and convert it into a series of SQL statements, from the XML I would take the "title" element and relate the child "sublink" entities with its parent (in a custom data structure), now although the XML data is in a tree structure, the resulting data is in a cyclic graph structure because the child sublink entities may have more than one parent and also may also be a parent element itself linking (its children being one of its parents). This was very simple to do when itterating accross the data because I could ignore the bits of the data that I didn't need and only construct custom data strcutures out of the bits I did. I would then itterate across the final data strcuture and convert it into SQL statements.

I wouldn't have minded doing the work in several XLinq expressions if that was the only way of doing it, but that would have been even less feasible because the data would get copied several times and would also exist several times too (as well as scanning over all the data several times) and I would quickly run out of memory.

I think I understand the concept of the XStreamingElement, but the only benefit I can see at the moment is that it stops the internals having to do two scans of the data, one to construct the data and one to then output the data. This concept makes sense though (I think).

The feature I would like to see is the simillar as this (conceptually), but the loading/parsing of the data is deferred until I start to generate the output or do my itterations. I personally cannot think of situations where a single read over the XML data at query execution time cannot be used (thus avoiding loading all the data and then itterating over the data) and thus not having to load all the data into memory. Simple Selects, Wheres and Counts could all be constructed in a single pass. Joins would be harder but file index posistions could be kept to ensure that quick access to the joining key would be kept so that the whole document still does not need to be loaded.

I can't see the need to define a schema (suggestion a in the original comment )in the XML sense when itterating accross the data, the developer is already defining a schema when they do the XLinq expressions but they are only defining what they want to consume, if I was to say select all titles from an xml document (like the wikimedia abstract document) where the value in the title has 24 characters and return the string value then I don't really care about the sibling nodes so why do they need to get loaded in to memory. If I were to return XElements for each of the elements in a document where the title node has 24 charatcers then I would have really thought that you can load the elements in as and when the approriate title node has been found. If any execution is needed on these elements because they have been constructed then they could easily be parsed and used because they are needed.

I really do dislike having to load all the data in to memory at once when I am only using a small slice of it.

I really would like to be able to defer the loading of the data until the time it is needed (this I think would be awkward if you inspected the same XDocument twice - I can see why two disc scans of the data might be bad).

I don't like the idea of saying to a customer you have reached an upper limit revert back to the old way of doing things. I expect you would see a lot of complaints from people saying that XLinq won't scale and that they had to re-design their app completly because of this. Do you know of any hard and fast limit to the amount of data that can be processed? Is their a formula? Use XLinq when XML Document size < (MEM Size / Expected size of results set) etc etc

Thats about it for now I think :)

I hope this helps,if you have any questions or this email doesn't make sense I will gladly expand on the points.

Related Tags
[feed], [feed], [feed], [feed], [feed], [feed], [feed], [feed], [feed], [feed], [feed], [feed], [feed], [feed], [feed], [feed]

Related Wikipedia Documents

My Related Documents
, , , , ,

Related Amazon Books
Sams Teach Yourself XML in 24 Hours: Complete Starter Kit (Sams Teach Yourself S.): / Service-oriented Architecture: A Field Guide to Integrating XML and Web Services: / MCAD Training Guide 70-320: Developing XML Web Services and Server Components with Visual C#.NET and the .NET Framework: / Custom CGI Scripting with Perl: / Topological Structure and Analysis of Interconnection Networks (Network Theory & Applications S.): / Professional ASP.NET 2.0: / Pro C# 2005 & the .NET 2.0 Platform: /

Related Images From Flickr

Wednesday, June 07, 2006

Blogger Introduces RSS 2.0 Without telling anyone it seems

I was seeing reports across the internet that that Blogger has now introduced RSS 2.0 support in to the blogs that they host. Seeing that I use blogger but host on my own server account I thought I would check it out. Sure enough IE7 has detected the new RSS feed but it looks like I have a mess of feeds that I need to tidy up! Back to the template.

Anyway, thanks Blogger for warning us!!!!

Tuesday, June 06, 2006


I have just updated my pages on my blog with some hCard information. If you don't know what hCard is, it is microformat that enables machines to easily read contact information about me whilst also being visible to the readers of my page.

The microformat page explains things better than I can:

hCard is a simple, open, distributed contact information format for people, companies, and organizations, which is suitable for embedding in (X)HTML, Atom, RSS, and arbitrary XML. hCard is a 1:1 representation of the vCard standard (RFC2426 (http://www.ietf.org/rfc/rfc2426.txt)) in XHTML, one of several open microformat standards.

I am not sure if I have this completly correct, I have used DIV's where I might have had to use spans. If it is that strict in the format I think it is a little bbit silly.

If you want to create an hCard readable bit of XHTML try this tool http://microformats.org/code/hcard/creator

Related Tags
[feed], [feed], [feed], [feed], [feed], [feed], [feed], [feed]

Related Wikipedia Documents
, , , , , ,

My Related Documents
, , ,

Related Amazon Books
April Fools RFC's: / Developing Feeds with RSS and Atom: / Beginning RSS and Atom Programming: / RSS and Atom Hacks: / X-Men: Children of the Atom - Official Game Secrets: / Unlocking the Atom: Hundred Years of Nuclear Energy: / Online Poker in Easy Steps: Play Poker Like a Pro: /

Related Images From Flickr

Monday, June 05, 2006

Promoting a Comment to the Main Page about XLinq

Because at the moment I can't syndicate my comments through blogger, I thought I would promte a comment from Mike Champion (The program manager for XLinq) to the front page of my blog. So other people get the chance to see this issue more publically and so you (the reader) can respond too if you so wish.

I will be trying to reply to the comment properly by the end of the week, I am on vacation at the moment so I will try and do some thinking when I get chance :) But I will respond properly.

Anyway, here is the comment.

Hi, I'm the program manager for XLinq at Microsoft. I wanted to let you know that we are looking into this very problem right now. It would be good to hear from you and others in more detail about how your big XML file is structured. Your idea of having a LINQ-queryable XmlReader stream is one we have considered, but that doesn't really leverage the rest of XLinq. We'd prefer something akin to the XStreamingElement class in the May CTP, where a repeated element structure is evaluated "lazily". The trick is to define the structure of the streaming input without a) requiring a schema, b) requiring the user to learn a different technology such as XPath (remember that XLinq is not necessarily aimed at an audience of XML experts who already know such things), and c) making it so complex that users might as well use XmlReader to do the job.

Specific question: does your 900MB document have a regular structure, e.g. is it 900,000 1K elements that have the same structure, 900 1MB documents with varying structures, one big amorphous thing, or what? Is there some less structured "header" information at the beginning before any regular repeating structure begins? I think we'll be able to offer something that is simple to use and powerful for the case where large documents consist of many relatively well-structured top-level elements, but we're wondering how much complexity beyond that we can feasibly support before saying "just use XmlReader".

Thanks! You can contact me via the "contact us" form at blogs.msdn.com/mikechampion if you want to follow up, or leave a comment in one of the entries there.

Related Tags
[feed], [feed], [feed], [feed], [feed], [feed], [feed], [feed], [feed], [feed], [feed], [feed], [feed], [feed]

Related Wikipedia Documents
, , , , , , , , ,

My Related Documents
, , , , ,

Related Amazon Books
Essential XML Quick Reference: A Programmer's Reference to XML, XPath, XSLT, XML Schema, SOAP, and More (DevelopMentor S.): / Learning XSLT: / Xpath 2.0 Programmer's Reference: / XQuery, XPath, and SQL/XML in Context (Morgan Kaufmann Series in Data Management Systems): / Pro C# 2005 & the .NET 2.0 Platform: / CLR Via C#: Applied .NET Framework 2.0 Programming: / NET 2.0 Wrox Box: Professional ASP.NET 2.0, Professional C# 2005, Professional .NET 2.0 Generics, and Professional .NET Framework 2.0: / ASP.NET 2 for Dummies (For Dummies S.): / Professional AJAX: / Web Services Essentials: / XML in a Nutshell: /

Related Images From Flickr

Saturday, June 03, 2006

Back to playing with WPF

I have just re-installed all the Latest Beta bits for WPF and WCF etc. I expect to get some posts sorted soon. I have some ideas that I think will work quite well and will give me a better understanding of all the components.

Stay Tuned.

Related Tags
[feed], [feed], [feed], [feed], [feed]

Related Wikipedia Documents
, , , , , ,

My Related Documents
, , , , , ,

Related Amazon Books
Professional WPF Programming: NET Development with the Windows Presentation Foundation: / Pro WCF: Practical Microsoft SOA Implementation: / Programming Indigo: The Unified Framework for Building Service-oriented Applications on the Windows Platform Beta Edition: / The Rational Guide to Scripting with SQL Server 2005 Integration Services: Beta Preview: / Beginning ASP.Net 2.0 Databases: Beta Preview: /

Related Images From Flickr