# Modern Web Development with Chrome > Paul is a Developer Advocate for Chrome and the Open Web at Google and loves to help make web development easier. ## Posts - [AI Focus](https://paul.kinlan.me/2025-06-06-ai-focus/): Link: AI Focus I've launched a new blog. It's called AI Focus, and it's dedicated to exploring the intersection of artificial intelligence and web development. … - [Annie Sullivan: Diving into the Data on Feature Availability and Adoption](https://paul.kinlan.me/2025-05-12-diving-into-the-data-on-feature-availability-and-adoption-blinkon-20---youtube/): Link: Diving into the Data on Feature Availability and Adoption [BlinkOn 20] - YouTube This is a great talk from Annie Sullivan at BlinkOn 20 about the … - [Andre Bandarra: From PyTorch to Browser: Creating a Web-Friendly AI Model](https://paul.kinlan.me/2025-05-02-from-pytorch-to-browser-creating-a-web-friendly-ai-model/): Link: From PyTorch to Browser: Creating a Web-Friendly AI Model I loved this post from Andre about running sentiment analysis in the browser using a model that … - [Michael Lynch: How to Write Blog Posts that Developers Read · Refactoring English](https://paul.kinlan.me/2025-03-28-how-to-write-blog-posts-that-developers-read-refactoring-english/): Link: How to Write Blog Posts that Developers Read · Refactoring English I think this post would be good for every developer to read. It's more about … - [Adam Argyle: Rainbow Shadow Button](https://paul.kinlan.me/2025-03-21-rainbow-shadow-button-19-march-2025/): Link: Rainbow Shadow Button · 19 March 2025 background: linear-gradient(to right in oklch longer hue, oklch(95% var(--vibrance) 0) 0 100%); I know CSS pretty … - [: Real-world uses of TypeScript’s utility types - Piccalilli](https://paul.kinlan.me/2025-03-21-real-world-uses-of-typescripts-utility-types---piccalilli/): Link: Real-world uses of TypeScript’s utility types - Piccalilli I have a bit of love-hate relationship with TypeScript, but there are parts of the typescript … - [Jeremy Keith: Adactio: Journal—Command and control](https://paul.kinlan.me/2025-03-21-adactio-journalcommand-and-control/): Link: Adactio: Journal—Command and control I’ve been banging on for a while now about how much I’d like a declarative option for the Web Share API. I was … - [Brad Woods: Browser adaptation](https://paul.kinlan.me/2025-03-20-browser-adaptation/): Link: Browser adaptation Something that I've been thinking about a lot recently is that the medium that is the web. It enables a lot of things that only the web … - [All of Igalia: Planet Igalia](https://paul.kinlan.me/2025-02-20-planet-igalia/): Link: Planet Igalia When I was preparing the Interop post yesterday, I found one of the agalia links didn't work and while I was hunting for the new link, I … - [Nicholas C. Zakas: ESLint now officially supports linting of CSS - ESLint - Pluggable JavaScript Linter](https://paul.kinlan.me/2025-02-20-eslint-now-officially-supports-linting-of-css---eslint---pluggable-javascript-linter/): Link: ESLint now officially supports linting of CSS - ESLint - Pluggable JavaScript Linter We feel that validation and enforcing baseline features are the … - [Lokesh Khurana: How Google Chrome’s autofill feature helps both shoppers and merchants](https://paul.kinlan.me/2025-02-19-how-google-chromes-autofill-feature-helps-both-shoppers-and-merchants/): Link: How Google Chrome’s autofill feature helps both shoppers and merchants One of Shopify’s key metrics is Checkout Conversion Rate (CCR), which measures the … - [Interop 2025: another year of web platform improvements](https://paul.kinlan.me/2025-02-19-interop-2025-another-year-of-web-platform-improvements-blog-webdev/): Link: Interop 2025: another year of web platform improvements It's exciting to see the web platform continue to evolve and improve. Interop along with Baseline … - [WikiTok](https://paul.kinlan.me/2025-02-17-wikitok/): Link: WikiTok This is such an amazing site and has become a bit of a daily habit for me. It's a brilliantly simple idea that means I'm browsing more of … - [How I edit my blogs](https://paul.kinlan.me/2025-02-17-how-i-edit-my-blog/): It may come as no surprise to the people who get emails from me, but I failed GCSE English. I loved reading, but I struggled to articulate my thoughts clearly … - [Addy Osmani: Why I use Cline for AI Engineering - by Addy Osmani](https://paul.kinlan.me/2025-02-17-why-i-use-cline-for-ai-engineering---by-addy-osmani/): Link: Why I use Cline for AI Engineering - by Addy Osmani In this post Addy describes his use of Cline (Jan 30). It was the first time I'd heard of it. I was … - [Describing sites instead of coding them](https://paul.kinlan.me/describing-sites-instead-of-coding-them/): I've been noodling on how we might lower the cost to create prototypes of sites for people who aren't technical. When I speak to a lot of people about websites, … - [Dion Almaer: English will become the most popular development language in 6 years](https://paul.kinlan.me/2025-01-22-english-will-become-the-most-popular-development-language-in-6-years/): This great post by Dion "English will become the most popular development language in 6 years" is worth a mull imho. There's obviously a lot of push … - [Email - The Web's Forgotten Medium](https://paul.kinlan.me/email-the-webs-forgotten-medium/): I fondly remember the early days of the web. I remember my first time on the Web in an Internet cafe with my friend Bob, patiently waiting for the only thing we … - [Webkit.org: The success of Interop 2024!](https://paul.kinlan.me/2025-01-20-the-success-of-interop-2024-webkit/): Link: https://webkit.org/blog/16413/the-success-of-interop-2024 I saw The success of Interop 2024! in Stefan Judis's Web Weekly Newsletter. Jen Simmons at Apple … - [Simon Willison: My approach to running a link blog](https://paul.kinlan.me/2025-01-20-my-approach-to-running-a-link-blog/): Link: My approach to running a link blog I really like Simon's approach to running a link blog and his principles really resonate with me I always include the … - [f - JS functions from a prompt](https://paul.kinlan.me/projects/f/): My buddy Dion made a great post "English will become the most popular development language in 6 years". Dion's vision is pretty expansive, but it … - [Email Summary Service](https://paul.kinlan.me/projects/email-summary-service/): I get a lot of newsletters, and I love them. They often contain a wealth of deep insight that I can't easily find while browsing the web. Yes, there are RSS … - [Full RSS feed](https://paul.kinlan.me/projects/full-rss-feed/): I love RSS feeds (and ATOM too (and JSONFeed)) but one thing that frustrates me is when a feed doesn't include all of the content. https://full-rss.deno.dev was … - [When generating apps the spec is important](https://paul.kinlan.me/the-spec-is-important/): Generating web apps with AI agents like Replit is incredibly powerful, enabling rapid prototyping and deployment. My experience building tldr.express, a … - [User Agents Hitting My Site](https://paul.kinlan.me/user-agents-hitting-my-site/): Curious about who's visiting my site, I built a user-agent tracker using Vercel middleware and KV storage. It logs every request and displays a live table of … - [Countdown timer](https://paul.kinlan.me/projects/countdown-timer/): I created a simple countdown timer web app that lets you track time until important events. It's built with a focus on no-code using Replit, including a cool … - [Will we care about frameworks in the future?](https://paul.kinlan.me/will-we-care-about-frameworks-in-the-future/): Building apps with LLMs and agents like Replit has been incredibly productive. The generated code is often vanilla and repetitive, raising questions about the … - [20 years blogging](https://paul.kinlan.me/20-years-blogging/): Wow! Just realized I've been blogging for over 20 years, starting way back in August 2004 on kinlan.co.uk with Blogger. The journey has taken me through … - [Generated Web Apps](https://paul.kinlan.me/generated-web-apps/): This blog post lists various web apps I've generated using Repl.it and WebSim, - [The disposable web](https://paul.kinlan.me/the-disposable-web/): Reflecting on my journey with computers, from the C64 and Amiga 500 to the present day, I've found a renewed excitement in software development. New tools like … - [I spent an evening on a fictitious web](https://paul.kinlan.me/fictitious-web/): Experimented with WebSim, a simulated web environment, creating sites like a personal blog, timezone converter, interactive globe, and a travel site. The … - [Idly musing about Manifest](https://paul.kinlan.me/idly-musing-about-manifest/): In this blog post, I share some findings from my exploration of HTTP Archive data. I discovered that a significant number of websites using manifest.json files … - [Reactive Agents](https://paul.kinlan.me/projects/reactive-agents/): I'm exploring a new way to build reactive applications using an 'Agents' API. Inspired by Preact Signals and my previous reactive-prompt project, this toolkit … - [Reactive Prompts](https://paul.kinlan.me/projects/reactive-prompts/): I've created a small library called reactive-prompt that lets you easily manage prompts in a reactive way, similar to how you'd build a web app with React. It … - [transformerjs-breadboard-kit](https://paul.kinlan.me/projects/transformerjs-breadboard-kit/): I've created a new Breadboard kit for TransformerJS, which allows you to run HuggingFace models locally on devices. This is useful for LLM-related tasks where … - [The Critic](https://paul.kinlan.me/projects/the-critic/): I created "The Critic", a tool to help review text from different perspectives, like accessibility or API design. It uses LLMs to simulate multiple … - [tldr-site.vercel.app](https://paul.kinlan.me/projects/tldr-site/): I built tldr-site.vercel.app to help me quickly understand web development trends. It summarizes search results and news snippets, giving me a high-level … - [Some clean-up new-year](https://paul.kinlan.me/some-cleanup/): I've made a couple of small changes to the blog. I removed the personal journal section and added my projects to the RSS feed so you can see what I've been … - [Claude Breadboard Kit](https://paul.kinlan.me/projects/claude-breadboard-kit/): I've created the Claude Breadboard Kit, a simple plugin to easily connect your Breadboards with the Claude API. It features a single generateCompletion node for … - [tldr.rocks](https://paul.kinlan.me/projects/tldr-rocks/): I created tldr.rocks, a simple site that summarizes Hacker News posts and comment sentiment. As a DevRel, it's crucial to understand developer sentiment … - [Chat GPT Code Interpreter and Browser Compat Data](https://paul.kinlan.me/chatgpt-code-interpreter-and-browser-compat-data/): I explored using ChatGPT's Code Interpreter to analyze browser compatibility data from the BCD project. My goal was to determine the latest released versions … - [IndexedDB as a Vector Database](https://paul.kinlan.me/idb-as-a-vector-database/): I created a simple vector database called "Vector IDB" that runs directly in the browser using IndexedDB. It's designed to store and query JSON … - [Bookmarklet: Eyedropper](https://paul.kinlan.me/eyedropper-bookmarklet/): This blog post introduces a bookmarklet utilizing the EyeDropper API for quickly grabbing color information in Chromium-based desktop browsers. The bookmarklet … - [Querying browser compat data with a LLM](https://paul.kinlan.me/querying-browser-compat-data-with-a-llm/): I explored using LLMs for checking web API browser compatibility. Existing LLMs struggle with outdated data, so I experimented with MDN's Browser Compat Data … - [Building Ask Paul](https://paul.kinlan.me/building-ask-paul/): I built Ask Paul, a generative AI demo that answers front-end web dev questions using my content. It leverages Polymath-AI to index content, find related … - [Talk: "Aiming for the future" at Bangor University](https://paul.kinlan.me/aiming-for-the-future-at-bangor-university/): I presented "Aiming for the Future" at Bangor University, exploring computing's evolution from the Difference Engine to the modern era, focusing on … - [BCD - Experimental APIs bcd](https://paul.kinlan.me/bcd-experimental-apis/): I've added a new feature to time-to-stable that lists experimental APIs across browsers using BCD. This helps developers track experimental APIs, understand … - [The local-only web](https://paul.kinlan.me/the-local-only-web/): In this post, I explore the potential of the File System Access API to create local-only web experiences. I discuss how this API, combined with tools like … - [Support during layoffs](https://paul.kinlan.me/support-during-layoffs-2023/): I'm offering support to those affected by recent layoffs, including those at Google and across the tech industry. I can help with networking, introductions, … - [Using ML to Create a Simple Lighthouse Audit to Detect a Button](https://paul.kinlan.me/creating-a-simple-lighthouse-audit/): I created a Lighthouse audit that uses machine learning to detect if an anchor tag looks like a button. This involved training a TensorflowJS model, building a … - [Creating a Lighthouse Gatherer to generate high-res screenshots for your Audit](https://paul.kinlan.me/lighthouse-full-res-screenshot-gatherer/): I needed higher resolution screenshots for an ML model to classify elements on a webpage, but the default Lighthouse screenshot was too compressed. So, I … - [Creating a web app with Deno, Fresh and TensorflowJS](https://paul.kinlan.me/ml-deno-fresh-tensorflow/): I built a web app using Deno, Fresh, and TensorFlowJS to classify images as links or buttons. The app uses a pre-trained ML model and allows users to drag and … - [Training the Button detector ML model](https://paul.kinlan.me/training-the-button-detector-ml-model/): I trained a machine learning model to differentiate between buttons and links on web pages. Using a dataset of ~3000 button images and ~4000 link images, I … - [Button and Link Scraping for ML training](https://paul.kinlan.me/button-and-link-scraping-for-ml-training/): In this project, I'm working on an accessibility tool to detect links styled as buttons, a common issue that can confuse users. My approach involves scraping … - [Adding ActivityPub to your static site](https://paul.kinlan.me/adding-activity-pub-to-your-static-site/): I added ActivityPub support to my static Hugo blog hosted on Vercel. It now automatically announces new posts to followers on the Fediverse. Key challenges … - [Post Deploy Webhook for Vercel](https://paul.kinlan.me/post-deploy-webhook-for-vercel/): I needed to find a way to send webhooks after a successful deployment on Vercel, which wasn't a built-in feature. Since Vercel integrations can listen for … - [Thoughts on a \"Web Follow\" protocol](https://paul.kinlan.me/thoughts-on-web-follow/): Mastodon's cross-instance following is clunky. I propose a solution using the web+follow URL scheme, like mailto, to streamline following users on ActivityPub … - [Using ML to improve developer experience.](https://paul.kinlan.me/ml-to-help-with-developer-experience/): This blog post explores how machine learning (ML) can enhance the developer experience. Inspired by Corridor Crew's use of ML in VFX, I initially brainstormed … - [Detecting if a URL scheme can be handled](https://paul.kinlan.me/detecting-if-a-url-scheme-can-be-handled/): Custom URL schemes can enhance web app functionality by handling specific URLs, but detecting scheme support is tricky. Several methods exist, including click … - [Twitter](https://paul.kinlan.me/twitter/): I'm heartbroken about the situation at Twitter. So many of my friends have been impacted by the changes, and I feel helpless beyond offering support and sharing … - [On Mastodon](https://paul.kinlan.me/on-mastodon/): I've rejoined Mastodon! Driven by the potential Twitter costs and wanting more control, I'm now self-hosting my instance for about the same price as a Twitter … - [Not yet stable](https://paul.kinlan.me/not-yet-stable/): This post explores browser compatibility data, focusing on features present in some browsers but not others. I've created a tool, "Not yet Stable," … - [What is new on the web?](https://paul.kinlan.me/what-is-new-on-the-web/): I've created a tool called "Now Stable" using Browser Compat Data (BCD) to help developers determine when web APIs become stable across different … - [Queries used for feature policy post](https://paul.kinlan.me/queries-used-for-feature-policy-post/): This post explores the usage of Feature Policy and Permissions Policy headers on the web. The data shows that 151,159 websites set either header on mobile … - [The off by default web](https://paul.kinlan.me/the-off-by-default-web/): This blog post discusses the current state of web API permissions and argues for a more restrictive "off-by-default" approach. It highlights the … - [Goodbye HTML5Rocks](https://paul.kinlan.me/goodbye-html5rocks/): HTML5Rocks, a beloved resource for web developers, is shutting down. This post reflects on the site's history, its impact, and the reasons behind its decline. … - [Thinking about Web Platform Stability](https://paul.kinlan.me/thinking-about-web-platform-stability/): This post discusses the challenges web developers face due to the constantly evolving web platform. It highlights the difficulty in keeping up with changes, … - [This is interesting](https://paul.kinlan.me/this-is-interesting/): This tool helps our team quickly bookmark and share interesting links with each other. Simply drag the provided link to your bookmarks bar to easily save and … - [Hiring for Chrome and Web Developer Relations](https://paul.kinlan.me/hiring-for-chrome-and-web-developer-relations/): The Chrome and Web Developer Relations team is significantly expanding in 2022. Open roles span program management, Chrome extensions, CSS, rendering, … - [The Wordle Wide Web](https://paul.kinlan.me/the-wordle-wide-web/): I'm so excited by the renewed interest in web development sparked by Wordle! It's a simple, fun game that highlights the power of the web. It's accessible, … - [The web that never was](https://paul.kinlan.me/the-web-that-never-was/): I'm starting a project to document web technologies that didn't become mainstream. For every success story, countless others fade away. I want to explore … - [Missing the trajectory](https://paul.kinlan.me/missing-the-trajectory/): I missed the trajectory of React's rise. Blinded by my focus on technical details, I failed to see the bigger picture of market demands and developer needs. I … - [Top web developer pain points in 2021](https://paul.kinlan.me/top-web-developer-pain-points-in-2021/): This blog post discusses the top challenges faced by web developers in 2021 based on a quarterly survey. The findings reveal that the top pain points remain … - [Sorry Safari team](https://paul.kinlan.me/sorry-safari-team/): I sincerely apologize to the Safari team for misrepresenting their compatibility score in our Chrome Dev Summit presentation. Due to a combination of personal … - [Developer Clarity](https://paul.kinlan.me/developer-clarity/): The pace of change in web development, particularly with APIs and browser updates, is overwhelming. The constant deprecation and breaking changes cause … - [Wild West Web](https://paul.kinlan.me/wild-west-web/): The web's organic growth, with examples like Google Maps' early API and widespread embeddability, leads to questions about its current design. Would we recreate … - [Chrome 100 - Does it break user agent checking?](https://paul.kinlan.me/chrome-100/): With Chrome nearing version 100, there's a concern about whether user agent checks relying on "Chrome 10" will break. Analysis of HTTP Archive data … - [Browser Compat Data - developer gold](https://paul.kinlan.me/bcd-a-hidden-web-compat-gem/): Web compatibility is a major developer concern. While projects like Compat 2021 aim to address these issues, data-driven analysis is crucial for understanding … - [Building an NPM downloads dashboard with Google Sheets](https://paul.kinlan.me/npm-downloads-dashboard/): As a data-driven manager, I needed a way to track the performance of our team's numerous NPM packages. Frustrated by the lack of an obvious API, I discovered a … - [Getting Feedback in to Chrome: Web Developer Insights Community](https://paul.kinlan.me/web-developer-insights-community/): We've been using surveys like the MDN Developer Needs Survey and our own quarterly surveys to understand web developer challenges and prioritize our efforts. … - [Developer Interface Guidelines](https://paul.kinlan.me/dig/): Many companies have Human Interface Guidelines (HIG) that dictate how their products should look and feel. But what about the developers? This post explores … - [The unofficial way to embed Squoosh into your web app.](https://paul.kinlan.me/embedding-squoosh-in-to-your-app-unofficial/): I integrated the Squoosh CLI into my web app to optimize images. Although Squoosh offers a great CLI, I needed its functionality within my app. Leveraging my … - [Chasing App Development from every angle](https://paul.kinlan.me/chasing-app-development/): The blog post explores the current state of web development, highlighting the tension between optimization demands from major players like Google and the … - [Putting an image on the page is easy, until it's not](https://paul.kinlan.me/images-are-still-too-hard/): Optimizing images for the web is crucial for Core Web Vitals, but the process is overly complex. While tools like Squoosh and web.dev guides offer help, … - [My Drafts](https://paul.kinlan.me/my-drafts/): I'm sharing my raw, unedited thoughts on modern web development here. Consider this a living document of my ideas, some old, some new, all evolving over time. … - [Are developers fixing the issue identified by lighthouse](https://paul.kinlan.me/are-developers-fixing-issues-identified-in-lighthouse/): This post explores whether developers are actively addressing issues highlighted by Lighthouse performance audits. By analyzing HTTP Archive data and tracking … - [2020 Web](https://paul.kinlan.me/2020-web/): This post explores the ever-evolving landscape of web technologies and their compatibility across different browsers and platforms. It examines tools like … - [Chrome Dev Summit 2021](https://paul.kinlan.me/chrome-dev-summit-2021/): I'm starting to think about Chrome Dev Summit 2022. Top of mind is everyone's safety with the ongoing pandemic and how to make the event as inclusive as … - [How compatible is the web?](https://paul.kinlan.me/how-compatible-is-the-web/): This post explores the concept of web compatibility and whether it can be quantified. It draws parallels to the Receiver Operating Characteristic (ROC) curve, … - [Instant SPA-without-js](https://paul.kinlan.me/instant-spa-without-js/): akachan.app is a Single Page Application (SPA) built for instant loading without using JavaScript on the client-side. Instead, all JavaScript resides in a … - [Web Developers. Want help? I want to help. Book a meeting with me.](https://paul.kinlan.me/helping-you-book-a-meeting/): I'm excited to announce that I'm starting "Office Hours" to connect directly with web developers. Following a successful run at Chrome Dev Summit, … - [Creating a quick launcher for Android using the web](https://paul.kinlan.me/creating-a-quick-launcher-for-android-using-the-web/): I built a simple tool, shortcut.cool, to create custom launchers for Android using the web. It leverages the power of PWAs, service workers, and the web app … - [Bookmarklet to download all images on a page with the File System API](https://paul.kinlan.me/bookmarklet-to-download-all-images-on-a-page-with-the-file-system-api/): I created a bookmarklet to easily download all images from my daughter's nursery school portal, which doesn't allow direct downloads. It uses the File System … - [FAB without JavaScript](https://paul.kinlan.me/fab-without-javascript/): I built a Material Design-style Floating Action Button (FAB) without using any JavaScript. This was achieved using only HTML and CSS, leveraging anchor links … - [MDN Browser Compatibility Report](https://paul.kinlan.me/mdn-browser-compatibility-report/): The MDN Browser Compatibility Report 2020 surveyed web developers to identify pain points in cross-browser compatibility. Layout and styling issues, especially … - [Simulating Apache mod_include for Vercel](https://paul.kinlan.me/simulating-apache-mod_include-for-vercel/): For my Hugo static site hosted on Vercel, I wanted a simple way to include server-side logic, like a copyright notice, without setting up a full backend. I … - [I finished reading my first book in Japanese today](https://paul.kinlan.me/i-finished-reading-my-first-book-in-japanese-today/): I'm excited to share that I read my first entire book in Japanese to my daughter! Learning Japanese has been challenging, but this milestone feels great. - [I love that my printer advertises to me](https://paul.kinlan.me/i-love-that-my-printer-advertises-to-me/): My printer decided to send me an advertisement. I'm both amused and annoyed. It knows how much ink I have, so why not just sell me that instead? - [Streaming Templates in node and the browser](https://paul.kinlan.me/streaming-templates-in-node-and-the-browser/): I needed a streaming template engine for a web app I'm building that works in Node.js, the browser, and service workers. Existing solutions like flora-tmpl … - [Shiming Request.formData in Safari](https://paul.kinlan.me/shiminig-request-formdata-in-safari/): While building a simple CRUD PWA using only service worker JavaScript and relying on Form submissions for data handling, I encountered an issue with Safari not … - [:D tabs open](https://paul.kinlan.me/d-tabs-open/): I'm on paternity leave and I realized how many tabs I have open. It's :D ridiculous. - [Twitter is using PWA shortcuts](https://paul.kinlan.me/twitter-is-using-pwa-shortcuts/): I accidentally discovered that Twitter has implemented PWA shortcuts, a feature that allows websites and web apps to provide users with quick access to common … - [View Source for Safari on iOS with Shortcuts](https://paul.kinlan.me/view-source-for-safari-on-ios-with-shortcuts/): I created a shortcut for iOS that lets you view the source code of web pages in Safari and Chrome. It's a workaround for the lack of a built-in view-source … - [Quick Console bookmarklet for Desktop and Mobile](https://paul.kinlan.me/quick-console-bookmarklet-for-desktop-and-mobile/): This blog post introduces a simple bookmarklet that provides quick access to a webpage's JavaScript console logs, warnings, and errors directly on desktop and … - [Use Bookmarklets on Chrome on Android](https://paul.kinlan.me/use-bookmarklets-on-chrome-on-android/): For years, I thought bookmarklets weren't supported on Chrome for Android. Turns out, they are! You just need to access your bookmarks through the address … - [Wordhelper.app](https://paul.kinlan.me/projects/wordhelper.app/): During lockdown, my partner and I got into crosswords and codewords. Since English isn't my partner's first language and I wasn't great at English in school, I … - [Quick Picture in Picture Bookmarklet](https://paul.kinlan.me/quick-picture-in-picture-bookmarklet/): I created a simple bookmarklet for quickly enabling Picture-in-Picture mode for videos, even on sites that disable it. Drag the "Quick PIP" … - [Getting a list of Blink Components](https://paul.kinlan.me/getting-a-list-of-blink-components/): This post provides a quick way to retrieve and filter the list of Blink components from a JSON file hosted by Chromium. The provided JavaScript snippets … - [River Dee in Llangollen before and after heavy rain](https://paul.kinlan.me/river-dee-in-llangollen-before-and-after-heavy-rain/): I love driving through North Wales, especially Llangollen, a town nestled by the River Dee. In summer, the river's flow is gentle enough to paddle in (with … - [Scroll to text bookmarklet](https://paul.kinlan.me/scroll-to-text-bookmarklet/): Just saw that Scroll To Text Fragment is launching in Chrome 81! This feature lets you link to specific text within a page, which is awesome. I created a … - [What do you want from a Web Browser Developer Relations team?](https://paul.kinlan.me/what-do-you-want-from-a-web-browser-developer-relations-team/): Celebrating my 10th anniversary at Google working on Chrome and leading a Developer Relations team. As we plan for the next few years, I'm reflecting on how we … - [Thinking about Developer Satisfaction and Web Developers](https://paul.kinlan.me/thinking-about-developer-satisfaction-and-web-developers/): This post discusses the importance of developer satisfaction, particularly for web developers, and how the MDN Web Developer Needs Assessment has influenced … - [Puppeteer go](https://paul.kinlan.me/projects/puppeteer-go/): Tired of the same old Puppeteer boilerplate? Check out my new Node.js utility library that simplifies common tasks and streamlines your workflow. Learn more on … - [Hiring: Chrome Privacy Sandbox Developer Advocate](https://paul.kinlan.me/hiring-chrome-privacy-sandbox-developer-advocate/): I'm looking for a Developer Advocate to join the Chrome team and help us improve web privacy. We have many ongoing and upcoming projects within the Privacy … - [Correct image orientation for images - Chrome 81](https://paul.kinlan.me/correct-image-orientation-for-images-chrome-81/): Chrome 81 finally fixes a long-standing bug where images taken in portrait mode on phones were displayed in landscape. Now, images will respect the orientation … - [Light fork of SimpleImage for Editor.js](https://paul.kinlan.me/light-fork-of-simpleimage-for-editor-js/): I've created a lighter fork of the SimpleImage tool for Editor.js! It addresses a couple of issues I had with the original. First, it now uses blob URLs … - [Airhorner with added Web USB](https://paul.kinlan.me/airhorner-with-added-web-usb/): I received a very cool gift this year: a Web USB-powered airhorn! It uses an Arduino Uno and some very neat code. The device waits for approval, configures, … - [Matsushima, Miyagi](https://paul.kinlan.me/matsushima-miyagi/): Matsushima, Miyagi is a beautiful seaside town an hour from Sendai. Famous for its fresh oysters, islands, and red bridges, it's a charming place to visit. … - [Yamadera, Yamagata](https://paul.kinlan.me/yamadera-yamagata/): I took a day trip to the 1000-year-old Yamadera Temple in Yamagata, Japan. The climb to the top wasn't too difficult and offered breathtaking views of the … - [Modern Mobile Bookmarklets with the ShareTarget API](https://paul.kinlan.me/modern-mobile-bookmarklets-with-the-sharetarget-api/): Mobile devices lack the bookmarklet functionality found in desktop browsers. However, the ShareTarget API offers a potential workaround. This API allows web … - [Pixel 4XL Infrared sensor via getUserMedia](https://paul.kinlan.me/pixel-4xl-infrared-sensor-via-getusermedia/): The Pixel 4 XL's infrared camera, used for face detection, can be accessed through the standard getUserMedia API. A live demo showcasing this can be found at … - [Sunset over Tokyo from Shibuya](https://paul.kinlan.me/sunset-over-tokyo-from-shibuya/): Snapped a quick pic of a stunning Tokyo sunset from my Shibuya office window. - [Harlech Castle](https://paul.kinlan.me/harlech-castle/): Had a wonderful time exploring the magnificent Harlech Castle in North Wales with my kids. The castle is well-preserved and steeped in history, perched atop a … - [Puppeteer Go](https://paul.kinlan.me/puppeteer-go/): I've created Puppeteer Go, a small JavaScript library to simplify the process of creating CLI utilities with Puppeteer. It handles the boilerplate of launching … - [A simple video insertion tool for EditorJS](https://paul.kinlan.me/a-simple-video-insertion-tool-for-editorjs/): I've created a simple video plugin for EditorJS, called simple-video, to easily embed videos. It's based on the simple-image plugin and allows for autoplay, … - [Test post Video upload](https://paul.kinlan.me/test-post-video-upload/): This is a test post to ensure video uploads are working correctly. If you can see the video below, the test was successful. - [Friendly Project Name Generator with Zeit](https://paul.kinlan.me/friendly-project-name-generator-with-zeit/): I created a micro-service for generating friendly project names using Zeit's serverless functions and a dictionary of safe words. It's deployed and available at … - [Frankie and Bennys: Pay for your meal via the web](https://paul.kinlan.me/frankie-and-bennys-pay-for-your-meal-via-the-web/): Frankie & Benny's offers a web-based payment system accessible via QR code, eliminating the need for a dedicated app. I tested the process, and while the … - [Podroll](https://paul.kinlan.me/podroll/): I love podcasts, but finding new ones is tough! I mostly rely on friend's recommendations. To make discovery easier, I'm sharing my personal podroll, which … - [Adding "dark mode" to my blog](https://paul.kinlan.me/adding-dark-mode-to-my-blog/): I added dark mode to my blog! Inspired by Jeremy Keith, I used CSS custom properties and media queries to switch between light and dark themes based on the … - [Using Web Mentions in a static site (Hugo)](https://paul.kinlan.me/using-web-mentions-in-a-static-sitehugo/): This blog post discusses how to integrate Webmentions into a statically generated website built with Hugo, hosted on Zeit. Static sites lack dynamic features … - [Creating a pop-out iframe with adoptNode and "magic iframes"](https://paul.kinlan.me/creating-a-popout-iframe-with-adoptnode-and-magic-iframes/): I explored the concept of "magic iframes" and using adoptNode to move iframes between windows. Initially, I thought I'd found a way to preserve iframe … - [Meatspace Augmented Reality: From Chester to Nagoya](https://paul.kinlan.me/meatspace-augmented-realityfrom-chester-to-nagoya/): During my travels, I encountered two distinct augmented reality (AR) experiences: one in Chester, UK, and another in Nagoya, Japan. The Chester experience, … - [Photos from Carlisle Castle](https://paul.kinlan.me/photos-from-carlisle-castle/): Just got back from a trip to Carlisle Castle with the lads! It's a must-see if you're in the area. Learned a lot about its history in the conflicts between … - [Idle observation: Indexing text in images](https://paul.kinlan.me/idle-observationindexing-text-in-images/): During a trip to Llangollen, I noticed that the historical information on local signs wasn't available online. This sparked an idea to make such information … - [Liverpool World Museum](https://paul.kinlan.me/liverpool-world-museum/): I recently took my kids to the Liverpool World Museum. While some areas like the Space and Time section and the Bug enclosure were a bit underwhelming, the … - [Bookstore - Llangollen](https://paul.kinlan.me/bookstorellangollen/): I revisited a bookstore in Llangollen, located above a cafe, that I fondly remember from my childhood visits with my grandparents. It's charmingly unchanged, … - [Webmention.app](https://paul.kinlan.me/webmention-app/): I've added Webmention support to my blog! I'm excited about Webmentions because they allow decentralized commenting and reactions, unlike Disqus which I'm … - [Creating a commit with multiple files to Github with JS on the web](https://paul.kinlan.me/creating-a-commit-with-multiple-files-to-github-with-js-on-the-web/): I've created a simple UI for my static site and podcast creator that allows me to quickly post new content. It uses Firebase Auth, EditorJS, Octokat.js, and … - [Screen Recorder: recording microphone and the desktop audio at the same time](https://paul.kinlan.me/screen-recorderrecording-microphone-and-the-desktop-audio-at-the-same-time/): I've been working on creating a simple screen recording software, and in this post, I share how I finally figured out how to record both microphone and desktop … - [Extracting text from an image: Experiments with Shape Detection](https://paul.kinlan.me/extracting-text-from-an-imageexperiments-with-shape-detection/): I built a Progressive Web App (PWA) that extracts text from images shared to it. It uses the Share Target API to receive images, the Shape Detection API's … - [Small shrine in Engakuji Temple near Kamakura](https://paul.kinlan.me/small-shrine-in-engakuji-temple-near-kamakura/): This photo captures a small, serene shrine nestled within the grounds of Engakuji Temple, located near Kamakura, Japan. The image highlights the traditional … - [Wood Carving found in Engakuji Shrine near Kamakura](https://paul.kinlan.me/wood-carving-found-in-engakuji-shrine-near-kamakura/): Discovered this incredible wood carving at Engakuji Shrine near Kamakura! More details to come soon. - [Sakura](https://paul.kinlan.me/sakura/): This photo features a beautiful Yaezakura cherry blossom, a specific type of sakura known for its many layered petals. The image captures the delicate pink … - [Debugging Web Pages on the Nokia 8110 with KaiOS using Chrome OS](https://paul.kinlan.me/debugging-web-pages-on-the-nokia-8110-with-kaios-using-chrome-os/): This blog post provides a guide on how to debug web pages on the Nokia 8110 (KaiOS) using Chrome OS with Crostini (m75 or later). It builds upon a previous post … - [New WebKit Features in Safari 12.1 | WebKit](https://paul.kinlan.me/new-webkit-features-in-safari-12-1webkit/): Safari 12.1 introduces significant updates for web developers. Notably, Apple now recommends using the Payment Request API for Apple Pay implementations on the … - [Offline fallback page with service worker](https://paul.kinlan.me/offline-fallback-page-with-service-worker/): This post introduces a simple yet effective approach to improve offline user experience on the web using Service Workers. Instead of a browser's default … - [testing block image upload](https://paul.kinlan.me/testingblock-image-upload/): I successfully tested the image upload feature, evidenced by the accompanying image. If you see this post and the image, my test was successful! - [Editor.js](https://paul.kinlan.me/editor-js/): I've migrated my Hugo blog's editor to Editor.js. It's a block-based editor, unlike classic editors, offering more flexibility and a Medium-like experience. … - [Quick Logcat - debugging android from the web](https://paul.kinlan.me/quick-logcatdebugging-android-from-the-web/): I created Quick LogCat, a web tool for debugging Android devices without needing adb installed. It uses WebADB.js and the WebUSB API to connect to your device … - [Debugging Web Pages on the Nokia 8110 with KaiOS](https://paul.kinlan.me/debugging-web-pages-on-the-nokia-8110-with-kaios/): Debugging web pages on the Nokia 8110 (KaiOS) can be tricky due to the lack of traditional developer tools. This post outlines the steps I used to successfully … - [Object Detection and Augmentation](https://paul.kinlan.me/object-detection-and-augmentation/): I've been exploring Chrome's Shape Detection API and its potential, even creating a QR code detector with a JS polyfill. While I appreciate the API, I'm more … - [Got web performance problems? Just wait...](https://paul.kinlan.me/got-web-performance-problemsjust-wait/): Building web experiences for low-end devices in developing markets presents significant performance challenges. Limited memory, slow network speeds, and slow … - [Browser Bug Searcher](https://paul.kinlan.me/browser-bug-searcher/): Check out Browser Bug Searcher, a tool created by Robert Nyman and Eric Bidelman that helps you easily search for bugs across major browser engines. It's a … - [Github's Web Components](https://paul.kinlan.me/githubs-web-components/): While searching for a markdown editor on webcomponents.org to simplify blog posting, I discovered a useful collection of web components by Github. I was already … - [London from Kingscross](https://paul.kinlan.me/london-from-kingscross/): A quick photo of the London skyline from near Kings Cross station. The weather is looking up! - [The GDPR mess](https://paul.kinlan.me/the-gdpr-mess/): The implementation of GDPR consent across the industry is flawed and confusing. Many consent mechanisms offer choices that seem meaningless, as users often … - [Brexit: History will judge us all](https://paul.kinlan.me/brexithistory-will-judge-us-all/): This blog post reflects on the Brexit situation, expressing the author's dismay and belief that history will judge everyone involved. It points to nationalism, … - [File Web Share Target](https://paul.kinlan.me/file-web-share-target/): The File Web Share Target API is a new, powerful feature in Chrome Canary that allows web apps to receive files (like images) shared from other apps, much like … - [Testing-file-share-target-from-camera](https://paul.kinlan.me/testing-file-share-target-from-camera/): I successfully tested sharing a photo directly from the camera app to another app. Check it out! - [testing-file-share-target](https://paul.kinlan.me/testing-file-share-target/): This blog post is a test of the Android Share Target API and its file sharing capabilities. If the image displays successfully, the test is considered … - [Ricky Mondello: Adoption of Well-Known URL for Changing Passwords](https://paul.kinlan.me/ricky-mondelloadoption-of-well-known-url-for-changing-passwords/): I recently noticed Twitter has adopted the Well-Known URL for Changing Passwords, which is a simple yet effective way to improve user experience. This spec … - [pinch-zoom-element](https://paul.kinlan.me/pinch-zoom-element/): I've just added the pinch-zoom-element web component to my photography blog. It's a tiny (~3kb), dependency-free custom element that allows for easy … - [Registering as a Share Target with the Web Share Target API](https://paul.kinlan.me/registering-as-a-share-target-with-the-web-share-target-api/): The Web Share Target API is now available as an origin trial in Chrome, bridging the gap between web and native apps. Previously, only native apps could … - [Why Build Progressive Web Apps: Push, but Don't be Pushy! Video Write-Up](https://paul.kinlan.me/why-build-progressive-web-appspushbut-don-t-be-pushyvideo-write-up/): This post discusses the importance of using push notifications responsibly in Progressive Web Apps (PWAs). It highlights the negative impact of intrusive … - [Maybe Our Documentation "Best Practices" Aren''t Really Best Practices](https://paul.kinlan.me/maybe-our-doc-best-practices-arent-really-best-practices/): I recently conducted an experiment challenging common documentation "best practices." I found that some widely accepted guidelines may not be as … - [file-drop custom element](https://paul.kinlan.me/projects/file-drop/): I created a custom element, <file-drop>, for the squoosh.app project. It simplifies file uploads by acting as a drag-and-drop target and is under 1kb … - [Feature Policy & the Well-Lit Path for Web Development (Chrome Dev Summit 2018)](https://paul.kinlan.me/feature-policythe-well-lit-path-for-web-developmentchrome-dev-summit-2018/): Feature Policy is a powerful web platform tool that allows developers to control the behavior of APIs and features, similar to CSP. It helps manage third-party … - [Photos from Chrome Chrome Dev Summit 2018](https://paul.kinlan.me/photos-from-chrome-chrome-dev-summit-2018/): Check out these awesome photos I took at the Chrome Dev Summit 2018! See if you can spot me in the crowd - I'm hiding like Wally. Find me, and you win a … - [Chrome Dev Summit 2018](https://paul.kinlan.me/chrome-dev-summit-2018/): Excited for the 6th Chrome Dev Summit! Join us for two days of exploring modern web experiences. Day 1: Web of Today - focusing on Speed, UI, and Capability in … - [Creating a simple boomerang effect video in javascript](https://paul.kinlan.me/simple-boomerang-video/): Creating a boomerang video effect on the web has been tricky, especially in real-time. I built an Instant Boomerang Creator that uses some lesser-known APIs to … - [Grep your git commit log](https://paul.kinlan.me/grep-your-git-commit-log/): This blog post provides a quick tip for searching your Git commit history for a specific term or regular expression. Use the command git grep your-regex-here … - [Performance and Resilience: Stress-Testing Third Parties by CSS Wizardry](https://paul.kinlan.me/performance-and-resiliencestress-testing-third-parties-by-css-wizardry/): My QRCode scanner app in China ran into an issue offline: the camera wouldn't start due to a Google Analytics request hanging in the onload event. This … - [Chrome Bug 897727 - MediaRecorder using Canvas.captureStream() fails for large canvas elements on Android](https://paul.kinlan.me/chrome-bug-897727mediarecorder-using-canvas-capturestreamfails-for-large-canvas-elements-on-android/): I've encountered a bug in Chrome on Android where MediaRecorder, using Canvas.captureStream(), fails to encode video from large canvas elements (e.g., … - [Why Microsoft and Google love progressive web apps | Computerworld](https://paul.kinlan.me/why-microsoft-and-google-love-progressive-web-appscomputerworld/): This post discusses Progressive Web Apps (PWAs) and why companies like Microsoft and Google are embracing them. While PWAs offer instant access to content and … - [Building a video editor on the web. Part 0.1 - Screencast](https://paul.kinlan.me/building-a-video-editor-on-the-web-screencasting/): In this post, I'm sharing a screencast demonstrating how I built a web-based webcam and screen recorder using the navigator.getDisplayMedia API. This allows … - [894556 - Multiple video tracks in a MediaStream are not reflected on the videoTracks object on the video element](https://paul.kinlan.me/crbug-894556-multiple-video-tracks-in-a-mediastream-are-not-reflected-on-the-videotracks-object-on-the-video-element/): While building a web-based video editor, I encountered an issue with handling multiple video tracks in a MediaStream. I wanted to switch between different … - [Building a video editor on the web. Part 0.](https://paul.kinlan.me/building-a-video-editor-on-the-web-with-the-web/): I'm embarking on a project to build a web-based video editor! The goal is to create a tool that simplifies video creation and editing entirely within the … - [Barcode detection in a Web Worker using Comlink ](https://paul.kinlan.me/barcode-detection-in-a-web-worker-using-comlink/): In this post, I share how I used Comlink to simplify the worker logic in my QRSnapper project, which aims to achieve 60fps UI and near-instant QR code detection … - [Running FFMPEG with WASM in a Web Worker](https://paul.kinlan.me/running-ffmpeg-with-wasm-in-a-web-worker/): I combined FFMPEG.js, a tool compiled with asm.js for video editing in web apps, with Comlink, a library that simplifies web worker interactions. This … - [Translating a blog using Google Cloud Translate and Hugo](https://paul.kinlan.me/translating-a-blog-using-google-cloud-translate-and-hugo/): Inspired by a recent trip to India and the emphasis on local language content, I developed a script to translate my Hugo-based blog using Google Cloud … - [Apple - Web apps - All Categories](https://paul.kinlan.me/appleweb-appsall-categories/): This blog post reminisces about Apple's promotion of web apps for iPhone before the App Store became dominant. It highlights the now-defunct /webapps/ directory … - [Gears API](https://paul.kinlan.me/gears-api/): In the early days of mobile web development, Google Gears played a pivotal role in shaping the APIs we use today. It introduced concepts like local caching, … - [RSS Feed to Google Chat Webhook using Cloud Functions for Firebase and Superfeedr](https://paul.kinlan.me/rss-feed-to-google-chat-webhook-using-firebase-functions-and-superfeedr/): I created a simple service using Firebase Functions and Superfeedr to post new entries from RSS feeds to our Google Chat room. Superfeedr polls RSS feeds, … - [Using HTTPArchive and Chrome UX report to get Lighthouse score for top visited sites in India.](https://paul.kinlan.me/crux-topsites-and-lighthouse-scores-for-india/): In this post, I explored how to use data from the Chrome UX Report, HTTPArchive, and BigQuery to better understand web performance in India. Instead of just … - [Getting Lighthouse scores from HTTPArchive for sites in India.](https://paul.kinlan.me/lighthouse-scores-for-in-domains/): In preparation for a trip to India and future developer relations work, I explored the Indian web landscape using HTTPArchive and Lighthouse data. I analyzed … - ['Moving to a Chromebook' by Rumyra's Blog](https://paul.kinlan.me/moving-to-a-chromebookby-rumyras-blog/): I temporarily switched to a Chromebook (Pixelbook) after my main machine broke. Setting up Crostini, the Linux container environment, was a little tricky due … - [PWA: Progressive Web All-the-things](https://paul.kinlan.me/pwa-progressive-web-all-the-things/): This blog post discusses the evolution of Progressive Web Apps (PWAs) since their inception in 2015. While PWAs offer numerous benefits like offline … - [What are the pain points for web designers? - Mustafa Kurtuldu](https://paul.kinlan.me/what-are-the-pain-points-for-web-designersmustafa-kurtuldu/): Web design faces several persistent challenges. Tooling is complex and constantly evolving, making it difficult for designers to keep up. Demonstrating the … - [Page Lifecycle API - Philip Walton](https://paul.kinlan.me/page-lifecycle-apiphilip-walton/): The Page Lifecycle API introduces lifecycle states to the web, giving developers control over how their web apps respond to browser actions like tab unloading … - [Add to homescreen changes in Chrome 68 - Pete LePage](https://paul.kinlan.me/new-in-chrome-68webgoogle-developers/): In Chrome 68, the Add to Homescreen banner will no longer automatically appear, even if the site meets the criteria. Instead, developers have control over … - [A one year PWA retrospective - Pinterest Engineering](https://paul.kinlan.me/a-one-year-pwa-retrospectivepinterest-engineering/): We rebuilt Pinterest's mobile web experience as a PWA and the results after one year have exceeded our expectations. Weekly active users on mobile web have … - [Configuring hugo server to serve 'mjs' ES modules](https://paul.kinlan.me/configuring-hugo-server-to-servermjses-modules/): Hugo, by default, doesn't serve .mjs files with the correct MIME type, which is necessary for using ES modules. However, starting with v0.43, you can configure … - [Thoughts on importing npm modules to the web as JavaScript modules](https://paul.kinlan.me/thoughts-on-importing-npm-modules-to-the-web-as-javascript-modules/): In this post, I explore importing npm modules into web projects using ES6 modules. I needed a quick way to use the 'get-urls' npm module in my ES6 project … - [Importing npm modules to the web as JavaScript modules](https://paul.kinlan.me/importing-npm-modules-to-the-web-as-es6-modules/): In this post, I share a Rollup configuration I created to easily import npm modules into a front-end project using ES6 modules. I needed a way to use the … - [This.Javascript: State of Browsers - YouTube](https://paul.kinlan.me/this-javascript--state-of-browsers---youtube/): I recently had the pleasure of attending and thoroughly enjoying a live stream hosted by This Dot, featuring browser representatives from Brave, Beaker, Edge, … - [PWACompat: the Web App Manifest for all browsers - @ChromiumDev](https://paul.kinlan.me/pwacompat--the-web-app-manifest-for-all-browsers----chromiumdev/): PWACompat is a JavaScript library that helps web developers make their Progressive Web Apps (PWAs) compatible across different browsers. It takes the existing … - [Font Playground - Play with variable fonts!](https://paul.kinlan.me/font-playground---play-with-variable-fonts/): Font Playground is a tool I've created for experimenting with variable fonts. It's designed for typographers and designers to explore the creative potential of … - [did.txt file - Patrick](https://paul.kinlan.me/did-txt-file---patrick/): Keeping a 'did.txt' file is a simple yet effective way to track daily progress and solidify learning, especially useful when learning to code. It's similar to … - [Hyperlinking Beyond the Web - CSS-Tricks](https://paul.kinlan.me/hyperlinking-beyond-the-web---css-tricks/): I explored the power of hyperlinks beyond traditional web pages, emphasizing their potential to connect apps and websites more seamlessly. Current linking … - [Google Doesn't Have the Guts to Make Page Speed Actually Matter](https://paul.kinlan.me/google-doesn-t-have-the-guts-to-make-page-speed-actually-matter/): This post discusses the importance of web performance and the role of different stakeholders in prioritizing it. It highlights the trend of increasing … - [TRACK | A WebGL Experiment by Little Workshop](https://paul.kinlan.me/track---a-webgl-experiment-by-little-workshop/): TRACK is a musical and visual journey built with WebGL and WebVR. It features an evolving abstract environment made from procedurally generated geometric … - [Getting started with the Ambient Light Sensor](https://paul.kinlan.me/getting-started-with-the-ambient-light-sensor/): I explored the Ambient Light Sensor API, a new feature available in PWAs. It lets developers access ambient light levels in lux units, useful for various … - [Web Architecture 101 - VideoBlocks](https://paul.kinlan.me/web-architecture-101---videoblocks/): This blog post provides a basic overview of web architecture concepts that are helpful for new web developers. It covers a standard, scalable web stack and … - [Introduction to Feature Policy](https://paul.kinlan.me/introduction-to-feature-policy/): Feature Policy is a new web platform API designed to help developers maintain control over their web app's performance, security, and user experience. It … - [Understanding Storage Quota | Workbox](https://paul.kinlan.me/understanding-storage-quota-----workbox/): Workbox helps developers understand and manage storage quota issues, particularly those related to runtime caching of opaque responses. Opaque responses, which … - [Emscripten's compiled Web Assembly, used minimally](https://paul.kinlan.me/emscriptenscompiledwebassemblyusedminimally-devcommunity/): Emscripten is a great tool for compiling to WebAssembly, but it can introduce unnecessary overhead. It's important to minimize the runtime size for any … - [Designing with the Gestalt principles](https://paul.kinlan.me/designingwiththegestaltprinciplesmustafagooglechrome/): The Gestalt principles are rules explaining how humans perceive organized patterns. This post focuses on the principles related to grouping: proximity, … - [JakeHorner](https://paul.kinlan.me/projects/jakehorner/): I've created the world's best Jake Horner! He's a PWA airhorn with custom styling and animation, complete with a bobbing head. Check out the live demo and code … - [Web Share Target API](https://paul.kinlan.me/web-share-target-api/): The Web Share Target API is now available in Chrome Canary on Android. This API allows websites to register as share targets, similar to native apps. You … - [onappinstalled - for when an app is installed.](https://paul.kinlan.me/onappinstalled/): This post covers the onappinstalled event, recently implemented in Chrome, which is triggered when a user installs a PWA. This is a valuable tool for tracking … - [Bookmarklet: Chrome DevTools trace page](https://paul.kinlan.me/bookmarklet-trace-page/): This bookmarklet allows you to quickly generate and view a performance trace of the current web page. It leverages a hosted Chrome DevTools interface and a … - [Puppeteer as a service](https://paul.kinlan.me/projects/puppeteeraas.com/): I'm excited about the potential of the Headless Web, especially running browsers on servers. My project, Puppeteer As A Service (PuppeteerAAS), leverages … - [Hosting Puppeteer in a Docker container](https://paul.kinlan.me/hosting-puppeteer-in-a-docker-container/): This blog post details how to host a Puppeteer-driven web application inside a Docker container. I've created a Dockerfile that installs Chrome, necessary … - [domcurl: curl + JavaScript](https://paul.kinlan.me/domcurl/): I've been exploring the potential of the Headless Web, a future where web technologies power everything without traditional browsers. I created domcurl, a … - [Topicdeck](https://paul.kinlan.me/projects/topicdeck/): I created TopicDeck, a TweetDeck-inspired tool to organize and aggregate RSS feeds. It's available as an npm module and powers instances like … - [DOMCurl](https://paul.kinlan.me/projects/domcurl/): DOMCurl is a tool that combines the simplicity of cURL with the ability to execute JavaScript, making it perfect for fetching dynamically rendered content from … - [Using CSP Nonces effectively with service worker](https://paul.kinlan.me/using-nonce-with-service-workers/): This blog post discusses the challenges of using Content Security Policy (CSP) nonces with service workers and offers a solution. CSP nonces enhance security … - [We need DOM APIs in Workers](https://paul.kinlan.me/we-need-dom-apis-in-workers/): I need DOM APIs in Workers to efficiently process and manipulate XML/HTML data, crucial for projects like my RSS feed reader where consistent data handling … - [A simple clientside templating langauge](https://paul.kinlan.me/a-simple-dom-template-language/): I created a simple client-side templating solution for binding JSON data to DOM elements without external libraries. It uses data attributes like … - [Challenges for web developers](https://paul.kinlan.me/challenges-for-web-developers/): This post summarizes the challenges web developers face daily, aiming to identify areas where improvements can be made. These challenges span various aspects … - [Breaking down silos by sharing more on the web](https://paul.kinlan.me/breaking-down-silos-with-share-target-api/): This post discusses the problem of content silos on the web, particularly how native apps dominate sharing functionalities, limiting the web's reach. It … - [An Investigation into Real-time Fraud Detection in the Telecommunications Industry (2003-ish)](https://paul.kinlan.me/telecom-fraud-detection/): What is this? This is my Software Engineering final year project for University from about 2003. I used to be work in the Fraud Detection industry (mortgage and … - [GDE Deck](https://paul.kinlan.me/projects/gdedeck/): I'm incredibly proud of the Web GDE program, a global community of top-tier web developers who are dedicated to building amazing web experiences and supporting … - [The Web is my API](https://paul.kinlan.me/the-web-is-my-api/): I've always been fascinated by the potential of the web as an API, an idea I first encountered through Michael Mahemoff's work with microformats and CORS. … - [Reinventing Web Intents](https://paul.kinlan.me/reinventing-web-intents/): I've been exploring solutions to connect web apps and overcome the limitations of isolated experiences. Web Intents was a good start, but ultimately fell … - [Web sites as unintended silos: The problem with getting data in and out of the web client](https://paul.kinlan.me/unintended-silos/): This post explores the challenges of getting data in and out of web applications on the client-side. While the web excels at server-to-server and … - [Web and Chrome Developer Relations manifesto](https://paul.kinlan.me/web-developer-relations-manifesto/): This post seeks feedback from web developers on the Web and Chrome Developer Relations team's goals and priorities. It proposes a manifesto focusing on making … - [Progressive Progressive Web Apps](https://paul.kinlan.me/progressive-progressive-web-apps/): I explored building a progressive web app (PWA) without relying solely on the app shell model. I wanted a PWA that works without JavaScript, functions without … - [Minifying a Custom Element that contains inline CSS and HTML](https://paul.kinlan.me/minifiying-a-custom-element-es6-class/): I wanted to create a custom element (a share button) using an ES6 class, keeping everything (HTML, CSS, JS) within the class for better encapsulation and … - [Airhorner Custom Element](https://paul.kinlan.me/projects/airhorner-custom-element/): I created the <air-horner> custom element as a learning experiment to explore the web component ecosystem and its scalability challenges. While not … - [Defining web component interfaces](https://paul.kinlan.me/defining-web-component-interfaces/): I've been working with web components and noticed the difficulty in understanding element interfaces. While webcomponents.org and Polymer offer some … - [Issue with css variables and button background styling](https://paul.kinlan.me/css-vars-issues-with-background/): I encountered a styling issue with CSS variables and button backgrounds while creating a custom element. Setting a button's background-color to a CSS variable, … - [Creating a share button web component](https://paul.kinlan.me/creating-a-share-button-web-component/): I spent a year creating a share button web component, inspired by a blog post about the importance of URLs in web apps. The component aims to improve URL … - [Detecting text in an image on the web in real-time](https://paul.kinlan.me/detecting-text-in-an-image/): I'm excited to share the latest addition to the Shape Detection API: the Text Detection API! This API allows you to detect text within images in real-time, … - [How should we load web components?](https://paul.kinlan.me/loading-web-components/): I'm exploring the best way to load web components, focusing on how to include styles and templates without creating uncontrolled blocking requests. I've … - [3 predictions for the web and platforms in 2017](https://paul.kinlan.me/2017-3-predictions-for-the-web-and-platforms/): In this post, I'm making three predictions for the web and platforms in 2017, building on my previous post about what excites me on the web. First, I predict … - [Fullstack Web Assembly](https://paul.kinlan.me/fullstack-wasm/): This blog post explores the potential of WebAssembly (Wasm) for full-stack development, allowing code sharing between client and server. I discuss how Wasm … - [Exciting times: 2017 and the web](https://paul.kinlan.me/2017-exciting-times/): I'm really excited about the future of the web in 2017! There's so much happening, from Web Assembly and Web Components becoming widely available to … - [Whither Flash. Now what?](https://paul.kinlan.me/whither-flash/): With Flash support ending in 2017, developers face a crucial decision: migrate to HTML5 or abandon the web. While the web platform now offers many features … - [Experimenting with Cloud Functions for use in Web Push](https://paul.kinlan.me/cloud-functions/): This blog post describes an experiment using Google Cloud Functions to handle web push notifications for services that don't natively support them. I needed a … - [Running Chrome on AppEngine](https://paul.kinlan.me/running-chrome-on-appengine/): I've always loved App Engine, but its limitations held it back. Now, with Docker and the flexible environment, we can run Headless Chrome on App Engine! This … - [2016: Chrome and Web Developer Relations year in review](https://paul.kinlan.me/2016-devrel-year-in-review/): In 2016, our web developer relations team focused on addressing the challenges faced by web developers and promoting the web as a vital platform. Key concerns … - [Seconds to HH:MM:SS.MS format](https://paul.kinlan.me/seconds-to-timecode/): I created a quick JavaScript function to convert seconds to an HH:MM:SS timecode format for use with tools like FFMPEG. The function takes in the total seconds … - [Screen recording on Android with getUserMedia and WebRTC](https://paul.kinlan.me/screen-recording-with-getusermedia-and-webrtc/): Sharing a live demo during presentations can be tricky, but screen recordings offer a reliable alternative. I've developed various tools for screen recording … - [Chrome on Google Home](https://paul.kinlan.me/chrome-on-home/): I created a proof-of-concept integration of Google Home with a headless Chrome instance running on a server. This setup allows Google Home to "read" … - [Building a simple PubSub system in JavaScript](https://paul.kinlan.me/building-a-pubsub-api-in-javascript/): In this post, I share a simple client-side JavaScript PubSub system I built. Motivated by the Not-Invented-Here syndrome and the desire for independent UI … - [Barcode detection using Shape Detection API](https://paul.kinlan.me/barcode-detection/): I'm excited to share that barcode detection is now available in Chrome Canary via the Shape Detection API! This feature, along with QR code detection, offers a … - [Ideas for web apps with FFMPEG and ffmpeg.js](https://paul.kinlan.me/ffmpeg-ideas/): I've created a Progressive Web App using FFMPEG.js that applies device frames to Android screen recordings. I've also streamlined the ffmpeg.js build process. … - [Building ffmpeg.js for Ubuntu](https://paul.kinlan.me/building-ffmpeg.js/): Building ffmpeg.js, a tool I used in my project Device Frame, can be tricky if you need custom filters and encoders. This post details the steps I took to … - [Designing a Web Push Service](https://paul.kinlan.me/designing-a-webpush-service/): This post details the creation of a generic web-push webhook endpoint. Motivated by the desire for a streamlined notification system for various web services, … - [Material colour pallette](https://paul.kinlan.me/material-colour-pallette/): This blog post showcases a Material Design color palette, converted from an Adobe Color (.aco) file using the Color Palette Toolkit. It's primarily for … - [Service Worker Routing](https://paul.kinlan.me/service-worker-routing/): In this post, I discuss a new routing framework I've added to my service worker. It's based on my older LeviRoutes project and allows me to handle different URL … - [My blog's Service Worker and Caching Strategy Part 2](https://paul.kinlan.me/my-blogs-service-worker-and-caching-strategy-part-2/): In this follow-up post, I've revised my blog's Service Worker and caching strategy to address previous issues, particularly the Firefox incompatibility due to … - [GRPC + Google Cloud: Cannot find module grpc_node.node](https://paul.kinlan.me/google-cloud-node-npm-grpc/): If you're encountering the 'Cannot find module grpc_node.node' error when using the 'google-cloud' npm module on Google Compute Engine (Ubuntu), try rebuilding … - [Face detection using Shape Detection API](https://paul.kinlan.me/face-detection/): I'm excited about the new experimental Shape Detection API in Chrome Canary! It provides a simple JavaScript API for face and barcode detection, leveraging … - [Custom Elements: an ecosystem still being worked out](https://paul.kinlan.me/custom-elements-ecosystem/): Web Components, specifically Custom Elements, offer exciting possibilities for web development. However, the current ecosystem is still evolving and has … - [Measuring the impact of autofill on your forms](https://paul.kinlan.me/detecting-when-autofill-happens/): Measuring the impact of autofill is crucial. In WebKit/Blink browsers, the -webkit-autofill pseudo-class helps track autofill, but it's not supported in … - [Some thoughts on the microbit](https://paul.kinlan.me/microbit-first-experimentation/): I gave my son a micro:bit for his birthday, hoping to introduce him to programming. While he preferred FIFA, I ended up having a blast exploring the device … - [Waiting for an element to be created](https://paul.kinlan.me/waiting-for-an-element-to-be-created/): In my quest to understand how to detect when a field has been autofilled, I needed a way to monitor the events of an element that doesn't exist yet. I created a … - [Monitor all Events on an Element](https://paul.kinlan.me/monitoring-all-events-on-an-element/): I needed to figure out how to monitor events on an element (like when a field is autofilled) and Chrome DevTools has a monitorEvents function, but Firefox … - [Simple sharing on the web with navigator.share](https://paul.kinlan.me/navigator.share/): I'm excited to share a new, simple API for sharing on the web called navigator.share! It's available in Chrome Dev Channel on Android and allows websites to … - [Use-cases for sockets API on the web](https://paul.kinlan.me/sockets-usecases-on-the-web/): There's a growing interest in using socket APIs directly within web browsers for various applications, both client-side and server-side. This post lists … - [The Headless Web](https://paul.kinlan.me/the-headless-web/): This post revisits my 2014 "Headless Web" concept: a web where users interact minimally with web pages in browsers, instead building long-term … - [Automating Android screen recording and device framing](https://paul.kinlan.me/android-screen-recording-and-device-framing/): In a previous post, I discussed screen recording from Android. This post details how I automated the process of adding a device frame to those recordings, … - [The Lumpy Web](https://paul.kinlan.me/the-lumpy-web/): The web is "lumpy" due to inconsistencies between browser implementations of web standards. These inconsistencies can be categorized as lumps … - [Thoughts on the Credential Management API](https://paul.kinlan.me/credential-management-api/): Tired of typing in usernames and passwords? So are your users. Autofill helps, but the Credential Management API gives developers more control. It lets you … - [An organizer's perspective on Progressive Web App Dev Summit](https://paul.kinlan.me/organisers-persective-on-progressive-web-app-dev-summit/): The Progressive Web App Dev Summit in Amsterdam went well, with positive feedback from attendees. A big thanks to all speakers, especially the Day 2 speakers … - [Ephemeral social or content networks](https://paul.kinlan.me/ephemeral-social-network/): This post explores the concept of an ephemeral social network built using BitTorrent. The idea is that content is created locally within a web app and only … - [Testing Podcast](https://paul.kinlan.me/podcast-test/): I've successfully integrated WebTorrent streaming and bit torrent URLs into my blog! This allows me to distribute content like this test podcast without relying … - [My blog's Service Worker and Caching Strategy](https://paul.kinlan.me/my-blogs-service-worker-and-caching-strategy/): This blog post discusses the implementation of a Service Worker for my blog, with a focus on the caching strategy. I've chosen a "Stale While … - [Serverless Data Sync in Web Apps with Bit Torrent](https://paul.kinlan.me/serverless-sync-in-web-apps/): This post explores using WebTorrent for serverless data synchronization in web apps, demonstrated by modifying the Voice Memos PWA. The goal was to enable data … - [Shadow DOM and Progressive Enhancement to create a Sharing component](https://paul.kinlan.me/shadowdom-and-progressive-enhancement-to-create-a-sharing-component/): I explored building a progressively enhanced sharing web component using Shadow DOM. My focus was on URL visibility and manipulation within web apps, even when … - [Notification test page](https://paul.kinlan.me/notification-test/): This is a test page for notification functionality. It includes JavaScript code that reads query string parameters from the URL and displays them in a … - [What were the UX issues with Web Intents?](https://paul.kinlan.me/what-were-the-ux-issues-with-web-intents/): This post revisits the UX issues that contributed to the demise of Web Intents. We never adequately addressed the wide array of potential actions and data … - [Inline web-page Android intent fallback detection](https://paul.kinlan.me/android-intent-fallback-detection/): This post explores how to use Android Intents to detect if a native app is installed. This technique is useful for web apps that also have a native app version, … - [Every browser should support a style of 'intent:' URL syntax](https://paul.kinlan.me/every-browser-should-support-intent-urls/): Custom URL schemes for launching apps have limitations: single app handling, one-way data flow, lack of fallback, and limited mobile support. A better approach … - [Launch an Android app from the web and cleanly fallback to web](https://paul.kinlan.me/launch-app-from-web-with-fallback/): Sharing content between web and apps is difficult due to platform incompatibility. Android's intent system offers a potential solution, but it lacks … - [Service discovery and app interactions on the web](https://paul.kinlan.me/service-discovery-on-the-web/): I'm passionate about web and app interactions. Currently, inter-application communication is poor, lacking a robust service discovery mechanism. While we have … - [Quickly capturing screen recordings from an Android device](https://paul.kinlan.me/android-screen-recording/): Creating screen recordings on Android can be cumbersome. This post introduces a helpful script to simplify the process. The script automates enabling demo … - [Triggering a native Share intent on Android from the web](https://paul.kinlan.me/sharing-natively-on-android-from-the-web/): Sharing content natively on Android from the web is now possible using Intents. This post explains how to trigger the native Android share dialog directly from … - [Rise of the meta-platforms and the new 'web browser'](https://paul.kinlan.me/rise-of-the-meta-platforms/): The web, a meta-platform used through other platforms, faces competition from emerging meta-platforms like Facebook, WhatsApp, and WeChat, which offer content … - [There is no spoon: Why I still say Mobile](https://paul.kinlan.me/why-i-still-say-mobile/): While I agree with Benedict Evans that mobile is becoming the primary platform for internet access, I'll continue using the term "Mobile X" (e.g., … - [Be Instant and Engaging on the mobile web - Google for Mobile India](https://paul.kinlan.me/be-instant-and-engaging-on-the-mobile-web/): In this post, based on my recent trip to India for the "Google for Mobile India" event, I explore how the mobile web can be just as engaging, if not … - [The future of the web on mobile from Coldfront Conf](https://paul.kinlan.me/future-of-web-on-mobile-coldfront-conf/): This presentation from Coldfront Conf explores the future of the web on mobile, arguing that while the web's reach is expanding, it faces challenges from native … - [Using Service Worker for server-side adaption based on network type](https://paul.kinlan.me/using-service-worker-server-side-adaption-based-on-network-type/): I explored how to use Service Workers to improve web performance based on network conditions. My previous post discussed the challenges of serving content in … - [The Web in India: Anecdote 3 - 2G is still massive](https://paul.kinlan.me/the-web-in-india-anecdote-3/): During my work trip to India, I discovered that 2G is still widely used, even with the availability of 3G. However, overloaded 3G networks often perform worse … - [The Web in India: Anecdote 2 - UC Browser is getting in front of users](https://paul.kinlan.me/the-web-in-india-anecdote-2/): During my work trip to India, I discovered how actively UC Browser engages with users. They use Android intent filters to detect captive portals (like airport … - [The Web in India: Anecdote 1 - Proxy browsers don't work](https://paul.kinlan.me/the-web-in-india-anecdote-1/): During my work trip to India, I learned about challenges with proxy browsers like UC Mini and Opera Mini. Developers reported low conversion rates, especially … - [Reverse Polyfilling](https://paul.kinlan.me/the-reverse-polyfill/): This post explores the concept of "reverse polyfilling" – creating polyfills for features removed from web browsers. I argue that as the web platform … - [Working out what DNS to prefetch](https://paul.kinlan.me/quick-script-for-prefetch/): I'm really excited about the power of the window.performance API for web optimization. It provides valuable insights into network activity, helping identify … - [Deep Web App Linking](https://paul.kinlan.me/deep-web-app-linking/): I'm still passionate about making web apps easily discoverable and interlinked, even though Web Intents didn't take off as I'd hoped. We web developers boast … - [SLICE: The Web](https://paul.kinlan.me/slice-the-web/): This post discusses SLICE, a useful acronym summarizing the web's key strengths: Secure, Linkable, Indexable, Composable, and Ephemeral. I explore each … - [Goodbye Jekyll, Hello Hugo](https://paul.kinlan.me/goodbye-jekyll-hello-hugo/): Frustrated with Jekyll's slow build times, especially for larger sites like Web Fundamentals, I explored Hugo as an alternative static site generator. While … - [QR Snapper](https://paul.kinlan.me/projects/qrsnapper/): In 2014-15, I created QRSnapper to demonstrate the web's capability to host experiences comparable to native platforms. Existing QR code readers relied on … - [Deep App linking and changes to Chrome on Android](https://paul.kinlan.me/deep-app-linking-on-android-and-chrome/): Deep app linking on Android and Chrome has undergone changes to improve user experience. The core issue was websites using JavaScript to simulate clicks on … - [Parsing the screenshot that Chrome for Android includes via ACTION_SEND intent](https://paul.kinlan.me/parsing-screenshot-from-chrome-for-android-send-intent/): Chrome for Android has been quietly including screenshots in shared links via the ACTION_SEND intent. This post dives into how to parse the shared screenshot … - [Imperative Content Security Policy with Service Worker](https://paul.kinlan.me/imperative-content-security-policy-with-service-worker/): I explored ways to detect content injection on websites, primarily focusing on HTTPS and Content Security Policy (CSP). While these are good solutions, CSP … - [Detecting injected content from third-parties on your site](https://paul.kinlan.me/detecting-injected-content/): Worried about third-party content injection on your site? I was too, especially for sites not on HTTPS. While HTTPS is crucial, it's not enough. I explored … - [Weekly Web Development links](https://paul.kinlan.me/weekly-web-development-links-1st-march/): Hey everyone! Remember my promise about a bumper week of news? Well, things got slightly delayed, but I'm giving you some sneak peeks now, with the full post … - [The discovery problem.](https://paul.kinlan.me/the-discovery-problem/): The "discovery problem" is often a marketing challenge. Success depends on marketing spend, placement, and conversion. We need to shift from … - [Weekly Web Development links number 5](https://paul.kinlan.me/weekly--web-development-links-no-5/): This week's web development links focus on mobile development and performance. Learn how to bootstrap your own mini device lab for testing on multiple Android … - [Eye-dropper in Chrome Devtools for quickly picking colors from the web page](https://paul.kinlan.me/eyedropper-chrome-dev-tools/): I just discovered a super useful feature in Chrome DevTools: a built-in eye dropper! No more screenshots and Pixelmator just to grab a color from a web page. … - [What happened to Web Intents?](https://paul.kinlan.me/what-happened-to-web-intents/): Web Intents, an API designed to facilitate inter-app communication on the web, was ultimately unsuccessful due to a combination of factors. Its initial focus on … - [2 Factor Auth for physical transactions with Service Worker and Push Notifications](https://paul.kinlan.me/2-factor-auth-service-worker-and-push/): Exploring the possibility of creating a web-based 2-factor authentication system for physical transactions using Service Workers and Push Notifications. … - [Walking, talking and ideas for web apps](https://paul.kinlan.me/walking-talking-and-ideas-for-web-apps/): In this post, I discuss how to generate ideas for web apps, inspired by Roman Nurik's "Walk, then Talk" principle. Our team in Chrome Developer … - [The future of communications apps is on the web](https://paul.kinlan.me/communications-apps-on-the-web/): Native communication apps are popular, but the web offers a compelling alternative in 2015. Key advantages of web apps include easier user acquisition (no … - [What do people want from a news experience?](https://paul.kinlan.me/what-news-readers-want/): I'm exploring how web technology can better serve specific app verticals, starting with News. Many news organizations are seeing growth primarily in mobile … - [Living with Web Apps](https://paul.kinlan.me/living-with-web-apps/): I spent a day using only web apps on my phone to see if it's possible to live with just the web. While I could get some things done, many issues prevent web … - [Airhorner](https://paul.kinlan.me/projects/airhorner/): Airhorner, the world's first PWA, demonstrates the power of service workers for offline functionality. Its simplicity made it a key example for Chrome and … - [Web Fundamentals](https://paul.kinlan.me/projects/webfundamentals/): Web Fundamentals is a Google project I've worked on that focuses on best practices for multi-device web development. Launched in 2014 as search was shifting to … - [This is the web platform](https://paul.kinlan.me/this-is-the-web-platform/): The web platform's inconsistency across browsers and devices makes development challenging. While iwanttouse.com helps determine feature support and user reach, … - [Add to home screen is not what the web needs. Is it?](https://paul.kinlan.me/add-to-homescreen-not-the-answer/): While there's been much discussion about standardizing "Add to Homescreen" functionality, I believe we're focusing on the wrong solution. Developers … - [Using the Github API to optimise your workflow](https://paul.kinlan.me/using-the-github-api-to-optimise-your-workflow/): This blog post details how the HTML5 Rocks team leveraged the GitHub API to streamline their content publishing workflow. Previously, a manual process involved … - [Auto-deploying Jekyll via Github](https://paul.kinlan.me/auto-deploying/): This post announces the implementation of automatic deployment for this blog, powered by Jekyll (Octopress) and GitHub WebHooks. The previous workflow involved … - [Detecting critical above-the-fold CSS](https://paul.kinlan.me/detecting-critical-above-the-fold-css/): I recently used Page Speed Insights for Mobile to improve my blog's page load time and one of the key recommendations was to reduce render-blocking CSS above … - [Hackathons don't win you customers](https://paul.kinlan.me/hackathons-dont-win-you-customers/): I've run hackathons and learned they're not for winning customers. They're not about startups or brand awareness. They're about learning and improving your … - [Another experiment in creating a mobile friendly table of contents](https://paul.kinlan.me/another-experiment-in-creating-a-mobile-friendly-table-of-contents/): I've been working on making html5rocks.com more mobile-friendly, focusing on reducing "Time to first read". The main culprit was the Table of Contents … - [Experiments in buildinig a mobile friendly table of contents](https://paul.kinlan.me/experiments-in-buildin-a-mobile-friendly-table-of-contents/): I'm experimenting with mobile-friendly table of contents designs for HTML5Rocks. The current ToC takes up too much screen space, hindering access to content. My … - [Installing Chrome for Android on an emulator](https://paul.kinlan.me/installing-chrome-for-android-on-an-emulator/): Installing Chrome for Android directly onto an emulator isn't possible, as it's only available via the Play Store. However, you can install the Chromium Test … - [Screen Recording from your Android device](https://paul.kinlan.me/screen-recording-from-your-android-device/): For our Google I/O 2013 talk, we needed a way to seamlessly showcase live demos on an Android device. Projector switching was clunky, so we pre-recorded the … - [Bootstraping your own mobile web testing lab for Android Part 1](https://paul.kinlan.me/bootstraping-your-own-mobile-device-lab-part-1/): In this blog post, I share a simple shell script to help you create your own mobile web testing lab for Android. The script uses adb to connect to attached … - [Traffic-lights with CSS](https://paul.kinlan.me/traffic-lights-with-css/): I wanted a traffic light system on iwanttouse.com to visually represent feature support. Initially, I used simple CSS classes like .good (green), .ok (amber), … - [HTML5Rocks](https://paul.kinlan.me/projects/html5rocks/): HTML5Rocks was a project started in 2010 to showcase the capabilities of the web platform. It featured articles and samples on topics like offline experiences, … - [Dear AppCache we need to talk.](https://paul.kinlan.me/dear-appcache/): AppCache, while crucial for offline web apps, has significant issues. One major problem arises when integrating with APIs like registerProtocolHandler or … - [I am willing to pay someone to move my blog from Posterous.](https://paul.kinlan.me/i-am-willing-to-pay-someone-to-move-my-blog-f/): I love Posterous, but it's time for my blog to move on. I'm looking to hire someone to migrate my blog to a new platform. Must-haves include: static site … - [The New iPad is the perfect name](https://paul.kinlan.me/the-new-ipad-is-the-perfect-name/): Apple has a clever naming strategy with "The New iPad." Customers naturally ask for the "new" version of products, avoiding confusion and … - [We need to kill off the localStorage API](https://paul.kinlan.me/we-need-to-kill-off-the-localstorage-api/): LocalStorage is a flawed API with poor querying, performance issues, limited storage, inconsistent event handling, and locking problems. Its only advantages … - [On Vendor Prefixes](https://paul.kinlan.me/on-vendor-prefixes/): I'm excited about Mozilla's consideration of implementing webkit prefixes and starting a conversation around this. I believe that switching prefixes should … - [Getting your app to support Web Intents on Chrome](https://paul.kinlan.me/getting-your-app-to-support-web-intents-on-ch/): Chrome Dev and Canary (18+) now support Web Intents! Currently, intent registration is done via the Chrome apps manifest (not the intent tag) to allow the user … - [Two years and counting at Google](https://paul.kinlan.me/two-years-and-counting-at-google/): It's been an incredible two years at Google! The first year was amazing, but the second year was even better. I spoke at Google IO, traveled to numerous … - [Web Intents: A fresh look](https://paul.kinlan.me/web-intents-a-fresh-look/): Web Intents is a new project designed to solve the problem of web application integration. Inspired by Android's intent system, it allows developers to build … - [window.name](https://paul.kinlan.me/window-name/): This post discusses how to use window.name for cross-domain communication between windows/iframes, especially before the onload event. It explains a simple … - [WebMessaging is broken](https://paul.kinlan.me/webmessaging-is-broken/): WebMessaging (postMessage) seems simple but has quirks. Different browsers handle data differently (structured clones vs. strings). The biggest problem is … - [Landing my first WebKit patch. OnPopState Lock and Load.](https://paul.kinlan.me/landing-my-first-webkit-patch-onpopstate-lock/): I found and fixed a bug in WebKit! My LeviRoutes framework needed to simulate 'onpopstate' events for testing, but WebKit's … - [Levi Routes](https://paul.kinlan.me/projects/levi-routes/): Levi Routes, a simple Express-like URL routing framework, was initially created for a Google I/O 2011 project with Mike Mahemoff. Its creation was indirectly … - [HTML5 History needs another event](https://paul.kinlan.me/html5-history-needs-another-event.html/): I love the HTML5 History API, it makes developing applications with a consistent URL scheme across server and client super simple, however it doesn't come … - [App Cache and HTML5 History](https://paul.kinlan.me/app-cache-and-html5-history.html/): Whilst developing our latest app (https://github.com/PaulKinlan/ioreader) for a Google IO, we ran into several large is limitations with AppCache and HTML5 … - [When are we going to see the death of SVG?](https://paul.kinlan.me/when-are-we-going-to-see-the-death-of-svg/): I have mixed feelings about SVG. I find it complex and requiring specific tools, and its integration with the web is clunky. It feels like a context switch … - [IO Question: How long did it take to develop the app? #io2011](https://paul.kinlan.me/io-question-how-long-did-it-take-to-develop-t/): At Google I/O 2011, we showcased a mobile web app. Many asked about its development timeline. Work began on March 3rd, with core coding starting on March … - [Google IO Q: How can you use the Google Fonts API on mobile while optimizing performance?](https://paul.kinlan.me/google-io-q-how-can-you-use-the-google-fonts/): At Google IO, we were asked how to optimize Google Fonts for mobile performance. We focused on visual appeal by using mobile-friendly fonts like Droid Sans and … - [Google IO Q: Would one build a different HTML 5 app for keyboard devices and mobile (touch) devices? Why or why not?](https://paul.kinlan.me/google-io-q-would-one-build-a-different-html-.html/): Another question that we didn't get to answer in our talk - Mobile web development: Zero to Hero - is basically the premis of the entire talk. We believe … - [IO Question: How are you dealing with AppCache relatively small storage limits?](https://paul.kinlan.me/io-question-how-are-you-dealing-with-appcache/): During our Google IO talk on Mobile Web Development, we received a great question about handling AppCache storage limits in modern browsers. Our approach was … - [IO Question: WebSQL is dead or dieing, IndexedDB isn't there yet, what do you think about libraries like Lawnchair?](https://paul.kinlan.me/io-question-websql-is-dead-or-dieing-indexedd/): During my "Mobile Web Development: From Zero to Hero" talk at Google I/O, a question came up about client-side data storage now that WebSQL is … - [Badgemator .... it is all in the how you tell people about your app](https://paul.kinlan.me/badgemator-it-is-all-in-the-how-you-tell-peop/): Badgemator is a web app that simplifies the process of creating badges for your Chrome Web Store listing. It generates a single script tag that you can embed … - [The skinny on LeviRoute JS routing framework](https://paul.kinlan.me/the-skinny-on-leviroute-js-routing-framework/): I've created LeviRoutes, a client-side JavaScript routing framework inspired by Rails. It's simple, fast, and focuses solely on handling URL changes. … - [So what is happening with Web Intents?](https://paul.kinlan.me/so-what-is-happening-with-web-intents/): I've been working on Web Intents, a project to simplify client-to-client service discovery and communication on the web using technologies like IFrames and … - [I've seen the future of the web. It's in the background](https://paul.kinlan.me/i-ve-seen-the-future-of-the-web-it-s-in-the-b/): Hey everyone, I've been playing with the dev channel of Chrome and discovered something huge: background pages for web apps! This means your web app can now run … - [Dutch GTUG](https://paul.kinlan.me/dutch-gtug/): The Chrome Web Store is launching in the Netherlands with integrated support for Dutch sellers! Join the Dutch GTUG on March 2nd, 2011 at 7pm at Google … - [My first year in Google](https://paul.kinlan.me/my-first-year-in-google/): My first year at Google has been an incredible journey. It's been a whirlwind of experiences, from joining the company after selling my Twitter web-app to … - [I will be working @ @Techhub on 13th of Jan](https://paul.kinlan.me/i-will-be-working-techhub-on-13th-of-jan/): This Thursday, January 13th, 2010, I'll be working from TechHub in London with @mahemoff as part of my resolution to work more closely with developers outside … - [Test post for a Buzz based Blog Commenting system](https://paul.kinlan.me/test-post-for-a-buzz-based-blog-commenting-sy/): I'm excited to introduce "commently," a simple Buzz-based commenting system for blogs and websites. It synchronizes with your Buzz feed, allowing you … - [2010: My year in review (a personal view)](https://paul.kinlan.me/2010-my-year-in-review-a-personal-view/): 2010 was a big year! Benjamin joined our family in June. I also joined Google as a Developer Programs Engineer, later transitioning to Developer Advocate, … - [An API to detect if a Chrome Extension has updated](https://paul.kinlan.me/an-api-to-detect-if-a-chrome-extension-has-up/): In this post, I address the question of how to detect Chrome Extension updates. While there isn't a single API call for this, we can achieve it using the … - [Is it an App or a Link](https://paul.kinlan.me/is-it-an-app-or-a-link/): Many Chrome Web Store users complain that some listed "apps" are just links. While technically true in some cases, the point of the Web Store is to … - [Omni Launch: Launch Installed Web apps from the URL bar](https://paul.kinlan.me/omni-launch-launch-installed-web-apps-from-th/): This blog post introduces Omni Launch, a Chrome extension I built that lets you quickly launch installed web apps directly from the URL bar. Just type … - [Web app launcher as a browser_action](https://paul.kinlan.me/web-app-launcher-as-a-browser-action/): In a previous post, I demonstrated how to create a custom App Launcher using the Management API and Override Pages framework. However, this approach didn't … - [Creating a New New Tab Page for Chrome](https://paul.kinlan.me/creating-a-new-new-tab-page-for-chrome/): This blog post demonstrates how to create a Chrome extension that replaces the new tab page with an app launcher. The extension uses the Chrome Management API … - [Drag to Desktop in JS](https://paul.kinlan.me/drag-to-desktop-in-js/): In appmator, I wanted to avoid traditional web elements like 'Save As' buttons. Instead, I implemented a drag-to-desktop feature using Chrome's drag-and-drop … - [Flashing in to the Web Store](https://paul.kinlan.me/flashing-in-to-the-web-store/): The Chrome Web Store isn't just about HTML5 and JavaScript; Flash plays a crucial role too! Flash apps and games are readily available in the store, with … - [Relative times. A Chrome Extension I would love to see](https://paul.kinlan.me/relative-times-a-chrome-extension-i-would-lov/): I'd love a Chrome Extension that converts times and dates to my local timezone. It gets confusing seeing times like 12pm PST when it's actually 8pm where I am. … - [Announcing Appmator. Get your apps in the Web Store in under a minute!](https://paul.kinlan.me/announcing-appmator-get-your-apps-in-the-web/): I've created Appmator, a tool to help developers get their web apps into the Chrome Web Store quickly. Just enter your app's URL, and Appmator generates a zip … - [A couple of things that I would love to see](https://paul.kinlan.me/a-couple-of-things-that-i-would-love-to-see/): I'm looking for a few web services that don't seem to exist yet. First, a way to save my Twitter favorites to Instapaper (or similar services). Second, a … - [Chrome Extension: Adding Context menus](https://paul.kinlan.me/chrome-extension-adding-context-menus/): This post concludes the "Buzz This" Chrome Extension series by demonstrating how to add context menus. Context menus provide a powerful way to … - [JS: classList, yipee!](https://paul.kinlan.me/js-classlist-yipee/): I'm super excited about the new classList API! It's like having jQuery's class manipulation, but built right into the browser. This means we can easily add, … - [-webkit-appearance your little known friend](https://paul.kinlan.me/webkit-appearance-your-little-known-friend/): Styling file input elements has always been tricky due to browser inconsistencies. WebKit-based browsers offer a clever way to style these elements. You can … - [Chrome Extension "Post to Buzz": Getting some stats](https://paul.kinlan.me/chrome-extension-post-to-buzz-getting-some-st/): In this follow-up tutorial, we enhance the "Post to Buzz" Chrome Extension by adding a share count to the browser action button. This involves making … - [Array.prototype.splice and a schoolboy error.](https://paul.kinlan.me/array-prototype-splice-and-a-schoolboy-error/): In a previous post, I discussed the lack of a direct method in JavaScript for deleting arbitrary elements from an array. I had attempted a solution, but misread … - [Chrome Extension "Post to Buzz": The basics](https://paul.kinlan.me/chrome-extension-post-to-buzz-the-basics/): This tutorial provides a step-by-step guide to building a basic Chrome extension for posting to Google Buzz. We start by setting up the manifest file with the … - [Chrome Extension Example: Post to buzz Post 1](https://paul.kinlan.me/chrome-extension-example-post-to-buzz-post-1/): I've created a simple Chrome extension that lets you post the current page to Google Buzz and see its popularity. In upcoming posts, I'll use this example to … - [JS: quickly removing an arbitrary element from an Array](https://paul.kinlan.me/js-quickly-removing-an-arbitrary-element-from/): This post explores the challenge of removing specific elements from JavaScript arrays. It critiques the inefficient string manipulation method and introduces … - [Thoughts about the GDD's](https://paul.kinlan.me/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 … - [Using Canvas to create beautiful custom markers in Google Maps](https://paul.kinlan.me/using-canvas-to-create-beautiful-custom-marke/): 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 … - [.Net Developers: SVN vs Mercurial pt2](https://paul.kinlan.me/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 … - [.Net Developers: SVN or HG?](https://paul.kinlan.me/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 … - [Using HTML5 Canvas with Drag and Drop (setDragImage)](https://paul.kinlan.me/using-html5-canvas-with-drag-and-drop-setdrag.html/): 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 … - [Canvas on the Background](https://paul.kinlan.me/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 … - [DOM TreeWalker](https://paul.kinlan.me/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 … - [Amsterdam](https://paul.kinlan.me/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 … - [Liverpool John Lennon Airport](https://paul.kinlan.me/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 … - [What makes an HTML5 Application an Application](https://paul.kinlan.me/what-makes-an-html5-application-an-applicatio.html/): 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 … - [Berlin GTUG.](https://paul.kinlan.me/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 … - [Berlin GTUG: July 15th 2010](https://paul.kinlan.me/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 … - [Buzz Demo: Getting Stuff in and Out of Buzz](https://paul.kinlan.me/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. - [Buzz Slides from TwitterDevNest (Feb 2010)](https://paul.kinlan.me/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, … - [Moving my blog to posterous](https://paul.kinlan.me/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. - [paul.kinlan.me](https://paul.kinlan.me/projects/paul.kinlan.me/): This blog, originally hosted on kinlan.co.uk, has gone through several iterations. It's now powered by Hugo, hosted on zeit.co, and utilizes a service worker … - [Launching FriendDeck](https://paul.kinlan.me/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 … - [Twollo: Find new people to follow automatically](https://paul.kinlan.me/twollo-find-new-people-to-follow-automaticall/): 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 … - [Moving Blog](https://paul.kinlan.me/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, … - [DSL Tools Talk](https://paul.kinlan.me/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 … - [Topicala Business Search](https://paul.kinlan.me/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, … - [Liverpool .Net User Group](https://paul.kinlan.me/liverpool-net-user-group/): The Liverpool .Net User Group is officially formed! Join fellow .Net enthusiasts in the Liverpool area for discussions on all things .Net. Visit our website at … - [Twitter](https://paul.kinlan.me/twitter/): I've joined Twitter! Follow me @PaulKinlan - http://www.twitter.com/PaulKinlan - [Know your Privacy, an Application on Facebook](https://paul.kinlan.me/know-your-privacy-an-application-on-facebook/): Concerned about Facebook privacy? I've created a Facebook application called "Know Your Privacy" to help you understand how third-party apps access … - [Topicala on Facebook](https://paul.kinlan.me/topicala-on-facebook/): I've integrated Topicala into Facebook, allowing users to search the internet without leaving the platform. Check out the app at … - [IDataRecord Fields to Dictionary Extension Method](https://paul.kinlan.me/idatarecord-fields-to-dictionary-extension-me/): This post introduces a C# 3.0 extension method for converting IDataRecord fields into a Dictionary<string, object>. This simplifies access to field data, … - [Microformat.net](https://paul.kinlan.me/microformat-net/): I've released a new, open-source Microformat parser for .NET, available on Codeplex! This stream-based parser uses a flexible XML configuration to define how … - [Review: Microsoft XNA Unleashed. By Chad Carter](https://paul.kinlan.me/review-microsoft-xna-unleashed-by-chad-carter/): My review of "Microsoft XNA Unleashed" by Chad Carter. XNA is Microsoft's game development platform for Windows and Xbox 360. This book provides a … - [Topicala Desktop](https://paul.kinlan.me/topicala-desktop/): Introducing Topicala Desktop, a new application developed in partnership with Rosetta Software Ltd. This handy tool allows users to search Topicala.com directly … - [Topicala People! and Topicala Popular! BETA](https://paul.kinlan.me/topicala-people-and-topicala-popular-beta/): I've launched two new beta features for Topicala: Topicala Popular and Topicala People. Topicala Popular helps you discover trending content online, similar to … - [Looking for some people to help test new features of Topicala](https://paul.kinlan.me/looking-for-some-people-to-help-test-new-feat/): I'm developing a Digg-like platform called Topicala to help smaller blogs gain more visibility. I'm looking for beta testers with small blogs to try out the new … - [Resharper Live Template for Default Constructor](https://paul.kinlan.me/resharper-live-template-for-default-construct/): This post introduces a ReSharper Live Template to expedite creating default constructors in C#. The template, activated by typing "dc", automatically … - [DevWeek Day 3 Review](https://paul.kinlan.me/devweek-day-3-review/): DevWeek Day 3 wrapped up my attendance with increasingly advanced sessions. Christian Weyer's talks on SOA development using the Webservice Software Factory … - [DevWeek Day 2](https://paul.kinlan.me/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 … - [Day 1 of the DevWeek Conference](https://paul.kinlan.me/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 … - [DevWeek 2007](https://paul.kinlan.me/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 … - [Resharper 2.0 Plugins](https://paul.kinlan.me/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 … - [Easy HTML Screen Capture in Windows](https://paul.kinlan.me/easy-html-screen-capture-in-windows.html/): 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 … - [Technorati Claim Fix, Please Ignore](https://paul.kinlan.me/technorati-claim-fix-please-ignore/): This blog post is a quick fix for my Technorati claim. Click the link to verify my Technorati profile. - [Wii, oh Wii did I cancel my Wii](https://paul.kinlan.me/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 … - [Why I love WSE 3.0](https://paul.kinlan.me/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 … - [ReSharper 2.0+ Plugins](https://paul.kinlan.me/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 … - [XNA Parallax Engine and the GSE Beta 2](https://paul.kinlan.me/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 … - [Technorati, Rubbish!](https://paul.kinlan.me/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 … - [Solution to my "Problem with List and TypeConverter" Problem](https://paul.kinlan.me/solution-to-my-problem-with-list-and-typeconv/): 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 … - [iforgive.eu up for sale](https://paul.kinlan.me/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) … - [F14 XNA Game should use XNA Parallax Engine](https://paul.kinlan.me/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 … - [Long Tail is a Long Tale](https://paul.kinlan.me/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 … - [Window Live OneCare Beta 1.5.1785.18](https://paul.kinlan.me/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 … - [Assigining a TypeConverter to a class you don't own](https://paul.kinlan.me/assigining-a-typeconverter-to-a-class-you-don/): 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 … - [XNA Parallax Demo Video](https://paul.kinlan.me/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 … - [XNA Parallax Engine](https://paul.kinlan.me/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, … - [XNA Parallax Engine Update](https://paul.kinlan.me/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 … - [Codeplex](https://paul.kinlan.me/codeplex/): I've started a project on Codeplex and I'm very impressed with how easy Team Foundation Server is to use compared to Rational ClearCase and ClearQuest. It … - [Problem with List and TypeConverter](https://paul.kinlan.me/problem-with-list-and-typeconverter/): I am having a bit of difficulty with TypeConverters and Generic Lists and I was hoping that I could get a bit of advice. I have a type converter that is used to … - [Somebody already blogged my project!](https://paul.kinlan.me/somebody-already-blogged-my-project/): Excited to share that Xbox360homebrew blogged about my Paralax Engine Project! Hoping to release more code soon and get more people involved. - [XNA Paralax Component](https://paul.kinlan.me/xna-paralax-component/): I've started an open-source parallax scrolling component project on CodePlex to help game developers create repeating scrolling backgrounds for their XNA games. … - [XNA Vector2 Type Converter](https://paul.kinlan.me/xna-vector2-type-converter/): I was developing a component in XNA and needed a way to edit Vector2 properties directly within the Game Designer. Since Vector2 is a struct and doesn't … - [No 360, but I have the controller!](https://paul.kinlan.me/no-360-but-i-have-the-controller/): I bought a used Xbox 360 controller to test game development using XNA for PC and the upcoming Xbox 360. The XNA programming model works well, and I can access … - [Some hCard Stats](https://paul.kinlan.me/some-hcard-stats/): I've started gathering hCard stats on topicala.com thanks to pingerati.net. hCards are a machine-readable microformat for contact information that can be … - [What you can't do in Windows Live Writer](https://paul.kinlan.me/what-you-can-t-do-in-windows-live-writer/): I've been exploring Windows Live Writer plugins and hit a snag: the API doesn't let plugins access the post's text. This severely limits plugin functionality, … - [Just Downloaded XNA Beta and I had to change the template code to get it to work](https://paul.kinlan.me/just-downloaded-xna-beta-and-i-had-to-change/): I just got the XNA Beta and had to tweak the template code a bit to get it running on my older machine (Athlon with a Geforce 2MX). I was getting a Device … - [I have Properly Worked out Why My Windows Live Write Plugin Was Not Working](https://paul.kinlan.me/i-have-properly-worked-out-why-my-windows-liv/): I finally figured out why my Windows Live Writer plugins weren't working! It turns out that new classes added via the Solution Explorer default to … - [Windows Live Writer Plugin Development Question](https://paul.kinlan.me/windows-live-writer-plugin-development-questi/): I'm developing a Windows Live Writer plugin using the SmartContentSource class and encountering an issue retrieving the blog post's text. While I can manipulate … - [Call Me Stupid](https://paul.kinlan.me/call-me-stupid/): I'm struggling to create a C# plugin for Windows Live Writer. Even a simple "Hello World" plugin isn't showing up in the available plugins list, … - [Got a Windows Live Writer Plugin Working](https://paul.kinlan.me/got-a-windows-live-writer-plugin-working/): I finally got a Windows Live Writer plugin working after starting from scratch! Stay tuned as I'm planning to integrate my Ajax Tagger into the Windows Live … - [Google Adsense in the UK](https://paul.kinlan.me/google-adsense-in-the-uk/): As a UK resident with a Google AdSense account, I'm holding onto my earnings until the dollar-to-pound exchange rate improves. My first payout was … - [If you seem a strange post in your blog, it may be Windows Live Writer](https://paul.kinlan.me/if-you-seem-a-strange-post-in-your-blog-it-ma/): Strange posts like "Temporary Post Used For Style Detection" are appearing in blogs. This is due to Windows Live Writer, which uses these temporary … - [Windows Live Writer](https://paul.kinlan.me/windows-live-writer/): I'm trying out Windows Live Writer and so far, I'm impressed! It renders my blog's styling correctly while I'm writing, seems pretty fast, and has a bunch of … - [XBox 360 and C# .Net WILL be Available Soon!](https://paul.kinlan.me/xbox-360-and-c-net-will-be-available-soon/): I previously doubted the possibility of C# on Xbox 360 and a hobbyist homebrew version. I was wrong! Microsoft announced the release of Visual Studio 2005 … - [Removed my feed from Squeet](https://paul.kinlan.me/removed-my-feed-from-squeet/): I've taken my feed off Squeet due to repeated updates to old posts, which wasn't very useful given the low subscriber count. This change should prevent further … - [Quick Link](https://paul.kinlan.me/quick-link/): Check out my colleague Phil Calver's new site, www.whatsatthetop.com, a Top 10 Retail Mashup built with ASP.Net 2.0 and Web parts. It pulls data from sites like … - [Iforgive.eu If or give.eu](https://paul.kinlan.me/iforgive-eu-if-or-give-eu/): I've decided to create iforgive.eu, a C# ASP.Net 2.0 sample site, and document the entire process on my blog. This includes design, development, refactoring, … - [A project that I thought was a good idea](https://paul.kinlan.me/a-project-that-i-thought-was-a-good-idea/): I bought iforgive.eu and iforgiv.eu domains hoping to create something cool, but my initial ideas (a flower shop, a public forgiveness platform, and an open … - [Test](https://paul.kinlan.me/test/): A test post exploring comments and other features. - [Topicala](https://paul.kinlan.me/topicala/): I've decided to make the Topicala software distributable so anyone can run it. I'll release the code soon, after re-deploying it under kinaln.co.uk. It'll be … - [Just Updated the Styles to this site](https://paul.kinlan.me/just-updated-the-styles-to-this-site/): I've given my website a fresh new look with a template of my own design! I'm currently working on ensuring it's compatible with Internet Explorer. Your … - [I am still not happy with the style of this site](https://paul.kinlan.me/i-am-still-not-happy-with-the-style-of-this-s/): I'm going through a phase where I dislike my website's style and plan to redesign it when I have time. I've created a potential logo using vector graphics … - [My Dad has Started a blog!](https://paul.kinlan.me/my-dad-has-started-a-blog/): My dad has started a blog about cycling and how it has helped him improve his fitness. He's lost over 4 stone (27KG) by combining cycling with the Lifestyle and … - [BBC Programme Calendar to iCal Works in Outlook 2007](https://paul.kinlan.me/bbc-programme-calendar-to-ical-works-in-outlo/): My BBC Programme Calendar to iCal mashup, which converts BBC program data to iCal, works seamlessly with Outlook 2007. Users can easily import program schedules … - [Testing From Microsoft Word 2007](https://paul.kinlan.me/testing-from-microsoft-word-2007/): Just tested the blogging feature from Microsoft Word 2007 and it's pretty cool if it works as expected. I'm loving the new interfaces for Excel, Word, and … - [Yahoo's API Terms and Conditions are really Harsh](https://paul.kinlan.me/yahoo-s-api-terms-and-conditions-are-really-h/): I've always been a fan of Yahoo's developer APIs due to their generous usage limits and flexible terms. However, recent changes to their T&Cs are … - [Topicala Needs your Help](https://paul.kinlan.me/topicala-needs-your-help/): 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: … - [Adwords](https://paul.kinlan.me/adwords/): I'm experimenting with AdWords to drive traffic to both this site and Topicala.com. So far, I'm getting about 60 extra visitors per day to each site. I've … - [Another reason why .Net 3.0 should be called .Net 2.5 (or something similar)](https://paul.kinlan.me/another-reason-why-net-3-0-should-be-called-n/): This post agrees with Kirk Allen Evans's argument that .NET 3.0 should be named something closer to 2.5 due to its reliance on the 2.0 framework and compilers. … - [.NET Framework 3.0](https://paul.kinlan.me/net-framework-3-0/): Microsoft has renamed WinFX to .NET Framework 3.0. This new version will include the existing .NET Framework 2.0 components (ASP.NET, WinForms, ADO.NET, … - [RE: Some things about XLinq](https://paul.kinlan.me/re-some-things-about-xlinq/): This post responds to Mike Champion's comment on my previous XLinq blog post. I clarify the XML file used (Wikipedia XML Abstract) and explain why I chose an … - [Blogger Introduces RSS 2.0 Without telling anyone it seems](https://paul.kinlan.me/blogger-introduces-rss-2-0-without-telling-an/): Blogger has quietly rolled out RSS 2.0 support, which I discovered via reports and confirmed by IE7. Time to clean up my feeds! - [hCard](https://paul.kinlan.me/hcard/): I've added hCard, a microformat, to my blog. It makes my contact info machine-readable while still being visible to readers. It's basically an XHTML version … - [Promoting a Comment to the Main Page about XLinq](https://paul.kinlan.me/promoting-a-comment-to-the-main-page-about-xl/): I'm highlighting a comment from Mike Champion, XLinq's program manager at Microsoft, addressing the issue of querying large XML files with XLinq. He discusses … - [Back to playing with WPF](https://paul.kinlan.me/back-to-playing-with-wpf/): I've reinstalled the latest WPF and WCF beta versions and I'm planning to write some blog posts about it very soon. I'm ready to dive back into WPF and share … - [I wish I could easily move away from blogger](https://paul.kinlan.me/i-wish-i-could-easily-move-away-from-blogger/): I'm incredibly frustrated with Blogger's lack of updates, inconsistent publishing, and inflexibility. I wouldn't recommend it to anyone looking for a reliable … - [Some things about XLinq](https://paul.kinlan.me/some-things-about-xlinq/): I've been experimenting with XLinq in C# 3.0, but I'm not impressed with its querying capabilities. It seems to require loading the entire XML document into … - [C# 3.0](https://paul.kinlan.me/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, … - [Sky+](https://paul.kinlan.me/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 … - [Topicala now has its own Blog!](https://paul.kinlan.me/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 … - [A new .Net Blogger](https://paul.kinlan.me/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 … - [C# 3.0 and XLinq](https://paul.kinlan.me/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 … - [Topicala OPML Results are LAUNCHED!](https://paul.kinlan.me/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 … - [Topicala Is LAUNCHED!](https://paul.kinlan.me/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 … - [Google Calander Mashup with BBC Programme Listing API](https://paul.kinlan.me/google-calander-mashup-with-bbc-programme-lis/): 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 … - [Updates](https://paul.kinlan.me/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 … - [Error Codes vs. Exceptions](https://paul.kinlan.me/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 … - [All Visual Studio Express Editions are now Permanently Free!](https://paul.kinlan.me/all-visual-studio-express-editions-are-now-pe/): 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 … - [C# Trackback, Part 1](https://paul.kinlan.me/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. … - [C# Trackback, Part 2](https://paul.kinlan.me/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 … - [ASP.NET 2.0 Is NOT a Silver Bullet](https://paul.kinlan.me/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 … - [DS outselling PSP 6 to 1 (almost 7 to 1)](https://paul.kinlan.me/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 … - [Integrating Google calendar in your website](https://paul.kinlan.me/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 … - [Microsoft to upgrade Xbox 360 CPU](https://paul.kinlan.me/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 … - [Will Blogger Integrate with GData](https://paul.kinlan.me/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 … - [5 Truths About Code Optimization](https://paul.kinlan.me/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 … - [Build a C# Named Pipes Interprocess, inter-machine Cache Service](https://paul.kinlan.me/build-a-c-named-pipes-interprocess-inter-mach/): 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 … - [High Performance Site Coding](https://paul.kinlan.me/high-performance-site-coding/): This blog post explores the techniques used by high-traffic websites like Digg and Zooomr to handle large numbers of simultaneous users. It delves into … - [Microsoft porting C# programming to the Mac](https://paul.kinlan.me/microsoft-porting-c-programming-to-the-mac/): Microsoft is bringing a subset of the .NET Framework, including C# and VB.NET support, to the Mac platform via WPF/E. This goes beyond the JavaScript engine … - [AJAX Tagger](https://paul.kinlan.me/ajax-tagger/): I've created a new tool, AJAX Tagger, to help bloggers enhance their posts. It leverages AJAX to dynamically suggest related articles, topical tags, … - [Associative Array C# .Net](https://paul.kinlan.me/associative-array-c-net/): A quick explanation of associative arrays in C# .NET, clarifying that they are simply hash tables. A basic code example demonstrates adding and retrieving a … - [c# personal attribute to an html tag](https://paul.kinlan.me/c-personal-attribute-to-an-html-tag.html/): A Visitor to my site came from google looking for "c# personal attribute to an html tag". If I understand this query correctly then the person is trying to add … - [Ajax Tagger](https://paul.kinlan.me/ajax-tagger/): I'm planning to dedicate more time to improving the Ajax Tagger, focusing on addressing some necessary bug fixes. - [Ajax Tagger is Updated](https://paul.kinlan.me/ajax-tagger-is-updated/): The Ajax Tagger has been updated with a number of bug fixes and improvements. Key changes include using my own Tag Directory for related tags, providing Yahoo … - [Thanks Digger](https://paul.kinlan.me/thanks-digger/): A big thanks to the first person who Dugg my Ajax Tagger on Digg (I think it was Zoodle)! I'd love to hear your feedback on it, good or bad. Let me know what … - [Feedburner Are Quick](https://paul.kinlan.me/feedburner-are-quick/): I contacted Feedburner support about a full text feed issue, and received a helpful and quick response within 10 minutes. They explained that feeds are limited … - [Feedburner update](https://paul.kinlan.me/feedburner-update/): I've updated my site's settings to display fewer posts on the homepage, resolving a recent issue I was having with Feedburner. - [How to develop a CDR generator](https://paul.kinlan.me/how-to-develop-a-cdr-generator/): This post details how I developed a Call Detail Record (CDR) generator for my final year project on telecoms fraud. The generator creates realistic CDRs using … - [I think I might move my blog away from Feedburner](https://paul.kinlan.me/i-think-i-might-move-my-blog-away-from-feedbu/): My Feedburner full text feed is currently broken and I'm unable to identify the source of the problem. This has led me to consider moving my blog away from … - [Are you an UK Amazon Marketplace Seller?](https://paul.kinlan.me/are-you-an-uk-amazon-marketplace-seller/): UK Amazon Marketplace sellers can now easily link to a searchable, indexed list of their products. Just append your Seller ID (e.g., A30C94ZTNLBKQM) to … - [My Tag Directory Now has Amazon Integration](https://paul.kinlan.me/my-tag-directory-now-has-amazon-integration/): My tag directory has a cool new feature: Amazon product integration! It pulls book data from Amazon AWS related to each tag. Right now, it adds links to … - [My Tag Directory Now has Del.icio.us Integration](https://paul.kinlan.me/my-tag-directory-now-has-del-icio-us-integrat/): My tag directory has been updated to incorporate Del.icio.us integration. It fetches RDF data from del.icio.us to display the most popular tagged items. Explore … - [Serializing OPML via an OPML Object Model](https://paul.kinlan.me/serializing-opml-via-an-opml-object-model/): I've just posted the C# source code for serializing and deserializing OPML files using a simple object model. The code demonstrates basic serialization and … - [Rank 0?](https://paul.kinlan.me/rank-0/): My blog has a Technorati rank of 0 with 236 links from 22 sites. Is this the best blog ever? I hope so! - [Google Search: Directory explorer c#](https://paul.kinlan.me/google-search-directory-explorer-c/): Someone searched for "directory explorer c#" and landed on my site, likely not finding what they needed. This post clarifies how to use C# for … - [OPML .Net Object Model](https://paul.kinlan.me/opml-net-object-model/): I'm working on a .NET object model for OPML 2.0 to easily serialize and deserialize OPML files. Serialization is working well and creates correctly formatted … - [My Tag Directory Doesn't render IE7 very well](https://paul.kinlan.me/my-tag-directory-doesn-t-render-ie7-very-well/): My tag directory isn't rendering properly in Internet Explorer 7 (IE7 Beta 2). I'm aware of the issue and will work on fixing compatibility problems. - [Something about Future additions for this site](https://paul.kinlan.me/something-about-future-additions-for-this-sit/): I'm working on some exciting new features for this site! First up, I'm improving the Tag Directory (more on that soon, including the source code!). Second, … - [Tag Directory Styled and also implements some caching](https://paul.kinlan.me/tag-directory-styled-and-also-implements-some/): I've given my tag directory a fresh look and made it faster with some caching! Check it out and tell me what you think. I'm considering integrating del.icio.us … - [I wish that Blogger had....](https://paul.kinlan.me/i-wish-that-blogger-had/): I need a global search and replace function in Blogger so I can easily update content across all 300 pages of my blog. Currently, I have to manually edit each … - [Malformed OPML](https://paul.kinlan.me/malformed-opml/): My OPML files are malformed, specifically the apostrophes in attributes aren't escaped. If you use my Ajax Tagger v2, I apologize for this error, but it seems … - [For all the XBox 360 C#'ers](https://paul.kinlan.me/for-all-the-xbox-360-c-ers/): I'm excited about the newly announced XNA Framework from Microsoft! It's supposed to make game development for Windows and Xbox 360 easier by unifying the class … - [My Very own Tag Directory](https://paul.kinlan.me/my-very-own-tag-directory/): I'm building a tag directory separate from my main content. This approach aims to enhance indexing and provide a centralized, dynamic display, similar to … - [AtariBoy; Thanks for the link](https://paul.kinlan.me/atariboy-thanks-for-the-link/): I wanted to express my gratitude to Atariboy for the kind words and link he shared on his blog. I'm encouraged to keep up with my own blog posting schedule. - [Extracting bitmaps out of imagelist c#](https://paul.kinlan.me/extracting-bitmaps-out-of-imagelist-c/): This post provides a quick solution for developers looking to extract individual bitmap images from an ImageList in C#. It demonstrates two approaches: direct … - [Malformed OPML](https://paul.kinlan.me/malformed-opml/): My OPML files are not correctly formatted, specifically with unescaped apostrophes in attributes. This issue affects users of my Ajax Tagger v2, but I haven't … - [C#/.Net on the XBox 260 360, maybe one day](https://paul.kinlan.me/c-net-on-the-xbox-260-360-maybe-one-day/): I've noticed a lot of searches related to C# and Xbox 360 development. While it's unclear what the future holds, some recent posts suggest that using the CLR … - [Google Search: ebay asp.net api soap wsdl [part deux]](https://paul.kinlan.me/google-search-ebay-asp-net-api-soap-wsdl-part/): This post is a follow-up to my earlier one about using SOAP requests in ASP.Net to access the eBay API. I've finally figured out how to make it work! A few key … - [Google Search: ajax definition .net for dummies](https://paul.kinlan.me/google-search-ajax-definition-net-for-dummies/): This post explains AJAX (Asynchronous JavaScript and XML) and its use in .NET. AJAX allows web pages to update small sections without reloading the entire … - [Google Search: ebay asp.net api soap wsdl](https://paul.kinlan.me/google-search-ebay-asp-net-api-soap-wsdl/): I'm exploring the eBay API using ASP.NET and SOAP. It's proving a bit cumbersome due to its monolithic structure. Ideally, each API call would have its own … - [Google Search: why use sealed classes?](https://paul.kinlan.me/google-search-why-use-sealed-classes/): I had a comprehensive blog post on sealed classes and their benefits within Google Search, but unfortunately, it was lost. I plan to rewrite it soon. - [Project Origami](https://paul.kinlan.me/project-origami/): I'm not as impressed by Project Origami as others seem to be. While the idea of an ultra-mobile PC is appealing, and I'd like to own one, it feels like a … - [Feed or Email Delivery](https://paul.kinlan.me/feed-or-email-delivery/): I'm considering adding an email subscription option for blog updates, as an alternative to RSS/ATOM feeds. Would you subscribe to email updates if offered? - [Google Search: C#, Finding the Locale](https://paul.kinlan.me/google-search-c-finding-the-locale/): This post discusses how to determine a user's locale in C#. For ASP.NET applications, the Request.UserLanguages array provides the user's preferred languages, … - [Google Search: find file extension with regex in c#](https://paul.kinlan.me/google-search-find-file-extension-with-regex/): This post addresses a common search query: how to find file extensions using regular expressions in C#. I provide several regex examples for this purpose, … - [Microformat proposal](https://paul.kinlan.me/microformat-proposal/): I'm exploring the idea of a "Questions and Answers" microformat to add semantic meaning to questions and their corresponding answers within text. I … - [Updated UI](https://paul.kinlan.me/updated-ui/): I've given kinlan.co.uk a fresh coat of paint with a new Blogger Template. It's cleaner, faster, and easier on the eyes. I'm planning some more small tweaks in … - [Been on training](https://paul.kinlan.me/been-on-training/): I've just completed a Mastering UML training course at IBM Education Services in London. It was a good course and I learned a lot, particularly because the … - [Bill Hill on IE7 Cleartype](https://paul.kinlan.me/bill-hill-on-ie7-cleartype/): In this post, I share my support for Internet Explorer 7's decision to enable ClearType by default. Bill Hill's blog post on the topic highlights research … - [C# CSS Classname Regex](https://paul.kinlan.me/c-css-classname-regex/): I've updated my C# regex for extracting CSS class names to correctly handle URLs in CSS properties like url(someimage.png). The previous version incorrectly … - [Not going to update the style of this site](https://paul.kinlan.me/not-going-to-update-the-style-of-this-site/): I've been considering updating the website's design as mentioned before, but haven't found one that is both simple and aesthetically pleasing. I may update it … - [Coding Horror](https://paul.kinlan.me/coding-horror/): I love Coding Horror and want to emulate its crisp, clean design on my own blog. My current design is bloated, slow, and hard to read. I plan to back up my … - [Openseach and IE7 Beta 2 update](https://paul.kinlan.me/openseach-and-ie7-beta-2-update/): I've updated my Opensearch implementation based on feedback from Michael Fagan. Changes include correcting the short name length, fixing capitalization issues, … - [Google Adsense for Search and IE7 Openseach Provider](https://paul.kinlan.me/google-adsense-for-search-and-ie7-openseach-p/): I contacted Google about using my AdSense account with IE7's SiteSearch through OpenSearch. Unfortunately, they don't currently allow anything but their own … - [Google Search and IE 7 Search Provider](https://paul.kinlan.me/google-search-and-ie-7-search-provider/): I've added a custom search provider to my blog using Google Search for Internet Explorer 7 Beta 2 users. It lets you easily search my site's content. The … - [New Site Partner](https://paul.kinlan.me/new-site-partner/): I've partnered with Shopzilla UK! If you're looking for laptops or price comparisons in the UK, check out their link at the top right of this page. - [A Quick C# Question: Sealed classes](https://paul.kinlan.me/a-quick-c-question-sealed-classes/): This blog post discusses whether sealing a class in C# automatically seals its methods as well. The author wants to prevent further extension of an abstract … - [Google Search Query: internet explorer 7 favorites](https://paul.kinlan.me/google-search-query-internet-explorer-7-favor/): I revisited my Internet Explorer 7 Favorites guide now that Beta 2 is available. Previously, Beta 1 had two major issues: the favorites menu would crash and, … - [Internet Explorer Browser Objects in C#](https://paul.kinlan.me/internet-explorer-browser-objects-in-c/): I've found some useful resources for C# developers working with Internet Explorer. Rich Crane's code provides a framework for .NET interaction with IE, handling … - [Rabbits](https://paul.kinlan.me/rabbits/): Check out Nibblin, a forum for rabbit owners and enthusiasts, with a great community! - [Microsoft Feed Manager Events Example](https://paul.kinlan.me/microsoft-feed-manager-events-example/): I had trouble getting the GetWatcher method of the Feed Management API to work. Thanks to Matt Dotson's code on GotDotNet, I resolved the issue. The problem was … - [A Question about RSS Readers](https://paul.kinlan.me/a-question-about-rss-readers/): I'm looking for an RSS reader that can filter feeds by language. I want to be able to specify a language (like English) and have the reader only show me items … - [Google Adsense For Search Limits Use [In a Bad Way]](https://paul.kinlan.me/google-adsense-for-search-limits-use-in-a-bad/): I wanted to use IE7 Beta 2's custom search providers with my Google AdSense for Search account to create a site search that generates revenue. Unfortunately, … - [IE Developer Tool Bar Beta 2](https://paul.kinlan.me/ie-developer-tool-bar-beta-2/): I've just downloaded Beta 2 of the IE Developer Toolbar and while it's incredibly useful for diagnosing web page issues, there are still some bugs that need … - [Microsoft Feed Management API c# problems](https://paul.kinlan.me/microsoft-feed-management-api-c-problems/): I'm having trouble using the Microsoft Feed Management API in IE7 Beta 2. Specifically, I can't create a FeedFolderWatcher object to track feed item count … - [Note To Self](https://paul.kinlan.me/note-to-self/): A quick link to Heath Stewart's blog post on MSDN. - [Google Search: Are switchmedia any good](https://paul.kinlan.me/google-search-are-switchmedia-any-good/): Someone googled "are switchmedia any good?" and landed on my blog. As a satisfied customer, I can vouch for them! They're a great web hosting … - [IE7 Beta 2 Select Boxes](https://paul.kinlan.me/ie7-beta-2-select-boxes/): IE7 Beta 2 fixes a rendering issue present in IE6 where select boxes would always appear as the topmost element, overlapping other elements like menus. This fix … - [Answer to CSS Regex Question](https://paul.kinlan.me/answer-to-css-regex-question/): In a previous post, I shared a regular expression for extracting CSS class names, and a reader asked for clarification. This post addresses the question with a … - [IE7 Font Rendering](https://paul.kinlan.me/ie7-font-rendering/): I've been testing Internet Explorer 7 Beta 2 and noticed a significant improvement in font rendering, likely due to ClearType. The difference is subtle but … - [Microsoft Feed Manager API](https://paul.kinlan.me/microsoft-feed-manager-api/): I'm puzzled why Microsoft's new Feed Manager API is COM-based instead of a managed API. Given their push for managed code in Vista and .NET's excellent XML … - [Updated Answer to CSS Regex Question](https://paul.kinlan.me/updated-answer-to-css-regex-question/): I gave out a bit of duff information in my last post. Thanks Rasmus!The code should have been:string css = … - [Simple List Extensions](https://paul.kinlan.me/simple-list-extensions/): I'm exploring Microsoft's Simple List Extensions for RSS and looking for real-world examples of their implementation. I'm particularly interested in seeing how … - [IE7 Beta 2](https://paul.kinlan.me/ie7-beta-2/): I've previously blogged about IE7 Beta releases, and now it's time for another update! Beta 2 of Internet Explorer 7 is now available for download. Check out … - [Regex To Get Class Names From CSS 2.0](https://paul.kinlan.me/regex-to-get-class-names-from-css-2-0/): As part of my ongoing project to build a CSS 2.0 parser in C#, I've developed a regular expression based on the CSS 2.0 specification to extract class names … - [CSS C# Token Reader](https://paul.kinlan.me/css-c-token-reader/): I'm diving into the official CSS 2.1 specification to build a C# based token reader for CSS parsing. The document itself is quite dense, but it lays out the … - [Google Search: c# css parser](https://paul.kinlan.me/google-search-c-css-parser/): A visitor searched Google for a "c# css parser" and landed on my site. Intrigued, I explored existing C# CSS parsers but found nothing. This sparked … - [Google Search: create a dsl connection in c#](https://paul.kinlan.me/google-search-create-a-dsl-connection-in-c/): This post addresses the Google search query "create a dsl connection in c#". It clarifies that C# doesn't create DSL-specific connections. Instead, … - [Books Blog](https://paul.kinlan.me/books-blog/): I've started a new blog dedicated to book reviews using WordPress! Check it out at http://books.kinlan.co.uk. I'm quite impressed with WordPress's flexibility … - [Amazons Associate Scheme](https://paul.kinlan.me/amazons-associate-scheme/): I've added Amazon affiliate links to relevant books on my blog posts, hoping to provide useful recommendations and earn a small commission. So far, I've had … - [Business Blogging](https://paul.kinlan.me/business-blogging/): Robert Scoble's new book on business blogging emphasizes building meaningful customer relationships through online dialogue. It argues that blogs humanize … - [Ajax Tagger Update](https://paul.kinlan.me/ajax-tagger-update/): I've updated the Ajax Tagger to Version 2.0! This update fixes a bug that's been present since Christmas. I've also added a Google Ad to the site. - [Just about to get the Internet Connection Installed](https://paul.kinlan.me/just-about-to-get-the-internet-connection-ins/): My site hasn't been updated because I just moved and haven't had internet access. That's changing today with the installation of Telewest Broadband 4Mbs! I'm … - [A Little excerpt about telecoms fraud](https://paul.kinlan.me/a-little-excerpt-about-telecoms-fraud/): This excerpt from my final year project explores different types of telecom fraud, which I'll use as a basis for a C# neural network. Telecom fraud can be … - [Update to Call Detail Record Generator](https://paul.kinlan.me/update-to-call-detail-record-generator/): I've fixed the download link for the Call Detail Record (CDR) Generator tool I created for my final year project. It's an MS Access 2003 application. - [Call Detail Record (CDR) Generation Tool](https://paul.kinlan.me/call-detail-record-cdr-generation-tool/): I've shared my Call Detail Record (CDR) Generator, a Microsoft Access 2003 application I developed for my final year project. This tool creates thousands of … - [Upload of Final Year Project](https://paul.kinlan.me/upload-of-final-year-project/): I've finally uploaded my final year project, even amidst a house move and lack of internet! It explores how neural networks can detect telecom fraud. I've … - [Neural Networks, C# and telecoms fraud detection final year project](https://paul.kinlan.me/neural-networks-c-and-telecoms-fraud-detectio/): I'm revisiting my final year university project on telecoms fraud detection. I built a system that generated call records and used a MATLAB neural network to … - [Updates](https://paul.kinlan.me/updates/): Quick update: Things have been hectic with my house move, so blogging has taken a backseat. Not sure when I'll be back on a regular schedule. - [Update to Retail Webservice Therapy](https://paul.kinlan.me/update-to-retail-webservice-therapy/): I recently discussed the lack of retail web service APIs for major companies like Tesco, Dixon's, and HMV. I've since discovered an ASDA Soap API on … - [Google Search: c# convert date from uk to usa](https://paul.kinlan.me/google-search-c-convert-date-from-uk-to-usa/): This post addresses the Google search query "c# convert date from uk to usa." It provides a C# code snippet using CultureInfo and DateTime to convert … - [RSS Bandit 1.3.0.38 has been Released](https://paul.kinlan.me/rss-bandit-1-3-0-38-has-been-released/): I've just upgraded to RSS Bandit 1.3.0.38 and I'm really pleased with it. This version successfully imported Robert Scoble's huge OPML file, has a refreshed … - [Suggestions for finding related blogs](https://paul.kinlan.me/suggestions-for-finding-related-blogs/): I'm developing Ajax Tagger 2.0 and need ideas for displaying related blogs within the application and its output. I'm also searching for a good search engine … - [Update To AJAX Tagger Version 2 [New Domain]](https://paul.kinlan.me/update-to-ajax-tagger-version-2-new-domain/): I've updated the AJAX Tagger and moved it to a new subdomain: ajaxtag.kinlan.co.uk. This should make it easier to access. The old location … - [Update to AJAX Tagger OPML Ouput](https://paul.kinlan.me/update-to-ajax-tagger-opml-ouput/): I've updated my Ajax Tagger 2.0 tool! It now provides related search results and outputs them as OPML, including RSS feeds for search engines like MSN, … - [XBox 360 and the .Net Framework](https://paul.kinlan.me/xbox-360-and-the-net-framework/): In a previous post, I discussed using the .NET Framework on the Xbox 360. It turns out you can create Media Center applications, install them on your media … - [OPML Output now working](https://paul.kinlan.me/opml-output-now-working/): The OPML output functionality in my AJAXTagger is now fixed! There was a bug caused by Internet Explorer's lack of support for the __proto__ construct, … - [Ebay API... Can't really think of much.](https://paul.kinlan.me/ebay-api-can-t-really-think-of-much/): I was excited about the eBay API becoming free, hoping to build programs around it. However, I'm struggling to find a compelling project idea. Integrating it … - [Google Search: .net framework for xbox 360](https://paul.kinlan.me/google-search-net-framework-for-xbox-360/): This post addresses the numerous Google searches related to ".NET framework" and "Xbox 360." Despite the search traffic, I currently have no … - [Google Search: c# instanceof](https://paul.kinlan.me/google-search-c-instanceof/): This post addresses the search query "c# instanceof" by clarifying that C# uses "is" and "as" keywords instead of … - [Could it all be done in XAML](https://paul.kinlan.me/could-it-all-be-done-in-xaml/): Inspired by my recent success binding XAML directly to Amazon's web service, I'm exploring the possibility of extending this approach to other RESTful services. … - [Amazon Search in XAML](https://paul.kinlan.me/amazon-search-in-xaml/): I explored XAML databinding with Amazon's REST API, inspired by a Channel 9 RSS reader example. The XAML code fetches data from Amazon and displays it. A key … - [Google Search: threads in javascript](https://paul.kinlan.me/google-search-threads-in-javascript/): I've had people come to my blog searching for how to do threading in JavaScript. Unfortunately, I haven't found a way to do true threading in JavaScript. The … - [Google Search Query: how to know if a certain file is a folder in c#](https://paul.kinlan.me/google-search-query-how-to-know-if-a-certain/): This post answers the question of how to determine if a given file path in C# is a directory. It explains how to use the File.GetAttributes() method and the … - [Yahoo Yay, Amazon Boo!](https://paul.kinlan.me/yahoo-yay-amazon-boo/): I'm consistently impressed by Yahoo's web service team and their responsiveness to users. In contrast, Amazon's web service support is practically … - [Google Search: c# define](https://paul.kinlan.me/google-search-c-define/): This post addresses the Google search query "c# define". It explains that, unlike C, where #define creates macros for pre-processor code expansion, C# … - [AJAX Tagger Related Images](https://paul.kinlan.me/ajax-tagger-related-images/): Just a quick update: the related images feature in AJAX Tagger 2 isn't fully functional yet. I'll be working on fixing it tonight. - [XBox 360 Game Reviews](https://paul.kinlan.me/xbox-360-game-reviews/): I'm testing my image code for related images functionality. In the meantime, check out XBox 360 reviews on Gamespot and IGN. - [EBay Offering Free API Usage](https://paul.kinlan.me/ebay-offering-free-api-usage/): eBay has introduced a free API access program called the Unified Pricing Scheme. This is a significant change that opens up opportunities for developers, like … - [Something I have noticed from the page stats](https://paul.kinlan.me/something-i-have-noticed-from-the-page-stats/): Many visitors are trying to access the AJAX Tagger via the non-functional AJAXTag23 test page. I need to update the link, directing them to the correct URL: … - [Update To Ajax Tagger Verision 2](https://paul.kinlan.me/update-to-ajax-tagger-verision-2/): I've updated my AJAX Tagger to Version 2! This release adds a simple but useful feature: you can now manually add your own tags in the tag list panel. This is … - [A Feature I Would Love to See Blogger Have](https://paul.kinlan.me/a-feature-i-would-love-to-see-blogger-have/): I'd really like a feature in Blogger that lets me customize what's shown on the main blog page versus the individual post page. Something like custom tags, … - [AJAX Tagger Version 2 Update](https://paul.kinlan.me/ajax-tagger-version-2-update/): I've been working on AJAX Tagger version 2 and it's ready for everyday use! It leverages APIs from Yahoo, Amazon, Flickr, and Technorati, along with Wikipedia … - [Google Search: c# googledesktop](https://paul.kinlan.me/google-search-c-googledesktop/): This post discusses a reader's search query related to C# and Google Desktop. While I haven't personally worked with Google Desktop plugins, I found a relevant … - [C# 2.0:I don't know why I didn't see this comming](https://paul.kinlan.me/c-2-0-i-don-t-know-why-i-didn-t-see-this-comm/): I missed a key feature of C# 2.0, despite all the content I read. The coolest part is the ability to have different access levels for property getters and … - [Yahoo Term Extraction](https://paul.kinlan.me/yahoo-term-extraction/): I'm exploring how to improve the relevance of Yahoo Term Extraction API results. My initial question to Yahoo revealed that their system uses a semantic … - [Programming Windows Presentation Foundation (WPF)](https://paul.kinlan.me/programming-windows-presentation-foundation-w/): I'm diving back into XAML after a break and reviewing "Programming: Windows Presentation Foundation." So far, the book is well-written with clear C# … - [More on the Bluetooth Library for .Net](https://paul.kinlan.me/more-on-the-bluetooth-library-for-net/): I've been experimenting with the Bluetooth library for .NET I mentioned earlier, but I'm having trouble getting it to work. I wanted to connect my phone to my … - [Search Engine Results](https://paul.kinlan.me/search-engine-results/): My website traffic this month is unusually high, almost matching the entire previous month's traffic in just eight days. Google seems to be the primary driver … - [Sphere Beta: Some inital comments](https://paul.kinlan.me/sphere-beta-some-inital-comments/): I've just started testing the Sphere Beta Program. While I appreciate the related blogs feature, I find the blog post search results less helpful. When I … - [Untitled](https://paul.kinlan.me/untitled/): I've joined the Sphere Beta Program and have some initial thoughts. While I find the related blogs feature useful, the blog post search results for keywords … - [Google Search: c# expando](https://paul.kinlan.me/google-search-c-expando/): This post explores how to create JavaScript expando objects within C#. I discuss how to achieve this effect using both client-side JavaScript manipulation from … - [Google Search: perl c# comparison](https://paul.kinlan.me/google-search-perl-c-comparison/): This post discusses the differences between Perl and C#. While both languages use semicolons, they differ significantly in object-oriented features, … - [Google Search C#](https://paul.kinlan.me/google-search-c/): This blog post explores the meaning behind the Google search query "oops c#." It questions whether the searcher was looking for information on Object … - [SIMPY, SHADOWS and DEL.ICIO.US all do this wrong I think](https://paul.kinlan.me/simpy-shadows-and-del-icio-us-all-do-this-wro/): I'm curious why social bookmarking services like Simpy, Shadows, and del.icio.us prioritize a user's tags over a global view. When clicking a tag, I'd rather … - [Yahoo Context Search Was down](https://paul.kinlan.me/yahoo-context-search-was-down/): My Wikipedia-based AJAX Tag and AJAX Tag 2 scripts were temporarily broken due to an issue with Yahoo's service. Big thanks to the Yahoo developer team, … - [C# Query from Google](https://paul.kinlan.me/c-query-from-google/): This post addresses the C# problem of checking if a string contains a number. Two approaches are suggested: using the Convert class with specific data types … - [Google sending me c# searches.](https://paul.kinlan.me/google-sending-me-c-searches/): Seeing increased C# searches in my blog logs. Visitors might appreciate the lack of C# content here, so I'll start addressing C# topics. - [Google Adsense](https://paul.kinlan.me/google-adsense/): I've just added a Google AdSense referral link to my blog! Google recently updated AdSense, including their terms and conditions. While I spotted mentions of … - [Update to DeliTag](https://paul.kinlan.me/update-to-delitag/): I've updated DeliTag. Currently, it only supports Del.icio.us integration with Firefox. To enable broader compatibility, I'm actively seeking proxy scripts for … - [DeliTag Now Does SIMPY and SHADOWS](https://paul.kinlan.me/delitag-now-does-simpy-and-shadows/): I've updated DeliTag to support uploading tags to SIMPY and Shadows. SIMPY works great! I had some initial trouble creating a Shadows account due to CAPTCHA … - [RE: Regex 101 Exercise S2 - Verify a string is a hex number](https://paul.kinlan.me/re-regex-101-exercise-s2-verify-a-string-is-a/): In a previous post about verifying a hex number string with regex, there was a slight error. The regex should have been ^[A-Fa-f0-9]+$. A further refinement to … - [Tag Clouds and the Yellow Pages](https://paul.kinlan.me/tag-clouds-and-the-yellow-pages/): I noticed the Yellow Pages cover uses different font sizes, similar to a tag cloud, and it made me wonder if a tag cloud for business listings would be useful. … - [RE: Regex 101 Exercise S2 - Verify a string is a hex number](https://paul.kinlan.me/re-regex-101-exercise-s2-verify-a-string-is-a/): This blog post discusses a regex exercise to verify if a string is a hexadecimal number. The proposed solution is ^[A-Fa-f0-9]*$, which matches any combination … - [What I am Doing About AJAXTag](https://paul.kinlan.me/what-i-am-doing-about-ajaxtag/): I'm changing the focus of AJAXTag. Instead of just giving users related information, I want to let readers explore and discover connections themselves. I'll … - [BlinkList](https://paul.kinlan.me/blinklist/): BlinkList, previously reported by Mind Valley as back online, appears to still be down. Expressing concern about the situation. - [My Site and The Anti-Phishing Feature](https://paul.kinlan.me/my-site-and-the-anti-phishing-feature/): My site, DeliTag, is being flagged as suspicious by IE7, likely due to the username and password fields for Delicious. I've created a privacy statement to … - [Potential Upgrades to my Blog](https://paul.kinlan.me/potential-upgrades-to-my-blog/): I'm planning some exciting upgrades to my blog! Soon, each post will feature a dynamically generated section at the end, pulling in related content like … - [RE: Blogniscient v. Memeorandum](https://paul.kinlan.me/re-blogniscient-v-memeorandum/): I tried out Blogniscient and Memeorandum, the automated blog news organizers, but I'm not impressed. The main reason? I can't even spell their names correctly … - [RE: Del.icio.us A Like?](https://paul.kinlan.me/re-del-icio-us-a-like/): I'm searching for social bookmarking services similar to Del.icio.us for integration with my AJAX-based DeliTag. This would allow uploading tags to multiple … - [I am going to put DeliTag on the main page](https://paul.kinlan.me/i-am-going-to-put-delitag-on-the-main-page/): I'm excited to announce that DeliTag will be featured on the main page to increase visibility and usage. It will also be available on Tagger.Kinlan.co.uk. As … - [I've taken Adverts of my site in all places apart from the Entry](https://paul.kinlan.me/i-ve-taken-adverts-of-my-site-in-all-places-a/): I've removed Google AdSense ads from my site's main page due to poor visibility and ineffectiveness. I've relocated them to a spot just before the comment … - [Del.icio.us A Like?](https://paul.kinlan.me/del-icio-us-a-like/): I'm searching for del.icio.us alternatives to integrate into my AJAX DeliTag application. My goal is to enable simultaneous tag uploads to del.icio.us and … - [Finally Got Blogger BackLinks Working](https://paul.kinlan.me/finally-got-blogger-backlinks-working/): I've successfully implemented backlinks on my Blogger blog, thanks to a helpful article on browservulsel.blogspot.com. Check it out if you're looking to add … - [Update to DeliTag](https://paul.kinlan.me/update-to-delitag/): I've just added a new feature to my website! Now, you can easily tag any page (except the main page) with relevant keywords and submit them directly to … - [1 hour later and I have made the Delicious Automatic Tagger](https://paul.kinlan.me/1-hour-later-and-i-have-made-the-delicious-au/): I've created a tool called DeliTag that automatically suggests tags for any page on kinlan.co.uk and submits them to your Delicious account. It's a quick … - [Ajax Tagger Oops](https://paul.kinlan.me/ajax-tagger-oops/): A quick heads-up: There's a bug in AJAX Tagger v2. I'll fix it tonight. My bad, I skipped testing a change I made yesterday. - [Amazon Web Service API SOAP vs REST](https://paul.kinlan.me/amazon-web-service-api-soap-vs-rest/): I've been exploring the Amazon Web Service API, comparing its REST and SOAP interfaces. Initial impressions suggest the REST API is significantly faster, … - [Favorite Movies](https://paul.kinlan.me/favorite-movies/): YMDB.com is a great site for listing your favorite movies and finding others with similar tastes. While the current interface is a bit tedious for adding and … - [Further update to my AJAX Application DeliTag](https://paul.kinlan.me/further-update-to-my-ajax-application-delitag/): I've updated my AJAX application, DeliTag (The Delicious Tag Poster)! Now, when you select text within the IFRAME, the application will analyze only the … - [Idea for another Program](https://paul.kinlan.me/idea-for-another-program/): I have a new program idea: an automatic tag creator for Del.icio.us, similar to my Ajax Tagging Application. It would analyze a webpage's content to suggest … - [RE: C# : Where do you define an enum](https://paul.kinlan.me/re-c-where-do-you-define-an-enum/): In response to a comment on Abhinaba's blog, I argue that verbosity in code is generally preferable, especially when defining enums. While Intellisense can be … - [RE: OPML - Please enlighten me](https://paul.kinlan.me/re-opml-please-enlighten-me/): I'm struggling to understand the practical uses of OPML, especially given the inconsistent use of attributes like 'type', 'url', and 'xmlurl'. While I'm … - [OPML JavaScript Object Model Updates](https://paul.kinlan.me/opml-javascript-object-model-updates/): I've updated the OPML JavaScript Object Model to support OPML Attributes for Outlines, increasing flexibility for developers. I've also incorporated an … - [RE: C# : Where do you define an enum](https://paul.kinlan.me/re-c-where-do-you-define-an-enum/): This post discusses the best placement for enum declarations in C#. While some argue that defining enums outside the class avoids extra typing, I believe that … - [RE: Ping Part III: Adventures in Socket programming using System.Net](https://paul.kinlan.me/re-ping-part-iii-adventures-in-socket-program/): I've posted another update to my ICMP ping tutorial series on MSDN Blogs. This installment focuses on crucial aspects like calculating checksums and … - [Googles Blog Search is FAST at indexing](https://paul.kinlan.me/googles-blog-search-is-fast-at-indexing/): Wow! Google Blog Search indexed my latest post in just minutes! I was amazed by how fast it appeared in the search results after uploading. I'm curious if … - [Little problem with my Atom Feed](https://paul.kinlan.me/little-problem-with-my-atom-feed/): My Atom feed was truncating the description text, making it look odd. I've fixed the problem and hope it didn't affect my readers too much. - [Problem with JavaScript in IE7](https://paul.kinlan.me/problem-with-javascript-in-ie7/): I've encountered a bug in IE6/7 where dynamically created checkboxes lose their checked status after being added to the document. Setting the checked property … - [RE: Ping Part II: Adventures in Socket programming using System.Net](https://paul.kinlan.me/re-ping-part-ii-adventures-in-socket-programm/): Part two of my C# Ping tutorial is now available! This installment dives into the structure of Ping packets and their place in the communication stack. It … - [Note to self](https://paul.kinlan.me/note-to-self/): I need to remember to learn more about the Dojo Toolkit, a JavaScript library. - [RE: Ajax Framework Comparison](https://paul.kinlan.me/re-ajax-framework-comparison/): I came across Matt Harrison's post discussing the challenges of choosing between various Ajax toolkits and frameworks, and it really resonated with me. He … - [RE: PING: Adventures in Socket programming using System.Net](https://paul.kinlan.me/re-ping-adventures-in-socket-programming-usin/): I'm back to blogging and starting a series on socket programming! First up: building a simple Ping client using System.Net.Sockets. I'll walk you through it, … - [Untitled](https://paul.kinlan.me/untitled/): I found a cool fisheye effect using Javascript at the Dojo Toolkit website. Check it out, it's neat, but I'm not sure how practical it is. - [Page Rank](https://paul.kinlan.me/page-rank/): I'm curious about the hype surrounding Page Rank, especially with the upcoming update. Personally, I don't have any Page Rank and question its significance. … - [JavaScript OPML Object Model Update](https://paul.kinlan.me/javascript-opml-object-model-update/): I'm working on a JavaScript Object Model for OPML and have found areas for improvement. I initially misunderstood the OPML spec, particularly regarding the … - [Ajax Tagger Version 1 Update to Wikipedia Documents](https://paul.kinlan.me/ajax-tagger-version-1-update-to-wikipedia-doc/): I've updated Ajax Tagger Version 1 to clean up how Wikipedia article titles appear in search results. It now removes the "- Wikipedia, The Free … - [Does anyone have any experience with BlogItemBacklinkCount](https://paul.kinlan.me/does-anyone-have-any-experience-with-blogitem/): I'm struggling to get the BlogItemBacklinkCount tag to display backlink counts for my Blogger blog hosted on my own server. I suspect it might not function in … - [OPML JavaScript Object Model](https://paul.kinlan.me/opml-javascript-object-model/): I've created a basic JavaScript Object Model for OPML, which you can find here: http://www.kinlan.co.uk/AjaxExperiments/opml.js. It's not entirely finished yet, … - [OPML JavaScript Object.](https://paul.kinlan.me/opml-javascript-object/): I'm developing a JavaScript Object Model for OPML, a first as far as I know! This is essential for my AJAX Tagger version 2, enabling dynamic OPML creation, … - [Related Images is now in Ajax Tagger 2](https://paul.kinlan.me/related-images-is-now-in-ajax-tagger-2/): I've just released version 2 of AJAX Tagger, and it now includes a Related Images feature! It pulls images from Flickr that you can easily insert into your blog … - [Yahoo API Developer Network](https://paul.kinlan.me/yahoo-api-developer-network/): I reported two issues with the Yahoo API over the weekend: one regarding the result number restriction not working as expected and another about the contextual … - [For all the people that know me but I didn't get around to txting last week](https://paul.kinlan.me/for-all-the-people-that-know-me-but-i-didn-t/): Our baby boy, Jack Paul Francis Kinlan, was born on October 11th, 2005, weighing 8lb 11.5oz. Both mom and baby are doing great! We waited a week before sharing … - [RE: State of the Blogosphere, October 2005 Part 1: On Blogosphere Growth](https://paul.kinlan.me/re-state-of-the-blogosphere-october-2005-part/): David Sifry of Technorati reports impressive blogosphere growth, doubling every 5 months and reaching 19.6 million blogs by October 2005. Around 70,000 new … - [Tags and Tagging](https://paul.kinlan.me/tags-and-tagging/): I've been pondering the use of tags lately, and noticed a lack of diversity in tagging practices. Many use tags for blog promotion or linking related content. … - [Untitled](https://paul.kinlan.me/untitled/): I often disagree with Jacob Neilson's views on usability, but his recent article on blog usability is spot on. I plan to implement several of his suggestions, … - [Why I don't like Blogger BackLinks](https://paul.kinlan.me/why-i-don-t-like-blogger-backlinks/): I'm disappointed with Blogger BackLinks. I thought they'd automatically pull in links to my posts from Google Blog Search, but they don't. Users have to … - [Hypothetically Speaking](https://paul.kinlan.me/hypothetically-speaking/): This blog post asks readers for their opinion on including event announcements related to blog post topics. For example, if a post is about Apple Macs, I … - [RE: Should I go with compression](https://paul.kinlan.me/re-should-i-go-with-compression/): James Manning left a comment on my blog post about compression, pointing to a Microsoft article about built-in decompression support in .NET 2.0 for SOAP … - [RE: Call to action: The demise of CSS hacks and broken pages](https://paul.kinlan.me/re-call-to-action-the-demise-of-css-hacks-and/): The IE team has announced that some CSS hacks used to fix issues in IE5 and IE6 won't work in IE7. This means web developers targeting IE7 will need to update … - [Untitled](https://paul.kinlan.me/untitled/): In a follow-up to my previous post about the scarcity of Bluetooth libraries for desktop PCs, Mark Arteaga brought 32feet.net to my attention. This site offers … - ["Get outta my jungle."](https://paul.kinlan.me/get-outta-my-jungle/): I just discovered that Latricia updated the XML::Feed CPAN module to merge RSS/ATOM feeds into one ATOM feed. This is awesome! I had a similar idea for AJAX … - [RE: XMLHttpRequest - Do you trust me?](https://paul.kinlan.me/re-xmlhttprequest-do-you-trust-me/): This post discusses the security implications of cross-domain XMLHttpRequest access. While some argue that such access increases the risk of phishing attacks … - [Should I go with compression](https://paul.kinlan.me/should-i-go-with-compression/): I'm considering compressing Yahoo Search results from my proxy, as suggested in a Yahoo Developer Blog post. I'm unsure if it's easy, worthwhile, and where to … - [A Backtrack!](https://paul.kinlan.me/a-backtrack/): My recent blog posts seem to be using trackback links automatically. Apologies to Blogger for the unintended behavior, however, I maintain my earlier criticism … - [AJAX Tagger 2 Question](https://paul.kinlan.me/ajax-tagger-2-question/): I'm developing a complex new version of the AJAX Tagger (2.0) with enhanced features for adding data to journal entries. However, I'm curious if there's still … - [Introduce a Feature!](https://paul.kinlan.me/introduce-a-feature/): Blogger has a new Trackbacks feature, but enabling it with custom templates is tricky due to incomplete documentation. While new features are appreciated, … - [Next Avalon Experiment](https://paul.kinlan.me/next-avalon-experiment/): I'm planning to transform my AJAX Tagger into a WinFX application to experiment with its potential and integrate various web services. - [Ping Goat is Experiencing Problems with Technorati](https://paul.kinlan.me/ping-goat-is-experiencing-problems-with-techn/): My blog, Ping Goat, is having trouble getting indexed by Technorati, similar to the issues I've faced with Tagger.com. It seems Technorati might remove blogs … - [Someone is beating me to it](https://paul.kinlan.me/someone-is-beating-me-to-it/): I found a cool tagging website, Tagyu, that suggests tags based on other people's discussions. I'm working on my own version, which I believe will be even … - [Wikipedia Related Document Retrivla is in. But....](https://paul.kinlan.me/wikipedia-related-document-retrivla-is-in-but/): I've added Wikipedia document retrieval to my application, but there's a design flaw. Tags currently operate in isolation, unaware of each other's related … - [Burnout Revenge!](https://paul.kinlan.me/burnout-revenge/): I just got Burnout Revenge for Xbox, and it's a huge step up from Burnout 3! The music, graphics, speed, and new levels are fantastic. The AI is good but a … - [Related Wikipedia Articles in AjaxTagger v1 is broke](https://paul.kinlan.me/related-wikipedia-articles-in-ajaxtagger-v1-i/): The related Wikipedia articles feature in AjaxTagger v1 is temporarily broken due to an update in one of the Yahoo Perl Proxy Scripts for AjaxTagger v2. I plan … - [Update Status of AJAX Tagger 2](https://paul.kinlan.me/update-status-of-ajax-tagger-2/): Quick update on the AJAX Tagger 2 development. Priority queues are working well, but might need some tweaking on queue numbers and polling intervals. Querying … - [IAEA - International Atomic Energy Agency](https://paul.kinlan.me/iaea-international-atomic-energy-agency/): The International Atomic Energy Agency (IAEA) website is one of the top referrers to my blog this month, and I can't figure out why. I jokingly speculate that … - [Update to AJAX Tagger 2](https://paul.kinlan.me/update-to-ajax-tagger-2/): I'm working on AJAX Tagger 2 and have implemented a priority queue system for AJAX requests. This system uses 5 queues and prioritizes urgent requests by … - [Finally a use for OPML](https://paul.kinlan.me/finally-a-use-for-opml/): I've figured out how to incorporate OPML into the upcoming version of the AJAX Tagger, enhancing its functionality. More details coming soon! - [Update and a link](https://paul.kinlan.me/update-and-a-link/): Just a quick update on what I've been up to. I'm still working on AJAXTagger v2 whenever I can. It's coming along, but I ran into a few JavaScript issues. … - [Just Cancelled my XBox Live Account](https://paul.kinlan.me/just-cancelled-my-xbox-live-account/): I just cancelled my Xbox Live account after 3 months of not using it, mainly due to a poor internet connection with Wanadoo. The cancellation process was quick … - [Quick Question about the Wikipedia Articles](https://paul.kinlan.me/quick-question-about-the-wikipedia-articles/): I'm seeking feedback on the AJAX Tagger I've implemented in my journal entries, specifically concerning the Wikipedia article links. Are they useful? Do you … - [Worker Threads in JavaScript?](https://paul.kinlan.me/worker-threads-in-javascript/): I'm exploring ways to implement continuous polling of a resource and event dispatching based on its state in JavaScript. Are worker threads, or something … - [Start Of The Requirements](https://paul.kinlan.me/start-of-the-requirements/): This post kicks off documenting the requirements for the next version of AJAXTagger. The goal is to create a successful application (by my definition) by … - [Web Service List](https://paul.kinlan.me/web-service-list/): I've always struggled to find good directories of companies offering web services. I finally stumbled upon ProgrammableWeb … - [C# 3.0 and LINQ](https://paul.kinlan.me/c-3-0-and-linq/): I just watched an exciting Channel 9 video about the future of C# 3.0, featuring Anders Hejlsberg. It highlighted some game-changing features, including … - [You may have noticed](https://paul.kinlan.me/you-may-have-noticed/): I've fixed a bug in the AJAX Tagger that caused Wikipedia article links to be incorrect. My apologies! - [C# 3.0. Ugh!](https://paul.kinlan.me/c-3-0-ugh/): I'm struggling to understand the purpose and syntax of Lambda Expressions in C# 3.0. They seem convoluted and unnecessary, deviating from C#'s object-oriented … - [Developer Toolbar for IE announced at PDC](https://paul.kinlan.me/developer-toolbar-for-ie-announced-at-pdc/): I'm excited to announce the release of the IE Developer Toolbar, a free tool for exploring HTML documents in both IE6 and IE7. It offers features like DOM … - [I can't belive I missed this About IE7](https://paul.kinlan.me/i-can-t-belive-i-missed-this-about-ie7/): I just read on the IE Team's Blog that Internet Explorer 7 will have native support for XMLHttpRequest and a rebuilt, windowless select element. This is huge! … - [Minor Test with AJAX Tagger](https://paul.kinlan.me/minor-test-with-ajax-tagger/): I've been experimenting with the AJAX Tagger and integrated it with Wikipedia to generate related article links. It's pretty quick, generating relevant links … - [AJAX Tagger Question](https://paul.kinlan.me/ajax-tagger-question/): I'm looking for user feedback on the next version of the AJAX Tagger. Specifically, I'd like to know if users would prefer to have the option of placing … - [AJAX Tagger Second Question](https://paul.kinlan.me/ajax-tagger-second-question/): I'm developing the next version of the AJAX Tagger and need your input! Currently, it enhances blog posts by linking to related blogs on Technorati. For the … - [Check out Channel 9.com](https://paul.kinlan.me/check-out-channel-9-com/): I'm excited to share a bunch of new videos on Channel 9, offering tons of insights into Windows Vista! Check out discussions with Rob Franco's team on IE 7 … - [First Public Comment and use of AJAX Tagger](https://paul.kinlan.me/first-public-comment-and-use-of-ajax-tagger/): I just got my first comment from a stranger, Gaby de Wilde, on my AJAX Tagger! He even used it on his site. I'm grateful for the feedback and plan to … - [Follow up to Start.com entry](https://paul.kinlan.me/follow-up-to-start-com-entry/): I previously complained about a click-related bug on Start.com. I'm pleased to report that the Start.com team responded to my email, explaining they're … - [MSN Start.com](https://paul.kinlan.me/msn-start-com/): I heard back from the Start.com team at MSN regarding the feedback I sent earlier. I'll share more details tomorrow, along with a couple of other posts I've … - [Note to self](https://paul.kinlan.me/note-to-self/): I'm really interested in ATLAS (AJAX), but I need to prioritize my time. I can't afford to get sidetracked by this project right now, especially since it's not … - [MSN Search API's Are up](https://paul.kinlan.me/msn-search-api-s-are-up/): The MSN Search API is now available. I haven't explored it fully yet, but here are some useful links: Why MSN Search?, the MSN Search API download, the SOAP … - [Requirements Requirements everywhere](https://paul.kinlan.me/requirements-requirements-everywhere/): I'm trying to be more diligent about documentation, but PDC distractions and the new MSN Search API have me sidetracked. The API's SOAP format and seeming … - [Start.com, Still that minor issue exists](https://paul.kinlan.me/start-com-still-that-minor-issue-exists/): I'm still waiting for a response from Start.com regarding my UI improvement suggestion. Even though Robert Scoble mentioned their quick response to feedback, I … - [Start.com's Developer Centre](https://paul.kinlan.me/start-com-s-developer-centre/): Microsoft's Start.com has launched a new developer API, possibly using the ATLAS framework (precursor to ASP.NET AJAX). It seems to focus on creating … - [Ad Targeting by Yahoo! Publisher Network](https://paul.kinlan.me/ad-targeting-by-yahoo-publisher-network/): Yahoo! Publisher Network (YPN) now offers ad category targeting, similar to Google AdSense. This feature allows publishers to specify categories for their ads, … - [I am just testing to see if how well w.Bloggar works](https://paul.kinlan.me/i-am-just-testing-to-see-if-how-well-w-blogga/): Testing out w.Bloggar and RSS Bandit integration for automated blog post commenting. Excited about the potential! - [More on MSN Search API's](https://paul.kinlan.me/more-on-msn-search-api-s/): This post compares the query limits of free search APIs from different providers. It highlights that MSN Search API reportedly allows up to 10,000 queries per … - [OPML. Nope I still don't get it](https://paul.kinlan.me/opml-nope-i-still-don-t-get-it/): I'm still confused about OPML. I know it's for sharing blog subscriptions, but I don't see the practical benefit for me or my readers. Even after checking … - [Some Minor Changes to my HTML](https://paul.kinlan.me/some-minor-changes-to-my-html.html/): I just noticed that when I went to any of the pages on my site that have been linked from my main blog, then the title wasn't appearing at the top of the page, … - [Technorati Blogger](https://paul.kinlan.me/technorati-blogger/): I just learned that getting listed on Technorati's Blog Search requires configuring a claim and adding 20 keywords/tags, even if those tags aren't used on my … - [Minor Test in the AJAX Tagger](https://paul.kinlan.me/minor-test-in-the-ajax-tagger/): I've added a new search feature to my site that uses the Yahoo API to find related articles based on keywords. You can test it out at … - [MSN are launching APIs](https://paul.kinlan.me/msn-are-launching-apis/): MSN is launching APIs on Tuesday, September 13th, allowing developers to access their search results. More information will be available on the MSN developer … - [The Failures of my First AJAX Application: Part 8](https://paul.kinlan.me/the-failures-of-my-first-ajax-application-par/): In part 8 of "Failures of my First AJAX Application," I discuss the lack of traffic generated by the application. Initially, I hoped for ad revenue, … - [The Failures of my First AJAX Application: Part 9](https://paul.kinlan.me/the-failures-of-my-first-ajax-application-part-9/): In this final part of "The Failures of my First AJAX Application" series, I reflect on the cross-browser compatibility issues I encountered. Focusing … - [The Failures of my First AJAX application: Part 5](https://paul.kinlan.me/the-failures-of-my-first-ajax-application-par/): This is the fifth installment in my series on the AJAXTagger's failures. A major issue is its lack of intuitiveness. Users couldn't understand its purpose or … - [The Failures of my First AJAX application: Part 6](https://paul.kinlan.me/the-failures-of-my-first-ajax-application-part-6/): This is the sixth part of my series on the failures of my first AJAX application, AJAXTagger. While I initially hoped it would be useful for everyone, it … - [The Failures of my First AJAX application: Part 7](https://paul.kinlan.me/the-failures-of-my-first-ajax-application-part-7/): This is the seventh post in my series about the failures of my first AJAX application. My biggest failure? No one used it! I had these grand visions of tons of … - [Creating a Second Blog](https://paul.kinlan.me/creating-a-second-blog/): I'm launching a second blog dedicated to my AJAX Tagging HTML application, which you can find here: http://www.kinlan.co.uk/AjaxExperiments/AjaxTag - [OPML and BBC Radio 4](https://paul.kinlan.me/opml-and-bbc-radio-4/): I was listening to a BBC Radio 4 program about blogging, and a guest pointed out that US/European bloggers link to others more than UK bloggers. Inspired by … - [The Failures of my First AJAX application: Part 4](https://paul.kinlan.me/the-failures-of-my-first-ajax-application-par/): In this part of my series on my first AJAX application, I discuss how my initial hopes for AJAX as a solution to bandwidth and UI problems, and for speed … - [Question About Site Searches](https://paul.kinlan.me/question-about-site-searches/): I'm having a hard time finding content on my own website, so I'm looking for a good site search engine. I'm considering Google Site Search for potential ad … - [The Failures of my first AJAX Application: Part 3](https://paul.kinlan.me/the-failures-of-my-first-ajax-application-par/): This blog post, the third in a series about my first AJAX application, focuses on the disastrous visual design. While the functionality is there, the UI is … - [The Failures of my first AJAX Application: Part 2](https://paul.kinlan.me/the-failures-of-my-first-ajax-application-par/): In part two of this series on the failures of my first AJAX application, I discuss how my initial plan to reduce bandwidth by having the client directly access … - [Another Thing I just noticed](https://paul.kinlan.me/another-thing-i-just-noticed/): My Technorati ranking has finally improved thanks to an incoming link from another blogger! Feeling grateful and a little guilty after past criticism of the … - [Bloggers Spelling Suggestion of Technorati](https://paul.kinlan.me/bloggers-spelling-suggestion-of-technorati/): While spell-checking my latest blog post, Blogger suggested "Degenerate" as a correction for "Technorati." I found this amusing, given the … - [Just Looking at my Logs](https://paul.kinlan.me/just-looking-at-my-logs/): I checked my website logs using AWStats and noticed a few searches from Google and MSN, but none from Yahoo. One search caught my attention: "does blogging … - [Technorati, boooooo [Part 3]](https://paul.kinlan.me/technorati-boooooo-part-3/): I'm continuing my rant about Technorati. While my posts eventually get indexed, I agree with Zoli Erdos's point about their terrible communication. Technorati … - [FeedBurner](https://paul.kinlan.me/feedburner/): I encountered an issue where my FeedBurner RSS feed wasn't displaying any article content. I've implemented a fix, and you should now be able to access the feed … - [Start.com, please listen!](https://paul.kinlan.me/start-com-please-listen/): Start.com's AJAX web portal, which displays web feeds in an HTML interface, has been promoted to the main site. However, a persistent issue remains: the … - [Technorati, Booooooo [Part 2]](https://paul.kinlan.me/technorati-booooooo-part-2/): In this follow-up post, I want to clarify the issue I had with Technorati. While some of the search results I was looking for are now appearing, my main concern … - [Technorati....Boooooo!](https://paul.kinlan.me/technorati-boooooo/): Technorati is experiencing performance issues and support backlogs, impacting users like myself. Despite sending a support request weeks ago, I haven't received … - [Recumbent Cycles](https://paul.kinlan.me/recumbent-cycles/): This post introduces my uncle's recumbent bicycle business. Recumbent cycles offer a unique riding experience with a reclined seating position. My uncle, Andrew … - [Google Desktop Beta 2 Again](https://paul.kinlan.me/google-desktop-beta-2-again/): I uninstalled Google Desktop Search Beta 2 because it was slowing down my computer. I kept the search index, though, just in case I decide to reinstall it … - [The Failures of my first AJAX Application: Part 1](https://paul.kinlan.me/the-failures-of-my-first-ajax-application-par/): This post discusses the shortcomings of my first AJAX application. While it successfully implemented Technorati tags, it failed to provide related search … - [Channel 9 Re-Design](https://paul.kinlan.me/channel-9-re-design/): I'm a big fan of Channel 9, a Microsoft website showcasing developer insights. Their recent redesign is fantastic! They've moved from a traditional blog … - [Google Desktop Beta 2 and IE7](https://paul.kinlan.me/google-desktop-beta-2-and-ie7/): Google Desktop Beta 2 is slowing down my computer significantly, affecting web browsing, IE7 tabbed browsing, and Blogger's editor. It also hogs CPU and makes … - [Proxy Script To Yahoo API Term Extraction](https://paul.kinlan.me/proxy-script-to-yahoo-api-term-extraction/): I've just finished creating a proxy script that allows access to the Yahoo Content Analysis API Term Extraction service from any browser, bypassing cross-site … - [Proxy Script To Yahoo Related Searches](https://paul.kinlan.me/proxy-script-to-yahoo-related-searches/): This blog post introduces a Perl proxy script that leverages the Yahoo Related Suggestions API. Given a search term, the script queries Yahoo and returns a … - [Comming up to a round number](https://paul.kinlan.me/comming-up-to-a-round-number/): I'm about to hit 100 posts! I also realized I forgot to post my Perl request forwarding scripts as promised, so I'll do that tonight. I'll also start … - [Image Filter Library](https://paul.kinlan.me/image-filter-library/): I've previously mentioned the .NET Image Filter Library, and I highly recommend it to anyone interested in learning about programmatic image manipulation. The … - [A List Apart. Cool!](https://paul.kinlan.me/a-list-apart-cool/): A List Apart, a popular website found via Technorati, uses Ruby on Rails. I'm curious about Ruby on Rails and its benefits for web development. The site's … - [MSN Bot](https://paul.kinlan.me/msn-bot/): My site's bandwidth usage spiked mid-month, and I discovered the culprit was MSN Bot repeatedly accessing my Atom.xml feed. It was hitting my feed every … - [Technorati Tags on Your Server](https://paul.kinlan.me/technorati-tags-on-your-server/): I discovered my Apache server doesn't require file extensions for URLs, meaning both www.kinlan.co.uk/AjaxExperiments/AjaxTag and … - [Google Desktop Search 2.0 Beta](https://paul.kinlan.me/google-desktop-search-2-0-beta/): I've downloaded the Google Desktop Search 2.0 Beta and I'm liking it so far. My only complaint is not being able to force indexing when not idle. It seems to be … - [OPML, What is the point?](https://paul.kinlan.me/opml-what-is-the-point/): I'm exploring OPML and trying to understand its purpose and potential uses. I've come across mentions of it by Robert Scoble, who suggests it could connect … - [The Successes of my first AJAX Application: Part 9](https://paul.kinlan.me/the-successes-of-my-first-ajax-application-pa/): In this installment, I reflect on the limitations of Blogger.com as a blogging platform. Despite its user-friendliness, several features fall short of my needs. … - [AJAX Breaking Browser Navigation Buttons](https://paul.kinlan.me/ajax-breaking-browser-navigation-buttons/): Many complain AJAX breaks browser navigation, but I believe that pressing the back button should exit an AJAX application entirely. It's not AJAX itself, but … - [I really like parts of the design of this blog](https://paul.kinlan.me/i-really-like-parts-of-the-design-of-this-blo/): I'm considering redesigning my blog and like the single-post focus of penandthink.com/niggle. However, my blog has frequent posts, so I'm unsure if that style … - [The Successes of my first AJAX Application: Part 6 - Improving my Grammar](https://paul.kinlan.me/the-successes-of-my-first-ajax-application-pa/): I'm aware my writing isn't great - my vocabulary, punctuation, and grammar could all use improvement. Even though I'm using Word to help, I know I need to do … - [The Successes of my first AJAX Application: Part 6 - Introduction](https://paul.kinlan.me/the-successes-of-my-first-ajax-application-part-6-introduction/): This blog post, the sixth in my "Successes and Failures of my First AJAX Application" series, discusses how my blogging style is evolving. I'm … - [The Successes of my first AJAX Application: Part 6 - The Length of the Entries](https://paul.kinlan.me/the-successes-of-my-first-ajax-application-part-6-the-length-of-the-entries/): This blog post discusses the ideal length of blog entries. It argues that both too short and too long posts can be detrimental to a blog's success. Short posts … - [The Successes of my first AJAX Application: Part 6 - The things I talk about](https://paul.kinlan.me/the-successes-of-my-first-ajax-application-part-6-the-things-i-talk-about/): I've been reflecting on the direction of my blog, "C#, .Net Framework." I feel the name is too limiting, given my recent posts on topics like IE7, … - [The Successes of my first AJAX Application: Part 6 - What I include in my Blogs](https://paul.kinlan.me/the-successes-of-my-first-ajax-application-part-6-what-i-include-in-my-blogs/): This blog post discusses the importance of balancing valuable content with helpful features. I currently offer content and features like Technorati tags, and … - [The Successes of my first AJAX Application: Part 7](https://paul.kinlan.me/the-successes-of-my-first-ajax-application-part-7/): In this part of my series on my first AJAX application, the Technorati Tag Generator, I discuss its success in streamlining my blogging process. The generator … - [The Successes of my first AJAX Application: Part 8](https://paul.kinlan.me/the-successes-of-my-first-ajax-application-part-8/): This post, part 8 of a series about my first AJAX application, discusses my return to Perl programming after a year of focusing on C# and .Net. I needed to … - [Want to make money blogging](https://paul.kinlan.me/want-to-make-money-blogging/): Making money blogging seems to require blogging about making money blogging! Darren Rowse of problogger.net reportedly earns a six-figure monthly salary from … - [XML and Perl](https://paul.kinlan.me/xml-and-perl/): In my last post about Perl, I forgot to mention my upcoming need for XML processing. Before I start looking at XML parsers, I'd appreciate recommendations for … - [Cool Technorati API Update](https://paul.kinlan.me/cool-technorati-api-update/): I'm excited about Technorati's new REST API for blog post tags! It lets developers display all the tags used on a site, which is super helpful. I've even … - [I have just noticed this Technorati Tagger Application](https://paul.kinlan.me/i-have-just-noticed-this-technorati-tagger-ap/): I just discovered the Technorati Tagger application (http://www.ultraseeker.com/tagbuilder). It's decent, converting user-generated tags into XHTML. This … - [The Successes of my first AJAX Application: Part 5](https://paul.kinlan.me/the-successes-of-my-first-ajax-application-pa/): In this part of my series on my AJAX application, I'm discussing the impact of external APIs. My use of APIs has made me realize how much more API access I … - [Word Blogger, Things I would like to see](https://paul.kinlan.me/word-blogger-things-i-would-like-to-see/): As a user of the Windows Blogger Tool, I've identified some desired features for future releases. These include HTML editing before posting, image and table … - [Blogger Tool First Post](https://paul.kinlan.me/blogger-tool-first-post/): My first post using the new Blogger Word Blogging tool! It's easy to use and publishes really fast. I'm curious about HTML control since my AJAX tool outputs … - [Bloggers New Tool](https://paul.kinlan.me/bloggers-new-tool/): Blogger has released a new plugin for Microsoft Word called "Word Blogger" (or "Worger" as I'm calling it!). It allows direct posting of … - [Retail Web Service Therapy](https://paul.kinlan.me/retail-web-service-therapy/): I believe retailers need to embrace open APIs to their product catalogs and ordering systems to reach a wider audience. While I agree with Robert Scoble's view … - [The Successes of my first AJAX Application: Part 4](https://paul.kinlan.me/the-successes-of-my-first-ajax-application-pa/): This is the fourth installment of my AJAX application development journey. I integrated the Technorati API, focusing on the Tag Query to gauge keyword … - [The Successes of my first AJAX Application: Part 3](https://paul.kinlan.me/the-successes-of-my-first-ajax-application-pa/): In this third part of my series on my first AJAX application, I'm diving into the power of the Yahoo! API. It's been a learning experience, and I'm incredibly … - [What is Scoble Talking about? [Not an attack or anything]](https://paul.kinlan.me/what-is-scoble-talking-about-not-an-attack-or/): Robert Scoble's recent blog post mentions the increasing number of blogs and photo-sharing sites, questioning how people can keep up with all of it, especially … - [Feedsters API](https://paul.kinlan.me/feedsters-api/): The Feedster API has potential, but it's unclear what its purpose is. It would be more useful if it allowed content searches and provided metadata about … - [It appears to be the case](https://paul.kinlan.me/it-appears-to-be-the-case/): My Technorati URLs appear to have been incorrectly formatted, causing parsing issues. - [The Successes of my first AJAX Application: Part 2](https://paul.kinlan.me/the-successes-of-my-first-ajax-application-pa/): In part 2 of my AJAX application journey, I'm tackling browser compatibility issues between Firefox and Internet Explorer. Key differences include handling XML … - [Update about IE7 Feeds not working](https://paul.kinlan.me/update-about-ie7-feeds-not-working/): I haven't been updating the list of feeds that don't work in IE7 lately. I've been in contact with Sean Lyndersay, a Lead Program Manager on the RSS team at … - [Colour Theory](https://paul.kinlan.me/colour-theory/): I stumbled upon a helpful link about colour theory, which explains how to combine colours effectively. I'm fascinated by this concept and plan to research it … - [IE7 Tabbed Browsing Annoyance Part 2](https://paul.kinlan.me/ie7-tabbed-browsing-annoyance-part-2/): IE7's synchronous XmlHttpRequest locks up all browser tabs during long requests, not just the active tab. Is this behavior expected or a bug? If you've … - [Is there a minor problem with the way technorati parses URLs](https://paul.kinlan.me/is-there-a-minor-problem-with-the-way-technor/): I noticed a lack of referrals from Technorati and discovered my blogs weren't showing up in tag searches. The problem stemmed from my Technorati AJAX … - [The Successes of my first AJAX Application: Part 1](https://paul.kinlan.me/the-successes-of-my-first-ajax-application-pa/): In this first installment of a series about my AJAX application journey, I'm sharing my initial success: learning to think asynchronously. The current app … - [Things I have learn't from my first Ajax Test](https://paul.kinlan.me/things-i-have-learn-t-from-my-first-ajax-test/): My first foray into Ajax was a mixed bag, yielding both valuable lessons and frustrating setbacks. On the plus side, it sparked a deeper understanding of … - [A Difference I think I have noticed between IE and Firefox concerning XmlHttpRequest](https://paul.kinlan.me/a-difference-i-think-i-have-noticed-between-i/): I've noticed a difference in how Internet Explorer (versions 6 and 7) and Firefox handle synchronous XmlHttpRequests. In both browsers, you can send requests … - [IE7 Crashes when Showing list of favorites](https://paul.kinlan.me/ie7-crashes-when-showing-list-of-favorites/): My IE7 Beta 1 keeps crashing when I try to expand my favorites list, although it works fine in collapsed view. This might be related to the large number of … - [AJAX Application Update](https://paul.kinlan.me/ajax-application-update/): I've been exploring how Microsoft's Start.com retrieves data from external web feeds. It appears they use a server-side script to tunnel requests to the remote … - [A Minor Problem with my AJAX Application](https://paul.kinlan.me/a-minor-problem-with-my-ajax-application/): My AJAX application has a minor cross-site data access security issue, similar to one I've encountered in Firefox. A workaround in IE6/7 involves enabling … - [Question to BlogExplosion Users](https://paul.kinlan.me/question-to-blogexplosion-users/): I'm curious if my BlogExplosion traffic is genuinely interested in my content. If you found my blog through BlogExplosion, would you still visit if you'd … - [AJAX Technorati Tagger](https://paul.kinlan.me/ajax-technorati-tagger/): I've created my first AJAX application, an AJAX Technorati Tagger, which can be found here. It allows users to input text, receive suggested Technorati tags … - [Just a little something I am working on](https://paul.kinlan.me/just-a-little-something-i-am-working-on/): I'm developing an AJAX application to automatically generate Technorati, Feedster, and MSN search boxes with relevant tags for my blog posts. It's a JavaScript … - [The Previous Entry Worked!](https://paul.kinlan.me/the-previous-entry-worked/): My previous blog post was successfully created using Kinlan's Automatic Tag Generator (powered by Yahoo!'s Web service). I'm excited about this and plan to … - [Important Information for web publishers about IE7 feed detection](https://paul.kinlan.me/important-information-for-web-publishers-abou/): IE7 Beta 1 now has a feed auto-discovery feature, but it's a bit picky. It only recognizes RSS feeds (no Atom yet) and requires a specific HTML snippet with the … - [RSS Feeds that don't work in IE7](https://paul.kinlan.me/rss-feeds-that-don-t-work-in-ie7/): This post lists RSS feeds that aren't displaying correctly in the IE7 feed viewer. Specifically, they don't render in IE7's new format. I'm trying to … - [What I thought was a smart Idea.](https://paul.kinlan.me/what-i-thought-was-a-smart-idea/): I had this brilliant idea to create a merged RSS feed using client-side processing. The idea was to have a main RSS feed that linked to other feeds. My custom … - [IE7 RSS Feed Update Part 3: The case of the found feed which doesn't display [Is it a Bug]](https://paul.kinlan.me/ie7-rss-feed-update-part-3-the-case-of-the-fo/): IE7 finds the RSS feed on channel9.msdn.com but doesn't display it correctly, only showing the raw XML. I'm looking for other examples of feeds that IE7 can't … - [Note To Self. Learn to read the title of the blog](https://paul.kinlan.me/note-to-self-learn-to-read-the-title-of-the-b/): I made a typo in the title of my blog post! It should have been "A good test to check out the alpha transparency and I missed it!" instead of "I … - [I good test to check out the alpha transparency and I missed it!](https://paul.kinlan.me/i-good-test-to-check-out-the-alpha-transparen/): In a previous post, I failed to test the alpha transparency feature. This post rectifies that. I've included an image with a green fade to white against a … - [IE7 Beta 1 Minor Annoyances In Tabbed Browsing](https://paul.kinlan.me/ie7-beta-1-minor-annoyances-in-tabbed-browsin/): After using IE7 Beta 1, I've found tabbed browsing, while a welcome addition, has a few quirks. Modal dialog boxes lock the entire browser, not just the tab, … - [IE7 RSS Feed Update](https://paul.kinlan.me/ie7-rss-feed-update/): IE7 introduces the ability to subscribe to any link in your default RSS aggregator. This function allows users to right-click a link and select the … - [IE7 Suggestions For RSS Feeds](https://paul.kinlan.me/ie7-suggestions-for-rss-feeds/): I've been exploring the RSS features in IE7 Beta 1 and have a couple of suggestions. First, it would be great if we could add feeds to favorites directly from … - [IE7 Beta 1](https://paul.kinlan.me/ie7-beta-1/): I've been trying out IE7 Beta 1 and have some mixed feelings. While I like the tabbed browsing and the new tab placement, I'm not sure it's the ideal UI. It … - [New Styles for Tagging](https://paul.kinlan.me/new-styles-for-tagging/): I've just updated the comment tagging styles. Hopefully, they improve the look and feel of the comments section. - [Response to Comment From Rafer](https://paul.kinlan.me/response-to-comment-from-rafer/): Thanks to Scott Rafer for the comment! I'm experimenting with providing topic search results rather than keyword searches to offer broader perspectives on a … - [C# 3.0 XML Generics Again](https://paul.kinlan.me/c-3-0-xml-generics-again/): I explored the idea of C# 3.0 XML Generics based on Matt War's blog post. I'm questioning the practicality of defining a generic from an XML Schema within the … - [Experimemnting with Blog](https://paul.kinlan.me/experimemnting-with-blog/): I'm trying to increase readership for my blog. I'm adding links to Technorati Tag RSS feeds at the end of each post, hoping it'll connect readers with others … - [C# Generics 3.0](https://paul.kinlan.me/c-generics-3-0/): This short, humorous post suggests the seriousness of the topic of C# Generics 3.0 despite its light-hearted tone. It hints at a deeper dive into the topic, … - [c# generics 3.0](https://paul.kinlan.me/c-generics-3-0/): I'm exploring the concept of generics in C# 3.0, particularly how they might relate to XML types. I'm having trouble grasping the connection described in … - [Changing Styles with the times (Answers and Thoughts)](https://paul.kinlan.me/changing-styles-with-the-times-answers-and-th/): I've been discussing how to load styles and new UI designs into an Avalon application, specifically focusing on the challenge of connecting the UI to the … - [Looks like you can do it! Yipee!](https://paul.kinlan.me/looks-like-you-can-do-it-yipee/): I found a way to dynamically load resource files for skinning XAML apps! It's surprisingly easy. One method involves simply loading a resource and assigning it … - [Changing Styles with the times](https://paul.kinlan.me/changing-styles-with-the-times/): I'm exploring ways to dynamically change the layout and styles of my Avalon application at runtime, allowing users to switch between different UI themes. I'm … - [DoubleAnimation Crashes XAMLPad (MayCTP): Some Answers To Questions](https://paul.kinlan.me/doubleanimation-crashes-xamlpad-mayctp-some-a/): DoubleAnimation crashes in XAMLPad (May CTP) when animating Width or Height without specifying both "From" and "To" values, or when a base … - [New Start.Com](https://paul.kinlan.me/new-start-com/): I just completed all the questions on Start.com, and they gave me a link to their new beta site: http://www.start.com/myw3b/. It's supposed to be an all-in-one … - [XAML Menu Throbbing! (Answers to Questions)](https://paul.kinlan.me/xaml-menu-throbbing-answers-to-questions/): I've found answers to my XAML menu throbbing questions! Using RoutedEvents in ControlTemplates (and DataTemplates!) lets me start and stop timelines for … - [DoubleAnimation Crashes XAMLPad (MayCTP)](https://paul.kinlan.me/doubleanimation-crashes-xamlpad-mayctp/): I've encountered a crash in XAMLPad (May CTP) when animating the width of a MenuItem. Specifically, if I remove the "From" attribute in a … - [XAML Menu Throbbing!](https://paul.kinlan.me/xaml-menu-throbbing/): I had this cool idea to add some throbbing action to my GelButton menu items in XAML. I wanted them to subtly pulse when hovered over. Turns out, it's harder … - [XAML Menu Example](https://paul.kinlan.me/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 … - [XAML Menu Example: Addendum](https://paul.kinlan.me/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 … - [IHttpModule Things I have noticed](https://paul.kinlan.me/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 … - [ASP.Net Query Parameter Validation](https://paul.kinlan.me/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 … - [FishEye Example Code That Integrates into Tiger Imaging](https://paul.kinlan.me/fisheye-example-code-that-integrates-into-tig/): 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 … - [Looks like I can't update the old account anymore, so looks like I am staying here](https://paul.kinlan.me/looks-like-i-can-t-update-the-old-account-any/): It appears I'm unable to update my old account. Consequently, I'll be maintaining my presence here. - [Moved the Blog To Kinlan.co.uk](https://paul.kinlan.me/moved-the-blog-to-kinlan-co-uk/): I've moved my blog from Blogger to my own domain, kinlan.co.uk. I'm still using Blogger's software, but hosting it myself will give me better tracking. I'm … - [I did it.... Fish Eye... Call Me Kinlan The Chuffed!!!](https://paul.kinlan.me/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. … - [Image Processing: Part 1](https://paul.kinlan.me/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 … - [Image Processing: Part 2](https://paul.kinlan.me/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 … - [Running GACUtil in Build for Visual Studio 2005](https://paul.kinlan.me/running-gacutil-in-build-for-visual-studio-20/): Visual Studio 2005 Beta 2 doesn't load PATH environment variables during build, causing tools like GACUtil and RegAsm.exe to fail. A simple fix is to add 'CALL … - [Amazon Web Service](https://paul.kinlan.me/amazon-web-service/): This blog post presents the results of my initial experiment with Amazon Web Service. I've compiled a list of various products, including books and a DVD, with … - [Visual Studio 2005 Beta 2](https://paul.kinlan.me/visual-studio-2005-beta-2/): Visual Studio 2005 Beta 2 is now available for download to MSDN Universal subscribers. I'm excited about this release and will be posting examples soon. Check … - [Are there any good Web Services out there?](https://paul.kinlan.me/are-there-any-good-web-services-out-there/): I'm exploring different web services, particularly for UK retailers like Tesco, Asda, or Virgin. I've tried Amazon's, which is decent, and Yahoo's, which I … - [Iterating Accross A Users Links in c#](https://paul.kinlan.me/iterating-accross-a-users-links-in-c/): This post explores how to access and iterate through a user's Internet Explorer Favorites in C#. I've included C# code that retrieves the Favorites directory … - [MSDN .NET Framework Developer Center:](https://paul.kinlan.me/msdn-net-framework-developer-center/): I finally took my own advice and watched the MSDN videos, specifically "Designing .NET Class Libraries: Member Types." I was impressed with the … - [REST and SOAP](https://paul.kinlan.me/rest-and-soap/): I've been exploring Amazon's SOAP API and Yahoo's REST API and I'm quite impressed with both. I'm thinking about ways to make these two APIs interact and will … - [Binary XML](https://paul.kinlan.me/binary-xml/): This blog post explores the arguments for and against Binary XML. While some argue that Binary XML addresses XML's verbosity, text processing speed, and … - [MSDN .NET Framework Developer Center: Designing .NET Class Libraries](https://paul.kinlan.me/msdn-net-framework-developer-center-designing/): I'm excited about the new MSDN .NET Framework Developer Center on designing class libraries! It looks like a promising series based on internal Microsoft … - [First Post](https://paul.kinlan.me/first-post/): A quick test post to check if everything's working. Planning to share learnings about C#, C# 2.0, and .NET Framework soon.