TIL there are multiple developer tools called asdf!
(1) https://github.com/fare/asdf (Common Lisp build tool)
(2) https://asdf-vm.com/ (manages installed PL runtimes, like a generic nvm or rbenv)
I'm surprised multiple folks like the name, I'd worry that it's easy to forget.
miniblog.
Difftastic 0.24 is out!
* Languages: Added Dart and improved Clojure
* Display: Fixed a ton of corner cases, and added a warning when comparing a file with itself(!)
* Performance: Improved large files or comparing directories
It's hard to demonstrate how difftastic works in screenshots, so I've prepared a <60 second ASCII screencast of usage!
(Feedback welcome.)
Dogfooding difftastic: comparing the results of the sample files using difftastic.
So I'm diffing the results of my diff tool by using my diff tool :)
Rust has a ton of ways you can convert a &str to a String: .into(), .to_string(), .to_owned().
I'm never sure which one reads best. Maybe .to_owned() shows your intention the most clearly?
Integration tests are inherently scary. You want to make them as similar as possible to your production environment, which massively increases the risk that one day they will talk to production directly.
If the latest version is the cutting edge or even bleeding edge, would a legacy version be a dull edge?
Let's Be Real About Dependencies: https://wiki.alopex.li/LetsBeRealAboutDependencies
Contrasting C/C++ dependencies with languages with first-class packages (Rust, Go, JS) and finding similar level of dependencies! Perhaps modern package managers just make this more obvious.
After thoroughly confusing myself for a minute, I've added a feature to difftastic to warn you if both arguments are the same.
With hindsight, I should have done this much earlier.
Sometimes I suspect you could send a pull request to any project replacing `foo` with `foo + 1` anywhere by saying "fix off-by-one error". `foo + 1` rarely looks wrong.
Rust's Iterator interface is growing on me. I replaced a bunch of `i += 1; foo.get(i)` loops with explicit calls to `.next()`. It's less code and easier to reason about.
A delightful suggestion from the Rust compiler: you have no field of that name, looks like you need to access it via another field!
Adding a snazzy compiler error is a rarely used feature (in each individual case), but it's wonderful when you hit that case.
I'm beginning to think this last sentence was a mistake. Lots of software fixes crashes in new versions.
Perhaps I should have a "N releases since last fix for a crash" count?
Difftastic 0.23 is out! I've been tuning diffing and display and I think the results look fantastic.
* Parent delimiters are modelled accurately
* Display uses blank lines as an alignment hint
* Textual diffing is way faster too!
Anecdotally, I've noticed more frequent doc comments in languages that put them inside the function (e.g. Python, Lisp) rather than outside (JS, Rust).
Perhaps it's easier to write the rough signature before the explanation?
Showing 271-285 of 384 posts











