Readit News logoReadit News
heisig commented on Adaptive Hashing   quotenil.com/adaptive-has... · Posted by u/varjag
heisig · 4 months ago
Let me comment as an SBCL user: This is outstanding work, and I can now remove a lot of performance hacks from my code because the default hash tables became equally fast!

Also, this technique eliminates a number of worst-case scenarios and inefficiencies, which is a boon for any hash table user.

heisig commented on uv downloads overtake Poetry for Wagtail users   wagtail.org/blog/uv-overt... · Posted by u/ThibWeb
heisig · 6 months ago
I recently switched to uv, and I cannot praise it enough. With uv, the Python ecosystem finally feels mature and polished rather than like a collection of brittle hacks.

Kudos to the uv developers for creating such an amazing piece of software!

heisig commented on If ChatGPT produces AI-generated code for your app, who does it belong to?   zdnet.com/article/if-chat... · Posted by u/bookofjoe
PittleyDunkin · 8 months ago
Ownership of software never made any sense to begin with. We should abandon such a concept as belonging to the dark ages.
heisig · 8 months ago
I fully agree. Limiting the amount of copies of software to sell them like a finite good has so many downsides:

1. There may be people who cannot use/afford some software, although there is technically an infinite supply.

2. Collaboration becomes awkward. Either all contributors give up their rights (Open Source), or one contributor holds all the rights and the rest is being treated unfairly. The latter decreases the incentives to make software modular and reusable.

3. The resulting software typically gets worse due to some copyright enforcement mechanisms. For example, no closed source software will ever have a good debugger, because that would allow viewing and changing the source code.

4. It creates a power imbalance between software owners and software users. Nearly all software has to be adapted over time, but the software owner has a monopoly on performing such adaptations. The result is enshittification, surveillance, and basically a return to feudalism where daily life is governed by a small number of overlords.

5. It is not clear how to price software fairly, and there is also little incentive to do so.

6. My impression is that high-quality software converges to formal proof, which is AFAIK not copyrightable.

For all these reasons, I think it is time to consider a world without copyright on software.

To those that worry about salaries in such a world: Negotiate payment in advance (contracts, crowdfunding, bounties, ...), or get a job where software is created as a byproduct (consultant, researcher, tester, ...).

heisig commented on Microsoft says EU to blame for the worst IT outage   euronews.com/next/2024/07... · Posted by u/matthewmorgan
heisig · a year ago
Now Microsoft just sounds like pre-Brexit Britain. Why reflect on your own shortcomings when you can blame the EU instead :)

I suggest Microsoft follows Britain's example and leaves. The main difference is that we Europeans actually miss the Brits, whereas nobody would miss Microsoft and its shoddy products and business practices.

On a more serious note, I fully understand that the Digital Markets Act is causing Microsoft headaches. But I think this headache is well deserved. Big Tech has been building moats where they should have built bridges, and now our computing landscape resembles medieval Germany where everything was at the mercy of a few feudal lords. It is time to drive out those lords and reshape software in a way that empowers, not enslaves.

heisig commented on Compile-time JSON deserialization in C++   medium.com/@abdulgh/compi... · Posted by u/dctwin
anothername12 · a year ago
Not a C++ user, but is this the same as #. reader macro in Common Lisp?
heisig · a year ago
Yes, the #. reader macro is one of the ways how you can achieve this in Common Lisp. Using the reader macro is also way more efficient because you don't awkwardly use your compiler as an interpreter for a weird subset of your actual language - you simply call to compiled code.

Seeing Greenspun's tenth rule [1] in action again and again is one of the weird things we Common Lisp programmers have to endure. I wish we would have more discussions on how to improve Lisp even further instead of trying to 'fix' C or C++ for the umpteenth time.

[1] https://en.wikipedia.org/wiki/Greenspun%27s_tenth_rule

