HNHacker News
TopNewBestAskShowJobs

Grom_PE

365 karma · joined January 4, 2016

Web: https://grompe.org/
submissionscomments
Grom_PE··on Nearly 90% of Windows Games Now Run on Linux
I suppose that is an issue how a specific game was made, not inherent to Unity.

I like to look inside game files and a .zip archive of 1GB unpacking to ~10GB game made me suspicious.

Grom_PE··on Nearly 90% of Windows Games Now Run on Linux
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
Grom_PE··on Tags to make HTML work like you expect
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.

Grom_PE··on MS-DOS development resources
Note that DOS development tools aren't strictly necessary to make DOS software, as with help of HX DOS Extender [0], one may use any tooling that lets you produce Win32 PE exe files, of course, preferably with inline assembler to access hardware directly.

[0] https://github.com/Baron-von-Riedesel/HX

Grom_PE··on Customasm – An assembler for custom, user-defined instruction sets
flat assembler g (fasmg) does this. It has a powerful macro language, in which, among other architectures and formats, it implements x86 and ELF/PE/macho and is able to assemble itself.

I like to use it for scripting for turning binary formats to text and vice-versa.

Grom_PE··on SVG Triangle of Compromise
I think the main cause of black rectangle is the lack of support for nested CSS. At least that's what I'm seeing in my browser.
Grom_PE··on A Clone of Deluxe Paint II Written in Python
Seriously, a pixel art painting program with a crude CRT scanline filter overlayed on top, at arbitrary scale instead of strictly enforcing perfect pixels? What is this for, to create a feeling of using an old computer? Even VGA had double scan at 320x200 resolution for better clarity.
Grom_PE··on Let's stop counting centuries
I agree. Another good point to get rid of counting centuries would be that in some languages (Russian) centuries are written in Roman numerals. It's annoying having to pause and think of conversion.
Grom_PE··on Inline Assembly Dangers
Inline assembly was very pleasant to write in Turbo Pascal and Delphi.

In D language it looks okay too.

In GCC, inline assembly has insane syntax. Probably on purpose, to discourage writing it.

Grom_PE··on The Downfall of DeviantArt
Ah, I remember deviantART, besides a gallery, was my JavaScript (userJS) playground. I found ways to automate giving llamas (for free points and for receiving 10000 llamas in return), discovered API paths to read hidden/deleted comments and journals (fixed now).

Since the aptly named "Eclipse" redesign it became terrible to use, so I stopped.

The lean into AI will just let it rot for a few more years than otherwise.

Grom_PE··on Comparing Windows uninstallers, getting upset and then deciding to make my own
Windows registry is such a good place to get lost it's been used by many trial software to leave hard to detect marks there.

Instead of trying to solve an impossible task like attempting to detect and remove "leftovers", it's more reasonable to prevent it from happening in the first place.

Most programs don't even need installers and work after simply unpacking into a directory like a zip archive.

For the rest, running programs in a sandbox like Sandboxie keeps their file and registry changes contained to a specific directory that you can simply delete. Coincidentally, it also makes all programs portable so you don't have to reinstall them when you reinstall Windows.

But of course all of that is quickly growing irrelevant as Windows itself is becoming more and more of crapware.

Grom_PE··on Far Manager: files and archives in Windows
Far Manager is a critical piece of software for me to be able to use a computer comfortably and efficiently. Used it all the way from Windows 98 to Windows 7, and now Arch Linux.

