HNHacker News
TopNewBestAskShowJobs

emmanueloga_

2,857 karma · joined November 16, 2013

Software Engineer @ Crunchyroll

https://emmanueloga.com

https://lobste.rs/~emmanueloga

https://mastodon.gamedev.place/@EmmanuelOga

https://bsky.app/profile/emmanuel-oga.bsky.social

submissionscomments
emmanueloga_··on YuE2 · Frontier Music with Symbolic Planning
This video is the perfect answer to your concern: https://www.youtube.com/shorts/R6c_yJZYEQ4
emmanueloga_··on Elevators
looks very well made, but I still prefer https://en.wikipedia.org/wiki/Elevator_Action !
emmanueloga_··on Show HN: Opening lines of famous literary works
Would it be hard to translate to Spanish? I'd love to share with some friends that love books but don't speak English!
emmanueloga_··on Separate the Cord from the Device
Right! [0] Apparently there are not many standard connectors like these, but I found at least one [1] ...

0: https://www.zojirushi.com/blog/design-explained-our-easy-rel...

1: https://www.mcmaster.com/products/breakaway-magnetic-connect...

emmanueloga_··on Show HN: Axe – A 12MB binary that replaces your AI framework
The excessive size of Go binaries is a common complain. I last recall seeing a related discussion on Lobsters [1]. Who knows, maybe the binary could be shrunk a bit? IMHO 12mb binary size is not that big of a deal.

--

1: https://lobste.rs/s/tzyslr/reducing_size_go_binaries_by_up_7...

emmanueloga_··on F# 10
good point, could be some 10 years ago now, I think...
emmanueloga_··on F# 10
I got into OCaml for a while, which naturally led me to try F#. What pushed me away back then was that the tooling lagged behind C#, especially in VS Code, and the C#/F# interop wasn’t as ergonomic as I expected. I liked the idea of using F# for the core and C# around the edges, but it didn’t feel smooth in practice. This was years ago, so maybe the tooling has improved since.

I’ve always wondered whether tighter integration with C# would have led to broader adoption, though that might have changed the character of the language.

emmanueloga_··on Everyone’s building “async agents,” but almost no one can define them
How about framing this in terms of two orthogonal axes the article doesn’t name: concurrency (actors) and continuity (durable execution).

* Durable execution: long‑running, resumable workflows with persistence, replay, and timeouts.

* Actors: isolated entities that own their state and logic, process one message at a time, and get concurrency by existing in large numbers (regardless of whether the runtime uses threads, async/await, or processes under the hood).

Combine the two and you get a "Durable actor", which seems close to what the article calls an “async agent”: a component that can receive messages, maintain state, pause/resume, survive restarts, and call out to an LLM or any other API.

And since spawning is already a primitive in the actor model, the article’s "subagent" fits naturally here too: it’s just another actor the first one creates.

emmanueloga_··on Message Queues: A Simple Guide with Analogies (2024)
I’ve been thinking that defaulting to durable execution over lower‑level primitives like queues makes sense a lot of the time, what do you think?

A lot of the "simple queue" use cases end up needing extra machinery like a transactional‑outbox pattern just to be reliable. Durable‑execution frameworks (DBOS/Temporal/etc.) give you retries, state, and consistency out of the box. Patterns like Sagas also tend to get stitched together on top of queues, but a DE workflow gives you the same guarantees with far less complexity.

The main tradeoff I can think of is latency: DE engines add overhead, so for very high throughput, huge fan‑out, or ultra‑low‑latency pipelines, a bare‑bones queue + custom consumers might still be better.

Curious where others draw the line between the two.

emmanueloga_··on Show HN: Browser-based interactive 3D Three-Body problem simulator
Tried writing an electrostatic particle simulator in Turbo Pascal 7 with BGI as a teen, a handful of particles before it crawled. Then saw a galaxy collision sim on a CD-ROM magazine disc handling thousands of bodies smoothly. Thought it was assembly tricks.. now I'm sure it's algorithmic (avoiding N**2 runtime) but never dug into the specifics. Are charges vs gravity sims essentially the same n-body problem?
emmanueloga_··on Bundler Belongs to the Ruby Community
I haven't used ruby in more than a decade, but I remember there was always some controversy around the corner. Up next: Zed Shaw comes out from his cave, joins forces with the mummy of _why to combat DHH's anti-woke agenda.
emmanueloga_··on Page Object (2013)
Page Object Models trade off clarity for encapsulation. Concrete example [1]. They can make tests look "cleaner" but often obscure what's actually happening. For example:

    await page.getStarted(); // what does this actually do?
vs

    await page.locator('a', { hasText: 'Get started' }).first().click();
    await expect(page.locator('h1', { hasText: 'Installation' })).toBeVisible();
The second version is explicit and self-documenting. Tests don't always benefit from aggressive DRY, but I've seen teams adopt POMs to coordinate between SDETs and SWEs.

--

1: https://playwright.dev/docs/pom

emmanueloga_··on Ripple – A TypeScript UI framework that takes the best of React, Solid, Svelte
How about... inlining children:

    const age = 40;
    const children = [<div ~ "Moe" />, <div ~ "Larry"/>, <div ~ "Curly" />];
    return <div age ~ children />;
Rationale: single child elements are ubiquitous in web dev, but most JSX formatters will require 3 lines of code even if there's a single child.
emmanueloga_··on Malicious versions of Nx and some supporting plugins were published
I just found that someone posted a showHN for an utility to solve this issue [1].

