The Most Absurd Thing You've Ever Coded/Built
-
@hungrier said in The Most Absurd Thing You've Ever Coded/Built:
@Gurth So, how did your GOT theories turn out?
Fine, they were edible after all.
-
@Gurth I own one still. Don't use it really anymore, but coincidentally I plugged it in today for the first time in a year (it'll be the emergency phone for the kid for a couple of months). After playing with it for a minute or two I already want to replace my Android crap by it. The UI is just so much better. Too bad it never got a real marketshare (yes , no not ).
-
I did, eventually, change my organization. Sort of...transferred out. It was really difficult to do that much, because I'd had a previous run of "changing my organization" so new jobs weren't exactly falling into my lap.
@Mason_Wheeler said in The Most Absurd Thing You've Ever Coded/Built:
Amusing Larry Wall quotes notwithstanding, software development remains one of the few places where humility is still widely considered a genuine virtue.
The real problem is that too many people can't tell the difference between confidence and arrogance, experience and defeatism, truth and lies, etc. When you're working somewhere, you're never allowed to say or do anything different for fear of hurting somebody else's feelings. When you go interviewing, you have to say you're the top expert in everything or you'll lose to somebody else who will. It's crazy. Why can't I just do quality work, get paid for it, and otherwise be left alone?
Edit: not saying that Frankenstein's monster was quality work...but it should've been impressive from the standpoint that it was slapped together inside of two weeks and worked better than two years of needful doer teamwork...and it should've been appreciated that I helped out instead of saying "fuck you, that's not in my job description"
-
@Zenith said in The Most Absurd Thing You've Ever Coded/Built:
When you go interviewing, you have to say you're the top expert in everything or you'll lose to somebody else who will.
Say the truth honestly, then back it up with facts.
When an interviewer asks me if I know something, I'll say "no" if I don't, "kinda" if I'm vague on it, and so forth. If they ask me if I know async/await or iterators, I'll say "Sure, what level of detail do you want? Because I've implemented that in a compiler, so I can explain anything all the way down to the IL level." And then I deliver on what they ask for.
But I never claim to be an expert on anything I'm not actually an expert on. That's just asking for trouble.
-
@Mason_Wheeler said in The Most Absurd Thing You've Ever Coded/Built:
@Zenith said in The Most Absurd Thing You've Ever Coded/Built:
When you go interviewing, you have to say you're the top expert in everything or you'll lose to somebody else who will.
Say the truth honestly, then back it up with facts.
When an interviewer asks me if I know something, I'll say "no" if I don't, "kinda" if I'm vague on it, and so forth. If they ask me if I know async/await or iterators, I'll say "Sure, what level of detail do you want? Because I've implemented that in a compiler, so I can explain anything all the way down to the IL level." And then I deliver on what they ask for.
But I never claim to be an expert on anything I'm not actually an expert on. That's just asking for trouble.
Plus if they ever catch you out on it, it's pretty good grounds for firing you.
-
@mikehurley As I said, "that's just asking for trouble."
-
And then you lose to the clown that says he has 20 years of experience with Azure and SQL 2016 in his spare time while tuning warp drives for NASA's space force.
-
@Zenith Meh. If they're dumb enough to hire that guy, I probably don't actually want to work there anyway.
-
@Mason_Wheeler Not ideally, no, but when you need to pay bills or you're getting your applications shot down for not having "recent enough" experience (as in "used X this morning"), you don't exactly have the luxury of waiting around too long for one of the three smart people in HR to find your resume.
-
@Zenith said in The Most Absurd Thing You've Ever Coded/Built:
@Mason_Wheeler Not ideally, no, but when you need to pay bills or you're getting your applications shot down for not having "recent enough" experience (as in "used X this morning"), you don't exactly have the luxury of waiting around too long for one of the three smart people in HR to find your resume.
Fair enough. I'm lucky enough to live in an area with high demand for developers: the MSP/Minneapolis area. As I understand it the area has negative unemployment for devs.
-
@Mason_Wheeler said in The Most Absurd Thing You've Ever Coded/Built:
@HardwareGeek said in The Most Absurd Thing You've Ever Coded/Built:
@Mason_Wheeler said in The Most Absurd Thing You've Ever Coded/Built:
Today, ZIP archives indisputably rule the world and have for at least a quarter-century now.
You might want to tell the Linux world about that, because .tar and .tgz (and occasionally .tbz2) files are still very prevalent there.
Yeah, that's the problem. The rest of us have been trying to tell the *nix world about new developments in the real world for 35 years now, and they have consistently refused to listen! (And then they wonder why no one wants to use their products.)
Windows could handle more than Zip natively and none of it would be an issue.
-
But OSX comes with ZIP support out of the box.
Join us in 2019 where we have macOS.
Do you think that Unix and Linux don't come with Zip support?
-
@Mason_Wheeler said in The Most Absurd Thing You've Ever Coded/Built:
Google "linux market share" sometime. Depending on which source you come up with, you'll get figures anywhere between about 0.75% and 2.5%. This seems like an example of selection bias on your end; if you're a person where
Market share of what? It sure as shit isn't 2.5% of servers.
-
@cvi said in The Most Absurd Thing You've Ever Coded/Built:
Depends on your intended use case. If you're distributing assets or other large data, the archive is going to be largely static. Changing the archive can be slow and rewriting the whole archive is ok, because it happens so infrequently. Reading/loading data from the archive is what you want to optimize for.
The index at the end allows you to add new files, but if you want to change any of the existing files or remove one, you're pretty much facing the same problem again.
Only if you care that the zip file doesn't contain any holes (unused data). If you care about the speed problem (having to re-write the whole archive to replace a file at the beginning) more than you care about the storage problem (just leaving a hole there with some wasted space), then you can just put the new file in the most convenient place... probably at the end; although, if the new file is shorter after compressing it, you could overwrite the old one. Re-write the zip archive's index, then, and it's a fully compatible zip archive.
Lazy deletion works just fine, because as long as that index is correct, arbitrary blobs of unused data aren't a problem for the archive. Having one at the very beginning is the most typical case where you'd hide a zip archive at the end of another recognized format, but you could have chunks of data that aren't used by the zip archive between any of the files in it, too, not just one chunk at the beginning.
If you could guarantee that the zip file wouldn't contain any holes, your original problem (which was having to seek to the index just to open the file) isn't a problem, because you can just open the file at the beginning and start reading. Each file has its own header block, and you're guaranteeing that the next file's header will come immediately after the previous file's data with no unused data in between. If you want to stream the file from the beginning and you already know that there are no gaps in it, you don't actually need the index. Or, for that matter, if your compression does a once-over when removing a file and zeros out the unused space, or at least obliterates any file header signatures, then your decompression algorithm can just skip over unused space until it finds a file header and resume decompression from there.
Here's an example.
Opened as a zip archive, it'll contain 10 small png image files. But wait, there's more. Use HJSplit to split the archive into 1 Kbyte sections... you'll end up with numbers.zip.001 through .011. The first ten files are, on their own, valid zip files... open any one of them, and you'll see that it contains one of the small png image files. And just for extra credit, the .011 file (since it can no longer be a valid zip file) is a valid png file.
The way I did that was by adding extra space after each file in the zip. It's unused; the index doesn't point to it, but when you split the file on 1K boundaries, what was unused space now contains a zip index for that file (there's still some unused space between the file and that index to make each file take exactly 1KB; the contents of this space isn't important and you couldn't access it without using something like a hex editor). And then, after the last file but before the main zip index, the unused space also contains an 11th png file starting at byte offset 10240.
(This absurd little demo might just qualify as the second most absurd thing I've ever coded/built.)
-
@Mason_Wheeler In his defense, the control panels in Windows have gotten exponentially worse since XP. I didn't use Vista much but you can see the decay in 7 with all of those "sort of a browser" screens that used to be regular windows. It's such a pain in the ass to work around what they've turned into in 10.
-
@mott555 said in The Most Absurd Thing You've Ever Coded/Built:
You know what sucks? When I have to RDP into multiple Windows servers to use the GUI and click through 15 half-baked Control Panels to find what I'm looking for. On the Linux servers, I just SSH into the CLI and either run a script or paste some text in and I can do the same thing on all of them in a fraction of the time it takes on Windows. And I say this as someone who generally prefers Windows.
I don't want to say you're , but... kind of.
It sounds like you haven't kept up with PowerShell/Windows Remote Management.
Enter-PSSession
/Invoke-Command
are like SSH except way better. On my old project, my predecessor used to spend two weeks patching certain software every quarter; I reduced it to a few hours by doing it remotely rather than via RDP.Since 2012, if I'm RDPing into a server, it's because I'm either running something with a GUI (that I know probably shouldn't be on a server) or I just don't know how to do something remotely.
-
@heterodox Yeah, but if you're going to do remote management on Linux, you might as well use version controlled configuration management, like Saltstack or Puppet...
I can tear down and spin up all my virtual machines in about 20 minutes.
-
@Captain said in The Most Absurd Thing You've Ever Coded/Built:
@heterodox Yeah, but if you're going to do remote management on Linux, you might as well use version controlled configuration management, like Saltstack or Puppet...
I can tear down and spin up all my virtual machines in about 20 minutes.
You can do that on Windows too but this is a middle ground where you don't have to completely change up how you do configuration management.
I've been on projects where we could do the same thing. But I've also been on projects that use software that wasn't built for that and I caution them that there's going to be a lot of initial time investment with seemingly little results.
Not even going to talk about the projects where there'll be exactly one guy who's a Puppet zealot but he doesn't share his knowledge enough/he isn't there often enough and the other guys don't get trained. Then you literally have the worst of all possible worlds with some things being done automatically and some things being done manually with both contending with each other.
In any case, you're kind of talking about the next level, not the basic OS functionality I was talking about. It doesn't work at all the same way/for ad-hoc stuff.
-
@heterodox If they don't close off the remote Powershell port because hur dur sekurity. I don't remember the specifics but we had a server guy trying to get a batch script on the servers to pull updated scripts from his desktop to avoid having to RDP into 25 servers separately because of that sort of horseshit.
-
@Zenith said in The Most Absurd Thing You've Ever Coded/Built:
@heterodox If they don't close off the remote Powershell port because hur dur sekurity. I don't remember the specifics but we had a server guy trying to get a batch script on the servers to pull updated scripts from his desktop to avoid having to RDP into 25 servers separately because of that sort of horseshit.
I'm lucky enough to be working on a project now where security trumps all but yet it's not mindless security -- it's actually mandated that you keep that port open so the infrastructure team can use it for their stuff.
This is an unusual display of competence and I've been waiting for a few months for the other shoe to drop.
-
@Dragoon said in The Most Absurd Thing You've Ever Coded/Built:
In reality, if your hands are already on the keyboard and you are doing a 1 or 2-key shortcut (and in some cases even 3 keys) it is faster than moving your hand to the mouse.
If you can remember the necessary shortcut. I think that’s the main obstacle, and possibly a bit of a vicious circle: when you don’t know the shortcut it’s quicker to click on a toolbar button than to look up the corresponding menu item and read the shortcut there, and you’ll probably need to keep doing that occasionally for a while before you actually remember the shortcut when you need it.
-
@Mason_Wheeler said in The Most Absurd Thing You've Ever Coded/Built:
@HardwareGeek said in The Most Absurd Thing You've Ever Coded/Built:
@Mason_Wheeler said in The Most Absurd Thing You've Ever Coded/Built:
Today, ZIP archives indisputably rule the world and have for at least a quarter-century now.
You might want to tell the Linux world about that, because .tar and .tgz (and occasionally .tbz2) files are still very prevalent there.
Yeah, that's the problem. The rest of us have been trying to tell the *nix world about new developments in the real world for 35 years now, and they have consistently refused to listen! (And then they wonder why no one wants to use their products.)
"Nobody uses these things!"
"Actually, these people use these things."
"I know, right?"Classic mason.
-
@Mason_Wheeler Minecraft uses it, I know that.
-
@mott555 said in The Most Absurd Thing You've Ever Coded/Built:
@Mason_Wheeler said in The Most Absurd Thing You've Ever Coded/Built:
...and everyone hates their toolchains. Heck, even the rest of Apple couldn't stand some of the crap Steve Jobs forced down everyone's throat! Objective-C was so abysmal that they literally didn't even wait for him to finish dying before starting to work on Swift to replace it!
I agree 100%, but this is completely irrelevant to the fact that 100% of smartphones run Linux/UNIX.
Ignoring, of course, that Stallman has a point and Desktop Linux is GNU/Linux - Android smartphones do not run GNU. There goes your Default Tar.
-
@Mason_Wheeler said in The Most Absurd Thing You've Ever Coded/Built:
Apple did that 35 years ago, rendering the command line UI obsolete by producing a fully-featured personal computer that did not have one and never needed it
No they didn't. They built a computer that didn't have a command line interface, which is very different from not needing it, as I can attest first hand. Some things are a lot more efficient, more convenient and easier to do on the command line than in a GUI (e. g. anything that involves processing multiple files which may not be right next to each other in the same folder). I say this as someone who's grown up almost exclusively with Macs, and oh boy were there moments where I wished I had some kind of command line access. Don't get me wrong, in my book MacOS Classic was a great OS with many strong points, but lack of a command line interface wasn't one of them.
Another thing the "who needs a command line" people always seem to ignore is that it is vastly easier and quicker to cobble together a usable command line interface than a usable GUI. This is critical e. g. for one-off tools or interfaces for little-used functionality, where the effort of providing a GUI would be prohibitive. On an OS with a CLI, you'd get a command line tool, which admittedly might be shitty, but it would allow you to get the task done. On Macs of that era, there simply wasn't a user interface to such things.
@Mason_Wheeler said in The Most Absurd Thing You've Ever Coded/Built:
once you start using a command-line as an automated script execution platform, it's not a user interface anymore, and we're in an area where it's actually a good fit for the job.
Hell no! Command line interfaces are designed to be convenient user interfaces for the knowledgeable power user, and as a consequence invariably suck as APIs, because the requirements for those two use cases are inherently mutually exclusive. Just see all the discussions we've had around here about how to write safe shell scripts without getting snared by spaces or non-printable-ASCII characters in paths etc.
-
@ixvedeusi Error handling is generally a PITA in a shell script as well.
-
@PleegWat said in The Most Absurd Thing You've Ever Coded/Built:
@ixvedeusi Error handling is generally a PITA
in a shell script as well.FTFY.
no matter what language or engine you're talking about error handling is a PITA
-
@Vixen It's like Alex's salmiakki scale. It goes from 'Caustic' and 'Inedible' to 'Almost enjoyable' (the one 'Absolutely delightful' entry consisted of filtering out the actual salmiakki from the bag).
Now I want to go by the shop and buy a bag of salmiakki on the way home.
-
@pie_flavor said in The Most Absurd Thing You've Ever Coded/Built:
@Mason_Wheeler said in The Most Absurd Thing You've Ever Coded/Built:
@HardwareGeek said in The Most Absurd Thing You've Ever Coded/Built:
@Mason_Wheeler said in The Most Absurd Thing You've Ever Coded/Built:
Today, ZIP archives indisputably rule the world and have for at least a quarter-century now.
You might want to tell the Linux world about that, because .tar and .tgz (and occasionally .tbz2) files are still very prevalent there.
Yeah, that's the problem. The rest of us have been trying to tell the *nix world about new developments in the real world for 35 years now, and they have consistently refused to listen! (And then they wonder why no one wants to use their products.)
"Nobody uses these things!"
"Actually, these people use these things."
"I know, right?"Classic mason.
Nobody doesn't mean nobody. I can say nobody uses AmigaOS anymore but I'm sure some people do.
What he meant is "Linux people, you're a minority, start using the standard thing everyone else uses because having your own thing is a PITA for everyone"
-
Make 1/99 of the code written for Windows in the world disappear.
Given how many water treatment facilities, trains, airports, etc. still use Windows (often XP!), this could also be disastrous.
You just have to choose the right 1/99th...
-
@anonymous234 said in The Most Absurd Thing You've Ever Coded/Built:
What he meant is "Linux people, you're a minority, start using the standard thing everyone else uses because having your own thing is a PITA for everyone"
You can put your carriage returns where <censored>
-
@PleegWat said in The Most Absurd Thing You've Ever Coded/Built:
@anonymous234 said in The Most Absurd Thing You've Ever Coded/Built:
What he meant is "Linux people, you're a minority, start using the standard thing everyone else uses because having your own thing is a PITA for everyone"
You can put your carriage returns where <censored>
Allow me to decensor that for you.
You can put your carriage returns where not even hentai tentacle monsters can't reach
-
@jinpa said in The Most Absurd Thing You've Ever Coded/Built:
As a thought experiment, do 2 things:
-
Make all of the code written for Unix/Linux in the world disappear; restore, then
-
Make 1/99 of the code written for Windows in the world disappear.
I think you'd find that the first action would bring the world to a screeching halt, as in Dark Angel. The second would have a great effect, but not as serious.
Make 99% of the code written for Linux disappear. There's a good chance the effect will be even smaller than with your second option (most servers only care about the kernel, the coreutils, and Apache/nginx (though they're increasingly rare nowadays.))
-
-
@Vixen said in The Most Absurd Thing You've Ever Coded/Built:
@PleegWat said in The Most Absurd Thing You've Ever Coded/Built:
@anonymous234 said in The Most Absurd Thing You've Ever Coded/Built:
What he meant is "Linux people, you're a minority, start using the standard thing everyone else uses because having your own thing is a PITA for everyone"
You can put your carriage returns where <censored>
Allow me to decensor that for you.
You can put your carriage returns where not even hentai tentacle monsters can't reach
That's deep.
-
@PleegWat said in The Most Absurd Thing You've Ever Coded/Built:
@Vixen said in The Most Absurd Thing You've Ever Coded/Built:
@PleegWat said in The Most Absurd Thing You've Ever Coded/Built:
@anonymous234 said in The Most Absurd Thing You've Ever Coded/Built:
What he meant is "Linux people, you're a minority, start using the standard thing everyone else uses because having your own thing is a PITA for everyone"
You can put your carriage returns where <censored>
Allow me to decensor that for you.
You can put your carriage returns where not even hentai tentacle monsters can't reach
That's deep.
well they do go through and through, so yeah..... deep.
-
@PleegWat said in The Most Absurd Thing You've Ever Coded/Built:
@Vixen said in The Most Absurd Thing You've Ever Coded/Built:
@PleegWat said in The Most Absurd Thing You've Ever Coded/Built:
@anonymous234 said in The Most Absurd Thing You've Ever Coded/Built:
What he meant is "Linux people, you're a minority, start using the standard thing everyone else uses because having your own thing is a PITA for everyone"
You can put your carriage returns where <censored>
Allow me to decensor that for you.
You can put your carriage returns where not even hentai tentacle monsters can't reach
That's deep.
-
@levicki said in The Most Absurd Thing You've Ever Coded/Built:
@Mason_Wheeler said in The Most Absurd Thing You've Ever Coded/Built:
TAR is an antique...
Yet it can still handle transferring files and their permissions between diverse filesystems using arbitrary compression method on top of that without the compression tool having to know anything about the archive structure.
That's a bug, not a feature. It means you have to uncompress the entire archive to access any file within it.
-
@PleegWat said in The Most Absurd Thing You've Ever Coded/Built:
@Vixen It's like Alex's salmiakki scale. It goes from 'Caustic' and 'Inedible' to 'Almost enjoyable' (the one 'Absolutely delightful' entry consisted of filtering out the actual salmiakki from the bag).
Now I want to go by the shop and buy a bag of salmiakki on the way home.
Salmiakki is an aquired taste, but once you've aquired it, its bloody wonderful.
-
@Unperverted-Vixen The inherent duality of abstraction layers 😔
-
@PleegWat said in The Most Absurd Thing You've Ever Coded/Built:
@anonymous234 said in The Most Absurd Thing You've Ever Coded/Built:
What he meant is "Linux people, you're a minority, start using the standard thing everyone else uses because having your own thing is a PITA for everyone"
You can put your carriage returns where <censored>
In this day and age if your app blows up or returns a fail code because of unexpected line endings, your app is garbage.
-
Tough for me because writing ridiculous shit is literally my hobby.
I'm going to go with a suite of a couple dozen Babel plugins to systematically de-obfuscate and rewrite the rules of a clicker JS game so I could cheat, and the accompanying Chrome plugin that ran them on the original JS when I browsed the site.
-
@Mason_Wheeler said in The Most Absurd Thing You've Ever Coded/Built:
Say the truth honestly, then back it up with facts.
That's how I do things too. I probably don't sell myself in an interview as well as I could - but I'm not a salesman and recognize that. So I'm just honest. Ok, sometimes a little more than I should! LOL!
What I've found with that is that after a layoff, it sometimes takes a while to find a job - because many interviewers are looking for that salesmanship. Those that look past that are where I usually end up. And in my entire career (programing on Windows since 1992 - and Linux since June), I've never been unhappy in where I've landed. (And I've always had good bosses too! Ok, some ok and some great...)
-
@loopback0 said in The Most Absurd Thing You've Ever Coded/Built:
@Mason_Wheeler said in The Most Absurd Thing You've Ever Coded/Built:
@HardwareGeek said in The Most Absurd Thing You've Ever Coded/Built:
@Mason_Wheeler said in The Most Absurd Thing You've Ever Coded/Built:
Today, ZIP archives indisputably rule the world and have for at least a quarter-century now.
You might want to tell the Linux world about that, because .tar and .tgz (and occasionally .tbz2) files are still very prevalent there.
Yeah, that's the problem. The rest of us have been trying to tell the *nix world about new developments in the real world for 35 years now, and they have consistently refused to listen! (And then they wonder why no one wants to use their products.)
Windows could handle more than Zip natively and none of it would be an issue.
Except, you know if MS added support for more that everyone would jump down their throat yelling ANTITRUST!!!! The EU would make them create a new version of Windows without it, etcetcetc.
-
@Mason_Wheeler said in The Most Absurd Thing You've Ever Coded/Built:
@Zenith Meh. If they're dumb enough to hire that guy, I probably don't actually want to work there anyway.
"Want to work there" is pretty low on my list of priorities when applying for a job.
-
@PleegWat said in The Most Absurd Thing You've Ever Coded/Built:
Now I want to go by the shop and buy a bag of salmiakki on the way home.
There's probably a medication to help those sorts of urges. Or electroshock therapy.
-
@HardwareGeek said in The Most Absurd Thing You've Ever Coded/Built:
@PleegWat said in The Most Absurd Thing You've Ever Coded/Built:
Now I want to go by the shop and buy a bag of salmiakki on the way home.
There's probably a medication to help those sorts of urges. Or electroshock therapy.
You say that as if wanting some salmiakki is a bad thing.
-
@PleegWat Yes. Yes, I do.
-
@HardwareGeek said in The Most Absurd Thing You've Ever Coded/Built:
@PleegWat said in The Most Absurd Thing You've Ever Coded/Built:
Now I want to go by the shop and buy a bag of salmiakki on the way home.
There's probably a medication to help those sorts of urges. Or electroshock therapy.
Reading Alex's blog on the subject, I am not sure that salmiakki does not have similar effects to ECT.
(Un)Fortunately, salmiakki does not seem to be sold anywhere I have ever gone.
-
@PleegWat said in The Most Absurd Thing You've Ever Coded/Built:
@Vixen It's like Alex's salmiakki scale. It goes from 'Caustic' and 'Inedible' to 'Almost enjoyable' (the one 'Absolutely delightful' entry consisted of filtering out the actual salmiakki from the bag).
Now I want to go by the shop and buy a bag of salmiakki on the way home.
Is that still a thing? I wouldn’t mind sending him a bunch of licorice (and maybe throw in a few bags of actually good Haribo to make up for it) for a TDWTF mug.
-
@levicki said in The Most Absurd Thing You've Ever Coded/Built:
Is a double-negative on purpose or am I missing some deeper meaning?
s/can't/can/
sorry about that. I hadn't had my morning tea yet.