HN user

thangalin

2,779 karma

Seeking alpha readers for a near-future hard sci-fi story that combines elements of generally intelligent machines, hunger, agrotech, surveillance, militarized police, virtual reality, hacking, climate change, and anti-establishment.

username @ gmail

Posts112
Comments849
View on HN
dave.autonoma.ca 3mo ago

We Don't Know: A Case for Mars

thangalin
1pts2
repo.autonoma.ca 4mo ago

Show HN: TreeTrek

thangalin
2pts0
news.ycombinator.com 6mo ago

Ask HN: Variable Trace

thangalin
1pts0
keenwrite.com 9mo ago

Creating Catchy Cover Letters

thangalin
3pts0
keenwrite.com 10mo ago

Show HN: KeenWrite 3.6.3

thangalin
3pts0
keenwrite.com 10mo ago

Text Format Feature Matrix

thangalin
2pts1
dave.autonoma.ca 1y ago

Project Gutenberg Projects (2020)

thangalin
2pts0
dave.autonoma.ca 1y ago

Racism in Technology

thangalin
4pts0
news.ycombinator.com 1y ago

Ask HN: Real-time speech-to-speech translation

thangalin
158pts70
news.ycombinator.com 1y ago

Ask HN: Self-hosted FOSS PDF annotator

thangalin
1pts0
news.ycombinator.com 2y ago

Ask HN: 3840x2160 120 Hz KVM

thangalin
4pts2
news.ycombinator.com 2y ago

Ask HN: CPU-based LLM for Markdown editor

thangalin
2pts1
dave.autonoma.ca 2y ago

PHP File Download Hit Counter

thangalin
1pts0
github.com 3y ago

KeenWrite 3.3.2: MermaidJS diagrams (with caveat)

thangalin
3pts0
dave.autonoma.ca 3y ago

Relative Sizes of Planets and Stars

thangalin
1pts0
github.com 3y ago

Show HN: KmCaster – Screencasting software to display keyboard and mouse status

thangalin
1pts0
github.com 3y ago

Pure Java SVG Implementation

thangalin
6pts0
news.ycombinator.com 3y ago

Ask HN: Where are all the climate jobs?

thangalin
5pts1
news.ycombinator.com 4y ago

Ask HN: Hardware asset management and booking system

thangalin
1pts0
github.com 4y ago

KeenWrite 2.7.1

thangalin
1pts2
dave.autonoma.ca 4y ago

Logging as a code smell

thangalin
38pts52
news.ycombinator.com 4y ago

Global Warming of 1.5 ºC

thangalin
7pts5
en.wikipedia.org 4y ago

Fairy Creek old-growth logging protests

thangalin
1pts0
superuser.com 4y ago

Firefox 91 – Revert back to old tab style

thangalin
146pts61
github.com 4y ago

Show HN: KmCaster – display keyboard and mouse events on-screen

thangalin
42pts5
github.com 5y ago

Show HN: KeenWrite, edit with variables

thangalin
4pts2
www.scientificamerican.com 5y ago

Unprecedented Heat Wave in Pacific Northwest Driven by Climate Change

thangalin
63pts56
github.com 5y ago

Show HN: KeenWrite, a Desktop Text Editor

thangalin
6pts1
github.com 5y ago

KeenWrite: A Text Editor

thangalin
4pts1
news.ycombinator.com 5y ago

Ask HN: Writing and Variables

thangalin
2pts1

Some examples:

The Mooche

* https://www.youtube.com/watch?v=BPJ5vNmVL3I (The Duke, 1928)

* https://www.youtube.com/watch?v=tLdCq2PKM4o (John Barry, 1984)

Sugar Foot Stomp

* https://www.youtube.com/watch?v=qEdIWVsfPXs (Henderson, 1925)

* https://www.youtube.com/watch?v=35foefTrdLo (Nighthawks, 1993)

Doctor Jazz

* https://www.youtube.com/watch?v=HTYAaX7lqjQ (Morton, 1926)

* https://www.shazam.com/song/1687138286/doctor-jazz (Asaro & Fat Babies, 2016)

I was wondering if anyone was working on this (i.e., using pure software). Period equipment, real musicians, and such would be time consuming, arduous, and cost prohibitive.

Slightly off-topic. Now that 1920s jazz music is falling into public domain, has anyone tried to reinvigorate the music using AI and generative adversarial approaches? Pre-1940s music didn't have high-fidelity sound, so the strong bass lines weren't captured. In theory, we could "downgrade" modern recordings to sound like 1920s recordings, then use adversarial techniques to train the machine on how to restore the antique recordings. Anyone know of any work being done in this area?

It works well, though its messages could use some TLC:

    libEGL warning: pci id for fd 31: 10de:1ff0, driver (null)

    pci id for fd 33: 10de:1ff0, driver (null)
    pci id for fd 34: 10de:1ff0, driver (null)
    libEGL warning: egl: failed to create dri2 screen
    libEGL warning: pci id for fd 31: 10de:1ff0, driver (null)

    pci id for fd 33: 10de:1ff0, driver (null)
    pci id for fd 34: 10de:1ff0, driver (null)
    libEGL warning: egl: failed to create dri2 screen
    libEGL warning: pci id for fd 31: 10de:1ff0, driver (null)

    0124:fixme:nls:RtlGetThreadPreferredUILanguages 00000034, 0313F66C, 0313F6DC 0313F674
    0124:fixme:nls:get_dummy_preferred_ui_language (0x34 0x1009 0313F66C 0313F6DC 0313F674) returning a dummy value (current locale)
    0124:fixme:heap:RtlSetHeapInformation HEAP_INFORMATION_CLASS 1 not implemented!
    0124:fixme:nls:RtlGetThreadPreferredUILanguages 00000034, 0313F9D4, 0313FA44 0313F9DC
    0124:fixme:nls:get_dummy_preferred_ui_language (0x34 0x1009 0313F9D4 0313FA44 0313F9DC) returning a dummy value (current locale)
    0124:fixme:shell:InitNetworkAddressControl stub
    0124:fixme:richedit:editor_handle_message EM_GETLANGOPTIONS: stub
    0124:fixme:richedit:editor_handle_message EM_SETLANGOPTIONS: stub
    0124:fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PERFORMANCE_INFORMATION
    0124:fixme:win:RegisterTouchWindow hwnd 000100E0, flags 0 stub!
    0124:fixme:msvcrt:__clean_type_info_names_internal (7853A300) stub
    0124:fixme:msvcrt:__clean_type_info_names_internal (7B4F6BE4) stub
    0124:fixme:msvcrt:__clean_type_info_names_internal (79410E54) stub
πFS 1 month ago

https://cs.stackexchange.com/a/53737/1704

Matches that occur early enough in π to attain significant compression will not be varied. That is, it isn't possible to use π to compress interesting, real-world data because real-word strings are unlikely to arise early.

Yes. I'm using Gemma-4 31B (gemma-4-31B-it-assistant.Q4_K_M.gguf) with llama.cpp to attribute quotations throughout chapters of my sci-fi novel. I started with Qwen3, but couldn't get it to work. Qwen3 TTS Voice Design, on the other hand, is incredible (Qwen3-TTS-12Hz-1.7B-VoiceDesign). I'm using both for an audiobook generator that produces a variety of voices.

Screens:

* https://i.ibb.co/TBBV5nJk/kl-01.png (voice design)

* https://i.ibb.co/nNvvKDyV/kl-02.png (quotation attributions)

I developed https://keenwrite.com for my hard sci-fi novel. I started with OpenOffice and a spreadsheet and then realized I could combine a character sheet with a Markdown editor. The character sheet became a YAML file with interpolated strings. The editor calls out to ConTeXt for typesetting to PDF. To create an audiobook, the same character sheet identifies the characters for gemma4:31b, which excels at quotation attributions when given a cast of characters and curated list of emotions. Next, I feed the chapters coupled with JSON-formatted attributions, pronunciation guides, and voice descriptions into qwen3 (VoiceDesign, Base, and 32b) to produce an audiobook with a full cast of characters.

Here's some output (to console, not JSON for brevity here) from gemma:

    Unknown (chanting): "Free the food, free the people."
    Unknown (chanting): "Border walls trap us all."
    Chloé Angelos (focused): "Let's see,"
    Yūna Futaba (serious): "The push draws ever nearer,"
    Chloé Angelos (commanding): "Yūna, buzz the CDC,"
    Unknown (formal): "CDC Emergency Operations Centre. What's your emergency?"
    Chloé Angelos (urgent): "Pandora's brew. Populated areas. Releasing soon. Loop in Beale Air Force Base."
I haven't listed all the minor characters, yet, which is why the LLM attributed "unknown" to some quotations.

I'm in the process of containerizing the solution. If interested, email me.

Why reinvent the wheel?

Dependency-free, performance, FORTRAN, and it would take me more than ten minutes to find and integrate a highlighter that works across all of my code bases.

I searched for PHP-based Git libraries. All of them either invoked "git" using a system call or offered write abilities to the repo. I wanted a pure PHP solution that did not write to any files or invoke executable files (for security purposes). Maybe I didn't search long enough; at some point it becomes faster to tell the LLM what's wanted than to find a solution that fits.

print("# not a comment")

Works correctly?

https://i.ibb.co/chgVkTz4/not-a-comment.png

I have the opposite experience:

* https://repo.autonoma.ca/repo/treetrek/tree/HEAD/render/rule... - syntax highlighting for 40 languages and file formats in ~10 minutes

* https://shufflenblues.com/expenses/ - real-time expenses progress updates with payment vendor API in ~30 minutes

* https://repo.autonoma.ca/repo/treetrek/tree/HEAD/git - real-time, cache-free raw Git reader implementation with cloning in ~5 days

* https://repo.autonoma.ca/repo/notanexus - PDFjs integration in ~3 days

However, these are likely not the "hard" problems you've mentioned. I feel like I can architect solutions at a higher-level now, without having to be completely caught up in many technical nuances. I'd rather not learn the extensive PDFjs API, for example, because it would take weeks of effort to understand.

* Time trackers

https://repo.autonoma.ca/repo/timeivy

An unfinished spreadsheet-based interface for entering time. Meant for consulting, but never got around to persisting the data. Mostly created it because I couldn't stand all the ways that time trackers force users to enter structured time when there's a cute algorithm to handle just about every way a human might naturally enter time.

https://stackoverflow.com/a/49185071/59087

* Recipe managers

https://repo.autonoma.ca/repo/recipe-fiddle

In the days of LLMs, it would be far easier to categorize ingredients and format them into TeX for publishing as a PDF file. The idea behind this project was to let people essentially copy/paste recipes off the web or scans of handwritten content and autoformat it.

http://autonoma.ca/calculators/rocket/antimatter/

Given a distance, an allowable time to reach that distance, a payload to send, and an expected exhaust velocity, how would you calculate the time required to convert energy into antimatter fuel and how much antimatter needed to arrive at the destination (starting from the Moon)?

There are a few side calculations, such as the size of the radiator, estimated footprint of the fusion reactor itself, and how much metamaterial is needed. This is to help figure out timelines for a sci-fi novel, so ballpark answers are completely fine.

The calculations yield what appear to be values around the correct order of magnitude. Would be delighted to have insights, comments, and corrections.

In raw C, I like to use the "open"/"close" metaphor and when developing, invoke the routes in parallel. For example:

https://repo.autonoma.ca/repo/mandelbrot/blob/HEAD/main.c

When writing:

    fractal.image = image_open( fractal.width, fractal.height );
I will immediately write below it:
    image_close( fractal.image );
This hides memory allocations altogether. As long as the open/close functions are paired up, it gives me confidence that there are no inadvertent memory leaks. Using small functions eases eyeballing the couplings.

For C++, developing a unit test framework based on Catch2 and ASAN that tracks new/delete invocations is rather powerful. You can even set it up to discount false positives from static allocations. When the unit tests exercise the classes, you get memory leak detection for free.

(I don't mind down votes, but at least reply with what you don't like about this approach, and perhaps suggest a newer approach that we can learn from; contribute to the conversation, please.)

When developing KeenWrite[1], I opted to support only plain TeX. This is because I wanted math typesetting to work for either LaTeX or ConTeXt[2]. To render TeX in the preview panel, I forked NTS[3] into a highly optimized Java version. The lack of cross-platform event-based UI system is what kept me from writing the entire application in Rust (some ten years ago). Has the Rust ecosystem improved with respect to Markdown processing, event-based UIs, and now TeX support?

[1] https://keenwrite.com/screenshots.html

[2] https://wiki.contextgarden.net

[3] https://ctan.org/tex-archive/systems/nts

https://repo.autonoma.ca/treetrek

My free, open-source, bare-bones, caching-free, dependency-free, authentication- and authorization-free pure PHP raw Git viewer. I developed it because GitList blew out my shared host's drive space and memory (due to a caching bug) and to consolidate my GitHub, BitBucket, and GitLab repos. There's something rewarding about self-hosting and not being beholden to the whims of third parties.

I truly love GitHub, and I hope they find their way.

I jumped ship as soon as they added MFA. I vibe-coded my own raw Git repository reader to help consolidate my other repos (BitBucket, GitLab), which inevitably started to impose more restrictions (disk space, MFA), as well. It's no GitHub, but works, doesn't cache, and is pure PHP.

https://repo.autonoma.ca/repo/treetrek