I should make a thing that focuses the terminal that I'm in once the command finishes.

Example: `focus-when-done ./gradlew installDebug`

After executing that, I can switch to another workspace, chat on IRC, read Mastodon, etc.. I don't have to remember to go back to that terminal window, since it will automatically pull me back once the command is done.

I wish there was a functional language that cared about performance guarantees and memory semantics like Rust or Zig. Would it even be possible to have a functional language with no GC?

What if there was an extension that let people get paid to avoid bad citizens of the web; maybe that would make the web slowly get better. I don't know how such an extension would get funding and avoid abuse, but I can dream, can't I? Still, it seems to me that the best way to incentivize companies to be good is to incentivize individuals to require good.

The only reason I need a graphical interface is for the internet. Furthermore, the only reason I need a graphical interface for the internet is that I am forced to depend on websites that depend on JS, which is only supported sufficiently by graphical browsers. Waiting for Firefox to come out with a TUI...

The worst part about getting a new device is when I procrastinate putting my GPG key on it, which means I have to manually type passwords from the password manager on my phone, which ultimately means I avoid needing to login to stuff.

Keyboard input and UI rendering are pretty orthogonal in code. Now that I'm adding mouse support, input and rendering seem to be more related than I realized. I have been rendering input from scratch for every frame, which means I've been computing layout each frame as well. To handle mouse input, I also have to know the layout, since I need to know what elements the pointer is over.

The shared concern for layout is expected I guess, since user input is usually a response to what is rendered.

I think I must not be the only one who is doing it this way because I ran htop with my suckless terminal next too it. Then I held down the "L" key and saw the CPU usage of st jump from pretty low to about 50% just from holding down the key. Surely handling key repeat rates is not a task that takes even 0.1% CPU. Is there a solution to this?

In my wayland program, I have my main loop running full steam ahead, checking for events at each iteration and starting over if not. Thus, it is rendering as fast as it possibly can, which means it uses 100% CPU all the time. The reason for this is that I need to check check the time for each key in case a key is held down and a repetition event needs to be sent to the UI. I'm not sure the best way, but a smarter way would be to only use 100% CPU when at least one key is pressed.

The only thing more fun than finding a new bandwagon to jump onto is rediscovering the ground, jumping off the bandwagon, and proceeding to shoot at the people still on it.

First time I've seen these articles. I myself have been guilty of spreading some of the misleading ActivityPub doctrine that he mentions. Now it makes a whole lot more sense why we have clients working on supporting Pixelfed, Peertube, etc. instead of those being supported for free.

schub.wtf/blog/2018/02/01/acti
schub.wtf/blog/2019/01/13/acti

ActivityPub seems to have a superset of what email provides. I haven't really thought too deeply on this, but what would prevent using ActivityPub for the same thing we use email for?

I suspect I'm wrong, so please correct me if you know my error.

I'm a little out of my element here. It seems to be more complicated than I realized to install alpine onto a PBP.

wiki.alpinelinux.org/wiki/DIY_

@PINE64 It'd be nice if there were an official PBP-friendly alpine image.

Just got my !! About to attempt to install alpine on it.

Moore's law may be pretty much over, but our reliance upon it during the years that it lived means that single-core performance does not yet face a brick wall.

Although making a language accept more valid programs can make it worse, it is far easier to implement a syntax filter than it is to implement just the subset that you want. Thus, if you hate C++, but want some of the features that it has which C doesn't, you could just write a parser which only accepts your subset. This still is whole new language because you need a new ecosystem of libraries and a new community of developers, but at least the compiler will be as bug-free as the base compiler.

Poorly documented git.sr.ht feature: if you push to a git repo that doesn't already exist, it's created for you automatically. I haven't used the web UI to create new git repos in... a year?

Sadly I'm on a project written in PHP. My goal is to keep the project free of extra library dependencies, so I'd rather use Server-Sent Events than WebSockets because it is a simpler technology. However, I don't know how a POST from one client could get propagated to an event-stream, since PHP keeps page requests isolated. Anybody know if there is a way to do message-passing between PHP pages? Is that a bad idea altogether?

Anybody have opinions on websockets vs. server-sent events vs. polling for a chat application?

I like polling because it is stateless, I don't have to worry about disconnected sockets, and it just uses http, so there is no need to add another dependencies.

However, polling every few seconds would take a lot of battery, so I think websockets or SSE is going to be the proper option.

@andrewrk Actually, what would be really nice is a way to view the backtrace of an async function. While debugging a Zig program with GDB, I can run `bt` to see the current backtrace, but since @Frame values don't store the whole stack, I don't get a useful answer after resuming a stack frame. However, the information is all there; there is an implicit stack since whoever calls an async function must also be async. blog.varunramesh.net/posts/sta

Are there gotchas with "stackless coroutines"? I think that Zig async functions are a similar concept, and I'm running into some trouble. A function which I think ought to only be called once seems to be called twice (or possibly being resumed from the beginning of the function rather than where it suspended). I've been trying to debug this for about 2 days but no progress.

@andrewrk is there a way to dump the current stack trace, I found dumpCurrentStackTrace, but it segfaulted.

Show more
Functional Café

functional.cafe is an instance for people interested in functional programming and languages.