HNHacker News
TopNewBestAskShowJobs

rlp

224 karma · joined December 1, 2011

submissionscomments
rlp··on Apple will soon receive 'made in America' chips from TSMC's Arizona fab
9am to 9pm 6 days a week
rlp··on Zod: TypeScript-first schema validation with static type inference
This is my exact experience. TypeScript seemed to hit a complexity sweet spot about 5 years ago, then they just kept adding more obscure stuff to the type system. I find that understanding TypeScript compiler errors can be almost as difficult as understanding C++ template errors at times.
rlp··on Go is my hammer, and everything is a nail
This is no longer remotely true. Most .NET teams I know now deploy on Linux and develop on Windows/Mac/Linux.
rlp··on Show HN: Sonauto – A more controllable AI music creator
Wow. I just had it write a song about being sad about losing my keys in r&b/soul style, I'm totally blown away:

https://www.udio.com/songs/bDY5CYdJZP93AdpgpfBJNX

rlp··on Porting 58k lines of D and C++ to Jai
I'm not seeing a major problem here, you just need to install MSVC++ alongside it.
rlp··on Ten Years of TypeScript
I've always been a big proponent of TypeScript, but does anyone else feel like the type system has gotten a bit too flexible? I recently had to fix some errors when upgrading packages on an old project, and it was not at all clear what was wrong by just reading the compiler output. For some errors, there were like 5-10 lines of confusing info/context, it felt like trying to understand the errors reported in template-heavy C++.
rlp··on Lisp in 99 lines of C and how to write one yourself [pdf]
Maybe libuv? It's used by node and julia. It's not a full standard library by any means, but it would give you the event loop with async/networking/io/threading.
rlp··on Ask HN: I'm disabled and out of money. Now what?
Sarno's work comes up periodically on HN, and I always have to chime in to say that it cured my RSI. Everything is still completely, 100% cured at 15+ years. As a developer, I have no idea what I would have done without it, my career would have been over. Here are my previous comments:

From 2016: https://news.ycombinator.com/item?id=12990976

From 2021: https://news.ycombinator.com/item?id=26120633

rlp··on Ask HN: What exactly is a mindfulness meditation?
No need for a meditation myth at all, absolutely. It's brain hacking as far as I'm concerned.

As for concentration training vs mindfulness meditation, I do think there's a difference. Concentration is a tight single-pointed focus, while mindfulness is a broad focus on the present moment. I found mindfulness meditation basically impossible without practicing concentration meditation extensively first, my mind was too overactive to settle in the present without an anchor to focus on.

rlp··on Ask HN: What exactly is a mindfulness meditation?
It's about training your mind's executive control/function. You learn to focus on one thing and allow others to pass through your awareness without them being overly distracting/disturbing.

Think of your focus like a spotlight. Most people have very little control over their spotlight and it gets aimed at whatever is the latest thing to enter their awareness: a thought, a sound, another thought, a visual, etc. It's bouncing all around, all the time. A proficient meditator can more effectively control where the spotlight points. Over time, as the mind slowly learns to do this better, the stuff outside the spotlight fades and become less intrusive. This leads to increasing states of calm and peacefulness which extend even after the meditation session ends.

rlp··on Racket v8.5
Beautiful Racket is quite nice: https://beautifulracket.com/
rlp··on WebAssembly 2.0 First Working Draft
Also, WebAssembly can't support most GC runtimes now, because you can't scan the stack for roots. You can keep your own shadow stack on the heap, but that has a bunch of pretty bad performance implications. This actually impacts C/C++/Rust codegen as well, since they can't create references/pointers to anything on the stack, and have to build their own shadow stack (I think this is done in binaryen or LLVM itself?). I understand it's a security thing to disallow direct stack access, but most languages and runtimes expect it.

Anyways, that's why there needs to be support in WebAssembly for GC, because there needs to be a safe way to walk the stack (aside from the obvious JS interop considerations).

