HNHacker News
TopNewBestAskShowJobs

ryan-duve

768 karma · joined October 4, 2020

submissionscomments
ryan-duve··on Ask HN: Developer PC setup automations for company owned devices
I've never used Ansible. Is it worth using for just this workflow? I'm asking coming from a baseline of just having a Git-versioned shell script which has lines like

    brew install coreutils
and whathaveyou.
ryan-duve··on US FDA approves nasal spray alternative to EpiPen for allergic reactions
Yes, but in addition to the one at home we also have to buy a separate one to sit in the nurse's office all year. Also, if the before/after school program doesn't have access to the nurse's office, we have yet another one that sits in their cabinet, too.

They all come home at the end of the year, expire, repeat.

ryan-duve··on Ask HN: Resources about math behind A/B testing
Did you link the thing that you intended to for [1]? I can't find anything about "anytime-valid inference" there.
ryan-duve··on Debugging running Python scripts with PDB via GDB
I've had good luck with this with simple variables and native data structures list lists, dictionaries, tuples. But when I try it with something bulkier like a Pandas dataframe, I'm not able to make any sense of the stack and find what I'm looking for, which is usually the data.
ryan-duve··on Defense of Lisp macros: The automotive field as a case in point
> The only consistent explanation I've seen that it is about 'easy'. The other languages have tools to make them easy, easy IDE's, the languages 'solve' one 'thing' and using them for that 'one thing' is easier to than building your own in LISP.

I have thought something similar, perhaps with a bit more emphasis on network effects and initial luck of popularity, but the same idea. Then about a week ago, I was one of the lucky 10,000[0] that learned about The Lisp Curse[1]. It's as old as the hills, but I hadn't come across anything like it before. I think it better explains the reason "the best languages don't get adopted" than the above.

The TL;DR is with unconstrained coding power comes dispersion. This dilutes solutions across equally optimal candidates instead of consolidation on a single (arbitrary) optimal solution.

[0] https://xkcd.com/1053/

[1] http://winestockwebdesign.com/Essays/Lisp_Curse.html

ryan-duve··on The Illustrated Transformer (2018)
I gave a talk on using Google BERT for financial services problems at a machine learning conference in early 2019. During my preparation, this was the only resource on transformers I could find that was even remotely understandable to me.

I had a lot of trouble understand what was going on from just the original publication[0].

[0] https://arxiv.org/abs/1706.03762

ryan-duve··on Don't name packages common nouns
I once worked under someone who felt strongly about us importing modules instead of classes. So instead of

    from sklearn.feature_extraction.text import TfidfVectorizer
    tfidf = TfidfVectorizer()
we were told to change it to

    from sklearn.feature_extraction import text
    tfidf = text.TfidfVectorizer()
to be compliant. Guess what variable name everyone used to store document text in every file.

Until this article, I always blamed this on the decision to blindly import modules instead of... well... whatever makes sense. Now I'm realizing if we all avoid common names for packages then this whole class of issue goes away.

ryan-duve··on Show HN: Get your website copy and design roasted
Well done. For the spicy roast of

    https://www.dotnom.com
The response includes:

> Calling this site "Dotnom" makes sense because after visiting it, the only thing I'm left dotting is the 'i' in 'unimpressive.'

Most of the rest of the roast addresses atypical design choices, which is exactly what I'd expect to be focused on in a real roast. I really enjoyed this!

ryan-duve··on L(O*62).ONG: Make your URL longer
Ah, thank you. I figured it was broken.
ryan-duve··on Google conducts sweeping layoffs in its Cloud unit
> One employee said it was rumored that close to 100 employees in Cloud's GTM group in the Asia-Pacific region were cut. A Google spokesperson said that number was lower.

Is this what is meant by "sweeping"?

ryan-duve··on Root your Docker host in 10 seconds for fun and profit (2017)
For anyone turned off by the title, here's the first sentence:

