Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
maxime_cb
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
7 ms
·
31.
▲
by
maxime_cb
4y ago
Shameless plug: for something more approachable, I've created NoiseCraft, which runs in a web browser, has fewer primitives, and is designed to be easier for beginners to grasp: https://noisecraft.app/1136 (just hit &q
32.
▲
by
maxime_cb
4y ago
If you want to compute like it's 1986, I think it would be fun to build a BASIC interpreter for UVM. Bonus points if you do your own text rendering on a blue background and you add simple primitives for 2D graphics. https://
33.
▲
by
maxime_cb
4y ago
I was thinking something like actors, or independent processes sending messages would be nice. Just because it's very safe and predictable. Less error-prone than threads. The thing that kind of gets me is it seems difficult to have saf
34.
▲
by
maxime_cb
4y ago
> For concurrency it's a lot harder to make a good interface Can you elaborate?
35.
▲
by
maxime_cb
4y ago
> Getting around pointer events inconsistencies is a lot easier than building your own cross-platform VM For sure, and I did. I wrote some code that makes an invisible fullscreen div appear just at the right time to prevent pointer event
36.
▲
by
maxime_cb
4y ago
Thanks for clarifying. Tone is sometimes ambiguous via text. At the moment I'm in no rush to actually write the JIT compiler because I think it's faster to iterate with an interpreter. I want to flesh out the VM and its APIs, test
37.
▲
by
maxime_cb
4y ago
At the moment I have an event-driven system where you can set up callbacks and timers. It's not green threads but it makes it easy to have multiple different update events running at different rates, for example: https://git
38.
▲
by
maxime_cb
4y ago
The level of cynicism on HN is sometimes really depressing. > the jvm already exists and you can run [some] ancient compiled class files with it [but many won't work correctly]. FTFY.
39.
▲
by
maxime_cb
4y ago
> With all due respect, you ain’t going to beat the JVM with your UVM’s JIT compiler, not even close. I think I may be able to get very close to native performance. I don't want to sound like an asshole by appealing to authority, bu
40.
▲
by
maxime_cb
4y ago
I could actually use some feedback when it comes to the design of the parallelism model for UVM. I have a few ideas but it's not my area of expertise, so I would welcome feedback and suggestions.
41.
▲
by
maxime_cb
4y ago
Except that's just not true. It's already broken/incompatible in many places across browsers. You may not notice if you're just doing basic HTML/CSS, but if you do anything slightly more dynamic, you're going t
42.
▲
by
maxime_cb
4y ago
Yes, but POSIX doesn't provide APIs for graphics or audio, for example, even though these things are necessary to build a lot of end-user software.
43.
▲
by
maxime_cb
4y ago
You seem to be doing just fine without me :) Blink is a very impressive project. Mad props.
44.
▲
by
maxime_cb
4y ago
Implementing a good GC is incredibly hard. The JVM may have just "100+ basic instructions", but it also has classes, objects, arrays, and a whole set of APIs it provides. Your JVM is kind of useless if it doesn't ship with al
45.
▲
by
maxime_cb
4y ago
If I had to guess, I would say it probably comes down to wanting to go with static, ahead of time compilation rather than JIT. There are real and valid advantages to AOT compilation. There's downsides with the LLVM approach too. For ex
46.
▲
by
maxime_cb
4y ago
> Does the discussion happen in a public place? If yes I'd be extremely happy to join in since I also got started with making my own system around a month ago, and it feels a bit lonely going on such an endeavor at times. I'm h
47.
▲
by
maxime_cb
4y ago
I go into some of the design decisions I made to make JIT optimizations easier here: https://github.com/maximecb/uvm/blob/main/doc/design.md
48.
▲
by
maxime_cb
4y ago
Besides the issue of whether you pin or don't pin your dependencies, the problem is that node packages can depend on external native code. You can have several more layers of dependencies in there. If, for any reason, those native pack
49.
▲
by
maxime_cb
4y ago
For one the JVM is a huge piece of software. Large enough that only a large corporation could realistically reimplemented or maintain it. It also exposes many APIs with a large surface area. Then there's the issue of Oracle and how you
50.
▲
by
maxime_cb
4y ago
LLVM is more heavyweight. Has a lot of analysis and optimization passes for static compilation. UVM is currently very lightweight, will be JIT compiled. Crucially UVM will provide graphics, audio and networking primitives.
51.
▲
by
maxime_cb
4y ago
Author here. The creator of UXN is a friend of mine and we chat semi-regularly about our VMs. I have a lot of respect for uxn and credit it as an inspiration, but the goals of each project are different. UXN is a 16-bit system with 64KB of
52.
▲
by
maxime_cb
4y ago
Yes. Not only is YJIT directly integrated into CRuby, it's also 100% compatible with your existing Ruby code, which is why we chose to go that route. We didn't want to independently reimplement Ruby because we knew that this would
53.
▲
by
maxime_cb
4y ago
If you believe the language benchmark game, Ruby is faster than Python on many of the microbenchmarks: https://benchmarksgame-team.pages.debian.net/benchmarksgame/... And the benchmark game is using Ruby 3.1, whereas 3
54.
▲
by
maxime_cb
4y ago
Look at it a different way: maybe BASIC is good at exactly what it was intended to do, which is to provide a good intro to programming to kids and beginners. It was never intended to write enterprise-scale software, and that's ok. That
55.
▲
by
maxime_cb
4y ago
That's pretty weird. If you or anyone has time to help me debug this, I would much appreciate your help. Might be something with the CSS.
56.
▲
by
maxime_cb
4y ago
You can save it locally to a file that's in a JSON format and easy to parse. That can allow you to run it locally, or you could build some kind of exporter. Right now to export audio you'd have to record the audio output.
57.
▲
by
maxime_cb
4y ago
Please share your project with acid tones! :)
58.
▲
by
maxime_cb
4y ago
Since 2019 on and off in my spare time. I've found motivation comes and goes and I actually spent one year not working on it at all, but resumed work in 2021.
59.
▲
by
maxime_cb
4y ago
There is a help page to get you started: https://noisecraft.app/help It's pretty basic but I invite people to open pull requests to improve it. This video shows how (an older version) of the app is used: https:/&
60.
▲
by
maxime_cb
4y ago
Thanks Paul. Web development definitely has its downsides. It's been challenging to get everything to work well across Chrome/Firefox and Safari because there's annoying little differences in the way they handle mouse events
More ›