HNHacker News
TopNewBestAskShowJobs

bjoli

4,281 karma · joined August 4, 2017

submissionscomments
bjoli··on Interview with Chicken Scheme Maintainer Sjamaan/Peter Bex
Now, I don't use chicken anymore. Due to the alignment of the stars I ended up mostly writing guile scheme, but the chicken guys are probably the nicest people online. I asked stupid n00b questions in their IRC channel, and the maintainers took time to explain things to me and even suggested things to implement next as a good learning experience.

It is really the best corner of the internet.

bjoli··on GitHub's new dashboard experience now the default
Thank you. Now revert whatever it is that makes org mode files not render since ~40h.
bjoli··on RacketCon Is Saturday
In many ways I feel I should have targetted OCaml instead, since I would have gotten a full effect handler system and delimited continuations for free.

Now I am generating two bodies for every defun that touches any suspending function, using asyncmethodbuilder, meaning I don't get any of the runtimeasync benefits coming in dotnet11.

Hopefully they'll give us a new asyncmethodbuilder that is somewhat more constrained but guarantees runtime async.

bjoli··on RacketCon Is Saturday
I am curious how. I thought quite a lot about targeting MSIL, but i found no way of copying, capturing or slicing the call stack. Nor is it possible to reify even the whole stack as a first class object.

For delimited continuations I only managed to find mostly extremely inefficient ways of doing it. CPS transformations on dotnet are, at least if kept to be useful as delcc, slow as molasses.

Which is ultimately why I chose to compile to c# to use asyncmethodbuilder do do the state machine translation for me.

bjoli··on RacketCon Is Saturday
I am pretty sure dotnet doesn't allow any kind of fun (or "tampering" as they call it) with the stack, as a security precaution.
bjoli··on RacketCon Is Saturday
Thank you. The only thing I really miss in c#/dotnet are delimited continuations. That would have made it possible to have proper effect handlers (now they are only tail resumptive, meaning it can only mock things like file system access and so on) and remove colour from the language entirely.

The colour situation is ok, but us still a bit rough wrt higher order functions.

bjoli··on RacketCon Is Saturday
I used ai liberally to write an s-expr language that compiles to c#.

https://bjolang.koketteriet.se/

It uses local HM inference and traits instead of OO, and the concurrency is based on concurrentML. The design process was mostly about what I dont like about other languages and what I think racket and OCaml does correctly. All default data structures are immutable (using an RRB tree, a champ, b+trees and linked lists) with pretty fast implementations.

Speed wise it is about the same as c# without spans and ref structs, since that is what it compiles to.

Every function that touches IO is compiles in a sync and async variant, so writing "bjoroutines" is most of the time the same as writing regular code.

The GitHub page is borked, since they removed Org mode support a day ago, but the manual and reference can be found on the web page.

bjoli··on StreetComplete on iOS is now in public beta
I feel I must warn you. It is a gateway to more heavy map editing using the online editor or tools like Vespucci.
bjoli··on Go Concurrency Distilled
Wait until you discover concurrentML. It lets you abstract away a lot of nasty protocol details over channels in a way that would be very hard in any CSP system.

Green threads and channels are not anything new. They were all the hype back in the 80s, but the pthreads came and ruined the party. Then we rediscovered them in the 2000s.

bjoli··on Israel weaponises AI for West Bank demolitions
For some definition of illegal. These things have a tendency to mean one thing for most people and another thing for the IDF.
bjoli··on UTF-8000: Unlimited UTF-8
The problem is the boundary with, say, windows. In rust they have WTF-8 more or less just to deal with windows filenames.
bjoli··on UTF-8000: Unlimited UTF-8
I wonder what it would take. For things like Java, JSA, and c# there would have to be things like a parallel utf8 api (yes please), but the really hard parts is the things that are as old as time (windows).

I don't think it will ever happen, but one can dream.

bjoli··on Btrfs/ZFS/bcachefs under workloads classic benchmarks skip
You had plenty of time to move away from reiserfs. Something like 15 years between the conviction and removal.
bjoli··on Performance Improvements in .NET 11
What I wish more languages did was what the guile optimizer does. There is a source->source optimizer which does inlining, DCE, CSE and partial evaluation.

That is very handy, especially when writing macros. I only have to look at assembly when I want to know about optimizations that are not visible in the source->source optimizer.

If I ever want to know if something is reified (which I never do) I can always look at the ASM.

