Hello.

I am Paul Kinlan.

A Developer Advocate for Chrome and the Open Web at Google.

I love the web. The web should allow anyone to access any experience that they need without the need for native install or content walled garden.

JS: quickly removing an arbitrary element from an Array

Paul Kinlan

This post explores the challenge of removing specific elements from JavaScript arrays. It critiques the inefficient string manipulation method and introduces the filter() method (available in ECMAScript 5 compliant browsers) as a more elegant solution for removing elements by value. The post acknowledges the lack of a simple way to remove elements by index and hints at further discussion on this topic in a future post.

Read More

Topicala Needs your Help

Paul Kinlan

I'm building a hierarchical tag directory for Topicala and need your help populating it. You can add tags via the web interface or by using the API: http://www.topicala.com/api/add/[TagName] to add a new tag and http://www.topicala.com/api/add/[ParentTag]/[ChildTag] to create parent/child relationships. Your contributions will eventually allow users to filter search results more effectively.

Read More

Image Filter Library

Paul Kinlan

I've previously mentioned the .NET Image Filter Library, and I highly recommend it to anyone interested in learning about programmatic image manipulation. The library is well-documented in an easy-to-follow CodeProject article by Andrew Krillov. You can find it here: Image Processing Lab and Motion Detection. I even created a fisheye filter for this API, which you can find here: Fisheye Example

Read More

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

Paul Kinlan

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.

Read More