Hello. I am Paul Kinlan.

I lead the Chrome and the Open Web Developer Relations team at Google. Exploring the intersection of modern web design and future-facing technologies.

2 min read

XAML Menu Example

I've been experimenting with the Microsoft Avalon CTP (Community Technology Preview) Framework and wanted to share a simple XAML menu example. This example demonstrates how to create a custom style for menu items to make them look like GelButtons. Initially, I tried using a ControlTemplate but later realized a HeaderTemplate within the style was the correct approach. The XAML code provided creates a menu with styled menu items, showcasing how to customize the appearance and behavior of menu items in Avalon.

Stay in the loop.

I'm trialing a newsletter. Join for monthly insights into web dev, Chrome, and the open web.

alternate_email

Get in touch

Open to chat about Chrome or Web development.

Book a consultation
1 min read

XAML Menu Example: Addendum

A quick follow-up to my last post about the XAML menu example: It no longer uses the Animated Gel Button animation, and the GelButton code modification I mentioned actually came from a different page on the same site I linked previously.
1 min read

IHttpModule Things I have noticed

During the development of a custom IHttpModule, it's important to be aware of the timing of context access. Avoid accessing HttpContext properties directly within the Init method, as the context isn't fully initialized yet. Instead, handle events like BeginRequest. Within those event handlers, the HttpContext object provided will be fully populated, allowing access to properties such as HttpMethod, QueryString, and Form.
2 min read

ASP.Net Query Parameter Validation

I've been pondering an ASP.Net security concern: while it blocks potentially harmful querystring characters by default, turning this off puts the onus of validation on developers. I'm exploring the idea of a declarative approach to query parameter validation, where developers define predicates (like data types) for expected parameters within the Page Class definition itself. This could simplify validation and ensure data is HTML-safe before reaching the developer. This would streamline validation compared to using custom validators. I'm considering the benefits and implementation details of such an approach.
2 min read

FishEye Example Code That Integrates into Tiger Imaging

I've updated my fish-eye effect code with added comments. The effect is based on Jason Waltman's work, which in turn references a paper by Devernay and Faugeras on correcting distorted images. The paper details a method for determining distortion and converting images to a standard pinhole camera model. My code produces the desired fish-eye effect, and I've provided the C# source code for download. While I haven't fully delved into the paper, it seems to offer more in-depth analysis of image distortion correction.
2 min read

I did it.... Fish Eye... Call Me Kinlan The Chuffed!!!

I successfully implemented a fish eye effect! I peeked at Jason Waltman's code for inspiration and adapted it to C# using the Tiger Image Processing Library. Now I even understand polar coordinates better. It involves converting Cartesian (x,y) coordinates to angles and distances from the center of a circle. The effect itself figures out which pixels need distorting and then calculates their new positions.
2 min read

Image Processing: Part 1

In this first part of my image processing series, I'm sharing how I used the Yahoo Search API to find images and load them into a C# application. I was excited to discover how straightforward it is to query for images and then seamlessly integrate the results into my project. The process involves constructing a REST query with search parameters, sending the request to Yahoo, receiving the XML response, and deserializing it into a custom data type. Then, I iterate through each image result in the response, create another query to download the image, and finally, convert the downloaded stream into a Bitmap and load it into an ImageList. Stay tuned for more in this series!
1 min read

Image Processing: Part 2

In this second part of my series on image processing, I'm exploring the Tiger Imaging Library for C#, a cool resource with complete source code and various image manipulation filters. I'm considering expanding its capabilities by creating new filters like the fish eye effect described by Jason Waltman. I'm also planning further research and experimentation with Tiger Imaging.