HN user

sk1pper

277 karma
Posts0
Comments67
View on HN
No posts found.

I haven't been on HN in years and wandered here to the Ask section with something similar on my mind.

I really, really love programming. I love learning about computers. I'm so lucky to get to do this for work and get paid pretty well to do it. It engages left and right brain. Yes, it's logic, math, all that; but writing code is creative, too. There are endless ways to solve a given problem, and you get to decide what approach is going to be cleanest, and readable, and maintainable, and just _feels_ right.

Honestly though, doing code reviews isn't my favorite part of the job. It's fine, but the fun part for me is actually _doing_ it. Understanding the problem space in front of me and the constraints and all the other factors, and then generating _my own_ ideas and putting them into the editor, and iterating.

So yeah, if the job becomes essentially reviewing AI code.. I don't know if I will still enjoy doing this. I mean, I'll do what I have to, I have a family, but it's not an exciting prospect.

I'm not anti-AI at all and I use it to speed me up in plenty of ways. I'll have it give me snippets of code here and there for stuff I need, I'm using Claude Code here when the use case is right, that's all fine. I haven't had much luck with it implementing entire features or doing anything at ~medium complexity or higher. I don't _want_ it to do that anyway. I want to do that stuff. That's the fun part.

I am concerned about its energy consumption too, and the hype is quite irritating as well. On both of those fronts, there's an opportunity for us to step back and consider what LLMs are actually good at, and use them where appropriate, instead of trying to infuse everything with AI.

I'm probably just getting old and grumpy. But yeah, it's a little depressing.

I’m still rocking my 2015 MBP. I have no issues at all. The battery says it needs to be serviced, but the battery life is still plenty good for my uses. I have no issues with slowness. And I’m not running a minimalist WM to accommodate this like Drew is, either - I’m running Monterey, and have the UX of a full DE. I can’t upgrade to Ventura, but that’s ok.

I run VS Code on it a lot, often remote over SSH to my desktop to work on a personal raytracing project - I need the nvidia GPU to do CUDA stuff, and the 16 cores in my 3700x are pretty nice for non-GPU stuff too. I also stream games from my desktop to it using Parsec and Moonlight. I just play games casually, so no need for super low latency, and over my local network the experience is great.

I’m not sure how well it’ll be holding up at the 11 year mark though (4 years from now). But I think this habit of doing most of my development over ssh will potentially extend the life of it.

For the most part I agree with Drew. Based on all of the above, it does absolutely everything I need it to do. I can’t even remotely justify the cost of a new laptop due to this. However, if I get to the point where I can’t even run KDE comfortably, or get an equivalent desktop UX, it’s time to upgrade. I don’t prefer minimalist WMs (or Linux even really, but if anyone wants to reply, I’d prefer not to fight about using Linux as a desktop - it’s just not for me) - that’s where I draw the line and decide to get some newer hardware. Hopefully when I do, that hardware will last me another 7-10 years.

My fiancee has ADHD and sends me memes and videos and such about it. And I'm always like, these videos are dumb, doesn't everyone do those things? I've been wondering about this for a while, but I've tended to write it off due to me having pretty different symptoms/behaviors from her - but I guess it can manifest in different ways.

What intervention(s) have you found the most helpful? Or are there any resources you can point me to? Thanks.

Man, yeah, I feel that; I just don’t have enough time to do everything I want to do.

- me, laying on my couch and mindlessly browsing HN

There are things I want to do that I legitimately don’t have time for, even though I have time to browse HN. Or at least, I won’t make time for them, because they’re quite time consuming. I want to learn Japanese, make my own top-down RPG, get a black belt in Jiu-Jitsu. Build some cool woodworking projects. Start a blog. Photography. Get better at golf. I’m interested in everything, I could rattle off tons more things that I would love to spend time on.

But these must compete with other things I love to do, as well as things I must do.

I’ve been doing some game programming recently and have gotten really excited because I finally have grokked Godot. But, I’m not sure I have the time to actually make my own game of any quality.

Actually just giving up on that project might be freeing. Like when I gave up on Advent of Code on Day 17 due to problems taking me too long, I was more relieved than anything. I think this is what’s behind giving up on the idea of being able to do all of the stuff you want to do.

The problem is that this is fairly soul-crushing. When I have a side project going that I’m really interested in, it’s quite fun and energizing.

