645 karma · joined November 8, 2020
Same sentiment for my washer/dryer. Bought an older (used) set for $300, They have lasted 7 years so far, which is in addition to however long they were in use before: I would guess at least 7 more.
Seems like lots of people lament how things like cars, refrigerators, washers, etc. are becoming less mechanical and more electronic. Maybe there's a market for "bespoke" mechanical items.
- Book called Compact Data Structures by Gonzalo Navarro https://www.cambridge.org/core/books/compact-data-structures...
- Ben Langmead's YouTube channel https://www.youtube.com/@BenLangmead
- MIT Open Courseware https://ocw.mit.edu/courses/6-02-introduction-to-eecs-ii-dig...
- Stanford lectures https://www.youtube.com/playlist?list=PLv_7iO_xlL0Kz2nU05COp...
It’s pushing me out of my comfort zone. For example, leading me to improve my math skills in order to understand some of the concepts and notations that are used in research papers. Also gives me some context into learning C, a language which I consider low-level as a web developer, and it’s been fun to have to think about things like memory management, along with other things I don’t generally need to consider. It gives me an appreciation for when I’m writing high level code like Elixir or JS, etc.
Compression, which I’d say is an application of information theory is just really interesting to learn about for some reason.
- Tab completion (obviously). Not only for functions/modules/bindings that are in scope, but also when you're in a string and begin typing a path, it will complete the directory names and stuff.
- You can type "h" before a module or function name to read the docs. Similarly, you can do the same with "t" to see type information.
- History of what you've executed, and also a reverse history search feature.
- Not fully "readline compatible", but some basic, standard key bindings work.
- Plenty of handy helper functions.[2]
At first the constraints may be difficult to grasp. You may feel like a feature is missing, but that's part of learning a language. Once you have learned them, the constraints actually become helpful.
One thing I dislike about JS is that it's like the wild west. You have a mash-up of all different paradigms that are possible, so you get libraries like this. No, I wouldn't say this makes code more readable, though I'm a fan of the pipe in other languages. It just makes yet another way to do the same thing.
I don't mean to be rude or ranty, so with that said, it's cool that you were able to make this. Kudos for that.
It’s also interesting to read so many comments of people doing similar things.
For my own site, I find that I want an SSG tool that is simple, intuitive, and stays out of the way. With these goals in mind, I have been able to slowly improve my tool over and over. It’s been awesome to be able to do more using less.
Totally agree with this. I prefer to not use aliases most of the time, or to explicitly list out each module path separately if they are too long to fit inline. All preferences though.
> Similarly, I don’t like comprehensions as everything they do can be achieved with functions, and they are not composable.
I don't use comprehensions too often, but I would miss them if they vanished. Some things are just plain easier with them. They are also valuable in unit tests to show better error messages[1]:
# Don't do... assert Enum.all?(posts, fn post -> %Post{} == post end)
# Do... for post <- posts, do: assert %Post{} == post
EDIT: Although I suppose you could just use Enum.each as well.
I wonder if this "first step" is Burrows-Wheeler Transform?
Side note: In Silicon Valley (the show), I'm pretty sure that Richard has a picture of David Huffman by his bedside.