Especially since LuaJIT support was added in Far 3 (and far2l Linux port's fork, far2m), I made it to be able to execute a line of Lua code under cursor or in a block of selected text, and print the result (if any) to the editor, turning the editor into something conceptually stronger than a REPL or a command prompt combined.

So now I have two upgrades over command prompt: file-focused, as with Far by default, and Lua-focused.

I've been joking that Far Manager has become my real OS. It also was a source of endless debates with my Linux friend, who insists that everything I can do in Far, he can do in Bash quicker, but that seems true only because he doesn't know Far keyboard shortcuts.

Grom_PE··on PSA: Intel Graphics Drivers Now Collect Telemetry by Default
Yep. Jumped ship after Windows 7 due to pervasive telemetry. That was a deal breaker for me. It's funny that Windows (and its ecosystem) getting shitty is the major factor of "Linux desktop" happening.

I figured that the effort of decrapifying Windows has outgrown the effort of configuring a Linux system, and furthermore, the former becomes obsolete with every Windows update, but the latter stays with you forever.

In 2022, Linux port of Far Manager, far2l, got a fork with LuaJIT scripting support, far2m, and that was the last thing holding me on Windows.

Grom_PE··on IRC is the only viable chat protocol (2022)
No, I much prefer XMPP MUC to IRC.

- Doesn't expose your IP address by default

- No need to fiddle with automating responses to NickServ to log in

- No need to register with that specific chat server, can simply use your XMPP account for any server

- No annoying netsplits

- Supports multiline text messages

- Has avatar, away status, profile info support

- Can show about 20 last messages when you join a chat so you have some context of the conversation

- Nicknames can have spaces and Unicode

- Can transparently join from multiple devices under a single nickname, no need to kill a "ghost" from time to time after a lost connection

- Configurable with GUI instead of cryptic modes designated by a single character symbol that varies from server to server

Grom_PE··on Flash Museum
I get "Something went wrong :(" because flashmuseum.s3.amazonaws.com requires Referer HTTP header to be set, but I actually like this as error details shows me the link to .swf file to use in a standalone Flash player.
Grom_PE··on DeepSID: Online Commodore 64 SID Player
Droidsound-E plays SID format nicely for me, among others.
Grom_PE··on Mozilla ending support for Windows 7
That's a shame. Windows 7 is the last good Windows.

I'm not convinced that later versions of Windows have some incredibly useful APIs that cannot be called dynamically and need to be used unconditionally.

This chase after new APIs also makes the program harder to support in ReactOS and Wine.

Grom_PE··on A curated list of uBlock origin filters
No, I'm using Vivaldi. Chromium-based browsers have an option "Allow access to file URLs" for extensions. In Firefox this functionality is missing. But it might be possible to patch omni.ja to get it anyway:

https://bugzilla.mozilla.org/show_bug.cgi?id=1266960#c43

Grom_PE··on A curated list of uBlock origin filters
It certainly worked for me when I used Windows. Try either of these:

    file:///C:/stuff/scriptlets.js
    file://localhost/C:/stuff/scriptlets.js
I must say I wouldn't want to add a remote 3rd party URL to this setting, what if it updates with bad code?
Grom_PE··on A curated list of uBlock origin filters
After switching browsers, I never actually reinstalled Greasemonkey as uBlock Origin has the capability to inject custom JavaScript.

Check "I am an advanced user", then in "Advanced settings" set the parameter to something like:

    userResourcesLocation file://localhost/home/user/stuff/scriptlets.js
And in the scriptlets.js file, text between the line "/// ScriptName.js" and an empty line is considered a separate scriptlet, which you can add to an URL in "My filters" like:

    news.ycombinator.com##+js(ScriptName.js)
The annoying bit is that scriptlets are cached, and to update them, you have to edit the "userResourcesLocation" setting, for that reason I made "scriptlets1.js" a symlink to the original file and switch back and forth whenever I edit it.
Grom_PE··on Show HN: WinGPT – AI assistant for Windows 3.1
If you used Win32s for Windows 3.1, you wouldn't have to bother with the segmented memory model and it could also work on 64-bit Windows.
Grom_PE··on More malicious extensions in Chrome Web Store
I don't get how one is supposed to stay secure with the current way extensions work: all you have access to is a button that only installs and runs an extension, and at any point of time, it may automatically update with malicious code after the author has agreed to transfer control to someone else for an enticing sum of money. It happened several times before.

To fix this, I've made my own UserJS that changes the "install" button into "download CRX", then I unpack the CRX file and remove the autoupdate URL from it so the code stays as it was when I last looked at it. Sometimes the extension's job is not worth having an extra extension installed (each spawns its own separate background process) so I paste the code into a userscript or a conglomerate extension instead.

The chromium-based browser I use, Vivaldi, prevents injecting user scripts into "chrome.google.com" so I have to change the string in the browser binary to something like "chrame.google.com". Then it works.

Grom_PE··on My experience being blocked by Google Safe Browsing (2022)
My website also ended up in Safe Browsing list for some reason, and instead of registering on Google, I started to make an example of it to my friends to disable that Safe Browsing feature in their browser. It lasted for a week, perhaps, before it disappeared from the list. I didn't change anything during that time.
Grom_PE··on Why Not document.write()?
That is precisely how I use document.write() in order to replace the current page with a better one from a userscript.
Grom_PE··on Target="_blank" – An underestimated vulnerability (2016)
Killing off "_blank" would disable force-opening links in a new window, which is useful in dynamic context, e.g. chat page, so I don't want that.

Also, window.opener is still abusable if I middle-click links to open in a new tab. I was very surprised when my Google Search tab got replaced by something else after I middle-clicked on some questionable link.

Grom_PE··on Target="_blank" – An underestimated vulnerability (2016)
In Opera 12, I killed "window.opener" by replacing the "opener" string with "opera" in the opera.dll. This way it gets overwritten by the normal window.opera variable and is essentially hidden. So far I haven't encountered a site legitimately relying on this variable.
Grom_PE··on Microsoft gives up on Windows 10 Mobile
If only I could properly reprogram this WP8.1 phone I have here, it would've been much more interesting.

But rooting/jailbreaking (in WP world called "Interop unlock") has always been awkward and possible only for the most popular types of WP: Lumia, Samsung.

To write programs, it requires me to install Windows 8 or 10 — can't do with Windows 7 or Linux.

Even if I write a program, this phone requires special developer unlocking online for "sideloading" two apps maximum at a time, another arbitrary awkward limitation which can be circumvented by shuffling around with an SD card: loading an app into phone, moving the app to SD, disconnecting the SD, loading another app and so on.

WP8.1 does have an ability to install an app from a file directly, but only if it is signed with special enterprise signature, and that isn't cheap.

Of browsers, only IE and IE-based browsers exist for WP, and that means no proper customization and of course no ad blocking.

So the platform looked quite hostile to me and I wasn't motivated to explore any further.

Grom_PE··on The tale of aux.c
On Windows, paths can be accessed with \\?\ prefix:

    mkdir \\?\V:\con
    notepad \\?\V:\con\aux.txt
This avoids reserved filenames as well as 260-character length restriction. But many programs that try to do any path processing fail after seeing an unexpected prefix, even File Open dialog (on Win7 at least).
Grom_PE··on It’s time to kill the web app
The "unfixable design flaws in the web platform itself" that enable HEIST attack are trivially fixed by disabling third-party cookies, on the client side — in the browser's settings, and on the server side — by using SameSite tag in the Set-Cookie header.

I'm just left wondering why browser vendors don't apply this behavior by default, it would've been much cheaper to fix the broken sites than mitigating the security hell that 3rd-party cookies provide.

Grom_PE··on Death to C, ++
Sometimes I wonder how the computing world would turn out if Pascal has won over C.

I spent a lot of time programming in Turbo Pascal, and C has always looked like a major downgrade to me. No modules, insufficient type checking, and the build system is a completely separate step with its own languages brought in (arcane command line, makefiles, project files...).

← PreviousPage 2 of 3Next →