HN user

Grom_PE

360 karma

Web: https://grompe.org/

Posts0
Comments81
View on HN
No posts found.

For comfortable reading, I just had to figure out what on this webpage causes Chromium to drop subpixel rendering, and it's not this:

    html { -webkit-font-smoothing: antialiased; }
it's this:
    #TableOfContents { backdrop-filter: blur(3px); }
A panel that overlaps content only on narrow screens disables subpixel rendering for the entire text. Thanks Chromium. Not an issue on Firefox, btw.

What the hell.

Just now I learned of "font-family: monospace, monospace" hack. Indeed, browsers will render the font smaller with just one "monospace".

I've never run into it before because setting explicit font-size in pt or px avoids that weirdness.

Maybe if you look at it from far away enough.

Watermarking tries to resist image data manipulation. Smuggling data is concerned with preservation of bytes.

Though if we're executing arbitrary code on the target anyway, ways of embedding data in an image are vast, including watermarking/steganography.

It isn't necessary to use Exif to embed arbitrary data inside an image. Could as well use PNG extra chunk, JFIF app marker, or simply append data to the end of the file.

It would be more interesting to devise a method that survives all extra data stripping and re-encoding, perhaps taking advantage of deterministic encoders, assuming they don't randomize pixel data on purpose.

In other words: turning the image data stream itself into a polyglot.

On Windows, I've mostly avoided CRLF by configuring text editors and git to use LF, and writing text files in binary mode.

The only places that still forced CRLF were batch files and clipboard.

I generally never want programs to go fullscreen because I like to keep taskbar shown, so I can keep track of time, notifications and whatnot.

Well designed video games that rely on fast and precise mouse input capture the cursor during the gameplay until menu is shown.

The only times I have to go fullscreen is for the games that fail to capture the cursor and where accidentally clicking outside of the game window leads to a loss.

Can't imagine a non-game program other than a video player that I would want fullscreen.

Do_not_track 3 months ago

I was worried about .NET sending telemetry once I found about the existence of the DOTNET_CLI_TELEMETRY_OPTOUT env.

Thankfully, the dotnet package installed by package manager on Arch Linux disables telemetry by default. I left the env set just in case.

But my trust towards "modern" software has lowered. I default to run CLI tools, especially those built in JavaScript or .NET with network disabled:

    firejail --net=none
For ilspycmd, for example, I had to defuse its default "update checking" behavior:
    alias ilspycmd='ilspycmd --disable-updatecheck'
This is what I'd call user-hostile defaults.

In my 25 years of using Windows I've grown so much disdain towards annoying, broken, slow installers that I started to instead extract them like zip archives, using various tools: 7-Zip, UniExtract, Observer plugin for Far Manager, sometimes even manual carving.

Most things just worked after being extracted like that. Some things needed a few registry entries, or regsvr32 some dll files.

Modding Windows is akin to building a sand castle. It might be fun, beautiful, but very much impermanent. You can expect it to be washed off with the next Windows update.

I've done it before on Windows 7. Resized system clock, resized start menu button, removed "Terminate batch job (Y/N)?" warning in cmd, etc.

Most annoying is that VirtualBox stops working with the patched uxtheme.dll.

...

Life on Linux is great. My modifications stick for as long as I want. Permanently if I get my patches upstream.

0 and O, and l and I that look the same in a single font is a crime of modern typography.

Also, I remember 8x16 VGA font that came with KeyRus had some slight differences between Cyrillic and Latin lookalikes, that brought some strange sense of comfort when reading, and especially typing the letter c, because its Cyrillic lookalike is located on the same key.

I thought oxfmt would just be a faster drop-in replacement for "biome format"... It wasn't.

Let this be a warning: running oxfmt without any arguments recursively scans directory tree from the current directory for all *.js and *.ts files and silently reformats them.

Thanks to that, I got a few of my Allman-formatted JavaScript files I care about messed up with no option to format them back from K&R style.

AI uBlock Blacklist 5 months ago

I feel that blocking, substituting, and even inserting user-defined resources for a website must be a native browser feature.

I never liked the idea of running Flash inside the web browser, but a single file .swf game format is almost as good as any ROM game dump.

Some games didn't mind running locally from an .swf file, but some others had a "URL protection", presumably to prevent people from embedding their flash games at other websites, and they didn't make an exception for localhost.

Long time ago I've fixed hundreds of such flash games using RABCDAsm and made them work in standalone Flash Player.

