C# 3.0
I recently commented on an old blog post about C# 3.0, expressing initial agreement with a sentiment against functional programming in the industry. However, upon reflection, I realized C# 3.0 isn't purely functional but rather integrates some academic concepts into a practical context for industry use. While still learning C# 3.0, functional programming, and LINQ, I've found my tests using these features to be clearer and more presentable. Although there's a learning curve, especially with the generic delegate syntax and translating between "SQL" and object syntax, I'm embracing the ongoing learning process. Read More
I lead the Chrome Developer Relations team at Google.
We want people to have the best experience possible on the web without having to install a native app or produce content in a walled garden.
Our team tries to make it easier for developers to build on the web by supporting every Chrome release, creating great content to support developers on web.dev, contributing to MDN, helping to improve browser compatibility, and some of the best developer tools like Lighthouse, Workbox, Squoosh to name just a few.
I love to learn about what you are building, and how I can help with Chrome or Web development in general, so if you want to chat with me directly, please feel free to book a consultation.
I'm trialing a newsletter, you can subscribe below (thank you!)
Sky+
I just got Sky+ installed and it's awesome! I've set it to record my favorite shows like Stargate SG1 and The Simpsons. I have the Toshiba 80GB model with two USB ports, but I've heard they're not functional. If you have any cool Sky+ tips, email me! Read More
Topicala now has its own Blog!
I'm thrilled to announce the launch of my new blog on topicala.com! Visit http://www.topicala.com/blog to stay updated on all the latest news and developments related to my Topicala aggregating search engine. Read More
A new .Net Blogger
My friend, Paul Pierce, has started a new blog! He plans to cover various topics, including .Net. He's already got a helpful post up about using NMock 2. I encourage you to check it out, it is very good - possibly even better than mine. Visit his blog here: http://www.paulpierce.co.uk Read More
C# 3.0 and XLinq
In this post, I explored C# 3.0 and XLinq by parsing a music style XML document from MusicMoz. I created a simple class "TagCategory" to store the style name and category. Then, using XLinq, I loaded the XML, extracted the "style" elements, and created a List of TagCategory objects. The code concisely retrieves and stores the data using object initializers. Feel free to share your feedback or suggestions for improvement! Read More
Topicala OPML Results are LAUNCHED!
I've just added OPML output to Topicala, my topical result aggregation engine. Now, all results displayed on the site are also available in OPML format. Check it out and let me know what you think! Read More
Topicala Is LAUNCHED!
I'm excited to announce the launch of my new project, Topicala! It's a topical search aggregator where you enter a topic and discover all the related information. It's almost complete, just needs a few bug fixes and OPML output. Try it out with some example searches and give me your feedback! Read More
Google Calander Mashup with BBC Programme Listing API
I've created a tool that converts BBC program listings into iCal format, allowing you to subscribe to a calendar of your favorite shows. Just add the program keyword to the end of "http://www.kinlan.co.uk/bbc/" (e.g., "http://www.kinlan.co.uk/bbc/breakfast") to get the iCal feed. You can then add this feed to Google Calendar, MS Outlook, or other calendar applications to stay updated on program schedules. I'm still developing this, so feedback and suggestions are welcome! Read More
Updates
I've been busy with side projects lately, so the blog has been quiet. One project should be released this week. Another is a .Net 2.0/ASP.Net 2.0 hosted site for examples from this blog (and to help me learn .Net). It's behind schedule, but will eventually host controls, tutorials, etc. More info soon on the first project. And, btw, the FIELDSET tag is awesome! Read More
Error Codes vs. Exceptions
This post discusses the differences between using error codes and exceptions for error handling in application programming. It references an article by Damien Katz that explores the topic in detail, highlighting the challenges of proper error handling, even in critical systems. The article uses analogies and strong language to make its points. It also links to the original article and a Digg story about the topic. Read More
All Visual Studio Express Editions are now Permanently Free!
I'm excited to share (even though it's old news) that all Visual Studio 2005 Express Editions (Visual Basic, Visual C#, Visual J#, Visual C++, and Visual Web Developer Express) are now permanently free! This is a game-changer for aspiring developers, opening up access to powerful tools for Windows and ASP.Net development. While there are some limitations (like only one project per solution), the benefits far outweigh the drawbacks. Check out the official announcement and some cool new tools! Read More
C# Trackback, Part 1
In this first part of my series on C# Trackback implementation, I delve into the Trackback Ping functionality, providing a comprehensive code explanation. While I remain unconvinced about the overall effectiveness of Trackbacks, exploring the implementation in C# has been an interesting coding exercise. Read More
C# Trackback, Part 2
This is the second part of my series on implementing trackback functionality using C#. I've provided the complete source code, which is free for anyone to use and adapt. This post dives deeper into the intricacies of trackbacks and how to use them within your C# applications. Click the "read more" link for the full article and source code. If you find it useful, consider giving it a digg! Read More
ASP.NET 2.0 Is NOT a Silver Bullet
While ASP.NET 2.0 offers improvements and reduces code in certain areas, it's not a magic solution that eliminates all development challenges. It doesn't significantly impact the time spent on data access and business logic layers, despite the addition of new server controls. Although there are aspects I dislike, such as personalization, it's worth exploring further. Read More
DS outselling PSP 6 to 1 (almost 7 to 1)
The Nintendo DS is vastly outselling the Sony PSP in recent sales figures, by a ratio of nearly 7 to 1. This trend suggests a decline in the PSP's market performance. Read More
Integrating Google calendar in your website
This blog post shares a method for integrating Google Calendar into a website using PHP and JavaScript, based on an article from ajax.phpmagazine.net. The author also expresses interest in syncing their Blogger blog with their calendar. Read More
Microsoft to upgrade Xbox 360 CPU
Microsoft plans to upgrade the Xbox 360's CPU in early 2007. The new CPU is expected to generate less heat and consume less power. While some consumers are threatening returns, this upgrade is a standard practice in the console industry and will likely result in a cooler, quieter console rather than a faster one. Sony, for example, made similar upgrades to the PS2 after its initial release. Read More
Will Blogger Integrate with GData
Google's new data protocol, GData, has me wondering about the future of Blogger. Will Blogger integrate with GData? Blogger already uses Atom, so will that make integration easier? Or will Blogger's slow pace of development prevent them from adopting GData anytime soon? I'm skeptical. Read More
5 Truths About Code Optimization
Code optimization is crucial, especially for critical sections of an application. Before jumping into optimization, profiling is essential to pinpoint actual bottlenecks. Relying on assumptions can lead to wasted effort on non-critical areas. While I haven't personally experienced the Java-specific examples mentioned in the linked article, the core message about profiling holds true regardless of the programming language. Read More
Build a C# Named Pipes Interprocess, inter-machine Cache Service
I've created a flexible Cache Windows service that uses Named Pipes for interprocess and inter-machine communication. This could be a useful solution for synchronizing web servers that need to access the same data but don't share state, cache, or session information. Check out the full article for more details and implementation. Read More