HNHacker News
TopNewBestAskShowJobs

bvisness

302 karma · joined October 22, 2018

Handmade Network lead. WebAssembly engineer at Mozilla. FIRST robotics mentor.

https://twitter.com/its_bvisness https://handmade.network/m/bvisness

submissionscomments
bvisness··on I made JSX for Lua
I’m not sure other languages can do “quasiquoting” very easily. Like, JS has template strings, but that’s not “quasiquoting” because the string content is unstructured. Lisp, though, can do this quite easily because it can still parse the unevaluated content with enough structure, and indeed can get you the same benefits I discuss in my article (like making wrapper component functions that directly access the list of children).

As for preferring to write XML directly in my code…95% of my goal is to just deliver XML to the browser. I’d rather just write XML. And honestly the way text nodes are handled in other DSLs seems quite bad to me. I’d much rather write `long paragraph, <strong>emphasis,</strong> long paragraph` than HEREDOC-style long strings that I have to start and end every time I want some inline formatting.

All the examples I see of HTML DSLs are heavy on structure but conspicuously lacking text. For me the text is _the whole point_. I don’t want to worry about string escaping when writing a blog post.

bvisness··on Coroutines make robot code easy
We can use whatever software we want as long as we use the specified hardware (the NI roboRIO), FIRST's latest firmware, and comply with the match system and safety systems that enable and disable the bot at different times. Many teams have been using a community Python alternative called RobotPy for a long time despite it not being officially supported and FIRST had no problem with it.
bvisness··on Coroutines make robot code easy
In practice we actually do; I had to simplify for the article. We have a few utilities like a `runUntilDone` that make simple sequences easier to write. Example: https://github.com/frc-2175/2023RobotCode/blob/main/src/lua/...

I suppose we could make more utilities for running coroutines "in parallel", but I haven't really felt the need. At that point we usually have to worry about exit conditions and it feels natural to just write a loop.

bvisness··on Coroutines make robot code easy
Especially when people try to impose Enterprise Quality Java on the students, and your project gets bloated with interfaces and dependency injection and config files…all for a single platform with fixed hardware :(

When we were still using Java, I had the students just make everything static. We don’t need more than one instance of our IntakeSubsystem. We only have one intake. But the OOP boilerplate persists.

bvisness··on Coroutines make robot code easy
autonomousPeriodic is a tick function; we need to keep ticking. If we spent more than our allotted 20ms in a single autonomousPeriodic then the robot framework’s safety systems kick in and disable all the motors.
bvisness··on Coroutines make robot code easy
The only officially supported languages for the competition are C++, Java, and LabVIEW. When those are your educational options...you stick with Java.

(We've now switched to Lua, integrated with the official C++, but it's a lot more work behind the scenes.)

bvisness··on Ask HN: Why do we need moderators at all?
For discussion to happen, someone needs to create and maintain the space for discussion. Nobody wants to visit a forum that’s full of unrelated garbage, and nobody wants to talk in forums they don’t like to visit.

The curation is what makes it a forum in the first place.

bvisness··on It's Not Survivorship Bias
This was one of my favorite talks from Handmade Seattle last year. It’s so refreshing to see someone look critically at a software market and study why things succeed, instead of complaining about luck or an overcrowded market.
bvisness··on How to make buttons in VR (2017)
Tunneling can easily happen in any physics setup if things are moving fast enough - and with giant pizza peel hands, the rotation alone was causing things to move too quickly. And in general I don't think it makes sense to use a physics simulation for UI elements like that. You want the behavior to be as reliable and deterministic as possible, and that's easy to achieve without a physics sim for simple interactions.
bvisness··on Weathering Software Winter
I loved seeing this talk in person and really enjoyed reading through it again now. I’m kind of fascinated by the longevity of software for simple systems - games like Another World or Monkey Island or even DOOM are well-loved decades later, whereas games like Black and White that don’t port well are largely forgotten.

I’m surprised to see commenters here who don’t see portability as important for preservation - or maybe just don’t really care about preservation at all.

bvisness··on Weathering Software Winter
“We don’t need to make knowledge individually accessible and maintainable”, followed _immediately_ by “humans are actually really good at preserving knowledge”. Who do you think does the preservation? How do you think preservation works?
bvisness··on I did Advent of Code on a Playstation
I want to revisit my LISP interpreter someday because I have a few ideas about how to implement it more simply. The weird thing, which I only realized after the fact, is that it's less like "building a LISP" and more like "building a LISP machine". One thing I'd like to try for that system is a shared "memory bus" that can be used to allocate and fetch data - right now each node in the system has data-fetching logic built into itself, and it's massively complicated as a result.
bvisness··on I did Advent of Code on a Playstation
It would be great if they could at least bring the runtime to PC so that people could distribute their games more widely - although at that point you might as well have the whole editor too.
bvisness··on I did Advent of Code on a Playstation
I think the Dreams logic system is good at orchestrating high-level behavior, and not actually great at building complex logic. Dreams works not because you can visualize your timers and variables and toggles, but because the underlying game systems are extremely well-designed and easy to control with such a system. In a sense, a lot of the difficult stuff has been pushed behind the scenes. This is not a criticism; I think it's a very good way to design programming environments for others to use.
bvisness··on I did Advent of Code on a Playstation
I actually did get sound panels for my room, but I apparently need more, because they did a pretty disappointing job. I also need a mic arm that doesn't spontaneously collapse when I move it closer to my face. (Don't buy Blue Yeti's mic arm.)

I'll definitely consider a dynamic microphone for my next big on-stream project, whenever that happens. (I have no idea when it will happen.)

bvisness··on I did Advent of Code on a Playstation
I would love to see someone with electronics experience use Dreams for a while. My total electronics experience is Snap Circuits and Ben Eater videos, so I can't make as rich a connection to electronics as you might hope from an article like this. Maybe there are techniques from real-world circuit design that would actually transfer to Dreams, who knows?
bvisness··on Tips for Better Burgers (2010)
I love the POV style, especially paired with the lack of cuts. Gives me a better sense of everything he's doing in the kitchen - when else would you see how he keeps his fridge or spice cabinet organized?
bvisness··on Tips for Better Burgers (2010)
In a video on Kenji's YouTube channel, he and his sous chef at Wursthall went through their sausage-making process, and they talked about how when they grind meat for sausages, they make sure the grinder parts and plates are in the freezer for at least an hour before grinding. (The video is entitled "Let Me Show You Erik's Sausage Room", at about 7:45.)
bvisness··on Best practices can slow your application down
SO has been wildly successful, the site is consistently fast and reliable, and it doesn't seem like their decisions have significantly held them back during development. None of this sounds "poor-quality" to me.
← PreviousPage 3 of 3