HNHacker News
TopNewBestAskShowJobs

cout

1,389 karma · joined December 11, 2009

submissionscomments
cout··on Recovering from AI addiction
I tend to agree, with current products, at least the ones I've used. But companies developing AI products would do their investors as disservice if they did not tune their models to maximize engagement. We are in the honeymoon phase of some of these models, but there lie dark times ahead.
cout··on Recovering from AI addiction
As a counter-point, I was able to write lyrics with chatgpt (lots of back-and forth to get the right "feel"), then put those words to music with suno. It took two hours of my time, and my wife definitely had an emotional response to what was produced. There was definitely a human aspect to what the AI produced; it was personal and personalized, and it brought us closer. So AI can strip us of our personhood (especially through false intimacies), but used wisely it can also be a tool to reach parts of our humanity that otherwise might never be touched.
cout··on Recovering from AI addiction
Some of the o4 variants do stick to the facts. They are quite annoying sometimes, because they resist correction. It's almost as if admitting wrong requires empathy.
cout··on Recovering from AI addiction
The flattery is also a turn off for me, yet I am not ignorant to the fact that even insincere flattery can be pleasurable. The voice model is even better at flattery - it actually sounds sincere!
cout··on Recovering from AI addiction
As a long-time compulsive Internet user, I am aware of the emotional and psychological risks of this new technology. For now, the ability to find information faster (with certain caveats) means I actually spend less time on the internet than before.

But chatgpt for example showers the user with compliments. I'm sure this encourages user engagement, but it is eerily similar to the "love bombing" of cults from the 70s and 80s. I don't know how to reconcile the long-term risks with the huge short-term gains in productivity.

Are there any technologies or apps that are worse than others, particularly for people with obsessive/compulsive tendencies?

cout··on Show HN: Spegel, a Terminal Browser That Uses LLMs to Rewrite Webpages
This is a neat idea!

I wonder if it could be adapted to render as gopher pages.

cout··on The Unsustainability of Moore's Law
That's surprising. What is the 486 missing that Linux needs? Or is it that there are no volunteers to test and maintain Linux on a 486 (as often happens with older architectures)?
cout··on NativeJIT: A C++ expression –> x64 JIT (2018)
Interesting, I didn't know about that one! Does it ship with GCC?
cout··on NativeJIT: A C++ expression –> x64 JIT (2018)
It's interesting to see C++ expressions being used to create what is I think an AST that then gets compiled. I would love to see some syntactic sugar, though. For example, `expression.Mul(rsquared, expression.Immediate(PI))` could be `rsquared * expression.Immediate(PI)`. With overloading, anything that is not a recognized type could be converted to an immediate, so it could simply be `rsquared * PI`. Simple control structures could be even implemented with lambdas.

I did this for ruby-libjit, and it made writing a JIT compiler much easier to read. Here's an example: https://github.com/cout/ruby-libjit/blob/master/sample/fib.r...

And a real-world example (one of the very earliest JIT compilers for ruby, written in ruby, dates back to the ruby 1.8.x days): https://github.com/cout/ludicrous/blob/master/lib/ludicrous/...

cout··on WhatsApp introduces ads in its app
In my experience, a free and ad-free app is often better, because it was written by someone who doesn't have profit as a motive (often just a hobby). There are tons of great paid apps too, but it's hard to know which paid app is actually good and which is a slipshod app designed to profit from the rare user who will buy an app without much thought.
cout··on WhatsApp introduces ads in its app
I did appreciate the ads on Facebook circa 2010. They were often for niche products I had not heard of and were genuinely interested in. I can't say it's like that anymore, sadly, but I can imagine someone genuinely appreciating exposure to something new.
cout··on A receipt printer cured my procrastination
I learned how to gamify work tasks from my mom.

She worked as a librarian in the seventies. Tasks like restacking books was not fun, so she turned it into a game. Her coworkers, on the other hand, drew out the boring tasks as long as possible. When it came time to pick someone for advancement, they chose my mom, because she was more productive at the menial tasks.

I also use post-it notes, but if I used them for everything, I don't think it would work for me. The reward is in pulling down the note and setting the wall cleaner. But if I were to add notes every day, I have a feeling the effect would be disheartening. Similarly, I love getting the living are clean, but when kids/family make a mess again within hours, I'm less incentivized.

cout··on Why old games never die, but new ones do
This is a good point. I'm still looking for a good way for my kids to play mindrover on windows 11, and I haven't found one.
cout··on The emoji problem (2022)
I had an idea the other day to use 64-bit character codes. Then each code can be interpreted as an 8x8 bitmap. Every character would be guaranteed to have a unique bitmap representation. The bitmaps wouldn't bet used for rendering, of course -- but they could be used as a fallback if your font does not define a character. Anyway this would somewhat avoid the problem you describe because two characters that look the same visually would have the same value. Nothing I'll ever implement of course, just a thought experiment.
cout··on Variadic Switch
The limitation with the runtime switch is that it cannot be generated. If all you want to do is have different behavior for each type, then it's probably fine. But if you want to write generic code (apply the same function regardless of type), you need to be able to generate the function using metaprogramming techniques.

C++ isn't great for for metaprogramming, because much of it is a hack that uses the type system to do things it was never originally designed to do (i.e. as a lisp). But as metaprogramming has become more commonplace, the language has evolved with features that make it easier and more readable. It's still all based on a hack, and there's still no good way to debug a metaprogram. But at least I don't have to read the loki book anymore to grok it.

I still prefer to use a proper code generator when I can (it compiles faster, and I can see the generated code). Generating an ordinary switch outside of C++ is certainly an option and is something I've done. But I don't reach for it every time, because those tools tend to be kludgy as well (they can generate invalid C++, which templates and comstexpr cannot).

cout··on 2k-year-old wine and the uncanny immediacy of the past
I wonder how often this happens and we _don't_ recognize it.
cout··on Climbers Using Xenon Gas, Which Is Banned in Sports, to Climb Everest
How is this different from simulation EPO production through other means or blood doping through transfusion?

Edit: my original question conflated EPO with blood doping

cout··on One Dog vs. the Windows 3.1 Graphics Stack
> Selling it in 1996 for a few bucks was probably the worst mistake I did in my computer life.

Why do you say that? They are great machines (mine has lasted forever) but finding parts was hard even when they were new due to the microchannel architecture.

cout··on One Dog vs. the Windows 3.1 Graphics Stack
It was my first computer.

Everything still works great, except the original monitor died many years ago. I hope to replace it one day, but $200 for a used 12" monitor is more than I want to spend right now (I have a tractor I am restoring that takes precedence).

cout··on One Dog vs. the Windows 3.1 Graphics Stack
No, it's a PS/2 50Z, which comes with a 10MHz 286. It was my first computer, second hand from my dad. When I got it, I saved up and bought the 386SX/Now!, a 25Mhz 386SX that fits into a 286 slot.
cout··on One Dog vs. the Windows 3.1 Graphics Stack
I totally agree on having a computer with minimum distractions when writing -- for that I use a PS/2 386SX running WordPerfect 5.1.

I loved my EEE, super portable, but the keyboard is too small for serious typing IMO.

cout··on setBigTimeout
https://thedailywtf.com/articles/The_Harbinger_of_the_Epoch_
cout··on C++ String Conversion: Exploring std:from_chars in C++17 to C++26
What would you suggest instead?
cout··on What's New in Ruby on Rails 8
I've built a lot of niche applications in Ruby, but a few years ago I switched most of my toy programs to python, because it's easier to find other devs who can meaningfully contribute if I write in python.

At work I have been using Ruby for longer than rails has existed. In those days there were lots of neat uses for Ruby (one of the most interesting being at NASA), but none of us knew if it would ever catch on. We didn't care -- Ruby made programming _fun_, and we were happy to use it even if no one else ever did.

It was partly the language that made Ruby fun but also the community. And it's out of this community that projects like chef, puppet, shoes, etc. were born. Matz has called Ruby human- oriented programming, and I can think of like that is human- oriented than community.

cout··on What's New in Ruby on Rails 8
How would you define "hype"?
cout··on Porsche's idea for a six-stroke internal combustion engine
This edit is brilliant!
cout··on Porsche's idea for a six-stroke internal combustion engine
This is why TULIP oil makes a great fuel additive.
cout··on GraalPy – A high-performance embeddable Python 3 runtime for Java
Could this directly invoke Java (or Scala) functions without using a bridge? If so this would be great for programs that use spark -- UDFs would become performant enough to consider using on medium-to-large dataframes.
cout··on Porting systemd to musl Libc-powered Linux
Having my laptop wake up when it's in my bag (and the exhaust vents are blocked) is the last thing I want.
cout··on How I learned to stop worrying and love userspace networking
I've never used dpdk for kernel bypass, only open onload. Originally for solarflare hardware, apparently it works with cards from other vendors via XDP (though I've never tried it). It gets loaded via LD_PRELOAD and replaces ordinary BSD socket functions with full userspace sockets that can fall back to the kernel when necessary (e.g. if the application wants to yield the cpu but still get notified about the socket).

https://github.com/Xilinx-CNS/onload

← PreviousPage 4 of 21Next →