> Disclaimer: There is no actual profit. That was just one of those clickbaity things everybody seems to like so much these days. Also, it’s not really fun. Alright, on with the show!

ryan-duve··on Linux as the new developer default at 37signals
I think the link was intended to point here: https://world.hey.com/dhh/linux-as-the-new-developer-default...
ryan-duve··on Try Clojure
I got what you described by learning Common Lisp just a few months ago. Do you think learning Clojure would get me something in addition to that or is it roughly the same?
ryan-duve··on Show HN: I built a digital menu creator that uses AI
Would you be willing to make a way that lets users try it without making an account? Or at the very least, make an account with an email address? Right now, I can't find a way to do anything without logging in with a Google account, which I prefer not to do.
ryan-duve··on What's Going on with ‘Nonplussed’? (2017)
This was one of my favorite "word of the day" entries, a word every speaker tries to work into their speech, at Toastmasters. The person who introduced it gave the two definitions and then basically said "it's the only word I know that means its opposite" or something to that effect. It got liberal use in every speech, including mine, and I still don't feel comfortable using it correctly.
ryan-duve··on The Internet Has Changed
From the title, I thought this would be melancholy. I'm glad you found a positive lens to view these changes through.

Did you ever tell the junior about the ticket?

ryan-duve··on GPT-4 Turbo with Vision is a step backwards for coding
I lean in the opposite direction. When someone random like a new neighbor initially asks me what I do, I say "I'm a coder at an insurance company". I teach fifth graders Python in an "Advanced Coding Club". When people ask me what I do for hobbies, one of them is "learning new languages to code with". I will only go into more detail if they are also technical and want more details about what it is I code.

I don't think of it as degrading the thing that I do. I think of it as boiling it down to the simplest description, and I find it more refreshing than "software developer" or "computer programmer" or f"{word} engineer".

ryan-duve··on How we communicate
I am curious how getting rid of Slack at a small company plays out in practice. Do people now just text each other on their personal phones? Or do they send emails to each other many times a day? How does someone ask "Hey, are you still coming to this meeting?"
ryan-duve··on Ask HN: Next 6 days in SF, AI meetup/coffee?
I'm in Connecticut, not San Francisco, so I can't meet with you this time. Just wanted to wish you luck meeting up with someone and let you know I will probably follow your lead if I'm in the same position as you and will drop an open invite here. Enjoy your stay in California!
ryan-duve··on After 7 Years of Reflection, I've Created a Cross-Platform Note-Taking App
When I try to test out the web app I get this error:

> Error: cannot find app using Client App ID 'onestickertesting-qslvg'

ryan-duve··on Coffee drinkers have much lower risk of bowel cancer recurrence, study finds
I'm curious about the numbers reported by the researchers that led to those results. Do you have any references to those studies you can share?
ryan-duve··on ESR to Torvalds: "You suffer the curse of the gifted programmer" (2000)
Wow, in 2000. I wonder what impact/response this elicited? Does someone have a mailing list link so I can read through the reply tree?
ryan-duve··on Reading "A Programmer's Guide to Common Lisp"
It's been a week so I can't edit my other response to this, but yes, Slimv was what I was missing. I read your second link and followed the instructions and am now able to actually learn this language. Thank you for sharing.

For anyone else that knows Vim but can't seem to get a good CL environment going, read https://susam.net/lisp-in-vim.html

ryan-duve··on Vega-Altair: Declarative Visualization in Python
Working as a data scientist, I have exclusively used Altair since I joined my company in 2021. Every one of my coworkers uses Matplotlib. Two people said something like "Oh, you're using that library that's supposed to be better and probably is, but I just don't want to relearn everything for plotting" but nobody else has even shown interest, let alone taken the plunge.

If you need to learn a plotting library and you already work in Pandas, I recommend choosing Altair to learn. It's a natural extension to pd.DataFrame and the only magical incantation to learn is

    alt.Chart(df).mark_<plot_type>.encode(x=df["col"], y=df["other_col"])
