Details
-
AboutMATSE apprentice
-
SkillsJava, TI Basic, little bits of many others
Joined devRant on 3/18/2017
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
-
I'm just trying to install a program… Literally FOUR HOURS and over a MILLION lines of GCC warning output later:
==> ERROR: A failure occurred in build().
Aborting...
-> error making: lib32-qt44 -
wk192: None. I was never asked to do a single coding challenge in any job interview. I had three successes and a bunch more interviews without programming anything in the interview or having ever shown any previous programming projects. I really wonder what criteria are important to companies hiring software developers if not how well they are at developing software.
-
Which programming languages can create portable programs that can run on every operating system, device, etc. (and are actually intended for that)?
- Java
- Python
- I heard some things about C# maybe…?
- What else?38 -
An anti-rant: I just made some code and out of nowhere it suddenly had an awesome feature that I didn't even program. No, not a euphemism for "bug", an actual feature.
Here's the story: A few months ago I made a shortcut for "System.out.println(…)" called "print(…)". Then I developed it further to also print arrays as "[1,2,3]", lists as "{1,2,3}", work with nested arrays and lists and accept multiple arguments.
Today I wanted to expand the list printing feature, which previously only worked for ArrayLists, to all types of List. That caused a few problems, but eventually I got it to work. Then I also wanted to expand it to all instances of Collection. As a first step, I replaced the two references to "List" with "Collection" and magically, no error message. So I tested it with this code:
HashMap<Integer, String> map = new HashMap<>();
map.put(1, "1");
map.put(2, "");
map.put(3, "a");
print(map);
And magic happened! The output was:
{1=1, 2=, 3=a}
That's awesome! I didn't even think yet about how I wanted to display key-value pairs, but Java already gave me the perfect solution. Now the next puzzle is where the space after the comma comes from, because I didn't program that in either.
I feel a bit like a character in "The subtle knife", who writes a barebones program to communicate with sentient elementary particles (believe me, it makes sense in context) and suddenly there's text alignment on the left and right, without that character having programmed any alignment.4 -
speedrun.com completely destroyed itself today.
Apparently they thought it was funny to change all kinds of labels, links, images etc. around for April fool's, so now the site became completely unusable. In a game that I identified as Minecraft by looking at the URL, over 10 moderators were added and minutes later, a 5 minute world record of getting all achievements was verified, which didn't even have a (complete?) video. Context: The previous world record was over an hour. I would check what the correct previous time was, but I can't figure out what any of the labels are supposed to say.
I already wrote them a mail saying that they should revert it as soon as possible, because the site is completely unusable, and that they should consider that there are people who don't like being blocked from doing anything just because it's April again. Hopefully they made a backup recently, because they might as well reset to yesterday's data.7 -
My work laptop broke over the weekend and now I have to use a replacement device… (cue the horror film music) …with Windows 10! (no, not 3628800)
So far I've gone mad about 20 times, including white font on white background, Chrome freezing on login, blurry font, Edge and Bing being opened all the time, displaying the "Users" folder as "Benutzer", despite it not being named that, …
I thought I could avoid Windows 10, I'll leave this company in a few months anyway. But no, the old laptop decided to die with almost the worst possible timing. At least it wasn't early May, then I'll write my final exams, including a five-day-project.
Also, who thought it was a good idea to put the "End" button NOT at the end of the keyboard? I've remapped it on three of my four laptops so far (one already had this arrangement), but on this one I don't even have admin rights. So I press the wrong button every minute or so.1 -
Horizontal scrolling in PowerPoint does… something to the document, not exactly sure what, but it makes it so that I don't see it anymore and if I made changes, they're usually lost. Why, Microsoft? Why do you keep doing this to me?1
-
What happened? I visited this site probably less than 12 hours ago, now I have 99+ notifications! And on top of that, my hard drive is almost full!7
-
aaAAaaAaaAaaAaAAAAAaAaaa floating points!
I debugged my algorithm for quite a while, wondering why it sometimes gives out "Circle(Point({1.7976931348623157E308,1.7976931348623157E308}),1.7976931348623157E308)" as the smallest circle around a group of points.
Figured out that it sometimes just never found any circle defined by two or three of the points which included all points (which is mathematically impossible).
Then finally I made it print out the points it thought were not inside the circle:
"1,7,8: Circle(Point({0.6636411126185259,0.535709780023259}),0.4985310690982777)
skip, 1 not inside"
So it defined the circle with 1 being on the edge, but then thought 1 was outside. Thank you, floating point Math.
For anyone wondering about the notation: That way I can directly copy/paste it into Geogebra to have a visualisation.7 -
When I was in 11th class, my school got a new setup for the school PCs. Instead of just resetting them every time they are shut down (to a state in which it contained a virus, great) and having shared files on a network drive (where everyone could delete anything), they used iServ. Apparently many schools started using that around that time, I heard many bad things about it, not only from my school.
Since school is sh*t and I had nothing better to do in computer class (they never taught us anything new anyway), I experimented with it. My main target was the storage limit. Logins on the school PCs were made with domain accounts, which also logged you in with the iServ account, then the user folder was synchronised with the iServ server. The storage limit there was given as 200MB or something of that order. To have some dummy files, I downloaded every program from portableapps.com, that was an easy way to get a lot of data without much manual effort. Then I copied that folder, which was located on the desktop, and pasted it onto the desktop. Then I took all of that and duplicated it again. And again and again and again... I watched the amount increate, 170MB, 180, 190, 200, I got a mail saying that my storage is full, 210, 220, 230, ... It just kept filling up with absolutely zero consequences.
At some point I started using the web interface to copy the files, which had even more interesting side effects: Apparently, while the server was copying huge amounts of files to itself, nobody in the entire iServ system could log in, neither on the web interface, nor on the PCs. But I didn't notice that at first, I thought just my account was busy and of course I didn't expect it to be this badly programmed that a single copy operation could lock the entire system. I was told later, but at that point the headmaster had already called in someone from the actual police, because they thought I had hacked into whatever. He basically said "don't do again pls" and left again. In the meantime, a teacher had told me to delete the files until a certain date, but he locked my account way earlier so that I couldn't even do it.
Btw, I now own a Minecraft account of which I can never change the security questions or reset the password, because the mail address doesn't exist anymore and I have no more contact to the person who gave it to me. I got that account as a price because I made the best program in a project week about Java, which greatly showed how much the computer classes helped the students learn programming: Of the ~20 students, only one other person actually had a program at the end of the challenge and it was something like hello world. I had translated a TI Basic program for approximating fractions from decimal numbers to Java.
The big irony about sending the police to me as the 1337_h4x0r: A classmate actually tried to hack into the server. He even managed to make it send a mail from someone else's account, as far as I know. And he found a way to put a file into any account, which he shortly considered to use to put a shutdown command into autostart. But of course, I must be the great hacker.3 -
Does someone here have experience with "freelancing"? I heard about it and the little I was able to find sounded promising, but I have no idea where to start, if it's good, how to get more information, etc.5
-
WINDOWS!!! Why, just why would you think that choosing frigging "Enter" as the copy key in cmd was a good idea?!?
At least for pasting, Ctrl+Shift+V works, it just jumps through some menus first, for whatever reason. But Ctrl+Shift+C doesn't work.
In general, after using a Linux console a lot recently, everything about the Windows console seems stupid to me.11 -
I just ran a batch rename script in the console. What's so bad about this? I forgot that I had closed the previous console, which caused Win+4 to open a new one at the default location. Which is my home folder.
"Desktop"? Nah, you mean "file4.png". "Downloads"? No, that's "file6.png". "rclonesync-V2-master"? That's "file19.png" now.
Luckily I was able to restore it all, except for one folder, containing unreadable files with names like "data_0". I hope I didn't need that. And luckily it skipped all hidden files and folders.3 -
[technical problem]
"Please give more details, like OS, hardware, …"
"you see i'm working on pc."
Oh, alright, so I have to start at the very beginning... *starts explaining that more than one OS exists and that you can do different things with your computer*3 -
New forum post! "Here are some useful links:"
- useful link
- semi-useful link
- link to some random URL, hosting a PDF of the print view of a Wikipedia article, from 2007(???)5 -
How have I not seen this in the "timezones" tag here yet? It sums up perfectly why timezones are absolute madness: https://youtube.com/watch/...
-
My new task: Improve performance of an archiving algorithm.
"We don't know what the cause of the performance issues is." I can tell you: Because it's overengineered bullshit! This is spaghetti inside spaghetti on top of spaghetti!
And it doesn't help that they don't want to know about different archiving algorithms, because I offered multiple alternatives, one 80% smaller than the other, but the other is 80% faster.
At least I'm instructed to throw it all away and rewrite it and not add even more to the garbage pile. I'm very happy about that. -
It's a good intention if you want to separate your code in logical units and split it into multiple methods, but could you please stop handing the control flow through about 20 methods before even really starting with the actual logic? This mess is 10 times as long as it needs to be, because someone decided to make everything go through 10 "validate one little thing" methods for every method with actual logic!
Edit: DevRant didn't allow me to post first, now I've analysed the code a bit more and the control flow actually goes out of a specialised class into a generalised class and back (not by returning, but by calling the specialised class from the general one) and the parameter that says what specialised class to call gets written into a class variable, then read from there and passed as a method argument, then back into another class variable, then the code changes it up a bit as a local variable, then passses it as a method parameter again... First it seemed like it knew what class to call using black magic, but no, it actually just hid the fact really well that it did in fact pass the class reference through in multiple forms from beginning to end. -
Reads horrible code
Opens DevRant to rant about it
Reads some stories
Ok, better mood, I can continue working now.
What was my planned rant about again? Ah, it can't be that bad.
Goes back to the code: Oh no, it is that bad...1 -
After a few months of working in an actually well coded project, I'm back in the one where I find abominations like this every day:
boolean result=false;
<do stuff>
if(<condition>){
<do stuff>
return true;
}
<do stuff>
return result;
Do they even read their code before submitting? -
I just wrote a long comment, clicked a few pixels under the "post" button and Devrant discarded everything. Thank you very much, Devrant.
-
Maxi-Rant, rest in the first comment!
Yay, I've caught up with my "watch later" list on YouTube! Next thing: Just quickly go through my subscribed channels and add old videos that I haven't seen yet to the watch later list so that I have more stuff to watch the next months. The easiest way to do that is to go to the "all uploads" playlist of the channel (that is luckily always linked now, it used to be hidden sometimes) and use "add all to" to get them on my playlist. Then sort out the stuff that I've already seen and turn on automatic sorting by date, easy. Yeah...
Firstly, in the new design there's no "add all to", I have to go to the old design. For my own playlists, there's a handy "edit" button to do that, but on other pages I have to do it manually. Luckily I have set Ctrl+Shift+1 as a shortcut for "&disable_polymer=true" long ago.
Next surprise: On "all uploads" playlists, there is no "add all to" button. It's on every single other playlist on YouTube, including "liked", "watch later", "favourites" and so on, just not there.
Fine, I'll just abuse my subscription playlist script that I already have by making a copy of it, putting the channel IDs in it and setting the last execution date to 1.1.2001. Little problem with that: Google apps scripts can run for at most 5 minutes and the YouTube API restricts it to add one video per second. So it doesn't work for more than 300 videos. I could now try to split it up by dates, but I didn't write the script myself and I don't know how it sorts the videos to add, so I'll just google for another solution instead.
Found one: Go to the video overview of the channel in the old layout, Ctrl+Shift+I, paste this little Javascript thing and it automatically clicks all the little clocks that add the video to the watch later list. Yay, that works! Ok, i'm restricted to 5000 videos, because that's the maximum size of a YouTube playlist, so I can't immediately add all 8000+, but whatever, that's a minor problem and I'll sort out later anyway. Still another little problem: For some reason I can't automatically sort the watch later list. Because that would be too easy.
But whatever, I'll just use "add all to" from there to add it to my creatively named "WL" list. If that thing is restricted by the same rate limit of 1 video per second, it should be done in about 1½ hours. A bit long, but hey, I'm dealing with 5000 videos. Waiting 2 hours... Waiting 3 hours... Nothing happens. It would be nice if it at least added them one by one, but no, it waits an eternity and then adds all at once. At least in theory, right now it does absolutely nothing.
Shortly considered running it for more hours or even days on my Raspberry Pi, but that thing already struggles when using Chromium normally, I shouldn't bother it with anything that has to do with 5000 videos.
Ok, what else can I do then? Googling, trying out different things, mainly external services that have their own concept of "playlists" and can then add them to an arbitrary playlist later...
Even tried writing my own Java program with the YouTube API, but after about an hour not even the example program in the YouTube API tutorial worked (50 errors and even more open questions, woohoo), so I discarded that idea.
Then I discovered "DiskYT". Everything looked like it would work and I'm still convinced that I can do it with that little pile of shit. Why is it a pile of shit? Well, for example the site reloads itself after a while, so it can at most add 700 videos to a playlist. Also I can't just paste the channel link (even though it recognises those links, but just to show an error message that it can't copy from channels). I can't enter/paste URLs, I have to drag them. The site saves absolutely nothing (should in theory work, but in practise it doesn't), so I have to re-drag everything on every try. In one network, the "authorise YouTube" button (that I have to press again on every computer) does absolutely nothing ("inspect" reveals that there isn't even any action bound to the button), in another network the page mostly doesn't work at all or the button to copy from playlists is suddenly gone or other weird stuff. Luckily I have the WiFi at home, there it works in theory. But just on my desktop PC, no other device, wow. I tried to run it on my new laptop, but it's so new that it still has the preinstalled OS and there I can't deactivate going to standby when closing the laptop, so while I expected it to add 5000 videos, it instead added 4 and went to standby. But doesn't matter, because it would have failed at about 700 anyway. Every time I try to use this website, I get new problems, but it seems to still be the best option, because everything else just doesn't do anything. This page at least got to 700 before.
Continuing in first comment!4 -
public static Map<Integer, List<Integer>> stuff(arguments) {
HashMap<Integer, List<Integer>> map = new HashMap<>();
method(map, otherVariables);
return map;
}
public static void method(HashMap map, otherVariables) {
map.put(things);
}
So... You know how to return a map from a method. Then why do you create the map outside the method and make it an argument that does not get returned, making it confusing because the map gets created empty, given to a different method, then returned, making it look like you're returning an empty map...
...instead of just creating it inside the called method, returning it and assigning it to a map in the calling method? Even if you think that would create another map (it doesn't), the compiler is intelligent and can optimise that away.9 -
"at least 1 special character except < ' ; / - [ % _"
Also known as "Hey, look at me, I'm vulnerable to SQL injection and a lot of other fun stuff!"3 -
"My think isn't working!"
"Let me see."
*starts program, error message appears, clicks X*
"What was that?"
"Don't know, appears every time, I never read it."7