About26 y.o. Software Engineer in Automotive Gamer
SkillsPython ⭐⭐⭐⭐⭐ JS ⭐⭐ C# ⭐⭐ C/C++ ⭐
Joined devRant on 4/15/2017
Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple APILearn More
I was considering creation of client-server app to learn some new language and wanted it to have the best possible performance.
The client part is not an issue, it can be whatever, really... the server choice is pain in the ass...
I have looked up web server framework benchmark here: https://techempower.com/benchmarks/
So comparing those I have 2 options:
- Actix (Rust)
- Vert.x (Java)
I was about to use Vert.x, it handles requests asynchronously which seems nice.
However I thought, what if I wanted to sell this shit someday and Java requires licenses, while Rust don't.
I am terrible if it comes to licenses, so...
How does Java licensing work?
It is on client to pay it cause he is using it or on me as a product owner?
Or should I switch to Rust already?5
Disclamer: I don't want to give out what app I am talking about, so all names will be random to just represent the nonsense and my frustration.
So I was working with that app's API....
To begin with, some retrieved Objects have collection (iterable structure) of "Thing" objects, called "Things". But... there can be max one element in that particular collection!
Ok... I get it... I might exaggerate a bit... fine, let it be.
I had to mention it for the further part, and also got to mention that "Thing" objects are globally available and predefined, and Objects can only choose one, unused "Thing".
To the point.
Someone thought it would be good to separate representation of one structure into two classes.
We have collection of "A" objects ("As"), which have "Name", "Things" and other, mostly GUI/config related attributes.
Collection "Bs", of "B" objects, they have "Name" and rather lower-level attrs.
The "As" and their attributes can be set in the GUI, but the list where you do it is named "List of Bs" and vice versa.
I had to use both "A" and "B" definition for given name, so I tried to map it... and things gone South.
Collecions have "Get" method with name as an argument.
But it turns out that while the "A" use its GUI name all the time, "B" uses either name that can be found in "As" or, if not all "Thing" objects are used, the "Thing" names.
global "Things" = "t0", "t1"
"As" = "a0"("t0"), "a1"("t1") -> "Bs" == "a0", "a1"
"As" = "a0"("t0"), "a1"() -> "Bs" == "a0", "t1"
"As" = "a0"(), "a1"() -> "Bs" == "t0", "t1"
That means if at least one of "A" objects have empty "Things", then the mapping will fail.
Only solution is that the app works only partially when any of "A"'s "Things" is empty, so I might raise error too, but I have to provide solution that will work even in the cases when the app don't care... so... not gonna happen.2
TL;DR: Today my phone Kruger&Matz Live 3+ got ebola. Anyone had same issues?
I woke up and unplugged my phone from charger as always, but it was hot as hell. I was not worried, thought it heated up cause of charging as I plugged it few hours before waking up.
Then things got serious. I was unable to use phone, it freezed randomly, opened apps I hovered when frozen, etc. I thought thats becuse it was hot, so I turned it off and put it into the fridge (I do it sometimes).
I was leaving house in an hour so I hoped that would help. I turned it back on when leaving, but nothing changed and it was getting hot again. I've checked processes, was deleting apps like mad, thibking that was some bug in update of one of them, cleared cache partiotion too. That did not help, so I was forced to factory reset. Guess what... same issues.
I tried everything possible and lost all hope, was ready to send it to service. So I turned it off, so it won't burn my pocket out.
Few hour later I talked with dad complaining about the issue and tried to show him what's wrong, but... it was all right again. No freezes, no heating.
Later that day my sister told me she had issues with her phone - Live 3, described same as mine. Even weirder that my girlfriend had no issues with her Flow 4+ from same company.
Two phones of same company, almost same product line with the same exact issues on the same time frame? Any ideas what happened?4
Conversation between [C]oworker and... some kind of customer-side [P]roject manager.
P: Hey, our release 2.0 is ready, but somehow I can't add tag to master. Could you try, please?
C: Yeah, sure.... Done... We are missing tag for 1.2 still, should we add it?
P: Oh, right, I forgot about that.
C: Ok, found merge... Done.
P: *displaying repo in GitBlit* Uh, now the order is wrong. And date is the same. Can we do something about that?
Me: We can just push that tag with replaced date. *just guessing*
P&C: You can do that??
Me.thinking: Thats git... I would be suprised if we could not.
Me: *pushing tag* Check it now.
P: Whoa, nice!3
First of all how the fuck you are able to tell that MY password is one of many that have been stolen? How you are able to get those stolen passwords AND WHY YOU ARE EVEN ABLE TO COMPARE THEM?! Are you storing as plain text or just randomly salt all stolen passwords and chceck if they are in your base?
Now that is an INSTAdelete.8
I wanted to fix ugly unittests of parser's function that uses some shitty workaround instead of intended unittest.mock.mock_open, but it turns out mock_open cannot mock different content for each file. Cause you know, noone needs it anyway.
I am amazed. My laptop died due to lack of electricity (no battery), but Windows still managed to prepare update and forces me to install it when I turned it back on. And of course it requires multiple restarts.1
At uni we had "pleasure" to attend lectures held by some really old professor. First one was total disaster, since he had laptop that should be already taken to the museum. He tried to connect the projector, but I am almost sure that Windows 95 does not support it. Of course he called help, but the other guy was obviously no help. To our suprise professor canceled the lecture and next time he showed up whith brand new laptop with Windows 10. Of course there were troubles with the projector again 😂
I would like to present you the story that I tell everyone who is afraid of expectations, stressed to impress interviewers etc. Story about how I got my first job.
A little of backstory:
I always was good with computers, not like expert, but good. Of course parents were against giving me admin rights, so I just played games or such. When time came to choose my path throgh life, I've chosen to go medicine-related way, and chosen high school with such profile. I did my exams terribly, cause I never cared about marks, so I applied to uni for Information and Communication Technology course. I've learned basics of coding there, much stuff I don't really need right now, but in the end it was the best choice I've made.
With that way too long prologue...
I had to do internship for my uni and decided to try and find some year earlier. There was a lecture about multiplatform coding held by company my uni had partnership with. I've filled a questionare and few weeks later they invited me for assessment - event where they will choose who is good enough.
Of course I didn't believe in my chances to win an internship (1st place got full time job). There were 3 stages:
- solo coding (C/C++ own implementation of list)
- group designing (UML and presentation according to specification)
- interview (talking about code from stage 1, some questions, theory)
I failed 1st stage miserably... so I decided to don't give a shit and bravely presented our group project. A guy asked why we did not included a thing on UML, so I told him that it was not in specification - he was suprised but took it as big +. We "won" that part. When it came to interview... I was myself, cool headed, admited when I don't know things.
I thought that was it.
Few weeks later I received email - they invited me for internship.
They put me into Python project, language that noone in our trainee team knew. Told us 2/4 will be hired. At first I was not interested, wanted to finish my degree. But they convinced me. Now I'm here +2 years.
I am aware there are not many companies like that. Here, the people matters - you don't have to know everything, as long as you are getting along with others.
My tip for you though is: BE YOURSELF, NO MATTER WHAT THEY SAY 🎶
And I wish us more companies like that.😉1
Me: *opens FB in mobile web browser*
FB: You there! Go ans get our great Facebook Lite app! It is faster and...
Me: Nope! *clicks X to dismiss*
FB: Nope! *a wild code appeared*10
I was curious what's the current demand ranking of programming languages and found this. Calling SQL a programming language and putting iOS instead of Swift makes the ranking not credible in my opinion.20
It is 10th December, but this "issue" was not fixed in 2 weeks (as screen says, happened 25th November). Noone bats an eye.10
Gf asked me to help her with getting science articles. She had some page that her university suggested students to use, but had troubles with downloading documents.
At first I was like "Hey, it says use IE, other browsers are not supported. Thats bad but.. whatever". Then it popped that she needs Java enabled - well, I guess we have to... Even updated it cause it was needed.
Restarted IE, clicked download again and... Java security blocked web app... Eh, I don't trust it but whatever, just let's check what if I whitelist it.
Got some basic view, 1 dropdown list for "file name format" (like anybody cares), path selection where to save file, and some checkbox. Lame, but let's just leave it behind.
Downloaded, it turned out to be html file, not pdf, fishy that it was single file, but hoped for some text styled with css, so I opened it and got redirected to page where I clicked download.
Checked that file content - html with empty body and script tag containing js that redirects on load.
I have to create python parser (3.6) using code provided by client (2.7), that they used in their company, and it is full of crap like:
if not b:
c = [1,2,3]
if not b:
c = [1,2,3]
c = [1,2,4]
text = ""
for i in something:
text += "real text " + some_string + " \n"
text += "another line " + some_string + " \n"
text += "and another " + some_string + " \n"
text += "and so on " + some_string + " \n"
... (many lines instead of one appended text block)
Of course above variable names are just for shortening code, but there are variables like oo, ooo, var_ or var__... cause you know, PEP8 does not exist.7
Everyone here rants about clients, and as far as I understand frustration, I understand client's side too.
For 2 years I have developed a tool for our company, my manager was responsible for outcome and was directly accountable to company's management, which made him a client for our product. Of course requirements changed many times, he pressured us much, but he is nice guy and gave us knowledge why we had to change things again. We had meetings with him, HRs, PMs and others to gain requirements for features to implement and that made me better understand client's point of view.
My point is that when you work for external companies, you only see changing requirements, pressure, deadlines, etc, but don't think that your work is just a part of process - your client is responsible for your delivery, wants to make good impression on superiors or company needs some feature ASAP. He does not have to know tech stuff, he wants outcome to be good and to be fast and cheap - that is business.
And yes - we had to tell people that X is impossible many times, had to tell Y people how things work over and over. It may seem easier when it is your own company, but note that every single employee knew that you developed that tool and you have answers for his questions.
Once I moved to new flat that had no internet connection yet, so I went to restaurant located under my apartment, that had WiFi secured with password. I asked for it while waiting for the order - it was "A1B2C3D4". After a while I got anoyed that it was so slow, so checked if can acces router admin page and restrict access for their clients. It turned out I can and they used default login and password, so they ended up with only my MAC whitelisted. Seemed they had connected their own business PC ("office PC") via LAN too, so I was curious if they call ISP to check it out. I checked the router settings every day, even after I got my own internet connction and they had it blocked for about 3 weeks. Then they changed WiFi password, so I came again, asked for password (another shitty one), checked router admin page and... still default login and password...9