DevWeek Day 2
Day 2 of DevWeek was packed with insightful sessions. Niels Berglund's talk on ADO.NET v.Next and the Entity Framework highlighted the potential for simplifying database interactions by mapping database models to programmer-friendly models. Kelvin Henney's lecture on streamlined object-oriented analysis emphasized the importance of modeling the current system before designing solutions, using UML and Use Cases. Ingo Rammer's presentations on scalability and performance, and Windows Workflow integration, offered practical advice and cleared up some misunderstandings. I also had a chance to visit vendor booths, with Infragistics' XAML components and Dev Express's slick presentations standing out. Overall, the quality of the lectures has been excellent, but the vendor presence could be improved. 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!)
Day 1 of the DevWeek Conference
DevWeek Conference Day 1: Jeff Prosise's keynote covered the history of web programming, from CGI to ASP.NET AJAX and WPF/E. While I enjoyed his talk, I would've preferred more focus on the future. The "Attack and Defense" session was disappointing, lacking depth compared to available online resources. David Wheeler's "Practical Patterns" was a highlight, with clear explanations and code examples of design patterns. The vendor presence was smaller than expected. Infragistics showcased promising XAML controls, while TechExcel impressed with their enthusiasm and software demo. Other vendors, like NAG and the Enterprise Architect distributors, could have been more engaging. Read More
DevWeek 2007
Arrived at DevWeek 2007 last night. Looking forward to the keynote by Jeff Prosise on ASP.NET AJAX and then attending architect track sessions on securing ASP.NET 2.0 apps and practical patterns in .NET. Hoping to post summaries if internet access allows. Read More
Resharper 2.0 Plugins
In a previous post, I discussed the scarcity of ReSharper plugins and sample code. I'm happy to announce that JetBrains has launched a new resource page dedicated to ReSharper Plugin Development. This page provides guides and sample code to help you create your own plugins. You'll need ReSharper 2.5 or later, which is a free upgrade for existing users. Read More
Easy HTML Screen Capture in Windows
For a while I have been thinking about how to capture the output of IE into a Bitmap or other image format. The attempts that I have done normally center around hosting an IE control on a WinForm and then render the page inside the control and then capture the output. This however seems to be pretty hairy, I could never get it to work after the initial screen capture. Read More
Technorati Claim Fix, Please Ignore
This blog post is a quick fix for my Technorati claim. Click the link to verify my Technorati profile. Read More
Wii, oh Wii did I cancel my Wii
I initially pre-ordered a Wii from Argos but cancelled it (big mistake!). It's been impossible to find one since launch, and everyone at work has been taunting me. Finally, I managed to snag one from Asda in Aintree, along with a copy of Wii Play. The Wiimote is surprisingly accurate, and while the graphics aren't as impressive as the 360's, the gameplay is fantastic. I can't wait to explore more games, so hit me up with recommendations! Read More
Why I love WSE 3.0
I'm really enjoying working with WSE 3.0, especially its policy mechanism. It allows for Aspect Oriented Programming (AOP) through SoapFilters, enabling me to add functionality like security, auditing, and exception handling via configuration rather than hardcoding it into my web service. This keeps my service code clean and maintainable. I demonstrated this with a simple example of an OrderService, comparing the cleaner policy-based approach to a more complex, hardcoded alternative. The policy configuration significantly simplifies adding and managing cross-cutting concerns. Read More
ReSharper 2.0+ Plugins
I'm searching for plugins created using JetBrains OpenAPI for ReSharper 2.0+, but they're proving difficult to find. The only one I've encountered is mentioned in a blog post, and it doesn't seem to have been officially released. I have some plugin ideas of my own, but the available documentation and examples aren't very helpful. Read More
XNA Parallax Engine and the GSE Beta 2
I'm starting to port the Parallax Engine to XNA Game Studio Express Beta 2 due to major changes from Beta 1, notably the removal of Game Designers. While I liked the rapid configuration they offered, their removal seems necessary for Xbox 360 support. Read More
Technorati, Rubbish!
I'm incredibly frustrated with Technorati! It's not updating my blog's information despite numerous ping updates and support emails. This is really impacting my blog's visibility. Read More
Solution to my "Problem with List and TypeConverter" Problem
I had a problem getting TypeConverters to work with generic lists in XNA and WinForms. The designer wouldn't generate the code I wanted for properties. I needed a simple way to serialize objects, so I tried a minimalist approach. Overriding CanConvertTo and ConvertTo methods in my TypeConverter was enough for the designer to serialize the objects correctly, generating much cleaner and simpler code. Read More
iforgive.eu up for sale
I bought iforgive.eu, but my initial ideas for the site (a forgiveness flower shop, a public confession/forgiveness platform, and an open email apology site) were flawed. I considered alternatives like a social charity platform ("If Or Give") or a Q&A site, but those didn't pan out either. Now, I'm selling the domain. Leave a comment if you have suggestions – funny or serious – for what someone could do with it. I might even implement your idea. Learn from my mistake: think before you buy a domain! Read More
F14 XNA Game should use XNA Parallax Engine
I came across ARogan's F14 XNA game which features 3 levels of parallax scrolling. I'm thinking it would be a great opportunity to demonstrate the capabilities of my XNA Parallax Engine. Ideally, someone ports the game to use my engine, but if not, I'll do it myself since the F14 game's source code is available. This will be a good test of my engine's flexibility and I'm eager to see how easy the porting process is and how well it performs. I'll keep you updated on my progress. Read More
Long Tail is a Long Tale
I read Chris Anderson's "Long Tail" and found it insightful, albeit a bit verbose. While many of the concepts about choice, aggregators, and filters felt obvious, the book effectively highlights their importance. I realized I'd already implemented a "long tail" approach on this blog by creating a tag directory (http//:www.kinlan.co.uk/tag/{anytag}) to link related posts and resources. This led to the development of Topicala (http://www.topicala.com/), a meta-search engine that aggregates results from multiple search engines based on tags. Read More
Window Live OneCare Beta 1.5.1785.18
I've started testing Windows Live OneCare Beta 1.5.1785.18, switching from Windows Defender. While the Protection Plus firewall alerts are helpful, the TuneUp feature feels lackluster. It doesn't provide enough detail about its actions (like during defragmentation) and lacks advanced tuning options I'd expect, especially given Microsoft's SysInternals acquisition. It's good for automating basic maintenance, but the performance hit and limited functionality don't justify a paid subscription yet. Read More
Assigining a TypeConverter to a class you don't own
In this post, I describe a solution to a problem I encountered while working with XNA Beta1 and Vector2 structs. Because Vector2 didn't have an associated TypeConverter, the designer lacked support. Applying a TypeConverter to the property worked in the designer, but Visual Studio 2005 ignored it during serialization, resorting to resource files, which was messy. My workaround involves dynamically adding a TypeConverter to the Vector2 type itself using TypeDescriptor.AddAttributes, which is invoked during the class's construction. By registering the Vector2Converter with the Vector2 type early on, both the designer and code serialization work harmoniously. Read More
XNA Parallax Demo Video
Check out my new video demo showcasing the simplicity of creating scrolling parallax layers in XNA. In under 3 minutes, I demonstrate how to build a parallax engine with layers, a camera, and scrollers, all without writing any code! The video covers basic scrolling and adding effects like oscillators. Watch it on YouTube, Google Video, or download the WMV. Feedback is welcome here or on the CodePlex forums. Read More
XNA Parallax Engine
I've just released the first alpha version of my XNA Parallax Engine! You can download it from CodePlex. It's still early stages and needs a lot of work, including examples, documentation, artwork, and more. If you're interested in contributing, please get in touch! Read More
XNA Parallax Engine Update
I've just pushed an update to my XNA Parallax Engine project, which now includes its first demo. This initial demo showcases a basic single scrolling background—simple, yet functional, requiring minimal code for setup. I'm currently refining the layer collection initialization process. The updated source code is available on Codeplex for those interested in exploring it further. Read More