But I can be obsessive, so all of this extra energy goes towards the project. I think I end up netting negative, because I’m spending so much time and energy on the project. I will also start to abandon other responsibilities and fall behind in other areas of life. Exercise, chores, other but less sexy projects I care about (meditation is always the first to get discarded).

Eventually I hit a point where I realize I need to get my act together, and by then, letting go of the big project is relieving, but sad.

I guess the problem here is more with the obsessiveness than topics in the article, but they might be related. Like, I‘m constantly chasing novelty. This is probably common nowadays due to the internet. I’m a true geek who loves learning stuff, and I like doing it in a hands on fashion. Having an effectively infinite stream of novel things I can teach myself (minus BJJ and such) to do is just plain addicting.

I’m not quite sure what to do about this. This habit has made me a much better programmer. And I’m always doing something I love doing. But there’s collateral damage to other things I care about. And eventually I start feeling like I have no time to do what I need to do, and also what I want to do.

Hmm, I think that's a little heavy-handed. Just off the top of my head: CUDA (maybe other gpgpu stuff too), gamedev, most projects with a UI. The tooling you'd be using in those spaces is still bleeding edge; too much so to use with a greenfield project that you intend to put in production, imo.

I guess you said "in the coming decades," which might be true, but for the time being it's more than just niche libraries that might push one to use C++.

I want this to be true very badly. I’ve been a Linux user for nearly 20 years and I’ve never had an install that “just works” to the level of macOS or even Windows.

Although there was a while there in like 2006 where I had a pretty solid install of Ubuntu on some HP laptop I had at the time. That’s the closest I got.

This is of course extremely anecdotal. Everyone’s on different hardware and therefore has pretty different experiences.

I hate Windows as a development OS but I’d rather deal with that than some odd update that breaks my install completely, or spending hours reading forum posts to try to make my Bluetooth driver less shitty, etc etc.

I just use macOS for dev and Windows for gaming and they stay out of my way. I’ll keep trying Linux again once a year or so, but I’m not optimistic on it. It’s a moving target too due to varying hardware support over time.

We can make a pretty good guess. I found this link on her website: https://justmeat.co/docs/health-dangers-of-a-plant-based-die...

A cursory review of her website doesn't reveal any references or links to actual scientific studies of any kind. Well, except for this one, which seems to be about Homo Erectus species in the Levant region being dependent on eating elephants for a source of fat about 400,000 years ago: https://journals.plos.org/plosone/article?id=10.1371/journal...

However, I found lots of affiliate links to various products.

edit: oops, here's a link to her site for reference https://liondiet.com/

Nitpick:

when a nested query is refactored into a common table expression (CTE), this kind of change doesn’t have any functional impact on either a query or its outcome

This isn’t quite true, at least in Postgres. It won’t affect the outcome, but it can affect the query plan.

Julia is very specifically a general purpose programming language

I’ve been trying to figure this out recently - because I love Julia’s features. Readable like Python, but with more ability to optimize performance, and also lispy with macros and generic functions. I’m personally interested in it as a general purpose language.

But when I search around about it, most folks to seem to relegate it to the data science realm only. Everyone seems to be saying: well it’s certainly general purpose capable, but its designers are focused on data science, and that will continue to be the primary goal. As such, don’t expect to see it widely adopted as outside of data science anytime soon.

I don’t want that to be the case, but it seems harder to build broader excitement about the language if it’s going to continue to be perceived as niche.

Do you mean for production? Zig isn't production-ready. Nim is extremely niche. I'm kind of puzzled why I see these thrown around so much on HN. Sure, they're fine for a side-project, but they're pretty out there for anything mission critical.

Here’s a fun way to decide. Do Raytracing in One Weekend[1] in one of them. Then rewrite it again in the other. That should give you a good sense for which one you want to invest in.

Spoiler: I did this exercise myself. I found Rust to be more convenient in some ways. The Rayon crate made adding parallelism (threads) pretty easy. Some other crates made things pretty terminal output easier.

C++ feels more familiar to me in many ways though - I also write C fairly often. Implementing parallelism was more difficult. (I tried `pragma omp` stuff which should work similarly to Rayon, but couldn’t get it to work.) But just getting something working seems a little more straightforward.

I find myself fighting Rust somewhat often. In C/++, if you know what you’re doing, and you just want something working as a fun side project, it usually takes less dev time in my experience. Maybe that’s because I’m still learning it. Some folks will argue that the Rust compiler forces you to write better code and actually makes dev faster because it catches your mistakes. I haven’t found this to be true.