heisig commented on Connection Machine Lisp (1986)   dl.acm.org/doi/pdf/10.114... · Posted by u/twoodfin
convolvatron · a year ago
i'm assuming you mean 'lazy' in the context of the paper and not more a general system of lazy evaluation. what was in particular that you found difficult about binding pure functions under the notion of a xapping? thanks so much for posting your work
heisig · a year ago
Implementing lazy arrays or xappings naively is easy - the Petalisp reference backend has just 94 lines of code [1]. The challenge is to implement them efficiently. With eager evaluation, the programmer describes more or less precisely what the computer should do. With lazy evaluation, you only get a description of what should be done, with almost no no restriction on how to do it. To make lazy evaluation of arrays as fast as eager evaluation, you have to automate many of the high-level reasoning steps of an expert programmer. Doing so is extremely tedious, but once you have it you can write really clean and simple programs and still get the performance of hand-crafted wizard codes.

[1] https://github.com/marcoheisig/Petalisp/blob/master/code/cor...

heisig commented on Connection Machine Lisp (1986)   dl.acm.org/doi/pdf/10.114... · Posted by u/twoodfin
heisig · a year ago
Connection Machine Lisp never made it into production, but this paper had a profound impact on my scientific career. In particular, it was the following comment in the paper that triggered me to develop the Petalisp programming language (https://github.com/marcoheisig/Petalisp):

> Nevertheless, we have implemented (on a single-processor system, the Symbolics 3600) an experimental version of Connection Machine Lisp with lazy xappings and have found it tremendously complicated to implement but useful in practice.

I think there is a moral here: Don't hesitate to experiment with crazy ideas (lazy xappings), and don't be afraid to openly talk about those experiments.

After eight years of development, I can definitely confirm that lazy arrays/xappings are tremendously complicated to implement but useful in practice :)

heisig commented on Parallel garbage collection for SBCL (2023)   zenodo.org/records/781639... · Posted by u/tosh
heisig · a year ago
This paper is from last year, and a lot of interesting things have happened in the meantime:

- The parallel garbage collector is now part of SBCL, but not yet the default. Enabling it is attractive, though, because it has roughly twice the throughput.

- The SBCL maintainers used the parallel GC as reason to make SBCL's memory management overall more modular. This process is still ongoing, but experimenting with different GC strategies on SBCL has never been easier.

- Another GC is already in the works that has virtually zero pause times. Once this is merged, we can finally bury that old myth that Lisp systems stutter (if it hasn't already been buried by the presence of video games written in Lisp, like Kandria)

The parallel GC is an amazing achievement by Hayley Patton. We SBCL users cannot thank her enough for her outstanding work!

heisig commented on High performance array programming in Petalisp   zenodo.org/records/110623... · Posted by u/medo-bear
hr0m · a year ago
Wait, I know the author and will share the link so he can join here.
heisig · a year ago
Heh, thanks :)

Petalisp author here - this ELS paper is just a preview. I'm also preparing a 160 page document (for my PhD) that will explain everything in more detail. I'll post on HN when it is available.

There is also a recording of my ELS talk on Twitch: https://www.twitch.tv/videos/2138821711?t=00h40m35s

heisig commented on Germany just legalized recreational marijuana   spiegel.de/politik/deutsc... · Posted by u/Kelteseth
heisig · a year ago
Let me summarize the key points of this law:

- Starting from April 1, German adults can legally possess a certain amount of weed (25 grams on the move, 50 grams at home), and they may consume it unless they are within 100 meters of a school or kindergarten.

- This is just the first stage of that law, where the only way to actually obtain weed (other than for medical purposes) is to grow it yourself, or to form a collective of growers. Either way, the maximum number of plants per person is three. Commercially trade of weed is planned for later, as a second stage of the law.

- While this law legalizes weed for adults, it further prevents access for minors. The law raises the penalty for selling weed to minors to a minimum of two years in prison, and people that grow their own plants must ensure that minors cannot access them. People aged between 18 and 21 are only allowed access to weed with a THC content of less than 10%. The reasoning behind all this is that weed severely impairs the brain development of young people.

- Driving while under the influence is still a crime.

- The stated goal of this law is to eliminate the black market and to stop the growing trend of minors smoking weed. A review is scheduled in 18 months, determine whether the law in the current form achieves that goal or whether it has to be tweaked further.

This law is obviously a compromise between all the parties of the German government, EU law, scientific consensus, and practicability. What I like about the law is how carefully it weighs health issues and individual liberty. All the limits (legal age, grams of possession) have a solid scientific basis.

u/heisig

KarmaCake day531July 2, 2018View Original