sirn

Joined 17 years ago

Karma
3,953
Submissions
888
Member since
Oct 25
Contact: [email protected]

Software Developer living in Tokyo, Japan

Current: ElectroRoute Japan (TYO)

Previously: Oozou (BKK), Omise (BKK→TYO), Varnish Software (TYO)

View on Hacker News

Recent submissions

Comment · 1 month ago
> I liked to use a Bluetooth headset. What I really want is to pair the headset (or microphone or whatever device) with the dock, not the computer. As a result, switching just didn't work. And Bluetooth is finnicky at the best of times. This was a pain point;

You can resolve this one with those dongle that did the pairing on the dongle itself, e.g. Sennheiser BTD-600/700. The device will appear on the host machine as a non-Bluetooth audio device.

Comment · 3 months ago
The first issue is due to the assumption that character count equals character display width. Thai tone markers usually[1] should not contribute to the display width (เพื่อน is chars = 6, width = 4), so it caused a layout shift.

The second issue is due to the program's layout engine not adjusting the glyph width of a fallback font to that of the main font. A lot of terminals do this, but it's not common for text editors or browsers (arguably this is the correct behavior for non-terminals, since you cannot assume everything must be snapped to a grid).

Fun test for this:

     |กล้วยหอม|
     |Bananas|
This has the same character width. Ghostty, etc., will render it correctly (| aligned). Most browsers and text editors will not.

[1]: some layout engines render free-standing tone markers as 1 character; in that case, this rule only applies to when tone markers are following a character.