For example trying to implement simple polymorphism in Rust that was analogous to the implementations in Raytracing Weekend got ugly very fast. I ended in a weird hell of having to add annotations to everything to support generics. Again maybe I don’t understand the language enough, but adding polymorphism was a 5-minute straightforward exercise in C++, even as someone who doesn’t write it often.

I like a lot of stuff about Rust but I’m doing my hobby dev stuff in C instead nowadays, mostly for dev speed like I said, and probably would opt for using a subset of C++ for higher-level projects.

[1] https://raytracing.github.io/books/RayTracingInOneWeekend.ht...

Counterpoint: Zig is unstable (as in, <1.0 release) and the docs are still pretty lacking. You’ll find yourself reading source code if you want to do anything nontrivial pretty much.

Stick to C++ or Rust, which I won’t weigh in on here. But both are much more mature.

Autocomplete usually drives me crazy in IDEs - often it covers up nearby code that’s relevant to what I’m currently typing, so I end up hitting ESC all the time just to get it to go away. I guess you don’t have that problem here if the popup is always below your cursor, since there’s never really anything below your cursor in a terminal when you’re entering commands.

But also autocomplete often suggests the wrong thing but I’m typing too quickly to notice, and then I hit enter and get the wrong thing filled in.

What I want is just non-automatic completion - which we already have. Ctrl+R gives me exactly what I need when trying to find some odd command I ran last week. Add in fzf integration and it’s perfect. Tab completion covers everything else. When I don’t want completion, it stays out of the way. In an IDE, you can usually bind completion suggestions to Ctrl+Space or something and then turn off automatic suggestions, or something like that.

Maybe you can set up this tool that way too - then it might be nice to try out. But as I mentioned generally I find the terminal to be pretty ergonomic already for completion stuff.

In the vein of learning how computers work, osdev has got to be pretty high up there. It’s so much fun - it has become my hobby. I’m surprised no one else seems to have mentioned it.

I just finished implementing a really basic network stack for my x86 kernel, including a (crappy) driver for the RTL 8139 network card. I just learned a ton about how the internet works. I learned it all in college, but there’s something different about grappling with it directly.

And I’ve gotten pretty good at C in the meantime. I’ve also learned a ton about virtual memory, page tables, system calls, various hardware, how data is stored on disk, the ELF file format, how processes are loaded and executed, the x86 calling convention, a little bit of assembly code, just to name a few.

Check out https://wiki.osdev.org for where to start. I’m hoping to start writing some blog posts about all of this soon, to provide a resource to complement the osdev wiki. A lot of info on this is surprisingly hard to dig up.

Hmm, I didn't find that quite to be the case. I wrote a toy GPU-accelerated (using OpenGL via C) terminal emulator in Zig. My take is that I'll probably wait for at least a 1.0 before I start hacking my side projects in it again.

My main issue was around finding good documentation and (not-outdated) examples, which I guess just comes with using a bleeding-edge language. The biggest thing I find lacking is a "Learn Zig" book that takes you through the whole language. Sure, https://ziglearn.org/ exists, but it needs about 10 more chapters. Zig types can get somewhat complex, especially when interfacing with C, for example - I remember some difficulty deciphering those. For many things I ended up just reading Zig's source code itself, especially when looking up standard library stuff.

I mean I get it, who wants to write a book for a language whose features are unstable?

On the plus side, I agree that I fought Zig a _lot_ less than when I first started learning Rust. And I still fight Rust if anything involving generics and/or nontrivial annotations is involved.

I know (or, my sense is that) the whole dopamine detox thing causes a lot of folks to raise eyebrows, myself included for the most part. But, I’ve done multiple meditation retreats, which are a kind of extreme case of dopamine detoxing in practice (although most folks frame their reasons for meditating very differently than that).

I have to say, the quality of my first person experience is massively changed during these retreats, and you usually return to “normal life” with quite a different perspective on it. It just _feels_ different, and I realize I don’t have to be so caught up in all of it. Although if I don’t keep up the practice, that quality of experience and perspective fades very quickly, and I find myself back to being battered around by various interests, desires, impulses.

It’s kind of like crash dieting. Unless you can incorporate these changes (ie, a better digital diet) into your life sustainably, you won’t reap any real long- or maybe even medium-term benefit. Although, the upside of meditation retreats (or maybe dopamine detoxing?) is that you do at least learn that there is a “there” there.

The commentary around organic learning reminds me of The Outer Wilds. Imho it’s an even more extreme case of what the author is getting at here: (very mild spoilers follow) there are no stats or levels in The Outer Wilds; there are no upgrades (mild spoiler because I spent like 75% of the game thinking I’d get some sort of item to help me deal with various obstacles eventually, but nope). The game randomly picks a planet at the beginning and suggests you start there, but you can truly just fly around and do whatever you want, and the only factor that limits what you can do is how well you understand the mechanics of the universe and its various planets. It encourages experimentation, and there’s never a lack of leads on what to go experiment with, because it has a system that kind of takes notes for you and gently indicates when there are more clues to be uncovered in a given area.

Me too. If I wear a simple blue button down, there’s a 100% chance it gets commented on. And I work full time remote…

I feel like if I wore that to a software engineering interview I’d run the risk of being judged as just not really getting the culture.

A great counterpart to this book might be Everyday Zen by Charlotte Joko Beck. The Mind Illuminated is a technical manual for meditation practice; Everyday Zen is more about how to think of the rest of your life while you’re not meditating as practice. (It’s not much about Zen specifically either; it’s author just happened to be a practitioner of Zen.)

Logitech K380. I can type faster on that thing than any mechanical keyboard. It feels like the old gen MacBook Pro keyboards to me, but more crisp. (The gen before they started doing weird Touch Bar stuff.) It has 3 bluetooth channels so I switch between my work laptop, personal laptop, and desktop with it. Works great between macOS and Windows, too. And I’ve had it for a year and haven’t had to change the batteries yet.

Mechanical keyboards are cool but turns out they aren’t for everybody. I spent a lot of money on them and ultimately discovered I don’t really like any of them. They’re clunky to type on for me. I tried Cherry red, blue, brown, and also Topre, and I still just like my dumb $30 keyboard more.

Not parent commenter but I've had the same experience - and I'm sure this comment will be received just as poorly as theirs, but I've given up on Linux desktop. It just isn't stable. I've tried so many times and I don't know what 1) is wrong with me or 2) the "I'm just as productive on Linux" people are smoking. Just getting basic stuff to work like bluetooth is a hassle. Headphones stuck in headset mode, let's go drop an argument to the bluetooth kernel module to enable autoswitching to A2DP. Touchpad driver for my machine kinda sucks, click and drag is still a little broken. Screen tearing watching YouTube videos on Firefox. Oh and it randomly freezes requiring a hard restart. Good luck upgrading packages, you never know what will randomly break. Extra good luck upgrading to the next LTS release, your machine might not boot when you go to restart.

I've been wanting to love Linux desktop for 10+ years and I just give up. I don't have time for this stuff anymore. And I'm not using esoteric distros. Ubuntu LTS, I also tried Fedora and it was even worse.

Sorry, but none of this happens to me on macOS or Windows. They're not perfect - of course crash, have certain quirks, etc, but they waste much less of my time on basic desktop functionality being unstable or needing special treatment.

n=1, but my general takeaway from the show wasn't that nuclear is fundamentally flawed, it was that a series of pretty questionable choices by management and egregiously eschewing safety protocol lead to the accident. The graphite-tipped rods were also essential to the accident happening as well, but only after that series of bad choices had put the reactor in a such an extreme state. (Reading about the event on Wikipedia seems to confirm this take, but, of course I'm not pretending to have any more than the most basic layman's understanding of all this)

Joins In Steps 7 years ago

You can create indexes on expressions, like mycustomfunction(a), in Postgres at least.

I used to work at a place that did this and know other people that have too. Not necessarily over job titles, but generally pushing people out over stupid shit to keep salaries low.

I just can’t imagine that is more profitable in the long run. The overhead of constantly training new people has to cost more than giving raises..

I’ve hit that in my market - or a soft cap, at least, meaning if I want to earn more, I’m going to have to make 2-3x as much effort than I did before.

Through working my ass off, and pretty great luck, (working on lots of side projects didn’t hurt either), I recently did some looking just to feel the market out and I’m making like $20k more than I “should” be.

Part of this is because my company is based out of Bethesda, MD and I live in Denver, CO - cost of living differences. My company pays really well which allows them to compete with Silicon Valley and everywhere else for the best engineers.

No complaints here. I’m making double what I thought I would be making at this point in my career.

Anyway, yes, anecdotally, it caps out, but I also like to think that if I really hustled, I could keep raising it. But I’m pretty happy where I’m at and would rather spend my free time doing stuff other than coding and hustling right now.