{"id":"bd97f52d-da5c-45ca-b207-11e8c48f0174","timestamp":1775114747548,"matcher":{"static":{},"wildcard":{},"dynamic":{}},"prerendered":["/","/blog/2026/03/30/prism-vtx5000-part-2","/blog/2026/03/23/prism-vtx5000-part-1","/blog/2025/12/09/sell-and-ship-to-guernsey","/blog/2025/12/05/html5-video-cheatsheet","/blog/2025/12/04/art-of-amiga-lettering","/blog/2025/10/25/mongodb-explicit-transactions","/blog/2025/09/22/mongodb-queryable-encryption","/blog/2025/04/02/ef-proxies","/blog/2025/02/14/improved-content-articles-in-nuxt3","/reference/guernsey","/blog/2024/08/01/generated-excerpts-for-nuxt3-content","/blog/2024/05/14/nuxt-content-db-and-size","/blog/2024/04/25/send-email-with-aws-and-brevo","/blog/2023/02/03/tatung-einstein-disk-file-extraction","/blog/2023/06/04/send-email-with-nuxt3-cloudflare-and-brevo","/blog/2023/10/16/cloudflare-blog-comment-receiver","/blog/2023/02/10/rendering-content-with-nuxt3","/blog/2023/02/09/floppy-disk-primer","/blog/2023/02/07/reading-time-with-nuxt3-content","/blog/2022/03/22/estimating-json-size","/blog/2021/12/03/using-variable-webfonts-for-speed","/blog/2021/11/29/migrating-from-opentracing-to-opentelemetry","/blog/2021/08/05/developing-a-great-sdk","/blog/category/fun","/about","/typography","/blog/category/technology","/blog/category/development","/blog/2021/03/30/breaking-changes","/blog/2021/03/02/or-expressions-in-linq","/blog/2021/03/09/mac-os-9-on-windows","/blog/2020/09/21/from-circleci-to-github-actions","/blog/2020/05/02/pokes-for-spectrum","/blog/2020/02/14/delphi-birthday-my-story","/blog/2020/02/08/ddr4-information-in-linux","/blog/2019/12/19/semver-is-an-intent-not-a-promise","/blog/2019/06/03/zxorigins-free-8-bit-fonts-for-games","/blog/2019/05/22/wordpress-to-jekyll-faster","/blog/2019/03/27/azure-pipeline-build-variables","/blog/2018/06/08/revisiting-my-bbc-micro","/blog/2018/05/31/wordpress-to-jekyll-hosting","/blog/2018/05/30/wordpress-to-jekyll-categories-tags","/blog/2018/05/29/wordpress-to-jekyll-search","/envy-code-r","/typography/advent/2025","/typography/advent/2024","/typography/zx-origins","/typography/advent/2023","/typography/advent/2021","/typography/advent/2022","/blog/2007/10/04/october-workshop-at-guernsey-software-developer-forum","/software","/blog/2008/03/19/visual-studio-windows-server-and-sql-server-2008-launch-in-guernsey","/blog/2008/02/25/hibernate-presentation-in-guernsey","/blog/tag/ZX Spectrum","/blog/tag/vintage computing","/about/privacy","/blog/tag/h","/blog/tag/w","/blog/tag/o","/blog/tag/t","/blog/2016/08/09/typography-in-bits-for-a-few-pixels-more","/blog/tag/web","/blog/tag/video","/blog/tag/HTML5","/blog/2007/09/29/list-of-guernsey-estate-agents","/blog/2007/09/14/guernsey-software-developer-forum-27-september","/blog/2007/08/15/web-application-security-talk-at-gsdf","/blog/tag/Amiga","/blog/2007/06/21/guernsey-software-developers-forum-june-28th","/blog/2007/06/20/guernsey-mobile-plans","/blog/2007/05/15/subversion-talk-at-guernsey-developer-user-group","/blog/tag/Entity Framework","/blog/tag/MongoDB","/blog/2007/02/02/where-do-the-recycled-things-go","/blog/2007/01/10/guernsey-developers-user-group-meeting","/blog/2006/11/15/guernsey-considers-ban-on-replica-guns","/blog/2006/04/04/countrycodesforjerseyguernseyisleofmanaddedtoiso","/blog/2006/06/13/cw_guernsey_2mb_broadband","/blog/2006/03/20/stateofthebroadbandmarch2006","/blog/2006/03/17/newtelguernseydslpricedroponmonday","/blog/2006/03/02/channelislandstodumpukmailorderhosting","/blog/2006/02/20/cablewirelessguernseynetworkfailure","/blog/2006/02/24/shoppingfordvds","/blog/2006/01/24/surfersagainstsewage","/blog/2006/01/25/shopsmartfromthechannelislands","/blog/2005/11/08/stateofthebroadband","/blog/2005/12/12/appletothechannelislands-getlost","/blog/2005/09/15/battleofbritainadslupgradesskypeandeuvat","/blog/2005/08/21/oakleycharitymotorcyclespin2005","/blog/2005/07/08/cwguernsey1mbitadsl","/blog/2005/04/21/cwguernseyandshort-codetextmessages","/blog/tag/Nuxt","/blog/2005/06/04/guernseynews","/blog/tag/webdev","/blog/2005/04/11/guernseydslaccess","/blog/tag/Cloudflare","/blog/tag/AWS","/blog/tag/Tatung Einstein","/blog/tag/floppy disks","/blog/tag/Brevo","/about/terms","/blog/category/Technology","/about/responsible-disclosure","/blog/tag/C","/blog/tag/.NET","/blog/2013/08/15/experiencing-chromecast-my-review","/blog/2012/12/02/for-the-love-of-pixels","/blog/2009/02/18/the-secret-driven-developmentdesign-acronyms","/blog/2008/08/08/fun-entertainment-online","/blog/2007/08/07/seven-ideas-for-topping-up-your-ipod","/blog/2007/09/17/great-books-coming-to-the-big-screen","/blog/2007/07/09/my-rock-band-dream-set-list","/blog/2007/04/24/taking-on-the-role-of-a-guitar-hero","/blog/2006/09/18/lego-star-wars-2-on-the-360","/blog/2007/02/16/hot-fuzz-pegg-frost-wright-on-form","/blog/2006/11/27/xbox-360-misleading-advertising","/blog/2006/08/31/sony_eyetoy_on_windows","/blog/2006/03/24/elderscrollsivoblivionxbox360firstimpressions","/blog/2006/01/24/xbox360-morethoughts","/blog/2006/08/03/commoditising_game_production","/blog/2006/07/21/exploring_the_nintendo_ds_lite","/blog/2006/01/07/xbox360firstimpressions","/blog/2005/11/23/fahrenheitthemovies","/blog/2005/11/29/thehuntforapspintimeforchristmas","/blog/2005/08/30/onehitwonderland","/blog/2005/08/25/fillinganipodwhatispodcastinganyway","/blog/2005/08/17/xbox360prices","/blog/2005/06/20/itunesipodwish-list","/blog/2005/02/16/artconsumption","/blog/2005/01/03/lemonysnicketsaseriesofunfortunateevents","/blog/2005/05/18/hitchhikersguidecontinues","/blog/2009/12/29/origins-of-a-love-affair","/blog/2011/01/29/from-somewhere-small-transport-in-the-usa-well-seattle","/blog/2008/09/27/friday-fill-ins-91","/blog/2008/08/05/how-did-i-get-started-in-software-development","/blog/tag/OpenTelemetry","/blog/2008/07/10/from-the-vaults-of-twitter","/blog/2008/06/02/damiengcom-rises-from-the-ashes","/blog/2008/05/21/may-2008-checkpoint","/blog/2008/01/02/year-2007-in-review","/blog/2008/04/01/joining-the-linq-to-sql-team-at-microsoft","/blog/2007/10/31/recent-activities-and-inactivities","/blog/2007/10/27/returned-from-redmond","/blog/2007/10/12/heading-to-redmond","/blog/2007/09/06/confusing-co-workers-family-and-friends-for-fun","/blog/2007/08/22/moving-home","/blog/2007/07/19/what-are-you-doing-for-the-next-6-months-to","/blog/2007/01/04/things-i-learnt-in-japan","/blog/category/Guernsey","/blog/tag/API","/blog/2006/12/29/damo-awards-2006","/blog/2006/12/10/update-from-japan","/blog/2006/12/17/bsc-honours-information-technology-and-computing-firstclass","/blog/2006/11/12/back-in-mostly-one-piece","/blog/2006/11/22/going-to-japan","/blog/2006/11/14/what-im-up-to-at-the-moment","/blog/2006/11/05/a-penny-for-your-guy-thoughts","/blog/2006/11/07/reaching-into-the-depth","/blog/2006/04/25/welcometomynewhome","/blog/2006/03/13/personalcheckpointmarch2006","/blog/2006/10/17/reflections-on-damien-guard-bsc-hons","/blog/2006/10/25/the-nine-finger-grip-of-death","/blog/2006/01/23/adventuresinjacksonwyoming-part2","/blog/2006/01/21/adventuresinjacksonwyoming-part1","/blog/2006/01/24/fourthingsmeme","/blog/2006/01/03/resolutionsfor2006","/blog/2005/12/30/agermanchristmas","/blog/2005/12/07/anothermeme","/blog/2005/10/06/hochstadtnowandthen","/blog/2005/09/06/yourfavouritediscontinued","/blog/2005/08/18/travels-in-france-part-2","/blog/2005/07/24/quays-keys-ink-and-rings","/blog/2005/07/13/travels-in-france-part-1","/blog/2005/06/15/traveltipsandin-traysurprises","/blog/2005/06/10/damiendoesamusicmeme","/blog/2005/06/01/illness-travel-and-the-french","/blog/2005/03/14/les-arcs-1800-part-the-second-france","/blog/2005/03/06/les-arcs-1800-part-the-first-london","/blog/2005/05/06/planes-trains-and-engine-failure","/blog/2005/01/18/icerocksandminorinjuries","/blog/2004/12/19/thedayafterlastnight","/blog/2004/12/30/reflectionschristmas2004","/blog/2004/12/17/welcome","/blog/2004/12/22/openuniversitym360resultsforchristmas","/blog/2004/12/17/preparingforthechristmasball","/blog/2011/11/19/typography-can-be-fun","/blog/category/Development","/blog/2013/06/02/typography-on-the-microsoft-campus","/blog/2014/07/20/typography-in-bits-other-english-micros","/blog/2011/10/19/androids-roboto-system-font-for-ice-cream-sandwich","/blog/2008/08/25/the-xerox-alto-mono-spaced-font-rises-again","/blog/2009/05/07/font-hinting-and-instructing-a-primer","/blog/2011/03/27/typography-in-16-bits-system-fonts","/blog/2008/04/14/more-screen-shots-of-envy-code-r-preview-7","/blog/2011/02/20/typography-in-8-bits-system-fonts","/blog/2007/12/03/getting-the-hint-where-is-envy-code-r","/blog/2007/11/27/envy-code-r-coding-font-v07-preview","/blog/2007/11/14/droid-font-family-courtesy-of-google-ascender","/blog/2007/11/05/professional-quality-free-fonts","/blog/2007/10/13/older-pixel-fonts-back-online","/blog/2007/11/14/droid-sans-mono-great-coding-font","/blog/2008/05/26/envy-code-r-preview-7-coding-font-released","/blog/2007/10/09/envy-code-r-jeff-atwood-scheme","/blog/2007/08/16/envy-code-r-preview-6-forthcoming","/blog/2007/05/17/red-hat-releases-liberation-fonts","/blog/2007/08/19/envy-code-r-preview-6-released-with-visual-studio-italics","/blog/2007/06/13/font-rendering-philosophies-of-windows-and-mac-os-x","/blog/2007/04/20/windows-font-evolution","/blog/2007/04/09/programming-fonts-you-might-not-have-tried","/blog/2006/12/16/envy-code-r-work-continues","/blog/2006/11/30/preview-of-envy-code-r-programming-font","/blog/2006/12/26/envy-code-r-programming-font-preview-available-for-download","/blog/2006/11/29/comparing-programming-fonts","/blog/2006/11/26/inconsolata-opentype-programming-font","/blog/2006/11/06/envy-code-b-font-available-in-ttf-format","/blog/category/Typography","/blog/2006/05/13/palmosfontavailable","/blog/2006/04/10/cleartypesmoothedfontsandthebaneofmssansserif","/blog/2006/05/10/envycodeacodebprogrammingfontsupdated","/blog/2016/02/27/monitoring-urls-for-free-with-google-cloud-monitor","/blog/2015/08/05/notes-on-edward-tuftes-presenting-data-and-information","/blog/2015/05/16/quality-of-ssl-protection-for-us-financial-institutions","/blog/2015/03/29/revitalizing-a-bbc-micro","/blog/2014/09/03/what-to-do-before-your-itunes-match-subscription-expires","/blog/2014/08/22/setup-an-ubuntu-server-at-digital-ocean","/blog/2015/04/24/make-home-end-keys-behave-like-windows-on-mac-os-x","/blog/2013/12/23/a-case-for-my-macbook-pro-snugg-wallet-case-review","/blog/2013/08/16/windows-8-media-keys-on-a-regular-keyboard","/blog/2013/06/13/working-at-microsoft","/blog/2013/01/23/acer-aspire-s7-review-two-months-in","/blog/2012/08/24/building-a-great-windows-8-developer-gaming-desktop-for-900-1500","/blog/2012/09/23/using-your-xbox-kinect-as-a-webcam-for-skype-on-windows","/blog/2011/11/21/my-one-year-check-in-with-my-windows-phone-7","/blog/2010/10/20/great-new-features-at-xbox-com","/blog/2010/12/26/three-weeks-with-windows-phone-7-a-mac-users-perspective","/blog/2010/01/27/macbook-pro-two-year-check-in","/blog/2009/09/11/5-steps-to-blog-redesign","/blog/2010/04/09/macbook-pro-upgrade-to-crucial-256gb-ssd","/blog/2008/07/10/mobileme-up-and-down-at-mecom","/blog/2009/08/29/first-impressions-of-snow-leopard","/blog/2008/10/14/disappointing-new-macbook-pros","/blog/2008/07/03/what-id-like-to-see-in-snow-leopard","/blog/2008/05/23/apple-store-vancouver-opens-tomorrow","/blog/2008/04/24/boot-camp-21-vmware-fusion-112-and-macbook-pro-firmware","/blog/2008/04/18/wordpress-25-notes-from-the-field","/blog/2008/04/07/calendar-spam-the-next-nuisance","/blog/2008/04/17/four-windows-apps-for-home-sick-mac-users","/blog/2008/03/18/access-aim-and-icq-via-google-chat","/blog/2008/04/02/windows-2008-server-on-my-macbook-pro","/blog/2008/02/18/microsoft-opens-office-binary-file-format-specifications","/blog/2008/01/26/what-being-open-means-to-apple-microsoft","/blog/2008/01/04/whats-in-your-laptop-bag","/blog/2007/12/24/mac-freebies-for-christmas","/blog/2007/12/19/one-week-with-a-macbook-pro-17","/blog/2007/12/17/when-sql-server-replication-eats-disk-space","/blog/2007/12/10/how-dangerous-is-html-injection","/blog/2007/12/08/more-free-mac-software-picks","/blog/2007/12/05/windows-experience-index-on-the-macbook-pro-15-2ghz-compared","/blog/2007/11/19/more-silk-icons-silk-companion-1","/reference/guernsey/estate-agents","/reference/guernsey/deliveries","/blog/2007/11/11/show-package-contents-in-mac-os-x","/blog/2007/11/09/sql-server-replication-blocking-on-cleanup-job","/blog/2007/10/29/freeing-up-disk-space-on-mac-os-x","/blog/2007/11/04/macbook-pro-17-26ghz-ordered","/blog/2007/10/29/mac-os-x-leopard-my-story-so-far","/blog/2007/10/03/apples-boot-camp-beyond-the-expiry-date","/blog/2007/09/29/silk-icon-companion-1-preview","/blog/2007/09/26/pixelmator-for-mac-released","/blog/2007/09/11/in-search-of-the-perfect-keyboard","/blog/2007/09/06/ipod-refresh-and-ring-tones","/blog/2007/09/04/notes-on-the-move-to-wordpress","/blog/2007/08/08/new-imac-available-only-with-glossy-display","/blog/2007/08/08/great-free-system-tools-for-mac-os-x","/blog/2007/08/02/windows-mobile-6-on-the-htc-tytn-with-a-mac","/blog/2007/07/21/hidden-menu-options-on-the-mac","/blog/2007/08/01/importing-blogml-into-wordpress","/blog/2007/05/11/more-free-mac-gems","/blog/2007/04/05/so-you-believe-apple-is-more-expensive-than-dell","/blog/2007/04/03/my-windows-64bit-experiences","/blog/2007/03/21/apples-next-enclosure-material","/blog/2007/02/22/google-apps-premier-edition-announced","/blog/2007/01/17/book-the-art-of-the-start","/blog/2007/01/10/true-cost-of-the-iphone","/blog/2007/01/10/apple-macworld-misfires","/blog/2006/12/18/remote-denial-of-present-dop-attack-via-amazon-wishlist","/blog/2006/12/03/parallels-desktop-3036-beta-build-out","/blog/2006/11/13/lushos-cursors","/blog/2006/11/24/office-ribbon-patenting-look-and-feel","/blog/2006/11/10/heat-fan-power-and-battery-monitoring-on-the-mac","/blog/2006/11/09/microsoft-withdraws-sysinternals-source-code","/blog/2006/11/08/vista-no-pretty-picture-for-me","/blog/2006/11/03/reinstalling-windows-xp-on-a-750gb-monster","/blog/2006/10/31/one-small-step-for-web-standards-one-giant-download-for","/blog/2006/10/29/icon-and-taskbar-tools-for-windows","/blog/2006/10/24/switching-from-bootcamp-to-parallels","/blog/2006/10/19/stupiddefaultsie7","/blog/2006/10/10/office-shortcuts-for-accented-characters","/blog/2006/10/08/google-reader-2","/blog/2006/09/13/inside-apple-software-update-for-windows","/blog/2006/09/12/apple-showtime-itv","/blog/2006/09/10/supplementing-bootcamp-11-on-macbook-pro","/blog/2006/09/04/the-htc-tytn-smartphone-reviewed","/blog/2006/08/23/macbook_pro_whine_fix_in_3_hours","/blog/2006/08/08/disappointing_apple_wwdc_announcements","/blog/2006/06/29/keeping_an_eye_on_the_macbookpro_temperature","/blog/2006/08/16/apple_releases_bootcamp_1_1","/blog/2006/06/08/firefox_cool_extensions","/blog/2006/06/28/macbook_pro_the_ultimate_developer_machine","/blog/2006/05/29/hardware_hacking_macbook_movement_sensor","/blog/2006/05/16/macbookreleasedcheaperthancomparabledell","/blog/2006/05/15/dellgetpushywithinsuranceextendedwarranties","/blog/2006/04/26/frombloggertosubtext-exportpsuedoblogmlfromblogger","/blog/2006/04/30/macsoftwarepicksparallelsgmailgrowlunotheftsensor","/blog/2006/04/24/appleintroduces17inchmacbookpro","/blog/2006/04/18/greatwindowsfirefoxandwebfinds","/blog/2006/04/14/whataretheunknowndevicesinxponthemacbookpro","/blog/2006/04/12/macbookproroundup","/blog/2006/04/13/fixingmacbookprokeyboardannoyancesunderwindows","/blog/2006/04/07/lifewithwindowsbootcamponthemacbookpro","/blog/2006/04/06/applesbootcampandmacbookpro","/blog/2006/03/29/gloomylongtermfutureforapple","/blog/2006/03/03/macminiintelisntmydigitallife","/blog/2006/02/14/googlenuggets","/blog/2006/02/02/whyihaventyetorderedamacbookpro","/blog/2005/10/25/whatnextformacosx","/blog/2005/10/13/appleaccouncementsandalittlefumbling","/blog/2005/09/19/dell2405fpwmonitorreview","/blog/2005/09/08/itunes5ipodnanoaudiobookpricing","/blog/2005/08/30/moreipodfillersandmacapps","/blog/2005/08/10/googletrackingoutboundlinksfromsearches","/blog/2005/05/26/hardware-upgrades-part-2","/blog/2005/05/15/firefox-for-power-users-part-2","/blog/2005/05/22/hardware-upgrades-part-1","/blog/2005/02/18/firefoxforpowerusers","/blog/2005/02/09/phishingwithidns","/blog/2005/02/02/thefutureofmacmini","/blog/2005/01/24/visualstylesandthemesinwindowsxp","/blog/2018/05/28/wordpress-to-jekyll-comments","/blog/2018/05/25/from-wordpress-to-jekyll","/blog/2018/04/22/comma-separated-parameters-webapi","/blog/2018/04/11/model-binding-form-posts-to-immutable-objects","/blog/2018/03/29/azure-functions-differences-v1-v2","/blog/2017/03/10/downloading-files-with-progress-in-electron","/blog/2016/04/28/developer-tips","/blog/2015/06/27/table-per-hierarchy-in-azure-table-storage","/blog/2015/06/27/time-window-events-with-apache-spark-streaming","/blog/2014/09/04/optimizing-sum-count-min-max-and-average-with-linq","/blog/2014/12/11/sequence-averages-in-scala","/blog/2014/01/08/simple-steps-for-publishing-your-nuget-package","/blog/2014/02/05/8-visual-studio-debugging-tips-debug-like-a-boss","/blog/2012/10/29/8-things-you-probably-didnt-know-about-csharp","/blog/2013/12/09/probable-c-6-0-features-illustrated","/blog/2011/11/29/designing-a-great-api","/blog/2011/07/07/behind-the-scenes-at-xbox-com-rss-enabling-web-marketplace","/blog/2010/10/17/enums-better-syntax-improved-performance-and-tryparse-in-net-3-5","/blog/2010/06/30/anatomy-of-a-good-bug-report","/softography","/blog/2010/04/26/creating-rss-feeds-in-asp-net-mvc","/blog/2010/05/21/include-for-linq-to-sql-and-maybe-other-providers","/blog/2010/03/22/my-top-5-free-vs-2010-extension-picks","/blog/2010/01/11/linq-to-sql-tips-and-tricks-3","/blog/2009/12/13/sql-server-query-plan-cache","/blog/2009/09/22/when-an-object-relational-mapper-is-too-much-datareader-too-little","/blog/2009/08/12/linq-to-sql-cheat-sheet","/blog/2009/08/04/dictionaryt-look-up-or-create-made-simpler","/blog/2009/11/06/multiple-outputs-from-t4-made-easy-revisited","/typography/envy-code-a","/blog/2009/06/04/linq-to-sql-resources","/typography/envy-code-b","/typography/palmos-font","/blog/2009/04/13/linq-to-sql-tips-and-tricks-2","/blog/2009/03/16/linq-to-sql-tips-and-tricks-1","/blog/2009/06/24/client-side-properties-and-any-remote-linq-provider","/blog/2009/01/19/linq-to-sql-templates-updated-now-on-codeplex","/blog/2009/01/05/changing-type-the-state-pattern-and-linq-to-sql","/blog/2009/01/22/multiple-outputs-from-t4-made-easy","/blog/2009/01/03/altnet-seattle","/blog/2009/06/01/linq-to-sql-changes-in-net-40","/blog/2008/07/30/linq-to-sql-log-to-debug-window-file-memory-or-multiple-writers","/blog/2008/10/31/linq-to-sql-next-steps","/blog/2008/07/23/linq-to-sql-t4-template-reloaded","/blog/2008/07/09/ankhsvn-20-free-subversion-integration-with-visual-studio","/blog/2008/09/14/linq-to-sql-template-for-visual-studio-2008","/blog/2008/03/18/safari-31-includes-developer-tools","/blog/2008/06/25/experimental-linq-to-sql-template-for-t4","/blog/2008/08/01/ten-commandments-for-developers","/blog/2008/04/27/localizing-mvc-for-aspnet-views-and-master-pages","/blog/2008/04/10/using-linq-to-foreach-over-an-enum-in-c","/blog/2008/03/07/testing-web-sites-with-the-iphone-sdk","/blog/2008/03/04/future-of-ankhsvn-subversion-for-visual-studio","/blog/2008/02/28/dlookup-for-excel","/blog/2008/02/08/humane-theme-for-textmate-and-xcode","/blog/2008/02/05/where-developer-is-succinct","/blog/2008/01/31/pragmatic-dotnet-developer","/blog/2008/01/29/language-integrated-query-an-introduction-presentation-online","/blog/2008/02/07/web-site-vs-web-application","/blog/2008/01/28/language-integrated-query-an-introduction-talk-tomorrow","/blog/2008/01/05/linq-presentation-at-guernsey-developer-forum","/blog/2007/12/20/thoughts-on-awareness-of-security-vulnerabilities-full-disclosure","/blog/2007/12/10/aspnet-mvc-preview-available","/blog/2007/12/03/free-software-projects-need-a-pitch","/blog/2007/11/27/shrinking-js-or-css-is-premature-optimization","/blog/2007/12/18/5-signs-your-aspnet-application-may-be-vulnerable-to-html-injection","/blog/2007/11/19/calculating-crc-64-in-c-and-net","/blog/2007/11/22/publishing-net-applications-with-prerequisites","/blog/2007/11/24/calculating-elf-32-in-c-and-net","/blog/2007/11/04/object-initializers-in-net-35","/blog/2007/11/08/dissecting-a-c-application-inside-sharpdevelop","/blog/2007/11/06/using-guids-as-row-identifiers","/blog/2007/10/28/security-vulnerabilities-are-not-acceptable-in-sample-code","/blog/2007/10/20/extension-methods-illustrated","/blog/2007/10/14/colour-schemes-for-visual-studio","/blog/2007/10/09/observations-on-microsoft-mvc-for-aspnet","/blog/2007/10/01/refactoring-shared-libraries-and-public-apis","/blog/2007/09/03/linq-in-60-seconds","/blog/2007/08/16/gsdf-august-2007-postmortem","/blog/2007/08/17/investigating-monorail-shock-at-html-injection","/blog/2007/08/06/multiple-inheritance-composition-and-single-responsibility-principle-in-net","/blog/2007/08/03/typed-session-data-made-easier-still","/blog/2007/08/02/partial-methods-in-net-35-overview-and-evolution","/blog/2007/07/26/rails-style-controllers-for-aspnet","/blog/2007/07/11/italic-syntax-highlighting-in-visual-studio-2005","/blog/2007/07/09/getting-started-with-ruby-on-rails-on-mac-os-x","/blog/2007/06/26/codesmith-template-to-generate-linq-to-sql-data-context","/blog/2007/06/20/discarding-new-entity-objects-in-linqtosql-beta-1","/blog/2007/06/15/diffmerge-is-free-try-it-with-ankhsvn","/blog/2007/06/11/safari-for-windows-surprises-return-of-yellowbox","/blog/2007/06/11/linq-to-sql-nullreferenceexception-on-submitchanges","/blog/2007/05/31/notifyicon-context-menus-for-both-buttons-in-net-evolution-of","/blog/2007/05/16/linq-to-sql-details-issues-and-patterns","/blog/2007/05/07/activerecord-the-ugly-design-pattern","/blog/2007/01/23/ankhsvn-10-released-subversion-plugin-for-visual-studio","/blog/2007/01/19/how-to-spot-a-visual-studio-2005-sp1-installation","/blog/2007/01/06/linq-in-c-web-applications","/blog/2007/01/18/eight-things-i-hate-about-visual-studio-2005","/blog/2006/11/09/my-development-tools","/blog/2006/11/01/winforms-tricks-and-tips","/blog/2006/11/04/globalising-net-web-applications","/blog/2006/11/02/xna-game-studio-beta-2-has-xbox-360-support","/blog/2006/10/31/compile-xna-for-your-xbox-360-tomorrow","/blog/2006/10/20/dotnettipsuptimeagerounding","/blog/2006/10/29/ankhsvn-10-rc4-out","/blog/2006/10/25/parameterising-the-in-clause-of-an-sql-select-in-net","/blog/2006/10/11/visual-studio-2005-service-pack-1-beta-experiences","/blog/2006/10/11/visual-studio-tips-1","/blog/2006/10/12/ankhsvn-join","/blog/2006/10/05/quickreminder","/blog/2006/09/25/extending-gridview-to-access-generated-columns","/blog/2006/10/04/appaday-subsonic","/blog/2006/09/01/subtext-1-9-released","/blog/2006/08/30/xna_game_studio_express_out_today","/blog/2006/08/28/equatable_weak_references","/blog/2006/08/29/choosing_your_orm_runtime_vs_code_generation","/blog/2006/08/14/microsoft_announces_xna_for_homebrew","/blog/2006/08/08/calculating_crc32_in_c_and_net","/blog/2006/07/27/patterns_of_enterprise_application_architecture","/blog/2006/08/01/implementingweakreferencet","/blog/2006/06/14/observing_change_events_on_a_listt","/blog/2006/06/11/first_look_applying_domaindriven_designs_and_patterns","/blog/2006/06/06/extending_httpapplication_with_session_counts_and_uptime_in_c","/blog/2006/05/24/ienumerable_t_to_ienumerable_subclassoft","/blog/2006/04/20/handlingnullablevaluetypesindotnet","/blog/2006/05/17/piecingtogethermicrosoftsxnagamingplatform","/blog/2006/05/03/substitutabilityofgenerictypesindotnet","/blog/2006/04/16/badprogrammingadvice-dontuseexceptions","/blog/2006/04/11/microsoftaddsembeddedsqlservereverywhereeditiontolineup","/blog/2006/02/13/webapplicationsinvisualstudio2005","/blog/2006/03/28/microsoftxna","/blog/2005/11/07/donotexposetheimplementation","/blog/2005/11/01/nullabletypes1-3-1beta","/blog/2005/09/18/conditionaloperatorbuginnet1andnet2","/blog/2005/09/16/avoidingsqlinjection","/blog/2005/10/11/automaticcomparisonoperatoroverloadingincsharp","/blog/2005/09/13/visualstudio2003systemargumentexceptionindebugger","/blog/2005/08/08/vbnet-to-c-conversion","/blog/2005/05/12/my-net-toolkit","/blog/2005/01/19/lapsedlistenersmemoryleaksinsubscriberpublisherscenarios","/reference/faq/5000e","/blog/tag/LINQ","/reference/faq/arcam","/blog/tag/Apple","/blog/tag/macOS","/reference/faq/mgt","/blog/tag/Jekyll","/blog/tag/CI","/blog/tag/Delphi","/blog/tag/Linux","/blog/tag/I2C","/blog/tag/pixel fonts","/blog/tag/WordPress","/typography/zx-origins/day-out","/typography/zx-origins/kilonova","/typography/zx-origins/clear-plan","/typography/zx-origins/expedition","/typography/zx-origins/magchrome","/typography/zx-origins/saucer","/typography/zx-origins/bubble-07","/typography/zx-origins/forwardslash","/typography/zx-origins/crossed","/typography/zx-origins/got-soul","/typography/zx-origins/zx-space-highway","/typography/zx-origins/nlq","/typography/zx-origins/pixelbricks","/typography/zx-origins/zx-amelia","/typography/zx-origins/scarlet","/typography/zx-origins/radial","/typography/zx-origins/wand","/typography/zx-origins/patrol","/typography/zx-origins/doublewear","/typography/zx-origins/jam","/blog/tag/Azure","/typography/zx-origins/tanzanite","/typography/zx-origins/star-maker","/typography/zx-origins/zx-gona","/typography/zx-origins/comical","/typography/zx-origins/altered-chrome","/typography/zx-origins/anarchist","/typography/zx-origins/anchovy","/typography/zx-origins/anvil","/typography/zx-origins/area51","/typography/zx-origins/around","/typography/zx-origins/atlas","/typography/zx-origins/authorized","/typography/zx-origins/babyteeth","/typography/zx-origins/bauhaus","/typography/zx-origins/beachball","/typography/zx-origins/beastly","/typography/zx-origins/binnacle","/typography/zx-origins/bitty","/typography/zx-origins/blood-rain","/typography/zx-origins/bowandarrow","/typography/zx-origins/brashi","/typography/zx-origins/broadwary","/typography/zx-origins/bubblegum","/typography/zx-origins/byteletter","/typography/zx-origins/cabaret","/typography/zx-origins/cage","/typography/zx-origins/calstone","/typography/zx-origins/cannonfire","/typography/zx-origins/caprica","/typography/zx-origins/carton","/typography/zx-origins/chest-burster","/typography/zx-origins/chit","/typography/zx-origins/chunky-monkey","/typography/zx-origins/cinema","/typography/zx-origins/clipper","/typography/zx-origins/coded-entry","/typography/zx-origins/comic-fans","/typography/zx-origins/compass","/typography/zx-origins/compression","/typography/zx-origins/computer","/typography/zx-origins/conapt","/typography/zx-origins/computing-60s","/typography/zx-origins/conveyance","/typography/zx-origins/coolant","/blog/tag/BBC Micro","/typography/zx-origins/crews","/typography/zx-origins/cushion","/typography/zx-origins/cyberwire","/typography/zx-origins/daddy-cool","/typography/zx-origins/datel-tribute","/typography/zx-origins/dead-forest","/typography/zx-origins/deaf-metal","/typography/zx-origins/dean","/typography/zx-origins/decor","/typography/zx-origins/diamond","/typography/zx-origins/distanttears","/typography/zx-origins/district","/typography/zx-origins/district-digital","/typography/zx-origins/dockingbay","/typography/zx-origins/dunny-on-the-wold","/typography/zx-origins/echoes","/typography/zx-origins/egyptian-mercy","/typography/zx-origins/electromagnetic","/typography/zx-origins/emmaline","/typography/zx-origins/envious","/typography/zx-origins/envious-serif","/typography/zx-origins/everest","/typography/zx-origins/factor","/typography/zx-origins/fatality","/typography/zx-origins/firebird","/typography/zx-origins/first-pass","/typography/zx-origins/flamboyant","/typography/zx-origins/flick","/typography/zx-origins/forgotten","/typography/zx-origins/founded","/typography/zx-origins/fountain","/typography/zx-origins/franopix","/typography/zx-origins/fusion-drive","/typography/zx-origins/gattars-fork","/typography/zx-origins/gemini","/typography/zx-origins/gemma","/typography/zx-origins/golden-air","/typography/zx-origins/halfling","/typography/zx-origins/high-noon","/typography/zx-origins/homestead","/typography/zx-origins/hourglass","/typography/zx-origins/hyperlight","/typography/zx-origins/ident","/typography/zx-origins/ink-stamp","/typography/zx-origins/inkscript","/typography/zx-origins/insigbyte","/typography/zx-origins/invasion","/typography/zx-origins/invitation","/typography/zx-origins/iobus","/typography/zx-origins/ion-drive","/typography/zx-origins/isofell","/typography/zx-origins/joshua","/typography/zx-origins/journey","/typography/zx-origins/jumpzone","/typography/zx-origins/kalopsia","/typography/zx-origins/keytop","/typography/zx-origins/kindness","/typography/zx-origins/koncrete","/typography/zx-origins/labyrinth","/typography/zx-origins/lamplight","/typography/zx-origins/lander","/typography/zx-origins/lapse","/typography/zx-origins/localhost","/typography/zx-origins/mach4","/typography/zx-origins/magic5","/typography/zx-origins/magnetic","/typography/zx-origins/manic","/typography/zx-origins/marais","/typography/zx-origins/matinee","/typography/zx-origins/melanie","/typography/zx-origins/mild-west","/typography/zx-origins/moffett","/typography/zx-origins/mutual","/typography/zx-origins/needlecast","/typography/zx-origins/neoflow","/typography/zx-origins/nibbles","/typography/zx-origins/nicety","/typography/zx-origins/night-in-tokyo","/typography/zx-origins/no-step","/typography/zx-origins/noted","/typography/zx-origins/orbiter","/typography/zx-origins/outer","/typography/zx-origins/outrunner","/typography/zx-origins/panda","/typography/zx-origins/parchment","/typography/zx-origins/phase-shifter","/typography/zx-origins/picomag","/typography/zx-origins/pinhead","/typography/zx-origins/pitstop","/typography/zx-origins/pixharmonix","/typography/zx-origins/pixie","/typography/zx-origins/plato","/typography/zx-origins/plotter","/typography/zx-origins/polaris","/typography/zx-origins/precinct","/typography/zx-origins/prelude","/typography/zx-origins/primary-target","/typography/zx-origins/prince","/typography/zx-origins/prism","/typography/zx-origins/pristine","/typography/zx-origins/proforma","/typography/zx-origins/prophecy","/typography/zx-origins/protractor","/typography/zx-origins/punch","/typography/zx-origins/quantra","/typography/zx-origins/quaked","/typography/zx-origins/quasar","/typography/zx-origins/quickshot","/typography/zx-origins/quirky-pc","/typography/zx-origins/ramscoop","/typography/zx-origins/raptor","/typography/zx-origins/raven","/typography/zx-origins/razor","/typography/zx-origins/reactor","/typography/zx-origins/rebound","/typography/zx-origins/reflections","/typography/zx-origins/reflex","/typography/zx-origins/revelation","/typography/zx-origins/reward","/typography/zx-origins/ricochet","/typography/zx-origins/reynolds","/typography/zx-origins/riverbank","/typography/zx-origins/riveter","/typography/zx-origins/rosand","/typography/zx-origins/runed","/typography/zx-origins/scribe","/typography/zx-origins/sector","/typography/zx-origins/security-concepts","/typography/zx-origins/segment8","/typography/zx-origins/shakedown","/typography/zx-origins/shuriken","/typography/zx-origins/shinobi-extended","/typography/zx-origins/sketcher","/typography/zx-origins/skid-row","/typography/zx-origins/snowbunni","/typography/zx-origins/sorcery","/typography/zx-origins/space-opera","/typography/zx-origins/specmatic","/typography/zx-origins/speedway","/typography/zx-origins/squarewolf","/typography/zx-origins/standstill","/typography/zx-origins/star-ranger","/typography/zx-origins/stars","/typography/zx-origins/stepper","/typography/zx-origins/streetdoc","/typography/zx-origins/striker","/typography/zx-origins/submerged","/typography/zx-origins/syncwave","/typography/zx-origins/tenant","/typography/zx-origins/tentacle","/typography/zx-origins/thinserif","/typography/zx-origins/tipped","/typography/zx-origins/torment","/typography/zx-origins/torque","/typography/zx-origins/touch","/typography/zx-origins/track40","/typography/zx-origins/treatise","/typography/zx-origins/trouble","/typography/zx-origins/truffle-shuffle","/typography/zx-origins/tuner","/typography/zx-origins/tycho","/typography/zx-origins/ultimatum","/typography/zx-origins/uncial","/typography/zx-origins/undead","/typography/zx-origins/undervolt","/typography/zx-origins/valley","/typography/zx-origins/valour","/typography/zx-origins/velocity","/typography/zx-origins/vertigo","/typography/zx-origins/vindicated","/typography/zx-origins/watchface","/typography/zx-origins/waterlily","/typography/zx-origins/widget","/typography/zx-origins/winterforge","/typography/zx-origins/xcelerant","/typography/zx-origins/xcerpt","/typography/zx-origins/yaroze","/typography/zx-origins/you-squared","/typography/zx-origins/zx-baveuse","/typography/zx-origins/zx-benguiat","/typography/zx-origins/zx-chicago","/typography/zx-origins/zx-courier","/typography/zx-origins/zx-eurostile","/typography/zx-origins/zx-extendomatic","/typography/zx-origins/zx-extraordinaire","/typography/zx-origins/zx-maverick","/typography/zx-origins/zx-megascope","/typography/zx-origins/zx-ocr-a","/typography/zx-origins/zx-ocr-b","/typography/zx-origins/zx-palm","/typography/zx-origins/zx-peignot","/typography/zx-origins/zx-ramona","/typography/zx-origins/zx-revue","/typography/zx-origins/zx-rustproof","/typography/zx-origins/zx-semi","/typography/zx-origins/zx-sierra-quest","/typography/zx-origins/zx-system-x3","/typography/zx-origins/zx-times","/typography/zx-origins/zx-venice","/appearances","/creative/icons/titchy-icons","/blog/tag/Visual Studio","/creative/icons/silk-companion-1-icons","/blog/tag/security","/blog/tag/Subversion","/blog/tag/broadband","/creative/icons","/blog/tag/Cable & Wireless","/blog/tag/Amazon","/blog/tag/iTunes","/blog/tag/PlayStation","/blog/tag/Google","/blog/tag/review","/blog/tag/video games","/blog/tag/iPod","/blog/tag/books","/blog/tag/Xbox","/blog/tag/Microsoft","/blog/tag/Nintendo","/blog/category/undefined","/blog/tag/audiobooks","/blog/tag/England","/blog/tag/Seattle","/blog/tag/memes","/blog/tag/Envy Code","/blog/tag/coding fonts","/blog/tag/Redmond","/blog/tag/AnkhSVN","/blog/tag/SubSonic","/blog/tag/USA","/blog/tag/Subtext","/blog/tag/keyboards","/blog/tag/Japan","/blog/tag/PC","/blog/tag/Open University","/blog/tag/XNA","/blog/tag/Blogger","/blog/tag/France","/blog/tag/Germany","/blog/category/Fun","/blog/tag/Firefox","/blog/tag/Android","/blog/tag/hinting","/blog/tag/Atari","/blog/tag/coding-fonts","/blog/tag/Windows","/blog/tag/Google Cloud","/blog/tag/analytics","/blog/tag/user experience","/blog/category/Personal","/blog/tag/MacBook","/blog/tag/hardware","/blog/tag/Intel","/blog/tag/Nvidia","/blog/tag/iPhone","/blog/tag/Gmail","/blog/tag/Boot Camp","/blog/tag/Vancouver","/blog/tag/spam","/blog/tag/SQL Server","/blog/tag/ASP.NET","/blog/tag/tips","/blog/tag/BlogML","/blog/tag/Dell","/blog/tag/Apple TV","/blog/tag/virtual machine","/blog/tag/Internet Explorer","/blog/tag/virtual machines","/blog/tag/Microsoft Office","/blog/tag/RSS","/blog/tag/JavaScript","/blog/tag/PowerShell","/blog/tag/Apache Spark","/blog/tag/Scala","/blog/tag/Elasticsearch","/blog/tag/NuGet","/blog/tag/debugging","/blog/tag/SQL","/blog/tag/VB.NET","/blog/tag/T4","/blog/tag/design patterns","/blog/tag/ALT.NET","/blog/tag/globalization","/blog/tag/Excel","/blog/tag/refactoring","/blog/tag/hashing","/blog/tag/WebForms","/blog/tag/CodeSmith","/blog/tag/WinForms"]}