miniblog.

I've been thinking about making difftastic smarter about context. In principle it understands structure, so I could limit context to the enclosing definition. However, sometimes it's nice to see surrounding code. Line 644 isn't useful, but maybe 655 is. Opinions?
Photo
I've released difftastic 0.48! Highlights in this release: * Subword highlighting in replaced strings! This is a big improvement in many situations. * Better Scala parsing * Better Haskell handling
PhotoPhoto
A neat IDE feature from Typescript 5.2: it completes object field names even if the previous field doesn't end with a comma! Syntax recovery is super helpful sometimes.
@aburka Interesting, today I learnt. I don't know the history of this syntax: there doesn't seem to be much precedent for ^ as a range in any PLs that I can think of.
I struggle with dependency syntax. I never remember what ^1.2.3 means or how it differs from ~1.2.3. I believe both npm and cargo assign the same meanings to this notation, but it's less obvious than e.g. 1.x. 1.2.3 isn't an exact version constraint either!
One interesting technique to reduce the review burden in Home Assistant, a project with a large community: ask PR authors to review other PRs! Screenshot is from
Photo
A great deep dive on building GitHub's code view, optimising React, scaling to thousands whilst supporting both Ctrl-F and syntax highlighting:
Today I learnt about Solargraph, an LSP for Ruby which includes an impressive amount of type inference and type checking! https://solargraph.org/guides/type-checking Type signatures are parsed from doc comments, similar to JSDoc with TypeScript.
Sweep is a really impressive demo of LLMs with coding: given your source code and an issue, it will generate a PR! Example: https://github.com/edreisMD/plugnplai/issues/65 I'd want to have a really thorough test suite if I was accepting LLM PRs though.
Steve Jobs famously asked for smooth scrolling (i.e. not line-by-line) in a Smalltalk demonstration and they changed the UI live. Here's a lovely 2 minute YouTube video demonstrating that modification: https://www.youtube.com/watch?v=eEz08IlcNMg
Here's a tricky diff situation I haven't seen before: a minimal text diff can be ugly. It would be nicer to match line 6 on the left with line 3 on the right, so the removed region is contiguous. (git-diff handles this case nicely already.)
Photo
Structs are great in Rust, but sometimes I find them a bit heavyweight. There's a little more syntax than e.g. OCaml, for type definitions and usages. I end up using more structs (records) in OCaml as a result. rust-analyzer has "convert tuple to named struct", which helps.
I've realised that my favourite side projects all have fiddly bits. It's really nice to have small features that you can add or debug in a few minutes.
> If you work on PLs long enough, you will develop a finely honed skill at creating bizarre programs like this that are technically valid but likely to trip up an implementation written by someone with a less perverse imagination than you.
I've written CLI programs, GUIs, websites, but never a smartphone app. I suspect it would be tricky: playing with your WIP app on a laptop doesn't feel the same as loading it on a handset. Have you ever written a smartphone app to scratch an itch? How was it?
Showing 421-435 of 7,611 posts