Details
-
AboutFull Stack developer by day, Internet surfer by night.
Joined devRant on 3/8/2017
Join devRant
Do all the things like
++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatar
Sign Up
Pipeless API
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple API
Learn More
-
3 days 2 nights with only 20 min naps and max 1h of sleep in between. I was finishing my masters thesis. Then I handed it in the next day and everything felt like it is in slow motion? The printing, the going there to hand it in, etc. Couldn't sleep for that day either xD do not recommend. Start writing your thesis on time kids
-
"You gave us bad code! We ran it and now production is DOWN! Join this bridgeline now and help us fix this!"
So, as the author of the code in question, I join the bridge... And what happens next, I will simply never forget.
First, a little backstory... Another team within our company needed some vendor client software installed and maintained across the enterprise. Multiple OSes (Linux, AIX, Solaris, HPUX, etc.), so packaging and consistent update methods were a a challenge. I wrote an entire set of utilities to install, update and generally maintain the software; intending all the time that this other team would eventually own the process and code. With this in mind, I wrote extensive documentation, and conducted a formal turnover / training season with the other team.
So, fast forward to when the other team now owns my code, has been trained on how to use it, including (perhaps most importantly) how to send out updates when the vendor released upgrades to the agent software.
Now, this other team had the responsibility of releasing their first update since I gave them the process. Very simple upgrade process, already fully automated. What could have gone so horribly wrong? Did something the vendor supplied break their client?
I asked for the log files from the upgrade process. They sent them, and they looked... wrong. Very, very wrong.
Did you run the code I gave you to do this update?
"Yes, your code is broken - fix it! Production is down! Rabble, rabble, rabble!"
So, I go into our code management tool and review the _actual_ script they ran. Sure enough, it is my code... But something is very wrong.
More than 2/3rds of my code... has been commented out. The code is "there"... but has been commented out so it is not being executed. WT-actual-F?!
I question this on the bridge line. Silence. I insist someone explain what is going on. Is this a joke? Is this some kind of work version of candid camera?
Finally someone breaks the silence and explains.
And this, my friends, is the part I will never forget.
"We wanted to look through your code before we ran the update. When we looked at it, there was some stuff we didn't understand, so we commented that stuff out."
You... you didn't... understand... my some of the code... so you... you didn't ask me about it... you didn't try to actually figure out what it did... you... commented it OUT?!
"Right, we figured it was better to only run the parts we understood... But now we ran it and everything is broken and you need to fix your code."
I cannot repeat the things I said next, even here on devRant. Let's just say that call did not go well.
So, lesson learned? If you don't know what some code does? Just comment that shit out. Then blame the original author when it doesn't work.
You just cannot make this kind of stuff up.105 -
!rant
User: "Hello, I'd like to hear a torrent joke."
Tracker: "I will refer you to people who can tell you a torrent joke."
Peer 1: "Why d"
Peer 2: "cken "
Peer 3: "road?"
Peer 4: "id th"
Peer 3: "cross"
Peer 1: "e chi"
Peer 5: " the "
Peer 2: "the o"
Peer 4: "To ge"
Peer 1: "side."
Peer 5: "ther"
Peer 2: "t to " -
Some of you might have seen it already, those who didn't just have to.
One of the best rants I've read lately.
"Our security auditor is an idiot. How do I give him the information he wants?"
https://serverfault.com/questions/...4 -
The programmer and the interns part 3.
Many of you asked me to keep posting about the interns that I'm responsible for.
I had the intention but never had the time or the energy. Since the interns only kept doing stupid, unthinkable things and just filtering out the good ones is a task of its own.
Time has passed, some interns left us by their choice, others were fired (for obvious reasons). Some stayed loyal and were given permanent positions. New ones joined. I no longer am directly responsible for their wellbeing, yet, somehow I am still their tech-lead and the developer of their tools.
Without further delay,
Case 0:
New guy get's into the internship, has his LinkedIn title set to ‘HTML Technician’.
Didn’t know about the existence of HTML5.
Been building static web pages in the early 2000s. The kind with embedded, inline CSS.
Claims that he is about to finish an engineering degree (sadly I believe him).
Fails the entry level Linux test. Complains about the similarity of the answer options.
Fails the basic web-standars test because "they change so fast, but the foundation is HTML and it's rock-solid!".
Get's caught taking home onions and milk from the kitchen.
Is spotted eating in a restaurant under our offices in his day off. Thrice. He lives a 30 minute drive away and comes here on a bicycle or by bus.
Apparently didn't know that the scrolling wheel on the mouse is clickable.
Said that his PC experience is mostly from his PlayStation (PC = PlayCtation apparently).
Get's fired, says that he'll go to the press. Never does.
Case 1:
Yet another new intern. He seems very eager to learn and work, capable, even charismatic. Has an impressive CV.
Does nothing.
Learns from the "case 0" guy and spends time with him until he is fired.
Comes to work at 8:00 AM and immediately goes to sleep on an office puff. In front of everyone.
Keeps dining alone, without a notice, at different times, for hours. Sometimes brings food into the office and loudly eats it there.
On his evening shifts keeps disappearing for long periods of time. Apparently drinking in the nearby bars and hitting on girls.
Keeps bragging about his success with getting their numbers and rants about those who reject him.
For over a year he fails his final training test and remains a trainee, without the ability to work on a real case.
Not fired yet.
Case 2:
Company retreat. Beautiful, exotic views, warm sun beams, all inclusive package for everyone on a huge half-island.
Simon (he's still with us, now as a true engineer!) brings his MacBook to the beach in order to work and impress all others.
Everybody get's drunk and start throwing huge inflatable balls at each other. One hits his laptop and it immediately is flattened.
Upset Simon is going in circles and ranting about the situation, looking for a solution.
Loses his phone on the beach.
Takes his broken laptop with him while searching for the phone.
Dips the laptop in the river while drunkenly ducking in order to pick a clam.
Case 3:
Still company retreat.
Drunk intern makes out with an employee's drunk wife.
Huge verbal fight. The husband says that he files for a divorce. Intern get's fired.
Case 4:
Still company retreat.
Three interns each take an inflatable swimming mattress and drift with the current. Get found on the other side of the resort three hours later, with red skin and severely dehydrated.
Case 5:
Still company retreat.
The 'informally fired' intern gets drunk again, climbs through a window into a room and makes out with an employee's drunk wife.
Again, gets caught when the husband returns to find a locked door but can see them though the window.
Case 6:
Still company retreat.
We all get ferociously drunk and wander off to the unknown in search of more booze.
Everybody does something stupid and somebody finds Simon's phone.
Simon is lost.
Frenzied horde of drunks is roaming the half-island in search of ethanol and the lost comrade.
Simon's phone get's permanently lost.
Five people step on sea urchins but find that out only hours later and then are unable to walk.
The mob, now including more drunk people who joined voluntarily, finds the sexually active intern making out with the enraged employee's wife yet again.
Surprisingly Simon is found sleeping in a room nearby.24 -
Sooo my friend asked my to become more active on steam and i did something about it! I'm going to be become the most activities steam user!31
-
D: “Did the attackers exfiltrate any data?”
M: “I can’t say for sure, but most likely based on—”
D: “—but did you find any undeniable evidence of it?”
M: “Keep in mind that the absence of evidence isn’t necessarily evidence of absence. There was very limited logging to begin with and the attacker erased artifacts and logs.”
D: “If there’s no evidence, then there was no exfiltration.”
M: “If a business doesn’t have cameras on its front door and then gets robbed, it can’t claim there was no robbery just because they didn’t video-record it.”
D: “That’s a poor analogy. Nothing’s missing here. I couldn’t care less if a robber made a *copy* of my money. That isn’t robbery.”
M: “... If the Titanic really hit an iceberg, then how come no pieces of an iceberg were ever found in the wreckage?”19 -
I hired a woman for senior quality assurance two weeks ago. Impressive resume, great interview, but I was met with some pseudo-sexist puzzled looks in the dev team.
Meeting today. Boss: "Why is the database cluster not working properly?"
Team devs: "We've tried diagnosing the problem, but we can't really find it. It keeps being under high load."
New QA: "It might have something to do with the way you developers write queries".
She pulls up a bunch of code examples with dozens of joins and orderings on unindexed columns, explains that you shouldn't call queries from within looping constructs, that it's smart to limit the data with constraints and aggregations, hints at where to actually place indexes, how not to drag the whole DB to the frontend and process it in VueJS, etc...
New QA: "I've already put the tasks for refactoring the queries in Asana"
I'm grinning, because finally... finally I'm not alone in my crusade anymore.
Boss: "Yeah but that's just that code quality nonsense Bittersweet always keeps nagging about. Why is the database not working? Can't we just add more thingies to the cluster? That would be easier than rewriting the code, right?"
Dev team: "Yes... yes. We could try a few more of these aws rds db.m4.10xlarge thingies. That will solve it."
QA looks pissed off, stands up: "No. These queries... they touch the database in so many places, and so violently, that it has to go to therapy. That's why it's down. It just can't take the abuse anymore. You could add more little brothers and sisters to the equation, but damn that would be cruel right? Not to mention that therapy isn't exactly cheap!"
Dev team looks annoyed at me. My boss looks even more annoyed at me. "You hired this one?"
I keep grinning, and I nod.
"I might have offered her a permanent contract"45 -
Professor : Explain deadlock and I will give you full marks.
Me:- You give me full marks and I'll explain deadlock.20 -
preface: I'm fucking exhausted and angry.
Why does everyone assume I know how to do frontend?
Why am I always the design girl?
Why?
You hire me to do backend. STOP GIVING ME FRONTEND DESIGN CRAP. I HATE IT.
AND STOP GODDAMN YELLING AT ME FOR NOT MAKING SOMETHING RESPONSIVE.
I DON'T KNOW HOW.
yes i can learn, but I CAN'T FUCKING PICK UP A SKILL LIKE THAT IN A DAY. Also, I fucking hate it.
STICK IT UP YOUR (min-width: 1400px) ASS.
But seriously, I've spent 13 hours today figuring out completely new things (webpack, susy, express.js, cloudinary, responsive best practices, more webpack) because the boss is in panic-mode (his preferred state) and wants this project released last monday.
guess what? it isn't done.
because i still don't know how to do everything. and ofc there's nobody to ask because there never fucking is.
Seriously, boss-man. hire a fucking designer, and stop being an illiterate sales goon while you're at it. ffs.54 -
Just want to recommend the DevRant stress ball. I wasn't quite sure how to use it (it doesn't come with instructions) but since stuffing mine down the PM's throat my stress level has reduced dramatically.4
-
An entirely typical exchange at work:
PM: How long would it take to build an application that collates Gubblefluffs and exports them as a PDF?
ME: Hard to say. What’s a Gubblefluff?
PM: Nothing complex. Its basically an object with some stuff in.
ME: Erm, okay. So I’ll define a Gubblefluff object plus methods to add edit and delete, then for each Gubblefluff have it write a line to a PDF.
PM: It will need to email that PDF to somebody.
ME: Okay, cool. “Gubblefluffs-by-email” should take about a day.
6 hours later…
ME: I’ve done Gubblefluffs-to-pdf, I’m not clear on what’s in a Gubblefluff but I’ve made it flexible so it can take almost anything.
PM: No, a Gubblefluff can ONLY be one of 4 Snigglefingers plus a timestamp and some JSON.
ME: What? Right. Okay. What’s a Snigglefinger?
PM: (sighs) A Snigglefinger is the collection of relevant Babelsets.
ME: Babelsets?
PM: Yeah, a user can have any number of Babelsets but they must correspond to one of the four types of Snigglefingers.
ME: There are users!?
PM: Of course!
ME: But I’ve not coded anything for users.
PM: Shit. I’ve told the client they can have it today. How long to add in users?
ME: And Babelsets, and Snigglefingers and the new Gubblefluff rules?
PM: Yeah.
6 days later…
ME: This is done now. It’s a beast but it works. Who should it email the PDFs to?
PM: Client X, plus cc to Y and bcc to Z.
ME: What? It doesn't support CC and BCC!
1 hour later…
ME: This is done. I’ve tested it and sent you a copy of the PDF it generates.
PM: Okay thanks. Is the cron running daily?
ME: What cron?
…
ME: Okay, so the cron’s running once a day at 8pm.
PM: Oh, it’ll need to be at 3:15pm. That’s when we’ve told the client they’ll get it.
ME: Right. I’ll change it...
PM: Also, the PDF you sent me looks nothing like the visual.
ME: What visual?
...53 -
Dear people who complain about spending a whole night to find a tiny syntax error; Every time I read one of your rants, I feel like a part of me dies.
As a developer, your job is to create elegant optimized rivers of data, to puzzle with interesting algorithmic problems, to craft beautiful mappings from user input to computer storage and back.
You should strive to write code like a Michelangelo, not like a house painter.
You're arguing about indentation or getting annoyed by a project with braces on the same line as the method name. You're struggling with semicolons, misplaced braces or wrongly spelled keywords.
You're bitching about the medium of your paint, about the hardness of the marble -- when you should be lamenting the absence of your muse or the struggle to capture the essence of elegance in your work.
In other words:
Fix your fucking mindset, and fix your fucking tools. Don't fucking rant about your tabs and spaces. Stop fucking screaming how your bloated swiss-army-knife text editor is soooo much better than a purpose-built IDE, if it fails to draw something red and obnoxious around your fuck ups.
Thanks.62 -
A convo with my !dev colleague.
Her: Can i use your PC for a while?
Me: Yeah sure.
Her: Why is this so wierd? Why i can't refresh?
Me: It's Ubuntu.
Her: Man, this sucks, you should use windows 10, it's the latest!
End of Convo.
After that day, i heard her talking to my other colleague.
Her: "Go ask him. The one with the weird PC."
--------------------
SHOULD I KILL HER?22 -
EDIT: devRant April Fools joke (2017)
-------------------------
@trogus and I have had an absolute blast working on devRant over the last year. However, we're strong believers in only working on a project if you're passionate about it, and over the last few months, we've sadly lost some of that passion so we've to announce, with heavy hearts, that we will both be moving on. We've decided to focus 100% of our energies on our next product, one which we are confident has billion dollar potential: Semicolon JS (http://semicolonjs.com).
We identified this sizable market opportunity as we were building out the new devRant website. Every JavaScript framework we tried left us wanting more. More efficiency. More elegance. More extensibility. That's what Semicolon JS is: more. More than a framework, it's a guiding philosophy. We believe that Semicolon JS will do for front end development what Material Design has done for user interface design. We're calling it Semicolon JS because even though you can still develop JavaScript without it, like a semicolon, we think it will soon become a standard and synonymous with quality JS development.
So comes the obvious question. What will happen to devRant? We wanted to make the announcement today because we will be officially shutting down the product in 30 days. So that gives everyone a full month to take in the last memories, look at those rants they really loved, and hopefully take some time to chat with @trogus and I about Semicolon JS and what we have planned.
With so many thanks and looking towards the future,
- @dfox and @trogus160 -
My boss is technically restricted shall we say.
As the cto I have also been designated office IT guy. Which means apparently fixing the printer. Which is ok I guess. I mean it's bullsh*t but hey.
Anyway, about 6 months ago he said he needed a new laptop. He lives his life in excel and outlook, and even though the whole company uses google docs for everything he still exports everything to excel, makes a copy, then saves it back to drive so everything gets out of sync.
It's a fun problem that I have banned everyone from doing obviously but he continues.
Anyway, anyway, he wanted a new windows laptop naturally. I said to spend about £700 on a decent machine rather than buying something cheap that will frustrate and not last long.
He doesn't listen and gets some old windows 7 machine for £300. It's an alright spec for 2009; he must not have got the memo about it being 2017.
4 months go by and he says he needs a new laptop because this one is too slow (not least because he opens 400 chrome tabs and never reboots his machine). Anyway, I fix the problem of uninstalling all his bloatware and it runs quicker but he has his heart set on a new machine.
He insists.
I suggest he spend the money this time so he literally doesn't buy a new one in 4 months. I suggest the surface book that's £1200. A little overpriced but he will love the touch screen, it's powerful enough and it's windows. Ticks all the boxes for him.
He suddenly decides he wants a Mac.
I tell him it will be a nightmare for everyone if he does that.
He insists.
I suggest the Mac book pro as I've had mine for 6 years now and it's still going strong. It's a little more expensive than the surface but it will last.
He then says he wants the air.
I say they haven't updated them in ages and they aren't actually that powerful.
He insists.
That night he just buys an air from the Apple Store.
WHY THE FU*k ARE YOU ASKING ME FOR ADVICE IF YOURE NOT GOING TO LISTEN YOU MOTHERFUC*er. WASTING MY TIME AND YOURS.
Was very close to rage quitting when he wanted me to back up his old machine but didn't bring in his hard drive and didn't want to put it in the cloud. #whatDoYouWantMeToDoWithYourOldPornCollection
To top it all off I ran some benchmarks and my 6 year old Mac book pro is more powerful than his "brand new" air.23 -
*Late night at office*
Was rewriting my stack from angularjs 1 to angularjs 2. Got drowsy and slept.
*Wakes up and opens Hackernews*
Angularjs 4 announced.
How long was I asleep !!4 -
My colleague checked in the compiled java class files on every commit, until i could convince him that this makes no sense. 😂
-
Push a PR that fixes 7 bugs...
Feel like a pro :)
Trying to get the 2 required approvals for my PR on a Friday after lunch...
Feels like pulling teeth :( -
Worked 8 hours on a feature to send attachments from our system (A) to another (B) via B's API. Perfect code, yet I couldn't make it work. B's API has full and extensive documentation for said feature. Contacted B to ask about it, got reply: "Oh yeah - we havent enabled that yet but thought it was handy to have it ready in the docs"
FML4 -
Today I had to edit wpa.conf file in Open WRT in vi because it didn't have enough space to install nano and dependig packages. FML