This is my discussion blog. The way it works is that when any pages in this wiki have a discussion page created for them, the discussion pages show up below. Also, any comments on my blog posts also show up here.

Cool idea
Thanks for showing me a new way to annoy my co-workers. People could probably just create a new clean git repo without any history, but it's still a cool idea!
Comment by chris
it might be a variation of TOCTOU


I think what you found might be a variation of TOCTOU - time of creation, time of access.

For example (although slightly different, but it's the same underlying idea):

Comment by cwk
comment 3

@alex safe-exceptions and unliftio use uninterruptibleMask in its async safe bracket. Which is ok if the cleanup action is fast, but does risk the program not responding to ctrl-c if the cleanup takes a while for whatever reason.

As well as SIGINT, there's also the possibility that an async exception is thrown for some truely exceptional circumstance, like a segfault. Most code would do well to exit immediately on such an exception, not mask it.

I wonder if there's a way to make an uninterruptibleMask that masks only a specific async exception, eg the AsyncCancelled exception. Probably this would need ghc support, if it's possible at all.

Comment by joey
comment 2
As alex said, safe-exceptions may help. There was a series of blog posts a few years ago about async exceptions: (I think that is the last post)
Comment by gueux+joeyh
comment 3


Sectioning using "article" is helpful, as they provide semantics about the web page layout, but they are not considered to be a navigational landmark, so not all screen readers support navigating by "article" sections. From ARIA: article role

"Articles are not considered a navigational landmark, but many assistive technologies that support landmarks also support a means to navigate among articles. ..."

"header" elements are turned into navigational landmarks when they are descendants of the "body" element and this type of landmark is the "banner". They are the converse of a "footer" element which transform into "content info" landmark when it is directly child of "body". As navigational landmarks they are just meant for the whole page and not for individual sections of the page.

In Section 4.1 of WAI-ARIA Authoring Practices 1.1 is described which HTML semantic region elements get turned into aria landmarks.

Finally, headings are what most screen readers go to first for navigation of a web page. So for those reasons I'd recommend making the article titles headings. If you don't want to literally make them a "h1-6" because it would mess with your CSS then you can just set aria attributes which will change how the page is understood by assisstive tech but not affect any visual rendering of the page. a role="heading" aria-level="2"Lemons/a (using _ instead of angular brackets)

More info on heading role

Comment by samuel.kacer
comment 2

@samuel.kacer, the sections of the blog are inside html article tags, and the heading of each is inside a html header tag. That seems like sufficient semantic information to me..

I guess what I'll suggest is, if there's some reason that's not sufficient, you file a bug report on which is what the blog uses.

Comment by joey
thanks for the alt text for graphics


I just stumbled onto your blog yesterday while searching for information on FRP in Haskell. Really cool stuff using Haskell for home automation in embedded systems!

I just wanted to post a comment because I noticed you include nice alt text on your images, which I greatly appreciate as a blind person. One other note on accessibility is that navigating around your blog would be easier if the article headings were some sort of HTML heading like

. Screen readers give shortcuts for jumping between different headings, so having sections of a webpage of intrest start with headings means as a screen reader user I could very easily switch between them instead of scrolling through the whole article before finding the beginning of the next one.

Just thought I would mention it since it seems you already care about accessibility.

Oh and happy late birthday!

Regards, Sam

Comment by samuel.kacer
comment 18

Startech ST4200USBM.

But uhubctl's home page has a good list of all known usable hubs, many much cheaper.

Comment by joey
comment 1
This is really useful, thank you for building it. I've been using it myself and recommending it to others.
Comment by jon+joeyh
Excited to try git-annex

git-annex seems really cool! I'm one of those users who has large repository of source files I want to track with "vanilla git" and one subdirectory of very large files I want to manage with git-annex. Pardon me if this is mention elsewhere, but how can I set up git annex v7 to only annex files I explicitly "git annex add" and otherwise leave "git add" unchanged?

Thanks for all of your hard work. Your many projects and experiments in off-grid living are an inspiration.

Comment by pannekoek
comment 2

There's a more general library that could be factored out of arduino-copilot, perhaps, to support other micros that don't use arduino sketches being programmed FRP style.

I don't know if bSpokeLight's image processing could be done in the Copilot DSL. Maybe.

Comment by joey
8051 too?

It might be fun to use this to reimplement the C code that I wrote for

Comment by mail