I think this reinforces the idea that is something that could be built into verdaccio.

--

1: https://news.ycombinator.com/item?id=44891786

emmanueloga_··on Malicious versions of Nx and some supporting plugins were published
I wonder if anyone use https://verdaccio.org/ to vendor packages?

In theory for each package one could:

* npm install pkg

* npm pack pkg

* npm publish --registry=https://verdaccio.company.com

* set .npmrc to "registry=https://verdaccio.company.com/ when working with the actual app.

...this way, one could vet packages one by one. The main caveat I see is that it’s very inconvenient to have to vet and publish each package manually.

It would be great if Verdaccio had a UI to make this easier, for example, showing packages that were attempted to install but not yet vetted, and then allowing approval with a single click.

emmanueloga_··on Perfect Freehand – Draw perfect pressure-sensitive freehand lines
Explanation of what this does:

https://github.com/steveruizok/perfect-freehand/tree/main?ta...

emmanueloga_··on Airbrush art of the 80s (2015)
TIL about the Scanimate [1] [2].

--

1: https://en.wikipedia.org/wiki/DVNO#Music_video

2: https://www.youtube.com/watch?v=i1aT_CqhyQs

emmanueloga_··on Vanilla JavaScript support for Tailwind Plus
In real projects I typically group the classes in a way that makes it easier to read, something like this:

    <div class={tw(
      "block",
      "transform transition-all",
      "bg-white ring-1 ring-black/5 rounded-xl shadow-2xl",

      "max-w-3xl mx-auto overflow-hidden",

      "group-data-closed/dialog:opacity-0",
      "group-data-closed/dialog:scale-95",

      "group-data-enter/dialog:duration-300",
      "group-data-enter/dialog:ease-out",

      "group-data-leave/dialog:duration-200",
      "group-data-leave/dialog:ease-in"
    )}>
        ...
    </div>
I currently do this manually but it would be nice to have some tooling to automate that kind of format.
emmanueloga_··on Writing is thinking
There's been a lot of work in this area but no definitive answer, and few constructed languages speakers [1]. I imagine the wins may be marginal, similar to the wins in dvorak vs qwerty typing.

--

1: https://en.wikipedia.org/wiki/Linguistic_relativity#Artifici...

emmanueloga_··on TrendWeight v2 Has Launched
I'm a fan of the app, one of those rare web apps that have been reliably there for more than 10 years and "just works". Today I found out it has been refreshed and its source released [1].

Congrats Erv Walter for the launch of v2 and thank you for making the app and source available!

For those who haven't seen this before, this is a free web app that makes it easy to chart a moving average of the weight measured with smart scales (Withings/Fitbit), following the ideas on John Walker's "The hacker diet" [2].

--

1: https://github.com/ervwalter/trendweight

2: https://www.fourmilab.ch/hackdiet/

emmanueloga_··on Don't animate height
Not just height, anything that causes continuous repaints can become expensive. Search for "jank free" to find more resources on the subject, or check this oldish website [1].

--

1: http://jankfree.org/

emmanueloga_··on NativeJIT: A C++ expression –> x64 JIT (2018)
Looks similar to https://github.com/kobalicek/mathpresso
emmanueloga_··on Coding agents have crossed a chasm
Took me a while to find this [1]: "We’re building the next-gen operating system for AI agents."

--

1: https://sdsa.ai/

emmanueloga_··on Show HN: hcker.news – an ergonomic, timeline-based Hacker News front page
I like it! Suggestions:

* Clarify relationship with https://hckrnews.com/

* Don't put the settings in localStorage, use URL params. That has a lot of usability improvements including being able to share the state, bookmark it, and heads up the current state. Use Rison [1] for the URL params to make it nice to read.

* The settings overview is too terse. What does something like "Timeline, Top 20, Day, Comments"? Maybe you could turn that into a concise natural language sentence.

--

1: https://github.com/kou64yama/rison2?tab=readme-ov-file

emmanueloga_··on Material 3 Expressive
"I understood that the poet's work wasn't in the poetry; it was in inventing reasons for the poetry to be admirable. Naturally, that ulterior work altered the piece for him—but not for anyone else."

  - J. L. Borges, El Aleph [1]
--

1: https://www.goodreads.com/quotes/8699659-comprend-que-el-tra...

emmanueloga_··on Ask HN: What are good high-information density UIs (screenshots, apps, sites)?
Chrome debugger tools? htop? visidata [1]? Clicker games are interesting in that they start bare and end up filling the screen with controls. Rerun visualizations come to mind too [2].

--

1: https://www.youtube.com/watch?v=N1CBDTgGtOU

2: https://rerun.io/viewer

emmanueloga_··on Nnd – a TUI debugger alternative to GDB, LLDB
Cool! I did not know about that book. Added to [1]. :-)

--

1: https://github.com/munificent/craftinginterpreters/issues/92...

emmanueloga_··on Is outbound going to die?
Looks great, is it comparable to Monica [1] or is it more business oriented?

--

1: https://github.com/monicahq/monica

emmanueloga_··on Beyond Elk: Lightweight and Scalable Cloud-Native Log Monitoring
a "no brown M&Ms" razor!
emmanueloga_··on What every developer needs to know about in-process databases
That sounds great!
Page 1 of 34Next →