I find this significantly easier to work with than Matplotlib, where the same things can be done in several ways with subplots, plt.figure(), df.plot(), and maybe others?

My only complaint with the library is that outputting to an image file feels weirdly complicated. I often resort to making HTML files and taking a screenshot if I don't want to take the time to look up all the steps equivalent to `.savefig("file.png")`.

ryan-duve··on Neat Parallel Output in Python
When you say "multiplex a terminal" with tmux, do you mean splitting screens so the same terminal window has multiple shells prompts in it? I'm trying to understand how that would be used to address the problem in the demo at the bottom of the post.
ryan-duve··on Reading "A Programmer's Guide to Common Lisp"
Any chance you could drop the Common Lisp equivalent of the Python program in the original post here? That is, the code that goes in Vim, then what commands or key bindings you use to execute and find the "add two lists" syntax error.
ryan-duve··on Reading "A Programmer's Guide to Common Lisp"
I kind of figured I was approaching this wrong. If that approach was useful, I would have found someone already implemented it. One silly hangup I have is I am more comfortable in Vim than Emacs, and I am trying to isolate my learning to a language and not a language-plus-an-editor. This must be how people feel when I suggest they switch to Vim to make a certain workflow easier :-)

My goal isn't really to get "IPythonButForCommonLisp", but to iteratively build up programs so I can quickly learn syntax. I'm going to go with the Slimv suggestion the next chance I get and see if that solves it. Instead of working in revisioned code, I'll probably just work in `Untitled.lisp` until I get the hang of things.

ryan-duve··on Reading "A Programmer's Guide to Common Lisp"
Yes, I was directly typing in the REPL. I think Slimv may have been the thing I'm missing. When I'm back to my laptop I will give it a shot. Thanks!
ryan-duve··on Reading "A Programmer's Guide to Common Lisp"
One place I get stuck all the time with Common Lisp is the REPL. I'm used to IPython, which allows me to enter multiple lines and execute them all at once, then go "up" and get all those lines back and change something to fix the error:

    In [1]: my_list = [1, 2, 3]
       ...: my_other_list = [4, 5, 6]
       ...: final_list = [str(i) for i in my_list ++ my_other_list] # whoops a syntax error!
       ...:
       ...: "".join(final_list)
    ---------------------------------------------------------------------------
    TypeError                                 Traceback (most recent call last)
    Cell In[1], line 3
          1 my_list = [1, 2, 3]
          2 my_other_list = [4, 5, 6]
    ----> 3 final_list = [str(i) for i in my_list ++ my_other_list] # whoops a syntax error!
          5 "".join(final_list)

    TypeError: bad operand type for unary +: 'list'

    In [2]: my_list = [1, 2, 3]
       ...: my_other_list = [4, 5, 6]
       ...: final_list = [str(i) for i in my_list + my_other_list]
       ...:
       ...: "".join(final_list)
    Out[2]: '123456'

All the CL REPLs I've tried only allowing getting back one line at a time, which feels tedious to execute in order. I feel like I'm fundamentally missing something about iterative development in Common Lisp and it's blocking me from learning the language.
ryan-duve··on The existence of a new kind of magnet has been confirmed
I think your point is the current Maxwell equations explain physics so well that if we change them to accommodate magnetic monopoles they would have to be worse. If I understand you right, it overlooks that we can add terms[0] to Maxwell's equations that don't affect predictions in a world free of magnetic monopoles:

∇⋅E = ρ(electric) / ϵ0

∇⋅B = μ0 * ρ(magnetic)

∇⨯E = -μ0 * J(magnetic) - ∂B/∂t

∇⨯B = μ0 * J(electric) + (μ0)(ϵ0)(∂E/∂t)

We could switch every physics textbook to using the above today, and the only difference would be setting ρ(magnetic) and J(magnetic) to zero when there are no monopoles in the problem.

[0] Griffiths Introduction to Electrodynamics 3E, Section 7.3.4

← PreviousPage 2 of 8Next →