<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: zovirl</title><link>https://news.ycombinator.com/user?id=zovirl</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sat, 30 May 2026 23:55:50 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=zovirl" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by zovirl in "Artemis computer running two instances of MS outlook; they can't figure out why"]]></title><description><![CDATA[
<p>As long as the orbit isn't changing, pointing the antenna is not hard and can be done by hand. I've done it with a handheld yagi antenna and the ISS, which has a 90-minute orbit (and an amateur radio repeater). I used a computer program to find the next overhead transit, paying attention to start & end times and start & end azimuth. Then used a watch to know where to point the antenna during the transit: at the horizon at the start, overhead halfway through the transit, at the opposite horizon at the end. Transits were 5-10 minutes so there's plenty of time to move the antenna.</p>
]]></description><pubDate>Fri, 03 Apr 2026 01:11:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=47622238</link><dc:creator>zovirl</dc:creator><comments>https://news.ycombinator.com/item?id=47622238</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47622238</guid></item><item><title><![CDATA[New comment by zovirl in "We haven't seen the worst of what gambling and prediction markets will do"]]></title><description><![CDATA[
<p>In the same way that crypto has been speed running the history of banking scams, it seems prediction markets are going to speed run the history of gambling and insurance fraud.</p>
]]></description><pubDate>Fri, 27 Mar 2026 03:19:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=47538784</link><dc:creator>zovirl</dc:creator><comments>https://news.ycombinator.com/item?id=47538784</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47538784</guid></item><item><title><![CDATA[New comment by zovirl in "We haven't seen the worst of what gambling and prediction markets will do"]]></title><description><![CDATA[
<p>With enough cash on the line, humans are very resourceful at manipulating outcomes.<p>Humans already control the weather: <a href="https://en.wikipedia.org/wiki/Cloud_seeding" rel="nofollow">https://en.wikipedia.org/wiki/Cloud_seeding</a>.<p>We already have an example of humans sabotaging the measurement of weather: <a href="https://news.ycombinator.com/item?id=41684440">https://news.ycombinator.com/item?id=41684440</a>. Two ranchers sabotaged weather monitoring stations in order to fraudulently collect millions in drought insurance. One of the farmhands involved ended up dead.<p>And we have an example of prediction markets attempting to manipulate reporting of events: <a href="https://news.ycombinator.com/item?id=47397822">https://news.ycombinator.com/item?id=47397822</a>.<p>I have a hard time believing weather prediction markets will be net beneficial. The incentive for sabotage & manipulation up and down the chain seems likely to lead to worse weather predictions overall.</p>
]]></description><pubDate>Fri, 27 Mar 2026 00:07:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=47537499</link><dc:creator>zovirl</dc:creator><comments>https://news.ycombinator.com/item?id=47537499</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47537499</guid></item><item><title><![CDATA[New comment by zovirl in "Sprites on the Web"]]></title><description><![CDATA[
<p>Additionally, the file size of the sprite sheet image is often smaller than the combined file sizes of the individual images. (I never looked into why but expect it has to do with sharing overhead and the compression dictionary)</p>
]]></description><pubDate>Fri, 27 Feb 2026 16:54:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=47182740</link><dc:creator>zovirl</dc:creator><comments>https://news.ycombinator.com/item?id=47182740</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47182740</guid></item><item><title><![CDATA[New comment by zovirl in "From Nevada to Kansas by Glider"]]></title><description><![CDATA[
<p>Can you speak more on why glider pilots need night vision googles to fly at night but single-engine pilots don’t? Is it the risk of landing out? Or are they flying closer to the terrain?</p>
]]></description><pubDate>Tue, 20 Jan 2026 04:54:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=46688048</link><dc:creator>zovirl</dc:creator><comments>https://news.ycombinator.com/item?id=46688048</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46688048</guid></item><item><title><![CDATA[New comment by zovirl in "Game design is simple"]]></title><description><![CDATA[
<p>I agree there aren't very many. I can think of PuzzleScript, Unreal Blueprints, and Machinations (mentioned elsewhere in this thread). Perhaps this dearth is why Blueprints got so popular?<p>Honorable mentions might go to PICO-8's flavor of Lua (C-like but clearly designed to create a specific type of game and have a specific developer experience) and Excel (used for developing & balancing game mechanics, but usually replaced in the final product).</p>
]]></description><pubDate>Fri, 07 Nov 2025 21:12:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=45851163</link><dc:creator>zovirl</dc:creator><comments>https://news.ycombinator.com/item?id=45851163</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45851163</guid></item><item><title><![CDATA[New comment by zovirl in "Forth: The programming language that writes itself"]]></title><description><![CDATA[
<p>I was lucky, early in my career, to work at a place which used a lot of Perl and to read Damian Conway’s book, Object Oriented Perl. It was an amazing, mind-expanding book for me. It was filled with examples of different approaches to object-oriented programming, more than I ever dreamt existed, and it showed how to implement them all in Perl.<p>So much power! And right in line with Perl’s mantra, “there’s more than one way to do it.”<p>Unfortunately, our codebase contained more than one way of doing it.  Different parts of the code used different, incompatible object systems. It was a lot of extra work to learn them all and make them work with each other.<p>It was a relief to later move to a language which only supported a single flavor of object-oriented programming.</p>
]]></description><pubDate>Mon, 20 Oct 2025 05:58:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=45640473</link><dc:creator>zovirl</dc:creator><comments>https://news.ycombinator.com/item?id=45640473</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45640473</guid></item><item><title><![CDATA[New comment by zovirl in "Forth: The programming language that writes itself"]]></title><description><![CDATA[
<p>And at the extremes, too much power makes a tool less useful. I don’t drive an F1 car to work, I don’t plant tulips with an excavator, I don’t use a sledgehammer when hanging a picture. Those tools are all too powerful for the job.</p>
]]></description><pubDate>Mon, 20 Oct 2025 05:30:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=45640368</link><dc:creator>zovirl</dc:creator><comments>https://news.ycombinator.com/item?id=45640368</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45640368</guid></item><item><title><![CDATA[New comment by zovirl in "Learn to play Go"]]></title><description><![CDATA[
<p><a href="http://online-go.com" rel="nofollow">http://online-go.com</a> has an interesting anti-stalling feature: If you pass several times it checks with KataGo. If KataGo is 99% sure you will win, either player can click a button to accept that result and end the game.</p>
]]></description><pubDate>Sun, 28 Sep 2025 17:45:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=45406294</link><dc:creator>zovirl</dc:creator><comments>https://news.ycombinator.com/item?id=45406294</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45406294</guid></item><item><title><![CDATA[New comment by zovirl in "Learn to play Go"]]></title><description><![CDATA[
<p>Sensei's Library is a gem from the non-commercial web! It reminds me of the C2 wiki (<a href="https://wiki.c2.com" rel="nofollow">https://wiki.c2.com</a>) but for Go instead of software engineering.</p>
]]></description><pubDate>Sun, 28 Sep 2025 17:33:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=45406209</link><dc:creator>zovirl</dc:creator><comments>https://news.ycombinator.com/item?id=45406209</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45406209</guid></item><item><title><![CDATA[New comment by zovirl in "How to be a leader when the vibes are off"]]></title><description><![CDATA[
<p>Even in situations where this is true, there's almost certainly a better phrasing than "this new policy sucks," which only communicates an emotion. It is imprecise. Listeners will jump to their own conclusions about why you think it sucks.<p>You can acknowledge the problems more directly: "I get it, we don't have enough chairs so Wednesday is likely to be a challenge." or "I know mandatory 9-5 is going to disrupt your commute."<p>A bonus of the more precise approach is you can follow up with "do you have other issues with the new policy that I may not know?"</p>
]]></description><pubDate>Thu, 25 Sep 2025 16:47:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=45375255</link><dc:creator>zovirl</dc:creator><comments>https://news.ycombinator.com/item?id=45375255</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45375255</guid></item><item><title><![CDATA[New comment by zovirl in "Why haven't local-first apps become popular?"]]></title><description><![CDATA[
<p>I think the parent was complaining about mentions of CRDTs which don’t acknowledge that the problem domain CRDTs work in is very low level, and don’t mention how much additional effort is needed to make merging work in a way that’s useful for users.<p>This article is a perfect example: it says syncing is a challenge for local-first apps, logical clocks and CRDTs are the solution, and then just ends. It ignores the elephant in the room: CRDTs get you consistency, but consistency isn’t enough.<p>Take a local-first text editor, for example: a CRDT ensures all nodes eventually converge on the same text, but doesn’t guarantee the meaning or structure is preserved. Maybe the text was valid English, or JSON, or alphabetized, but after the merge, it may not be.<p>My suspicion, and I might be going out on a limb here, is that articles don’t talk about this because there is no good solution to merging for offline or local-first apps. My reasoning is that if there was a good solution, git would adopt it. The fact that git stills makes me resolve merge conflicts manually makes me think no one has found a better way.</p>
]]></description><pubDate>Tue, 23 Sep 2025 06:08:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=45343332</link><dc:creator>zovirl</dc:creator><comments>https://news.ycombinator.com/item?id=45343332</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45343332</guid></item><item><title><![CDATA[New comment by zovirl in "Easy Forth (2015)"]]></title><description><![CDATA[
<p>>  My problem is that I cannot see how control flow works in Forth, e.g. a simple if-then-else.<p>What made it click for me was <a href="http://www.exemark.com/FORTH/eForthOverviewv5.pdf" rel="nofollow">http://www.exemark.com/FORTH/eForthOverviewv5.pdf</a>, specifically sections 2.3 "Loops and Branches" and 5.3 "Structures". With a slight simplification, if/else/then branching is defined in 7 words.<p>Two primitive words, branch and ?branch (in python because I know it better than assembly):<p><pre><code>  def branch():
    """ branch is followed by an address, which it unconditionally jumps to."""
    ip = code[ip] # Get address from next cell in code, jump to it.

  def branch_if_zero():
    """ ?branch is followed by an address. ?branch either jumps to that address,
    or skips over the address & continues executing, depending on the value on the
    stack."""
    if stack.pop() == 0: # Pop flag off stack
      ip = code[ip]      # Branch to address held in cell after ?branch
    else:
      ip += 1            # Don't branch, skip over address & keep executing
