Thoughts about the GDD's
Just got back from a whirlwind tour of Europe for the Google Developer Days! We hit Munich, Moscow, and Prague, and it was an amazing experience. I gave talks on Chrome Extensions and building great Web Apps (except in Munich, where a local engineer rocked it). The slides are online: Chrome Extensions (needs experimental mode in Chrome dev channel) and Web Apps. I'll post the code on GitHub soon. Met tons of enthusiastic developers working on incredible projects – everything from protein sequencers to automatic app builders. So much innovation happening! (Side note: bring business cards, folks!) Prague was a particular highlight. Check out some photos from my trip! 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!)
Using Canvas to create beautiful custom markers in Google Maps
This post details how to use the HTML5 canvas element to dynamically create visually appealing custom markers for Google Maps. Instead of using a server to generate marker icons, we leverage the canvas API to draw rounded rectangles with gradients, center text within them and ultimately convert them into data URIs. Using the HSL color model allows for the creation of a harmonious range of colors by adjusting the hue while maintaining consistent saturation and luminance. This client-side approach offers flexibility and control over marker appearance, specifically highlighting techniques for rounded corners, gradients, and text centering. The code examples provided demonstrate the process of generating these markers and integrating them into a map. Read More
.Net Developers: SVN vs Mercurial pt2
In this follow-up post, I've decided to use Mercurial for my project's version control. While feedback leaned towards Subversion (SVN), I prefer Mercurial due to its distributed nature, Codeplex support, available .Net tools, and superior branching capabilities. I'm open to further discussion and any compelling arguments for reconsidering SVN. Read More
.Net Developers: SVN or HG?
I'm curious to hear from .Net developers, both those working with Windows and Mono, about their preferred source control service between Subversion (SVN) and Mercurial (HG). I'd love to know which one you find most effective and has the least impact on your daily workflow. While I know other SCMs exist, I'm specifically interested in opinions on these two. Read More
Using HTML5 Canvas with Drag and Drop (setDragImage)
Using HTML5 Canvas with Drag and Drop (setDragImage) I know a lot of people complain about Drag and Drop (DnD), but it is not all that bad. At least we have a platform to work off for the future. We have recently seen a lot of improvements to Gmail which now includes additional support for Dragging in to Gmail to upload your docs and files, and also dragging attachments out of Gmail to the user file system. Read More
Canvas on the Background
I recently discovered a cool trick in WebKit that lets you use a canvas element as a background image, which opens up a ton of creative possibilities. It's a powerful feature, allowing for dynamic, programmatic manipulation of background images. I've included a simple demo showing how to draw a square on a div's background, but imagine the possibilities for games or complex animations! While currently WebKit-specific, I hope other browsers will adopt it soon. More demos to follow! Read More
DOM TreeWalker
Tired of recursive DOM traversal headaches? Check out the DOM TreeWalker API! This powerful tool lets you efficiently navigate the DOM, filtering nodes as you go. It's perfect for tasks like finding specific text nodes or elements, highlighting content, or even building Chrome extensions. I've included a simple example of how to use TreeWalker to find and linkify Twitter usernames on a page. Give it a try and see how much easier DOM manipulation can be! Read More
Amsterdam
I'm heading to Amsterdam for a business trip, my first time back since I was about 7 years old. While I'm there for work, I'm hoping to explore the city in my free time over the next two days and capture some of the experience through photos. I'd love to hear recommendations on things to see and do! Read More
Liverpool John Lennon Airport
Liverpool John Lennon Airport is in a terrible state! There are not enough chairs, the restaurants are dirty, and it's unbearably hot. I'd rather fly from Manchester or Heathrow than deal with this again. Read More
What makes an HTML5 Application an Application
We have been thinking about what properties of an HTML application make it an application rather than a webpage with logic. We have documented our thoughts here: http://code.google.com/chrome/apps/articles/thinking_in_web_apps.html (Thinking in Apps). This is only the start of our thinking and work on what hopefully will become a robust guide to patterns in web application development. Many of the things that define a great web page experience are also the same things that describe an application experience on the web, however we think there are some subtle differences, especially around the use of client side data storage, offline support and user experience. Read More
Berlin GTUG.
I had a great time speaking at the Berlin GTUG, despite the unexpectedly hot weather. I presented on Web Apps, highlighting the differences between native and web apps, key principles of good app design, and some of the exciting new possibilities with HTML5, CSS3, and WebSockets. I wish I'd had more time to delve into frameworks for building great apps and do some live coding. Chris Chabot also gave a fantastic talk about Buzz. The venue, BetaHaus, was excellent, and I was impressed by everyone's English fluency. Thanks to all who attended! Read More
Berlin GTUG: July 15th 2010
I'm excited to announce I'll be speaking at the Berlin GTUG on July 15th, 2010, about building HTML-based applications. The talk will explore the differences between web pages and true applications, with plenty of examples. This will be my first time in Berlin, and although my visit is short, I'm looking forward to it! Slides and photos to follow. Read More
Buzz Demo: Getting Stuff in and Out of Buzz
I've finally posted the demo code from my Buzz talk at TwitterDevNest. Find it on GitHub: PaulKinlan/BuzzInOutDemo. Read More
Buzz Slides from TwitterDevNest (Feb 2010)
Back in February, I presented at TwitterDevNest about getting data in and out of Buzz. The slides are now available on SlideShare. I covered WebFinger, OpenID, Buzz feeds, Pubsubhubbub, and Salmon. I also promised to open-source the demo code, which I'll be pushing to Github later today (covering most of the topics except Salmon). Read More
Moving my blog to posterous
I've migrated my blog from kinlan.co.uk to paul.kinlan.me, now powered by Posterous. Hoping this simpler platform encourages me to blog more frequently. Read More
Launching FriendDeck
I'm excited to announce the launch of FriendDeck, a new tool inspired by TweetDeck that enhances the FriendFeed experience. Built on Google App Engine and using jQuery, FriendDeck lets you create persistent searches to track topics in real-time, rather than just seeing your friends' posts. This is particularly helpful for monitoring developing events, as demonstrated by Neville Hobson's use of FriendDeck during the US Airways Hudson River landing. FriendDeck supports a simple query language for searching by keyword, user likes/comments/friends, URLs, domains, and FriendFeed rooms. It also allows posting to FriendFeed directly from the application. Each deck auto-refreshes every minute, and new features like inline commenting are coming soon. Check it out at www.frienddeck.com! Read More
Twollo: Find new people to follow automatically
I've launched Twollo, a Google App Engine project that helps you find and automatically follow Twitter users who share your interests. Unlike MrTweet, which suggests popular accounts, Twollo focuses on connecting you with people based on shared interests. Just enter your interests, like "Google App Engine," and Twollo will automatically find and follow relevant users every hour. Recent updates include viewing and unfollowing Twollo-followed users, preventing re-follows, tracking reciprocal follows, setting follow limits per interest, language filtering, UserVoice feedback integration, and one-click profile removal. More details about Twollo and Google App Engine coming next week! Read More
Moving Blog
I'm moving my blog from Blogger to Wordpress! While I've used Blogger for years, it no longer meets my needs. This blog will remain online but the new blog, covering broader software development topics (not just C#), is where I'll focus my writing. Find it at http://www.kinlan.co.uk/blog/ . Read More
DSL Tools Talk
I'm giving a talk on DSL Tools and T4 templates at the Liverpool Users of .Net User group on April 17th. The talk will cover an overview of DSLs, what Microsoft DSL Tools are (and aren't), how they can be used, and a walkthrough of creating a DSL Tool. The event is at AIMES and details can be found on Upcoming.yahoo.com. I'll share the slides afterward. Let me know if you have any good examples of tools built with the DSL Toolkit! Read More
Topicala Business Search
I'm excited to announce the launch of Topicala Business, a new search tool for UK businesses! List your business for free to add your description, services, contact info, and more. Topicala Business also searches the web to show you what customers and competitors are saying. Find your listing using your company number (www.topicala.com/business/{companyNumber}) or search by business name (e.g., www.topicala.com/business/topicala or www.topicala.com/business/06512461). We're using data from Companies House and currently have over 169,000 companies listed. Claim your free listing now to boost your visibility on Google and other search engines. I'm eager to hear your feedback and suggestions for future features! Read More