Comment · 6 months ago
When I still used Git, I used to have a minimized `magit-init.el` that essentially did:

    (setq user-emacs-directory (format "~/.emacs.d/magit/%s/" emacs-version))
    (setq custom-file (concat user-emacs-directory "custom.el"))
    (setq make-backup-files nil)
    (setq auto-save-default nil)
    (setq create-lockfiles nil)
    (setq inhibit-startup-screen t)
    (setq initial-scratch-message nil)

    (require 'magit)
    (defun setup-standalone-magit ()
      (magit-project-status)
      (delete-other-windows))
    (add-hook 'after-init-hook 'setup-standalone-magit)
And a small wrapper (`~/.local/bin/magit`):

    #!/bin/sh
    if [ "$(git rev-parse --is-inside-work-tree)" = "true" ]; then
        exec emacs -nw -q --no-splash -l "/path/to/magit-init.el"
    fi
It worked well for me because I can reuse all my keybindings (evil + leader keys with `general`) and my workflow is fully in the terminal. (I have since moved on to Jujutsu, and `jjui` is filling this gap for me right now, but it's not quite a magit-for-jj).
Comment · 11 months ago
Oh thanks. Corrected. My brain saw TW (instead of TC) and short-circuited that as a language name for some reason!
Comment · 11 months ago
I also have to use LINE every day, and I can't say I love it (but it's either this or Facebook). They've been trying to push LINE Premium and LINE AI very hard (at least in Japan) to the point that some features are now blocked (e.g. you cannot unsend photos anymore unless you pay for Premium) and I absolutely hate it.
Comment · 11 months ago
Comment · 1 year ago
It works somewhat more reliable (I've found vterm to break in some interesting ways depending on your cursor position even with evil-collection), but it's pretty awkward to use with evil, at least without any configuration.

For example, pressing 0 to go to beginning of line goes to before the $PS1, rather than the input beginning, going from NORMAL → INSERT inserts text at the end instead of at the cursor, Emacs motion keys doesn't work, etc. I think if I take some time to remap the key it might work, but usually I just switch to Emacs mode or just restrict myself to use only cursor key to navigate.

Comment · 1 year ago
Comment · 1 year ago
> How is it that people were able to create so many mule accounts in the first place? What sort of KYC was going on?

They pay a low-income/no-income person a small fee (possibly monthly) to let them borrow their account. Sadly, people who would fall into this are not hard to find in Thailand.

> What sort of KYC was going on?

There are accounts that are grandfathered in and don’t require KYC but have been able to access online banking, etc. Mine is such, and my bank (BAY) is discontinuing that particular loophole at the end of this month. (I'm in Thailand right now to do this KYC, despite having not come back here for the last 6 years.)

Comment · 1 year ago
It's still mind-blowing to me to think that a decade earlier this would have been a few racks. Now it just fits within 1U or 2U. What an insane world we live in.
Comment · 1 year ago
Comment · 1 year ago
This is more of a successor to the Xeon 6E (Xeon 6700E / Sierra Forest-SP), which had 144 cores. There was supposed to be a 288-core variant (presumably Xeon 6900E / Sierra Forest-AP), but they never released it to the public. I was looking forward to it since Sierra Forest-AP was supposed to support a 2-socket configuration (from motherboard spec). That's 576 physical cores in a single server!
Comment · 1 year ago
I've found that Gemini 2.5 Pro is pretty good at analyzing existing code, but really bad at generating a new code. When I use Gemini with Aider, my session usually went like:

    Me: build a plan to build X
    Gemini: I'll do A, B, and C to achieve X
    Me: that sounds really good, please do
    Gemini: <do A, D, E>
    Me: no, please do B and C.
    Gemini: I apologize. <do A', C, F>
    Me: no! A was already correct, please revert. Also do B and C.
    Gemini: <revert the code to A, D, E>
Whereas Sonnet/Opus on average took me more tries to get it to the implementation plan that I'm satisfied with, but it's so much easier to steer to make it produce the code that I want.
Comment · 1 year ago
My rough mental Intel driver matrix is something like this (might not be entirely correct):

    iGPU:

    | Arch                                         | KMD     | DRI (Mesa)  | Vulkan (Mesa)  | VA         |
    | -------------------------------------------- | ------- | ----------- | -------------- | ---------- |
    | <  Broadwater (Gen4)                         | i915    | i915        | N/A            | N/A        |
    | >= Broadwater (Gen4), < Westmere             | i915    | i915        | N/A            | i965       |
    | >= Westmere (Gen5), < Haswell                | i915    | crocus      | N/A            | i965       |
    | >= Haswell (Gen7), < Broadwell               | i915    | crocus      | hasvk          | i965       |
    | == Broadwell (Gen8)                          | i915    | iris/crocus | anv/hasvk      | iHD        |
    | >= Skylake (Gen9), < Tiger Lake              | i915    | iris        | anv            | iHD        |
    | >= Tiger Lake (Xe/Gen12), < Lunar Lake (Xe2) | i915/xe | iris        | anv            | iHD/libvpl |
    | >= Lunar Lake (Xe2)                          | xe      | iris        | anv            | iHD/libvpl |

    dGPU:

    | Arch                                  | KMD     | DRI (Mesa)  | Vulkan (Mesa)  | VA         |
    | ------------------------------------- | ------- | ----------- | -------------- | ---------- |
    | >= DG1 (Xe/Gen12.1), Battlemage (Xe2) | i915/xe | iris        | anv            | iHD/libvpl |
    | >= Battlemage (Xe2)                   | xe      | iris        | anv            | iHD/libvpl |

Usually, KMD/DRI/Vulkan should work as-is if you use a reasonably recent kernel and mesa, but video acceleration sure is a bit of a mess.
Comment · 1 year ago
i915 is still the main kernel mode driver on Linux for every Intel GPUs up to Alchemist. xe kmd is used by Battlemage by default (as of 6.12).

There's a Mesa DRI driver, called i965 (originally made for Broadwater chipset, thus the 965 numbering), which has since been replaced by either:

- Crocus for anything up to Broadwell (Gen 8)

- Iris for anything from Broadwell and newer

Then there's a Video Acceleration driver, which is (also) called i965. I think this is what you're referring to. There are:

- i965 (aka Intel VAAPI Driver), which supports anything from Westmere (Gen 5) to Coffee Lake (Gen 9.5)

- iHD (aka Intel Media Driver), is a newer one, which supports anything from Broadwell (Gen 8)

- libvpl, an even newer one, which supports anything from Tiger Lake (Gen 12) and up

Battlemage users had to use libvpl until recently because Media Driver 2024Q4 with BMG support was only released 2 weeks ago. Using libvpl with ffmpeg may requires rebuilding ffmpeg, as some distro doesn't have it enabled (due to conflict with legacy Intel Media SDK, so you have to choose).

I have B580 for my Linux machine (6.12), and xe seems pretty stable/performant so far.

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton