Dick Boyd. He could’ve stopped with undergrad teaching early in his life. He certainly could’ve stopped later in life. But he didn’t, because he loved it, and kept teaching to stoned, bored, dumb 20 year olds; and so I met him.
He taught philosophy of science, and was known for that, but he was an ethicist at heart I think. Really a moralist, to use an old term.
He ranged over everything (including my stuff like philosophy of language/logic & also math, which he did with Putnam at MIT) — but in all his work he was most of all humane. My favorite topic of his was, of all things, species, as in biological species.
He rejected essentialism on that. This needs clarification because no one knows what “essentialism” means anymore. Say: an essentialism about species would be like Plato’s “featherless biped” for a human—some single required property. A more sophisticated version might be something like cladistic descent—but the details here don’t really matter. He rejected all this. Instead he argued for homeostatic property clusters for all natural kinds, of which species were one type of natural kind.
With this fancy term he just meant: there are a set of features that typically occur in a set of similar individuals (where no single property is essential to define that group). Again: no single property. Instead, a member x belongs to natural kind y when x exhibits some number of the properties common to this group. The extensional limits of the group are not quite precise, and so there are unavoidable and unresolveable “borderline cases” (as a philosopher of language would say).
And that’s the whole point. His under-appreciated model has great explanatory power for the real natural world, as described by real science, where a concept like essence doesn’t meaningfully appear.
The details about species are interesting, but still secondary to what he really cared about. Dick rejected all sorts of reductive essentialism before it was cool to do so: his point about species also extended to a whole set of social kinds. This was his point.
See, Professor Boyd was a Marxist of the old school kind—the kind my Yiddish-speaking great-grandmother would’ve been alright with. On this he was most of all a realist consequentialist. I think Dick would hate whatever tweets pass for “Marxism” nowadays. His Marxism was exact, moral. Outcomes were either good or bad, and there was a fact of the matter. The literal good depended on it. Whether he was right or wrong on political outcomes is another story (or whether the good exists at all, as my anti-realist mutuals might argue): but the point is that his first-order apparatus of appraisal was finely-tuned and powerful.
His socks were always mismatched.
I was so insecure those days about what I knew in philosophy. And yet, as a undergrad, he let me teach an entire three-hour seminar about “Putnam & Natural Kinds” to his group of grad students. I did Twin Earth, then Kripke’s gold, and even dared to do some later Lewis, which confused everyone; then I doubled down and scribbled Barcan’s Formula on a blackboard for some reason. I lost the entire class in confusion, and he laughed that I had gone too far. I was terrified. Soon everyone left, and I went back to my notebook. He said I did a brilliant job, and that I should go into teaching. I didn’t, but those three hours still changed my life. I will never forget it. Some time later, when I become serious about actually doing it, he asked me: “can you do anything else besides philosophy? Do that if you can”, and he changed my life again.
Despite his exacting scientific realism, his naturalism and materialism, it turns out Dick thought a lot about religion. He knew grace as well as any Christian theologian, and he could talk gnosticism as well as he could talk physicalism.
Whether our souls live on after this life, we will never know. But I really hope his will.
]]>Consider an impossible condition: x != x
. That’s a violation of the Law of Identity, and it is never true;
there is no x for which x is not x (in plain English, there does not exist anything that is not equal to itself).
Now consider the concept of all x's for which x != x
. This concept applies to nothing. It has an empty
extension. (For the sake of clear exposition, we can give this concept a name — let’s call it c-nil
.)
We can now go ahead and associate 0 with that concept. And that’s the brilliant move. Once we have “0”, the rest of the finite numbers can be easily derived.
Consider the concept of all x's for which x is c-nil
. Let “1” be defined as this concept. (For ease, we’ll
name this concept c-one
.) There is only one such thing: the concept we
just defined as “0”. As Frege wrote: “1 is the number which belongs to the concept ‘identical with 0’”.
You may be thinking successor function, especially if you’re a programmer, and that’s
just about right. Consider the concept of all x's for which x is c-nil or c-one
. Let that be defined as “2”.
We can continue: for “3” we’ll have c-nil or c-one or c-two
, and so on, forever.
Frege’s incisive and precise clarity of thought here and elsewhere was far beyond his contemporaries. I could go on and on about a thousand other contributions, but consider just this. When dealing more closely with the metaphysics of numbers, Frege was sharply against the ancient view that a number stood for “a number of things” (that is, to speak of the number “4” was to speak of, roughly, “There are 4 ‘somethings’ here”).
Frege was also against contemporary “psychological views” of numbers (that a number should be associated with some sort of mental picture of that number). Frege offered absolutely devastating arguments against both views in the The Foundations of Arithmetic (read the book). In the wake of Frege’s arguments, and the work by those that came soon after, these views essentially disappeared from mainstream analytic philosophical thought for most of the 20th century.
Thanks for Mark Eli Kalderon for some clarifying notes.
]]>More and more companies are accepting that remote work is good for the remote worker. But when remote work is really done right — that is, encouraged and celebrated rather than merely accepted — there are major company-wide benefits. Having remote, engaged co-workers becomes a boon even for those people that are “local”, like me.
Consider this perspective. There is this increasingly ugly and self-satisifed startup culture throughout the Bay Area. Eventually the current bubble will burst and a lot of the more hideous aspects will go down the sewer like so much rubbish. But this culture is there right now and it’s not healthy for anyone.
So, look beyond. GitHub employs Midwestern homeowners, Texans with gardens, European urbanites, climbers in the Pacific Northwest, British guitar players. We’ve even allowed in several Australians. This helps temper the worst cultural excesses and business cul-de-sacs rampant in Social Hybrid Cloud Web 3.0. It broadens our vision. It reduces local bubble think.
The effectiveness of remote work, and the extent to which it can help your culture, depends on how much a company encourages it. If you’re going to do remote, you must do it all the way.
Consider job postings. “Remote work possible for the right candidate” is awful. “Work where you want” should be the message.
A company can’t just begrudgingly accept the possibility of remote work. It must embrace it.
And the company will be rewarded for doing so. Sure, sometimes the benefits might seem small. But whether it’s talking SEC football with teammates in the South or British politics with colleagues in Brighton — this geographic exchange is a huge part of what makes a vibrant and unique culture. This is the kind of culture that keeps people happy. Not to mention again that big benefit: defense against startup mono-thinking.
It’s almost cliché now, but the Internet has demolished geographic borders in an unprecedented way. It’s painfully ironic that Internet companies would not embrace this same change. Companies that don’t celebrate remote work will find their best hires, current and potential, heading elsewhere, and soon.
]]>scalac
, the Scala compiler, accepts an -optimise
flag. I’ve heard anecdotally that it might sometimes improve runtime performance. I’ve personally never seen any hard data to indicate that it does very much (although it does have a very promising name.).
What I do know for sure, however, is that -optimise
can make your compile times insanely slow. I’ve seen this affect a few friends, so I figured I’d mention it here to save any other wayward travelers.
Against an EC2 m1.small, compiling a roughly 3000 line Scala project (leaving out the tests), with Maven, and with Scala 2.9.1:
With -optimise
:
[INFO] compile in 928 s
Without -optimise
:
[INFO] compile in 47 s
There may have been something particularly awful about this one project that resulted in such an absurdly long compile time. But I’ve seen similarly bad numbers across a number of projects. At the very least, I’ve seen 10x increases in compile times while compiling on all sorts of machines.
Peter Hausel noted that there is ongoing work on improving speed for inlining, which seems like a step in the right direction.
For now, avoid -optimise
and keep your sanity while developing.
A recent commit added a little annotation, JsonSnakeCase
, to Jerkson. Add this annotation to your class and you can define a field name as Javaland-standard camelCase
, yet still serialize and deserialize that field name with snake_casing
.
Start with the usual case class and add the annotation —
and use idiomatic Scala method names —
all the while, still generating standard-ish JSON keys —
The implementation is quite simple and it just works. Even better, the same functionality is now available in Coda’s rapidly-developing Dropwizard library, for Java and Scala.
]]>