HackerTrans
TopNewTrendsCommentsPastAskShowJobs

dunham

2,561 karmajoined 17 jaar geleden
I'm a Seattle area software engineer. I've worked on both front end and backend for a couple of decades using C++, Java, and Typescript.

I'm interested in programming language theory, compression, and cryptography. Recently I've been helping out with the Idris2 language and wrote the dependent typed language Newt.

I'm currently looking for new opportunities (local or remote).

https://dunhamsteve.github.io

comments

dunham
·5 dagen geleden·discuss
Not exactly removed, the feature was still there, but could be used only if your module was in Elm namespace (the compiler checked). It was kind of a "no soup for you" situation, which bothered me.

Elm served its purpose for me - an example of a small language with great tooling and error messages. And the strictness was helpful in learning to do things the "proper" way in the Elm model, even if I did reach for escape hatches in later projects. E.g. writing a notion-like application in Elm, I had to walk through my data twice - once to render it and another time to collect cache misses. With hyperapp, I broke purity a little and accumulated the information on the side.
dunham
·9 dagen geleden·discuss
On the last exercise of world 6, rewrite the highlight, "cw" leaves the "a" at the end of the line. Both "c$" and "C" work. I didn't know about "C" until I read the web page - I've been using c$ for that.
dunham
·15 dagen geleden·discuss
Is this related to web2js[1], which has been around for a while? It compiles the pascal code of TeX to wasm.

It looks like the live demo is no longer up, but it did run latex in the browser and render the dvi output to html. The wasm for TeX is about 495kb / 88kb compressed, but the memory image for LaTeX was a bit larger.

[1]: https://github.com/kisonecat/web2js
dunham
·16 dagen geleden·discuss
> God I miss the old internet.

I recently discovered that the author of gzip still retains that 90's feel on his home page: http://gailly.net/
dunham
·17 dagen geleden·discuss
Back in the 90's I had a Matrox card that would crash the machine if the hardware cursor changed at the wrong time. I think it was related to VBI, but it's been a while.

Linux resolved this issue, but to work around it on windows, I changed my cursor to an animated dinosaur, which was built into the OS and had the side-effect of disabling the hardware cursor.
dunham
·25 dagen geleden·discuss
ublock origin lite is blocking a bunch of stuff for me, and things are unbearable when I turn it off.

For many sites, especially news sites, I toggle javascript off. It's reasonably easy to do per site in chrome (click left of location bar and "site settings"). I don't know if there is an easy way to do this per site in firefox.

So far I've stuck with chrome for a few reasons:

- Mozilla doesn't implement desktop PWA and has cancelled the project. I use this. - Mozilla was using about twice as much memory as chrome. (I need to revisit this, Chrome seems to have gotten fatter.) - Safari is a royal pain to write your own extensions (last I checked you need to create an application and bundle the extension into it). - I like the multiple profiles in Chrome to sandbox things like my google login. There may be a firefox equivalent, however.
dunham
·vorige maand·discuss
I probably should have clarified that I'm on an M1 then (a macbook pro, so there is a fan). I didn't realize the newer ones get warmer.
dunham
·vorige maand·discuss
I've found that Baldur's Gate 3 will warm up my apple silicon (everyday tasks do not).
dunham
·2 maanden geleden·discuss
For context - the top answer was written by Bill Thurston, who was awarded a Fields Medal. (Kind of like a nobel prize for mathematics.)
dunham
·2 maanden geleden·discuss
I don't see how this is going to work when every application decides to ship and run a 4GB model, competing for video memory. It's going to be the Electron problem times 10.
dunham
·2 maanden geleden·discuss
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.
dunham
·2 maanden geleden·discuss
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.)
dunham
·2 maanden geleden·discuss
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.
dunham
·3 maanden geleden·discuss
Yeah, I think Swiss French had more? (It's been about four decades since I took French, and high school classes are not very effective.)
dunham
·3 maanden geleden·discuss
Historically, quite a few languages were (or are) vigesimal. Perhaps decimal is also unnatural.
dunham
·3 maanden geleden·discuss
There is an app for that, too: https://michelf.ca/projects/sim-daltonism/

It has a little window you can move over the screen to simulate a few varieties of color blindness.
dunham
·3 maanden geleden·discuss
The other day they blocked me from accessing Kagi's web site because I was using Kagi's web browser.
dunham
·3 maanden geleden·discuss
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.
dunham
·3 maanden geleden·discuss
> and need to be prepared to manage things like upgrading firmware

At one point in the early 2000's, my brother was soldering new capacitors onto dell raid cards. (I like to call that full-stack ops.)
dunham
·3 maanden geleden·discuss
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.

Jane street briefly summarizes some options here: https://blog.janestreet.com/breaking-down-frp/

And they have an interesting talk on the trade-offs and how their own system, incremental, evolved: https://blog.janestreet.com/seven-implementations-of-increme...