HNHacker News
TopNewBestAskShowJobs

nnadams

229 karma · joined October 30, 2019

nick at mutablemango dot com
submissionscomments
nnadams··on Ask HN: Go deep into AI/LLMs or just use them as tools?
We have a service at work which categorizes internal documents and logs, then triggers some automation depending on the category. It processes maybe 100 per day. Previously we only used some combination of metadata, regex, and NLP to categorize. Now a call to a LLM is part of that service. We save a lot of manual time where we used to have to resolve unknown documents. The LLM can help fill out missing data, too. It's all stored as annotations so it's clear who/what edited the data.

Granted this is a pretty simple task and a low stakes scenario, but I don't think we should limit ourselves to assuming AI will always only be dev tooling.

nnadams··on Kokoro WebGPU: Real-time text-to-speech 100% locally in the browser
Yeah this only worked with Firefox on my phone. All other browsers generated a screechy noise instead.
nnadams··on ZFS 2.3 released with ZFS raidz expansion
I used Btrfs for a few years but switched away a couple years ago. I also had one or two incidents with Btrfs where some weirdness happened, but I was able to recover everything in the end. Overall I liked the flexibility of Btrfs, but mostly I found it too slow.

I use ZFS on Arch Linux and overall have had no problems with it so far. There's more customization and methods to optimize performance. My one suggestion is to do a lot of research and testing with ZFS. There is a bit of a learning curve, but it's been worth the switch for me.

nnadams··on C++ is an absolute blast
Kudos for one of the most relatable descriptions of C++ I've read.

I did a couple years writing C/C++ professionally, and I hope to not go back to that. Too many hours debugging other people's code, suffering vague integration issues, and just trying to get the build system spaghetti to run.

nnadams··on Hacker's Delight
I have fond memories of reading this book as a teenager. I was watching an introduction to computer science course online. I think maybe from Yale or MIT, and the professor recommended Hacker's Delight. It was a beginner class teaching C, and I mostly only had experience with BASIC.

Back then I barely understood binary, and pointers completely confused me. I remember most of the book feeling like a collection of magic tricks. Sometimes I pull it out to rekindle that sense of wonder.

nnadams··on Unreal Engine 5 ported to WebGPU
I enjoyed this particular WebGPU tutorial last weekend. Nice introduction even if you've never programmed a GPU before.

https://codelabs.developers.google.com/your-first-webgpu-app

nnadams··on Ask HN: Is (n)vim worth the trouble?
I think it is completely worth it to learn the Vim editing commands. You can get a lot of the benefits from just turning on Vim-mode in VSCode or IntelliJ. Emacs with Evil mode is an improvement in my opinion as well. The quick line editing, moving around the file, etc etc smooth out your programming experience a lot.

If you're working a lot with text, Vim macros are great. I'll regularly go into Vim as kind of a text workbench.

If you want to try an auto-updating Vim suite, check out LazyVim [0]. The defaults are great, and there's a lot of features with absolutely zero configuration.

[0] https://www.lazyvim.org/

nnadams··on The elderly are becoming homeless at a rate not seen since the Great Depression
Yes unfortunately. There are TikTok "challenges" go slap your teacher for example. Similar to the "challenges" where you should eat a spoon of cinnamon, eat a Tide pod, etc. There's an air of do this and film it for clout. Most kids roll their eyes as well of course, but there are people who follow along.
nnadams··on Minecraft Wiki has decided to leave Fandom
The side-by-side view in that article is the key user experience reason to leave. The Fandom wiki sites tend to be slow and covered in ads. I avoid them if possible. I'm glad to see more and more groups take their wikis back.

The Runescape wikis left Fandom a few years ago. The improvement to quality and features has been massive. I'm not sure how much traffic the Minecraft wiki gets, but the Runescape wikis got over a billion page views in 2021 [1]. These are not insignificant losses for Fandom.

[1] https://weirdgloop.org/2021-year-in-review/

nnadams··on Why Perl?
I like short articles in general, but this one is short and shallow, plus subjective without explanation as you mentioned.

I spent too much time trying to guess at the author's reasons. Why are Python and JavaScript not extensible but R is?

nnadams··on Ask HN: How do you find time for everything in life?
I agree with this method. In high school I tracked what I did every hour for 3 months. Probably over the top, but seeing the hours add up of watching TV--or just killing time--was what I needed. All these years later that exercise stays with me.

The trick for me was to only be able to see one day at a time until the end of the month. I would record a day and think "I'll do better tomorrow." Only to realize that today is always yesterday's tomorrow.

