by Gabrielfair on 8/14/23, 6:24 PM with 23 comments
So I'm looking for a list of the "lost arts".
For example, its near impossible to find documentation related to reverse engineering Widevine DRM.
Anything published is scrubbed from the internet search results lighting fast.
by tacostakohashi on 8/14/23, 8:26 PM
Lots of software these days is written with the naive assumption of continuous, unlimited bandwidth / zero-latency internet connectivity, and falls apart whenever that assumption turns out to be incorrect.
by frfl on 8/14/23, 7:22 PM
The Handmade [1] community is really into that stuff Originally inspired by Casey Muratori's Handmade Hero Series [2]
by RicoElectrico on 8/14/23, 8:07 PM
Nowadays it's "move fast & break things", following the fashion, and asshole design ("dark patterns").
by mikewarot on 8/15/23, 1:08 PM
Then Microsoft got obsessed with .NET because they thought everyone was going to bail on the X86, and used it as an excuse to kill off VB6. The shift to "professional" programming tools really just added a ton of boilerplate.
Since then, we've been forced to send UI though a soda straw to a random web browser, and make it all work.
by h2odragon on 8/14/23, 6:47 PM
Knuth used to have a section on "sorting with tapes" that he removed; but the problems there might still generalize to slower access methods even when they're not as strictly sequential as tapes. Maximizing bandwidth to GPU chores and searching through 10TB+ hdd's with only relatively tiny access speed both have similarities to some of those problems.
by gradschool on 8/16/23, 6:47 PM
by cpach on 8/14/23, 7:20 PM
by rthomas6 on 8/14/23, 9:01 PM
XMPP was a federated instant messenger protocol that worked extremely well and was widely used. It generally worked better than Element/Matrix or MS Teams in my experience. It was used by over 10 million people by 2003.
Adobe Flash. It had a lot of security and usability issues, but HTML5 has still not caught up to it. Any bright 15 year old could spend a day and make their own game.
Makefiles. People hate on them, but if you get around their weird syntax and other eccentricities, it's hard to find a better build system. They've been around since the 70s, and I have not seen another build system achieve feature parity.
by mkbkn on 8/15/23, 4:54 AM
Try alternative search engines like Yandex etc.
by mattbgates on 8/14/23, 7:11 PM
I remember I was in computer science class. I was 17 years old.
And the teacher taught us how to read binary and how to calculate it. He said binary was math which is a universal language that even aliens could understand and would allow us to communicate though we'd still run into the struggle of converting that binary to actual meanings, such as converting binary to English or vice versa.
We often don't think about it, but our programming technology is based on binary calculations.
I'd put the Conversion to Binary or from Binary in the lost arts category because I highly doubt it is ever taught, not even in computer science classes nowadays because its just slow and boring to do the conversions.
But if you do think about it, he wasn't wrong.
For those who are curious about it:
Converting binary to English or math involves interpreting the binary representation of numbers or characters into their corresponding decimal values or ASCII representations. Here's how you can do it:
Binary to Decimal (Math): Each digit in a binary number represents a power of 2. To convert binary to decimal, start from the rightmost digit and multiply each digit by 2 raised to its position, then sum up the results.
Example: Convert binary 1101 to decimal.
1 * 2^3 + 1 * 2^2 + 0 * 2^1 + 1 * 2^0 = 8 + 4 + 0 + 1 = 13
Binary to ASCII (English): ASCII (American Standard Code for Information Interchange) is a character encoding standard where each character is represented by a unique numeric value. In ASCII, each character is assigned a decimal value, which can be converted from binary.
Example: Convert binary 01001000 01100101 01101100 01101100 01101111 to ASCII (which represents the word "Hello").
01001000 -> 72 (H)
01100101 -> 101 (e)
01101100 -> 108 (l)
01101100 -> 108 (l)
01101111 -> 111 (o)
So, to convert binary to English or math, follow these steps:
For English (ASCII characters):
Divide the binary into groups of 8 bits (1 byte).
Convert each group of 8 bits to decimal.
Find the ASCII character associated with the decimal value.
For Math (Decimal):
Write down the binary number.
Multiply each binary digit by 2 raised to its position (starting from the rightmost position).
Sum up the results to get the decimal equivalent.
Keep in mind that this process is straightforward for numbers and ASCII characters, but other types of binary data (like images or files) may require different methods to interpret.