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
Search - "doing things right"
-
Hey everyone,
Merry Christmas to everyone who celebrates, happy holidays to everyone, and happy almost-new-year!
Tim and I wanted to reflect on the year devRant has had, and looking back, there are a lot of awesome things that happened in 2018 that we are very thankful for. Here are just a few of the ones that we thought of (this list is not exhaustive and I'm definitley forgetting stuff, so please comment about those!):
- After nearly a year in the making, the completely overhauled devRant web version was launched (https://devrant.com/rants/1255714/...)
- @linuxxx became the first devRant user to hit 100,000++! (https://devrant.com/rants/1157415/...)
- We once again pulled off the greatest April fools joke everrrr (https://devrant.com/rants/1311206/...)
- @trogus started making awesome devComics and http://devcomics.com was launched
- We added a feature to allow rant filtering by post type (https://devrant.com/rants/1354275/...)
- We made it so avatars could have expressions! (https://devrant.com/rants/1563683/...)
- We had a booth at TechDay New York and got to meet some devRant users! (https://devrant.com/rants/1394067/...)
- We made major backend architectural improvements - including spinning up a special high-powered-CPU web server to handle avatar creation and make the creation process much faster (https://devrant.com/rants/1370938/...)
- App stability: mainly Android - we fixed crashes, did a push-notif overhaul, and tried to continue making the apps better and more stable
- A record amount of devRant meetups were held, and we couldn't be more proud about that, and we thank every person who organized one! (just a few: https://devrant.com/rants/1588218/... https://devrant.com/rants/1884724/... https://devrant.com/rants/1683365/... https://devrant.com/rants/1922950/...)
We had a busy year, and despite some things going on for us personally and some setbacks around those, we think this was a very productve year for devRant and that we are going in the right direction. We're continuing to constantly evaluate feedback from members of the community to decide where to take the app next. We're fully committed to improving the devRant community in 2019 and we have a lot of ideas about how we can do that. We're working on some things, but we're not really announcing them yet, so please sit tight for those :) In the meantime, feel free to let us know what you'd like to see improved/added the most as we always like to get updated feedback from the community.
As always, thank you everyone, and thanks for your amazing contributions to the devRant community!
Looking forward to 2019,
- David and Tim26 -
"Let's do some pair programming! It will be fun!"
... Fuck no.
Either I start coding and you open a beer, or the other way around. And sure, I do not mind doing each other's code reviews. I respect your feedback.
But I can't look over your shoulder while you misspell keywords. When I write code, I search, try, debug and play at a high speed.
I'm an impressionist/surrealist writing messy passionate functions, breaking lots of things with broad paintbrush strokes before finishing it into detailed perfection. I remember all the places in the code I need to work on, and cover everything with tests.
You're a baroque coder, sometimes even a hyperrealist, with your two-finger 10 wpm typing, writing code strictly line-by-line, decorating every statement with the right checks & typehints in advance. You can not keep two functions in your head at the same time. You write tests reluctantly, but you hate that I barely plan. You plan everything, including your pee breaks.
As a coworker I respect you.
But there is no bigger hell than pair programming with you.14 -
Boss: make this thing
Me: yeah no worries. Where is the spec?
Boss: We don't have enough one but we outsourced the design so call him
Designer: haven't started yet
Me: excellent
Boss: I'm going on holiday. I'll leave this to you.
Me: erm ok. I'm having a few problems getting stuff out of the designer though.
*2 weeks later and still no designs*
Boss: I'm back. Where is the progress?!
Me: indeed.
*1 week later i get half designs that sort of make sense*
Boss: hurry up!
*1 week later*
Me: designer you're busting my balls here
Designer: yeah lol
Me to boss: still having problems. No idea what I'm doing.
Boss: deal with it
*2 days later*
PM: we are demoing it to clients tomorrow
Me: brilliant. I'll become a magician then.
* Meeting goes well and no one notices the thing is a bit buggy*
*2 days later*
Me to boss and pm: you already know whats going on but I'll keep trying.
Boss: ok it's just a proof of concept anyway.
Designer: yeah here's the rest of the designs lol
*1 week later, the designs made no sense, no idea what they wanted but hey it's a proof of concept so I'll just do my best...*
*suddenly again, hey you have 1 week before we sell it. Lol. smashes a product together as fast as humanly possible, due to half designs and no time to do it right even html classes and CSS aren't right - didn't know things would be repeated at the time. No time to fix entire thing. Luckily just a proof of concept*
New senior developer: hey boss just said this is being sold tomorrow.
Me: wtf..It's a proof of concept and i was given longer...
New senior developer: no
Me: :(
Senior developer and all colleagues: it's full of bugs and doesn't work
Me: yes that will happen without specs, random tight deadlines, no designs that made sense and a total of about a week and a half to make an entire system for multiple user types to make applications, send messages, post jobs, handle all paperwork and move paperwork among different user types as they go through applications. I told everyone what was going on but i get no support...
*Silence*
Boss: wtf i gave you so long! All i know is my entire staff is working on a product that should be done ages ago
Me: ok, however i have said almost every day i need-
Boss: I'm not interested
*I finish my placement year and never get any promised work or the job offer*
Seems legit?16 -
Me and my love-hate Linux.
I lost virginity really early. In the age of 5 it was my first time with windows 95. I spend almost 10 years with Windows before something happened that would change everything. I met Linux. Her forename was Arch. I had a crush on her right from the beginning. It didn't take long for me to abandon windows. Arch had everything I wanted. She had latex which was pretty hot and looked simply and elegant on her. Sometimes she was really hard to deal with and almost drove me crazy, but I knew I fell in love.
Until that day. I had to write a short paper which was quite fun and Linux helped me alot. It was a breeze to work with her. The evening before the deadline she was quite thoughtful. She sometimes was, so I thought it'll be alright, but this time was different. She struggled a bit, so I put her to sleep and she never woke up. I brought her to the emergency lab which was open 24/7. Since no one was there I had todo the surgery myself. After 5 hours I was almost to tired to continue when she finally woke up. I asked her about the things she should remember for me - then I killed her. I started to hate Linux for what she had done to me. The unbelievable stress and horror.
I returned to Windows. Besides that she got a bit more curious what I was doing when and where nothing really changed and she was glad to have me back. I just was happy how simple our relationship was.
One day then, I couldn't believe it at first, I met Archs sister. Manjaro. No matter how strange that is, but it was as if I would meet Linux again for the first time. She was just a bit simpler but as flexible as arch. Since then we are happy together. It seems that we both just grew up a little.
And with Windows? She got even more curious! Actually I have the feeling she is stalking me now, but I don't regret anything!15 -
"You mean to tell me that you deleted the class that holds all our labels and spin boxes together?" I said exasperatedly.
~Record scratch.mp3
~Freeze frame.mp4
"You're probably wondering how we got to this stage? Let's wind back a little, shall we?"
~reverseRecordSound.wav
A light tapping was heard at the entrance of my office.
"Oh hey [Boss] how are you doing?" I said politely
"Do you want to talk here, or do you want to talk in my office? I don't have anyone in my office right now, so..."
"Ok, we can go to your office," I said.
We walked momentarily, my eyes following the newly placed carpeting.
Some words were shared, but nothing that seemed mildly important. Just necessary things to say. Platitudes, I supposed you could call them.
We get to his office, it was wider now because of some missing furniture. I quickly grab a seat.
"So tell me what you've been working on," I said politely.
"I just finished up on our [project] that required proper saving and restoring."
"Great! How did you pull it off?" I asked excitedly.
He starts to explain to me what he did, and even opens up the UI to display the changes working correctly.
"That's pretty cool," admiring his work.
"But what's going on here? It looks like you deleted my class." I said, looking at his code.
"Oh, yeah, that. It looked like spaghetti code so I deleted it. It seemed really bulky and unnecessary for what we were doing."
"Wait, hold on," I said wildly surprised that he thought that a class with some simple setters and getters was spaghetti code.
"You mean to tell me that you deleted the class that organizes all our labels and spin boxes together?" I said exasperatedly.
"Yeah! I put everything in a list of lists."
"What, that's not efficient at all!" I exclaimed
"Well, I mean look at what you were doing here," he said, as he displays to me my old code.
"What's confusing about that?" I asked politely, but a little unnerved that he did something like this.
"Well I mean look at this," he said, now showing his "improved" code.
"We don't have that huge block of code (referring to my class) anymore filling up the file." He said almost a little too joyously.
"Ok, hold on," I said to him, waving my hand. "Go back to my code and I can show you how it is working. Here we are getting all the labels and spin boxes into their own objects." I said pointing a little further down in the code. "Down here we are returning the spin boxes we want to work with. Here and here, are setters so we can set maximum and minimum values for the spin box."
"Oh... I guess that's not that complicated. but still, that doesn't seem like really good bookkeeping." He said.
"Well, there are some people that would argue with you on that," I said, thinking about devRant.
He quickly switches back to his code and shows me what he did. "Look, here." He said pointing to his list of lists. "We have our spin boxes and labels all called and accounted for. And further down we can use a for loop to parse through them."
He then drags both our version of the code and shows the differences. I pause him for a moment
"Hold on, you mean you think this" I'm now pointing at my setters "is more spaghetti than this" I'm now pointing at his list of lists.
"I mean yeah, it makes more sense to me to do it this way for the sake of bookkeeping because I don't understand your Object Oriented Programming stuff."
...
After some time of going back and forth on this, he finally said to me.
"It doesn't matter, this is my project."
Honestly, I was a little heart broken, because it may be his project but part of me is still in there. Part of my effort in making it the best it can be is in there.
I'm sorry, but it's just as much my project as it is yours.17 -
Tonight, I had the pleasure of being challenged to make a virus for a VM over at the awesome "virus aquarium": computernewb.com
I present to you the Eevee fork/bomb.
Tonight, was the first night where I've ever sat down and programmed in VBS. I had a lot of fun doing it too. Right now I'm aiming at corrupting taskkill, tskill, and shutdown for good measure. These are a few of the things that my buddy has pulled on me that has made it difficult for me to continue moving forward.
The other part is to create seperate .exe files that would run my the necessary script. Each of these .exe files will be unique such that it's more difficult to shut all of them down at once.
Despite the fact that this thing will quite literally break your computer, it's fun being challenged to think outside of the box. Quite literally. I've always been careful about what things I touched on a PC, but tonight was fun because I was basically unchained and allowed to run rampant.
As a computer geek I think it's good to let out your inner demon and see what havoc one could wreak.11 -
Boss: Great news, we are getting another backend dev from another team to help us out.
Me: Cool, hopefully we don’t have the same trouble as the others, not replying, never writing anything down etc.
Boss: No, I’ve worked with her before. She’s much more passionate about doing things right, using best practices and all that stuff.
Me: Oh that’s perfect, great news!
Boss: Yep! ... just be aware she has a tendency to get very easily confused. She delivers the wrong thing from time to time and might need to redo stuff semi-regularly.
Me: ... ... ...
Boss: It’ll all work out. Don’t worry. Ok gotta run.15 -
So after I spent around 1 hour 35 minutes debugging a client's problem to end up with finding out he had no actual internet without him saying so I think I can finally catch a break and relax..
NOPE
I get an urgent call that a computer that needed tending to was down and needed to be up by tonight
I rush to the office of the said computer only to find the one of the worst things imaginable.
I can see the computer clearly shorted and lo and behold, the CD tray is out with a MUG.. yes you heard that right.. A MUG FULL OF TEA sitting on it..
I literally scream at the employee asking him what a mug was doing there and instead he calls ME DUMB saying that if it wasn't intended as a cup holder what was its use?
SERIOUSLY?! ITS 2017 HOW CAN PEOPLE NOT GRASP SOMETHING AS SIMPLE AS THIS20 -
Welcome back to practiseSafeHex's new life as a manager.
Episode 2: Why automate when you can spend all day doing it by hand
This is a particularly special episode for me, as these problems are taking up so much of my time with non-sensical bullshit, that i'm delayed with everything else. Some badly require tooling or new products. Some are just unnecessary processes or annoyances that should not need to be handled by another human. So lets jump right in, in no particular order:
- Jira ... nuff said? not quite because somehow some blue moon, planets aligning, act of god style set of circumstances lined up to allow this team to somehow make Jira worse. On one hand we have a gigantic Jira project containing 7 separate sub teams, a million different labels / epics and 4.2 million possible assignees, all making sure the loading page takes as long as possible to open. But the new country we've added support for in the app gets a separate project. So we have product, backend, mobile, design, management etc on one, and mobile-country2 on another. This delightfully means a lot of duplication and copy pasting from one to the other, for literally no reason what so ever.
- Everything on Jira is found through a label. Every time something happens, a new one is created. So I need to check for "iOS", "Android", "iOS-country2", "Android-country2", "mobile-<feature>", "mobile-<feature>-issues", "mobile-<feature>-prod-issues", "mobile-<feature>-existing-issues" and "<project>-July31" ... why July31? Because some fucking moron decided to do a round of testing, and tag all the issues with the current date (despite the fact Jira does that anyway), which somehow still gets used from time to time because nobody pays attention to what they are doing. This means creating and modifying filters on a daily basis ... after spending time trying to figure out what its not in the first one.
- One of my favourite morning rituals I like to call "Jira dumpster diving". This involves me removing all the filters and reading all the tickets. Why would I do such a thing? oh remember the 9000 labels I mentioned earlier? right well its very likely that they actually won't use any of them ... or the wrong ones ... or assign to the wrong person, so I have to go find them and fix them. If I don't, i'll get yelled at, because clearly it's my fault.
- Moving on from Jira. As some of you might have seen in your companies, if you use things like TestFlight, HockeyApp, AppCenter, BuddyBuild etc. that when you release a new app version for testing, each version comes with an automated change-log, listing ticket numbers addressed ...... yeah we don't do that. No we use this shitty service, which is effectively an FTP server and a webpage, that only allows you to host the new versions. Sending out those emails is all manual ... distribution groups?? ... whats that?
- Moving back to Jira. Can't even automate the changelog with a script, because I can't even make sense of the tickets, in order to translate that to a script.
- Moving on from Jira. Me and one of the remote testers play this great game I like to call "tag team ticketing". It's so much fun. Right heres how to play, you'll need a QA and a PM.
*QA creates a ticket, and puts nothing of any use inside it, and assigns to the PM.
*PM fires it back asking for clarification.
*QA adds in what he feels is clarification (hes wrong) and assigns it back to the PM.
*PM sends detailed instructions, with examples as to what is needed and assigns it back.
*QA adds 1 of the 3 things required and assigns it back.
*PM assigns it back saying the one thing added is from the wrong day, and reminds him about the other 2 items.
*QA adds some random piece of unrelated info to the ticket instead, forgetting about the 3 things and assigns it back.
and you just continue doing this for the whole dev / release cycle hahaha. Oh you guys have no idea how much fun it is, seriously give it a go, you'll thank me later ... or kill yourselves, each to their own.
- Moving back to Jira. I decided to take an action of creating a new project for my team (the mobile team) and set it up the way we want and just ignore everything going on around us. Use proper automation, and a kanban board. Maybe only give product a slack bot interface that won't allow them to create a ticket without what we need etc. Spent 25 minutes looking for the "create new project" button before finding the link which says I need to open a ticket with support and wait ... 5 ... fucking ... long ... painful ... unnecessary ... business days.
... Heres hoping my head continues to not have a bullet hole in it by then.
Id love to talk more, but those filters ain't gonna fix themselves. So we'll have to leave it here for today. Tune in again for another episode soon.
And remember to always practiseSafeHex13 -
So I've been looking for a Linux sysadmin job for a while now. I get a lot of rejections daily and I don't mind that because they can give me feedback as for what I am doing wrong. But do you know what really FUCKING grinds my FUCKING gears?
BEING REJECTED BASED ON LEVEL OF EDUCATION/NOT HAVING CERTIFICATIONS FOR CERTAIN STUFF. Yes, I get that you can't blindly hire anyone and that you have to filter people out but at least LOOK AT THEIR FUCKING SKILLSET.
I did MBO level (the highest sub level though) as study which is considered to be the lowest education level in my country. lowest education level meaning that it's mostly focused on learning through doing things rather than just learning theory.
Why the actual FUCK is that, for some fucking reason, supposed to be a 'lower level' than HBO or Uni? (low to high in my country: MBO, HBO, Uni). Just because I learn better by doing shit instead of solely focusing on the theory and not doing much else does NOT FUCKING MEAN THAT I AM DUMBER OR LESS EDUCATED ON A SUBJECT.
So in the last couple of months, I've literally had rejections with reasons like
- 'Sorry but we require HBO level as people with this level can analyze stuff better in general which is required for this job.'. - Well then go fuck yourself. Just because I have a lower level of education doesn't FUCKING mean that I can't analyze shit at a 'lower level' than people who've done HBO.
- 'You don't seem to have a certificate for linux server management so it's a no go, sorry!' - Kindly go FUCK yourself. Give me a couple of barebones Debian servers and let me install a whole setup including load balancers, proxies if fucking neccesary, firewalls, web servers, FUCKING Samba servers, YOU FUCKING NAME IT. YES, I CAN DO THAT BUT SOLELY BECAUSE I DON'T HAVE THAT FUCKING CERTIFICATE APPEARANTLY MEANS THAT I AM TOO INCOMPETENT TO DO THAT?! Yes. I get that you have to filter shit but GUESS WHAT. IT'S RIGHT THERE IN MY FUCKING RESUME.
- 'Sorry but due to this role being related to cyber security, we can't hire anyone lower than HBO.' - OH SO YOUR LEVEL OF EDUCATION DEFINES HOW GOOD YOU ARE/CAN BE AT CYBER SECURITY RELATED STUFF? ARE YOU MOTHERFUCKING RETARDED? I HAVE BEEN DOING SHIT RELATED TO CYBER SECURITY SINCE I WAS 14-15 FUCKiNG YEARS OLD. I AM FAMILIAR WITH LOADS OF TOOLS/HACKING TECHNIQUES/PENTESTING/DEFENSIVE/OFFENSIVE SECURITY AND SO ON AND YOU ARE TELLING ME THAT I NEED A HIGHER LEVEL OF FUCKING EDUCATION?!?!? GO FUCKING FUCK YOURSELF.
And I can go on like this for a while. I wish some companies I come across would actually look at skills instead of (only) study levels and certifications. Those other companies can go FUCK THEMSELVES.39 -
TL;DR: don't fuck with your IT guy.
One of the guys in our office treats his laptop like shit, has dropped it a number of times and had managed to break the screen. There was a nice crack diagonally corner to corner across the screen with a nice black splotch around it making a good chunk of his screen unusable. Servicing the laptop would be too expensive and would mean being without the machine for several weeks forced to use a Mac.
I offered to replace the screen for him since I have experience doing laptop repairs. Once the screen arrived I kept the laptop for the evening and spent an hour replacing the screen. I left a note telling him he owed me $60 for my time.
He sees the note, laughs and says "I'll buy you lunch."
Not only does this guy only keep his word when offering to buy lunch about 10% of the time, when he does actually do it he charges it on the company card so it isn't really him paying for it. So I spent my lunch break writing up a little Python app which randomly fucks with his mouse and keyboard.
I sent him a message that I needed to run some tests on his new screen tonight so I'll be able to install it and set it to run on boot.
The app does things like:
Jiggle the mouse
Minimize all windows to show the desktop
Double click
Right click
Can't decide if I want to add in reboots as well.
I figure I'll leave it going until I get $60 worth of entertainment out of it.15 -
My whole team was a circus:
- Dev 1, the senior: he will be spent his days coding his personal projects and will convince management that everyone else needed to prove themselves so he will have nothing to do and we will do all the work.
- Dev 2, the junior: he was convinced that his mission in life was to be friends with his team. He's desk was far from the rest of the team so he will show just right after lunch EVERY FREAKING DAY with a list on his phone of random things he wanted to talk about like music, artists, art, news, etc., he really thought I didn't notice the list.
- Dev 3: the vegan: you will hear on every chance how she was so awesome for being vegan.
- Dev 4, the expert: if you ask him anything he will stare at you in silence to make you feel like you are a stupid for not knowing the answer and then turn around like nothing.
- Dev 5, the ghost: he will show early every day, code without mouthing a word and leave at 5pm, I think I heard him saying "hmmm" once but I might be wrong.
- Dev 6, the coder by accident: he was a graphic designer and ended up doing front end so he hated his job.
- Dev 7, me: the one who didn't care about anything but doing his job and leave.
- The project manager: she didn't knew anything about technology but will attend meetings with clients on her own, commit to deadlines and then inform us that the project that we estimated for 8 weeks will have to be done in 2 with new additions to the features.
You know the drill, here's your potato :/5 -
TL;DR: If you're an Android user, do yourself a favour and check out https://simplemobiletools.com/ . You're welcome.
Dear diary, today was a good day.
A small part of my faith in humanity was recovered after I found about Tibor Kaputa.
Apparently, this guy - like many of us - was fed up with the bloat, bugs, bullshit and 'features' of many of the stock Android apps that come preinstalled on most phones. And so, he decided to make his own.
Unlike most of us however, he actually pulled through. And then he made them open source.
No bullshit permission requirements.
No ads or tracking.
Custom themes.
And no, not just 'toggle white/dark mode', I'm talking 'pick your own color scheme', both within the app and for the app icon (!).
And then sync your colour scheme across the entire suite of apps (!!).
Simple UI, with a lot of customizable settings.
And if you get them from f-droid, it's all completely free as in BEER too!
I've spent a lot of time in the last year trying to find software that does what it's supposed to do well, without trying to pull any sneaky bullshit in the background or annoy me with crap that I don't care about in a miserable attempt to show off its useless features.
I'm not a fan of Medium myself either, but the author's article about how his suite of apps was born really resonated with me. If you care about privacy, open source software, and doing things right, you should really give it a read: https://medium.com/@tibbi/...
I'm particularly a fan of the Gallery, the File Manager, and the Music player apps, and the others don't look half bad either.11 -
"Fuck JavaScript, its such a shitty language" seems to be quite a common rant today. It seems as if JS is actually getting more hate than PHP, which is certainly odd, considering the stereotype.
So, as someone who has spent a lot of time in JS and a lot of time elsewhere, here are my views. Please, discuss your opinions with me as well. I am genuinely interested in an intelligent conversation about this topic.
So here's my background: learned HTML/CSS/JS in that order when I was 12 because I liked computers. I was pretty shitty at JS until U was at least 15, but you get the point, Ive had it sploshing about in my brain for a while.
Now, JS certainly has its quirks, no doubt, but theres nothing about the language itself that I would say makes it shitty. Its a very easy leanguage to use, but isn't overdeveloped like VB.net (Or, as I like to call it, TheresAFunctionForThat)
Most of the hate is centered around JS being used for a very broad range of systems. I doubt JS would be in the rant feed so often if it were to stay in its native ecosystem of web browsers. JS can be used in server backend, web frontent, desktop and mobile applications, and even in some system services (Although this isn't very popular as of yet). People seem to be terrified that one very easy to learn language can go so far. And, oh god, its interpreted... How can a system app run off an interpreted language? That's absurd.
My opinion on JSEverything is that it's progress. Thats what we're all about, right? The technologies already in place are unthreatened by JS, it isn't a gamechanger. The only thing JS integration is doing is making tedius and simple tasks easier. Big companies with large systems aren't going to jump ship and migrate to JS. A startup, however, could save a fucking ton of development time by using a JS framework, however. I want to live in a world where startups can become the next Google, because technology will stagnate when youre trying to protect your fortune, (Look at Apple for fucks sake) but innovation is born of small people with big ideas.
I have a feeling the hate for JS is coming from fear of abandoning what you're already doing. You don't have to do that. JS is only another option (And a very good one, which is why it's becoming so popular).
As for my personal opinion from my experiences... I've left this part til the end on purpose. I love programming and learning and creating, so I've never hated a lamguage, really. It all depends on what I want to do. In the times i've played arpund with JS, I've loved it. Very very easy. The idea of having it on both ends of web development makes a lot of sense too, no conversion, just direct communication. I would imagine this really helps with speed, as well. I wouldn't use it in a complicated system, though. Small things, medium size projects: perfect. Running a bank? No.
So what do you think about this JSUniverse?13 -
Guys, my unfortunately daily rant of my pm
I was told to create a docker env for our team. Good. Document the process so everyone can know what to do. Good.
My PM follows what he wants to instead of step by step and changes whatever he wants to.
I am asked for help because he doesnt know. No prob.
Me: "Do this, do this and.."
PM: "that doesnt matter, trust me, I could change it and.."
Me: "...and it wont work"
PM: "I know suff too, check" *does his changes aaaaaand doesnt work*
* awkward staring*
That happened a while ago.
This week, he crashed his git repo because he was doing things in docker team (including him) decided not to.
Took me more enough time explaining him "you are not supposed to do that in the container" funny fact he wanted to prove that his way was right and even if he did my way it would crash.
Sooooo he did my way just to prove how wrong I was. Everything worked flawlessly. Rage-still-awkward staring.
Plus the "aww that's weird. I dont know how this happened" -
Fuck windows 10. I log on to start an interview code assignment that is timed. I'm on my computer getting things ready for a solid 10 minutes before starting the test. AS SOON as I start the test, windows 10 informs me:
Fuck you. There's updates and I'm installing them right now whether you like them or not, fucker. I bet you're doing something important too, so I'm not even going to let you schedule it at another time.
Fuck.15 -
I was thinking today about a certain aspect of running a software startup and then it came to me...
Hank Scorpio, from the Simpsons, was right in his approach.
So many time I have seen people get hired only for the company to get a less-than-optimal performance from them.
But why is this? Of course, it is many factors but one of the major ones is...
Employers seem to lump employees in together and assume that since most developers operate in one way that the new devs should be the same way.
The problem with this seems to be that we are all pandering to the lowest common denominator.
Let's face it, most devs (like most people) are not good, and almost everyone is not living up to their potential because of a lack of understanding of themselves and how they can achieve more.
On top of that, most devs are just employees who will do what you tell them to.
Since those above developers are the norm (Reference Seinfeld "95% of people are undatable") we have to assume that there is a 5% who are exceptional.
The difference between the 5% and the 95% is NOT some built-in superiority but that the 5% has a good idea themselves and an understanding of how to get the most out of them. They set goals and then find the right path to achieve them. They don't coast.
By assuming these developers are the same as the others is REALLY hampering their potential and by doing this the company only hurts itself.
So, that's a lot of talking but what actionable things can be taken away from this?
Hank asks Homer "What is your dream?"
Well, employeers should take the time to identify which of these developers are in the 5%. A problem arises though when the 5% decide it is in their best interest to blend in.
Like when home says his dream is to "Work for you?" Hank shuts him down and wants to get to the truth. He makes Homer comfortable with not only vocalizing but achieving his dreams.
When an employer is looking for their types they should be looking for the following...
1. A real genuine desire to achieve
2. A real plan to get their goals done
3. Critical thinking and self-evaluation
But more importantly, when they identify these types they should be asking questions like...
- How can we help you be more productive?
- Is there anything about our current operating norm that is hindering you?
- How does your productivity workflow look?
3 difficulties arise though…
1. Most hiring managers are incompetent, and quite frankly, everyone thinks they are in the 5% and for those managers who delude themselves into this without putting in the work, they will have an impossible time actually identifying those who are actually good and productive employees.
2. Showing special treatment to these folks may upset the people below.
3. You will hear things you don’t like…
Examples include…
- That new fancy open-office that you got because it was the trendy thing to do, you might hear that this is a huge hinderance.
- These days people seem to treat devs like nomads, “just give him a laptop and a table and he is fine”!. You may hear that this is complete BS. Real achievers may want a dedicated desk with multiple monitors, a desk with drawers etc.
- This WILL cost you money. I know of developers who cannot work without a dedicated whiteboard. Buy them whatever they need.
- They may want BOTH a standing desk and a chair to sit on.
- Etc.
The point is that it seems to me to be a foolish strategy to tailor your entire company to force everyone into the same work habits. Really good employees have the self-awareness to develop their own productive practices and any keeping of them inside a box will NOT help.27 -
Confession.
I am sorry.
I don't know if I am doing the right or the wrong thing.
I never shared devRant with people I know because of three things.
1. I don't want to infect this community with cancerous people.
2. I only have a few friends.
3. People I know have no interest in programming (still in college).16 -
!dev
!!misery
I'm drunk, so it's time for some faux-emotional, blunt oversharing. and lots of profanity. It won't be pretty.
------
I'm miserable. I can't sleep at night. When I finally manage to, I sleep like crap. In the morning, early, I get woken up by my children screaming or pulling my hair or jumping on either the bed or me, or talking ad furore, or any number of other miserably unpleasant things that completely prevent sleep. So I'm tired every single day, which totally surprisingly makes focusing on work fucking difficult. Doubly so because the work is fucking uninteresting and the code is awful to read and difficult to understand because it's complicated and often poorly written. And extending it takes enormous mental effort I simply do not have to give. Oh! Guess what my job is?
To make matters worse, time to myself basically does not exist, ever. I wake up, I attend standup, I cook and eat breakfast, I work while fighting against endless distractions and interruptions, I cook and eat dinner, I work some more, and finally: I can go to bed and try to sleep. The next morning, I wake up and repeat this misery, ad nauseam.
Et ad nauseam? Nauseam est nunc.
It's not proper latin, but fuck you. it's good enough. and nobody speaks it anyway.
Ego sum miseriae. Is that good enough for you?
I can't find it in myself to care about anything. I've been doing whatever I can to feel a little more normal, but mostly I just feel numb. If I drink, it helps a little because I notice my misery a little less. That's a great solution right there: drink until I don't care anymore, and keep doing the same shit without even trying to make things better. Why? Because I fucking can't. I hate this house, I hate the lack of quiet, I hate this city, I hate the dust and the clutter, I hate this state, I hate this codebase, I don't like my coworkers, I hate that I can't get a fucking thing done without spending 6x longer than it should, I hate that I can't fucking think of a single thing I want to do, I hate that I can't ever enjoy anything, I hate that I'm beginning to hate myself, and I fucking hate everything else, too.
In short:
I'm not happy. I'm fucking miserable.
And no, I'm not posting this here for you to psychoanalyze me or suggest solutions. It's for me to vent. Fuck your opinions and fuck your advice and fuck you.29 -
!!rant
!!ANGER
Micromanager: "Hey, Root!
Since you're back, and still not feeling well, we have an easy ticket for you: Rewrite the slack integration gem! Oh, you don't have to re-implement all of it, just make sure it all works the same way it does now. That bitch you worked with once over a year ago who kept throwing you under the bus to management and stealing credit for your work? Yeah, she wrote the original code like four years ago. It's perfect, so don't touch it. but she can fill you in on all the details you need and get you up to speed on how to test it.
But yep! It should be simple. and I just knew you would love this ticket, so I saved it just for you. Nice and quick, too, to get you an easy win.
You know, since you have to repair your reputation with product. and management. and the execs. and the rest of the team. and me. Yeah, product doesn't trust you so they don't want to give you any tickets. They just can't trust you to get them out and have them work. So you have a lot of hard work to do."
Spoiler: The bus-thrower wasn't much help. (Surprise.)
Spoiler: The ticket was already in my backlog -- one of a grand total of two tickets.
Spoiler: I don't find the ticket fun. Maybe if I was to write the entire implementation with a nice DSL? but no, "don't touch the perfect code." Fuck you.
Spoiler: It isn't going to be nice or quick. But, she (micromanager) is looking to lose me, so that really is an easy win. for her.
And. just. argh. fuck you. i've been exhausted and dying for well over a year, but you've kept ignoring that (and still are, despite me providing goddamn legal forms from fucking doctors stating it in plain fucking english, which you also fucking ignore), and you just keep piling on the work and demanding the ridiculous of me despite it. Yeah I can pull it off sometimes. No, I really shouldn't, and I'm surprised I can. (also, "Time off? What, and lower your productivity even more? ____ doesn't even take vacations. And how are you doing on that ticket?") And no, none of my tickets have ever had any fucking problems. Not even when there are upstream service outages. Not. a. single. fucking. one. Ever. And the only things I've ever missed were things that bloody product never put in the fucking ticket, so fuck you with your "repair your reputation" bullshit.
god, i fuckiNG HATE THESESTUPOID ANWETLJAF SAJEWTKW BITCHFACEDUCKFUCKERS
Why the FUCK am I still fucking working here?
Right, because I've been burned out and dying so much I can't pass a fucking interview so I can fucking leave.
jasdkl;fk
ugh. Anyway. If you ever find yourself starting work at a Cali fintech company whose internal mascot is a very fine duck? Just run. I absolutely guarantee you will be miserable.rant root swears oh my micromanager duckfuckers "trivial" ticket root is fucking fed up root swears a lot holy shit rewrite an entire library in 2-3 days16 -
Hey devRanters! A tiny update regarding the privacy tips etc site.
So as ewpratten doesn't have much time right now, I'm doing frontend as well for now.
Since some people also offered to contribute content, which I did not expect, I am also writing an invite/registration (based on invites) as we speak. So, this way, I can invite anyone (based on email address) into the CMS so that they can contribute content as well!
Regarding frontend, I'm introducing a system with icons. Icons? Yes, icons, let me explain:
Every application/service will get a couple of default filtering thingies. (not like clicking something and it'll filter anything out, yet) It'll enable users to see what an application does or does not. What the FUCK do you mean? Alright, so, as example, lets say open source. next to each application (read application/service) listed, there will be an open source icon. If the application is open source, this icon will be green, otherwise it will be red.
This will allow for a quick way of filtering stuff out.
For example, if you're only looking for open source stuff, you can quickly filter stuff out where the open source icon is red!
This will apply to things as open sourceness, metadata saving, usage of good crypto technology and so on. So you'll be able to quickly filter out the stuff you want to use (by eyes) through those filters!
Please let me know what you think and if you have ideas, I'll be glad to hear them!25 -
This is my first post on devRant!
Story time:
It was on my first job as a developer, learning a lot but getting paid less than 50% of the minimum monthly wage of my country.
It was settled in the interview that as I gained more experience, I could handle more projects and earn more money.
At the time, I was living with my parents and didn't have to pay rent and some stuff, so I was like "Well, I'm gonna learn a lot and, if I put a lot of effort into it, soon I'll be making more money".
We agreed that I'll only develop, but 4 months into the job, I was already going to clients
and started coding there (having the client on my back every minute, not being able to work properly) and fixing some computer/network issues they had,
because my boss said I should do it.
Things at home started to go south, and suddenly I needed more money, so I kept doing the work and getting paid a little bit more
A year goes by, devs came and go beacuse of the work/payment situation, and I was still there.
From my first "paycheck" to the last day I never got paid on time, and that was the same for everybody else
The last month I was there, I had a job offer with a better salary and weekends free, so I wanted to take it (I worked saturdays there).
We were working at our biggest clients place at the time (a hospital, working in the server room, desk and chair were a total crap),
so I wanted to have a good conversation with my boss and tell him whats up, after all, I was really grateful for the job despite all things.
We headed outside and started talking. He basically begged me to stay, said that he will pay me on time and offered me more money (less than the other company was offering me),
and that he needed me to finish the implementation and "minor issues" with the app.
I thought about it for a couple of days, and decided to stay. I politely rejected the job offer, and even recommended someone else.
As the days passed, regret was building fast inside of me, until the day that I was supposed to get paid.
He never showed up to the client, told me in a call that he will be there sometime in the morning, that he had the money for me.
So I stayed until my day ended, and still no sign of him. I had no money on me, needed some for gas so I could go, and I called him 5 times.
He picked up the last time, talks to me like nothing is happening and I started to shout at him like I never shouted to anybody before,
got all the things of my chest, and when I was done, he said that he will send the money to my account right away.
This happened on a Saturday, so I quit the following Monday, and lost the other job offer.7 -
Public service announcement: Do not get married to your language, tools, or way of doing things. If there's an easier solution to something, try it before dismissing it. No language is perfect, and dumping everything on the responsibility of an API or framework can cause more headache then solve it.
Case in point: I love Java for backend programming, but node.js is a better solution to frontend programming then depending on JSP's and HTML within the same Java project. Less things go wrong and it's easier to debug issues.
There is no best programming language. Only best practices and using the right tool for the right job.
#exceptC++fuckthatlanguage
:^)15 -
Story time. My first story ever on devRant.
To my ex-company that I bear for a long time... I joined my ex-company 3 years ago. My ex-company assigned me and one girl teammate to start working on a brand new big web project (big one - two members - really?)
My teammate quitted later, I have to work alone after then. I asked if someone can join this project, but manager said other people are busy. Yea, they are fucking busy reading MANGA shit everyday... Oops, I saw it because whenever I about to leave my damn chair, they begin chanting some hotkey magic and begin doing "poker face" like "I'm doing some serious shit right here".. FUCK MY CO-WORKERS!
My manager didn't know shit about software development, and keep barking about Agile, Waterfall and AI shit... He didn't even fucking know what this project should look like, he keep searching the internet for similar functions and gave me screenshots, or sometimes they even hold a meeting of a bunch of random non-related guys who even not working on the project, to discuss about requirements, which last for endless hours... FUCK MY MANAGER!
I was the one in charge for everything. I design the architecture, database, then I fucking implement my own designed architect myself, and I fucking test functions that I fucking implemented myself based on my fucking design. I was so tried, I don't know what the fuck I am working on. Requirement changes everyday. My beautiful architecture began to falling off. I was so tired and began use hack fixes here and there many places in the project. I knew it's bad, but I just don't have time to carefully reconsider it. My test case began becoming useless as requirements changed. My manager's boss push him to finish this project. He began to test, he start complaining about bug here and there, blaming me about why functions are broken, and why it not work as he expected (which he didn't even tell my how he expected). ... I'm not junior developer, but this one-man project is so overwhelmed for me... FUCK MY JOB!
At this time, I have already work this project for almost 2.5 years. I felt very upset. I also feel disappointed about myself, although I know that is not all my entire faults. The feeling that you was given a job, but you can not get it done, I feel like a fucking LOSER. I really wanted to quit and run away from this shithole. But on the other hand I also want to finish this project before I quit. My mind mixed. I'm a hard-worker. I keep pushing myself, but the workplace is so toxic, I can feel it eating up my motivation everyday. I start questioning myself: "Is the job I am doing important?", "If this is really important project, didn't they should assign more members?", I feel so lonely at work... MY MIND IS FUCKED UP!
Finally, after a couple months of stress. I made up my mind that no way this project is gonna end within my lifespan. I decide to quit. Although my contract pointed that I only need to tell one month in advance. I gave my manager 3 months to find new members for project. I did handle over what I know, documents, and my fucked up ultra complexity source code with many small sub-systems which I did all by myself.
Well, I am with a new employer right now. They are good company. At least, my new manager do know how to manage things. My co-workers are energy and hard-working. I am put to fight on the frontline as usual (because of my "Senior position"). But I can feel my team, they got my back. My loneliness is now gone. Job is still hard, but I know for sure that I'm doing things on purpose, I am doing something useful. And to me that is the greatest rewards and keep me motivative! From now, will be the beginning for first page of my new story...
Thanks for reading ...13 -
Dev: Hey that internal audit you asked me to perform didn’t go so well
Manager: It has too! I’ll get in a lot of trouble if it doesn’t pass.
Dev: Ok well it’s a lot of work to get it to a passing state, we have to dedicate a lot of resources to fix all these findings.
Manager: We don’t have any spare resources, they are all working on new projects! Why did you have to find things??
Dev: ….It’s a lot of hard to miss stuff, like missing signatures on security clearance forms
Manager: Ok can’t you just say that everything is all good? They’ll probably not double check.
Dev: I’m not really comfortable with that…Look all of these findings are all just from one member of the team consistently not doing their job, can’t you just address that with him and I can make a note on the audit that issues were found but corrective action was made? That’s the whole point of audits.
Manager: You don’t get it, if anything is found on the audit I’ll look bad. We have to cover this up. Plus that’s a really good friend of mine! I can’t do that to him. Ok you know what? You are obviously not the right person for this task, I’ll get someone else to do it. Go back to your regular work, I’m never assigning you audits again.8 -
There are things that i wish i didn't see.
Yesterday, i went to a coffee shop to relax and reviewing my works. And suddenly a college friend of mine approach me and we started talking about work.
Me: So, What do you do at work? What's your stack?
Him: Not much of a new. Still working with wordpress, html,css and jquery.
So he started talking about how cool wordpress is and how he generates money doing sites.
Me: Can i see your sample works?
Him: Sure, *opens his shitty windows laptop with Web Tech stickers*. and handover his laptop to me.
Me: Woah. the design is so neat (I'm lying). But it's freaking slow man(REALLY FVCKING SLOW).
* I decided to open the devTools and inspected the source code. And I can't believe what i saw.
- 20+ images with 2~4mb file size
- 13 unminified javascript files with variable declarations that looks like minified.
- CDN's of bootstrap, foundation and semantic UI
- LOTS OF FVCKING PLUGINS
* I didn't told him what i saw. I just turn over the laptop to him and finish my coffee.
Him: My sites are cool right? I have a lot of pending projects right now. Easy money Bruh!
Me: Wow. *sips* coffee. and say goodbye to him and walkout.
I FEEL BAD FOR HIS CLIENTS!4 -
Hey guys :(
The rant will be long.
Today was one of the worst day ever.
I'm feeling so shitty right now.
I'm 19 and I started my apprenticeship about a half year ago on a very small company.
From day one I had many things to do, every day is hard and a new experience. But I'm learning a lot.
Two months ago I had my very first presentation for a client. I was really excited and nervous but everything was fine and the client as well as my boss were proud of me.
Today I should present again a prototype for the same client. But this time not directly personal, instead we did it via TeamViewer. After the client finally found out, how to open and start this shit, the disaster tooked its course.
After explaining him the conzept, I wanted to show him in the software. For some reason it suddenly stopped working. I've just made a change recently which leads in all appeareances to an error .
Because of that error I couldn't proceed, so I have to explain and show him the data I created before I made the changes.
With that everything Just worked fine, I could explain and visualize everything. It didn't Matter and didn't changed anything, only the Name was a Name from me.
The client was very relaxed about this error. He said that it is a prototype , it is not serious.
Furthermore I showed and demonstrated him everything.
But my boss wasn't very surprised and Happy about me. He made me responsable for the error, I should have prepared everything better and this all was Shit.
This made me really,really sad. It sounded so hard.
I know that I've made a mistake, but it's human. I'm only 19. I'm not perfect. Sure, I could have prevented it, if I had tested all possibilites right after I had made the changes again. I prepared the whole presentation on the weekend, on my personal freetime. I spent so often so much time in my freetime just for my job, for my apprenticeship. To get what? A fat bite, a kick in the ass. I'm doing so much, but this is not acknowledged. But when I make something wrong - then I'm the shittiest person.
Damn. Don't know how to handle this situation. This has gone to far today.
Yeah, I could have tested More, but I only tested the existing Data. I prepared the presentation very Well. This is so sad.11 -
> Root struggles with her ticket
> Boss struggles too
> Also: random thoughts about this job
I've been sick lately, and it's the kind of sick where I'm exhausted all day, every day (infuriatingly, except at night). While tired, I can't think, so I can't really work, but I'm during my probationary period at work, so I've still been doing my best -- which, honestly, is pretty shit right now.
My current project involves legal agreements, and changing agent authorization methods (written, telephone recording, or letting the user click a link). Each of these, and depending on the type of transaction, requires a different legal agreement. And the logic and structure surrounding these is intricate and confusing to follow. I've been struggling through this and the project's ever-expanding scope for weeks, and specifically the agreements logic for the past few days. I've felt embarrassed and guilty for making so little progress, and that (and a bunch of other things) are making me depressed.
Today, I finally gave up and asked my boss for help. We had an hour and a half call where we worked through it together (at 6pm...). Despite having written quite a bit of the code and tests, he was often saying things like "How is this not working? This doesn't make any sense." So I don't feel quite so bad now.
I knew the code was complex and sprawling and unintuitive, but seeing one of its authors struggling too was really cathartic.
On an unrelated note, I asked the most senior dev (a Macintosh Lisa dev) why everything was using strings instead of symbols (in Rails) since symbols are much faster. That got him looking into the benchmarks, and he found that symbols are about twice as fast (for his minimal test, anyway), and he suggested we switch to those. His word is gold; mine is ignorable. kind of annoying. but anyway, he further went into optimizing the lookup of a giant array of strings, and discovered bsearch. (it's a divide-and-conquer lookup). and here I am wondering why they didn't implement it that way to begin with. 🙄
I don't think I'm learning much here, except how to work with a "mature" codebase. To take a page from @Rutee07, I think "mature" here means the same as in porn: not something you ever want ot see or think about.
I mean, I'm learning other things, too, like how to delegate methods from one model to another, but I have yet to see why you would want to. Every use of it I've explored thus far has just complicated things, like delegating methods on a child of a 1:n relation to the parent. Which child? How does that work? No bloody clue! but it does, somehow, after I copy/pasted a bunch of esoteric legacy bs and fussed with it enough.
I feel like once I get a good grasp of the various payment wrappers, verification/anti-fraud integration, and per-business fraud rules I'll have learned most of what they can offer. Specifically those because I had written a baby version of them at a previous job (Hell), and was trying to architect exactly what this company already has built.
I like a few things about this company. I like my boss. I like the remote work. I like the code reviews. I like the pay. I like the office and some socializing twice a year.
But I don't like the codebase. at all. and I don't have any friends here. My boss is friendly, but he's not a friend. I feel like my last boss (both bosses) were, or could have been if I was more social. But here? I feel alone. I'm assigned work, and my boss is friendly when talking about work, but that's all he's there for. Out of the two female devs I work with, one basically just ignores me, and the other only ever talks about work in ways I can barely understand, and she's a little pushy, and just... really irritating. The "senior" devs (in quotes because they're honestly not amazing) just don't have time, which i understand. but at the same time... i don't have *anyone* to talk to. It really sucks.
I'm not happy here.
I miss my last job.
But the reason I left that one is because this job allows me to move and work remotely. I got a counter-offer from them exactly matching my current job, sans the code reviews. but we haven't moved yet. and if I leave and go back there without having moved, it'll look like i just abandoned them. and that's the last thing I want them to think.
So, I'm stuck here for awhile.
not that it's a bad thing, but i'm feeling overwhelmed and stressed. and it's just not a good fit. but maybe I'll actually start learning things. and I suppose that's also why I took the job.
So, ever onward, I guess.
It would just be nice if I could take some of the happy along with me.7 -
Since I was little I was fascinated by club light shows I saw on TV shows. I just couldn't find out how they made light react to sound, which were two completely unrelated things to me back then. But I wasn't dumb and somehow figured out that if I hooked some low energy fairy lights to my amp and turned the bass up, they would lightup to the beat.
3 fried fairy lights and angry parents for to loud music later I swore to myself that I would someday build something that could light up my whole room and react to the music I was playing.
I started coding about the age 13 (turned 20 a month ago) with some old school bat scripts. But I wanted something that would generate a .exe so I googled and ended up installing Visual Studio Express (again angry parents for installing without asking) and started copying my first VB.Net program together. From there no one could stop me. I wanted to archive something with an application and googled until I found what I needed and learned to code this way.
I learned writing decent vb.net code and itvwas about this time I came into contact with IRC. I lurked arround there and this is were I came into contact with Linix servers, because I wanted to code IRC (eggdrop) bots, so I learned TCL and got used to Linux. Time passed and I ended uo being a Global OP on some network back then.
I did go further, coded Minecraft Mods, thus Java, changed back to C#, learned PHP and started setting things up on my VPS, Mails server, web server, etc.
Nowadays I work as a Systemadmin / Developer Hybrid, earning my first real money doing what I love to do and guess what? In the meantime I proved myself I can accomplish what I wanted as kid. I bought some Club LED DMX capital lights and programmed a controller for them which can control them in C#, but in a way I can run it on my raspi using mono. I also coded a client which runs on windows which uses some native libraries to calculate the dominant color of the shown picture in realtime (Handels 24fps 1080p) and uses the lights as ambient light, like you see them behind TVs sometimes.
The same app uses Bass.NET and an algorithm to dedect a beat in realtime and switches the light colors. Exactly what I wanted as akid, but better.
I can even control the lights via the new Google Assistant and/or Tasker.
Feels fcking good.
Some of my work lies on github among other, mostly trash: https://github.com/Kimmax - didn't updated there in a while tho.
I plan on writing a new free opensource plugin based modular home automatication server and pretty sure could use some helping hands..
I don't know why I wrote all this, just felt like it.
Also: first Rant
Please don't kill me for errors in the text, I'm to lazy to read through it again right now :P8 -
preface: swearing.
because anger.
So. I'm trying to use Material Design with Material UI. The components and UI look *great*.
It's from google, though, which really pisses me off. but I like what I can do with the UI.
HOWEVER.
I really want a grid system for responsiveness. because obviously. besides, i really hate doing all the responsive shit myself. it sucks and i hate it.
Material Design does not include a grid system. okay, it includes a grid component, but it's not for site layout. it's for making a grid of images. or something.
What it does include is a lot of very lengthy documentation on what you should do, complete with fancy graphics saying "THIS IS HOW YOU MUST DO IT OR YOU'RE DOING IT ALL WRONG" -- but they don't actually support it! you must do it all yourself.
Why oh why would they tell you how you must do things if they don't provide the tools to make it possible? fucking google.
You might decide it's a grand idea to interject at this moment and say: "there are plenty of tools out there that allow you to do this!" And sure, you'd be right. however -- and i think this might just barely might be worth mentioning -- THEY REALLY FUCKING SUCK. Hey, let's look at some of the classes! So clear and semantic! This one was nice and simple: "xs4" -- but wtf does that mean? okay, it apparently means 4 columns as they'd appear on an extra-small layout. How does that work on a large layout? Who knows. Now, how about "c12"? okay, maybe 12 columns? but how does that display on a phone with a layout small enough to only have 4 columns? i don't know! they don't know! nobody knows!
oh oh oh oh. and my particular favorite: "mdc-layout-grid__cell mdc-layout-grid__cell--align-bottom" WHAT. THE. FUCK. I'm not writing a goddamn novel! and that one claims to be from google itself. either they've gone insane or someone's totally lying. either way, fuck them.
SO. TERRIBLENESS ASIDE.
Instead of using Material Design v0.fuckoff that lacks any semblance of a grid layout, I figure I'll try v1.0 alpha that actually has one supported natively. It's new and supports everything I need. There's no way this can't be a good idea.
The problem is, while it's out and basically usable, none of the React component libraries fucking work with it. Redux-Form doesn't work with it either because it doesn't understand nested compound controls, and hacking it to work at least triples the boilerplate. So, instead, I have to use some other person's "hey, it's shitty but it works for me" alpha version of someone else's project that works as a wrapper on top of Redux-Form that makes all of this work. yeah, you totally followed that. Kind of like a second-cousin-twice-removed sort of project adding in the necessary features and support all the way down. and ofc it doesn't quite work. because why would things ever be easy?
like seriously, come on.
What i'm trying to do isn't even that bloody hard.
Do I really have to use bootstrap instead?
fuck that.
then again, fuck this significantly more.
UGH.18 -
I had been a "hobby" programmer for well over a decade, with my primary career being in repair or a "technician". I had taught myself dozens of languages because it was fun, but never really accomplished much.
I was laid off from my job as a technician and I found myself listless and without purpose. I started doing development again on random things to pass the time and I ended up volunteering as a developer for a game I had played for years.
At the same time I had an uncle who encouraged me to consider software as a career. These two things gave me the confidence to apply for a local software job I saw on Indeed.
They called me pretty quickly, and I was brutally honest. "No, I don't have a degree. I'm self-taught. I have no professional experience really."
I got a proficiency exam anyway and I took it - apparently doing well enough on it that the CTO called me a week later. We had a long talk and I finally asked him why he called me.
He told me that while a degree means something, the passion to learn this job means more to him. It was a month before I was offered the position, and I graciously accepted it.
We had a call about my compensation before starting. It was rather low, but we both agreed that my skill level was quite an unknown.
A year later and my pay was bumped up a sizable amount. My skills are defined now and growing rapidly as new challenges are sent my way. I went from a naive hobbyist to a professional in a short period of time.
I realized that I was always a professional. I had a desire to learn and a desire to do things the right way. I may not have known what to call things. I didn't know some of the design patterns I had used over the years were standards that had names and meaning.
I basically work two jobs now. My full-time job and also on the game that helped propel my career forward and gave me the confidence to reach for it.
As for my hobby? I turned to electronics and the maker community. It's a nice marriage with my programming skill set, and I never knew how rewarding a blinking LED would be. :)4 -
POSTMORTEM
"4096 bit ~ 96 hours is what he said.
IDK why, but when he took the challenge, he posted that it'd take 36 hours"
As @cbsa wrote, and nitwhiz wrote "but the statement was that op's i3 did it in 11 hours. So there must be a result already, which can be verified?"
I added time because I was in the middle of a port involving ArbFloat so I could get arbitrary precision. I had a crude desmos graph doing projections on what I'd already factored in order to get an idea of how long it'd take to do larger
bit lengths
@p100sch speculated on the walked back time, and overstating the rig capabilities. Instead I spent a lot of time trying to get it 'just-so'.
Worse, because I had to resort to "Decimal" in python (and am currently experimenting with the same in Julia), both of which are immutable types, the GC was taking > 25% of the cpu time.
Performancewise, the numbers I cited in the actual thread, as of this time:
largest product factored was 32bit, 1855526741 * 2163967087, took 1116.111s in python.
Julia build used a slightly different method, & managed to factor a 27 bit number, 103147223 * 88789957 in 20.9s,
but this wasn't typical.
What surprised me was the variability. One bit length could take 100s or a couple thousand seconds even, and a product that was 1-2 bits longer could return a result in under a minute, sometimes in seconds.
This started cropping up, ironically, right after I posted the thread, whats a man to do?
So I started trying a bunch of things, some of which worked. Shameless as I am, I accepted the challenge. Things weren't perfect but it was going well enough. At that point I hadn't slept in 30~ hours so when I thought I had it I let it run and went to bed. 5 AM comes, I check the program. Still calculating, and way overshot. Fuuuuuuccc...
So here we are now and it's say to safe the worlds not gonna burn if I explain it seeing as it doesn't work, or at least only some of the time.
Others people, much smarter than me, mentioned it may be a means of finding more secure pairs, and maybe so, I'm not familiar enough to know.
For everyone that followed, commented, those who contributed, even the doubters who kept a sanity check on this without whom this would have been an even bigger embarassement, and the people with their pins and tactical dots, thanks.
So here it is.
A few assumptions first.
Assuming p = the product,
a = some prime,
b = another prime,
and r = a/b (where a is smaller than b)
w = 1/sqrt(p)
(also experimented with w = 1/sqrt(p)*2 but I kept overshooting my a very small margin)
x = a/p
y = b/p
1. for every two numbers, there is a ratio (r) that you can search for among the decimals, starting at 1.0, counting down. You can use this to find the original factors e.x. p*r=n, p/n=m (assuming the product has only two factors), instead of having to do a sieve.
2. You don't need the first number you find to be the precise value of a factor (we're doing floating point math), a large subset of decimal values for the value of a or b will naturally 'fall' into the value of a (or b) + some fractional number, which is lost. Some of you will object, "But if thats wrong, your result will be wrong!" but hear me out.
3. You round for the first factor 'found', and from there, you take the result and do p/a to get b. If 'a' is actually a factor of p, then mod(b, 1) == 0, and then naturally, a*b SHOULD equal p.
If not, you throw out both numbers, rinse and repeat.
Now I knew this this could be faster. Realized the finer the representation, the less important the fractional digits further right in the number were, it was just a matter of how much precision I could AFFORD to lose and still get an accurate result for r*p=a.
Fast forward, lot of experimentation, was hitting a lot of worst case time complexities, where the most significant digits had a bunch of zeroes in front of them so starting at 1.0 was a no go in many situations. Started looking and realized
I didn't NEED the ratio of a/b, I just needed the ratio of a to p.
Intuitively it made sense, but starting at 1.0 was blowing up the calculation time, and this made it so much worse.
I realized if I could start at r=1/sqrt(p) instead, and that because of certain properties, the fractional result of this, r, would ALWAYS be 1. close to one of the factors fractional value of n/p, and 2. it looked like it was guaranteed that r=1/sqrt(p) would ALWAYS be less than at least one of the primes, putting a bound on worst case.
The final result in executable pseudo code (python lol) looks something like the above variables plus
while w >= 0.0:
if (p / round(w*p)) % 1 == 0:
x = round(w*p)
y = p / round(w*p)
if x*y == p:
print("factors found!")
print(x)
print(y)
break
w = w + i
Still working but if anyone sees obvious problems I'd LOVE to hear about it.36 -
Story Time. Inspired by another rant.
Context: I'm In a coding camp years ago, it's the first day.
We're doing introductions (name, why you're here, etc). Always fun to do that....
The folks running the camp are excited to introduce a student who also at one point was a teacher for some sort of girl power coding organization. So this raises questions, why would someone who teaches be a student in this camp?? And even a bigger question is raised when this person introduces themselves for a long time, and as an aside puts down the girls she taught in this program they taught ... like who does that?
horribleLady does that ...
A few hours later horribleLady asks her 12th question of the day (we haven't even started talking about code). Before she asks her question actually says:
“I know, I’m going to be a problem.” -laugh-
🚨🚨🚨 ヽ ( ꒪д꒪ )ノ 🚨🚨🚨
Fast forward to group projects and she's this sort of emotional storm, tears, and a sort of angry shouting that isn't angry enough for some folks to say she's yelling at people ... but she is. Fortunately I'm not in the first group project with her, but because we're all working in the same room we all get to see the train-wreck unfold.
The moment she doesn't get something (all the time) everyone in her group has to STOP and figure out what they're going to do about it, then again STOP because she thinks someone is doing something different than what was planned. STOP STOP STOP STOP STOP.
In a way, everything had to go through her, she didn’t declare it that way, she didn't present herself as any sort of authority, she would just stop everyone the moment she thought anything was wrong, or she didn't understand it (all the time), and either inject herself or demand help from her team. Everyone around her had to be drawn into whatever problem she had. It was horrific to watch.
Private slack channels would light up like crazy with "OMG", "WTF", "I DON'T UNDERSTAND HER", "FUCK" and "SHE"S HOW OLD!?!?"
So finally it happens to me and guyWhoDoesPotConstantly (capable guy, nice dude, pretty sure he was high all the time).... we're teamed up to work with horribleLady. Thankfully for just one day. I accept this because I figure one day with her is enough penance to try to avoid any further contact later on.
My approach is straight stone face. I refuse to respond to her sulking, or sighing, or general emotional bait she throws out constantly. I saw other students unwittingly take her bait (they were trying to be helpful) only to have her crap all over them with her frustrations or whatever it is is going on.
Still we're teamed up with her her for the day so I'm going to be a good team member and I explain what guyWhoDoesPotConstantly and I are doing / trying.... and so forth. But she's just too upset that she's even assigned to work with us, and tells me I'm just not doing it right, and her explanations about how we're not doing it right makes less than 0 sense. I ask her to show me what she means but she won't type anything on her keyboard, she'd just talk about how she’s thinking conceptually in circles and sulk about it rather than listen. I don't respond to any of her shit and say "I'm going to try this." and guyWhoDoesPotConstantly and I just keep working.
She would later call the instructor over and complain to him for a while and say: "These guys just get it, they're not helping me, I want to be assigned to another group." She doesn't get her way so she just moves to another table in front of us.
After that day I figured it was a great time to ask .... to NEVER be assigned to anything with her because "If I told her what I thought it would just get a lot worse." I got my way ;)
Other students weren't so lucky. Tears, sulking, her special way of yelling at people that somehow never got her in trouble (she should have been kicked out of the program) just kept going on. She refused to even present one group project she deemed not good enough despite the fact that she contributed nothing functional to the project that the TA's didn't write for her...
Amidst the stories she would tell to students was one of how she sued her totally sexist/racist/evil former employer. She never said what came of it, but that combined with her inability to do things reminded me of a rant I read on here.
I sometimes fear being hired someplace and walking in my first day to find I'm assigned to work with .... horribleLady. In this scenario she managed to get hired and they're too afraid to fire her so they assign the new guy to work with horribleLady...
I've no idea what happened to her after the camp.
(I rewrote this rant a few times because it kept circling back to a larger story about the coding camp I wrote about a few years ago, so if this seemed sort of broken up and wonky, yeah it was / is / yeah)4 -
I just want to add my 2 Cents to the all this GDPR chaos. Because I feel lots of you are missing the point here.
When reading here about GDPR I hear all kinds of fair statements of how flawed it is and how it's mainly hurting the small companies etc etc.
I agree, at this state GDPR might actually be doing more harm than good.
However, I don't think that is what it is about. It's about going in the right direction. If you read/look over the course of history we've had several technological revolutions. Industrial, renaissance. They all start the same:
"This technology is going to change everything, it's going to solve all our problems!" It's something holy. Something that shouldn't be touched or regulated, only embraced.
But as we all know it wasn't all that pretty.
Industrial revolution was hard super underpaid, dirty work. Children had to work too. People were getting sick. Lots of alcoholism, depression.
And what made the factories start taking better care of their employees? Regulation.
Once fines start to come, companies will have to adapt.
We have to learn and understand that these systems like government, company, capitalism. They're built for reasons. They all exist for reasons. And only when it is in balance, things will flourish.
So I encourage you all to stay as critical as you are, but to give it a chance. To have a bit of faith.
It might just turn into something worthwhile!
Thanks for reading!:)4 -
Ticket: Add <feature> to <thing>. It works in <other things> so just copy it over. Easy.
Thing: tangled, over-complicated mess.
Feature: tangled and broken, and winds much too deep to refactor. Gets an almost-right answer by doing lots of things that shouldn't work but somehow manage to.
I write a quick patch that avoids the decent into madness and duplicates the broken behavior in a simple way for consistency and ease of fixing later. I inform my boss of my findings and push the code.
He gets angry and mildly chews me out for it. During the code review, he calls my patch naive, and says the original feature is obviously not broken or convoluted. During the course of proving me wrong, he has trouble following it, and eventually finds out that it really is broken -- and refuses to admit i was right about any of it. I'm still in trouble for taking too long, doing it naively, and not doing it correctly.
He schedules a meeting with product to see if we should do it correctly. He tells product to say no. Product says no. He then tells me to duplicate the broken behavior. ... which I already did.
At this point I'm in trouble for:
1) Taking too long copying a simple feature over.
2) Showing said feature is not simple, but convoluted and broken.
3) Reimplementing the broken feature in a simpler way.
4) Not making my new implementation correct despite it not working anywhere else, and despite how that would be inconsistent.
Did everything right, still in the wrong.
Also, they decided I'm not allowed to fix the original, that it should stay broken, and that I should make sure it's broken here, too.
You just have to admire the sound reasoning and mutual respect on display. Best in class.19 -
I built a feature. I asked questions for days. Nobody helped. I built it anyway, and while I'm not sure it's quite right, it works.
During a code review, I asked for clarification on who the fuck it's for. Simple fucking question. Didn't get an answer. I did get the same crap response twice, though. It's great because it both doesn't answer my question and makes things worse.
Let's refer to this as "branding." Here we go!
------
Root: "Should this be changed to blue? I'm not sure who the end-user is."
TC: "should be purple, then call it something more convenient" (...what?)
Root: "Better phrasing: if we use the feature, it should match our colors and be blue. If customers use it, it should match their colors and be red. It shouldn't be both. I looked through everything again, and i'm convinced that it's only for us, so it should be blue so it matches everything."
TC: "this should be purple, and then call it something [sic] red" (...what!? also: lolcopypaste)
------
But like, that's wrong in every single way. It's internal, not external. Doing both makes it confusing. Doing both and calling it external is fucking stupid. Did she even read the PR? or any of my questions? ugh.
I swear, it's like arguing with a boulder and expecting it to listen. An ugly, oversized boulder that comically resembles Jabba the Hutt. No joke.
Whatever, it can be purple. Later, if someone complains that it's confusing, I'll just link them to the damned PR. Then again, almost everything here is confusing AF, so I doubt anyone will actually notice.
Screw this place. So glad I'm on my way out.rant thundercunt the ugly boulder responds jabba the hutt root asks questions root has a code review6 -
WEB FUCKING THREE
Ok, some of this shit is interesting, let's get that out of the way:
Crypto - great for doing illegal things, great for financial speculation, interesting mathematically. But as likely to replace actual currency as I am to replace the fucking Queen.
NFT - should be written on the headstone of humanity. Entirely fucking useless, planet-roasting bro-wank dressed up as a revolution in...pretending to own shit. The only difference between a Bored Ape owner and my nephew pointing at a castle and insisting that it's his, is that he isn't thousands and thousands of pounds out of pocket by doing so.
Metaverse - AR and VR have been around before this dogshit rebrand, and they'll outlive it.
No, it's not that. It's that we now have a new species of parasite - the "Web3/Metaverse" LinkedIn guru insisting that this shit is even needed, let alone the next big thing.
Web 2.0 was a stupid fucking term alright, but it did represent a new generation of technologies that were badly needed, and adopted by the entire community. Web3 is a bunch of shit that some cunts think they can get rich off, so insist that we need. I wouldn't even give a fuck but I've already spent hours of my life explaining to clients and peers that this is UTTER FUCKING BOLLOCKS, there's no need for a blockchain in your app, there's no need for a blockchain in virtually anything. Yeah if you want some fucking 3d in your app or your page I'm your man, but if you keep saying 'metaverse' I'm going to fill it with easter eggs.
None of this shit was needed before and none of it is needed after. Have you looked at web3 games? It's Steve Buscemi asking 'how do you do, fellow computer games?', it's a fucking gambling app pretending to be something a human would do. Clash of Clans and Candy Crush already cornered the market for that type of fucking mug, right now you're making the Candy Crush business model look responsible and efficient. You CUNTS.47 -
i am BEYOND pissed at google.
as some of you know, i recently got android studio to run on a chromebook (you read that right), but it being a chromebook and google being a protective fucktard of their crappy operating system, i had to boot into bios every time i started it.
when i was with some friends, i started up the chromebook, and left, after telling my friends how to boot the chromebook.
ten seconds and literally one press of the esc button later, he broke the entire thing.
but that's not what that rant was about, i honestly knew it would happen eventually (although, this wasn't the best time).
so now this screen pops up.
"chrome os is damaged or missing, please insert a usb recovery drive" or something like that.
well, i'll create one. simple enough.
no wait, this is google, just your average 750 billion dollar company who cares more about responsive design then a product actually responding.
i started to create the recovery usb. of course, chrome developers thought it would be a good idea to convert the old, working fine, windows executable usb recoverer, and replace with with a fucking chrome extension.
i truly hope someone got fired.
so, after doing everything fine with the instructions, it got to the part where it wrote the os image to the usb. the writing stayed at 0%.
now this was a disk thing, writing os's and shit, so i didn't want to fuck it up. after waiting ten minutes, i pressed 'cancel.'
i tried again many times, looked things up, and frantically googled the error. i even tried the same search queries on bing, yahoo, duckduckgo and ecosia because i had the feeling google secretly had tracked me over the past 7 years and decided to not help me after all the times i said google was a fucker or something similar.
google is a fucker.
after that, i decided to fuck with it, even if it formats my fucking c drive.
i got to the same point where the writing got stuck at 0% and proceeded to fuck. i start spamming random keys, and guess what?
after i press enter, it started.
what the fuck google?
1000s of people read the article on how to make the recovery drive. why not tell them to press the goddamn enter key?
i swear there are hundreds of other people in my same situation. and all they have to do is press one fucking key???
maybe tell those people who tried to fix the shit product you sold them.
fuck you google.7 -
Computer Science is a mysterious world of three kinds of devs, irrespective of what background/profile/language they had/worked in.
The ones at the top, who keep doing crazy shit in big companies or open-source and keep adding material to the unstoppable code flowing. These constitute 5% of the dev community.
The ones at the bottom are the newbies who try to become masters/ninjas of programming by following the shit on the internet but don't understand logic or how things work. This is like 75% of dev community on the web. If you don't agree to that percentage, you don't know the number of students and non-CS people trying to code. I can see hundreds of classmates/colleagues with no understanding of basic Javascript concepts but introducing themselves as a software developer and ruler of the Web.
The remaining 15% in the middle are the "experienced" fellows who keep building shit to get to the top 5%. They work on enterprise/commercial software until the next upgrade and while the wallets keep getting fatter, they don't actually contribute to the community.
This is the part where I want people to understand the power of a dev.
What sets apart programmers/devs from other engineers:
while everyone else is busy solving the current issues/requirements of the world, we devs are the ones who 'build'.
With a right motive, a developer can solve in-numerous problems of the society, be it education, poverty or unemployment.
An experiment by Lee to put data on the web created a world of unforeseeable opportunities.
Hope to see more of Musks and less of Zuckerbergs in the future.9 -
I've been working exclusively from home for over 2 years now. I've been seeing several posts from people talking about adjusting to working from home, so I figured I would compile a list of tips I've learned over the years to help make the adjustment easier for some people.
1) Limit as many distractions as possible. WFH makes it much easier to get distracted. If you have roommates/family members at home, ask them politely to leave you alone while you're working. Make sure the TV is turned off, put your phone on silent, etc.
2) Take regular breaks. I find it easier to accidentally go hours without taking a real break from work. Try working in half hour intervals, and then taking 5-10 minute breaks. Read an article, watch a youtube video, grab some coffee/tea, etc.
3) When you eat lunch, eat it away from your computer. I often find myself eating lunch trying to wrap up fixing a bug, which makes it feel like I never really "took a lunch." Lately I've been trying to step away and do something else completely unrelated to work.
4) Get ready for work like you normally would. It's very easy to wake up, throw on your favorite pair of sweats and sit at the computer with messy hair half awake "ready" to start the day. Instead try doing your normal morning routine before sitting at your computer. It will help your mind and body go into "it's time to work" mode.
5) Keep your work area clean. I find it very difficult to work when my workspace is cluttered. Studies have shown working in a messy place tend to make us less efficient.
6) Keep your work area work related. Try to only have the things you need for work in your workspace. If you're working from your personal computer this can be difficult. I always end up with camera/music equipment left over from the previous night's photo editing/jam sessions. So try to clean off your desk when you're done for the night so it's ready for work in the morning.
7) Prepare for meetings. I have alarms set 10 minutes in advance so I can go from programming mode to meeting mode. During this time I'll go to the bathroom, grab a snack, water, mute all my email notifications, close any non essential programs, get my code ready if I need to present it.
Stuff is hard & stressful right now, but hopefully these tips will make it a bit easier. If anyone else has any good tips please share them.5 -
1 "Even though we divide our developers in cells (actual word used), our company's hierarchy is very horizontal."
2 "Sometimes we have to stay until later to get the job done"
3 "Covid has taught us that we shouldn't think of life and work as two separate things. They're one and the same"
4 "You can rack up points in the company to cash in for things like headphones!"
5 "We use this house as an office for our meetings. It's a big house."
----
1. That tells me you have no structure
2. Probably because you have no structure and you can't plan things out right.
3. you havin' a laugh? I'm all for not being a dick and socializing with colleagues every now and then but my free time is my own.
4. I'd rather you gave me more money.
5. Offices are a bit of a scam, but if you actually use a house as an office for a company that is supposed to have a presence in 3 different countries it makes me question how good you're doing at the moment.
---
I think I'm gonna pass if they don't ghost me.10 -
The last 5 months have been tough.... My boss ( who was a close friend) quit and I become interim department head... Trying to run a team who didn't seem happy I'd taken the reigns.
At the same time my wife's ongoing battle with her anxiety had gotten worse and she really needed my help with everything possible at home..
In March I was confirmed as the HoD but I was still doing 3 to 4 days a week on client delivery, trying to support all presales activities, manage a team of 10 people, travel for work and support my family....😩
It really got to me and I was close to breaking... The worry of not replying to an email ASAP no matter what time of day would eat me up, working late every night... It got too much and I was running on fumes with my weekends just me completely wiped out and useless to the family. 😓
.....But.....
I had a escape last weekend to a 🍻 beer 🍻 festival with friends that I was considering not going too and just losing the money but the wife made me go...
And it broke me even more... So much that its somehow put the pieces back in the right order in my brain and snapped me out of my major rut!
Somehow, sitting with friends, making stupid jokes, drinking way too much and blocking out all the work crap gave my brain the hard reset it needed. 🤟
This week I've come back a different person ( wife's words) work is a breeze, exciting and encouraging.... 👊
I can't get enough of playing silly games with my kids all night
And couldn't feel any more positive about things if I tried.... Set that spark back for my wife too! 😏💏
So.... After that long rant 👀
Tl;Dr - work and life got too much... Close to giving up... Too much beer with good company gave me a hard reset and I feel like a new person.... 👍
Plus the team is now loving the new direction and strategy too 👔
Who says drinking is bad for you? 😂🍻11 -
“Don’t learn multiple languages at the same time”
Ignored that. Suddently I understood why he said that. Mixed both languages. In holiday rechecked it and it was ok.
Sometimes mistakes can lead to good things. After relearning I understood it much better.
“Don’t learn things by head” was another one. Because that’s useless. If you want to learn a language, try to understand it.
I fully agree with that. I started that way too learning what x did what y did, ... But after a few I found out this was inutile. Since then, I only have problems with Git
Another one. At release of Swift, my code was written in Obj-C. But I would like to adopt Swift. This was in my first year of iOS development, if I can even call it development. I used these things called “Converters”. But 3/4 was wrong and caused bugs. But the Issues in swift could handle that for me. After some time one told me “Stop doing that. Try to write it yourself.”
One of the last ones: “Try to contribute to open source software, instead of creating your own version of it. You won’t reinvent the wheel right? This could also be usefull for other users.”
Next: “If something doesn’t work the first time, don’t give up. Create Backups” As I did that multiple times and simply deleted the source files. By once I had a problem no iOS project worked. Didn’t found why. I was about to delete my Mac. Because of Apple’s WWDR certificate. Since then I started Git. Git is a new way of living.
Reaching the end: “We are developers. Not designers. We can’t do both. If a client asks for another design because they don’t like the current one tell them to hire one” - Remebers me one of my previous rants about the PDF “design”
Last one: “Clients suck. They will always complain. They need a new function. They don’t need that... And after that they wont bill ya for that. Because they think it’s no work.”
Sorry, forgot this one: “Always add backdoors. Many times clients wont pay and resell it or reuse it. With backdoors you can prohibit that.”
I think these are all things I loved they said to me. Probably forgot some. -
writing library code is hard.
there are sooo many details that go into writing good libraries:
designing intuitive and powerful apis
deciding good api option defaults, disallowing or warning for illegal operations
knowing when to throw, knowing when to warn/log
handling edge cases
having good code coverage with tests that doesn't suck shit, while ensuring thry don't take a hundred years to run
making the code easy to read, to maintain, robust
and also not vulnerable, which is probably the most overlooked quality.
"too many classes, too little classes"
the functions do too much it's hard to follow them
or the functions are so well abstracted, that every function has 1 line of code, resulting in code that is even harder to understand or debug (have fun drowning in those immense stack traces)
don't forget to be disciplined about the documentation.
most of these things are
deeply affected by the ecosystem, the tools of the language you're writing this in:
like 5 years ago I hated coding in nodejs, because I didn't know about linters, and now we have tools like eslint or babel, so it's more passable now
but now dealing with webpack/babel configs and plugins can literally obliterate your asshole.
some languages don't even have a stable line by line debugger (hard pass for me)
then there's also the several phases of the project:
you first conceive the idea, the api, and try to implement it, write some md's of usage examples.
as you do that, you iterate on the api, you notice that it could better, so you redesign it. once, twice, thrice.
so at that point you're spending days, weeks on this side project, and your boss is like "what the fuck are you doing right now?"
then, you reach fuckinnnnng 0.1.0, with a "frozen" api, put it on github with a shitton of badges like the badge whore you are.
then you drop it on forums, and slack communities and irc, and what do you get?
half of the community wants to ban you for doing self promotion
the other half thinks either
a) your library api is shitty
b) has no real need for it
c) "why reinvent the wheel bruh"
that's one scenario,
the other scenario is the project starts to get traction.
people start to star it and shit.
but now you have one peoblem you didn't have before: humans.
all sorts of shit:
people treating you like shit as if they were premium users.
people posting majestically written issues with titles like "people help, me no work, here" with bodies like "HAAAAAAAAAALP".
and if you have the blessing to work in the current js ecosystem, issues like "this doesn't work with esm, unpkg, cdnjs, babel, webpack, parcel, buble, A BROWSER".
with some occasional lunatic complaining about IE 4 having a very weird, obscure bug.
not the best prospect either.3 -
Like most people I needed some extra cash during uni, so I proceeded to learn CSS + Photoshop (yeah, I know). Followed by PHP and WordPress.
It can be a very shitty platform until you realize that you can stop combining plug-ins from all over the place with dubious code quality and roll your own.
Anyhow I kept at it until I was able to join a niche company doing a quite popular caching plug-in for WP (yeah, W3 Total) when I suddenly became *very* interested in anything and everything performance.
This landed me a very cozy consulting gig in the Nordics - they were using WP for an elephant-traffic website and had run into a myriad of perf issues.
Fixing them and breaking the monolith awarded me with skills in nodejs, linux, asynchronous caching among others.
I was soon in charge with managing the dev boxes for the entire team, and when the main operations dude left, I was promoted to owning the entire platform. (!) Tinkering with Linux for most of my life really came in handy here. (remember Debian potato?)
Used saltstack + aws cloudformation to achieve full parity between all environments. Learned myself some python and all various tips and tricks which in the end amounted to 90% reduction in time-to-first-byte and considerable cost savings.
By the end of the 2yr contract I had turned myself into a fullstack systems engineer and never looked back.
Lawyers not getting along resulted in us having to abandon NewRelic, so I got to learn and deploy the ELK stack as a homegrown replacement, which was super-fun.
Now I work in the engineering effectiveness department of a Swedish fintech unicorn where all languages under the Sun are an option (tho we prefer Python), so the tech stack is unlimited. Infinite tools and technologies, but with strong governing principles and with performance always in mind so as to pick the right tool for the job.
It's like that childhood feeling when you've just dumped a ton of Lego on the floor and are about to build something massive.
I guess the morale here is however disappointed you feel by your current stack - don't. Always strive to make things better, faster, more decoupled, easier to test, etc. and always challenge yourself to go outside the comfort zone.5 -
cw: I need a server to put my node backend
me: sure, I'll run a docker container for you
cw: nice, I've never worked with docker but I learn quickly, I'm already reading the Docker file docs
me: no wait, you don't need to learn anything, you'll be inside the container, so you only need an ssh connection and that's it
cw: this Dockerfile stuff is really complicated, it'll take me a while, but it's ok you don't have to worry, I like learning new things
me: you won't need that, just imagine it's a cloud server with Ubuntu installed, you only have to use it, I'll put node, git and ssh there for you
cw: ok got it, I'll have to learn the commands to run the docker, I'm on windows but I can use PowerShell and stuff I'll figure it out
me: ...
cw: ssh is a linux command right? does it have a push or publish option? how do you upload files there
me: ...you can use a ftp client but you'll need ssh to run the node server
cw: ok, I'm almost done with the Dockerfile, I only need to add git and nodejs, I'm starting to understand this thing...
me thinking: yeah keep doing that, you're such a crack, such a quick learner...
This son of a bitch is either a retard or is doing it on purpose and laughing at me the whole time, making my life so miserable, but I'm about to go insane with this dude, I'm proud of how I've been able to control myself, BUT ONE OF THESE DAYS I'LL LOSE MY COOL AND FORCE THIS MOTHERFUCKER TO DRINK A BIG POT OF BOILING, SALTY AND STINKING VOMIT WITH A SIDE OF STEAMING DIARRHEAL GREEN DOG SHIT WITH WHITE CHOCOLATE CHIPS WHILE I PUT MY OLD CRT MONITOR TO GOOD USE BY BEATING HIS FUCKING HEAD WITH IT!!!3 -
You know, I am getting really fucking irate posting them rants about how shitty my job is.
I'm more than fucking competant, but this company is turning me into a blithering, raging, frothing maniac.
I am sitting doing my devOps at the moment. On top of that I am the network admin, the sys admin, the sec admin, the fucking fuck admin (you get the point) and now I am being told to go out and work in the field because "The technician is busy with calls, and doesn't have time". These calls are ALL FUCKING PRINTER CALLS. SET UP USERS TO PRINT AND FUCKING SCAN.
I am not being a shithead by saying no. I have spent the last year or so doing favours for these bastards, I don't get any compensation in any form for it, and it is just making my life hell. The reason I went into devOps is so that I don't have to fucking deal with shit like this. I spent years in the field, and I fucking hated it. I was good at what I did, but I fucking hated it.
Now I am back there. They earn more than i do, those printer techs, but I am doing their fucking work for them. I have even made them simple little fucking scripts so that 90% of their work is done in two clicks.
Fucksakes. Now my motherfucking right shift key doesn't want to operate properly. Been using this keyboard for about 6 years now, and now it decides to fuck out. Fuck.
As standing, I am fucking sick and fucking tired. I am drinking energy drinks and mass amounts of coffee just to stay functional (because I sit up until 12AM trying to get through all my work - everyday of the week). Reported to tech director, doesnt give a single fuck. "Stick around, things will get better".
Yeah, fuck you.
Seriously thinking about freelancing.
Don't know if it pays well though.3 -
Saw some cheapie little radio in the dollar store, bought 2 of them for reverse engineering. Powered it from my lab bench power supply as usual, and tested whether it actually works before doing anything else.. then I noticed that the tunes were actually quite catchy, so I just ended up listening.
Then I started to notice that the audio wire I was using (the one I've spent a couple of days building earlier) had intermittent audio issues where the right driver would drop out when the wire was held in certain positions. Oscilloscope probing showed that there was some sort of disconnect, with only the 50Hz noise from the power lines showing up. Opened up the connector and noticed that the ground wire had detached. An 28AWG electrical wire that was inside a jack that was meant for stress relief! Yet the copper strands must've detached one by one regardless. What do I need then, huh?! 18AWG which wouldn't even fit on the connector, only to see the strands in that eventually detach as well?! You know what, let's go fancy.. 1AWG which is meant for extremely high current applications!!
At that point I was literally shouting "FUCK!!! Why does this shit always happen to me?!! ONE FUCKING PROJECT THAT FINISHED SUCCESSFULLY, YET STILL BROKE?!!!! WHY!!!!!!"
Clearly I need some fresh air to cool down. On my way to the fast food restaurant to get some Bicky burgers. More shit, humans. One stupid driver who slowed down on me, which of all things I hate the most. GO FASTER ALREADY YOU SLOWFUCK, AND GET THE FUCK OUT OF MY SIGHT!!! Next a pedestrian with a dog.. I swear motherfucker, if that dog comes anywhere near me I'll personally turn it into fucking fricassee.
Ah and then comes the killer.. in this stupid fucking summer, all that's needed to fix any issue is a fucking stupid DESPACITO, right?! More like DeSPASTICo!! FUCK!!!!
.. Back home, rather tired. So essentially a wire that was specifically built to have high endurance broke on me. Back to Bluetooth I guess.rant fuck the planet fuck humanity fuck everything fuck despacito fuck despastico fuck life fuck me fuck humans fuck the world fuck this shit fuck society2 -
Me: Right, its Monday, time for a fresh start. Things have been unbearable, but i've nowhere else to go just yet. I gotta just dig deep, ignore everything bad and just get it done, It's all about positivity right? Lets just ignore the little things and keep moving.
*My morning so far, 2 hours in*
Remote dev: (timezone 5 hours earlier than me) Hey so whats the plan for this quarter?
Me: ... I posted a big detailed plan in the group chat on Friday night so you wouldn't be delayed ... but anyway, lets just move on. I need you to work on A, B and C. A is just copying what Android has already done, for B one of the backend guys working next to you is doing this, he'll be able to help you. C is all documented in the ticket.
Remote dev: cool thanks.
Local dev: So I was just chatting with remote dev ... yeah he told me he has no idea what he's suppose to do.
Me: ..... Ok i'll book a video call with him in the morning. Can't do it right now.
==========
Remote dev: Hey i'm helping the BE team do some testing. I found a bug in Android. Homepage says theres no trips. But Offers screen says there is.
Me: Ok so just to confirm, The "available" offers screen has offers to accept, but the white notification on the homepage saying "You have X offers to accept" is not showing up?
Remote dev: Correct!
*debugging for 5 mins*
Remote dev: actually no, the "accepted" offers tab has offers, but the homepage says there are no upcoming offers to work on.
Me: ..... ok, thats very different ... but sure, let me have a look.
Me: Right so the BE are ... again ... sending down expired offers. Looks like the accepted tab isn't catching it and the homepage is.
Remote dev: Right i'll open a ticket for Android.
Me: ... and BE team.
Remote dev: why?
Me: ... because they once again have timezone issues. This keeps causing issues in random places. BE need to fix this everywhere.
Remote dev: right, i'll chat to them and see if they can fix it.
==========
Product: So this ticket xxxxx is clear right?
Me: eh, kind of, so you want us to add feature X to user type A?
Product: correct.
Me: right but I don't see anywhere talking about the time it will take to build the screen for feature X
Product: What do you mean the screen?
Me: ... well, feature X is only accessible on screen Y ... we would have to change screen Y to support user type A ... you know ... so they can ... use the feature
Product: .... hhhhmmm .... i suppose you are right. Well we can't just add screen Y, we'll have to add W and Z, it won't make sense without them.
Me: ... ok sure, but our estimates put us over for this quarter. I don't think we can just add in 3 screens.
Product: No this is a must have.
Me: Ok so we'll have to drop something else.
Product: hhhmmm, don't think we can ... let me get back to you.
==========
Backend team invited me to a meeting at 6am my time on Friday.
==========
... 2 hours into Monday ... there must be vodka around here somewhere -
Internship Rant #2
I can't believe I'm hating my job right now. It sucks because I have never coded in javascript and they expect me to code in javascript. I don't even know what I am doing, but I'm trying my best. I kinda have something already, but the worst part of it is that my boss comes in once in a while and sits beside me looking at my screen and of course, he expects me to tell him what I have been doing and what progress I have done. It's stressful cause I specifically told him that I have never coded in JavaScript and he still thinks I can get things done in a few days.
Perks of new job:
- I can take a bath there whenever I want
- gr8 bathroom 11/10
- gr8 heater, no need to have my hands shaking all the time
- workspace is nice and everyone has an extension so my phone and laptop are always on full charge
- flexible work schedule
- easy access to company files hehehe including credentials
Anyways, so I have to deal with this for three months.16 -
So just finished the presentation for my internship project. I'm free now!(and can sleep normal times too) But I have a few things I need to get off my mind. Dunno if it'll seem a bit stupid to some of you..but yeahh....
Anyway, during my demo yesterday
Lecturer: So this project of yours uses some open-source stuff?
Me: Yeah.
L: And if the company wants to use if for commercialization they need to pay for the license?
M: Thats basically it. Yes.
L: Well, see..thats the problem with your project. You need to think of all this things. If there's no other options then just code the whole shit yourself. Or maybe discuss with the management on this.
Yeah...see, I doubt the management here cares about us anyway. Oh, you're working on your intern stuff. Not important. Just resize the pictures in my powerpoint will you? Oh and you want to use the company computers for your project? No can do..confidentiality stuff. But make sure the thing will work on our system anyway when you're done with it. And even if you use our computers, they restart everytime you open Word anyway..hahaha. You want access to this thing so you can learn a bit on our company's work. Sorry but no. EVERYTHING is confidential so you can't access it since you're interns, eventhough our company is the one that took you inanyway.
Manager: Oh, the thing you're making is pretty cool. You know,all of you can just give your systems to us later.
Friend: Yeah well, maybe we can ask the company for payment? Haha.
Manager: Hahaha well the company can just take your systems for free since you're doing it on our working hours.
Fuck. You. When we ask to do our stuff you said noooo its the company hours. Do our work. And do your stuff back at home or something. Oh, but then we'll drag you around the state to see the clients, and you'll reach home at 8-9pm or something, but of course you're not tired right? So just code then. Or you're not going anywhere today? You're still not allowed to code here eventhough you don't have any work though...so just sit there and be quiet. Or maybe shred my papers for me. Fuck your working hours.
Lecturer: And well, thats the problem with some students *looks pointedly at me* they want to go to non-technical companies so that they can have it easy. Your friends who go to other companies will learn a lot more.
Do you think I fucking want to be here??? This is the only company I got so fuck that. Even when I get different offers and apply to change companies, you go nope. No can do. Stick with your current company eventhough we know that its shit for IT students because its a big company, see? And we have our university's reputation to upkeep. I came here to learn, not make you the No.1 university or something. And its not like you, or the staffs here, help us with anything.
So fuck all of this. We're gonna tell the other lecturers to stop sending students here. You don't learn anything. I'm done with this shit, not gonna think or worry about it anymore..I'll just, go get cake or something. Yeah.3 -
!rant
I used to be someone who disliked microsoft and windows, but with the new CEO Satya Nadella things are going in the right direction. Really love the stuff microsoft is doing right now! bash for windows, 24 bit color console, visual studio code and the monaco editor, dotnet core ... lately I have switched to windows 10 from OSX and I couldn't be happier :)17 -
I'm sorry, but the Apple App Store review team sometimes doesn't have the slightest clue what they're doing. Some things they usually reject me for, I can literally name 100 apps that violate that same thing, that are ON the App Store.
But the one that always gets me the most, is they will reject your app for not having extremely strict blocking/reporting features in your app (if it involves user-generated content). Okay, I get this, so I implement it. But they reject my app without even looking for them.
It's a CHAT app, so I put the block button INSIDE the chat conversation (right? normal UX? am I crazy?), and they reject it because they couldn't find the block button on the first screen (a screen that didn't even have chats, they screenshotted the SIGN UP screen LOL).
What a joke. Normally I wouldn't care but this update that I'm trying to get approved is essential and fixes some important crashes that have been happening to 13% of active users.3