Details
-
SkillsJS, Java, Python, PhP
-
LocationUK
Joined devRant on 11/21/2016
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
-
Website design philosophies:
Apple: "...and a really big picture there, and a really big picture there, and a really big picture there, and..."
Microsoft: "border-radius:0 !important;"
Google: "EVERYTHING MOVES!!! And most websites get material design. Most."
Amazon: "We're slowly moving away from 2009"
Wix: "How can we further increase load times?"
Literally any download site: "Click here! No, click here! Nononono!! Click here!!..."
Facebook: "We can't change anything because our main age demographic is around 55"
University websites: "That information isn't hard enough to find yet. Decrease the search accuracy and increase broken links."32 -
Freshman: hey can you check what's wrong with my code?
Me: ya of course
*Sees zero comments, no indents, all variables named a,b,c,etc.*
Me: oh would you look at the time!6 -
"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 -
Avatar builder now live on desktop web! You can add/edit your avatar from your profile. We had a little help from our friends over at Toptal with some React work, if you're ever in need of some freelance skills you're lacking, check em out.7
-
ERRORs are red,
INFOs are blue.
My logs look pretty,
But not as pretty as-
Wait, hold on. Why are there ERRORs in here?
Why is the homepage returning a 5- oh crap.
Can you just... Can you give me a minute?12 -
People are fucking idiots. Had agreed to a meeting on Monday morning at 9 with some generic startup. Agreed to listen to their pitch after they had bugged me with hundred phonecalls and emails. It happened that my kid got sick during the previous night and this being the only meeting I decided to work from home and stay with the kid. I sent an email at 2am as apologizing, canceling the meeting and proposing a new time for another day this week.
Well at 9am I get a call from reception that my guests have arrived. I call the contact and she's angry at me that I didn't show. When I asked about the email she snaps at me: I don't have time to read emails on Monday mornings.
Well I don't give a flying fuck about your shitty pitch. Go fucking peddle your shit somewhere else if you can't handle your affairs and start snapping at me. FUCK.9 -
Yesterday, after six months of work, a small side project ran to completion, a search engine written in django.
It's a thing of beauty, which took many trials, including discovering utf8 in mysql isn't the full utf8 spec, dealing with files that have wrong date metadata, or even none at all, a new it backup policy that stores backups along side real data.
Nevertheless, it is a pretty complete product. Beaming with pride I began to get myself a drink, and collapsed onto the floor, this caused me to accidentally hibernate my computer, which interrupted the network connection, which in turn caused an OSError exception in one of my threads, which caused a critical part of code not to run, which left a thread suspended, doing nothing.
From the floor I looked at my error and realised my hubris and meditated on my assumptions that in theory nothing should interrupt a specific block of code, but in reality something might, like someone falling over...7 -
This story is 100% true.
I got hired onto a team of construction workers to build a house. We set up a meeting with Management to find out what kind of house they wanted us to build, where’s the floor plan, what it’s going to be used for, who it’s for, etc. Management said that they didn’t know all that, we should just get started. They told us that we were going to use “Agile” which means that we just work on small deliverables and build the thing incrementally.
The developer team lead argued that we at least need to know how big the thing is going to be so that we can get started pouring the foundation, but Management told him they just don’t know. “What we do know,” Management said, “is that the house is going to have a bathroom. Just start there, and we’ll know more when it’s done. You have two weeks.”
So we just bought a port-a-potty, and screwed around on the internet for two weeks. Management was outraged. “You call this a house? This is the worst house ever! It doesn’t even have a tv!”
So we bought a tv and put it in the port-a-potty, attached to an outdoor generator. We were going to buy a a dvd player and get it hooked up to cable, but Management rejected the expense request, saying that they didn’t know if we needed it, and we’d come back to that later.
Management decided that we definitely need storage space, so we bought a boxcar and duct-taped the port-a-potty to it. Then to our horror they set up some desks and put a few miserable business interns in there. It went on like this…
After a few years the boxcar grew into a huge, ramshackle complex. It floods, leaks, it’s frozen in the winter and an oven in the summer. You have to get around in a strange maze of cardboard tubes, ladders and slides. There are two equally horrible separate buildings. We’re still using just the one outdoor generator for all power, so electricity is tightly rationed.
Communication between the buildings was a problem. For one of them, we use a complex series of flag signals. For the other we write notes on paper, crumple the paper up, and toss it over. Both of these methods were suggested as jokes, but Management really liked them for some reason. The buildings mostly talk to each other but they have to talk through us, so most of what we do is pass messages on.
It was suggested that we use paper airplanes instead of crumpled up balls, but the fat, awkward fingers of the Business Majors who inevitably take those jobs couldn’t be trained to make them. I built an awesome automatic paper airplane folder, but once again they couldn’t be trained to use it, so they just went back to crumpling the notes up in balls.
The worst part of all this is that it’s working. Everyone is miserable, but the business is making money. The bright side is that this nightmare complex is done so now we know what kind of building they actually needed in the first place, so we can start work on it. Obviously we can’t tell Management anything about what we’re doing until it’s finished. They noticed the gigantic hole in the ground where the foundation is coming in, but we told them that it’s a cache reset, and they mostly ignore it except when the occasional customer falls in.
I’ll probably be out of here before the new building gets finished. I could get a 50% raise by switching jobs, but Management still doesn’t think I should get a raise because I missed a couple sprints.7 -
There is one thing I have seen here in devRant. No matter how stupid rant you post no one trolls you. People are kind of humble here. They try to help you.
Just an observation, may not be true.10 -
Do not disturb someone especially if they are in the zone.
Hint : earphones on, a ton of error logs on screen.4 -
0. Plan before you code. Document everything. You won't remember either your idea or those clever implementations next week (or next month, or next year...).
1. Don't hack your way through, unless that's what you intend to do. Name your variables, functions etc. neatly: autocomplete exists!
Protip: Sometimes you want to check a quick language feature or a piece of code from one of your modules. Resist the urge to quickly hack in the test into your actual project. Maintain a separate file where you can quickly type in and check what you're looking for without hacking on your project (For example, in Python, you can open a new terminal or IDLE window for those quick tests).
2. Keep a quiet environment where you can focus. Recommend listening to something while coding (my latest fad is on asoftmurmur.com). Don't let anything distract you and throw your contextual awareness out of whack.
3. Rubber ducks work. Really. Talking out a complex piece of logic, or that regex or SQL query aids your mind greatly in grasping the concept and clearing the idea. Bounce off code and ideas with a friend or colleague to catch errors and oversights faster. Read more here: https://en.wikipedia.org/wiki/...
4. Since everyone else is saying this (and because it merits saying), USE VERSION CONTROL. Singular most important thing to software development aside from planning and documenting.
5. Remember to flout all of the above once in a while and just make a mess of a project where you have fun throwing everything around all over the place. You'll make mistakes that you never thought were possible by someone of your caliber :) That's how you learn.
Have fun, keep learning!3