Details
-
AboutBad code factory. Doing my best.
-
SkillsExperience with Python, BASIC, a sprinkling of assembly and C, and a mountain of edge cases.
-
LocationYes. No? Maybe.
-
Website
-
Github
Joined devRant on 8/9/2018
Join devRant
Do all the things like
++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatar
Sign Up
Pipeless API
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple API
Learn More
-
@TrayKnots You're running random.choice against the alphanumeric subset. these people did not. you also did it in around half the lines they did, as you made the mistake of assuming they did it cleanly lmao
-
@TrayKnots if memory serves it was "we use random.choice on the entire ASCII space and discard any double rolls and anything not alphanumeric". my solution was to pull a single random number and pass through base64 (they only needed to be unique, it wasn't required to be secure or anything.) Why they decided to be so fucking picky about it I don't know, but these weird decisions are everywhere because for some reason they're considered "pythonic", and that's why I throw out the "proper way to do it" and just go batshit when needed.
-
@TrayKnots yes, but some people's Python can be stupid slow in the name of "being pythonic." 1.2 seconds over 80-some ms to roll a random string of length 8 because "well we need to use a for loop with random.choice for each character forked to one process per character obviously" is atrocious. i've seen this in a real, moderately-used pypi package (name isn't in front of me at current, and this was a while ago.)
-
you forgot the Torment Nexus.
-
Pretty sure the "thermal tape" you're referring to is defeated by isopropyl, as most thermal paste/pads are.
-
@Demolishun Wabbajack may not work, since the MO2 installer is bypassed with the following script. I forgot to actually link to it last time. https://github.com/rockerbacon/...
-
@awesomeest They've set up interviews, got ghosted after. As usual. Your guess is as good as mine.
-
@Demolishun I haven't seen that option around. I know two things don't work: you need one MO2 install per game as game switching breaks things, and Nexus link management is flaky but generally works with whichever copy is currently open (but it can't start MO2 directly from the browser.)
-
@awesomeest If i'm being completely honest: I know people making six figs in dev that say they are highly impressed by my work, but my actual code quality is garbage so I'm not sure what the fuck they mean
My current projects are:
- DOS-installer-on-CD (more than just batch files and ZIPs, still working on figuring out cross-installation of incompatible DOS versions. current total uncompressed size of all included software: 2.8GB. ISO size: currently ~400MB)
- Tool to relink arbitrary data blobs (makes things like ROM hacks or general code/data insertion easier, requires less work than using Ghidra and minimal architecture knowledge, all you need are pointers. Currently developing alongside port of Action 52 to a better mapper.)
- Toolkit to build a modern Linux environment on old Unix environments (currently Solaris 7.)
- Linux 3DS port (the kernel is a nightmare inside. would not recommend)
Are any of these written well? No, I wouldn't say they are. They do, however, pass the time. -
@awesomeest Incorrect. I'll try links this time, since I don't have much else to say on the matter and I can actually fit them in this time.
https://merriam-webster.com/diction...
https://dictionary.com/browse/...
https://dictionary.cambridge.org/di...
https://oxfordlearnersdictionaries.com/...
https://collinsdictionary.com/dicti...
Calling an argument "a groundless front" due to "their ability level" when only having one interaction with a person is textbook ad hominem. -
@awesomeest If we're just making a list of bullet points on why each person is wrong:
- this is not a formal debate. you are pixels on my screen. you're being deliberately obtuse to win an argument online.
- You are correct in that WSL is technically emulated (it's around halfway to a VM, and can be called emulation to some degree) but the JVM is complicated, because it is closer to an OS that runs a scripting language than an emulator.
- These are not "delusions" if the common definitions, both from official and unofficial sources, agree with me.
- JavaScript does not run under Java, so "try using js without jre or any version of similar functionality" is a daily occurence for those partaking in JS.
- if we're sticking to pointing out logical fallacies like this is reddit, "Personally, im curious as to the ability level of any dev that fights on a groundless front that imposes relatively abstract concepts of basic system functionalities, like emulation." is ad hominem. -
@awesomeest By your custom definition of "proxy = VPN = \"anything that changes or routes traffic\"", a Unix-style socket, any networking request individually, a serial connection, a driver, or any other even minor change to the analog values flying down the copper coming out of your PC counts as a VPN. This is completely ridiculous, and you know it. I'd love to see your credentials, because even a basic class at a library teaching the elderly how to apply for a job probably results in a definition of VPN closer to the official definitions than yours. The fact that you are willing to argue about public definitions of standardized interfaces indicates that you're only here to stir shit. I would prefer that you either ask your local elementary school janitor to teach you these things, or look them up yourself.
post "i don't fucking care anymore"/"this is bullshit" -
@awesomeest As for scope, the loosest definition I can find that is common denotes that "A VPN is created by establishing a virtual point-to-point connection through the use of tunneling protocols over existing networks." A proxy (definition as used by EVERYONE BUT YOU, apparently: "Instead of connecting directly to a server that can fulfill a request for a resource, such as a file or web page, the client directs the request to the proxy server, which evaluates the request and performs the required network transactions.") does not tunnel traffic, but merely redirects it. Minimal to no post-processing should be done to traffic coming out of a proxy request. A VPN does a lot more than that, whether it be extra obfuscation (optional) or full traffic routing instead of higher-level resource fetching. These differ both on paper and in practice: instead of "go fetch this URL for me", a VPN is "here's packet data, i'll handle the rest."
2/? -
@awesomeest Right, right, "the phrase that has a standardized definition to prevent miscommunication between professionals? no, i'm gonna break it into pieces and treat each individual word as separate, then pull meaning from there." We can air this out in public if you want, but you're gonna need to adopt industry standard meanings if you want anyone to know what the hell you're talking about. As an Asperger's-afflicted mistake baby myself, you should know already how to act in social spaces to not be misinterpreted, if you are indeed old enough to be on this site. At minimum, you should know that deliberately smearing definitions to win an argument only weakens your case, though you appear to be waiting for me to just give up and then claim you were right.
1/?. again. why do you make me do this? -
@awesomeest For someone who claims to know a lot about 16-bit x86 workings, you would know about real/protected modes and how those are the first real "emulation" tools on x86, because those workings are critical to the operation of anything much more complex than COMMAND.COM itself. Emulators existed before then, there were some interesting things going on in software on the C64 and Amiga to emulate some old punchcard systems, but considering those machines didn't win out when they had every right to, I won't consider them here. Emulation does not mean "literally anything changed", and stepping any Turing-complete machine once does not constitute emulation, but you make the argument that if "even the environment changes", it counts as emulation. Somehow, you've performed worse revisionism on a word than you claim MW has at any time, because at least MW makes decisions based on common vernacular, and not singular headcanon. 3/3, jesus, they need to up the character count.
-
@awesomeest 32-bit runtimes on 64-bit in Windows aren't emulated. The hardware natively supports the same 32-bit modes as it did back then. The only things that have changed are the programs around the software, and per literally any other definition aside from Mirriam-Webster (remember, they're not trustworthy, per your own admission) states "In computing, an emulator is hardware or software that enables one computer system (called the host) to behave like another computer system (called the guest). An emulator typically enables the host system to run software or use peripheral devices designed for the guest system. Emulation refers to the ability of a computer program in an electronic device to emulate (or imitate) another program or device." Flipping one bit in the environment does not an emulator make, which you keep claiming. That's verifiably false, and comes off as troll behavior. 2/?
-
@awesomeest oh god, where to begin?
- VPN stands for Virtual Private Network, in essence, it routes more than just HTTP requests through another device or set of devices, things like TCP/UDP/ICMP would be included there as well. A proxy is not a VPN, no, almost all VPN providers route all traffic because they all use either OpenVPN (it's in the name, dude) or Wireguard (their site plainly says it is a VPN library https://www.wireguard.com/ and it also routes almost all traffic.)
- Merriam-Webster has been revising dictionaries yearly since computers were popular enough to warrant CD-ROM releases, and periodically since 1807. All of their other competitors also do this, which is why definitions and which words are considered "proper" change over time. Half the words we've referred to aren't in the 1807 version, they're still proper words. It's almost as if languages change over time, based on popular opinion (as long as you're not French)
I had to get out of bed for this. 1/? -
@awesomeest I completely forgot to mention that MO2 doesn't need admin privs, and both sysrestore and shadow copies need admin privs to use. Not something you should be handing out and making on every launch of notoriously flaky games. (These also wouldn't work in Proton, but again, MO2 does work there, "virtual fs" and all. I suspect the name is super misleading.)
And yes, pretty much all the recovery options in Windows since fucking ME have been a joke, outside "here's a command prompt, have a good day." Modern Windows' "factory reset" is also half lies, 90% of it is just running sfc /scannow and obliterating (some) registry changes. It still does nothing against any sort of prolific malware in general. -
@awesomeest "emulator" in a gaming context means it emulates either part of or an entire architecture. "Different kinds of machines" refers to architecture, not environment. Rosetta counts as an emulator, 96box is an emulator, DOSBox is an emulator... a Windows 7 program from the context of Windows 10? Not emulated. It doesn't even have to mask CPUID bits, and the syscalls are still compatible. The same would apply to ReactOS or Wine/Proton, since no recompilation is necessary and architectures didn't change, no? The argument could be made for pre-UEFI or 32-bit x86 binaries, since the architecture has changed so much that some things do have to be wrapped even in Windows natively (also, reminder that Windows' 16-bit-on-32-bit boxing has worked flawlessly through SysWOW64 as of at least Win7, it's an arbitrary restriction that you can't do that to this day) but even then no actual hardware is emulated, it's all syscalls.
-
@awesomeest i was trying to figure out if they meant something like btrfs snapshots or what myself, but I know for a fact that shadow copies are handled outside the NTFS driver, and as such I don't really consider them to be "snapshots", because most files still have to be intact to use them, just like System Restore isn't a "snapshot," it's a sorry excuse for a CAB file containing a batch file to undo one set of changes at a time. Additionally, MO2 isn't using containers or virt or anything like that, I think it's literally just symlinking at runtime as needed, but I'm not at my desk to check the source rn.
-
@awesomeest Is this not a screenshot of you referring to Steam directly as an emulator?
I got my start in coding by modding game boy games and disassembling DOS malware. We can't hook DOS interrupts and pull off manual-timer shenanigans anymore, and if your argument is "wine/proton exist in memory, therefore more memory used, therefore bad", boy do I have bad news for you about multitasking kernels and PCI-e transfers and the UEFI standard and modern drivers and... A tradeoff of what amounts to... let's be generous to your argument, and assume Proton uses the next power of two up than it does on my machine playing Cyberpunk 2077, an incredibly demanding game:
(256/32768)×100 = 0.78125% of my total WRAM. Typical 386 machines sold with... what, 4-16MB of memory? That'd be the equivalent of 32KB of resident memory in DOS at 4MB of WRAM. If memory serves, that's far less than SMARTDRV or MSCDEX uses in 6.22. -
@Demolishun I just re-read your post, MO2 doesn't use "NTFS-specific" features, and Linux has overlayfs, which is a hell of a lot more robust anyway. I didn't have to set anything super special up to get it working for FONV, FO3, or SSE. You have to use a special community installer to get it working, but this is due to a bug in the MO2 prefix switching.
It also doesn't "take a snapshot of the exec directory", NTFS doesn't have snapshot support and that would lead to infinite amounts of bloat (and accusations of enabling piracy.) Imagine having six mod profiles and having to wait while MO2 switches between six entire installations of Skyrim. -
@awesomeest Proton (and Wine by extension) don't emulate anything, they just wrap syscalls. They use more resources in games, yes, but things like Zink and DXVK usually make up for it, when they're not providing anywhere from minor to significant speedups. It's also a fairly trivial amount of resources used, considering what the projects have accomplished. Memory overhead is less than 100MB, and I barely notice the CPU usage bump on an underclocked Ryzen 7 5700x.
-
@Demolishun MO2 works just fine under Proton, and Proton is not an emulator. It's a syscall wrapper (more specifically, it's a wine fork.) It's not emulating any parts of x86 machines, and as such it doesn't work properly on ARM if you try to use x86 executables, or vice versa.
Additionally... *only* 1500 mods? I ran FONV out of memory constantly even after using the 4GB patch. I wish Bethesda mod devs would stop putting out singular weapons as self-contained mods for that very reason and more. -
@retoor Incorrect: Nokia has to ship some legit phones to keep the image up. I got lucky enough to get an actual one instead of a fish, but it's about as useful for computing (it's got 8 cores at 2.1GHz but 4 of them are always running at 100% because it's being used as part of a cloud computing cluster to drive the fishing boats.)
-
I'm pretty sure the true/false comparison compares to 0 exactly. Python does the same thing, and it lets you get up to some useful signaling bullshit (return either False or an object, easier to check for than NoneType because you can "if not var:" and NoneType is still an object so this check will fail)
-
I use descriptive names (sometimes to a fault) outside of specifically iterators in for loops. I'll use `tempcounter` or whatever if I need while loops that may step either way, but if it's specifically a for loop, i'm starting at i and working downwards as needed. It's a bad habit I picked up a long time ago from playing with TI-BASIC while bored in middle school.
-
@codingfreedom i'm not watching a 50 minute talk by a freebsd developer, make up your own arguments or paraphrase here, i don't care. i've got too much other shit on my plate right now.
-
...what, did you expect them to hire people to read paper and manually convert it? that's a safety risk, since the papers may be classified! obviously, you scan them first, which is OK since only physical copies are usable in court in the year of our lord 1969.
-
@Root counterpoint: having a lot of shit be unified makes jank-ass embedded development and porting far easier. i'd be using systemd on the 3ds linux port if i could because i can't get half the shit @netikras said to use to build in buildroot (even if the drivers to use them were there) because "waaaa i don't support building in a chroot" (udev without systemd selected) or "waaaaa i don't support non-cortex ARM" (a bunch of shit) or "waaaaaa this has to be an approved configuration that i can download a binary tarball for" (Rust, now a requirement for the fucking kernel)
i don't need to do any of that shit for most of systemd (with exception of things like systemd-boot) and i can pick and choose what exactly I need from the ecosystem with very little hassle. it still is a bunch of single-purpose utilities that do one thing, they're just made by the same people, use the same APIs, and are all prefixed with "systemd-" to denote that. by the same logic, burn ftp.gnu.org to the ground.