</code></pre>
Two helper words for forward branching. >MARK adds a placeholder branch address to code and pushes the address of the placeholder. >RESOLVE resolves the branch by replacing the placeholder with the address from the stack.<p><pre><code>  : >MARK    ( -- A ) HERE 0 , ;
  : >RESOLVE ( A -- ) HERE SWAP ! ;
</code></pre>
And then the actual IF, ELSE, and THEN words. IF puts ?branch and a placeholder address in code. ELSE puts branch and a placeholder address in code, then updates the preceding branch address (from an IF or ELSE) to land after the ELSE. THEN updates the preceding branch address to land after the THEN.<p><pre><code>  : IF   ( -- A )   COMPILE ?branch >MARK ; IMMEDIATE
  : ELSE ( A -- A ) COMPILE branch >MARK SWAP >RESOLVE ; IMMEDIATE
  : THEN ( A -- )   >RESOLVE ; IMMEDIATE</code></pre></p>
]]></description><pubDate>Tue, 23 Sep 2025 02:59:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=45342343</link><dc:creator>zovirl</dc:creator><comments>https://news.ycombinator.com/item?id=45342343</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45342343</guid></item><item><title><![CDATA[New comment by zovirl in "Air-dried vs. Kiln-dried Wood"]]></title><description><![CDATA[
<p>From the Nature article posted by unwind, it sounds like they dated the sand surrounding the wood, not the wood itself.</p>
]]></description><pubDate>Wed, 11 Jun 2025 20:21:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=44251386</link><dc:creator>zovirl</dc:creator><comments>https://news.ycombinator.com/item?id=44251386</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44251386</guid></item><item><title><![CDATA[New comment by zovirl in "The Level Design Book"]]></title><description><![CDATA[
<p>I learned an enormous amount from in-person game jams by chatting with other game developers at the event, most of whom were more skilled than I was. I've also found game jams made it easier find collaborators, easier to get feedback from other designers, and easier to see how other people approach the same theme.<p>> But if you don't know how to make a game, where does the knowledge come from?<p>If you're at the stage where you feel like you don't know how to make a game, you might find value in doing the exercises from the book "Challenges for Game Designers" by Brathwaite & Schreiber.</p>
]]></description><pubDate>Wed, 28 May 2025 15:34:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=44117139</link><dc:creator>zovirl</dc:creator><comments>https://news.ycombinator.com/item?id=44117139</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44117139</guid></item><item><title><![CDATA[New comment by zovirl in "Ask HN: Recommend resources that helped your game dev journey?"]]></title><description><![CDATA[
<p>Resources which helped me get started:<p>"Challenges for Games Designers" by Brathwaite & Schreiber. This was by far the most helpful, as it laid out a process of finding & refining fun game ideas.<p>"Game Feel" by Swink. Examines why jumping feels better in Super Mario than Donkey Kong, why Street Fighter feels the way it does, etc. This way of breaking down & examining mechanics was eye opening and can be applied to other kinds of games.<p>lostgarden.com, especially <a href="https://lostgarden.com/2008/12/06/post-it-note-design-docs/" rel="nofollow">https://lostgarden.com/2008/12/06/post-it-note-design-docs/</a>, which describes a process for rapidly iterating on ideas, and <a href="https://lostgarden.com/2006/10/24/what-are-game-mechanics/" rel="nofollow">https://lostgarden.com/2006/10/24/what-are-game-mechanics/</a>, which introduced me to some of the fundamental building blocks of game mechanics.<p>Resources which helped me later:<p>I found "Art of Game Design" to be helpful later, when working on making a good game into a great game. The different lenses were great for finding areas where I could improve a game.<p><a href="https://www.youtube.com/watch?v=Fy0aCDmgnxg" rel="nofollow">https://www.youtube.com/watch?v=Fy0aCDmgnxg</a> really drove home how important polish is. This was useful after I had a game which was already a bit fun.<p>Finally, an observation & a suggestion, if you're open to them: You admit that you don't know game design, yet you're attempting to innovate by removing limits. This seems like an enormous challenge for a beginner, like someone who doesn't know how to play an instrument attempting to make a new style of jazz.<p>I think you'd have more success if you learned to play the instrument first: Practice by making a lot of small games. Spend 2-4 days on each, no more. Learn to use prototypes to explore the design space, searching for ideas with a glimmer of fun. When you find one, iterate on it to see if you can refine it into something more fun. As your game design skills improve, your ability to innovate will improve too.</p>
]]></description><pubDate>Fri, 28 Feb 2025 18:45:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=43208938</link><dc:creator>zovirl</dc:creator><comments>https://news.ycombinator.com/item?id=43208938</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43208938</guid></item><item><title><![CDATA[New comment by zovirl in "Kenney.nl: Free Game Assets"]]></title><description><![CDATA[
<p>I’ve used music from Kevin MacLeod [0] and Heatly Bros [1] in projects.<p>[0] <a href="https://incompetech.com/music/royalty-free/music.html" rel="nofollow">https://incompetech.com/music/royalty-free/music.html</a><p>[1] <a href="https://heatleybros.bandcamp.com/music" rel="nofollow">https://heatleybros.bandcamp.com/music</a></p>
]]></description><pubDate>Sun, 12 Jan 2025 15:56:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=42674410</link><dc:creator>zovirl</dc:creator><comments>https://news.ycombinator.com/item?id=42674410</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42674410</guid></item></channel></rss>