Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
boricj
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
10 ms
·
121.
▲
by
boricj
1y ago
Where you ask is as important as what . You will learn things at a coffee break, a smoke break or at the bar that you would never know otherwise, especially if managers aren't within earshot.
122.
▲
by
boricj
1y ago
> I designed this clock years ago, with the intention to incorporate every feature request I ever received for the previous precision clock. My first thought after reading this statement was to add one Ethernet port to run a NTP server a
123.
▲
by
boricj
1y ago
Exporting DWARF symbols is a feature I'm craving for inside my own Ghidra extension for exporting relocatable object files, in order to improve the debugging experience for executables containing them. Unfortunately, I've always c
124.
▲
by
boricj
1y ago
If you're delinking the entire LTO-optimized shared library as one big blob, then sure. LTO effectively turns a program/library into one huge translation unit, but if you're not cutting across it then the platform ABI mandate
125.
▲
by
boricj
1y ago
Yup. I've shoved bits of a PlayStation game inside a Linux MIPS program and I've made a native port of a Linux x86 program to Windows, all without source code, decompiling anything or even fully reverse-engineering said bits. The
126.
▲
by
boricj
1y ago
The context of this is quite peculiar. Given the amount of information loss that occurs at the linking stage, delinking is an extremely intricate puzzle to solve. It's also very hard to be sure that you got it right, because there are
127.
▲
by
boricj
1y ago
> I guess I never stated the punchline explicitly, but boricj's tool seems to prove that there is in fact no such theoretical limitation in converting from shared -> static library. It's a bit hacky of course, but you can in
128.
▲
by
boricj
1y ago
I just don't want to deal with that. Identifying the right toolchain, finding the right options, rewriting code until the compiler is tricked into emitting the right sequence of instructions... I'm not saying that there's no
129.
▲
by
boricj
1y ago
This is pretty much spot on. The key insight of delinking is that object files are relocatable and the process of linking them together (laying their sections in memory, computing all the symbol addresses, applying all the relocations) remo
130.
▲
by
boricj
1y ago
This comment has made my day in ways words cannot express. But yeah, one recurring problem is that without literature on this esoteric and complex topic, any discussion remotely technical about it (especially without prior context) quickly
131.
▲
by
boricj
1y ago
I did not actually invent delinking, there was some scant evidence of prior art online before I did my stuff. I did however come up with it independently from first principles. As for the reinvention part, I was referencing the wheel of vid
132.
▲
by
boricj
1y ago
This wheel: https://github.com/boricj/ghidra-delinker-extension It's a Ghidra extension that can export relocatable object files from any program selection. In other words, it reverses the work done by a linker. I
133.
▲
by
boricj
1y ago
I've reinvented my own wheel in a particular niche. I didn't set out to do that, but I rejected the existing state of the art as fundamentally misguided. Then, I attempted to divide-and-conquer my particular problem, something tha
134.
▲
by
boricj
1y ago
Sometimes it's useful to be able to run modern software on ancient hardware. I once made an image of a hard disk so old it wouldn't work on anything newer than a Pentium. I plugged in a USB PCI card+USB stick and booted a modern-i
135.
▲
by
boricj
1y ago
The linker stitches object files together, regardless of their origin. If a compiler directly outputs a finalized artifact, then it would be impossible to add code written in other programming languages into the mix unless the compiler also
136.
▲
by
boricj
1y ago
> robots.txt isn’t really legally binding Neither is the HTTP specification. Nothing is stopping you from running a Gopher server on TCP port 80, should you get into trouble if it happens to crash a particular crawler? Making a HTTP requ
137.
▲
by
boricj
1y ago
In a previous job I've done some stupid tricks with regexes. Inside a MongoDB database I had documents with a version field in string form ("x.y.z") and I needed to exclude documents with a schema too old to process in my que
138.
▲
by
boricj
1y ago
It's not useless if it's good enough for the problem at hand. Kaze Emanuar has two entire videos dedicated to optimizing sin() on the Nintendo 64 and he's using approximations like this without issues in his homebrew: - h
139.
▲
by
boricj
1y ago
The NumWorks N0100 graphical calculator had 1 MiB of Flash and 256 KiB of RAM. It packed seven mathematical apps (calculation, grapher, equations, statistics, regression, sequences, distributions) with a decently powerful maths engine/
140.
▲
by
boricj
1y ago
The regex which was overflowing the stack was something like this (simplified and from memory): ^http:\/\/([a-z0-9.-]+)\/?:([1-9]|[0-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-5][0-9][0-9][0-9][0-9]|6[0-4][0-9][0-9
141.
▲
by
boricj
1y ago
I haven't had to reach for them so far either professionally or personally, but custom memory allocators (slab allocation, bump allocator...) and allocation strategies is something I've been meaning to look into. Too bad that the
142.
▲
by
boricj
1y ago
The following comes from the complete opposite side of computing, microcontrollers. I've been working on an embedded system where the heap is about 256 KiB and the biggest stack has 4 KiB. I do write idiomatic modern C++ for the most p
143.
▲
by
boricj
1y ago
Worms Armageddon. Released back in 1999, it is currently maintained by one person from the community who was handed over the source code back in the 2000s.
144.
▲
by
boricj
1y ago
I'm currently an embedded software developer, but I'm basically the guy you call when you're all out of options regardless of the problem. I've done plenty of debugging paratrooper-style for other teams, but some of my m
145.
▲
by
boricj
1y ago
A more pertinent (if dated) example would be " you don't want to be building your GBA game on literal Game Boy Advance hardware ".
146.
▲
by
boricj
1y ago
I've used Copilot for the past six months or so, mostly at work. I've talked to multiple colleagues and I seem to have much better luck using it than others, as in are you sure we're talking about the same tool? kind of dis
147.
▲
by
boricj
2y ago
The making of for "The Hunt for Red October" describes some of the other practical effects inside that movie, like the scenes on the surface with the Red October or the set for the interiors of the submarines: https://y
148.
▲
by
boricj
2y ago
Somewhat related, Gamers Nexus made a video about motherboards made from salvaged parts in Shenzhen a while ago: https://www.youtube.com/watch?v=qNje63vx73s
149.
▲
by
boricj
2y ago
That reminds me I once emulated a NumWorks N0100 [1] and a HP Prime G1 [2] with QEMU, to the point where the emulators managed to run the official firmware. - [1] https://github.com/boricj/qemu/tree/numworks_c
150.
▲
by
boricj
2y ago
I'm a low-level kind of person, both at work and at home. My requirements are static site only, hosted locally and no fuss (if I need to look up how to install the associated ecosystem or deal with a package manager it's out). If
More ›