Email or username:

Password:

Forgot your password?
109 posts total
niconiconi

The page isn't redirecting properly. Firefox has detected that the server is redirecting the request for this address is a way that will never complete.

niconiconi

Q: What should you do when you mail-ordered a motherboard but it doesn't boot?

A: Ask the POST office.

niconiconi

scientific computing code be like - 7000 lines of C in a single file.

niconiconi

CS in everyday life is when a traveling knapsack salesman needs to know how to best pack knapsacks before embarking on the optimal route. "When you gaze too long into the knapsack, the knapsack gazes back into you." https://old.reddit.com/r/programming/comments/9x096s/an_insane_answer_to_whats_the_largest_amount_of/e9pg77x/

[–]h4xrk1m 184 points 4 years ago* 

I once spent 8 whole months on a single feature.

Here are some details:

The language was something called NATURAL - no one has ever heard of it. The database was something called ADABAS - only a select few unlucky souls have heard of this. Natural doesn't have pointers, and is, in fact, not very similar to C at all. The program I worked with was evidently written by a mathematician gone C programmer.

This C programmer must have liked pointers. He must have liked them so much that he decided to implement them on his own, and he decided to do so in the middle of his gigantic mathematical expression, so he could pretend he was using C.

He also did this around 25 years ago, and from what I've heard he was already long dead when I was given the task. In other words, the only person who could ever have had a shot at deciphering the madness I was witnessing was forever out of my reach.

Did I mention that the problem was NP complex and that people had been adding to it over the years? Do I even have to mention that absolutely nothing was documented? Instead I was told that "the operators know how it works, just ask them!". It was true; they all knew. None of them agreed, though, and the results I got were always wrong when I implemented it, and every time someone was hounding me asking why the hell I'd done it that way, only to then berate the previous person. Attempts to put operators together to try to work out their rules together failed in a very peculiar manner; the rules were still wrong, but they all agreed they couldn't be, even when the program misbehaved.

I'm getting ahead of myself. My job was to "future proof" the algorithm by translating it to C#. They wanted a direct translation, which very quickly turned out to be impossible due to how tightly connected NATURAL is to ADABAS, at least in this situation. I spent weeks trying to get something together, and I failed miserably.
In the end I decided to scrap the idea of understanding the code, and instead I wrote down heaps of tests we could use on the instance they had running. I wasn't very interested in what happened when the program ran correctly, although I had to have those results as well. What I was really interested in was when the program malfunctioned or how it handled bad data.

The program was so complicated that I couldn't run it myself, I needed someone with years of experience to do it for me, so I booked a meeting with one of the operators, which was then scheduled for the next week. I spent the time before the meeting constructing those tests I mentioned, and when the time came, the operator refused to fucking do it.

* op: "Those aren't scenarios that would ever happen!"
* me: "That's on purpose, I need to see how it behaves"
* op: "But this is never gonna happen"
* me: "I know, but I want to know how it handles these particular scenarios. It'll give me clues as to how the algorithm works"
* op: "But shouldn't we try things that work?"
* me: "No, I need to find out what the rules are, and this will help us find the edge cases. It's going to give me really valuable insight."
He wouldn't budge, and my project manager was called in. Que an almost exact repetition of the above conversation. It went nowhere until I used a lot of profanity and explained that if they want results, they need to let me to do my job. This miraculously worked, and I finally got the operator to run a bunch of tests. This was actually tremendously insightful and I got enough data to write the first version of the new algorithm.

We had to run this variant of white room reverse engineering a few more times, and in the end I had an algorithm that was some 50% accurate. I was now 4 months in. The program was mature enough that we could put it in the hands of the operators, and they could start to point out when it was misbehaving, both from experience and from comparing the results with the old program. A couple more months of tweaking, bug fixing, and a few weeks of optimization at the end, and we finally got the thing to not only produce a better result, but also in only a few seconds. The previous implementation's speed was measured in half hours. A good run took a half fucking hour before.

Of course, the two people "maintaining" the old program were adamant that I shouldn't try to optimize it, because it was "mathematically proven to be perfect". They were both later fired.

In the end several thousands of lines of code, and many hundreds of pages of documentation had been written, and the company could once again (and I kid you not) plan how to stack boxes of bread in trucks. I'm not kidding. The algorithm they use to figure out how to stack bread into a fucking truck and where the truck then goes is mind-boggingly complicated. Any attempt to simplify this was met with downright hostility.

I'll never work there again.
niconiconi

Literally me, except I'm not a cute anime girl. #animeirl

Kaguya Houraisan: "eh...? working? what's that..."
niconiconi

Q: What do you say when FreeBSD has a security vulnerability due to memory corruption?

A: Use-After-FreeBSD.

niconiconi

Literally me, except I'm not a cute anime girl and I'm not a goddess of the Internet. #animeirl

An image macro of emotionless Lain with text "I woke up. Day ruined."
niconiconi

One day, a C++ programmer has a problem. They said, "I know, I should use templates." Now they have many different types of problems.

niconiconi

Literally me, except I'm not a cute anime girl. #animeirl

"I just happen to have an oscilloscope with me today."
niconiconi

My favorite fun fact about the US military is that some old Navy FLTSATCOM satellites have been abused by Brazilians as free CB radio relays, e.g. by truckers to chat on the road.

These vintage 1980s satellites are nothing more than analog linear amplifiers without any authentication. It's open to everyone as long as long you can point an antenna at it, with a RF mixer at the right frequency. The military can't do anything. This audio recording is absolutely hilarious:
https://www.solarix.net/wp-content/uploads/2012/09/260.625-US-Military-Channel-Warnings.mp3

https://www.wired.com/2009/04/fleetcom/
https://www.reddit.com/r/RTLSDR/comments/3guxco/brazilian_satcom_pirate_transmitting_sstv_images/
https://www.rtl-sdr.com/listening-brazilian-fleetsatcom-pirates-rtl-sdr/

My favorite fun fact about the US military is that some old Navy FLTSATCOM satellites have been abused by Brazilians as free CB radio relays, e.g. by truckers to chat on the road.

These vintage 1980s satellites are nothing more than analog linear amplifiers without any authentication. It's open to everyone as long as long you can point an antenna at it, with a RF mixer at the right frequency. The military can't do anything. This audio recording is absolutely hilarious:
...

niconiconi

ChatGPT implies the existence of ChatMBR

niconiconi

Q: Why don't US lawyers print official documents on A4 paper?

A: Because it's not Legal.

niconiconi

Q: Where do Linux network administrators sit at work in an office?

A: At the iptables.

Go Up