Recent submissions

Comment · 8 months ago
I don’t subscribe to the NYT anymore (I cancelled my subscription in 2022). I know who Clavicular is because of social media.

The fact that the NYT thought the guy was worthy of a profile is yet another piece of evidence that I should never have given that paper money in the first place.

Comment · 8 months ago
Author here! I didn’t use AI to write this. Jekyll’s markdown to HTML converter helpfully transforms a series of three normal dashes into an em dash.

I did use AI to proofread the article, and implemented its primary suggestion (turning down a dark joke at my own expense that was pretty out of place), but the first draft of this was 100% hand-written.

Comment · 2 years ago
Twitter's still working, but it's in a state that I think is worse than before. The spam bots alone seem to be orders of magnitude more prominent. I don't think I'd ever seen a spammer pre-headcount-change, and now "MY PUSSY IN BIO" is a running gag on the website because spambots are so prominent.

They also changed their content rules to allow drastically more content, which reduces the total amount of work to be done. You could argue that this is a good thing because the moderation was useless and censoring before, but the moderation also made it a friendlier place for major advertisers who have since pulled out—so changing the moderation resulted in a business model change. That's naturally going to reduce headcount.

Comment · 3 years ago
This article is from 2017. In the meantime, the Haskell community has been playing around a lot with Effect Systems, which give you similar benefits with much better performance and generally less boilerplate. In particular, the effectful package (https://hackage.haskell.org/package/effectful) would let you write the code in the article as:

  reserve :: (SearchTrains :> es, GetTypology :> es, Log :> es, RequestReservation :> es) => ReservationRequest -> Eff es ReservationResult
  reserve request = do
    trains <- send (SearchTrain (_dateTime request)) -- Search for trains at date-time
    forM trains $ \train ->                   -- Loop on all the trains
      typology <- send (GetTypology train)           -- Get the typology of a train
      ...                                     -- Implement the reservation rules
      send (Log "Confirming reservation")          
      confirmed <- send (RequestReservation reservation)
      ...
(In actual usage you won't tend to use the send function - you'll write wrappers that do it for you).

This lets you avoid having to write an interpreter for some particular ReservationExpr monad - instead, you specify individual effect handlers, then use them as you want. For example, we could write something like this:

  -- Make search train never return any trains
  runWithoutTrains :: Eff (SearchTrains ': es) a -> Eff es a
  runWithoutTrains = interpret $ \_unusedHere (SearchTrain name) -> pure []

  ignoreLogs :: Eff (Log ': es) a -> Eff es a
  ignoreLogs = interpret $ \_unusedHere (Log _message) -> pure ()

What's even more fun is that you can actually interpose effects. So, I can write this:

  loggingTrainSearches :: (Log :> es, SearchTrain :> es) => Eff es a -> Eff es a
  loggingTrainSearches = interpose $ \_unusedHere (SearchTrain name) -> do
    send (Log ("Searching for train " <> show name))
    send (SearchTrain name)

Being able to play around with handlers like this is really useful, both for testing and for adding on niceties to business logic.
Comment · 9 years ago
I'm a bit torn. I like the design of Unity more than I do that of Gnome, but I think that less fragmentation is extremely desirable.

Ultimately, I think it's a good, necessary move. Linux on the desktop will only happen when the environment is at least as uniform as that of Windows—from the perspective of application developers, at least.

Comment · 9 years ago
Comment · 9 years ago
There's very few completely linear relationships in all of economics. Economies of scale, especially, are often at least polynomial.

I'd say a website with 100 million members is worth far more than 4x as much as a site with 26.

Comment · 9 years ago
Comment · 11 years ago
Is anybody really surprised by this development? If you create a platform where people can ask for money, a bunch of people are going to ask for money they don't really need.

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton