This line in the opening paragraph really rubs me the wrong way: > “I'm ashamed to say most of my Elixir education has been through trial and error, figuring things out as I go along“ This attitude is so prevalent in software as if we are all supposed to be divined with programming knowledge the moment our IDE spins up. In every other industry that’s exactly how you learn: Get your hands dirty, make mistakes, and fix…
There's a middle ground between (relatively) blind trial and error and being divinely granted insight. Deliberate reading of documentation (be it API, language standard, books, tutorials (better ones), etc.) lets you learn without just trying things or piecing a theory together from examples (underdocumented ones that don't explain the why of their choices).
Elixir GenServer Explained
51–60 of 91 posts
Re: Elixir GenServer Explained
#52Earlier quoted context omitted.
What? GP's response is terse but not impolite, and explaining what an abbreviation means is a far cry from "smacking people with tribal knowledge", it's just table stakes explanation in a field which requires precision. The only reason modern computing got where it is today is by standing on the shoulders of giants. If we go back and re-litigate every naming decision of the past several decades just to make newcomers…
FWIW I thought the response was entirely fine and it wouldn't have occurred me to take offense at it. (I actually googled what "gen" in "GenServer" was supposed to mean before posting, because I couldn't remember but knew it wasn't "generate", and couldn't find an answer, including in the docs for GenServer) [EDIT] to clarify, I failed to find the answer in any of the Elixir docs for GenServer. Evidently I should hav…
https://hexdocs.pm/elixir/1.0.4/GenServer.html#content
`The advantage of using a generic server process (GenServer)`
current release (1.11.4), first paragraph;
https://hexdocs.pm/elixir/1.11.4/GenServer.html#content
`The advantage of using a generic server process (GenServer)`
Re: Elixir GenServer Explained
#53Earlier quoted context omitted.
I'm talking about the name GenServer, not brobinson's response. There is the corollary: If we have not seen farther, it is because giants were standing on our toes. There's a huge degree of cognitive dissonance on these issues. Just because something had a reason in the past doesn't mean we have to keep doing it forever. Also "nobody understands" why people keep re-inventing wheels. It's not all hubris, at least not…
I've been using Elixir for 4 years, it pays my bills and I generally like it. GenServer could be a misleading name (it never occurred to me) but the real mess is the bag of handle this / handle that function names. They follow the conventions of Erlang [1] but Elixir's developers could have cast some syntactic sugar on top of it. The real name of those functions is in their first argument. handle_* is mostly noise. […
Re: Elixir GenServer Explained
#54Earlier quoted context omitted.
FWIW I thought the response was entirely fine and it wouldn't have occurred me to take offense at it. (I actually googled what "gen" in "GenServer" was supposed to mean before posting, because I couldn't remember but knew it wasn't "generate", and couldn't find an answer, including in the docs for GenServer) [EDIT] to clarify, I failed to find the answer in any of the Elixir docs for GenServer. Evidently I should hav…
Version 1.0.4, first paragraph: https://hexdocs.pm/elixir/1.0.4/GenServer.html#content `The advantage of using a generic server process (GenServer)` current release (1.11.4), first paragraph; https://hexdocs.pm/elixir/1.11.4/GenServer.html#content `The advantage of using a generic server process (GenServer)`
Re: Elixir GenServer Explained
#55Earlier quoted context omitted.
You got downvoted, but I agree. "Gen" is very typically used as a shorthand for "generate", whereas I've _only_ seen it used as a shorthand for "generic" in the Erlang/Elixir world.
I have sympathy for gp. But also, naming things is hard. Wait till you dig deeper into the erlang rabbit hole and discover the undocumented gen module.
Examples: WebAssembly(neither web, nor assembly), Serverless (has a server, actually), JavaScript.
Re: Elixir GenServer Explained
#56This line in the opening paragraph really rubs me the wrong way: > “I'm ashamed to say most of my Elixir education has been through trial and error, figuring things out as I go along“ This attitude is so prevalent in software as if we are all supposed to be divined with programming knowledge the moment our IDE spins up. In every other industry that’s exactly how you learn: Get your hands dirty, make mistakes, and fix…
Re: Elixir GenServer Explained
#57Earlier quoted context omitted.
> What happens in any language where you batch stuff in memory? If the system breaks down, you lose that data. This isn't unique to Erlang/Elixir. A little over a decade ago I did a project using Erlang. My next project was using Ruby, and I was suddenly _horrified_ by the fact that I had no idea what would happen if the application crashed (and Ruby apps, at least in those days, crashed fairly often). Erlang/Elixir…
100% I consider the couple years I built systems in Erlang to be fundamental for me. It's affected, for better and worse, my entire approach to system design, at every level. It's meant the stuff I or (now that I'm in management) my teams tend to write is incredibly resilient (compared with the other teams in the department), but also meant that I have a really hard time with any Silicon Valley interview.
Re: Elixir GenServer Explained
#58This line in the opening paragraph really rubs me the wrong way: > “I'm ashamed to say most of my Elixir education has been through trial and error, figuring things out as I go along“ This attitude is so prevalent in software as if we are all supposed to be divined with programming knowledge the moment our IDE spins up. In every other industry that’s exactly how you learn: Get your hands dirty, make mistakes, and fix…
OP here -- I know what you mean. "Ashamed" is probably too strong a word. I think the feeling I was trying to convey was just that I'm not exactly an authority on Elixir, so take everything I say with a grain of salt, and nitpick away :)
Re: Elixir GenServer Explained
#59Earlier quoted context omitted.
What? GP's response is terse but not impolite, and explaining what an abbreviation means is a far cry from "smacking people with tribal knowledge", it's just table stakes explanation in a field which requires precision. The only reason modern computing got where it is today is by standing on the shoulders of giants. If we go back and re-litigate every naming decision of the past several decades just to make newcomers…
I'm talking about the name GenServer, not brobinson's response. There is the corollary: If we have not seen farther, it is because giants were standing on our toes. There's a huge degree of cognitive dissonance on these issues. Just because something had a reason in the past doesn't mean we have to keep doing it forever. Also "nobody understands" why people keep re-inventing wheels. It's not all hubris, at least not…
Re: Elixir GenServer Explained
#60In case anyone was curious what I used for the diagrams in this article, it was an awesome open source [0] tool called Excalidraw! [1] [0] https://github.com/excalidraw/excalidraw [1] https://excalidraw.com/
Excalidraw is a gem. I discovered it weeks ago, and cannot but praise it. The online instance is free and works really well, plus you have the possibility of hosting your own copy and be completely independent. I also saw that there is the possibility of doing collaborative real time drawing, but still did not try it. I have seen that the exported SVGs could be simplified (lots of repeated markup), and I am thinking…
Show HN: Eraser — Excalidraw-based visual meeting canvas - https://news.ycombinator.com/item?id=26330288 - March 2021 (8 comments)
One Year of Excalidraw - https://news.ycombinator.com/item?id=25608336 - Jan 2021 (19 comments)
Show HN: Create a Slideshow with Excalidraw - https://news.ycombinator.com/item?id=25081914 - Nov 2020 (1 comment)
Excalidraw whiteboard – easily sketch diagrams with a hand-drawn feel - https://news.ycombinator.com/item?id=23525648 - June 2020 (54 comments)
Building Excalidraw's P2P Collaboration Feature - https://news.ycombinator.com/item?id=22719576 - March 2020 (1 comment)
End-to-end encryption in the browser - https://news.ycombinator.com/item?id=22663435 - March 2020 (107 comments)
End-to-End Encryption in the Browser and how we did it in Excalidraw - https://news.ycombinator.com/item?id=22655009 - March 2020 (4 comments)
Show HN: Excalidraw – Sketch Hand-Drawn Like Diagrams - https://news.ycombinator.com/item?id=22146973 - Jan 2020 (6 comments)
Excalidraw – a whiteboard tool to sketch hand-drawn diagrams (excalidraw.com) - https://news.ycombinator.com/item?id=22104502 - Jan 2020 (3 comments)
Excalidraw – a whiteboard tool that lets you sketch hand-drawn diagrams - https://news.ycombinator.com/item?id=22101381 - Jan 2020 (21 comments)