bjoli··on Performance Improvements in .NET 11
I hope there will be some kind of runtime async support for the current or a new asyncmethodbuilder. That is amazing work.
bjoli··on The case against JPEG XL
I dont know how you calculate that, but for my phone I get the payoff (given a 30% size reduction) to be positive below anywhere from 30-43Mbps.

When on celular, even 5g, I am pretty often below that.

bjoli··on Shutting down our public encrypted DNS
You are probably the guy to ask. I have always found dns over TLS to be the fastest, but with the quic versions making an entrance, maybe things have changed. Which is the one that gives me the fastest replies?
bjoli··on Creepy Crawlies
Does it really take 3 minutes on your iPhone? My pixel 8 does it in slightly less than a minute in Firefox.
bjoli··on Nebula Sans
I believe everything you say. I hope you didn't feel attacked. It is just a feeling I often get when I'm online. Some people seem to spend more time on form than actual content, and while I agree that how things look is a part of the expression, I am somewhat of a brutalist because I feel that it rarely matters much, and most of the time it is a distraction.

but again, I am an old fart who is sad gopher lost.

bjoli··on Nebula Sans
In some ways I feel that caring a lot about fonts is on the opposite side of the spectrum to whatever it is making a population feel their lives have more meaning during wartime or crisis.

As a visual designer, sure, it is you job. As a computer user whose ultimate goal of using a computer is something else... I am kind of an old fart, but I often find that the best content is often found in conjunction with "font-family: sans-serif".

bjoli··on Nebula Sans
We shouldn't forget that Google tried to push the whole remote browser stack attestation thing (WEI). That is where they want to go. We shouldn't follow them there.
bjoli··on Value Classes Still Need Compiler Sympathy
that of course depends on what you mean by fast. Fast can mean "know how to make the job of the JIT easy" (which it does in many cases), but it can also mean "write C in Java" which is, arguably, worse than writing C in C.
bjoli··on A Friendly Introduction to Racket
everybody agrees, which is why most sane people very rarely reach for macros. At the same time, it would be great if some of the libraries that rely on typeclass machinery for code generation could use lisp-like macros, because turning a 3 second recompile to a 35 second recompile (and I have experienced worse. Much worse.) is what kills exploratory programming. I heard optics mostly solves much of the problems of generic lens, but god forbid you use something like servant or polysemy.

Chez compiles a project of about 35000 lines (with heavy macro usage) in less than 0.5s on -O2.

bjoli··on A Friendly Introduction to Racket
it allows you to create a language that compiles to your original language.

You can abstract everything away. Not like Haskell where laziness accounts for some and typeclasses for some (and often an exponential growth in compile times). No, it property let's you change the language.

I got tired of loops sucking and made this, for example: https://rikspucko.koketteriet.se/bjoli/goof-loop

bjoli··on ADHD charity complains about Channel 4 documentary
I do believe there is some truth to it. The reason we have had an upswing in diagnosed people is that society's demands have gotten higher and what was previously considered normal is no longer within the normality corridor.

the same can be said about things like mild intellectual disability. With increasing demands, not just in the jib market but in society as a whole, is has become much harder to find a place for them. Not only are they poorer than the average person, they are a lot sicker - both physically and mentally - with a lot less resources to manage.

This is going to become a larger societal problem if we wait longer.

bjoli··on Windows 11's built-in Weather app wastes more than 1 GB of RAM
Remember the days when we complained about Java being a resource hog?

Now I am glad to get a Java or dotnet app.

bjoli··on Windows 11's built-in Weather app wastes more than 1 GB of RAM
I spent some time this morning thinking I was wasting memory using an immutable vector type in c# (RRB tree). It made things a lot easier and probably safer, but it ended up using about 1 MB more memory and "wasting" a couple of hundred ns. Then I read about stuff like this and I feel better about myself.
bjoli··on HomeLab #1: MikroTik as a Home Router
One of their newer APs has thread radio. That is the best idea anyone has had since the mid 90s.
bjoli··on HomeLab #1: MikroTik as a Home Router
How is the ipv6 situation these days? I left Ubiquiti 2 years ago because I needed to be able to configure the /56 I got from my isp. The unifi controller was pathetic in what it could do.
bjoli··on G# – A modern .NET language with Go, Kotlin, and Swift ergonomics
if you compile to c# you can use #line directives to get integration with debuggers. it is really simple. for debug builds you can do an ANF pass and generate debugging locations for every different expression.
← PreviousPage 2 of 34Next →