rlp··on Rebelle: Experimental online paint software
I had to turn off uBlock.
rlp··on Packages dumped in wrong lobby, resident tried harder to correct it than Amazon
FedEx maybe. UPS is unionized, I think they pay a fair wage.
rlp··on Write in JavaScript, Render in Flutter
Very cool! I'd love to see proper macros in a major language like Dart. And the proposal looks good, like a mix of Scala and Nemerle.
rlp··on Write in JavaScript, Render in Flutter
Any particular reason you like Dart so much? I tried it briefly, and it felt like a watered-down mashup of Java and C# with somewhat worse performance.
rlp··on Nimforum: Lightweight alternative to Discourse written in Nim
It highly depends on the use case. When people interact with a piece of software all day every day, they tend to appreciate having more information/actions available at a glance. Simple interfaces are better for casual users, but they generally mean more clicking around and tend to be slower to use for experts.
rlp··on Homeless encampment grows on Apple property in Silicon Valley
The property owner should not be responsible for answering that question.
rlp··on Lang Jam: create a programming language in a weekend
There's a Cranelift backend, which is apparently faster at creating debug builds than LLVM: https://github.com/bjorn3/rustc_codegen_cranelift
rlp··on Typing, RSI, and what I do differently
That's great! Like you, it did take me a while to get to 100%. Old habits die hard, I guess. You really know you're there when you realize you forgot to think about RSI for a whole week/month/whatever.
rlp··on Typing, RSI, and what I do differently
I totally agree, the prevailing RSI advice about posture and exercise and fancy chairs and input devices and taking breaks is not one-size-fits-all. In my case, Sarno's book showed me how my neurotic fixation on RSI was making it worse.

I wrote this comment in 2016: https://news.ycombinator.com/item?id=12990976. My RSI continues to be totally gone (it's been gone 14+ years now, the RSI started a couple years before that), and I never even think about it anymore.

If you have RSI and you are reading this, please try to keep an open mind. Not all cases are the same, and fixating on/worrying about the RSI constantly is not necessarily the best path forward.

rlp··on Blob Opera
Making Blob Opera with David Li: https://www.youtube.com/watch?v=ZfLYuXi6sDI
rlp··on Moving from TypeScript to Rust / WebAssembly
https://arewegameyet.rs/

Rust is not really there yet for game development, in my opinion. Amethyst is probably the most advanced 3D engine at the moment, but they are having some issues with picking an ECS implementation, and it's still very young.

There are a few 2D engines, but they are also not particularly mature either. Coffee looks interesting, although I haven't tried it.

For something lower-level, there's gfx.rs (Amethyst uses this), which is quite impressive. gfx-hal is quite nice for abstracting over DirectX/Vulkan/OpenGL/Metal/etc.

rlp··on Rust for JavaScript Developers – Functions and Control Flow
I have a fair bit of Rust experience, and I agree that it adds a lot of cognitive overhead. It gets better over time as you learn how to appease the compiler, but the borrow checker can still be a pain in the ass. It's something you're constantly aware of, taking up space in your brain.

I can understand the move from C or C++ to Rust, the safety guarantees can be compelling. And it does feel like a much more modern language. However, if something with GC like C# can get the job done, I'd choose that every time over Rust.

rlp··on RedHat Mandrel Makes Java Native
HotSpot uses a JIT compiler that dynamically recompiles code at runtime to speed up hot code paths. GraalVM native compilation cannot do this, and given the nature of Java's non-reified generics, it's very hard to get equivalent speeds at runtime. Profile-guided optimization is the only hope to recover some of that performance gap, and it's currently only available in GraalVM EE. I'm not sure how the benchmarks compare to HotSpot.
rlp··on Procedural Lake Village
This is really cool, but I've always been disappointed that you can't generate Houdini procedural content in UE4 at runtime. It only works in the editor.
rlp··on Genetic Drawing
Yes, it's aware of the previous frame. I believe I used some kind of motion "heat map" that would indicate where the changes were needed based on accumulated deltas that would gradually decay. However, I still had to keep the brush strokes on a reasonably regular-ish grid to get enough paint brush coverage for real-time rendering. Also, if they were too randomly placed, the image jumped around too much.
rlp··on Genetic Drawing
Very nice! The sampling mask makes a big difference. I played around some with creating shaders in Unity for this type of thing last year. I liked how it looked on still frames, but I was never quite satisfied with the results for movement.
rlp··on Three authors retract study on hydroxychloroquine and chloroquine
Increased sales of a competing medication, like Remdesivir.
rlp··on Pros and Cons of Nim
Include doesn't work for cyclic types, they need to be in the same "type" block. I do not agree with Araq's stance here, there are often cases when closely-related types need to reference each other, and it's not always convenient to put them in the same file. That's why you see the "types.nim" file in larger Nim projects -- no one has a good solution and just shoves them all together. And, if you use types.nim, you no longer have proper visibility control, since fields cannot be private and there is no package-level visibility. Most languages understand this, C/C++/Rust all allow at least the ability to forward declare a type (and Rust allows cyclic, out-of-order types).
Page 1 of 2Next →