Simon Willison’s Weblog

24ways 13 2d 3 37signals 11 3d 11 4chan 4 500startups 4 aaronstraupcope 4 abtesting 5 accessibility 24 accounts 4 acid3 4 acme 3 actionscript 3 activemq 3 adamgomaa 3 adobe 27 adrianholovaty 14 ads 5 advertising 10 agile 3 ai 11 airships 9 airtable 6 ajax 59 ajaxian 3 alexgaynor 5 alexpayne 5 alexrussell 25 alfeaton 4 algorithms 10 alistapart 8 alpha 4 alt 3 amazon 61 amazonaws 3 amazonwebservices 7 ami 4 amqp 4 analytics 6 andrewgodwin 16 andrewturner 5 android 8 andybudd 4 anildash 7 animation 7 annevankesteren 5 annotatedreleasenotes 7 aol 13 apache 33 api 27 apidesign 8 apis 76 apollo 5 appengine 33 apple 84 applephotos 3 appstore 9 aprilfools 4 aralbalkan 4 architecture 7 archive 5 archiving 3 arstechnica 3 art 7 asciiart 3 asgi 13 askmetafilter 57 aspdotnet 3 aspnet 4 assafarkin 5 astronomy 3 async 33 athena 3 atmedia 6 atmedia07 3 atmedia2007 4 atom 20 audio 8 augmentedreality 3 australia 3 authentication 13 autocomplete 6 autoescaping 4 avibryant 4 aws 26 azure 4 backbone 3 backups 6 badges 3 bakeddata 9 bandwidth 3 barackobama 3 barcamp 6 barcamplondon 3 basecamp 6 bash 7 bayeux 7 bazaar 6 bbauth 3 bbc 29 bbcnews 4 beautifulsoup 3 benchmarking 4 benchmarks 4 benfirshman 3 bengoldacre 3 benlaurie 5 benward 3 berkeleydb 3 beta 3 bigdata 13 bigtable 3 billdehora 5 billgates 5 binary 5 bitcoin 6 blainecook 7 blockchain 5 blocks 4 blogger 4 blogging 29 boardgames 3 bobippolito 5 boingboing 4 bookmarklet 6 bookmarklets 10 books 17 bradfitzpatrick 11 bradneuberg 6 branching 3 branding 3 brandonaaron 3 brandurleach 8 brendaneich 4 brettaylor 5 brighton 12 brothercake 3 browsers 63 bruceschneier 26 bsd 3 buckettesting 3 bugs 8 bunniehuang 5 business 22 buzz 3 c 18 cache 3 caching 43 cairo 5 calendars 5 calhenderson 7 callbacks 5 camino 6 canon 3 canvas 36 cappuccino 3 captcha 6 cardspace 7 careers 29 cartography 3 cassandra 6 cdn 7 cern 6 certificates 9 cfp 4 chaining 3 charlesbabbage 3 charlesleifer 4 charlesmiller 7 charliestross 4 cheese 8 cherrypy 3 chicagocrime 3 china 7 chrismessina 7 chrisshiflett 6 christianheilmann 5 christmas 3 christopherlenz 8 chrome 16 chromeframe 5 chromium 3 classes 4 clayshirky 5 cli 6 clickjacking 11 closure 3 closures 8 cloud 8 cloudcomputing 17 cloudflare 4 cloudfront 4 cloudrun 8 cms 10 co2 3 code 3 codecs 3 codereview 3 coffeescript 3 collaboration 7 colour 3 comcast 3 comet 57 cometd 3 commandline 8 commentspam 4 communication 7 community 21 compilers 8 complexity 3 compression 3 computers 3 computerscience 11 computervision 10 concurrency 10 conditionalcomments 3 conference 12 conferences 179 conspiracy 3 contentapi 4 contenttypes 3 continuousdeployment 8 continuousintegration 10 cookiecutter 5 cookies 25 cooking 4 copy 3 copyright 5 corydoctorow 3 couchdb 27 counters 3 covid19 15 cplusplus 5 crawling 3 creativecommons 7 crime 3 crossdomain 10 crossdomainxml 6 crowdsourcing 15 cryptography 18 csharp 4 csrf 47 css 126 css3 11 cssaintrocketscience 9 csv 29 ctypes 5 curl 4 curse 3 cursegaming 3 cvs 3 d3 10 dabbledb 5 damienkatz 9 danahboyd 3 dancatt 6 dannyobrien 3 danwebb 6 dareobasanjo 9 data 19 databases 72 datablog 3 datagov 3 datagovuk 3 datajournalism 26 dataportability 6 datascience 12 datasette 246 datasettecloud 9 datasettedesktop 5 datastore 7 datastructures 4 datauri 5 dates 6 datetime 6 daveshea 3 davethomas 4 davewiner 24 davidbeazley 3 davidcramer 7 davidmbeazley 3 davidrecordon 6 dconstruct 5 deanedwards 4 debian 5 debugger 5 debugging 33 decentralisation 3 decorators 6 delicious 6 denialofservice 3 deno 4 deployment 24 derekwillis 4 design 58 development 4 devfort 4 dewittclinton 3 dickcostolo 4 diff 5 digg 16 digitalocean 4 dionalmaer 3 directedidentity 5 django 524 djangobook 5 djangocon 17 djangocon08 3 djangodebugtoolbar 3 djangoorm 3 djangopeople 12 djangopony 4 djangosnippets 6 djangosqldashboard 10 djugl 4 dns 20 docker 35 documentary 3 documentation 30 documentcloud 3 dogsheep 28 dojo 40 dojox 4 dom 12 domains 8 domcontentloaded 4 dontbeevil 3 dopplr 12 dotnet 4 douglascrockford 14 draganddrop 3 dragndrop 3 drawing 4 dreamhost 5 drewmclellan 5 drichardhipp 4 drizzle 3 drm 15 dropbox 7 drupal 8 duncanrobertson 4 dustindiaz 5 dynamiclanguages 3 ebs 3 ec2 42 ecmascript 4 ecommerce 8 edddumbill 4 edeliot 3 edfelten 6 editor 3 education 10 effbot 4 egypt 3 elasticsearch 11 elections 9 electron 7 electronicvoting 3 elementtree 4 elliotterustyharold 6 email 29 emoji 5 encoding 5 encryption 4 enterprise 8 entrepreneurship 48 ericflorenzano 3 ericholscher 8 ericmeyer 6 erlang 26 escaping 4 etags 3 etech 4 etherpad 3 ethics 3 etiquette 3 eurooscon 3 europe 3 europython 4 eventio 5 eventlet 5 eventmachine 3 events 105 everyblock 8 evoting 3 explorables 12 extensions 4 fabric 8 facebook 89 facebookgraphsearch 3 facetedsearch 4 fakestevejobs 3 faq 4 fastcgi 3 favicon 6 featureflags 4 feedburner 4 feeds 6 ffs 3 firebug 22 fireeagle 15 firefox 52 firefox3 7 flash 68 flask 5 flex 7 flickr 74 flickrplaces 3 fluiddb 4 fly 9 follow 3 fonts 10 foocamp 3 food 11 forms 9 fowa 12 fowa2007 3 fowa2008 5 framebusting 6 frameworks 29 fredriklundh 6 freebase 12 friendfeed 11 friends 3 frontend 14 fulltext 7 fulltextsearch 10 functional 4 functionalprogramming 3 funding 41 funny 68 fuse 4 futureofwebapps 12 games 19 gaming 4 garethrushgrove 8 gcap 7 gearman 3 gears 7 gecko 4 geeks 3 generators 7 genetics 5 geo 12 geocoding 11 geodata 3 geodjango 8 geoip 3 geojson 8 geolocation 6 geonames 7 geoplanet 7 geospatial 6 getlatlon 3 gif 4 gifs 4 gis 31 git 29 github 90 githubactions 21 gitscraping 16 glitch 10 gmail 20 go 12 google 265 googleappengine 14 googlecharts 9 googlechrome 9 googlecode 5 googledocs 6 googledoctype 3 googlegears 8 googlemaps 52 googlemapsapi 4 googlereader 4 googlevideo 5 googlewave 3 government 6 gpl 4 gps 8 grahamdumpleton 4 graphics 5 graphing 6 graphql 15 graphs 7 greasemonkey 19 gregwilson 4 guardian 48 guidovanrossum 10 gwt 7 gzip 6 h264 4 hack 3 hackathons 3 hackday 10 hackdaylondon 3 hackernews 12 hacking 12 hacks 7 hadoop 9 haproxy 5 hardware 9 hashbanghell 4 hashes 3 hashing 12 haystack 4 hcard 6 heatmaps 3 henrisivonen 5 heroku 13 highavailability 5 highlights 3 highrise 6 history 24 hixie 11 homebrew 5 hosting 22 hotmail 6 hotstandby 3 html 57 html5 83 http 82 http2 5 httponly 3 https 10 httpx 4 i18n 13 ia 6 ianbicking 14 ianhickson 20 ianmansfield 3 ibm 4 ical 5 ideas 8 identity 14 identitytheft 4 idproxy 7 ie 60 ie6 14 ie7 8 ie8 25 ietf 4 iframe 10 iframes 4 images 12 inaturalist 4 infographics 7 inheritance 3 innodb 3 internationalisation 9 internet 24 internetarchive 8 internetexplorer 25 interview 6 interviews 3 introspection 3 investing 4 io 7 ios 13 ip 4 ipad 13 iphone 59 iphones 3 iplayer 5 ipod 6 irc 5 ironpython 10 iso 4 it 3 itunes 3 ixr 3 jacobkaplanmoss 38 jakobnielsen 3 jamesbennett 17 jamesbridle 3 jamestauber 3 janrain 7 japan 3 jargon 4 jasoncalacanis 5 jasonscott 5 java 79 javafx 3 javascript 584 javascriptlibraries 3 jeffatwood 10 jeffcroft 4 jeffreyzeldman 8 jeremiahgrossman 3 jeremyashkenas 4 jeremykeith 11 jeremyzawodny 3 jetty 4 jinja 4 jit 5 jobs 14 joegregorio 9 joelspolsky 8 joelveitch 3 joewalker 3 johngrahamcumming 3 johngruber 20 johnresig 32 johnsiracusa 3 jonhicks 9 jonudell 10 joshberkus 3 journalism 22 jpstacey 3 jq 3 jquery 99 jqueryui 3 jruby 3 jsk 8 json 111 jsonhead 3 jsonp 23 jsonschema 3 juliaevans 9 jupyter 31 jvm 4 jwt 3 jwz 4 jython 11 kafka 7 kansas 4 kapingyee 5 kellanelliottmccrea 13 kevinyank 4 keynote 3 keyvaluepairs 9 keyvaluestores 4 kml 8 korea 3 kriszyp 3 l10n 5 lambda 5 language 5 lanyrd 15 largehadroncollider 3 lastfm 9 latex 3 laurievoss 3 law 3 lawrence 5 leahculver 3 leanstartups 6 legal 3 lego 4 leonardlin 4 leopard 14 lesorchard 7 libevent 4 libraries 21 licenses 5 lifehacks 5 lightningtalks 4 lighttpd 5 lilypond 3 lindenlab 4 linkedin 6 links 3 linustorvalds 4 linux 36 lisp 7 litestream 3 livejournal 9 ljworld 7 loadbalancing 10 loading 3 loadtesting 3 local 5 localisation 3 location 14 lockin 3 logging 17 login 3 logincsrf 3 logs 4 london 54 london2 3 longpolling 3 lua 6 lucene 12 lugradio 4 lugradiolive 3 lukeplant 3 lxml 7 mac 8 macbook 3 macbookpro 3 macfuse 3 machinelearning 32 machinetags 5 maciejceglowski 5 magic 3 magnolia 3 mailinator 3 make 6 malcolmtredinnick 8 management 37 manyeyes 3 mapping 49 mapreduce 10 maps 38 markdown 12 marketing 14 marknottingham 11 markpilgrim 34 markramm 3 markshuttleworth 4 markup 8 marsphoenix 3 martinatkins 7 martinbelam 3 mashup 5 mashups 7 masterslave 6 mathml 4 mattbiddulph 12 mattcroydon 3 matthewsomerville 4 mattmullenweg 4 mattwebb 7 mattwestcott 4 maxwoolf 4 md5 4 me 6 mediawiki 4 meetings 6 meetup 3 meetups 8 megpickard 4 memcache 7 memcached 32 memcachedb 3 memes 3 memory 6 memoryleaks 4 mercurial 4 messagequeue 3 messagequeues 16 messaging 8 metaclasses 3 metadata 9 metafilter 10 michaeltrier 4 michalmigurski 13 michalzalewski 3 microformats 30 microservices 6 microsoft 87 middleware 13 migration 3 migrations 9 migueldeicaza 8 mikebostock 4 mikebutcher 3 mikelmaron 4 mikemalone 4 mikeshaver 3 military 3 minification 4 mit 3 mobile 35 mobileweb 3 models 3 moderation 5 modpython 4 modwsgi 13 money 3 mongodb 10 mongrel 3 monitoring 8 monkeypatching 6 mono 8 moonlight 3 mootools 6 motivation 4 movies 7 mozilla 42 mp3 4 multidb 5 multiprocessing 3 museums 16 music 15 mvc 4 mymaps 3 myopenid 4 mysociety 12 myspace 19 mysql 61 namespaces 4 nasa 4 nataliedowne 35 nathanborror 3 nedbatchelder 7 neilfraser 4 netflix 4 netscape 3 networking 21 newforms 12 newformsadmin 3 news 7 newspapers 17 newyork 3 newyorktimes 3 nginx 39 niallkennedy 7 nlp 6 node 28 nodejs 43 nofollow 3 noscript 4 nose 5 nosql 27 npm 8 nsa 3 numpy 3 nyc 5 nytimes 8 oauth 46 objectivec 7 observability 5 observable 21 ocr 4 offline 10 ogg 3 olpc 6 onload 5 oop 3 ooxml 4 opacity 4 open-source 22 opencv 3 opendata 10 openid 212 openid2 7 openlibrary 3 openplatform 11 openrightsgroup 5 opensocial 7 opensource 140 openstreetmap 42 opentech 3 opentech2008 3 openweb 6 opera 30 operations 5 ops 9 optfunc 3 optimisation 6 oracle 5 orange 3 orbited 3 ordnancesurvey 3 oreilly 4 org 3 orm 40 ormcaching 4 oscon 8 oscon07 4 osx 80 owasp 4 owlsnearyou 3 oxford 14 oxfordgeeknight2 7 oxfordgeeknights 20 oxfordgeeks 7 packaging 10 pagerank 5 pagni 3 pandas 14 panels 5 parallels 6 paris 3 parrot 3 parsing 8 passwordantipattern 7 passwords 26 paste 3 patents 5 patrickmckenzie 5 patterns 5 paulford 12 paulgraham 8 paypal 3 pdb 6 pdf 14 performance 68 perl 22 perlbal 3 permissions 4 personal 5 petermichaux 4 petervandijck 4 philgyford 4 phishing 52 photography 16 photos 16 photosynth 3 php 68 php5 4 physics 4 pil 4 pingback 22 pip 6 pipes 7 piracy 3 pitching 4 placemaker 3 play 3 plugin 6 plugins 36 plurk 3 png 7 pngs 4 podcast 9 podcasts 3 politicalhacking 3 politics 21 pony 3 popfly 3 portablesocialnetworks 12 portland 3 post 7 postelslaw 3 postgis 6 postgresql 77 power 3 powerpoint 3 pownce 9 ppk 6 pr 6 presentations 7 presenting 4 pricing 3 privacy 30 process 6 processes 3 productivity 16 productmanagement 8 profiler 3 profiling 11 programmers 13 programming 140 programminglanguages 29 progressiveenhancement 5 projectmanagement 6 projects 221 protocolbuffers 5 prototype 16 proxy 15 psychology 5 pubs 3 pubsub 3 pubsubhubbub 6 puppeteer 4 pycon 12 pyconuk 6 pylons 6 pyobjc 3 pypi 11 pypy 9 pysqlite 3 pytest 8 python 759 python3 21 queryset 4 querysetrefactor 4 queue 5 queues 11 quora 1004 rabbitmq 7 radio 4 rafecolburn 6 rails 70 rands 3 ratelimiting 3 rdbms 4 rdf 4 react 23 reading 3 realtime 9 realtimeweb 5 recommendations 3 recovered 213 recruiting 8 reddit 18 redhat 3 redis 46 refactoring 4 regex 7 registration 5 regularexpressions 9 releasenotes 10 releases 13 remote 3 remysharp 3 replication 27 research 4 resolved 7 rest 35 restaurants 8 restful 4 restructuredtext 4 revcanonical 9 rewrites 3 rfc 6 richardcrowley 4 richardjones 3 richskrenta 5 richtext 3 ripgrep 4 robertocallahan 4 robots 5 robotstxt 4 royalmail 3 rss 24 ruby 67 rubyonrails 3 russellbeattie 3 rust 17 ryandahl 4 ryantomayko 12 s3 40 saas 14 safari 37 samedomain 3 samruby 12 sandboxing 3 sanfrancisco 27 sanfranciscobayarea 9 sanic 5 satellite 3 scala 6 scalability 3 scaling 122 science 17 scipy 4 scottkveton 4 scottschiller 3 scraping 11 screencast 4 screencasts 4 screenscraping 7 screenwriting 3 scribd 4 search 59 searchengines 11 secondlife 9 security 382 securitytheatre 3 selectors 13 selenium 4 semantic 3 semanticweb 7 sentry 6 seo 27 serialization 3 serverless 3 servers 6 sessions 6 settings 4 setuptools 5 sha1 4 shapefiles 4 sharding 10 sharecropping 8 shell 6 sidechannel 3 signedcookies 5 signing 6 siliconvalley 6 silverlight 15 simonwardley 3 simpledb 7 sinatra 3 sitepen 5 sitepoint 11 sitespecificbrowsers 7 sixapart 6 sizzle 4 skillswap 3 skype 3 slack 5 slidecast 3 slides 12 slideshare 10 sms 4 snowleopard 3 soap 9 social 4 socialgraph 11 socialmedia 18 socialnetworks 15 socialsoftware 5 socialwhitelisting 4 software 10 softwarearchitecture 3 softwareengineering 36 solr 22 sourceforge 3 south 4 soviet 3 space 5 spam 20 spatialite 8 speaking 85 specification 3 sphinxdocs 6 sphinxsearch 7 spidermonkey 4 spongmonkeys 4 sports 4 spreadsheets 3 sql 67 sqlalchemy 5 sqlinjection 4 sqlite 140 sqliteutils 52 sqlserver 3 squid 6 squirrels 8 ssh 8 ssl 8 sso 3 stackoverflow 10 standards 29 stanford 5 starling 3 startup 4 startups 179 starwars 4 staticanalysis 3 staticgenerator 3 staticmaps 3 statictyping 7 stdlib 3 steampunk 3 stephenfry 3 stevejobs 10 stevesouders 9 steveyegge 4 storage 5 streaming 3 streetview 3 strings 4 stuartcolville 4 stuartlangridge 18 stupid 3 subversion 32 sun 14 sunmicrosystems 4 support 3 svg 27 swf 4 sxsw 20 syndication 7 syntaxhighlighting 4 sysadmin 26 tagging 4 tags 3 tailscale 4 talks 22 tamarin 6 teaching 10 teamfortress2 3 techcrunch 7 technology 14 technorati 8 techstars 4 ted 7 tedleung 3 templates 5 templating 5 tensorflow 6 testing 40 textmate 7 tf2 3 thebigpicture 3 theguardian 4 theoschlossnagle 3 thomasptacek 4 threading 5 threads 6 ticketing 3 tickets 3 til 4 timbernerslee 4 timbray 23 timemachine 4 timezones 8 timoreilly 5 tinyurl 6 tls 4 tokyocabinet 7 tokyotyrant 5 tomarmitage 6 tomchristie 4 tomcoates 8 tommacwright 5 tomsteinberg 4 tomtaylor 3 tomwatson 3 tonyhirst 5 tools 8 torchbox 7 tornado 10 trac 3 trackback 9 transactions 3 translation 3 travel 40 travis 5 tunisia 3 turbogears 4 tutorial 18 tutorials 7 tv 15 twisted 12 twitter 138 typography 16 ubuntu 22 ui 25 uk 14 ukgovernment 4 undo 4 unicode 29 unittesting 4 unittests 12 unix 14 unladenswallow 3 unobtrusivejavascript 6 unobtrusivescripting 3 upcoming 5 uploads 4 urls 72 usa 3 usability 59 ux 17 v8 7 vaccinateca 23 vaccinatecablog 14 vaccines 3 validation 6 validator 3 valve 3 varnish 9 verisign 5 versioncontrol 8 versioning 7 video 26 views 4 virtualenv 4 virtualisation 8 virtualization 11 vista 7 visualisation 15 visualisations 3 visualization 18 vml 4 vmware 12 vox 5 vps 4 vulnerability 5 w3c 18 washingtonpost 4 wasp 3 web 10 web2 5 web20 5 web2expo 3 webapis 7 webapps 44 webassembly 11 webdevelopers 4 webdevelopment 167 webfonts 3 webhooks 17 webkit 27 weblog 3 webperformance 12 webrunner 3 webserver 3 webservers 11 webservice 3 webservices 25 websocket 5 websockets 7 webstandards 30 webstock 4 webworkers 3 weeknotes 103 whatwg 16 whereonearth 4 whitelisting 7 whoosh 4 whytheluckystiff 6 widgets 4 wifi 13 wii 6 wiki 12 wikileaks 4 wikinear 6 wikipedia 31 wildlife 4 wildlifenearyou 10 willlarson 8 wilsonminer 5 windows 34 wired 8 wordpress 16 wordpresscom 4 workers 4 workflow 4 worm 5 writing 13 wsgi 18 wsstar 4 xfn 5 xhtml 20 xhtml2 6 xkcd 12 xml 51 xmlhttprequest 7 xmlrpc 6 xmpp 5 xrds 5 xss 58 xtech 11 xtech2007 5 xuacompatible 10 xulrunner 3 yadis 3 yagni 5 yahoo 106 yahoopipes 7 yaml 8 ycombinator 50 ydn 10 yelp 5 youtube 27 yql 12 yrb 3 yui 33 yui3 3 zacharyvoase 3 zeitnow 20 zeppelins 13 zeromq 4

You can view the intersection of up to three tags by navigating to /tags/tag1+tag2/.

Archive by year

2021 / 2020 / 2019 / 2018 / 2017 / 2016 / 2015 / 2014 / 2013 / 2012 / 2011 / 2010 / 2009 / 2008 / 2007 / 2006 / 2005 / 2004 / 2003 / 2002