nnadams··on Ford Hires 550 Former Argo.ai Engineers, Creates Latitude.ai
When I was working at Ford a few years ago, many Ford engineers worked very closely with Argo engineers. Sharing code or data was common, they used our internal tools, and sometimes we would go in-person to troubleshoot with them. A lot of their employees had come from Ford, and so they knew who to call and even already had our numbers.

All that to say I'm not surprised to see they hired back many of those people. Ford is a large company and Argo felt just like any other team within the company at times.

nnadams··on The Janet Language
I've been using Lisp for hobby projects for a few years. Yes the syntax takes some time, but

> I feel like if I used it, it would atrophy my skills in other more traditional languages.

was not the case for me at all. If you go into a text editor and remove all the parentheses, I find that's how Lisp programmers tend to see Lisp, (function argument) isn't that far from function(argument).

Learning Lisp has only improved my skills as a programmer, after getting ideas like code as data, macros, let over lambda, CLOS and the metaobject protocol. It's a simple model that to me shows how other languages have picked an abstraction and stuck with it, but Lisp has all the tools to implement those abstractions and more.

More mainstream languages are great at focusing the developer, and that makes them very practical. It is amusing though to watch many of the "new features" in languages come out even though Lisp had them years ago.

nnadams··on Ask HN: Any low code frameworks on top of Django?
I'm also interested in something like this. I've been considering writing one because I already start most projects with djangobuilder.io, which generates a project, models, and test skeleton. I've found that very useful when I have a lot of models.
nnadams··on Ask HN: Is it a bad time to apply to FAANG companies?
I can second this one. Not necessarily your personal time but at least once your assigned work is on track or completed. Not rare to hear people say "this past weekend I was playing around..." though.

If you have a good idea for a feature, product, or a new system to improve your team, it's unlikely there will be time in the schedule for it. In my experience you spend your extra time playing around, show it off, and wait for a decision maker to take interest.

Like the original comment said, I've personally never seen someone be assigned time to innovate from scratch. Once a POC already exists folks jump on the bandwagon though.

nnadams··on Ask HN: How do you read an academic paper?
My usual first steps are to read the title, the abstract, and the figures/tables, in that order. Pause there and mentally summarize what I just read. If there are terms I didn't know or I'm not familiar with the topic, then I go through the introduction parts of the paper. After that I read the discussion sections and conclusions. I usually skip the methods sections and read those last only if needed.

All during that I try to keep track of questions I have or claims the authors are making. Once I've gone through a lot of the paper, I go back and look for answers to my questions. Interrogate the paper until you are convinced.

I remember being younger and getting stressed about reading papers. So I want to add that not all paper are well written. Don't worry if you're struggling. It's not easy in the beginning and the papers themselves aren't perfect. Keep working at it because it does get easier!

nnadams··on Paizo Announces System-Neutral Open RPG License
> Ultimately, we plan to find a nonprofit with a history of open source values to own this license (such as the Linux Foundation).

I'm not sure if the Linux Foundation is just a relevant example here or an actual contender to be the steward.

I kind of hope it's the latter. TTRPG rules are close enough to code right? Structured instructions executed by humans with some flavor text at least.

nnadams··on Why I'm still using Python
End to end tests mostly. Those were kept static throughout the process as a baseline and for benchmarking. That let us have simple metrics like "test 1 had a 100x speed up" and "test 3 took a way too long to finish before the rewrite."

Any unit tests got rewritten along with the test's relevant code. Now that we are sticking with this Go based solution, adding more unit and regression feels more reasonable now.

nnadams··on Why I'm still using Python
I have embraced this workflow completely. I used to be more concerned about which language, but now I find I much more useful to just start immediately in Python. I spend most of the time working out the kinks and edge cases, instead of memory management or other logistics. Maybe ~75% of the time, that's it, no need for further improvement.

Recently I chose to rewrite several thousands of lines of Python in Go, because we needed more speed and improved concurrency. Already having a working program and tests in Python was great. After figuring out a few Go-isms, it was a quick couple of days to port it all for big improvements.

nnadams··on Why I'm still using Python
A group of researchers published a paper on this topic, "Energy Efficiency across Programming Languages" [0]. They have tables listing the relative energy usage and memory consumption.

It's just one paper of course, but the energy results weren't too surprising. C was the baseline. C++, Rust, and Java close behind. Languages like C# and Go near the middle, and then Python, Ruby, and Perl at the bottom for most energy used.

