HackerTrans
TopNewTrendsCommentsPastAskShowJobs

neuronet

no profile record

comments

neuronet
·anno scorso·discuss
you are going to LOVE Infinite Jest.
neuronet
·anno scorso·discuss
There is waste in every org, but what they are doing is the equivalent of deleting files that contain the word "diversity" in them instead of going through and actually reading the files. Because that would take time and patience. It's a low-brow sledgehammer approach and is hurting people inside and outside the organizations in government. E.g., people handling nuclear safety. It's not just throwing out the baby with the bathwater, it is throwing babies, adults, scalding hot bathwater out onto the people that it was supposed to help.

These tech-bro-americans with very little experience with science, biotech, helping other people, international relations, understanding of how institutional knowledge works, or grant funding cycles and NIH works, are dismantling key infrastructure. It's worse than dumb it's much more terrifying.
neuronet
·2 anni fa·discuss
A really cool article. From the Intro:

> She thought carefully about how operations could be organized into groups that could be repeated, thereby inventing the loop. She realized how important it was to track the state of variables as they changed, introducing a notation to illustrate those changes. As a programmer myself, I’m startled to see how much of what Lovelace was doing resembles the experience of writing software today.

> So let’s take a closer look at Lovelace’s program. She designed it to calculate the Bernoulli numbers. To understand what those are, we have to go back a couple millennia to the genesis of one of mathematics’ oldest problems.

It does a nice job getting into just enough detail to make you appreciate what she did. If she were alive today, you could imagine her down the hall grinding away on some problem in Rust (I have a feeling she'd have a strong preference for statically typed languages).
neuronet
·2 anni fa·discuss
There is reasonable debate about their scope and limits, but it's hard to find anyone who understands how LLMS work that thinks they are a passing phase.

The pushback I see is from people who were raised to write everything from scratch, who don't trust the output of LLMS because of "hallucinations" or other crappy outputs. The problem is, the people making these claims are really out of touch with prompt engineering, and how students are currently learning to code with AI in-the-loop (and for basic coding and testing etc for common libraries, LLMs are really, really good at explaining things and writing entry-level code and tests -- this is not arguable: people that are fighting this are graybeards that haven't learned to code at a basic-to-intermediate level in a long time).

A good software developer, with a nose for code smells, will not just accept any old code an LLM produces, you have to use it intelligently, push back on bizarre constructions. Hence, for me, who hates writing tests, it is an amazing tool. If I had an intern or an undergrad who loved grindout out tests I'd use them, but that's basically my LLM at this point (and for the "but ackshually" guys yes obviously you can't use them mindlessly, we are writing code not drawing doodles).
neuronet
·2 anni fa·discuss
If I were a trained professional software engineer who found joy in writing tests and TDD, maybe I'd feel differently, but I write software to help with basic scientific analysis, and ChatGPT has been an absolute game changer for writing tests.

I personally find writing tests to be soul-crushing, boring, work. I never really learned it properly, and when I have a well-documented function, CGPT typically does a decent job making a rough draft. I often have to work on the test function, fix some things, but the final product is way better than the PoS I would have put together: my guess is it has saved me hundreds of hours. I have developed a decent understanding of fixtures, mocking, sharing fixtures across modules, etc, all with the help of ChatGPT. It "understands" my project and how it is organized, and makes suggestions based on this understanding. Yes, it sometimes gets stuck in local minima and I have to kick it out, which can be frustrating. But even that is a learning process, as I often go to SO or other people's code bases to find good examples, and feed them to ChatGPT to get it unstuck.

It's like the ultimate rubber duck paired programming partner. I tell it what I'm working on, and that's intrinsically helpful. But the rubber duck has really good feedback, because it has read the entire internet.

It's made writing tests for my code fun, for the first time ever.

The people I know personally who refuse to use CGPT are typically very good software developers, somewhat arrogant and have a chip on their shoulders, and honestly I think in 20 years we'll look back at them like people who thought the internet was a passing phase in the mid 1990s. I also think many of them don't understand how LLMs work, and how powerful they can be when prompted correctly
neuronet
·2 anni fa·discuss
Will it be a low hit rate? Probably, but I've seen way less serendipitous matchmaking plans than this work out very well. The cost is low for people to just put out a feeler.

Also, it's fun to read over the different projects, so we all win.
neuronet
·2 anni fa·discuss
At the end the author wrote something without explanation that I found cryptic. It is something I am curious about as I am starting to work on a software package:

  Avoid “scaffolding” (code generation)
I wasn't sure what this meant, so wanted to highlight it.

I chatted with ChatGPT the following is an edited transcript of what we came up with. Note it is not a direct quote from GPT but highly edited cyborg quote from long conversation we had:

  The term "scaffolding" in software development refers to frameworks that automatically generate boilerplate code to quickly set up the structure of a project (think Django). This can include things like generating project directories, files, and initial code to get started with minimal manual setup. 

  In the context of that article, the rule "Avoid scaffolding (code generation)" likely is implying that while scaffolding tools can be useful for quickly getting a project off the ground, they can generate generic or bloated code that can make the project harder to maintain and understand/read in the long run, with a steep learning curve. And *readability* is the point of the article. 
   
  If your guiding values in writing a software package is producing easy-to-read, easy-to-learn, and easy-to-use code *for humans*, then avoid scaffolding.
That last sentence is all me sorry.

I have no idea if the author would agree with the above sentiment, but it seems pretty reasonable. Like most coding rules, there are reasonable exceptions.

Opinionated is sometimes good, and the justification for it may scale with the complexity of the subject matter and the intended users and use case. E.g., how many different ways are there to achieve the goal(s) of your software, and do you want to enforce one particular way, given your intended user? If so, then depending on the specifics of the problem you are solving, you may need scaffolding.

For instance, DeepLabCut (https://github.com/DeepLabCut/DeepLabCut) is great software with tons of scaffolding. It is a machine vision framework written for experimentalists to track animal behavior, so boilerplate is great for them. The developers have put a ton of thought into how individual projects should be structured so the users who don't know anything about machine learning don't mess things up.

Anyway, this is useful for me to think right now as I am building a new project so I'm curious what others think.
neuronet
·2 anni fa·discuss
To be fair, the paper has an emoji in the _title_, so I wouldn't read it as a particularly particularly serious academic study as much as the equivalent of the Gawker of AI research. It is a "gotcha" paper that exploits some blind spots (sorry) that will easily be patched up with a few batches of training. I do think it highlights the lack of AGI in these things, which some people lacking situational awareness might need to see.