Archives

Creative Commons License
This blog is licensed under a Creative Commons License.

Response to PG's "How to Do Philosophy"

| 1 Comment | No TrackBacks

Back in late 2007, Paul Graham put up an essay titled “How to Do Philosophy”, in which Mr. Graham hoped to elucidate where Philosophy went wrong and why the field, as now practiced, must be renovated to remain useful. In fact, he goes so far as to suggest that much of philosophy has no benefit whatsoever:

The proof of how useless some of their answers turned out to be is how little effect they have. No one after reading Aristotle’s Metaphysics does anything differently as a result.

If I may, as a student of philosophy, I would like to offer my response to this argument, whose tenets have been repeated many times throughout Philosophy’s history.

Journey into Haskell, part 6

| 6 Comments | No TrackBacks

Create a list of primes “as you go”, considering a number prime if it can’t be divided by any number already considered prime.

However, although my straightforward solution worked on discrete ranges, it couldn’t yield a single prime when called on an infinite range – something I’m completely unused to from other languages, except for some experience with the SERIES library in Common Lisp.

Journey into Haskell, part 5

| 2 Comments | No TrackBacks

Haskell may be difficult to start out with, but once things start rolling, they roll fast. Yesterday (real world time, these blog entries are staggered) I had started the first lines of HackPorts, but now things are getting close to done for the first version. It’s not that I’ve written much code, but that it was simple to integrate with other people’s code.

How laziness changes thinking in Haskell

| 3 Comments | No TrackBacks

As I explore Haskell, I’m discovering that one of its trickiest aspects is not structuring things functionally, but the lazy evaluation. It turns out lazy evaluation comes with both great benefits, and significant difficulties. I’d like to point a few of these out, as they’re becoming clearer to me.

Journey into Haskell, part 4

| 1 Comment | No TrackBacks

I’ve been reading Real World Haskell now, after having finished the delightful Learn You a Haskell Tutorial. I’m up to chapter 6, about to dive into Typeclasses. In the meantime, I’ve picked a toy project that also has a taste of usefulness: a script to convert the Hackage database into MacPorts Portfiles, respecting inter-package and external library dependencies. I call it HackPorts, of course.

Updated site to use Blueprint CSS again

| No Comments | No TrackBacks

Recently I changed how the content on this site was generated, from using the standalone OS X application RapidWeaver, to the server-side publishing platform Movable Type. During that transition I changed the site’s style to the minimalist default offered by MT, which uses its own CSS for column layout and typography.

Tonight I finally got around to switching the site back to blueprint-css, which I very much prefer. I used the superb application CSSEdit to help me massage Movable Type’s style into something that compatible with Blueprint’s own typography and layout.

I hope the result is pleasing. If anyone sees strange artifacts or display issues, please let me know. I’m aware code examples were being truncated on the right side before, but this should be corrected now. More on Haskell to come soon!

Journey into Haskell, part 3

| 2 Comments | No TrackBacks

Today I need a wrapper script to drop arguments from a command-line. I instinctively reached for bash, but then thought it would be a good exercise for my infant Haskell knowledge.

Journey into Haskell, part 2

| No Comments | No TrackBacks

Everybody talks about Monads when they mention Haskell, so I got a bit ahead of myself and wanted to see something of what they’re about. No, don’t worry, I’m not aspiring to yet another Monad tutorial. I feel I have a ways to go before I’m ready to craft my own light-saber.

I did read about 10 Monad articles on the Web, and found myself more confused when I came out than when I went in. Today’s exercise took about 5-6 hours of pure frustration, before a kind soul on IRC finally set me straight. It sure is difficult when getting past a single compiler error takes you hours.

Journey into Haskell, Part 1

| 7 Comments | No TrackBacks

Having just begun my descent down the rabbit hole, I thought I’d try journaling about what I discover along the way, so that those who are merely curious can play the part of language voyeur. I’ve always wanted to do that: to see how someone dives into Erlang or O’Caml or Forth – or Haskell. Here’s your chance.

The JVM, and costs vs. benefits

| 28 Comments | No TrackBacks

In a recent entry on differences between Haskell and Lisp, one of the Lisp community’s long-time members, Daniel Weinreb, asked about my stated aversion to JVM-based languages for everyday computing (sometimes referred to as “scripting”). Specifically, it was asked in relation to Clojure, and why I hasn’t been immediately taken by that language – despite it’s having so many features I respect and admire.

I wanted to respond to Daniel’s question in a separate blog entry, since this topic has come up so often, it seems, and deserves thought. The JVM is a rich, mature platform, and you get so much for free by designing new languages on top of it. The point of debate is: what are the costs, and are they always worth the asking price?

Find recent content on the main index or look in the archives to find all content.

Recent Comments

  • Przemek: Great article, indeed. @Kyle: I’m a git newbie and SVN read more
  • Kyle Bennett: John, thanks for the work you put into this. Since read more
  • Sigi: You deserve a lot of praise for this article. It’s read more
  • Tony: this is an excellent write up; I’ve been reading much read more
  • John Wiegley: Thanks for letting me know, I’ll try to rectify the read more
  • Rudi Farkas: Hello John Above, you say “The date at the front read more
  • Uwe Kleine-König: Hi John, a comment to the paragraph about reset: $ read more
  • Leonardo Boiko: Thank you very much for this; as a bottom-up guy read more
  • John Wiegley: Thanks for the update. I’ll include this among the next read more
  • Laust Rud: Excellent writing, thanks! The url for the git-core tutorial has read more
OpenID accepted here Learn more about OpenID
Powered by Movable Type 4.261