stenecdote
> They didn’t ask permission. They reverse engineered. They read RFCs like scripture. Their idea of “AI” was Eliza on the school computer lab’s terminal—and they probably rewrote it in Perl for fun.
> Today’s AI dev isn’t dropping shellcode into memory via a buffer overflow—they’re fine-tuning GPT on sentiment-labeled customer complaints for a mid-tier CRM startup. The tools are slick. The stacks are vast. The logs are in JSON. And the energy is… agile.
Also, I like em dashes still but the number here seems high. --- As an additional test, I asked Claude to write a post on the topic given just the title, so it couldn't copy the style from a snippet. Here's a snippet from the conclusion. Notice the similar style and structure between it and one of the OP's concluding paragraphs:
Claude:
> The hacker ethic hasn't died; it has evolved. Where once it meant breaking into systems, now it might mean breaking open black boxes. Where once it meant sharing code, now it might mean sharing compute. The tools and targets have changed, but the fundamental drive—to understand, to share, to democratize—remains.
OP:
> What the 90s hackers did with port scanners and punchy manifestos, today’s AI rebels do with open weights, privacy-preserving algorithms, and Git repos that mysteriously disappear from major platforms.
Look, I'm not in principle opposed to posting LLM writing, but it does seem like bad form to post an LLM's output on the topic of LLMs and not at least call it out as such. This is doubly true given that if I had to guess, not very much curation was done on top of this.
> As to your real question, the idea of immediate compilation and "unit tests" appeals to me only rarely, when I’m feeling my way in a totally unknown environment and need feedback about what works and what doesn’t. Otherwise, lots of time is wasted on activities that I simply never need to perform or even think about. Nothing needs to be "mocked up."
I sometimes wonder whether a lot of Knuth's greatness comes from doing more of the stuff everyone knows they should do but don't. If you read this interview (https://github.com/kragen/knuth-interview-2006) with Knuth, he talks about how he was nervous he wouldn't be able to learn calculus so just decided to do all the problems instead of just the assigned ones. Unsurprisingly, partly because he's Knuth and we all know Knuth can do math, he ends up really good at calculus: > But Thomas’s Calculus would have the text, then would have problems, and our teacher would assign, say, the even numbered problems, or something like that. I would also do the odd numbered problems. In the back of Thomas’s book he had supplementary problems, the teacher didn’t assign the supplementary problems; I worked the supplementary problems. I was, you know, I was scared I wouldn’t learn calculus, so I worked hard on it, and it turned out that of course it took me longer to solve all these problems than the kids who were only working on what was assigned, at first. But after a year, I could do all of those problems in the same time as my classmates were doing the assigned problems, and after that I could just coast in mathematics, because I’d learned how to solve problems. So it was good that I was scared, in a way that I, you know, that made me start strong, and then I could coast afterwards, rather than always climbing and being on a lower part of the learning curve.
While I'm not anti-abstraction, I think people often impose poorly chosen high-level abstractions on top of messy lower-level components (akkartik calls this Authoritarian High Modernism in a comment (https://lobste.rs/s/gtxi5y/nobody_s_just_reading_your_code_h...) on Lobsters). This approach leaves readers having to understand a bad abstraction and its internals, a map, its territory, and inconsistencies between the two.
As I understand it (please correct me if I'm wrong), you want people to do the work to find better high-level abstractions. I agree that it would be good if we could do this more often. I just also think we can find other ways to give people maps that work with our existing, messy codebases that don't have good, minimal abstractions already.
A google maps zoom system for code sounds awesome, although I have no idea how that might work.
Nobody's just reading your code
Yeah, I came part of the way to this realization in my reply to your other message.
Now that I think about it though, one might argue that human learning in a given discipline starts as isolated with feedback only coming from the outside world. This is what we typically call research. But the magic of our education system, when it works, is that we compress the output of this slow process into a faster one and feed it to learners, allowing them to build understanding of knowledge which originally took generations to discover. Riffing off Matt Might's illustrated depiction of a PhD (http://matt.might.net/articles/phd-school-in-pictures/), expanding the circle of knowledge is exponentially slower than getting close to the edge.
I think you have two separate points, one with which I agree and one with which I disagree.
First, I agree (and other commentators about AlphaZero seem to as well) that human learning "algorithms" still beat AlphaZero's on per-game ROI.
On the other hand, I disagree that AlphaZero's self-play is no more interesting than a human playing someone better and learning from them. AlphaGo, AlphaZero's predecessor, followed a strategy more like what you described, learning from a large corpus of existing expert chess matches. AlphaZero, on the other hand, requires no training beyond an encoding of the basic rules of chess that it can understand. From there, it bootstraps its understanding of chess without input from experts.
This is the piece I find most interesting, see as potentially useful for the future of human learning, and believe differs from practice with an expert teacher. And so I wonder, can we design learning environments where the learner bootstraps their own understanding from a limited input without continuous feedback from an expert or teacher?
Ask HN: Can we adapt AlphaZero's self-play technique for better human learning?
Since I lack the ML background to debunk this suspicion, I figured I'd let HN debunk it for me. Seeing AlphaZero's success at learning Chess, Shogi, and Go, I was immediately struck with the intuition that the fact that AlphaZero could learn so much from "self-play" should provide some insight into improving human teaching and learning strategies. With the caveat that humans lack AlphaZero's...
Could you list some of those books? Would love to add them to my reading queue.
Processing Millions of Listing Images Asynchronously
- Interruptions definitely affect my feeling of accomplishment and may affect my results. I find even the smallest external interruption or moment of weakness triggers my internal critic, resulting in an arguably more detrimental cascade of self-criticism. An avalanche of blog posts argue that these minor interruptions dramatically impact my productivity for other reasons. I totally buy this anecdotally but won't attempt to justify it since I suspect most people here agree anyway.
- Sometimes 25 minutes just doesn't cut it. I especially chafe at the forced 5 minute break during my 1.5 hour period pre-standup where I haven't eaten at all and am caffeinated. I know the creator of the technique and blog authors like Martin claim that I should be able to slice all of my tasks such that I don't need longer than 25 minutes, but I disagree. While I enjoy holding the state of a program in my head and occasionally finding the zone, I'm willing to acknowledge Martin's overstated but partly true point that the zone can induce tunnel vision and the downsides that go along with that. However, I've also observed that 3 break-interleaved chunks of work can zap my energy more one large block of work would have.
- How do people deal with waiting for things that take longer than a minute? I've recently been working with jobs that take multiple hours to run. It's difficult to both schedule my Pomodoros such that I have a free one to check the result of this job. Even worse, the validation of the job can take between a minute if it succeeded and hours if it failed. This makes budgeting hard.
- Should I budget Pomodoros for checking email and Slack or include that in my breaks? Ideally, I'd use breaks to recharge and not context-switch between communication platforms. But, while I'm not an always on, 10-minute to respond to any email guy, a consistent multiple hour time-to-respond to any communication is a recipe for face-to-face interruptions in the age of the open office.
- Should I include lower level planning in my break or 25-minute chunk? I often find going from high-level task statement to knowing exactly what I need to do requires a few minutes to orient myself. I'd be fine including this in my Pomodoros except this orienting can involve firing off a quick question to a colleague or searching through my emails / Slack messages. Maybe I just need to get better at gathering requirements beforehand...
To be clear, I'm not putting down the technique. I suspect any time management strategy would reveal the issues I described above and that we simply don't hear about the pains of actually implementing a system beyond a week of casual usage (see any blog post with a just-so title like "I Adopted <> and It Changed My Productivity Forever" as an example).
As I look back at my bullets, I've realized I'm mostly looking for wisdom from some seasoned Pomodoro veterans. I see one or two people on this thread who fit this description, but overall I'm disappointed with the ratio of people who want to sell the technique or have tried it to people who have used it consistently for months or years. This seems to be a common problem among productivity techniques.
Meta-comment: I recognize this comment could be condensed, and "if I had time I would have written a shorter letter" (http://quoteinvestigator.com/2012/04/28/shorter-letter/).