Let’s create a file input and chunk into 4MB chunks input type="file" onchange="processFile(...arguments)" /> script> const CHUNK_SIZE = 4 * 1024 * 1024; function processFile(e) { const file = e.currentTarget.files[0]; const start = performance.now(); const fileSize = file.size; for (let i = 0; i fileSize; i += CHUNK_SIZE)...
These are some blog posts which have gotten a disproportionate amount of traffic (10,000+ page views): 2022 We are still early with the cloud: why software development is overdue for a change 2021 Storm in the stratosphere: how the cloud will be reshuffled Building a data team at a mid-stage startup: a short story Software infrastructure 2.
I like building software, and below are some open source projects I've built during my time at Better or Spotify, along with some things I built in my spare time. Most of it is not on my personal Github, so I've compiled it here: Annoy Annoy is a C++/Python library to index and retrieve vectors in...
Introduction I am currently working on various startup ideas. Until recently, I was the Chief Technology Officer at Better where I managed a team of about 300 engineers. In the last 10+ years, I have focused on engineering management, recruiting, building consumer technology, machine learning, and math. My professional experience goes back to 1999, which was my first professional gig as a software...
Contact info Personal Git Server GitHub Email Professional Summary 2 years of experience as a software engineer 1 year of experience with embedded Linux. Bachelors of science in computer science. Contributor to Python programming language standard library. Experience working across 8+hr timezone differences. Skills Summary Programming Languages:...
August 31 How to Be a Better Reader - NY Times To read more deeply, to do the kind of reading that stimulates your imagination, the single most important thing to do is take your time. You can’t read deeply if you’re skimming. As the writer Zadie Smith has said, “When you practice reading, and you work at a text, it can only give you what you put...
I’ve been writing code since 2010, first in Python, then primarily in Go and JS/TS. I’ve spent most of my career as a backend developer and data engineer. After a couple of years leading teams of Go developers, I’m now working full-time on Boot.dev and host the Backend Banter podcast. Get in touch Twitter Linkedin GitHub Email: lane at boot.dev...
I wrote a weekly newsletter from December 2013 until September 2015, and then intermittently until 2018. I shared links worth reading. Read the archives in the Newsletter topic or on TinyLetter.
An easy way to stay updated on what I’m posting is to follow this blog using your RSS feed reader of choice, like Feedly. Choose the RSS feed that you want to follow. If you want to refine which posts you subscribe to, you can follow a more specific feed or create your own: Follow all posts. Follow only posts about tech writing. Follow only...
I’m a writer working in tech in the San Francisco Bay Area, California, USA. I’m endlessly curious about technical writing / documentation, music, data, ethics in tech and data analysis, a11y, inclusivity, and so much more. Follow me on Mastodon @smore@mstdn.social. Follow me on Github @smoreface. Check out my resume on LinkedIn. Follow me on...
My name is Saoirse; people also call me boats. I am an experienced systems developer, excited by complex problems and serious about building technology that is empowering to other people. I am available to work on new projects, full time or part time. I’m open to many different possible work arrangements; I am based in Berlin, Germany. I am happy...
…In that Empire, the Art of Cartography attained such Perfection that the map of a single Province occupied the entirety of a City, and the map of the Empire, the entirety of a Province. In time, those Unconscionable Maps no longer satisfied, and the Cartographers Guilds struck a Map of the Empire whose size was that of the Empire, and which...
(These are entries from my blog from 2000 and early 2001. They were originally hosted on a small server at Macquarie University. Most of the links are dead now, but I have kept them as they are here, for nostalgia’s sake.) Friday, December 22, 2000 1:47 PM ~ Here's a parting gift. Spend those lazy summer Christmas days reading wonderful...
(These are entries from my blog from 2000 and early 2001. They were originally hosted on a small server at Macquarie University. Most of the links are dead now, but I have kept them as they are here, for nostalgia’s sake.) Thursday, November 30, 2000 8:51 PM ~ I'd like to see that. 5:02 PM ~ If I thought T-Bone Burnett sounded good on those...
(These are entries from my blog from 2000 and early 2001. They were originally hosted on a small server at Macquarie University. Most of the links are dead now, but I have kept them as they are here, for nostalgia’s sake.) Tuesday, October 31, 2000 10:33 AM ~ Meditate on this interesting snippet: Sun's chief scientist John Gage told us back in...
In his paper “Generalised Ortho Negation” J. Michael Dunn mentions a claim of mine to the effect that there is no condition on `perp frames’ equivalent to the holding of double negation elimination (from ~~A to infer A). That claim of mine was wrong. In this paper I correct my error and analyse the behaviour of conditions on frames for negations...
(These are entries from my blog from 2000 and early 2001. They were originally hosted on a small server at Macquarie University. Most of the links are dead now, but I have kept them as they are here, for nostalgia’s sake.) Tuesday, September 19, 2000 5:45 PM ~ Christine and I are heading off to Toronto tomorrow. This log is going on hiatus for a...
(These are entries from my blog from 2000 and early 2001. They were originally hosted on a small server at Macquarie University. Most of the links are dead now, but I have kept them as they are here, for nostalgia’s sake.) Thursday, August 31, 2000 10:14 PM ~ I was delighted to find that someone had trawled through pages of search engine entries...
(These are entries from my blog from 2000 and early 2001. They were originally hosted on a small server at Macquarie University. Most of the links are dead now, but I have kept them as they are here, for nostalgia’s sake.) Monday, July 31, 2000 4:31 PM ~ The PJ Harvey & Björk rendition of Satisfaction is the most menacing piece of music I've...
(These are entries from my blog from 2000 and early 2001. They were originally hosted on a small server at Macquarie University. Most of the links are dead now, but I have kept them as they are here, for nostalgia’s sake.) Thursday, June 29, 2000 11:59 AM ~ Do you have a Macintosh? Download this, the Alias|Wavefront paint effects demo. 11:54 AM ~...
(These are entries from my blog from 2000 and early 2001. They were originally hosted on a small server at Macquarie University. Most of the links are dead now, but I have kept them as they are here, for nostalgia’s sake.) Wednesday, May 31, 2000 6:06 PM ~ Sometimes the whole is much better than the sum of its parts. Megnut supplies eminenya.mpg,...
(These are entries from my blog from 2000 and early 2001. They were originally hosted on a small server at Macquarie University. Most of the links are dead now, but I have kept them as they are here, for nostalgia’s sake.) Saturday, April 29, 2000 11:52 PM ~ The Coffee FAQ. Know what you ingest. You might like a t-shirt to go with that coffee....
(These are entries from my blog from 2000 and early 2001. They were originally hosted on a small server at Macquarie University. Most of the links are dead now, but I have kept them as they are here, for nostalgia’s sake.) Friday, March 31, 2000 10:03 AM ~ OK. Just a little browsing while the cake is baking. Hermenaut is an interesting browse:...
This book is, as the title says, an introduction to substructural logics. Think of it as a book which tries to do for substructural logics what Hughes and Cresswell’s New Introduction did for modal logics. This book was published by Routledge in January 2000. It’s available at Amazon and many other bookstores.
Negation raises three thorny problems for anyone seeking to interpret relevant logics. The frame semantics for negation in relevant logics involves a point shift operator *. Problem number one is the interpretation of this operator. Relevant logics commonly interpreted take the inference from A and ~AvB to B to be invalid, because the...
Many logics in the relevant family can be given a proof theory in the style of Belnap’s display logic. However, as originally given, the proof theory is essentially more expressive than the logics they seek to model. In this paper, we consider a modified proof theory which more closely models relevant logics. In addition, we use this proof theory...
I show that the believer in possible worlds can have impossible worlds for free, as classes of possible worlds. These do exactly the job of ways that things cannot be, and they model the simple paraconsistent logic LP. This motivates a semantics for paraconsistent logic that even a classical logician can love.
This is an introductory essay on the notion of a “Logical Law.” In it, I show that there are three important different questions one can ask about logical laws. Firstly, what it means to be a logical law. Secondly, what makes something a logical law, and thirdly, what are the logical laws. Each of these questions are answered differently by...
In classical and intuitionistic arithmetics, any formula implies a true equation, and a false equation implies anything. In weaker logics fewer implications hold. In this paper we rehearse known results about the relevant arithmetic R#, and we show that in linear arithmetic LL# by contrast false equations never imply true ones. As a result,...
A letter I received from The Designers Republic after creating a font inspired by their work. They chose to order a cease and desist, rather than fostering creativity. Matt Sephton created an original font called Blockout–a techno font that can still be found here. He had used Fontographer. It was, as he put it, influenced by the tDR font in...
I wrote a video game FAQ and uploaded it to GameFAQs: gamefaqs.com/console/psx/file/micro_machines_v3.txt
Ideas on the extension of intuitionistic propositional and predicate logic with a ‘subtraction’ connective, Galois connected with disjunction, dual to the implication connective, Galois connected with conjunction. Presented to an audience at Victoria University of Wellington, July 1997. I like this material, but it does not contain any ideas not...
I respond to an interesting argument of Hartley Slater to the effect that there is no such thing as paraconsistent logic. Slater argues that since paraconsistent logics involve interpreting a sentence and its negation as both true at points in a model structure, it is not really negation that is being modelled, since negation is meant to be a...
Combining non-classical (or ‘sub-classical’) logics is not easy, but it is very interesting. In this paper, we combine nonclassical logics of negation and possibility (in the presence of conjunction and disjunction), and then we combine the resulting systems with intuitionistic logic. We will find that some of Marcus Kracht’s results on the...
I wrote a video game FAQ and uploaded it to GameFAQs: gamefaqs.com/console/psx/file/wipeout_xl.txt
I wrote a video game FAQ and uploaded it to GameFAQs: gamefaqs.com/console/psx/file/hermie_hopperhead.txt
I wrote a video game FAQ and uploaded it to GameFAQs: gamefaqs.com/ps/572737-penny-racers/faqs
This might be the first entry on this blog, but it’s not quite my oldest content on the internet. For that you’ll need to check out the archive linked to from the bottom of the about page. I wrote a video game FAQ and uploaded it to GameFAQs: gamefaqs.com/console/psx/file/motor_toon_gp_2.txt
This paper is a revised version of a talk given at the Logic and Logical Philosophy conference in Poland in September 1995. In it, I sketch the connections between Nuel Belnap’s Display Logic and J. Michael Dunn’s Gaggle Theory.
A truthmaker for a proposition p is an object such that necessarily, if it exists, then p is true. In this paper, I show that the truthmaker thesis (that every truth has a truthmaker) and the disjunction thesis (that a truthmaker for a disjunction must be a truthmaker for one of the disjuncts) are jointly incompatible with the view that the if in...
In this paper we consider the implications for belief revision of weakening the logic under which belief sets are taken to be closed. A widely held view is that the usual belief revision functions are highly classical, especially in being driven by consistency. We show that, on the contrary, the standard representation theorems still hold for...
Peano arithmetic formulated in Łukasiewicz’s infinitely valued logic collapses into classical Peano arithmetic. However, not all additions to the language need also be classical. The way is open for the addition of a real truth predicate satisfying the T-scheme into the language. However, such an addition is not pleasing. The resulting theory is...
This paper generalises Girard’s results which embed intuitionistic logic into linear logic by showing how arbitrary substructural logics can be embedded into weaker substructural logics, using a single modality which ’encodes’ the new structural rules.
I introduce Nietzsche’s critique of religious belief, for an audience of thinking Christians. I show that his criticism cannot and ought not be simply shrugged off, but rather, it can form the basis of a useful self-critique for the religious believer. I also argue that any response to a Nietzschean critique of religious belief and practice must...
John Perry, one of the two founders of the field of situation semantics, indicated in an interview in 1986 that there is some kind of connection between relevant logic and situation semantics. I do know that a lot of ideas that seemed off the wall when I first encountered them years ago now seem pretty sensible. One example that our commentators...
This paper gives an outline of three different approaches to the four-valued semantics for relevant logics (and other non-classical logics in their vicinity). The first approach borrows from the ‘Australian Plan’ semantics, which uses a unary operator ‘*’ for the evaluation of negation. This approach can model anything that the two-valued account...
Once the Kripke semantics for normal modal logics were introduced, a whole family of modal logics other than the Lewis systems S1 to S5 were discovered. These logics were obtained by changing the semantics in natural ways. The same can be said of the Kripke-style semantics for relevant logics: a whole range of logics other than the standard...
I defend the extension of the lambek calculus with a distributive extensional conjunction and disjunction. I show how it independently arises in linguistics, information flow and relevant logics, and relation algebra. I give the logic a cut-free Gentzenisation and show that it is decidable.
My Ph.D. Thesis, completed in January 1994. I was supervised by Prof. Graham Priest, at the University of Queensland. The thesis is 292 pages of work on logics without the contraction rule.
I show how Priest and Sylvan’s simplified semantics extends from basic relevant logics to a large class of stronger logics. The completeness proof is a little tricky, given the different behaviour of the normal world in the models. This is the first paper from my Ph.D. thesis.
I show that any finitely valued logic of a simple kind fails to support naïve comprehension, if it has a conditional. I then go on to show how some infinitely valued logics also fail to be robustly contraction free. Then I make a bold conjecture that robust contraction freedom is sufficient to support naïve set theory. This conjecture was later...
I argue that the extant reasons for sticking to classical logic in the face of the paradoxes of self reference are not good reasons. The paradoxes are really difficult and we should use all of the weapons at our disposal.
My first publication. It stems from work I did in my Honours year (1989) with Graham Priest, on paraconsistent logic. I explain a particularly simple yet powerful technique for constructing models of naïve set theory in the paraconsistent logic LP. This can be used to show the consistency of the theory, and to construct models invalidating some...