Live data from Hacker News

I’ve Consed Every Pair

medium.com

121–130 of 228 posts

Re: I’ve Consed Every Pair

#121
post #107

Earlier quoted context omitted.

HN still uses it extensively for its more obscure operations—the ones that don't need to scale. We switched all the most common handlers to regular links years ago. It's hard to remember now that the most common complaint here (by far) used to be about those "Unknown or expired link" messages. In fact, you can tell from the histogram of https://hn.algolia.com/?dateRange=all&page=0&prefix=true&que... when it was that…

The primary downside is that they all get discarded when we restart the server process. For solving this, http://arclanguage.com/item?id=20996 has some theoretical ideas. It's way easier in elisp than in racket, but, the idea is to write out the function + the closure variables to disk. The hard part is that you'd have to fix up object references. (If two closures both capture x, and x is a hash table, then the value…

I know I've seen other work on serializing closures, but it was years ago and it just left me with the impression "hard". Maybe one could get a subset of it working nicely for the cases that an application like HN needs.

Re: I’ve Consed Every Pair

#122

cons lists are kind of slow because they don't play well with CPU caches. Are there any ideas how to adapt Lisp (or LISP) so that it plays well with current CPU architectures?

> cons lists are kind of slow because they don't play well with CPU caches.

Cons lists were slow on the IBM 704 too. Good thing that didn't stop anyone, right?

> Are there any ideas how to adapt Lisp (or LISP) so that it plays well with current CPU architectures?

An ARRAY feature was described in the 1960 Lisp manual. That's probably because it was recognized that linked lists weren't the be-all data structure even on the IBM 704; sometimes it's nice to have compact storage and fast random access.

Can we move past this in 2020?

Let's leave this to the people who have a single aggregate structure in their programming language that is ambiguous between list and array.

Re: I’ve Consed Every Pair

#123
I feel like there were other things like this that people like Guy Steele wrote in the heyday of things like this. More serious people with better memories will be able to say.

Re: I’ve Consed Every Pair

#124

In the genre of Lisp songs, I love “God wrote in Lisp”, by Julia Ecklar. Touted as a parody, but it actually has beautiful lyrics. https://www.gnu.org/fun/jokes/eternal-flame.html

>I love “God wrote in Lisp”, by Julia Ecklar.

Would bet to be HolyC or "I might be wrong"

Re: I’ve Consed Every Pair

#125

Earlier quoted context omitted.

I'd recommend giving Emacs a deep dive. That alone should be impressive enough, but if it doesn't satisfy you I'm not sure there are other projects that would.

Thanks! I'm sure that will give me a really solid look at what a full application looks like in a lisp.

More than one, if you look at it. Emacs is best viewed as a Emacs Lisp runtime that ships text editor as a default application ;). That's how it ends up with extensive outliner/productivity suite, e-mail/news client, file browser and a bunch of other applications within it, and a lot more of third-party one available in the built-in package manager.

Re: I’ve Consed Every Pair

#126

Earlier quoted context omitted.

The division was never a problem during the heyday. The decline in Lisp in fact started at the height of standardization. > it's so easy to write a lisp system Have you tried it, and how far did you get? Making a Lisp system useful for production is pretty brutal. 13 years into it you will be debugging some eleven-year-old GC or compiler bug. People think it's easy because they visualize the job as being done when so…

Maybe it declined for other reasons, but my impression was that the Lisp world was very splintered. I certainly can't think of any other example of a set of quite similar languages that's anywhere near as large. The Xerox Dandelion and friends was a thing to behold. If you ever got to touch one, you never forgot it. In my school, implementing a basic Lisp interpreter was part of a required class in the CS curriculum.…

I'd think a refreshed Common Lisp would still have a chance. It's a great language with some really solid open-source implementations, but it got standardized at the transition point in our industry, so the spec doesn't even consider (now-commonplace) things like threading or networking, while exposing you to some abstractions over systems died out.

The problems of CL wouldn't be unsurmountable if the community was larger, though. All the important stuff that wasn't standardized gets added by each implementation anyway, and then portability libraries get created that ensure consistent interface. But the state of most libraries is... rough at the edges. I contrast that with Clojure, with which I spent some months over the last two years. The library ecosystem (not Java-side, but Clojure-specific) is great, and a lot of care goes into it. I particularly remember being in awe of just how thorough Liberator is[0].

--

[0] - http://clojure-liberator.github.io/liberator/tutorial/decisi...

Re: I’ve Consed Every Pair

#127

Arc is underrated as an information management tool. There's something to be said for having a web framework that works out of the box. Rails is probably the only other framework that makes it as easy to "just make some forms that pass data around and run some code on that data." But not quite -- I haven't seen arc's closure-storing technique used in any other web framework. The main issue that arc solves is that it…

I don't know Arc, but it seems you're referring to 'continuation based web frameworks'? They have been around since the dawn of the web. Here's criticism from 2006: http://www.interact-sw.co.uk/iangblog/2006/05/21/webcontinua...

Truth be told, the criticism is a bit unfair (you can solve the problems)

Re: I’ve Consed Every Pair

#128
post #94

Earlier quoted context omitted.

The post is a topic that discusses tech. The commenter discussed eating advice to “avoid getting fat” that is plainly unbelievable to people who experience weight gain following said advice and who don’t benefit from being told to starve themselves more or be more hyper aware of the fact that it doesn’t matter how little they eat they gain weight. The post had nothing to do with getting fat. Of course I’m welcome to…

Have you tried lifting heavy weights? Follow a program like Starting Strength and make that calorie surplus work for you. Being skinnyfat isn’t really a compelling goal. Lift and gaining weight becomes a good thing, because it means you’re putting on muscle.

Starting strength is great for smaller men and women but can be hard on bigger people. Especially with Rippletoe's eating philosophy. I gained 15kg when I started SS so be careful. It was worth it and my numbers went up a ton, but it's always good to measure your options. If you're very large it is worthwhile to hire a trainer. They will teach you how to get started easily without jumping off the deep end.

Re: I’ve Consed Every Pair

#129

Earlier quoted context omitted.

The division was never a problem during the heyday. The decline in Lisp in fact started at the height of standardization. > it's so easy to write a lisp system Have you tried it, and how far did you get? Making a Lisp system useful for production is pretty brutal. 13 years into it you will be debugging some eleven-year-old GC or compiler bug. People think it's easy because they visualize the job as being done when so…

Maybe it declined for other reasons, but my impression was that the Lisp world was very splintered. I certainly can't think of any other example of a set of quite similar languages that's anywhere near as large. The Xerox Dandelion and friends was a thing to behold. If you ever got to touch one, you never forgot it. In my school, implementing a basic Lisp interpreter was part of a required class in the CS curriculum.…

> I certainly can't think of any other example of a set of quite similar languages that's anywhere near as large.

Scripting languages on Unix.

Re: I’ve Consed Every Pair

#130
post #49

Earlier quoted context omitted.

There are about three possible choices 1) he knew he did LISP like languages and wanted to share 2) he didn't know he did LISP like languages and wanted to share 3) he was showing off. 4) the other choices. I went to 3) based on my 40 years experience in computer science.

Maybe he just didn't recognize his face? Or might have recognized the name but lacked knowledge about his career? Remember Hanlon's razor: "Never attribute to malice that which is adequately explained by stupidity." Or, more politely and from a different angle, don't assume that the collection of facts that you happen to be aware of is obvious to everyone.

> Maybe he just didn't recognize his face?

or his shirts?

https://commons.wikimedia.org/wiki/File:Peter_Norvig_speakin...

Post reply on HN