Details
Joined devRant on 3/12/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
-
"Don't give your 100%. Never. Once you gave, managers will start expecting more than that." - My mentor.16
-
"Work for me", client said, "I won't pay you but you will get some reputations for working with us" he added.
"Sorry, my body can't digest reputation", I replied.11 -
These foreign Indian scammers keep calling me about "computer virus".
Today, the guy told me to press ctrl + Windows key. I told him I use Arch Linux and then told him I use Netscape as my browser, and he still didn't take the hint.
He asked me "how can you have the Windows key on your keyboard and use Linux?".
#stupidfuck8 -
As a developer, sometimes you hammer away on some useless solo side project for a few weeks. Maybe a small game, a web interface for your home-built storage server, or an app to turn your living room lights on an off.
I often see these posts and graphs here about motivation, about a desire to conceive perfection. You want to create a self-hosted Spotify clone "but better", or you set out to make the best todo app for iOS ever written.
These rants and memes often highlight how you start with this incredible drive, how your code is perfectly clean when you begin. Then it all oscillates between states of panic and surprise, sweat, tears and euphoria, an end in a disillusioned stare at the tangled mess you created, to gather dust forever in some private repository.
Writing a physics engine from scratch was harder than you expected. You needed a lot of ugly code to get your admin panel working in Safari. Some other shiny idea came along, and you decided to bite, even though you feel a burning guilt about the ever growing pile of unfinished failures.
All I want to say is:
No time was lost.
This is how senior developers are born. You strengthen your brain, the calluses on your mind provide you with perseverance to solve problems. Even if (no, *especially* if) you gave up on your project.
Eventually, giving up is good, it's a sign of wisdom an flexibility to focus on the broader domain again.
One of the things I love about failures is how varied they tend to be, how they force you to start seeing overarching patterns.
You don't notice the things you take back from your failures, they slip back sticking to you, undetected.
You get intuitions for strengths and weaknesses in patterns. Whenever you're matching two sparse ordered indexed lists, there's this corner of your brain lighting up on how to do it efficiently. You realize it's not the ORMs which suck, it's the fundamental object-relational impedance mismatch existing in all languages which causes problems, and you feel your fingers tingling whenever you encounter its effects in the future, ready to dive in ever so slightly deeper.
You notice you can suddenly solve completely abstract data problems using the pathfinding logic from your failed game. You realize you can use vector calculations from your physics engine to compare similarities in psychological behavior. You never understood trigonometry in high school, but while building a a deficient robotic Arduino abomination it suddenly started making sense.
You're building intuitions, continuously. These intuitions are grooves which become deeper each time you encounter fundamental patterns. The more variation in environments and topics you expose yourself to, the more permanent these associations become.
Failure is inconsequential, failure even deserves respect, failure builds intuition about patterns. Every single epiphany about similarity in patterns is an incredible victory.
Please, for the love of code...
Start and fail as many projects as you can.30 -
So it’s not been announced yet so I can’t tell anyone else other than my wife but I need to say it somewhere and this is anonymous....
I’VE JUST BEEN PROMOTED!! Technical Lead!!! And a 14% raise!!
Yay!!!14 -
Once, I used inspect element to change Google's image to one from a meme.
My mom legit freaked out and thought I had just hacked Google themselves, and because she wouldn't believe me, I had to wait two hours until my dad got home so he could explain. During which time, I was yelled at about how we were going to be "sued for millions".
If she only understood how inspect element works.10 -
I get through tough devDays like this:
1. Brew coffee more black than a serial killer's soul in the midst of the Gotthard Base Tunnel without electricity in the midnight during a solar eclipse.
2. Flush the blackness down the throat.
3. Load the Playlist: Mostly Death/Doom Metal
4. Put on over-ear headphones (the ones your coworkers can see from a distance telling them to fuck of with their questions).
5. Code through without pauses (except for releasing piss)
6. If you're paid by the hour: $$$profit$$$8 -
Client: Can you provide some kind of guaranteed timeline that you're going to be able to move our website to our new servers with the optimizations implemented? I know you said it should take a week, but we have 3 weeks to get this moved over and we cannot afford to be double billed. I'm waiting to fire up the new server until you can confirm.
Me: As I said, it SHOULD take about a week, but that's factoring in ONLY the modifications being made for optimization and a QA call to review the website. This does not account for your hosting provider needing to spin up a new server.
We also never offered to move your website over to said new server. I sent detailed instructions for your provider to move a copy of the entire website over and have it configured and ready to point your domain over to, in order to save time and money since your provider won't give us the access necessary to perform a server-to-server transfer. If you are implying that I need to move the website over myself, you will be billed for that migration, however long it takes.
Client: So you're telling me that we paid $950 for 10 hours of work and that DOESN'T include making the changes live?
Me: Why would you think that the 10 hours that we're logged for the process of optimizing your website include additional time that has not been measured? When you build out a custom product for a customer, do you eat the shipping charges to deliver it? That is a rhetorical question of course, because I know you charge for shipping as well. My point is that we charge for delivery just as you do, because it requires our time and manpower.
All of this could have been avoided, but you are the one that enforced the strict requirement that we cannot take the website down for even 1 hour during off-peak times to incorporate the changes we made on our testbed, so we're having to go through this circus in order to deliver the work we performed.
I'm not going to give you a guarantee of any kind because there are too many factors that are not within our control, and we're not going to trap ourselves so you have a scapegoat to throw under the bus if your boss looks to you for accountability. I will reiterate that we estimate it would take about a week to implement, test and run through a full QA together, as we have other clients within our queue and our time must be appropriately blocked out each day. However, the longer you take to pull the trigger on this new server, the longer it will take on my end to get the work scheduled within the queue.
Client: If we get double billed, we're taking that out of what we have remaining to pay you.
Me: On the subject of paying us, you signed a contract acknowledging that you would pay us the remaining 50% after you approved the changes, which you did last week, in order for us to deliver the project. Thank you for the reminder that your remaining balance has not yet been paid. I'll have our CFO resend the invoice for you to remit payment before we proceed any further.
---
I love it when clients give me shit. I just give it right back.6 -
You know who sucks at developing APIs?
Facebook.
I mean, how are so high paid guys with so great ideas manage to come up with apis THAT shitty?
Let's have a look. They took MVC and invented flux. It was so complicated that there were so many overhyped articles that stated "Flux is just X", "Flux is just Y", and exactly when Redux comes to the stage, flux is forgotten. Nobody uses it anymore.
They took declarative cursors and created Relay, but again, Apollo GraphQL comes and relay just goes away. When i tried just to get started with relay, it seemed so complicated that i just closed the tab. I mean, i get the idea, it's simple yet brilliant, but the api...
Immutable.js. Shitload of fuck. Explain WHY should i mess with shit like getIn(path: Iterable<string | number>): any and class List<T> { push(value: T): this }? Clojurescript offers Om, the React wrapper that works about three times faster! How is it even possible? Clojure's immutable data structures! They're even opensourced as standalone library, Mori js, and api is great! Just use it! Why reinvent the wheel?
It seems like when i just need to develop a simple react app, i should configure webpack (huge fuckload of work by itself) to get hot reload, modern es and jsx to work, then add redux, redux-saga, redux-thunk, react-redux and immutable.js, and if i just want my simple component to communicate with state, i need to define a component, a container, fucking mapStateToProps and mapDispatchToProps, and that's all just for "hello world" to pop out. And make sure you didn't forget to type that this.handler = this.handler.bind(this) for every handler function. Or use ev closure fucked up hack that requires just a bit more webpack tweaks. We haven't even started to communicate to the server! Fuck!
I bet there is savage ass overengineer sitting there at facebook, and he of course knows everything about how good api should look, and he also has huge ass ego and he just allowed to ban everything that he doesn't like. And he just bans everything with good simple api because it "isn't flexible enough".
"React is heavier than preact because we offer isomorphic multiple rendering targets", oh, how hard want i to slap your face, you fuckface. You know what i offered your mom and she agreed?
They even created create-react-app, but state management is still up to you. And react-boierplate is just too complicated.
When i need web app, i type "lein new re-frame", then "lein dev", and boom, live reload server started. No config. Every action is just (dispatch) away, works from any component. State subscription? (subscribe). Isolated side-effects? (reg-fx). Organize files as you want. File size? Around 30k, maybe 60 if you use some clojure libs.
If you don't care about massive market support, just use hyperapp. It's way simpler.
Dear developers, PLEASE, don't forget about api. Take it serious, it's very important. You may even design api first, and only then implement the actual logic. That's even better.
And facebook, sincerelly,
Fuck you.17 -
Confessions of a Programmer
#1
If a client is an unbearable asshole during the initial communication, I look for every excuse to pad on the hours for the estimate to get paid more. If a client goes above and beyond in their douchbaggery, I tack on an additional $40/hour.
#2
Sometimes I will present an elaborate solution to a client, but really I'm just reading off the features of a plugin or library I'm going to download or buy after the call. Not because I can't build it myself, but because I'd rather spend more time on other/my own projects.
#3
Clients assume because I know one language, I know them all. Rather than turning down the work, I take a crash course to work in that language, or outsource the work and clean it up afterwards, whichever is more practical at the time.
#4
I use cPanel on a dedicated to manage our client websites. I'm not paid enough to bother with setting up everything manually.
#5
Certain projects I build have a 3-day backdoor built into it. If the client doesn't pay upon completion, a unique hash triggered as a GET variable deletes a core file in my work, rendering the work useless. If it wasn't triggered by the 4th day, the file allowing me to trigger this backdoor is removed. This is only used for clients where the project must be launched on their servers, or if there has been a previous issue collecting payment.
#6
I slip in the initial contract that all preceeding phone calls will be monitored and recorded, and that they acknowledge the recordings are admissable in court. This has saved me from losing money twice now.
#7
I have never used an IDE. (I know, I know, it's really inefficient and dumb, but I'm just more comfortable with Sublime. Plus I often find myself mobile and without my computer, so I have to program from my phone.)
#8
Each day resembles a betting spectacle of which work will be late, which will be rushed out and which will never see the light of day.
#9
I have used "sick" and "family emergency" as an excuse to just sleep in far more than I can count.
#10
When a client from hell crosses over the line in their conduct (such as getting very nasty and personal, or sending threats), I anonymously report them to the BBB and on RipOffReport.21 -
In web technologies lab.
Friend copied some php code from some website and saved it.
Tries to run it and it just prints whatever he wrote.
After thinking for like half an hour he calls me.
Friend: hey u know php right? Why my code is not running?
I check the code in the editor and everything looks fine except he saved his php code with an extension .txt 😑 😑2 -
Never let customers define the priority levels. It will end in:
- Normal (never used)
- High (used for small text changes)
- Higher
- OMG fix now
- Highest
- the World is ending if this doesn't get fixed now
- different existential plane of priority
- Priority ∞ + 118 -
I JUST FINISHED MY FIRST NEURAL NETWORK!!!
But first of all, as I know you guys, it's spaghetti code and even I as a newb see places where I used too few-dimensional array or passed useless parameters or simply wrote too many redundant lines of code. I know it. I will make it MUCH better next time. Period.
But OMFG this made me scream from happiness today!! Just these few seemingly random numbers... I'm really done.. That's why I jumped into coding year or two ago..
And for some background, I didn't study any IT school, I'm just highschooler (general grammar school) who traded gaming for learning. Also my maths teacher teached NNs on university and is very keen to teach me, so that's that.
Now I wanna make the best out of it and I'm looking forward to write some well documented and flexible library, parallelized and everything (I'm gonna learn a lot in the process of doing this) better then FANN.
Maybe I'm gonna fail(99% probability but hey, I'm programmer beginner, I still think I can code everything I want). But if there is just one moment like when I saw this screen today, I'mma trade my life for it.
Sorry for taking your time guys, I was just genuinely stunned... A lot24 -
These are the things that finally finally helped me stick to learning programming.
Hello world! This is my first story on devrant and I would like to share how I finally overcame the barriers that had always prevent me from learning programming in a more serious and structured way.
I know my way around linux, had some experience with BASIC many years ago and have more than basic notions of cryptography... however I never got myself to learn programming in such a way that I could write an app or interact with an API. Until now.
I have advanced more than ever before and I believe it might be thanks to these aspects:
1. C#
I have always had struggles with languages that were too compact or used many exotic or cryptic expressions. However I have found C# to be much more readable and easier to understand.
2. Visual Studio
My previous attempts at learning programming were without an IDE. Little did I know what I was missing!
For example when I tried learning python on Debian, I almost went crazy executing programs and trying to find the compile errors in a standard text editor.
Intellisense has been live changing as it allows me to detect errors almost immediately and also to experiment. I'm not afraid to try things out as I know the IDE will point out any errors.
3. .NET library and huge amounts of documentation
It was really really nice to find out how many well documented classes I had available to make my learning process much easier, not having to worry about the little details and instead being able to focus on my program's logic.
4. Strong typing
Call me weird, but I believe that restricting implicit conversions has helped learn more about objects, their types and how they relate to each other.
I guess I should be called a C# fanboy at this point, but I owe it to that language to be where I'm now, writing my first apps.
I also know very very little about other languages and would love to hear if you know about languages that provide a similar experience.
Also, what has helped you when you first started out?
Thanks!!5 -
*me, 11 pm: "Welp, I think I'm gonna stop for tonight"
*Me, 2 am of same evening: "ThE eDiT fOrM iS fUnCtIoNaL aNd wOrKinG!!!"3 -
"How long will it take us to build X?"
"How long is a piece of string?"
Very similar indeed. Time estimates are insanely hard even with all the cards on the table, be sure to lay them all out before asking.1 -
Wrote a nodejs script which reads emails from my college searching for keywords like free, food, and refreshments. When it finds one of those it notifies me that free food is somewhere on campus.
Necessity is the mother of invention3 -
Was nearly in a serious car accident this morning but managed to swerve and miss like 10 objects...i was so full of adrenaline but all i could think was "wow, that was just like in Need For Speed Most Wanted"
Oh and the fucker that caused it drove away 🙃🙃1 -
When I was looking for an internship...
- Hello, I noticed your cv and you have a great portfolio! Are you familiar with responsive design?
- I have a basic knowledge on that, i am not an expert.
- Ok, can you come for an interview on Monday?
-Sure
Monday morning....
Interview with CEO...
- What's your experience with responsive design?
- I have a basic knowledge on that, i am not an expert.
- Sorry I need someone expert
- But the job is for junior dev and it's an internship
- Yes but man hours of someone to training you will be a cost for me.
- Ok, thank you
(Step before closing the door)Btw you should had check my portfolio, 4/8 websites are responsive.4 -
A HUGE FUCK YOU TO EVERY GODDAMN ONLINE STORE WHO NEEDS A CREDIT CARD NUMBER TO OBTAIN SOMETHING FREE.
(the following is a big fuck you)
______
| ___|
| |_
| _|
| |
\_|
_ _
| | | |
| | | |
| | | |
| |_| |
\___/
_____
/ __ \
| / \/
| |
| \__/\
\____/
_ __
| | / /
| |/ /
| \
| |\ \
\_| \_/
__ __
\ \ / /
\ V /
\ /
| |
\_/
_____
| _ |
| | | |
| | | |
\ \_/ /
\___/
_ _
| | | |
| | | |
| | | |
| |_| |
\___/9 -
That feeling when you have been finding what is wrong for hours just to find that your problem is also an unresolved issue on github
-
A little ago I helped my dear @Divisionbyzero out with some server problems. He was stuck on them for ages and i solved them quite fast, something I'm actually proud of!
Now he sent me a thank you package!
This is the first thing I ever got for using my skillset to help someone out 😊 (work not counted)
Thanks mate! (couldn't turn the image for some reason)11 -
Got a phone interview for a backend dev job in an opsec company.
Interviewer:
This is a very serious and prestigious position, we take care of the most important bits of code.
*Proceeds to talk introductory nonsense*
Interviewer:
Do you know what a DNS is?
Me:
Yes, of course! DNS stands for Domain Name System.... Blah blah blah... I explain about the servers, about hosts file, about DNS spoofing and everything else possible on this topic.
Interviewer:
See, I was patient with you - letting you finish. I'm not sure what you're talking about and where you got it from, but a DNS is that line in the browser where you type the site's name.
He didn't ask any more questions, just told me that they'll get back to me. I asked not to do that.
Three weeks later I got an email claiming that I'm not qualified.44 -
(context: I'm from Germany)
The interview was going well, their developer and I had good talks about their stack and projects, I thought I was making a good impression.
Then the HR guy had some Qs. He went through my CV, wanted to know why I left company X and what I did at company Y. He seemed quite impressed with the work experience I already had (the job I was applying for was an entry level position).
For education I had an entry at a university. "courses in computer science". He asked:
"And you finished the Bachelor's degree, right?"
Me, "well, no. I stopped after about 2 semesters. I'm a self-taught developer, all my skills..."
HR guy interrupts
"So, no bachelor's degree?"
"No, but I figured out that I am a much better learner outside of university and that I don't want to go into research."
"Thank you for coming in, we'll get back to you soon."
...
As a conclusion: I learned that german companies are still very traditional and search for employees with degrees. They don't understand how you'd know stuff if you don't have a degree.
Good thing: we also have international companies, which are happy to welcome enthusiastic and self-taught developers.24 -
Just moved, new room, let's try to setup port forwarding!
Well, i thought that too. Just spent hours trying to get this motherfucker to work. Tutorials, everything.
Every time that damn can't connect error. About to lose my shit.
Suddenly *hold on, is Apache installed on my new KDE Neon installation?!*
*oops* 😅5