Took a brief look at Flashpoint Archive, it seems their way to fix URL check is to spin up a web server to present an address the game expects.

It seems crazy to me that the offered way to install an extension on Chrome is to click a button on a privileged website, and then the installed extension autoupdates without an option to turn it off.

I hate the idea of installing stuff without an ability to look at what's inside first, so what I did was patch Chromium binary, replacing all strings "chromewebstore.google.com" with something else, so I can inject custom JS into that website and turn "Install" button into "Download CRX" button. After downloading, I can unpack the .crx file and look at the code, then install via "Load unpacked" and it never updates automatically. This way I'm sure only the code I've looked at gets executed.

Deluxe Paint 2 for DOS was my favorite drawing program, so had to check this out, pretty nice!

The only thing that stops me from recommending it is non-integer zoom levels, which is especially bad for pixel art.

Moving layers around was also confusing, had to click Layer → Transform → Free Transform to be able to move things around. It would be much more obvious if there was a move icon in the tool panel that does just that.

Uncrossy 6 months ago

It doesn't work when uBlock Origin blocks uncrossy.com/js/cookieManager.js?v=7

Xfce is great 6 months ago

I've found Xfce with Wallis theme to be quite comfortable after I ditched Windows 7. Been using it for 3 years now.

Also I enjoyed how easily I could modify it:

- xfwm4: zoom only to multiples of integer, nearest neighbor only

- xfwm4: stop moving zoomed area after the cursor when Scroll Lock is on

- xfce4-screenshooter: supply custom actions with parameters %x %y %w %h of a selected rectangle, allowing me, for example, to select a rectangle and then launch a screen recording script.

Never found the use for multiple desktops, though.

The only part that irritates me is having to interact with the GTK file chooser (file open dialog). Someday I might be annoyed enough to replace it.

This made me remember old set of tools called mtx2midi and midi2mtx, I used them to edit some midi files while making sure I'm not introducing any unwanted changes. While roundtrip output was not binary identical, it still sounded the same.

Looks like MTXT tool here does not quite work for this use case, the result of the roundtrip of a midi I tried has a segment folded over, making two separate segments play at the same time while the total duration got shorter.

https://files.catbox.moe/5q44q0.zip (buggy output starts at 42 seconds)

On my Linux system, I hooked up xfce4-screenshooter's "custom action" to a shell script (ocr.sh %f) with tesseract like so:

    #!/bin/sh
    set -o pipefail
    lang=${2:-eng}
    if tesseract "$1" - -l $lang | xclip -selection clipboard ; then
      notify-send "Text copied"
    else
      notify-send "Could not copy text"
    fi
It works great most of the time along with the xfce4-screenshooter's ability to select a rectangle.

When the text is especially difficult for tesseract, I can use Gemma3-4B via llama.cpp's llama-mtmd-cli, but that takes a minute.

I have experimented with Tiny Core Linux + Wine, that netted around 100 MB, would be a good starting point for running Windows software on a minimal OS. Certainly would run more software than any Windows cut and shrunk to that size.

I've gone over to Linux after using Windows for 25 years.

As someone who enjoys older games, I am pleasantly surprised that Wine (with dxvk and cnc-ddraw) lets me run more games in a better way than I was able to on Windows.

I can run some 16-bit games on a 64-bit OS!

Games that rudely switch to fullscreen, I can run in Wine Virtual Desktop. Previously on Windows, I had to configure hacks like DxWnd and it didn't always work.

I only wish Wine also allowed me to zoom 2x or 3x, but this is where Gamescope comes in:

    gamescope -S integer -F nearest --borderless wine game.exe
Also there is a potential to use a different Wine configuration (prefix) for every game specifically. So far I haven't had to resort to this.

I noticed some Unity games waste disk space with gigabytes of zeroes, Linux lets me run them from inside a compressed SquashFS image, this even makes the game load faster:

    mkdir ./game
    squashfuse ./game.squashfs ./game
    pushd ./game
    wine game.exe
    popd
    sleep 1
    umount ./game
    rmdir ./game
I encountered a game that crashes due to multiprocessor system, the fix is simple, restricting it to one CPU:
    taskset --cpu-list 1 wine game.exe

I hate how because of iPhone and subsequent mobile phones we have bad defaults for webpages so we're stuck with that viewport meta forever.

If only we had UTF-8 as a default encoding in HTML5 specs too.