@nomeata@mastodon.online
@nomeata@mastodon.online avatar

nomeata

@nomeata@mastodon.online

Has a thing for abstraction.
Haskeller, Computer Scientist.
Dances tango, swing and blues.
Stand-up comedian and Paraglider.

This profile is from a federated server and may be incomplete. Browse more on the original instance.

nomeata, to random
@nomeata@mastodon.online avatar

I've implemented functional induction theorems in Lean, shipping with the upcoming version 4.8.0, and wrote a tutorial-style blog post about it:
https://lean-lang.org/blog/2024-5-17-functional-induction/
(h't to David Christiansen for the tooling behind the hover features.)

maralorn, to random
@maralorn@chaos.social avatar

Wow, I just got capturing to run with a based compositor (like , I use ) and it was surprisingly simple. Just run this command once per minute:

lswt --json | jq '{date:now|strftime("%FT%TZ"),rate:60000,inactive:0,windows:map({title,program:.app_id,active:.activated}),desktop:""}' | arbtt-import -a -t JSON

I have also a homegrown solution to set the inactive flag, but it’s not as pretty.

cc @nomeata

nomeata,
@nomeata@mastodon.online avatar

@maralorn not using Wayland yet myself, but according to this comment arbtt just works on Wayland:
https://github.com/nomeata/arbtt/issues/153#issuecomment-1887857132

Is that not true?

nomeata,
@nomeata@mastodon.online avatar

@maralorn Guess it was too good to be true if it was just working…

nomeata, to random
@nomeata@mastodon.online avatar

Prolog and FARM? This café feels like .

nomeata, to NixOS
@nomeata@mastodon.online avatar

I have switched from containers to a relatively simple bubblewrap script to isolate my home directory from possibly malicious stuff that could run as I am developing. It's a bit ad-hoc and not a very thorough protection, but convenient enough that I might get in the habit.

https://www.joachim-breitner.de/blog/812-Convenient_sandboxed_development_environment

nomeata, to NixOS
@nomeata@mastodon.online avatar

Noticed that developing with access to my personal data is dangerous, given random dependencies and auto-updating Code extensions…
Set up a nice local container for dev stuff…
Hoped to keep all tokens and keys out of it (would run git push outside that container)…
Only to notice that only works with a full-access github token… sigh.

Anyways, still an improvement. Blog post to follow.

nomeata, to random
@nomeata@mastodon.online avatar

There might be train driver strikes in Germany soon again. I guess if I want to give my tutorial at in presence, I have to start cycling soon…

nomeata, to random German
@nomeata@mastodon.online avatar

Am Freitag, 1. März starte ich mit ein paar Leuten ein regelmäßiges Open-Mic in ! 19-22 Uhr im Harmoniekeller.
https://kellerkinder-comedy.de/
Seit dabei und lasst euch das Debut nicht entgehen!

nomeata, to haskell
@nomeata@mastodon.online avatar

Interlude episode 42: Jezen Thomas

https://haskell.foundation/podcast/42

Jezen Thomas is co-founder and CTO of Supercede, a company applying Haskell in the reinsurance industry. In this episode, Jezen, Wouter and I talk about his experience using Haskell in industry, growing a diverse and remote team of developers, and starting a company to create your own Haskell job.

nomeata, to haskell
@nomeata@mastodon.online avatar

I have resigned from my post as GHC Steering Committee secretary, and wrote a little retrospective at https://www.joachim-breitner.de/blog/811-GHC_Steering_Committee_Retrospective

nomeata, to random
@nomeata@mastodon.online avatar

This probably happens all over the place now, but still, the comment
https://issuetracker.google.com/issues/112096115?pli=1#comment117
made my day.

thea, to random

I wrote a C0 (subset of C) to Wasm compiler in that can be ran in the browser. You can try it out here: https://theabrick.com/c0/

While the end goal is to completely verify it, only part of that is completed as of right now.

I am also working on tooling and other somewhat tangential features. One of these tools that I wrote that was particularly cool/interesting is a Lean inductive definition to LaTeX'd inference rule converter.

Essentially you can encode inference rules in Lean (see first image) and with minimal configuration, the tool will output a corresponding typeset inference rule (see second picture). I've posted the static semantics that I've been able to generate for C0 so far here: https://theabrick.com/c0/statics.pdf

I see this having a couple of benefits. Number one being that I think it is much easier to double check inference rules for correctness than to read lines of code (and likewise the reader doesn't need to know Lean to understand the rules). I also find typesetting inference rules to somewhat difficult and tedious, but writing them in Lean is much easier (likewise this also removes potential typos between the two different versions of the rules).

I still need to flesh out and cleanup the converter before I would consider it generally usable. I just couldn't resist showing it off right now though : ) Hopefully I will have it finished soon!

The LaTeX'd typing inference rule for variables. Similar to the Lean version, if an identifier/symbol

nomeata,
@nomeata@mastodon.online avatar

@thea @andrejbauer the branch at https://github.com/Wasm-DSL/spectec/pull/2 contains a working Lean formalization of the typing and evaluation relation generated from that Wasm spec. It's unfortunate it's not yet available on the master branch since a long while… but eventually I hope it will be, and then projects like your's can choose to target “the” official Wasm spec within lean, including compatibility with all the hopefully myriad of other wasm-related formalization projects.

nomeata, to random
@nomeata@mastodon.online avatar

Exited to start a new job working on at @leanprover tomorrow:
https://www.joachim-breitner.de/blog/809-Joining_the_Lean_FRO

nomeata, to github
@nomeata@mastodon.online avatar

Squashing your Github PR (if that’s what the project you want to contribute expects) is surprisingly annoying. So I created https://squasher.nomeata.de/ to do it for you.

nomeata, to random
@nomeata@mastodon.online avatar

Why do some project maintainers send a PR back to you as ”approved, but please merge” instead of pressing the Merge (Squash) button? Why doesn't GitHub doesn't allow branches to be squashed from the UI (and thus on the go as I get the please-squash? Why am I ranting about PR processes on Saturday night… ah, right: because that at least I can do.

nomeata,
@nomeata@mastodon.online avatar

@angerman Right, the project owner can do that, while merging, and they have to then craft the commit message.

But if the project owner asks the contributer to squash, they have no option than to use the command line.

I just wrote half a Github App that squashes a PR branch for you. If I have to do this more often, I’ll make it usable.

nomeata,
@nomeata@mastodon.online avatar

@angerman And writing a Github App is silly in the sense that it could be a purely static page running only in the user’s browser, if Apps didn’t need secrets. Now I’d need to host it somewhere.

nomeata,
@nomeata@mastodon.online avatar
nomeata, to random
@nomeata@mastodon.online avatar

The GHC Steering Committee has accepted Adam Gundry’s proposal to redesign the HasField type class:
https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0583-hasfield-redesign.rst

sperbsen, to random
@sperbsen@discuss.systems avatar

Aaarrglll ... es heißt nicht "dringt”, Leute, "drängt” … "DRÄNGT”!

nomeata,
@nomeata@mastodon.online avatar

@sperbsen Gut gemeint, aber es dringt nicht durch.

nomeata, to random
@nomeata@mastodon.online avatar

Finally I can use flakes in directories with spaces!
https://github.com/NixOS/nix/issues/6394
(As soon as that fix makes it into a nix release, I mean)

nomeata, to random
@nomeata@mastodon.online avatar

I am still utterly confused why Github Actions defaults to silently checking a synthetic merge state with the target branch, instead of just checking the state of the PR as shown under “Files”? It is super confusing if things work locally but are red in CI – or the other way around.
(Yes, without “strict merges” enabled, just checking the state of the PR is not enough either to safely merge… but that’s what strict merges are for!)

nomeata, to haskell
@nomeata@mastodon.online avatar

At my talk at I claimed that with observable sharing one can write a parser combinator library where left-recursion works (in the presence of sharing), and someone asked if I had, and I had to admit I hadn’t, so the next day I did:
https://www.joachim-breitner.de/blog/807-Left_recursive_parser_combinators_via_sharing

sandro, to NixOS
@sandro@c3d2.social avatar

nix-output-monitor is recommend by Sandro: "I recommend it"

https://cdn.infobeamer.com/dynimg/blob/image

nomeata,
@nomeata@mastodon.online avatar

@sandro how did that picture end up on infobeamer.com? (Just curious)

nomeata,
@nomeata@mastodon.online avatar

@sandro I’m just amused to see this backed by infobeamer, which was a project that began for the yearly CCC Karlsruhe event a long time ago, and I think I even contributed back then. Good to see it pop up in another context!

  • All
  • Subscribed
  • Moderated
  • Favorites
  • megavids
  • kavyap
  • thenastyranch
  • mdbf
  • DreamBathrooms
  • InstantRegret
  • magazineikmin
  • Youngstown
  • cisconetworking
  • slotface
  • vwfavf
  • everett
  • Durango
  • rosin
  • tester
  • GTA5RPClips
  • khanakhh
  • osvaldo12
  • ngwrru68w68
  • normalnudes
  • anitta
  • ethstaker
  • cubers
  • modclub
  • tacticalgear
  • provamag3
  • Leos
  • JUstTest
  • All magazines