[0] https://greenlab.di.uminho.pt/wp-content/uploads/2017/10/sle...

nnadams··on Why I'm still using Python
Nim [0] might be one similar example. Similar syntax as Python and trying to be just as extendable as Lisp.

[0] https://nim-lang.org/

nnadams··on Writing a Mini-CDN to Learn Nginx/Prometheus/Grafana/Lua
Is it possible for CDNs to cache per URL per user? I'm thinking of something like /favorites where one URL would list something different for everyone. When I've setup caching on backend it was keyed off the user.

This was a very informative read!

nnadams··on Did insurance fire brigades let uninsured buildings burn?
A great example of the confusing reality that the words "inflammable" and "flammable" mean the exact same thing.
nnadams··on A few examples of Lisp code typography (2013)
I always recommend Make a Lisp [0]. It's a guided experience creating a Lisp in whatever language you already know. If you go through all the steps, you'll have created a self hosting Clojure-like Lisp.

For me implementing a Lisp piece by piece helped me better understand its core ideas.

[0] https://github.com/kanaka/mal

nnadams··on Ask HN: How do I find my “purpose”?
I haven't read that book, but yes exactly! I wish I had the ability to remove "find your purpose" from our language. You can't find a purpose or passion lying around. You can't take someone else's. You have to build it up yourself slowly over time.

I started writing code when I was young, and I decided early to be a software engineer early in my life. I often heard comments like "wow you found your passion so young!" I feel like that "found" thinking ignores all the time spent coding and messing around on computers. Also all the things I didn't do with that time. Kids probably have a few cheat codes, but I think most adults can set aside time and plan to do the same types of things.

At the end of the day, I think building a passion is an investment in yourself. It's something that does cost a lot of time and effort. It's worth searching around and trying new things, but don't let yourself just flip through a "purposes" list. Trust yourself to build a purpose worth your time.

nnadams··on Ask HN: How do layoffs in the US work?
I was wondering the same. After some searching, I think it's a shortened version of this: https://idioms.thefreedictionary.com/get+a+wild+hair+up+some...
nnadams··on Ask HN: As an entry-level programmer, when can I put a language on my resume?
Personally I would suggest removing that kind of section entirely. The problem is those adjectives will never be consistent from one person to another. Focus on what you've done, the tools you used, and the impact it had.

There may not be a massive impact, outside of yourself, and that's okay especially if you're learning. It's still useful to say what's different after your work.

nnadams··on Build your career on dirty work
> Understand the ins and outs of the problem. Then go down the rabbit hole of getting hands dirty.

Yes, I think this nuance is somewhat lacking from the article. Do not sign up for every on-call shift or only do QA work all day. That's how you can become "that person," and you'll just watch your team expect that from you.

If you're early in your career, my suggestion is do different kinds of dirty work, switch it up as much as possible. Get a feel for as many as different things as possible. Then you'll be better prepared to leverage that knowledge, and you'll know when it's worth going down that rabbit hole.

nnadams··on Build your career on dirty work
> The lamentable work that many people avoid are great places to look for high impact, low hanging fruit.

Agree with this. When it comes to succeeding at work, especially at a big corp, I've always said something similar: after responsibility is abdicated, opportunity remains. Being annoyed at the present is often a position of power in the software world. Suddenly you have motivation to drive change and a bit of knowledge to get started. Of course you need the time and the freedom to use that.

One way I try to spend time doing the dirty work is by over-estimating. It's taken many years to really learn this, but I now over estimate tasks by quite a lot. This helps me not feel rushed, feel good when I deliver early, and gives me time to look around and improve something. Reflecting on previous tasks and what was annoying or oft repeated has helped me improve my process.

nnadams··on How to Get into Tabletop RPGs
I've gotten into solo roleplaying the last few years. I still play games with a group, but solo play has become an analog activity I enjoy.

You can play standard games like D&D solo, or use games designed to be played solo like Ironsworn [0]. Journaling games are another option that can be played alone or with friends, Thousand Year Vampire [1] for example. Lots of recent games have rules for a "solo mode" now.

The Mythic GM Emulator [2] is a simple way to play any game solo.

If this sounds interesting check out Me, Myself, and Die [3] to watch a high production value version of solo play!

[0] https://www.ironswornrpg.com/

[1] https://thousandyearoldvampire.com/products/thousand-year-ol...

[2] https://www.drivethrurpg.com/product/20798/Mythic-Game-Maste...

[3] https://www.youtube.com/watch?v=I9ag6U3a8eM

Page 1 of 2Next →