Details
-
AboutGerman Guy. Gamer, Streamer, Developer
-
SkillsC#, Java, C, SQLWindows
-
LocationErfurt
-
Github
Joined devRant on 7/2/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
-
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 -
!rant
!!git
Who here uses `master` for development?
My boss (api guy) tried to convince me that was normal practice. I gently told him that it sounded crazy and very very bad.
Here's the dev path I'm enforcing on my repos:
(feature branches) -> dev -> qa* -> master -> production*
*: the build server auto-pulls from these branches, and pushes any passing builds to staging/production.
Everyone works on their own feature branches, and when they're happy with their work, they merge it into `dev`. `dev`, therefore, is for feature integration testing. After everything is working well on `dev`, it gets merged into `qa` for the testers to fawn over and beat with sticks. Anything that passes QA gets merged into `master`, where it sits until we're ready to release it. When that time comes (it's usually right away, but not always), `master` gets merged into `production`.
This way, `master` is always stable and contains the newest code, so it's perfect for forking/etc. Is this standard practice, or should I be doing something different?
Also, api guy encourages something he calls "running a racetrack" -- each dev has their own branch (their initials) and they push to that throughout the day. everyone else pulls from it regularly and pushes to their own branch. When anyone's happy with their code, they push from their (updated) branch to `qa` (I insisted on `dev` instead.)
Supposedly this drastically reduces the number of merge conflicts when pushing to an upstream branch due to having a more recent ancestor node?
I don't quite follow that, but it seems to me that merging/pushing throughout the day would just make them happen sooner? idk.
What are your thoughts?30 -
My girlfriend has these :D
(called Code:Deck - available here https://varianto25.com/playing-card...)14 -
Today at work, still laugh thinking back to it!
We were on lunch break but the linux support engineers who are on the phones as well have to pick up calls anyways (very small team).
*engineer walks to the table, sits down: Ahhh rest, finally!*
*tringggggggggg*
*engineer pulls a face like 'oh for fucks sake' and walks back to his desk*
*puts headphones on and clicks the answer button just as it disappears*
"really!?! Alright lets finally eat now"
*sits for literally one second*
*tringgggggggggg*
*Engineer seems quite pissed off now. walks to his desk again, puts on headset, clicks the answer button JUST as the call stops again*
"Mother of god, fucking really?"
*stays as his desk for a minute or so, walks back, stays hovering above his chair for a little and finally sits down again*
"Finall......"
*TRINGGGGGGGGGGGG*
"MOTHERFUCKER. THESE GUYS TIME IT OR SOMETHING!?!?"
*walks back to his desk very frustrated this time*
*puts on headphones very quickly and presses the answer button*
*answer works but the call is literally dropped the second he starts it (it was a real client)*
"OH FOR FUCKS FUCKING FUCKING FUCKING SAKE FUUUUUUUUUUUUUUUUUUUUUUCK"
*walks back to table again and sits down. Takes sandwich and....*
*TRINGGGGGGGGGG MOTHERFUCKER*
"FUCKING COCKSUKING MOTHERFUCKING PIECES OF WHAT THE FUCKING FUCK EVER"
*gives a deadly look to another engineer: "I am NOT going to take it this time! En-fucking-joy."*
We laughed so hard xD15 -
Customer :Can you build a system that rates our product by XYZ standard?
Us: Sure!
*time passes*
Us: Ta-da!
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?
Us: No.
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.
Customer: Unacceptable!
Us: Improve production?
Customer : Not possible, the job is done when you rate the products good by XYZ standard.9 -
Awesome wallpaper of devrant...
I don't remember who gave me the link of this wallpaper
Whoever it was just want to say Thank You !!!!!8