<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"><url><loc>https://oli.me.uk/Introduction</loc></url><url><loc>https://oli.me.uk/Blog+archive/About+the+archive</loc></url><url><loc>https://oli.me.uk/Blog+archive/2012/Writing+great+JavaScript</loc></url><url><loc>https://oli.me.uk/Blog+archive/2012/Writing+a+modular+frontend</loc></url><url><loc>https://oli.me.uk/Blog+archive/2012/Thoughts+on+JavaScript+libraries+and+frameworks</loc></url><url><loc>https://oli.me.uk/Blog+archive/2012/Sliced+text+effect</loc></url><url><loc>https://oli.me.uk/Blog+archive/2012/Pure+CSS+toggle+accordion</loc></url><url><loc>https://oli.me.uk/Blog+archive/2012/Portable+JavaScript</loc></url><url><loc>https://oli.me.uk/Blog+archive/2012/Multiple+borders+with+CSS</loc></url><url><loc>https://oli.me.uk/Blog+archive/2012/Localizing+times+with+xtz</loc></url><url><loc>https://oli.me.uk/Blog+archive/2012/Introduction</loc></url><url><loc>https://oli.me.uk/Blog+archive/2012/Inheritance+in+CSS</loc></url><url><loc>https://oli.me.uk/Blog+archive/2012/Getting+started+with+LESS</loc></url><url><loc>https://oli.me.uk/Blog+archive/2012/Fun+with+negative+margins</loc></url><url><loc>https://oli.me.uk/Blog+archive/2012/Faster+JavaScript</loc></url><url><loc>https://oli.me.uk/Blog+archive/2012/Color+in+JavaScript</loc></url><url><loc>https://oli.me.uk/Blog+archive/2012/Centering+with+the+flexible+box+model</loc></url><url><loc>https://oli.me.uk/Blog+archive/2013/Prototypical+inheritance+done+right</loc></url><url><loc>https://oli.me.uk/Blog+archive/2013/Implementing+a+message+bus+in+JavaScript</loc></url><url><loc>https://oli.me.uk/Blog+archive/2013/Searching+JavaScript+arrays+with+a+binary+search</loc></url><url><loc>https://oli.me.uk/Blog+archive/2013/Maps+in+JavaScript</loc></url><url><loc>https://oli.me.uk/Blog+archive/2013/Equipping+Vim+for+JavaScript</loc></url><url><loc>https://oli.me.uk/Blog+archive/2013/Ranges%2C+summation+and+predicates</loc></url><url><loc>https://oli.me.uk/Blog+archive/2013/Tuples+in+JavaScript</loc></url><url><loc>https://oli.me.uk/Blog+archive/2013/Use+verbose+naming+in+JavaScript</loc></url><url><loc>https://oli.me.uk/Blog+archive/2013/Exporting+through+AMD%2C+CommonJS+and+the+global+object</loc></url><url><loc>https://oli.me.uk/Blog+archive/2013/Composing+a+framework+from+specialised+libraries</loc></url><url><loc>https://oli.me.uk/Blog+archive/2013/Building+for+browsers+in+a+terminal</loc></url><url><loc>https://oli.me.uk/Blog+archive/2013/Handling+concurrency+and+asynchronous+JavaScript</loc></url><url><loc>https://oli.me.uk/Blog+archive/2013/Classless+JavaScript</loc></url><url><loc>https://oli.me.uk/Blog+archive/2013/Classless+JavaScript+%E2%80%93+Continued</loc></url><url><loc>https://oli.me.uk/Blog+archive/2013/Do+things+that+scare+you</loc></url><url><loc>https://oli.me.uk/Blog+archive/2013/Grabbing+elements+from+the+DOM</loc></url><url><loc>https://oli.me.uk/Blog+archive/2013/Graph+from+scratch</loc></url><url><loc>https://oli.me.uk/Blog+archive/2013/Test+private+methods</loc></url><url><loc>https://oli.me.uk/Blog+archive/2014/My+2015+Bucket+Set</loc></url><url><loc>https://oli.me.uk/Blog+archive/2014/A+JavaScript+Clojure+mashup</loc></url><url><loc>https://oli.me.uk/Blog+archive/2014/Revisiting+Searching+JavaScript+arrays+with+a+binary+search</loc></url><url><loc>https://oli.me.uk/Blog+archive/2015/Brainfuck+VM+in+JavaScript</loc></url><url><loc>https://oli.me.uk/Blog+archive/2015/Brainfuck+VM+in+Clojure</loc></url><url><loc>https://oli.me.uk/Blog+archive/2015/If+I+wrote+a+text+editor</loc></url><url><loc>https://oli.me.uk/Blog+archive/2015/Vim+for+people+that+don%E2%80%99t+want+to+use+it</loc></url><url><loc>https://oli.me.uk/Blog+archive/2015/A+quick+reflection+on+Algorithms</loc></url><url><loc>https://oli.me.uk/Blog+archive/2015/Giving+Emacs+another+chance</loc></url><url><loc>https://oli.me.uk/Blog+archive/2015/Making+El-Get+sync+like+vim-plug</loc></url><url><loc>https://oli.me.uk/Blog+archive/2015/Some+thoughts+on+Ruby</loc></url><url><loc>https://oli.me.uk/Blog+archive/2015/Some+thoughts+on+Prolog</loc></url><url><loc>https://oli.me.uk/Blog+archive/2015/Some+thoughts+on+Io</loc></url><url><loc>https://oli.me.uk/Blog+archive/2015/Things+I+learned+about+Docker+the+hard+way</loc></url><url><loc>https://oli.me.uk/Blog+archive/2015/Lazy+arrays+in+JavaScript</loc></url><url><loc>https://oli.me.uk/Blog+archive/2015/Wrangling+JavaScript+with+Vim</loc></url><url><loc>https://oli.me.uk/Blog+archive/2015/My+new+prompt+(oh-my-zsh)</loc></url><url><loc>https://oli.me.uk/Blog+archive/2015/D3+within+React+the+right+way</loc></url><url><loc>https://oli.me.uk/Blog+archive/2015/Installing+Arch+Linux+on+a+Dell+XPS+13+(9350)</loc></url><url><loc>https://oli.me.uk/Blog+archive/2016/Asynchronicity+and+JavaScript</loc></url><url><loc>https://oli.me.uk/Blog+archive/2016/Working+with+multiple+of+lists+in+JavaScript</loc></url><url><loc>https://oli.me.uk/Blog+archive/2016/An+introduction+to+ClojureScript</loc></url><url><loc>https://oli.me.uk/Blog+archive/2016/Getting+Go+Going</loc></url><url><loc>https://oli.me.uk/Blog+archive/2016/When+projects+rise+from+the+grave</loc></url><url><loc>https://oli.me.uk/Blog+archive/2017/I%E2%80%99m+on+Linode+now</loc></url><url><loc>https://oli.me.uk/Blog+archive/2017/The+Collatz+conjecture%2C+visualised+in+Clojure</loc></url><url><loc>https://oli.me.uk/Blog+archive/2017/Updating+dependencies+without+CHANGES.md</loc></url><url><loc>https://oli.me.uk/Blog+archive/2017/An+introduction+to+transcriptor</loc></url><url><loc>https://oli.me.uk/Blog+archive/2017/Taming+clojure.spec+with+expound</loc></url><url><loc>https://oli.me.uk/Blog+archive/2017/Hello%2C+World!</loc></url><url><loc>https://oli.me.uk/Blog+archive/2018/Clojure+projects+from+scratch</loc></url><url><loc>https://oli.me.uk/Blog+archive/2018/Clojure+and+ClojureScript+nREPL+with+Clojure+CLI</loc></url><url><loc>https://oli.me.uk/Blog+archive/2018/Clojure+and+ClojureScript+testing+with+the+Clojure+CLI</loc></url><url><loc>https://oli.me.uk/Blog+archive/2018/Clojure+and+ClojureScript+tests+on+Travis</loc></url><url><loc>https://oli.me.uk/Blog+archive/2018/Finding+new+dependencies+with+Depot</loc></url><url><loc>https://oli.me.uk/Blog+archive/2018/Editing+Clojure+with+Neovim</loc></url><url><loc>https://oli.me.uk/Blog+archive/2018/Wake+word+detection+with+Clojure+(or+Java)</loc></url><url><loc>https://oli.me.uk/Blog+archive/2019/Clojure+socket+prepl+cookbook</loc></url><url><loc>https://oli.me.uk/Blog+archive/2019/Extending+Neovim+with+any+language+(mostly+Clojure)</loc></url><url><loc>https://oli.me.uk/Blog+archive/2019/Exploring+REPL+tooling+with+socket+prepl</loc></url><url><loc>https://oli.me.uk/Blog+archive/2019/REPLing+into+projects+with+prepl+and+Propel</loc></url><url><loc>https://oli.me.uk/Blog+archive/2019/Minimalistic+blogging+with+Clojure+and+AsciiDoc</loc></url><url><loc>https://oli.me.uk/Blog+archive/2019/Clojure+prepl+for+tool+authors</loc></url><url><loc>https://oli.me.uk/Blog+archive/2019/Getting+started+with+Clojure%2C+Neovim+and+Conjure+in+minutes</loc></url><url><loc>https://oli.me.uk/Blog+archive/2019/Neovim+configuration+and+plugins+in+Fennel+(Lisp)</loc></url><url><loc>https://oli.me.uk/Blog+archive/2020/Conversational+software+development</loc></url><url><loc>https://oli.me.uk/Blog+archive/2021/Recent+video+content</loc></url><url><loc>https://oli.me.uk/Blog+archive/2014/Why+a+lover+of+Vim+is+going+to+try+Emacs</loc></url><url><loc>https://oli.me.uk/Blog+archive/2014/Spacemacs+Emacs+%2B+Vim</loc></url><url><loc>https://oli.me.uk/Blog+archive/2014/vim-expand%2C+my+second+%7Bplugin%2Cbundle%7D!</loc></url><url><loc>https://oli.me.uk/Blog+archive/2014/Understanding+Emacs+errors</loc></url><url><loc>https://oli.me.uk/Blog+archive/2014/My+thoughts+on+React%2C+Flux+and+Reflux</loc></url><url><loc>https://oli.me.uk/Blog+archive/2014/Installing+Vimdeck+on+Arch</loc></url><url><loc>https://oli.me.uk/Blog+archive/2014/Making+package.el+behave+like+Vundle</loc></url><url><loc>https://oli.me.uk/Blog+archive/2014/If+you%E2%80%99re+using+sudo+with+npm+you%E2%80%99re+doing+it+wrong</loc></url><url><loc>https://oli.me.uk/Blog+archive/2014/I+want+to+learn+stuff+and+write+about+it+over+2015</loc></url><url><loc>https://oli.me.uk/Blog+archive/2014/Hello+again%2C+WordPress</loc></url><url><loc>https://oli.me.uk/Blog+archive/2014/Essential+Vim+bundles+for+JavaScript+and+Clojure</loc></url><url><loc>https://oli.me.uk/Blog+archive/2014/Emacs+There+and+Back+Again</loc></url><url><loc>https://oli.me.uk/Blog+archive/2014/Building+vim-netrw-signs+Introduction</loc></url><url><loc>https://oli.me.uk/Blog+archive/2014/Emacs+A+few+hours+after+exposure</loc></url><url><loc>https://oli.me.uk/Blog+archive/2014/Building+vim-netrw-signs+Tooling</loc></url><url><loc>https://oli.me.uk/Blog+archive/2014/Building+vim-netrw-signs+Into+the+VimL</loc></url><url><loc>https://oli.me.uk/Blog+archive/2014/Always+remain+a+beginner</loc></url><url><loc>https://oli.me.uk/Blog+archive/2014/Angular+feels+like+you%E2%80%99re+always+viewing+a+tiny+piece+of+the+puzzle</loc></url><url><loc>https://oli.me.uk/Blog+archive/2014/A+week+(or+so)+with+Emacs</loc></url><url><loc>https://oli.me.uk/Conferences/Heart+of+Clojure+2024</loc></url><url><loc>https://oli.me.uk/Guides/Reloadable+Fennel+in+Neovim</loc></url><url><loc>https://oli.me.uk/Guides/Removing+ePub+DRM+with+gourou</loc></url></urlset>