I recently saw this with the logseq api - the published api was an auto-generated stub. So I tried to grep the source code for the function and found detailed documentation written for claude. So I guess one benefit of all of this is that it's making people actually document things and maybe plan a little bit before implementing.
Yeah, I think that's what the program creates in your github account. I see the source to those files embedded in the executable. (I'm not running the executable, but I downloaded the linux one to my mac to take a look inside.)
For caveman debugging, if I'm not sitting in a monad, I usually reach for something like Debug.Trace. Typically that's in Idris or my own language, but I see that haskell has it too.
For my own language, I have the syntax highlighting set to put the `trace` keyword in red, so I can easily clean up.
French speaker here. (My native language is English but I learned French in France years ago, and can still speak it with near-native fluency). You're correct. French French (that is, French spoken in France, it's slightly confusing that the language's name and the country's adjective are the same) goes "cinquante, soixante, soixante-dix, quatre-vingts, quatre-vingt-dix, cent". In English, that would be "fifty, sixty, sixty-ten, fourscore, fourscore-ten, a hundred". But Swiss French goes "cinquante, soixante, septante, octante, nonante, cent", which would translate to English as "fifty, sixty, seventy, eighty, ninety, a hundred".
I was bit by this years ago when our test cases failed on Linux, but worked on macos. pdftotext was behaving differently (deciding to merge two lines or not) on the two platforms - both were gcc and intel at the time. When I looked at it in a debugger or tried to log the values, it magically fixed itself.
Eventually I learned about the 80-bit thing and that macos gcc was automatically adding a -ffloat-store to make == more predictable (they use a floats everywhere in the UI library). Since pdftotext was full of == comparisons, I ended up adding a -ffloat-store to the gcc command line and calling it a day.
I know it is out of scope for this article, but there are variants where the operations are monadic rather than applicative and the shape of the graph can change depending on values. And also variations with state - where history can be taken into account.
I've been using birdnet, but it seems to want an internet connection to do the identification and sometimes that is dicey when there is a bird that I want to identify. (Also birds seem to shut up around the time you get the app open.)
I'm going to give Merlin a try - the app has UI to download the network for offline use.
Requiring an internet connection for a nature app is absurd. As annoying as it is I get why a big tech company like Google fails at this sort of thing, many of their employees probably never leave a city and so the products always work well for them. But a nature app has no excuse, normal usage will get blocked by that all the time.
That's what Merlin is for but it's a ~450mb install. BirdNet is only a ~30MB install and birds are everywhere, so what's wrong with having an online option for most people who spend most of their time within range of a cel tower?
reply