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
Search - "wrong results"
Customer :Can you build a system that rates our product by XYZ standard?
Customer: Okay, here are some good and some bad products!
*products get rated shit to supershit*
Customer: No, that's wrong. Some of these are as good as we can, they should be rated best!
Us: okay, we offset the results.
*products get rated good to barely okay*
Customer: Great! Can you sign that the system rates by XYZ Standard?
Customer : But we paid you to rate by XYZ standard!
Us: By XYZ standard your products are bad, you can either have your products rated by standard or pass the test.
Us: Improve production?
Customer : Not possible, the job is done when you rate the products good by XYZ standard.9
Hello! Is this Gordon’s Pizza?
No sir, it’s Google’s Pizza.
Did I dial the wrong number?
No sir, Google bought the pizza store.
Oh, alright - then I’d like to place an order please.
Okay sir, do you want the usual?
The usual? You know what my usual is?
According to the caller ID, the last 15 times you’ve ordered a 12-slice with double-cheese, sausage, and thick crust.
Okay - that’s what I want this time too.
May I suggest that this time you order an 8-slice with ricotta, arugula, and tomato instead?
No, I hate vegetables.
But your cholesterol is not good.
How do you know?
Through the subscribers guide. We have the results of your blood tests for the last 7 years.
Maybe so, but I don’t want the pizza you suggest – I already take medicine for high cholesterol.
But you haven’t taken the medicine regularly. 4 months ago you purchased from Drugsale Network a box of only 30 tablets.
I bought more from another drugstore.
It’s not showing on your credit card sir.
I paid in cash.
But according to your bank statement you did not withdraw that much cash.
I have another source of cash.
This is not showing on your last tax form, unless you got it from an undeclared income source.
WHAT THE HELL? ENOUGH! I’m sick of Google, Facebook, Twitter, and WhatsApp. I’m going to an island without internet, where there’s no cellphone line, and no one to spy on me …
I understand sir, but you’ll need to renew your passport … it expired 5 weeks ago.16
Not one feature.
All analytics systems in general.
Whether it's implementing some tracking script, or building a custom backend for it.
So called "growth hackers" will hate me for this, but I find the results from analytics tools absolutely useless.
I don't subscribe to this whole "data driven" way of doing things, because when you dig down, the data is almost always wrong.
We removed a table view in favor of a tile overview because the majority seemed to use it. Small detail: The tiles were default (bias!), and the table didn't render well on mobile, but when speaking to users they told us they actually liked the table better — we just had to fix it.
Nokia almost went under because of this. Their analytics tools showed them that people loved solid dependable feature phones and hated the slow as fuck smartphones with bad touchscreens — the reality was that people hated details about smartphones, but loved the concept.
Analytics are biased.
They tell dangerous lies.
Did you really have zero Android/Firefox users, or do those users use blocking extensions?
Did people really like page B, or was A's design better except for the incessant crashing?
If a feature increased signups, did you also look at churn? Did you just create a bait marketing campaign with a sudden peak which scares away loyal customers?
The opinions and feelings of users are not objective and easily classifiable, they're fuzzy and detailed with lots of asterisks.
Invite 10 random people to use your product in exchange for a gift coupon, and film them interacting & commenting on usability.
I promise you, those ten people will provide better data than your JS snippet can drag out of a million users.
This talk is pretty great, go watch it:
Sister: "Can you fix my computer?"
Me: "What's wrong?"
S: *explains the issue
Me: *types that into Google and shows her the search results
S: *gives me the look
M: "This is seriously what I do to fix a lot of my problems 🧚"18
You know what's the difference between
- static page written purely in HTML with inline styling
- dynamic page generated in PHP, that actually loads data from MySQL database and is correctly styled in separate CSS document
on national level exam necessary to earn a title of technician?
ONE HACKING PERCENT!
Ok, backstory. So, few days ago I got results from that exam. To be honest, it was very, very easy so I wasn't worried at all, unlike some of my classmates who just don't understand programming at all (you need at least 75% to pass). Our task was to create database, write website in PHP that shows contents of that database and use CSS to give it a look that of example web page and run it on XAMPP. I've got result of 96% and while I was wandering what I've done wrong i hear my colleague almost screaming with joy "I passed! And I haven't even touched PHP. I was soooo sure I'll fail." So I asked him what's his result and he says 95%. And then another colleague said he got 95% without PHP. So, in other words what I thought to be the main task was worth 1%. Apparently, what was more important was for the page to look identical to the example, so I guess some examiners didn't even look into the source. And don't get me wrong, I don't wish my classmates had failed. That's not why I'm ranting. But why in the name of Ada Lovelace the task said to use PHP and all that if it weren't supposed to check our knowledge of programming in PHP? Sometimes I think the people who design these tests don't even know what they're doing.10
I have a bunch of contesters fort the worst interview.
#1 The Dishonest Ignorant
Me: *asks question*
Me: It's okay to say that you don't know.
#1: *continues to ramble on without making sense*
Me: Well, okay. That is all. I don't think that this will be a fit.
#2 The fraud
Me: How would you rate your knowledge in object orientated programming?
#2: Very advanced! I am an expert!
Me: Can you state the difference of an interface and an abstract class?
#2: *surprised pikachu-face* Well not that advanced!
#3 The trickster
During a skype call (without video):
Me: *asks question*
#3: *keyboard sounds aclacking*
Me: Are you googling?
#3: No *click clack click a clack* ... and to answer your question: *starts reading from the first search results*
The real bummer is, that in all of these cases, just saying "I don't know" would have been fine. (The "expert" OOP-guy would still have some explaining to do.)
It's not like that our interview process resolves around trick questions or that you'd get kicked out for getting one answer wrong. Though how can I trust somebody not to lie to me on a daily basis if they fake their interview?
We keep the interview relatively basic and rely on real-word coding exercise anyway and it helps us to get an idea on where we would gain support from them and where we need to support them.
As a developer you spend a lot of time learning new stuff anyways.
It blows my mind.39
We had the most fucking retarded client today. No, seriously, if you ever beat their level you have a serious mental issue.
They had a mail problem for which they'd need to check at the side of another company since we don't have those fucking logs.
- they entered an email address In the text field of mail-tester.com and were furious that they didn't get the results sent.
Note: it says right on that page that YOU JUST NEED TO SEND THE EMAIL ADDRESS WHICH IS PRE-ENTRRED IN THAT TEXT FIELD AN EMAIL.
- their company has been a reputable 'conservative' company which hasn't done anything wrong since 19xx so the fact that they'd end up on a blacklist was FUCKING OUTRAGEOUS and bullshit.
- our support wasn't willing to help and only willing to tell them outrageous lies.
- the other it company was only reachable at a premium number and thus expensive to call.
Emails back and forth and finally they CC'd the other company. They're reply was fucking priceless:
"we never had a premium number. Feel free to call us on *number* any time during the week between *time* and *time*.
Then he told us that we should just go back to sleep.
It was way worse than that but due to privacy and my own memory this is all I can tell.
I wrote a database migration to add a column to a table and populated that column upon record creation.
But the code is so freaking convoluted that it took me four days of clawing my eyes out to manage this.
BUT IT'S FINALLY DONE.
Why so long, you ask? Just how convoluted could this possibly be? Follow my lead ~
There's an API to create a gift. (Possibly more; I have no bloody clue.)
I needed the mobile dev contractor to tell me which APIs he uses because there are lots of unused ones, and no reasoning to their naming, nor comments telling me what they do.
This API takes the supplied gift params, cherry-picks a few bits of useful data out (by passing both hashes by reference to several methods), replaces a couple of them with lookups / class instances (more pass-by-reference nonsense). After all of this, it logs the resulting (and very different) mess, and happily declares it the original supplied params. Utterly useless for basically everything, and so very wrong.
It then uses this data to call GiftSale#create, which returns an instance of GiftSale (that's actually a Gift; more on that soon).
GiftSale inherits from Gift, and redefines three of its methods.
GiftSale#create performs a lot of validations / data massaging, some by reference, some not. It uses `super` to call Gift#create which actually maps to the constructor Gift#initialize.
Gift#initialize calls Gift#pre_init (passing the data by reference again), which does nothing and returns null. But remember: GiftSale inherits from Gift, meaning GiftSale#pre_init supersedes Gift#pre_init, so that one is called instead. GiftSale#pre_init returns a Stripe charge object upon success, or a Gift (and a log entry containing '500 Internal') upon failure. But this is irrelevant because the return value is never actually used. Pass by reference, remember? I didn't.
We're now back at Gift#initialize, Rails finally creates a Gift object using the args modified [mostly] in-place by all of the above.
Another step back and we're at GiftSale#create again. This method returns either the shiny new Gift object or an error string (???), and the API logic branches on its type. For further confusion: not all of the method's returns are explicit, and those implicit return values are nested three levels deep. (In Ruby, a method will return the last executed line's return value automatically, allowing e.g. `def add(a,b); a+b; end`)
So, to summarize: GiftSale#create jumps back and forth between Gift five times before finally creating a Gift instance, and each jump further modifies the supplied params in-place.
Also. There are no rescue/catch blocks, meaning any issue with any of the above results in a 500. (A real 500, not a fake 500 like last time. A real 500, with tragic consequences.)
If you're having trouble following the above... yep! That's why it took FOUR FREAKING DAYS! I had no tests, no documentation, no already-built way of testing the API, and no idea what data to send it. especially considering it requires data from Stripe. It also requires an active session token + user data, and I likewise had no login API tests, documentation, logging, no idea how to create a user ... fucking hell, it's a mess.)
Also, and quite confusingly:
There's a class for GiftSale, but there's no table for it.
Gift and GiftSale are completely interchangeable except for their #create methods.
So, why does GiftSale exist?
I have no bloody idea.
All it seems to do is make everything far more complicated than it needs to be.
Anyway. My total commit?
IN FOUR FUCKING DAYS!
I think having the wrong job can really bring down the quality of life.
My friend has to drive two hours each way to get to and from work. That's four hours wasted commuting.. and his job is service desk agent.
What are the consequences, you ask? He never has a spare second to talk to me, he's quickly developing gray hairs and he has no time awareness.
Having the wrong job is unhealthy and results in a cascade of bad side effects.. When most of your day involves work-related things, that's just wrong. There is no Yin-Yang there. I know because my work life is somewhat balanced.13
1. So i tindered.
2. I got a really nice girl.
3. We chatted really long and good.
4. We tried to meetup it did not work because of our schedule. New
job on my end, she is a student.
5. I thought its over. Fine whatever.
6. She gives me her number.
7. We continue chat on whatsapp
8. Blablabla 3 days long, she gets bored and tries to friendzone me
9. I revert the shit and state i wanna be serious and there wont be a
friendzone/nice guy comin from me.
10. She happy and continues to chat.
11. I get emtionally invested in her.
12. We exchange thoughts dreams and music.
13 We want to meetup at weekend. I cant. Got a family wedding all
14. We want to meetup the second week.
I cant. Im off on a company trip. Again new job here.
15. So we say in the week after I get back.
15a. Before the weekend we need to deliver an rc and go all out to hold
15b. We deliver, but shit happens on the customer side. His fault but we
get the blame.
15c I go onto the company trip.
16. We chat and i send her pictures of the trip over the weekend so she
sees I care.
17. She seems fine. And happy.
18. I come back from the trip late night and need to work the next day
19. I work jetlag style. And try to fix the shit from last week.
20. I come home really tired and looking forward to date day tomorrow.
21. I cant do anything. My home looks like shit and the bag still
unpacked. I just eat and fall asleep.
I feel bad bcs my home will turn her down instantly if we make it to my
Need to hope that it does not come to this.
22. Date day comes. Today.
23. I wake up at 6 early to plan ahead to make sure my clothes are fine
and i arrive on time in the office to exit early.
24. I expect to check what goes on today in the city and give her the
location to meet and time.
25. I enter office and immeadetly get caught up in meeting planning, dev
questions and the meeting itself because the project is on edge.
26. We have a 5hours long meeting where people go on and on and on.
27. 3h later in the meeting:
my brain was fried and around 12 i go to lunch with some people.
28. Meanwhile the city is turning into a rainy mess of a shitty day. No
way I can have a nice walk with her like that. Bars and coffeshops are
just to boring.
29. So i eat to regain some sense and we go back to the office.
Meanwhile I am thinking all kinds of locations and stuff in my head.
30. Havent given her any update since a good morning in the morning.
31. We reenter the meeting. Things continue like before. The project is
on impossible demands and impossible timelines. Still we try to do our
32 3h later on 3pm I tell her i am in a long meeting and working on a
33. shes not happy.
34. I get a call from a relative
35. i need to go out and take the call. not good for the collegues.
again new job here.
36. family trouble, money trouble, goverment demands. I promise to
handle that tomorrow. Before work.
37. i get back into the meeting.
38. still super slow and no results.
39. need to focus but start to check for locations on my phone.
40. she asks me where i am
41. I send her my location.
42. she thinks i am saying she should pick me up!
43 i joke and say no definitly not.
44. shes pissed.
45. I decide for a coffeeshop. after work. and send her the location
46. She says to call it off.
47. I go all in and go romance style. I say ill wait there even if she
does not come to show her how much i care.
U know to avoid the lets do it some other time fuckery and then it never
47. She goes quiet.
48. 2h later we finish the meeting. Meanwhile QA foudn a bug we need to
fix because why not.
49. I got 30 minutes to find the bug and fix it before I need to go to
uphold my word.
50. I find out what to do, but it might break a lot of other things
without careful test and implementation. Collegues says he takes it.
51 I feel bad but I need to go. I even leave earlier because otherwise I
would not be on time.
52. I arrive 15 minutes early. I grab two coffee2go and wait outside,
53. Shitty weather, sometimes rain, sometimes sunny, cant decide what it
54. The weather is just like how I feel.
55. I wait 1 1/2h
56. I think I should feel stupid, For gods sake its tinder. People dont
give a crap, Enough people around why should I Invest so much into this?
But I dont feel stupid. Because this is how I want it. I dont want
appointments, I dont want safety. I decided for her and I went all in.
57. I send her pics from the sceneray as proof that I waited,
58. I think I blew it. She is still quiet.
59. Friends are asking me for plans for the weekend. I wish I could say
I already have some with her.
60. I feel lost right now. But my head says I put too much stress on
her, And i fucked up with the planning. I should have been more precise.
My head also says that i am putting myself into the victim role, which
is wrong always. Should I continue to reach out to her? Is there
something I could do still?69
WASM was a mistake. I just wanted to learn C++ and have fast code on the web. Everyone praised it. No one mentioned that it would double or quadruple my development time. That it would cause me to curse repeatedly at the screen until I wanted to harm myself.
The problem was never C++, which was a respectable if long-winded language. No no no. The problem was the lack of support for 'objects' or 'arrays' as parameters or return types. Anything of any complexity lives on one giant Float32Array which must surely bring a look of disgust from every programmer on this muddy rock. That is, one single array variable that you re-use for EVERYTHING.
Have a color? Throw it on the array. 10 floats in an object? Push it on the array - and split off the two bools via dependency injection (why do I have 3-4 line function parameter lists?!). Have an image with 1,000,000 floats? Drop it in the array. Want to return an array? Provide a malloc ptr into the code and write to it, then read from that location in JS after running the function, modifying the array as a side effect.
My- hahaha, my web worker has two images it's working with, calculations for all the planets, sun and moon in the solar system, and bunch of other calculations I wanted offloaded from the main thread... they all live in ONE GIANT ARRAY. LMFAO.If I want to find an element? I have to know exactly where to look or else, good luck finding it among the millions of numbers on that thing.
And of course, if you work with these, you put them in loops. Then you can have the joys of off-by-one errors that not only result in bad results in the returned array, but inexplicable errors in which code you haven't even touched suddenly has bad values. I've had entire functions suddenly explode with random errors because I accidentally overwrote the wrong section of that float array. Not like, the variable the function was using was wrong. No. WASM acted like the function didn't even exist and it didn't know why. Because, somehow, the function ALSO lived on that Float32Array.
And because you're using WASM to be fast, you're typically trying to overwrite things that do O(N) operations or more. NO ONE is going to use this return a + b. One off functions just aren't worth programming in WASM. Worst of all, debugging this is often a matter of writing print and console.log statements everywhere, to try and 'eat' the whole array at once to find out what portion got corrupted or is broke. Or comment out your code line by line to see what in forsaken 9 circles of coding hell caused your problem. It's like debugging blind in a strange and overgrown forest of code that you don't even recognize because most of it is there to satisfy the needs of WASM.
And because it takes so long to debug, it takes a massively long time to create things, and by the time you're done, the dependent package you're building for has 'moved on' and find you suddenly need to update a bunch of crap when you're not even finished. All of this, purely because of a horribly designed technology.
And do they have sympathy for you for forcing you to update all this stuff? No. They don't owe you sympathy, and god forbid they give you any. You are a developer and so it is your duty to suffer - for some kind of karma.
I wanted to love WASM, but screw that thing, it's horrible errors and most of all, the WASM heap32.7
So I once had a job as a C# developer at a company that rewrote its legacy software in .Net after years of running VB3 code - the project had originally started in 1994 and ran on Windows 3.11.
As one of the only two guys in the team that actually knew VB I was eventually put in charge of bug for bug compatibility. Since our software did some financial estimations that were impossible to do without it (because they were not well defined), our clients didn't much care if the results were slightly wrong, as long as they were exactly compatible with the previous version - compatibility proved the results were correct.
This job mostly consisted of finding rounding errors caused by the old VB3 code, but that's not what I'm here to talk about today.
One day, after dealing with many smaller functions, I felt I was ready to finally tackle the most complicated function in our code. This was a beast of a function, called Calc, which was called from everywhere in the code, did a whole bunch of calculations, and returned a single number. It consisted of 500 or so lines of spaghetti.
This function had a very peculiar structure:
If SomeVariable Then
If Not SomeVariable Then
(the most important bit of calculation happened here)
But for some reason it actually worked. For days I tried to find out what's going on, where the SomeVariable was being changed or how the nesting indentation was actually wrong and didn't match the source, but to no avail. Eventually, though, after many days, I did find the answer.
SomeVariable = 1
Somehow, the makers of VB3 though it would be a good idea for Not X to be calculated as (-1 - X). So if a variable was not a boolean (-1 for True, 0 for False), both X and Not X could be truthy, non-zero values.
This is the one thing about Spotify that annoys the living hell out of me (yes, I use spotify, if anyone knows a good/working self hosted alternative, let me know! I've tried quite a few including funkwhale but they all failed for me).
I'm a raw hardstyle/rawstyle lover and listen to the raw duo Malice a lot. Now, what would the problem be here? Sometimes, there are several artists in different scenes with the same name. This is completely fine.
Spotify, however, mixes up music of the raw duo Malice and the rock/metal band Malice. I keep getting release notifications/news regarding new music/events from Malice but 90 percent of the time this is about the rock/metal band and NOT the raw duo.
It's also very weird to suddenly hear rock music while listening to my daily mix; the wrong malice is mixed in once again.
Yesterday I got an email saying "Check out Malice's newest release on Spotify!"
*OH FUCK YEAH*
*opens Spotify release radar*
That's the other malice 😡
Is it so hard, Spotify? Entirely hiding the artist results in the right one being hidden as well for me 😞15
About 2 years ago, our management decided to "try outsourcing". I was in charge for coordinating dev tasks and ensuring code quality. So management came up with 3 potential candidates in India and I had to assess them based on Skype calls and little test tasks. Their CVs looked great and have been full of "I'm a fancy experienced senior developer." ....After first 2 calls I already dismissed two candidates because they had obviously zero experience and the CV must have been fake. ..After talking to the third candidate, I again got sceptical. The management, however, started to think that I'm just an ass trying to protect my own position against outside devs. They forced me to give him a chance by testing him with a small dev task. The task included the following statement
"Search on the filesystem recursively, for folders named 'container'. For example '/some_root_folder/path_segments/container' " The term 'container' was additionally highlighted in red!
We also gave him access to a git repo to do at least daily push. My intention was to look at his progressions, not only the result.
I tried the task on my own and it took me two days, just to have a baseline for comparison. I, however, told him to take as much time as he needs. (We wanted to be fair and also payed him.)
..... 3 weeks went by. 3 weeks full of excuses why he isn't able to use git. All my attempts to help him, just made clear that he has never seen or heard of git before. ...... He sent me his code once a week as zip per email -.- ..... I ignored those mails because I made already my decision not wanting to waste my time. I mean come on?! Is this a joke? But since management wanted me to give him a chance .... I kept waiting for his "final" code version.
In week 5, he finally told me that it's finished and all requirements have been met. So I tried to run his code without looking at it ..... and suprise ... It immediately crashed.
Then I started to look through the code .... and I was ..... mind-blown. But not in a good way. .....
The following is what I remember most:
Do you remember the requirement from above? .... His code implementing it looked something like this:
Go through all folders in root path and return folders where folderName == "/some_root_folder/path_segments/container".
Alone this little peace of code was on sooooooo many levels wrong!!!!! Let me name a few.
- It's just sooooo wrong :(
- He literally compared the folderName with the string "/some_root_folder/path_segments/container"...... Wtf?!?
- He did not understand the requirement at all.
- He implemented something without thinking a microsecond about it.
- No recursive traversal
- It was Java. And he used == instead of equals().
- He compares a folderName with a whole path?!? Wtf.
- How the hell did he made this code return actual results on his computer?!?
Ok ...now it was time to confront management with my findings and give feedback to the developer. ..... They believed me but asked me to keep it civilized and give him constructive feedback. ...... So I skyped him and told him that this code doesn't meet the requirements. ......... He instantly defended himself . He told me that I he did 'exactly what was written in the requirements document" and that there is nothing wrong. .......He had no understanding at all that the code also needs to have an actual business purpose.
After that he tried to sell us a few more weeks of development work to implement our "new changed requirements" ......
Footnote: I know a lot of great Indian Devs. ..... But this is definitely not one of them. -.-
Management wants to outsource to India and gets scammed.9
Have you guys heard about blind coding?
I had been to competition, first round was quiz.
That was quite easy, though most of the questions were incomplete and didn't make any sense.
They have provided an app. We use that to check the result.
So first round is over, 1 hour later my friend called me asked whether I'm qualified for the next round . I checked the results and my name wasn't there. I was very disappointed.
I left that place after I saw my result. I got a bus which goes to my place.
After 10 minutes, I got a call from the event head asking why I didn't attend second round 😑. I asked why name wasn't there on the result, for which he replied with "database updatation error".
I got down in the next stop and took a bus again to that place.
I reached there, second round was started, First part was debugging. It was easy, I debugged the given program and got the desired output.
Second part was coding. A guy showed a problem to solve and told me to read it quickly . I did as he told.
He opened Dev C++ and gave me a paper to write the program .
When I was about to start typing, he turned off the monitor and told I should write it on paper first and type the program having monitor turned off. 😨
I wrote and typed the program without seeing.
After 30 minutes a college lecturer came to give marks. He told me to compile the program.
TBH, there were many typing mistakes. As header file spelling was wrong it showed only one error.
Him: Huh, cool only one error, well done. *noted that and walked to a guy next to me*12
You write a list of instructions. The machine reads this list and runs your commands.
Quite similar to procedural programming but you group your functions via objects.
Learned of this new paradigm quite recently working with Blue Prism, which is essentially the program doing whatever it wants from crashing, freezing, returning wrong results, sometimes working properly, with no reason whatsoever other than the sheer malice of those beasts of burden who designed it in the first place. Mark my words, BP devs, you will be held accountable for your crimes against God and humanity.6
Okay so this happened ages ago (nearly five years) but this suddenly came to my mind again.
It was in the first year of my study (currently in my 5th and last year).
I was experimenting around with php and mysql during some free hours. All the insert,delete and so on statements worked perfectly find except for one update statement. Started to debug of course and after a little while of no results I was like "oh yeah right, something like logs exists of course". Looked in the logs but nothing. No matter how I altered my code (rewrote it numerous times for some 'clean starts') it just would not run the update statement.
Alright, time for some class mate help. After multiple hours of debugging with a few classmates, there was still no result at all.
Time to bring in one or more teachers. After hours of debugging, still no result even with the help of a few good teachers.
Decided to give it a rest for that day.
Two weeks later it still was not updating anything/working and I finally gave up.
Till today, I still have no clue what went wrong and it still bugs me from time to time :/4
Holy s**t, I was doing MySQL dumps wrong my whole life. An import from a backup service was taking 9 hours to finish. I was so pissed off that discovered mydumper & myloader. Results? Now it finished in 49 seconds. Yay!! 😆1
Working in the embedded systems industry for most of my life, I can tell you methodical testing by the software engineers is significantly lacking. Compared to the higher level language development with unit tests and etc, something i think the higher level abstracted industry actually hit out the of park successfully.
The culture around unit testing and testing in general is far superior in java and the rest.
Down here in embedded all too often I hear “well it worked on my setup... it worked at my desk”.. or Oh I forgot to test that part.. or I didn’t think that perticular value could get passed in... etc I’ve heard it all. Then I’ve also heard, you can’t do TTD or unit tests like high level on embedded... HORSESHIT!
You most definitely can! This book is a great book to prove a point or use as confirmation you are doing things correctly. My history with this book was I gonna as doing my own technique of unit testing based on my experience in the high level. Was it perfect no but I caught much more than if I hadn’t done the testing. THEN I found this book, and was like ohh cool I’m glad I’m on the right thought process because essentially what they were doing in the book is what I was doing just slightly less structured and missing a few things.
I’ve seen coworkers immediately think it’s impossible to utilize host testing .. wrong.
Come to find out most the of problems actually are related to lack of abstraction or for thought out into software system design by many lone wolf embedded developers.. either being alone, or not having to think about repercussions of writing direct register writes in application or creating 1500 line “main functions” because their perception is “main = application”. (Not everyone is like this) but it seems to be related to the EEs writing code ( they don’t know wha the CS knows) and CS writing over abstraction and won’t fit on Embedded... then you have CEs that either get both sides or don’t.. the ones to understand the low level need but also get high level concepts and pariadigms and adapt them to low level requirements BOOM those are the special folks.
ANYway..the book is great because it’s a great beginner book for those embedded folks who don’t understand what TDD is or Unit testing and think they can’t do it because they are embedded. So all they do is AdHoc testing on the fly no recording results no concluding data very quick spot check and done....
If your embedded software engineers say they can’t unit test or do TDD or anything other than AdHoc Testing...Throw the book at them and say you want the unit test results report by next week Friday and walk away.
Finished my project early today. I assumed it would take another day or two since it's primarily research and I had no idea how to progress, but I caught a break and finished it early. I also finished another surprise ticket! yay! I had the rest of the day to myself!
But then I noticed I had been working on the wrong branch. Fuck. Moving my work over was tedious, as was the cleanup. I kicked myself for good measure. Also, every time I switch branches, I need to run a bloody slow script that runs all the migrations, data tasks, backfills, etc. for the branch. It takes 12-18 minutes. There's a faster version, but it usually breaks things.
Turns out the branch I was supposed to be working on wasn't up to date with master. So I merged that in, leading to....
merge conflicts. Because of course there are conflicts. To make matters worse, I had (and have) no idea which changes were correct because idfk what those 248 new commits are doing. So I guessed at them, ran the script, and (after more waiting) ran a few related specs. Yet more waiting. Sense a pattern here? Eventually they finished, and all the specs passed. H'ray. So I committed the changes, and told Jenkins to kick off a full spec suite, which takes 45+ minutes.
La de da, I go back to cleaning up the previous ticket, pushing reversion commits, etc. Later, I notice the ticket number, look at the branch number I've been working on.... and. Fuuuck. I realize I had put everything on the wrong freaking branch AGAIN. I'm such an idiot. Cue more cleanup, more reversions, running the bloody script again and again. More wasted time, more kicking. ugh.
All of this took well over three hours. So instead of finishing at a leisurely 5:00 like a normal person, I finally stopped around 9pm. and I won't know the Jenkins spec results until morning.
A nice early day?
I should know better.2
Two places: At a major NYC firm, I was in charge of social media. I was also involved with an intranet community. Something went bad with the intranet community project politics and I got blamed for it even though I had emails to prove I hadn't said/done what I was accused of. But to assert their dominance, my bosses called me to their office, sat me in literally a corner of the room, and interrogated me for 2 hours. The only thing missing was the bright light in my eyes and the "good cop" part of the routine. I'm ashamed to say they "broke" me and I just gave up and did what they told me to do to "fix" it even though I hadn't done anything wrong. The bosses were old enough to be my parents, so I wonder how much of that worked its way into the psychology of it all.
The second toxic workplace was where each month the boss would come from his home by the beach to tell us plebes what new ideas he wanted us to work on. We would just get done reporting on the results of his delusions of grandeur from the month prior and he'd pull the rug out and start us on some new thing. Never got any consistent traction on anything. He was the ultimate seagull manager: fly in, make a lot of noise, poop all over everything, and leave us cleaning up the mess. Oh, and we had to change the locks because we had to fire a customer service guy who was a little bit on the ragey side of things. Because of high turnover, I had seniority within 4 months of starting there.1
Ok friends let's try to compile Flownet2 with Torch. It's made by NVIDIA themselves so there won't be any problem at all with dependencies right?????? /s
Let's use Deep Learning AMI with a K80 on AWS, totally updated and ready to go super great always works with everything else.
> CUDA error
> CuDNN version mismatch
> CUDA versions overwrite
> Library paths not updated ever
> Torch 0.4.1 doesn't work so have to go back to Torch 0.4
> Flownet doesn't compile, get bunch of CUDA errors piece of shit code
> online forums have lots of questions and 0 answers
> Decide to skip straight to vid2vid
> More cuda errors
> Can't compile the fucking 2d kernel
> Through some act of God reinstalling cuda and CuDNN, manage to finally compile Flownet2
> Try running
> "Kernel image" error
> Try without a label map because fuck it the instructions and flags they gave are basically guaranteed not to work, it's fucking Nvidia amirite
> Enormous fucking CUDA error and Torch error, makes no sense, online no one agrees and 0 answers again
> Try again but this time on a clean machine
> Still no go
> Last resort, use the docker image they themselves provided of flownet
> Same fucking error
> While in the process of debugging, realize my training image set is also bound to have bad results because "directly concatenating" images together as they claim in the paper actually has horrible results, and the network doesn't accept 6 channel input no matter what, so the only way to get around this is to make 2 images (3 * 2 = 6 quick maths)
> Fix my training data, fuck Nvidia dude who gave me wrong info
> Try again
> Same fucking errors
> Doesn't give nay helpful information, just spits out a bunch of fucking memory addresses and long function names from the CUDA core
> Try reinstalling and then making a basic torch network, works perfectly fine
> Setup vid2vid and flownet again
> SAME FUCKING ERROR
> Try to build the entire network in tensorflow
> CUDA error
> CuDNN version mismatch
> Doesn't work with TF
> HAVE TO FUCKING DOWNGEADE DRIVERS TOO
> TF doesn't support latest cuda because no one in the ML community can be bothered to support anything other than their own machine
> After setting up everything again, realize have no space left on 75gb machine
> Try torch again, hoping that the entire change will fix things
At this point I'll leave a space so you can try to guess what happened next before seeing the result.
> SAME FUCKING ERROR
In conclusion, NVIDIA is a fucking piece of shit that can't make their own libraries compatible with themselves, and can't be fucked to write instructions that actually work.
If anyone has vid2vid working or has gotten around the kernel image error for AWS K80s please throw me a lifeline, in exchange you can have my soul or what little is left of it5
Rant about social media in general, including devRant.
I enjoy interacting with like minded people. What I do not enjoy is the whole degradation of the conversation at hand. Sooner or later, someone takes something the wrong way, addresses something this social network was not meant to address (it's devRant not Facebook), and the audience has a multitude of English as a #(rd/th/whatever) language human beings.
Accept that as the premise, and I think we could get along a lot better.
However commonly this fact is ignored. Understand the sentiment behind statements, not the statement itself. If any part of it is unclear, then request clarification.
Agree, disagree, civil debates one thing, but degrading the conversation to name calling or similar emotions only results in poor communication, useless emotions running high, and nothing gained.
TLDR; Go to bottom of post.
Around this time two years ago was the start of my group project in University. The project was to write an app in android and have a web side to it too. The group was to be overseen by a member of staff. The first meeting was introductions and to look at the spec, during the second we were to decide a group leader (PM) and other positions.
A person I shall call BD and I volunteered for PM. I didn't have experience with leadership but wanted some, and was the only one with confidence in android, the biggest part of the system. I got four of the votes.
BD, with his scouts experience, not being afraid to breathe down people's necks and bash some heads together, and having been PM last year, with his group receiving 69% (he failed the year and was resitting), earned 5. One guy was missing.
When it came to sorting out roles and responsibilities, BD confessed to not being a strong coder but that he'd help here and there. His role was planning our deadlines, doing our Gantt chart for deliverables, and was supposed to write a really detailed spec. He didn't have it at the meeting of the next week, as it was still in the works, and never messaged anyone. Next week he turned up with a Gantt chart of 1A4 page that only included the deadlines and deliverables in the spec, with three colours. One for android team, one for DB guy, and one for web team.
The guy who didn't turn up for voting got a girlfriend, a job at mcdonalds and did barely a thing. One guy in the web team did everything, carrying his friend who wouldn't do work (and also got swept out to see in a rubber boat with one of his bros lol (he was rescued)), and even though I'd done android dev I wasn't as quick a learner as two others in the team. Out of 10 people, 6 did real work.
The web guys stopped coming to meetings as they were taken over by android talk, and as we were quite behind, BG tried yellow carding them. They turned around with the website pretty much done, this one guy doing more than the 4 of us on android had. Yellow card lifted. We'd already complained about BD and his lack of everything (except screen brightness as he sat at the front of the lecture theatres with his wide brimmed hat looking at 9gag and videos (remembering he said he was resitting that year)) but grew a stronger dislike. Found out that he spent most of his time with his gf at our secretary/fellow android dev's house. Come coding week, he disappears entirely, only to attend meetings. He gave us a shell of the android code used for his previous year's project (along with documentation, complete with names and dates of updates, most of them (including the planning ones BD was supposed to do) bearing either one of two names. It was behind where we were at the time and had a lot of differences to our spec, and if we had used it BD may have used that to pull us down with him if things went wrong. He resurfaced at the end with the final documentation of how we'd all done, including reports on how each member had performed, which we were supposed to have reviewed. Our main, most proficient dev he accused of being irritable and brash, and a bad communicator. He was Norwegian, his voice was just a bit gruff, and he was driven and didn't waste time. He bashed the web team for not turning up, and had already been rude and unhelpful to everyone who voted for him in the first place.
In our own reports we all devoted paragraphs to delicately describing his contributions, excluding his suggestion that we use the code he gave us. Before we had our results and our work was completed, he individually kicked us from our group's facebook group and unfriended us.
Our 43% mark at the end, coupled with his -40% penalty from the red card we had him on, felt good, but not as good as a better result would have, especially as the fool that was BD would be inflicted on a group a third time. He changed to some other course after that year finished, so he must have failed his resit of second year.
During third year, a friend of mine who was PM for a group that passed well passed other things with too slim a margin to be happy, so chose to resit the year. He didn't have to do the group project again, and had that time free. But BD had to resit. His group had 69%. A yellow card with a 20% deduction wouldn't do it, so he MUST have had a red card as PM his previous year. Well that didn't come up when he claimed credit for his team's 69% during elections... My housemate's compsci boyfriend 2 years up overheard me talking about him, he was in 1st year with BD. BD failed and resat 1st year too. 4 years and he couldn't make anything stick. I feel bad for him through understanding the pains lack of work and internet distraction bring, and unfortunately I can't wish bad things on him because he brings them on himself. I wish I never see his face again though.
TLDR; Guy in group project lies and is dishonest from start to finish, getting PM pos by 1 vote. Gets what he earns.2
Got my first Webdev job at a small marketing company, felt very lucky as I didn't have much experience. Turns out I'm the only one that could program. The other guys just use Wordpress. It felt wrong at first, using plugins instead of developing, but we got results and clients were happy. I felt like there was a lot less to this development thing than I'd previously thought! And so we continued.
But I noticed that some of our more plugin heavy sites (not made by me - these were made in some drag/drop Wordpress interface) were running slow. I mean 15 seconds load time slow. I joined devRant around the same time and discovered that no - this is not what normal development actually is. Wordpress seems universally hated. Thank god, because something seemed very wrong!
So with us getting complaints all over the place over page speed from relatively high-profile clients, I've gone and set up a script on a server that downloads the whole front end of these Wordpress sites and serves them up instead of the 'real' thing. Did I mention that there's basically no dynamic content on most of these sites? It works like a charm! I'm now trying to figure out how to get forms and route them into the real, hidden version of the site, as well as automatically updating the html views whenever the client changes anything in the Wordpress backend. Not sure if this has fixed the problem or just enabled bad practice, but I don't think I'm going to be able to stop the others from doing things this way...
For the record, yes there are plugins that do similar stuff but I thought it'd be nice to never use plugins again! And hey, I got to learn all about bash scripting so I can't complain.
For real though, I didn't quite realise how bad the Wordpress thing really was until I came here. Thanks for making me aware, all!7
It happened during my campus placement.
My friend was working in the company and he too had come for the interviews. So when I walked into the interview room and saw him, we both acknowledged that we knew each other so the coordinator had my panel changed. The interview went well enough and the interviewer liked me. However when the results were announced my name wasn't there. I was really depressed. Just thought I could never get a job and all that.
Then my friend calls me a week later and tells me because of the mix up during changing the panel, even though i had cleared the round, was not in the final list.
This really was one of the worst moments.
I must come clean as my friend was able to get me another interview and obviously this time I had to blow it. I literally just went blank. I got my first question wrong and after that it just went down hill.
Now that I think about it I'm not sure which interview would be my worst interview story :p
I'm not sure where I'm going with this, but I'm fucking sick of my experience with the world.
I have a feeling that all that 1984 conspiracy type of ideas that I previously considered bullshit and fear mongering are real.
(Just to be clear, I'm not including most conspiracy theories which are very ignorant like flat earth, fake moon landing, or antivax, the people that spread those theories can die a horrible death IMHO).
Corporation consolidation is a fact and appears to become irreversible.
Because of technology, I can stay in the comfort of my house, safe from crime and be entertained without needing to have direct contact with humans.
People might say "that's your fault for not leaving the house". True but that is just how the world is.
The outside world in the cities I lived in is not a welcoming place.
Hell if you fucking find a bench it's a goddamn miracle, and if you do and sit for a long time, the police stares at you like you are up to something.
People don't talk to you because "don't talk to strangers".
It can be rare to find water or a bathroom that isn't a complete shithole.
So no wonder I rather stay at home, the outside world is hostile.
So yeah, go to a mall or something. And consume, consume, consume, because the outdoors suck.
Many pioneers thought technology was to improve the quality of life.
But no, it's just more isolation, less direct contact with people, less giving a fuck about other people.
And that's how feel about people of today. The least amount of fuck giving about others possible.
You would you would connect to more people faster, but no, the result is just millions of people browsing through the same "entertainment", shitty aggregated content.
Yes, consolidation affects internet too. Everything goes through fucking google, youtube, or whatever other fucking top 10 company.
Just like the class disparity, 1% of the things online get 99% of the exposure.
So if you're a small time anything, basically fuck you, because you're not something enormous.
Like, I wished I was a game developer, but there's thousands of brilliant indie games that get released every year, and they barely make what they're worth.
So why should I fucking try? So I can get ruined financially and I don't have a place to live in?
Software itself is so complex that is impossible to scrutinize decently.
We all laugh at congressmen asking the zuck silly questions.
Out of touch, true, but in hindsight, it is true to some extent that software is hard to regulate. Every software I on earth doesn't meet some standard one way or another.
Or maybe it's just too many of us right now.
When people scroll their search results to get access to the things they should be interested in, the only practical interface right now is being showing one link at a time.
But there's millions and millions of results.
One redeeming aspect of life is that one day I won't be alive anymore to observe the disgusting world we live in.
This could be just pure rambling and I can't prove any of the things I'm saying, I could just have been making the wrong friendships. So take this with a grain of salt.7
This was some time ago. A Legendary bug appeared. It worked in the dev environment, but not in the test and production environment.
It had been a week since I was working on the issue. I couldn't pinpoint the problem. We CANNOT change the code that was already there, so we needed to override the code that was written. As I was going at it, something happened.
Manager: "Hey, it's working now. What did you do?"
Me: *Very confused because I know I was nowhere close to finding the real source of the problem* Oh, it is? Let me check.
Also me: *Goes and check on the test and prod environment and indeed, it's already working*
Also me to the power of three: *Contemplates on life, the meaning of it, of why I am here, who's going to throw out the trash later, asking myself whether my buddies and I will be drinking tonight, only to realize that I am still on the phone with my manager*
Me again: "Oh wow, it's working."
Manager: "Great job. What were the changes in the code?"
Me: "All I did was put console logs and pushed the changes to test and prod if they were producing the same log results."
Manager: "So there were no changes whatsoever, is that what you mean?"
Me: "Yep. I've no idea why it just suddenly worked."
Manager: "Well, as long as it's working! Just remove those logs and deploy them again to the test and prod environment and add 'Test and prod fix' to the commit comment."
Me: "But what if the problem comes up again? I mean technically we haven't resolved the issue. The only change I made were like 20 lines of console logs! "
Manager: "It's working, isn't it? If it becomes a problem, we'll work it out later."
I did as I was told, and Lo and Behold, the problem never occurred again.
Was the system playing a joke on me? The system probably felt sorry for me and thought, "Look at this poor fucker, having such a hard time on a problem he can't even comprehend. That idiotic programmer had so many sleepless nights and yet still couldn't find the solution. Guess I gotta do my job and fix it for him. I'm the only one doing the work around here. Pathetic Homo sapiens!"
Don't get me wrong, I'm glad that it's over but..
What the fuck happened?5
ALWAYS read warnings guys.
Story time !
A client of ours has a synchronization app (we wrote it) between his inhouse DB and our app. (No, no APIs on their end. It’s a schelduled task).
Because we didn’t want to ask them for logs every single time, the app writes logs to disk (normal) and in Applications Insights in Azure.
When needed, I can go in portal, get all logs for last execution in a nice CSV file.
Well, recently we added more logs (Some problems were impossible to track).
So client calls us : “problem with XXX”
Me : Goes to Azure, does the same manipulation as always. Dismiss a smaaaaaalish warning without reading. Study logs. Conclusion: “The XXX is not even in the logs, check your DB”.
Little I knew, the warning was telling me “Results are truncated at 10.000 lines”.
So client was right, I was wrong and I needed to develop a small app to get logs with more than 10.000 lines. (It’s per execution. Every 3 hours)
My preferred stack is Rails/NginX/Postgres, or Node using the same.
I have a fair amount of material for this week's rant, but in my stack's defense, the quantity is primarily because I've been using it for so long, and I'm apparently a talented breaker. I may share other stories if the motivation arises.
However, today I ran into something definitely deserving of calling out.
The default datatype for a Date+Time column in Postgres is `datetime` which means "date+time without timezone". (while `datetimetz` instead stores the timezone).
Apparently when comparing a datetime with a datetimetz, Postgres doesn't compute the timezone difference correctly, leading to some very unexpected and confusing query results.
Today, I had a record that was both pending (expires_at > now) and expired (expires_at <= now), where now is a DateTime (with tz) literal from Rails. After half an hour's frustrated delving and baffled expressions at query results, I finally figured out that the database's math was incorrect when comparing UTC (+0) and PST (-7).
This during a semi-high-priority bugfix that's blocking for a coworker.
While Time and all of its nuances are honestly extremely difficult to handle correctly, I didn't expect Postgres to get this relatively simple part wrong.
Shame on you, Postgres.
I expected better.3
Alright, biiiiig rant time.
Shitty webdevs who randomly use an entire framework for some tiny feature in the middle of their codebase because they couldn't figure out how to do it with native and completely fucking up their syntax, consistency and standards set beforehand (not that there were any to begin with, this dude program's like 3-4 people just jumbled all their crap into one massive pile).
Not only that but throughout the entire backend this guy flip-flops on passing an the error value before results in his callbacks, so now i have to check his functions everytime I use them after spending 2-3 sessions debugging to figure out wtf was going wrong.
Please for the love of god, if you wanna dance to your own beat, LEAVE COMMENTS4
!rant / funny
Here is something I saw online while in bed, made me laugh so much cried myself to sleep.
Reminded me of the time my mgr pushed me to make an android app despite me having no prior exp then getting snippy when the end results weren't up to it...
A game designer wanted to commission some conceptual artwork about monsters.
He asked the freelance artist to make him something kinda unique but not too far off, something like a mix between a centaur and a minotaur
The artist unfamiliar with that kinda work asked for more details, the designer said ah just mix em together , its easy, half bull half man and the other half man half horse (already incorrect) and he sent the man off to work.
A couple days later the artist is back...
Here its done, had to look up the monsters online but here ya go....
game designer : wtf is is ?!😡
Arist: half centaur half mino... whats wrong?! 😒
Designer: yeah but you got the wrong halves you dimwit!
you gave me a half "man-half-another-man" creature 😡
I found the image somewhere online with not much of any context or history .
I just know it was the product of a massive miscommunication 😂so I patched the story up for this rant1
So ok here it is, as asked in the comments.
Setting: customer (huge electronics chain) wants a huge migration from custom software to SAP erp, hybris commere for b2b and ... azure cloud
Timeframe: ~10 months….
My colleague and me had the glorious task to make the evaluation result of the B2B approval process (like you can only buy up till € 1000, then someone has to approve) available in the cart view, not just the end of the checkout. Well I though, easy, we have the results, just put them in the cart … hmm :-\
The whole thing is that the the storefront - called accelerator (although it should rather be called decelerator) is a 10-year old (looking) buggy interface, that promises to the customers, that it solves all their problems and just needs some minor customization. Fact is, it’s an abomination, which makes us spend 2 months in every project to „ripp it apart“ and fix/repair/rebuild major functionality (which changes every 6 months because of „updates“.
After a week of reading the scarce (aka non-existing) docs and decompiling and debugging hybris code, we found out (besides dozends of bugs) that this is not going to be easy. The domain model is fucked up - both CartModel and OrderModel extend AbstractOrderModel. Though we only need functionality that is in the AbstractOrderModel, the hybris guys decided (for an unknown reason) to use OrderModel in every single fucking method (about 30 nested calls ….). So what shall we do, we don’t have an order yet, only a cart. Fuck lets fake an order, push it through use the results and dismiss the order … good idea!? BAD IDEA (don’t ask …). So after a week or two we changed our strategy: create duplicate interface for nearly all (spring) services with changed method signatures that override the hybris beans and allow to use CartModels (which is possible, because within the super methods, they actually „cast" it to AbstractOrderModel *facepalm*).
After about 2 months (2 people full time) we have a working „prototype“. It works with the default-sample-accelerator data. Unfortunately the customer wanted to have it’s own dateset in the system (what a shock). Well you guess it … everything collapsed. The way the customer wanted to "have it working“ was just incompatible with the way hybris wants it (yeah yeah SAP, hybris is sooo customizable …). Well we basically had to rewrite everything again.
Just in case your wondering … the requirements were clear in the beginning (stick to the standard! [configuration/functinonality]). Well, then the customer found out that this is shit … and well …
So some months later, next big thing. I was appointed technical sublead (is that a word)/sub pm for the topics‚delivery service‘ (cart, delivery time calculation, u name it) and customerregistration - a reward for my great work with the b2b approval process???
Customer's office: 20+ people, mostly SAP related, a few c# guys, and drumrole .... the main (external) overall superhero ‚im the greates and ur shit‘ architect.
Aberage age 45+, me - the ‚hybris guy’ (he really just called me that all the time), age 32.
He powerpoints his „ tables" and other weird out of this world stuff on the wall, talks and talks. Everyone is in awe (or fear?). Everything he says is just bullshit and I see it in the eyes of the others. Finally the hybris guy interrups him, as he explains the overall architecture (which is just wrong) and points out how it should be (according to my docs which very more up to date. From now on he didn't just "not like" me anymore. (good first day)
I remember the looks of the other guys - they were releaved that someone pointed that out - saved the weeks of useless work ...
Instead of talking the customer's tongue he just spoke gibberish SAP … arg (common in SAP land as I had to learn the hard way).
Outcome of about (useless) 5 meetings later: we are going to blow out data from informatica to sap to azure to datahub to hybris ... hmpf needless to say its fucking super slow.
But who cares, I‘ll get my own rest endpoint that‘ll do all I need.
First try: error 500, 2. try: 20 seconds later, error message in html, content type json, a few days later the c# guy manages to deliver a kinda working still slow service, only the results are wrong, customer blames the hybris team, hmm we r just using their fucking results ...
The sap guys (customer service) just don't seem to be able to activate/configure the OOTB odata service, so I was told)
Several email rounds, meetings later, about 2 months, still no working hybris integration (all my emails with detailed checklists for every participent and deadlines were unanswered/ignored or answered with unrelated stuff). Customer pissed at us (god knows why, I tried, I really did!). So I decide to fly up there to handle it all by myself16
Does most memorable in a bad way count? 🤔
He left almost 2 years ago..or even more.. left a bunch of bugs and logical fuckups for me to fix.. some already fixed, some still lingering there..
I want to not blame him for everything, since we lack proper code review protocols and all.. but I've asked on several occasions if he understands the problem and what must be done..and the answer was always yes..results, after I got time to check up on him, the code he wrote was most probably copy pasted from stack overflow or somewhere else.. butchered in any and every way possible..
And of course already checked in to TFS.. along with bunch of files that were not even changed (he didn't bother to check that and exclude them) + a bunch of files from other projects... Told him to not do that on several occasions too, but he still managed to fuck things up this way.. leaving all the uncommented debugger; crap and alerts in the js files..
On one occasion I was working on new GUI..api part I already finished..got the order from above to delegate this to him as it is not much he can fuck up so I could focus on more important & complex stuff..
Maybe additional 4h of work + testing for everything..
I show him the prepared files, one controller, one view..explained what parts of code goes where etc.. a little short of writing everything myself.. Ask if he understands what needs to be done & how and told him if he has any problems/questions to ask me asap..
Said he understood what needs to be done.. after a day or two he asks me why something is not workig as expected.. I check the files, correct initialization was commented out and all the code was stuffed in the view file.. Took him another day to move the code to proper files.. Not sure about the possible bugs left there as the client later decided that they will not be using this..
I later found out that years of C# experience on his CV was actually a school course.. he didn't even know why the changes on api are not showing up..because he didn't know that he has to build the code..
I mean, if he was honest when asked about experience with .net, we would've taken a month or two to just explain everything from the start..
But as he didn't and based on his CV (much more experience with .net than me) and 'I understand everything' attitude from the start I assumed he knows WTF was he doing..
Boy was I wrong..
He was also more interested in how much I get payed and if I have a company phone etc..than actually doing his job.. I fucking hate chit chat, and this..well.. he didn't get the hints that this is in no way appropriate to ask.. I've told him that if he has problems with his pay and bonuses that he should talk to the management and not me about this..and that I'm only interested in his actual work and progress..
So yeah, I'll definitely be remembering this guy till the day I die..4
A fellow mate I graduated with recently asked me to help him with his interview sample coding questions. Basically he had to write a function to test different conditions using Java. I wrote the function, pushed it to git and asked him to go check it out. He told me afterwards that, my function was wrong..lol, really? (BTW, I tested it and it produced the results the company wanted)
I asked him to send me his code and all he did was write a "main", created an instant variable and passed it in a switch statement. Mind you, the test condition was big that, switch statement was the worse to use...
I told him to do whatever he wants but he should remember that the question wants a damn function given a certain input. Didn't hear from him again...then later asked me to help him with a SQL question...hah, I didn't even bother looking at the question.
So I have been a fly on the "wall" for last couple of months and never signed up, but now here I am!
Rant is about a serious topic - gender gap in tech industry!!
Couple of months ago Stackoverflow announced developer survey results! I was shocked by demographics results! It was disappointing to see biggest gender gap in general tech industry!
I believe tech industry can be the first one to have equal pay for women!
However.... (bad part)
I was going through my twitter feeds and saw this! Many of you have seen this tweet too.
(ohh!fuck I cant attach multiple images here, I should have created Medium post, fuck it!)
"They" continue, quoting from the tweet.
1)"....bias in society is reflected in AI"
2) "However, I do think it is our responsibility as designers/developers/users to be aware of this bias and do our best to correct it."
I want to rant about 2nd one. Some of you may not like it including grammar naziz!
As a developer/programmer I take 2nd one personally! I am currently at denial phase though!
And I have an OCD so gonna make points here!
1) Seriously tell me please, how the fuck you can write gender bias algorithm which can pass a big crazy amount of test suite?
2) Google has done many things for last decade to overcome gender gap related issues. I have met some of the nicest people from Google, and this is really hard for me to believe that google AI or that team has anything to do with the results!
3) Someone suggests use "they" in google translated result, can you fucking imagine how wrong that would be??? If I am developer working on that algo or even in that team and I see this ticket in jira with highest priority where it says, "make all translated results gender neutral using only they" - I would fucking like to die and may be in my next life ask me to do that, when I am a toddler!
4) I am an advocate for equal pay, equal rights and equal opportunities for everyone to "minify" this gender gap in tech, but showing google translate results of a gender natural language to make a point is wrong, it is simply undermining the efforts of something really helpful thing.
5) Moving on to the core point - What can be done to lower down the gender gap? I have seen amazing women who can code/manage far far far better than what I ever could imagine, and they are at really good place and deserve to be there. Are they doing enough to inspire other women to join tech industry?
Collective efforts are very much required. And need to keep in consideration that tech industry is highly competitive roles are also changing rapidly.
6) Many big companies have women at higher positions(CEO, CFO,....) what are their efforts to bring more women in tech industry?
(Some of you may not like this, as this is implying that it isn't only men's job. )
7) Going slightly political here, everyday we see really disappointing news related to women and their rights and health, I strongly believe women don't have to ask for or even have to mention about "equal rights" about anything. Everyone is equal!!!
This is 2017 and still fucked up!
Thats all for today! Heading for breakfast!26
Github 101 (many of these things pertain to other places, but Github is what I'll focus on)
- Even the best still get their shit closed - PRs, issues, whatever. It's a part of the process; learn from it and move on.
- Not every maintainer is nice. Not every maintainer wants X feature. Not every maintainer will give you the time of day. You will never change this, so don't take it personally.
- Asking questions is okay. The trackers aren't just for bug reports/feature requests/PRs. Some maintainers will point you toward StackOverflow but that's usually code for "I don't have time to help you", not "you did something wrong".
- If you open an issue (or ask a question) and it receives a response and then it's closed, don't be upset - that's just how that works. An open issue means something actionable can still happen. If your question has been answered or issue has been resolved, the issue being closed helps maintainers keep things un-cluttered. It's not a middle finger to the face.
- Further, on especially noisy or popular repositories, locking the issue might happen when it's closed. Again, while it might feel like it, it's not a middle finger. It just prevents certain types of wrongdoing from the less... courteous or common-sense-having users.
- Never assume anything about who you're talking to, ever. Even recently, I made this mistake when correcting someone about calling what I thought was "powerpc" just "power". I told them "hey, it's called powerpc by the way" and they (kindly) let me know it's "power" and why, and also that they're on the Power team. Needless to say, they had the authority in that situation. Some people aren't as nice, but the best way to avoid heated discussion is....
- ... don't assume malice. Often I've come across what I perceived to be a rude or pushy comment. Sometimes, it feels as though the person is demanding something. As a native English speaker, I naturally tried to read between the lines as English speakers love to tuck away hidden meanings and emotions into finely crafted sentences. However, in many cases, it turns out that the other person didn't speak English well enough at all and that the easiest and most accurate way for them to convey something was bluntly and directly in English (since, of course, that's the easiest way). Cultures differ, priorities differ, patience tolerances differ. We're all people after all - so don't assume someone is being mean or is trying to start a fight. Insinuating such might actually make things worse.
- Please, PLEASE, search issues first before you open a new one. Explaining why one of my packages will not be re-written as an ESM module is almost muscle memory at this point.
- If you put in the effort, so will I (as a maintainer). Oftentimes, when you're opening an issue on a repository, the owner hasn't looked at the code in a while. If you give them a lot of hints as to how to solve a problem or answer your question, you're going to make them super, duper happy. Provide stack traces, reproduction cases, links to the source code - even open a PR if you can. I can respond to issues and approve PRs from anywhere, but can't always investigate an issue on a computer as readily. This is especially true when filing bugs - if you don't help me solve it, it simply won't be solved.
- [warning: controversial] Emojis dillute your content. It's not often I see it, but sometimes I see someone use emojis every few words to "accent" the word before it. It's annoying, counterproductive, and makes you look like an idiot. It also makes me want to help you way less.
- Github's code search is awful. If you're really looking for something, clone (--depth=1) the repository into /tmp or something and [rip]grep it yourself. Believe me, it will save you time looking for things that clearly exist but don't show up in the search results (or is buried behind an ocean of test files).
- Thanking a maintainer goes a very long way in making connections, especially when you're interacting somewhat heavily with a repository. It almost never happens and having talked with several very famous OSSers about this in the past it really makes our week when it happens. If you ever feel as though you're being noisy or anxious about interacting with a repository, remember that ending your comment with a quick "btw thanks for a cool repo, it's really helpful" always sets things off on a Good Note.
- If you open an issue or a PR, don't close it if it doesn't receive attention. It's really annoying, causes ambiguity in licensing, and doesn't solve anything. It also makes you look overdramatic. OSS is by and large supported by peoples' free time. Life gets in the way a LOT, especially right now, so it's not unusual for an issue (or even a PR) to go untouched for a few weeks, months, or (in some cases) a year or so. If it's urgent, fork :)
I'll leave it at that. I hear about a lot of people too anxious to contribute or interact on Github, but it really isn't so bad!4
I know politics is not allowed here, but I have to share this gem with you.
One day before the election for the European parliament the website of the German city Bochum showed a wrong bar diagram with false results of the election for a few seconds.
Everyone was loling. But I was like WTF? They were testing in production. And also they included data were the party AFD had about 50% of the votes. Are they retarded or so?5
Dont mine monero they said.
It wont make money they said.
Well 1 month later and here we are with results.
So it was expected by the calculator that i would make 8$ without electricity and 2$ pure profit.
Ohhhh so wrong.
11€ (yes € instead of $) and 5€ pure profit.
I mean it isnt much but its pretty decent i would say.17
After some time i got the hang of time, around that time B left and a new guy, C, was hired soon after that. He didn't know about react/redux either. The perfect start off to a burning pile of smelly code.
Today this burning pile turned into a wasteland of code quality, a house of cards with a storm approaching, a rocket with leaks ready to launch, you get the idea.
We got 2 dozen files with 200-500 loc, each in the same directory and each with the same 2 word prefix which makes finding the right one a nightmare on its on. We have an i18n-library used only for ~10 textfields, copy-pasted code you never know if it's used or not, fetch-calls with no error-handling, and many other code smells that turn this fire into a garbage fire. An eternal fire. 3 months ago i reduced the linter-warnings on this project to 1, now i can't keep count anymore.
We use the reactabular-module which gives us headaches because IT DOESN'T DO WHAT IT'S SUPPOSED TO DO AND WE CANT USE IT WELL EITHER. All because the client cant be bothered to have the table header scroll along with the body. We have methods which do two things because passing another callback somehow crashed in the browser. And the only thing about indentation is that it exists. Copy pasting from websites, other files and indentation wars give the files the unique look that make you wonder if some of the devs hides his whitespace code in the files.
All of this is the result of missing time, results over quality and the worst approach of all, used by A: if A wants an ui-component similar to an existing one, he copies the original and edits he copy until it does what he wants. A knows about classes, modules, components, etc. Still, he can't bring himself to spend his time on creating superclasses... his approach gives results much faster
Things got worse when A tried redux, luckily A prefers the components local state. WHICH IS ANOTHER PROBLEM. He doesn't understand redux and loads all of the data directly from the server and puts it into the local state. The point of redux is that you don't have to do this. But there are only 1 or 2 examples of how this practice hurt us yet, so i'm gonna have to let this slide. IF HE AT LEAST WOULD UPDATE THE DATA PROPERLY. Changes are just sent to the server and then all of the data is re-fetched. I programmed the rest-endpoints to return the updated objects for a very reason. But no, fuck me.
I've heard A decided (A is the teamleader) to use less redux on the next project and use a dedicated rest-endpoints for every little comoutation you COULD DO WITH REDUX INSTEAD. My will is broken and just don't want to work with this anymore.
There are still various subpages that cant f5 because the components cant handle an empty redux state in the beginning, but to be honest i don't care anymore. Lets hope the client will never find out, along with the "on error nothing happens"-bugs. The product should've been shipped last week, but thanks to mandatory bugfixes the release was postponed to next week. Then the next project starts...
Please give me some tips to keep up code quality over time, i cant take this once more.
I'm also aware that i could've done more, talking A and C about code style, prettifying the code, etc. Etc. But i was busy putting out my out fires, i couldn't kill much of the other fires which in the end became a burning building (a perfect metaphor for this software)4
Accuracy 0.90 achieved so easily, makes me wonder if I've done something wrong. Lol.
My neural net models are the only things in my life doing well. I think I chose the right career. Lol.
Rerunning experiments is not fun. But getting better results is really... Ego stroking.26
Oh boy I got a few. I could tell you stories about very stupid xss vectors like tracking IDs that get properly sanitized when they come through the url but as soon as you go to the next page and the backend returns them they are trusted and put into the Dom unsanitized or an error page for a wrong token / transaction id combo that accidentally set the same auth cookie as the valid combination but I guess the title "dumbest" would go to another one, if only for the management response to it.
Without being to precise let's just say our website contained a service to send a formally correct email or fax to your provider to cancel your mobile contract, nice thing really. You put in all your personal information and then you could hit a button to send your cancelation and get redirected to a page that also allows you to download a pdf with the sent cancelation (including all your personal data). That page was secured by a cancelation id and a (totally save) 16 characters long security token.
Now, a few months ago I tested a small change on the cancelation service and noticed a rather interesting detail : The same email always results in the same (totally save) security token...
So I tried again and sure, the token seemed to be generated from the email, well so much about "totally save". Of course this was a minor problem since our cancelation ids were strong uuids that would be incredibly hard to brute force, right? Well of course they weren't, they counted up. So at that point you could take an email, send a cancelation, get the token and just count down from your id until you hit a 200 and download the pdf with all that juicy user data, nice.
Well, of course now I raised a critical ticket and the issue was fixed as soon as possible, right?
Of course not. Well I raised the ticket, I made it critical and personally went to the ceo to make sure its prioritized. The next day I get an email from jira that the issue now was minor because "its in the code since 2017 and wasn't exploited".
Well, long story short, I argued a lot and in the end it came to the point where I, as QA, wrote a fix to create a proper token because management just "didn't see the need" to secure such a "hard to find problem". Well, before that I sent them a zip file containing 84 pdfs I scrapped in a night and the message that they can be happy I signed an NDA.2
two hours spent debugging without results, only to realize that I've been working the whole time within the wrong working copy (checked out a week ago for a totally different purpose, and then quickly forgotten)
Newer Dev here. Just recently started in a position as a developer. I'm tasked with consolidating our monitoring systems into one cohesive display. After lumping together all the indexes and helping build a custom API I'm now working on front end. Front end is easy, I've done it before. Should be no problem. I was wrong. I spent a whole day fiddling with a React dynamic table and the CSS to format it. Today, I stumble upon the react-table component. Got the results I was looking for in less than 2 hours. I'm convinced that this was a lesson better learned early on.
My job environment is either fucked up or am too young to understand what a job life is.
I was hired to intern for a startup having 2 main bosses/founders . one of them is mostly administrative and comes to office daily. He sets some tasks and i have to complete them, as soon as possible or sometimes till a deadline. He has little knowledge about the complexity of wotk so usually he says "just complete it as soon as possible so we could release it" but we haven't pushed any updates since i joined (of course i have completed some tasks, but they are just not pushed to the release version)
The other one , as i ranted previously is a completely different story.I think he is an elder bro or senior of the other boss,but he is just a superman: dealing with the distributers, commanding the hardware ppl, discussing with the othr boss, handling the server and most importantly the guy who wrote all the code i am working on. So he comes extremely rarely(1 or 2 days / week) , tries to communicate with me , but is immediately diverted by some other call/person and goes away.
The problem is : am feeling a little helpless. They give me tasks and i start working on them with excitement .( I don't believe myself to be a terrible beginner: i have been learning/working on android development for past 1 year, i know my things. And even if i don't, i know how to search/debug and produce results) . So as usual, i start and try to apply my skills / search for things i don't / try to understand his large,overwhelming and confusing codebase and at the end am stuck at some point where i don't understand what to do next. Sometimes its a bug which doesn't seems to fix, sometimes its a thing thats in the codebase but i couldn't find or sometimes it's just something i couldn't seem to understand why isn't it working. At that time, I only wish that boss to be here and look at what and how i have done, if its a correct approch and how can we together take it to completion (or simply wtf am i doing wrong, see my shit and tell me) .
But again, the tech boss is busy or wouldn't have time to understand my problem in our short , incomplete meetings. But he or the nontech boss will definitely have the time to ask the sttus of project and pressurise for the "deadline" .
Like today, i was so stuck at this fucking one line error that i couldn't detect that i just messaged him that am leaving for home 3 hours early. He came running and for the first time in history gave me a complete undisturbed time. It was such a small mistake, but i wasn't able to catch on my own. But when i told him, he immediately caught , changed a single line and the code started to work.
I am feeling irritated. Is this all a correct environment?2
TL;DR Calendar services sucks.
Imagine yourself as startup. You don't want to spend fortune on paying $5 per user per month for Google Services. Also you don't want to pay that to Microsoft for O365. You want to run it itself because you already have droplet running with your other services (ERP for example. Funny story too btw.) Ok, decision has been made, let install something.
I have pretty good experience with OwnCloud from past as Cloud file sharing service. Calendar is not bad for single user purpose (understand it as personal calendar, no invitations to others, sharing is maximum I tried) What can possibly go wrong when I deploy that and use its Calendar?
Well, lot. OwnCloud itself runs well (no rant here) but Calendar is such pain in ass. Trouble is with CalDav under hood and its fragmented standards. So, you want to send invitation to your team for recurrent meeting. Nothing weird. It sends as one invitation to each one, good. Now you realize you have a conflict, so you need to change time of one occurence. Move it, send update. And here comes shitstorm. It is not able to bisect one occurence from series. So it splits it to separate events and send invitation for every single one. 30 INVITATIONS IN 2 SECONDS! Holy sh*t! You want to revert that. Nope, won't do. So you accept your destiny and manually erase every single one with memo in head about planning recurring events.
Another funny issue is when SwiftMailer library (which is responsive for sending e-mails from OwnCloud) goes to spamming mayhem. It is pretty easy to do. When e-mail doesn't comply to RFC, it is rejected, right? So if because of some error CalDav client passes non-compliant e-mail (space as last character is non-compliant btw) and SwiftMailer tries to send it to multiple recepients (one of them is broken, rest is fine), it results in repetitive sending same invitation over and over in 30 minute interval. Sweet.
So now I am sitting in front of browser, looking for alternatives. Not much to choose from. I guess I'll try SOGO. It looks nice. For now.5
Am I just stupid? It took me 3 whole weeks to finally come to the realisation today that the Elasticsearch "guide" and Elasticsearch "reference" were different, with different version numbers. I've been ignoring Google search results that say Elasticsearch 2.x for WEEKS and wondering why I couldn't find a solution to simple problems.
Turns out, the current Elasticsearch "guide" is on version 2.x while Elasticsearch itself is on version 6.x.
They even have almost identical URLs that go ../guide/../reference and ../guide/../guide.
WHY? Why would you do that? Am I just stupid? Am I still getting it wrong? What the heck is up with Elasticsearch documentation?
I got my domain from Swisscom (Switzerlands "T-Mobile") Every damn time I try to renew/adjust the domain it feels like I have to search for the fucking Higgs Boson. Searching for it on DDG only yields wrong results. Domains are hidden deep within the business part of their homepage. Their buisness site barely mentions domains, the login is somehow tied to an account you would normally use in combination with your phone number which only adds more to the confusion and the whole domain thing seems to be a shitty frontend coverup of someone elses service.5
Annoying part of fancy names for systems are the amount of wrong results when googling.
Im trying to learn Flutter and I want a striped background to move endlessly. I i get are either far more advanced animations, or hair salons...2
Sometimes I really feel humiliated in my lab.
We have several presentation/discussion groups in my lab that meet once a week or so where members present their progress reports. Generally people in my lab are not so enthusiastic about them. Which is okay, I also don't like doing presentations, but you know, you have to improve somehow and get feedback somehow.
So I've been in a really passive group for a while and I decide to join this other group since they seem to have good discussions, but nope fuck me.
The first time I present, the professor doesn't show up since he has some meeting, so obviously nobody cares to show up. And I'm there presenting for a guy who is half comatose. Alright, I guess that's the price for joining a new team, it's gonna get better next time.
Second time. Spent all night to prepare my presentation and been training my model for two weeks. I am actually really happy with the results of my networks. But the enjoyment of showing some good results, I shall not have.
Meeting leader doesn't show up. Two guys who should present don't show up. Professor doesn't show up. A different professor substitutes him and has no idea what I am talking about and asks stupid questions that don't really have an answer. Fuck me, I'm so angry, this shit is a waste of time. If you don't show up, care to fucking send an email or a message on slack, but guess you're too fucking retarded to even do that.
I'm so done with this. I've gotten better feedback from reddit, than what I've cumulatively gotten from my laboratory. I'm a moment away from walking up to the meeting leader and telling him that the meetings are stupid and a waste of time. Don't get me wrong, my professor is really nice and knowledgeable, but he fails to see that some people in the laboratory are shit.
What do I do? How do I deal with these people? Right now they're planning a trip! Why are you planning a trip? WHAT ARE YOU REWARDING YOURSELVES FOR? YOU HAVE DONE NOTHING IN WEEKS? omfg3
I swear the God I'm considering getting a rabied dog just to bite your balls off in case I ever see you in the streets..
- guys X are running load tests on env A
- load tests complete
- analysis of test results is being done
- slow response times are obsered
- someone asks whether X guys took a thread dump for further analysis
- a guy from team X (Mr. Xx) replies: "Will take the Thread Dump now."
- 10 minutes later uploads the whole fucking 2GB log file to Slack
- Xx replies: "I do not see anything wrong in the dump"
A fucking retard... Shove that useless dump up your ass and THEN tell me there's nothing wrong with it! Why the FUCK do you think that's the case? Moron1
So tired today and just realized spent all day on a wild goose chase..
Somehow the test results were wrong... It said the data was out of sync but checking the live data today... They're an exact match...
Me using numpy.polyfit() to fit a function to some data. Blame polyfit for not being accurate, search the web to find any related problems, as the polynom doesn't fit at all. Polynom is of 2nd degree, polyfit becomes unstable at about degree 20?? Try Polynomial.fit() ... same results. How can they all be wrong???See a little typo in my code, calculating the polynom points. Fix it, everything works.... wasted 2 and a half weeks because of this error.🤦🤦
I'm still a junior myself, but some fundamentals I've told my coworkers:
* Commit more, regret less
* Yes, you can remove a commit, if something goes wrong.
* No, I'll not explain again how to undo a commit you pushed typo to you feature branch. Feel the shame of pushing "Fix typo" commits
* ask, if you are stuck or unsure.
* don't do deployments at 5pm Friday. 6pm results in less crashes in production for some reason /s
* Don't be like me. Go to sleep at appropriate times2
Shows perfect results.
PM: Nice, integrate that into the latest version.
Shows bad results.
PM: Your integration must be wrong.
Show him the file diff, no difference in my implementation.
It's funny how the exact same feature goes to shit immediately after they push all these untested changes.
I work with statistics/data analysis and web development. I study these subjects for almost a decade and now I have 4 years of practical experience.
This information is on my LinkedIn profile and from time to time tech recruiters contact me wanting to have an interview. I always accept because I find it a great way to practice interviews and talking in English, as it isn't my native language.
A remark that I always make to my colleagues wanting to start doing data analysis related work is that it may seem similar to development, but it's not. When you develop, your code work or not. It may be ugly, it may be full of security problems, but you almost always have a clear indication if things are functioning. It's possible to more or less correlate experience using a programming language with knowing how to develop.
Data science is different. You have to know what you are doing because the code will run even if you are doing something totally wrong. You have to know how to interpret the results and judge if they make sense. For this the mathematics and theory behind is as important as the programming language you use.
Ok, so I go to my first interview for a data science position. Then I discover that I will be interview by... a psychologist. A particularly old one. Yeah. Great start.
She proceeds to go through the most boring checklist of questions I ever saw. The first one? "Do you know Python?". At this point I'm questioning myself why I agreed to be interviewed. A few minutes later, a super cringy one: "Can you tell me an example of your amazing analytics skills?". I then proceed to explain what I wrote in the last two paragraphs to her. At this point is clear that she has no idea of what data science is and the company probably googled what they should expect from a candidate.
20 minutes later and the interview is over. A few days later I receive an email saying that I was not selected to continue with the recruitment process because I don't have enough experience.
In summary: an old psychologist with no idea on how data science works says I don't have experience on the subject based on a checklist that they probably google. The interview lasted less than 30 minutes.
Two weeks later another company interviews me, I gave basically the same answers and they absolutely liked what they heard. Since that day I stopped trying to understand what is expected from you on interviews.2
Because of the amount of complaining I do at work concerning legacy php applications the HOD is trying to push for different technologies to use for backend services. We have met multiple times to discuss the proper way of handling the situation since there are a lot of very obvious things to consider regarding the push for a new tech stack. The typical names have come about, but my biggest issue will be training people for these stacks.
Testing environments with docker and so forth, push for CERTAIN applications to be more API centric and the use of better frontend frameworks that will remain standard for years to come(hard to bet on this one but I tend to orefer React) among other things are the topics of conversation.
Personally I would love to move the shop to something geared towards Golang, thing is, the lead dev is complaining about it saying that the training for a new language would just take time. After a couple of examples he is still not convinced.
I think its wrong of him to center himself on just PHP and JQUERY as the main development stack he uses and learning new things should be part of the job, I also have a case against the spaghetti code that results from just using vanilla php with no proper development practices(composer based systems, oop etc etc you get the gist)
In the end I am starting to think that it will become one of those "fuck off I am the boss" type of deal since I am going to be here after a long time and he has about 2 years before he medically retire.1
Finding a bug that wont trigger an error but will deliver incorrect results, but only in certain circumstances and has only come apparent after the site has bern live for 6 months.
You turn in to a detective trying to determine what triggered the wrong result, what the client changed/added/edited in the cms and work from there.
After much investigation it dawns on you, you then find the bit responsible in your shit code and fix it.
Then feel extremely elated at how cool you are, but no-one gives a shit.
Back to work.
That’s why I play bass guitar, do some cool licks on stage and its instant gratification, glad I have that... and devRant community.
maybe I should learn how to code properly as well.1
So first rant, here goes weirdness, and also lengthy rant
So in my company we have the hr and accounting managed by the same person which also deals with all things employee related and she had a need for a way to extract a birthday from, what is in our country the personal identification number, things go great i get a formula that performs parts of the magic up to the point where the first digit of the number dictates the gender and century to be used when forming the full year, mind you only the last two digits of the year are in plain within the id number so i thy a number of ideas. After bashing around google sheets for a while ( i've got open office installed and formulas don't export well to the excel that person uses but google sheets does so i built it there).
First idea : make a few conditionals to check for the value so we have 1 and 2 for 19th century, 3 and 4 for 18th century , 5 and 6 for 20th so i go ahead and write my conditions and they fail, all evaluates to false, it cascades through the else variants up to the last one so i'm wondering if the "if" itself doesn't support the or operator, seems it does, next i think it's the bloody condition written wrong so i reevaluate my logic in php in a test script, it works as intended, then i think ok not the right function called, let's see the docs, docs confirm i'm doing it right but what was wrong was the way i was getting that first number, using left seems to produce a string although the base thing is a number, now i start searching how i can cast it, like you would normaly do when the data type is fried, value function appears to be the solution but it isn't working....now i'm thinking "ok so i have a value and different things to print out so let's look for a switch, maybe it can understand that" switch function found under the form of choice, i get it sorted but am stuck wondering why the heck was the if and value combination not working.
Simple answer to that : value doesn't work well with function results, a known bug listed by someone in a comment, a comment i have failed to read for about 45 minutes of trying to understand.
All in all it worked well for the person asking for it so it's nice.
At many phases of life, i had 3 choices : the difficult one , the average one and the wrong one.
I questioned the difficult one as it was too pointless to go on with, uncomfortable to follow and stressful to practice. Some guys chose that.
I pulled myself away from the wrong one because my parents always reminded me of the implications. Some guys still chose that
I went on with the average one because it was comfortable and cozy and didn't caused any Unknown chain of reactions. A lot of guys chose that.
The guys who chose the difficult ones became the pioneers/winners
The guys who chose wrong one became addicts and shame to society
The guys who chose the average one later chose the difficult one and became pioneer/winners
I took the average choice ,and then kept on taking the average choice and is getting the unique designation : "looser"
Must choose the difficult option next time :/14
Fuck you c++...!!!
float a = 1.0/10.0;
float b = a*10.0;
a == b returns false
A beginner of c++ here
Wrote about a 1000 lines code (spread across multiple files, m not dumb)
Passed 90% of cases
Took one and a half days to figure out what's wrong
Turns out c++ doesn't give accurate (as perceived by a human who thinks in decimal) results when comparing equality of 2 floats with ==
Shouldn't that be the first thing to be taught in schools?22
The first dev project, like real dev project, I participated in was a school one and it was double.
The class was meant to make us learn about the software's life cycle, so the teacher wanted us to develop a simple, yet complicated, thing: a Web platform to help tutors send/refer students to the university services (psychologist, nutriologist, etc) and to keep track of them visits.
We all agreed on it being easy.
Boy were we so wrong.
I was appointed as dev leader as well as some others (I was the programming leader, the other ones were the DB guy and the security guy) and as such I was in charge of the technology used (well, now we all know that the client is the one in charge of that as well as the designer) and I chose Django because we had some experience with it. We used it for the two projects the teacher asked us to do (the second one was to find a little shop and develop something for it, obviously with the permission and all that), but in the second one I decided to use React on top of Djangl, which ended being a really good combination tho.
So, in the first project, the other ones (all the classroom) started to discuss and decided to use some other stuff like unnecessary carousel for images, unnecessary functions, they created mock ups for stuff that was never there to begin with, etc. It was really awful, we had meetings with the client (the teacher) with updates on the project, and in not a single one he was satisfied with the results. But still, we continued with the path the majority chose and it was the worst: deadlines were not met, team members just vanished until the end of the semester, one guy broke his leg (and was a dev leader) and never said a word not did anything about the project. At the end, we presented literal garbage, the UI was awful, its colors were so ugly because we had to use the university official colors, the functionality was not there, there literally was a calendar to make appointments for the services (when did the client ask for that? No one knows), but hey, you could add services and their data to it, was it what the client wanted? Of course not! What do you think we are? Devs?
Suffice to say that, although we passed with good grades, the project and the team was shit (and I'm counting me in)
The good part is that the second project was finished by me and it looked really good, yet it didn't matter, the first project was supposed to be used by the university, but that thing was unusable.
Then, in the subsequent vacations I tried to make pretty and functional/usable, yet I failed because I had a deadline for another thing I had to do, but hey, the login screen looked amazing!
Every once in a while the flexibility of dynamic types comes back and bites you in the ars:
So I created method that returns the date significance (day, month, year) or null when no date is set.
I chose a class constant DAY with the value 0.
This is not a problem in if statements as I always use === but in this case a switch made more sense. And as you can guess no date set (NULL) was handled in the self::DAY (0) case... 😐😑😶 Silently resulting in wrong results when no date is given! #£#@$& (and other comic swearing symbols)
Even though php7 finally has decent type hinting resulting in much clearer defined API's we can still go very wrong.
More love to Go for less verbose static typing! To bad we can rarely use it at the office 😥2
I was writing a simple algorithm to simulate gravity. But when I tested it it produced wildly wrong results. I looked over my whole algorithm trying to find the error, but thought that the last bit, the final position update, must be fine.
I was wrong, some misplaced brackets were accidentally multiplying the position + 0.5 by the sum of the old & new velocity instead of adding the position to 0.5 those velocities.
I noticed that and fixed it, and now it runs pretty well.
The DEVRANT SEARCH could be improved.
Often wrong results are on top, because the algo accepts 1 different character and tags have no priority.
Example: I clicked on the tag "hangover".
Among the top results there were rants with "handover" and "hannover" (German city).
The first rant with the tag "hangover" was at position 18
Wouldnt the search result be better with another logic?
Priority 1: Tags with exactly the same word
Priority 2: Rants with exactly the same word
Priority 3: Tags with similar words/expressions
Priority 4: Rants with similar words/expressions
Very Long, random and pretentiously philosphical, beware:
Imagine you have an all-powerful computer, a lot of spare time and infinite curiosity.
You decide to develop an evolutionary simulation, out of pure interest and to see where things will go. You start writing your foundation, basic rules for your own "universe" which each and every thing of this simulation has to obey. You implement all kinds of object, with different attributes and behaviour, but without any clear goal. To make things more interesting you give this newly created world a spoonful of coincidence, which can randomely alter objects at any given time, at least to some degree. To speed things up you tell some of these objects to form bonds and define an end goal for these bonds:
Make as many copies of yourself as possible.
Unlike the normal objects, these bonds now have purpose and can actively use and alter their enviroment. Since these bonds can change randomely, their variety is kept high enough to not end in a single type multiplying endlessly. After setting up all these rules, you hit run, sit back in your comfy chair and watch.
You see your creation struggle, a lot of the formed bonds die and desintegrate into their individual parts. Others seem to do fine. They adapt to the rules imposed on them by your universe, they consume the inanimate objects around them, as well as the leftovers of bonds which didn't make it. They grow, split and create dublicates of themselves. Content, you watch your simulation develop. Everything seems stable for now, your newly created life won't collapse anytime soon, so you speed up the time and get yourself a cup of coffee.
A few minutes later you check back in and are happy with the results. The bonds are thriving, much more active than before and some of them even joined together, creating even larger bonds. These new bonds, let's just call them animals (because that's obviously where we're going), consist of multiple different types of bonds, sometimes even dozens, which work together, help each other and seem to grow as a whole. Intrigued what will happen in the future, you speed the simulation up again and binge-watch the entire Lord of the Rings trilogy.
Nine hours passed and your world became a truly mesmerizing place. The animals grew to an insane size, consisting of millions and billions of bonds, their original makeup became opaque and confusing. Apparently the rules you set up for this universe encourage working together more than fighting each other, although fights between animals do happen.
The initial tools you created to observe this world are no longer sufficiant to study the inner workings of these animals. They have become a blackbox to you, but that's not a problem; One of the species has caught your attention. They behave unlike any other animal. While most of the species adapt their behaviour to fit their enviroment, or travel to another enviroment which fits their behaviour, these special animals started to alter the existing enviroment to help their survival. They even began to use other animals in such a way that benefits themselves, which was different from the usual bonds, since this newly created symbiosis was not permanent. You watch these strange, yet fascinating animals develop, without even changing the general composition of their bonds, and are amazed at the complexity of the changes they made to their enviroment and their behaviour towards each other.
As you observe them build unique structures to protect them from their enviroment and listen to their complex way of communication (at least compared to other animals in your simulation), you start to wonder:
This might be a pretty basic simulation, these "animals" are nothing more than a few blobs on a screen, obeying to their programming and sometimes getting lucky. All this complexity you created is actually nothing compared to a single insect in the real world, but at what point do you draw the line? At what point does a program become an organism?
At what point is it morally wrong to pull the plug?15
Just did a group presentation for a uni exam.
Our analysis was by far the most thorough, most detailed of all the groups. Our presentation was one of the best as well.
Final score: 27/30
Why, you ask?
Because all our deltaT results were wrong. Because somewhere in the code there must be a bug in the function to calculate the transfer time between each orbital maneuver.
A bug that did not come up when we wrote that function, in spite of the multiple known test cases, which all worked fine.
We could have had a 30/30.
Ffs. I thought I never had to touch development for ios devices anymore but I was wrong.
The god damn piece of shit hybrid app build in apache cordova works perfectly fine on android but guess what, after signing that pile of crap with xcode it won't work on ios because somehow that retarded os forgets to listen for click events on a simple fucking button which is used to activate the app.
Had to create a virtual machine with osx and wait for xcode to instal, sign that app only to figure out it won't work..
Even after seaching google for 3 FUCKING HOURS there are still no FUCKING RESULTS.
I'm done with the entirety of apple and all their products.
How hard can it be to let sql just multiply some values and sum the results, right? As it turns out, damn hard!
I hear you thinking, surely you can just do select SUM(price*amount) AS total right? Nope! I mean, yes you can, but it fucks up. Oddly. It always ends up giving me wrong results. Always. Wtf sql? And it's not like I'm running a massive dataset or anything, it's like 100 records at most?28
Doing the Full Stack Nanodegree from Udacity
Using Google's oAuth Sign in in my Flask App, I realized that no matter what browser I use, I was unable to logout, Google always threw an error my way. I figured something must be wrong with my code..
Searched on Google, couldn't find anything relevant, gave up on first 4 results(not pages, yeah I'm that lazy!)
Spent 3 hours Debugging at different points, removing all the abstraction I've put in using various libraries (Bad move)
Finally it dawned on to me to check Udacity forum as well. It's a frickin cache/cookie thing. Tried the app in an incognito window, worked like a charm. Reverted code back with all the libraries, worked like a charm again!
FUCK YOU GOOGLE! In your attempts to track users, you're even making our work difficult!
(in hindsight, I should probably be better at asking/looking for help)1
I'm scared I will assert something is a certain way when actually it isn't. It's not that I hate being wrong, I'm wrong all the damn time, I just don't want to be seen as someone with a big ego who can't take the time to learn what's actually going on.
This results in my constantly saying "I think" and "maybe", which makes me sound less confident and likely results in being taken less seriously. But I think I prefer that to sending someone down the wrong path if I'm not sure I know what I'm saying is correct.2
Today i have made a decision that's solely on my (and maybe my parent's) thinking and i feel somewhat right and super wrong at the same time. I have hurt the person who helped me the most and i feel like a total traitor. It was a situation that made me think about decisions that i will be taking currently and in future and where do they lie on the scale of black and white (no racism intended)
Tldr : left a cannabis selling company where i was being treated like a king , learning a lot of stuff both technical and life lessons and gaining a decent salary. Hurt my bestie friend ( vritual cto of that company) who was responsible for this amazing yet wrong opportunity.
13 months ago :
me : a college undergrad enjoying the college life, learning android , earning nothing , had no thoughts of future
Friend(F) : a college student rarely attending college, super focused and clear on his future , extremely good webdev/blockchain guy, winning hackathons and gaining network.
2 months later..
College gets over, F is currently advancing in tech and gets into a fast paced blockchain startup, earning very nice salary . me is also advancing by joining into a decent paying ad providers company.
2 months later...
me left the job, went back to studying for exams. F continues with the internship, later getting contacted by a particular client for his personal businesses.
Me joins a social media startup. Vile environment,lots of pressure and bad behaviors. Got a terrible burnout and didn't wanted to touch laptop or a job ever again. Ran like my ass is on fire the moment i got my half salary, leaving away the other half.
F leaves his blockchain startup and working with that client , say C. F,C and few others built up a decent scaled cannabis selling e commerce with profitable business model , quickly makes a profit of $240k in a month. My friend is not an official partner or has a rank but is getting a great salary/bonus and trips to US/ other places.
Friend : keeps working with the cannabis e-commerce, treating it like his personal hobby project. Adding new features, scaling more, adding new clients. Meanwhile also lands into a full time job with another company ( one of the top tech startups ). Handling both companies very casually and comfortably, dealing in big 5 digits (INR) every month (usually the senior devs of our area get that much, and he's yet to even graduate)
Me : very slowly coming out from the burnout, without any confidence to apply again. Trying out numerous technologies, failing to master one. Meanwhile family's financial system Struggling, an indirect pressure to " go out and earn" starts.
Friend offers a decent opp : work in his cannabis company for easy to pickup tasks, get decent salary. Me accepts
The environment that i got there is so calm and relaxed that i was not opening my laptop for weeks and they don't gave even a fuck. They gave ample amount of time to work, let me both learn and explore stuff.
Even if i delayed the task or gave unsatisfactory results, nobody would say anything because they knew whose friend i was. And when somebody did,he would either jump in between and prevent them from being exploitive towards me . Or he would simply stay quite and later we would discuss what wentt wrong and what to do in that situation . I was growing tremendously , both skillwise and as a person , with having a stable income.
Today. After a particular meeting , i was casually talking with my mom and mentioned the cannabis related company. She freaked out about it. I shushed her bit then i went onto thinking and realized the wrong in it and resigned.
Friend was super hurt and angry, not because it was a stupid decision but he also didn't agreed with the reasoning and my newfound mentality. He knew the risk he took by letting me join but he's bothered that i didn't thought of this stuff before.
I too feel like a traitor , but i stand firm on my thoughts now.
To that company , they are an e commerce startup legally selling a product that is 80% used for medical and 20% recreational purposes (even though the semi nude images bikini girls and tattooed rappers puffing vapes on their site portrays another meaning) (shade of white)
To me they are a cigarette making company killing youth by providing an easy platform and i am getting blood money (shade of black)
To my friend i am a fucking hypocrite for accepting job from anyone because everyone is doing something wrong and i misused him. According to him i should also not be applying to a medicine startup that am currently in touch with, coz those are also legal drugs that could he used for recreational purposes (shade of idk , fucking red ass)
I am just sad. God help me in this tech world, i need to do something with my fucked up brain.3
Spent a few hours optimising a procedure...
It's almost quitting time now, my procedure is returning wrong results in more time...
I hate "productivity" on Friday...
So , a little update to this : https://devrant.com/rants/3591086/... (since f1973 decided to leave this platform *again* , the comment there would look awkward, but just adding it here for depicting my mental state right now).
Results are out. Those fucking assholes failed me by 1 mark(actually it would be a lot of marks since i got 39/100 and i already had 10/25 from my internal exams, so 29/75). I am pretty sure that if someone had realistically checked this, they would have given atleast 60/75 , because i have never given a better paper than this. I fucking nailed it.
Even if am totally wrong, i would say they didn't made humane evaluation. Final year students usually get 6-7 grace marks because they have careers ahead. If not that , then atleast they would havr considered the fucking corona , in which i went to a physical classroom ,all the way from home to a 25km far bullshity exam center where in the fucking morning, when covid cases were increasing at an alarming rate in india.
But nope. I am a failure for this exam.
So after lots of anger and sadness , i am thinking of some practical solutions. I have 3 options:
1) to give exam next year
2) to drop this paper as i have already completed the minimum no. Of credits required for the degree
3) to ask university for re-evaluation/ re totaling
Let me put forward my thoughts regarding each of these options
For 1) i don't wanna go with this. This was a useless subject for whom i studied at the extreme level to the best of my capabilities. I can't go any further than this
For 3) the my colleagues and parents (and the rebel inside me) is asking for this. But from what i have heard its very risky as they rarely ever increase the marks and usually its just a recounting of marks. Sometimes they even deduct marks , and you still have to reappear again. Plus this will cost me few bucks and will delay my degree by even more time than it already is. I got to be free from exams late, i got the results late , everything has been late for me. I am tired of being the last to feel relieved, for once i wish to hold my degree alongside my other college mates :''(
And that brings me to option #2 this feels bad, after working so hard for a subject , i have to drop this. And i guess this might show up in my degree as well as other important docs too which might cause hinderance in future.
So just sharing this small post here and looking for suggestions. I have to make a decision fast. Its already 5 days past results being declared and i have only 5 more days to decide weather i have to submit the form of re-evaluation or dropping the paper as whole.
So what do you think people? Do dropping a subject from degree effect your career /life in general? And am not just talking about a tech job. Like for eg even schools these days check parents qualifications before giving their children an admission, or other places where shit like this matter. So any honest thoughts on this?3
Had a hell of a week trying to convince a client that "Case Sensitivity" is a real thing in programming languages.
So there was some typo in some third party code which client had provided which was not giving the accurate results, but the client was not ready to listen. I asked him to get the variable rectified from the 3rd party from
var1 to Var1
But he somehow had a notion in the back of his mind that the 3rd party could never ever be wrong and it was surely I who had screwed up the code and he won't even bother the other team.
He was all like "I don't understand anything remotely connected with coding, but do explain me why is this not working ?" (His exact words)
Me (thinking): umm, WTF !!!
After to and fro for the whole damn week, finally able to convince him ( I guess, still doubtful) after giving the video and link of a jsfiddle showing him all the freaking magic of caseSensitivity!
@dfox The wk57-search and other searches are not working correctly.
On top of the search list there are wrong results, because the search algo also accepts similar terms.3
My home pc has developed a sudden issue and wont boot up anymore.
Stays stuck on the POST phase and am unable to get into BIOS , just stuck with a big asus logo and a message to press
F2 or Delete to get into BIOS but the system seems frozen as the keyboard lights are on but unresponsive while the
Mobo reads an error code A2
( the manual claims that to be an IDE error although am using only SATA)
Unplugging all usb doesnt change anything.
Unplugging all other sata ssd ,hdd and disk drives except the os drive changes nothing.
Unplugging the os drive results in the system complaining about no bootmgr
(As expected), that allows me to at least look at the BIOS but there doesnt seem to be anything wrong or out of the ordinary..
Booting from a live cd works fine
Booted from a pc boot repair tool and plugged in the os drive into one of the hot swappable sata ports shows me the all the files still there and accessible , check disk revealed nothing wrong. Can't plug in the os drive pre boot as that locks everything up again)
Tried to boot with a windows cd then do a start up repair but plugging in the os drive into the hot swappable sata doesn't work since windows can't see the drive.
Tried to swap the os drive with another one of exact same model filled witb random files resulted in no boot mgr error as expected
Struggled a whole weekend to fix it but alas no progress
Ah and the OS drive's warranty ran out 2 weeks ago 😑
Mobo asus p9x79 deluxe
Os ssd samsung 840 250 gb
No changes in hardware for the last year
No BIOS changes in over a year
I did notice some odd files like 0002Found
On the os drive when i was using the boot repair live cd tool, will bring the drive to
The office where i can get my hands on an ssd sata to usb caddy and take a snapshot of The files there for you guys to see.
Any ideas ? 😞5
I want to ask for your opinion guys, because I don't know if I am right or wrong.
So, some days ago, my brother sent me some code to check out for an automation that he does for testing purposes, since he's a QA (I am a programmer). He should be able to send XML data to a server and depending on the process that he tests, the data is different every time. I saw a strange thing, he hardcodes the XML tags and concatenates them with data which I find stupid. So I proposed him to use a template to generate XML data, because I think it's more flexible and easier, making data and presentation separate. That way if in the future he wants to start using JSON he could do it in no time. I made the code in a separate file which he imports and uses it's functions (they are two so no need for classes) and uses them to load the template and render it as he passes the data as a hash table. He insists that concatenating data and XML tags is easier and simpler and I can't wrap my mind how could that be true. I gave him an example in which the data structure for a process is changed and he have to open the file and change the XML tags or the structure and he still says that's simpler.
What is the right decision in this situation. Keep in mind that I simplified the process a lot and it actually involves sending the data and reporting the results, but they are not important here since I am talking only about generating data.