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 - "no classes"
-
Biggest hurdle? Probably other people telling me no.
- My parents wouldn't let me go to college to study CS because 'this computer thing is just a fad and you won't be able to make a living off it'. Instead they pulled me out of school early and made me go study automotive so I could be a mechanic like my dad.
- At 22, my boss at my first tech company job heard I was taking Java classes in the evenings. Told me to stop wasting my money because I'd never be a programmer.
- Got a job at a game development company as a document writer. I could code by then. When I was done with my work I'd look for bugs and send the solutions to the programmers so they could submit them. Tech lead found out and flipped out. Said I wasn't allowed to look at the code because I 'hadn't been hired as a programmer'.
Today I'm a senior developer and pretty happy with my career.
When people tell you that you can't do something, that should be all the motivation you need to work your ass off to prove them wrong.15 -
Good Morning!, its time for practiseSafeHex's most incompetent co-worker!
Todays contestant is a very special one.
*sitcom audience: WHY?*
Glad you asked, you see if you were to look at his linkedin profile, you would see a job title unlike any you've seen before.
*sitcom audience oooooooohhhhhh*
were not talking software developer, engineer, tech lead, designer, CTO, CEO or anything like that, No No our new entrant "G" surpasses all of those with the title ..... "Software extraordinaire".
*sitcom audience laughs hysterically*
I KNOW!, wtf does that even mean! as a previous dev-ranter pointed out does this mean he IS quality code? I'd say he's more like a trash can ... where his code belongs
*ba dum tsssss*
Ok ok, lets get on with the show, heres some reasons why "G" is on the show:
One of G's tasks was to build an analytics gathering library for iOS, similar to google analytics where you track pages and events (we couldn't use google's). G was SO good at this job he implemented 2 features we didn't even ask for:
- If the library was unable to load its config file (for any reason) it would throw an uncatchable system integrity error, crashing the app.
- If anything was passed into any of the functions that wasn't expected (null, empty array etc.) it would crash the app as it was "more efficient" to not do any sanity checks inside the library.
This caused a lot of issues as some of the data needed to come from the clients server. The day we launched the app, within the first 3 hours we had over 40k crash logs and a VERY angry client.
Now, what makes this story important is not the bugs themselves, come on how many times have we all done something stupid? No the issue here was G defended all of this as the right thing to do!
.. and no he wasn't stoned or drunk!
G claimed if he couldn't get the right settings / params he wouldn't be able to track the event and then our CEO wouldn't have our usage data. To which I replied:
"So your solution was to not give the client an app instead? ... which also doesn't give the CEO his data".
He got very angry and asked me "what would you do then?". I offered a solution something like why not have a default tag for "error" or "unknown" where if theres an issue, we send up whatever we have, plus the file name and store it somewhere else. I was told I was being ridiculous as it wasn't built to track anything like that and that would never work ... his solution? ... pull the library out of the app and forget it.
... once again giving everyone no data.
G later moved onto another cross-platform style project. Backend team were particularly unhappy as they got no spec of what needed to be done. All they knew was it was a single endpoint dealing with very complex model. There was no Java classes, super classes, abstract classes or even interfaces, just this huge chunk of mocked data. So myself and the lead sat down with him, and asked where the interfaces for the backend where, or designs / architecture for them etc.
His response, to this day frightens me ... not makes me angry, not bewilders me ... scares the living shit out of me that people like this exist in the world and have successful careers.
G: "hhhmmm, I know how to build an interface, but i've never understood them ... Like lets say I have an interface, what now? how does that help me in any way? I can't physically use it, does it not just use up time building it for no reason?"
us: "... ... how are the backend team suppose to understand the model, its types, integrate it into the other systems?"
G: "Can I not just tell them and they can write it down?"
**
I'll just pause here for a moment, as you'll likely need to read that again out of sheer disbelief
**
I've never seen someone die inside the way the lead did. He started a syllable and his face just dropped, eyes glazed over and he instantly lost all the will to live. He replied:
" wel ............... it doesn't matter ... its not important ... I have to go, good luck with the project"
*killed the screen share and left the room*
now I know you are all dying in suspense to know what happened to that project, I can drop the shocking bombshell that it was in fact cancelled. Thankfully only ~350 man hours were spent on it
... yep, not a typo.
G's crowning achievement however will go down in history. VERY long story short, backend got deployed to the server and EVERYTHING broke. Lead investigated, found mistakes and config issues on every second line, load balancer wasn't even starting up. When asked had this been tested before it was deployed:
G: "Yeah I tested it on my machine, it worked fine"
lead: "... and on the server?"
G: "no, my machine will do the same thing"
lead: "do you have a load balancer and multiple VM's?"
G: "no, but Java is Java"
... and with that its time to end todays episode. Will G be our most incompetent? ... maybe.
Tune in later for more practiceSafeHex's most incompetent co-worker!!!31 -
I want to pay respects to my favourite teacher by far.
I turned up at university as a pretty arrogant person. This was because I had about 6 years of self-taught programming experience, and the classes started from the ansolute basics. I turned up to my first classes and everything was extremely easy. I felt like I wouldn't learn anything for at least a year.
Then, I met one of my lecturers for the first time. He was about 50~60 years old and had been programming for all of his career. He was known by everyone to be really strict and we were told by other lecturers that it could be difficult for some people to be his student.
His classes were awesome. He was friendly, but took absolutely no shit, and told everything as it was. He had great stories from his life, which he used to throw out during the more boring computer science topics. He had extremely strict rules for our programming style, and bloody good reasons for all of them. If we didn't follow a clear rule on an assignment, he'd give us 0%. To prove how well this worked, nobody got 0%.
We eventually learned that he was that way because he used to work on real-time systems for the military, where if something didn't work then people could die.
This was exactly what I needed. In around one semester I went from a capable self-taught kid, to writing code that was clear, maintainable and fast, without being hacky.
I learned so much in just that small time, and I owe it all to him. So often when I write code now I think back to his rules. Even if I disagree with some, I learned to be strict and consistent.
Sadly, during the break between our first and second year, he passed away due to illness. There was so many lessons still to be learned from him, and there's now no teachers with enough knowledge to continue his best modules like compiler writing.
He is greatly missed, I've never had greater respect for a teacher than for him.21 -
There should be a communist programming language.
- There are no classes.
- There is no inheritance.
- All code is executed simultaneously, since it's equal.
- All variables are global, since everything belongs to everyone
- There are no private functions
- Every function must have side effects, for the 'greater good'
- As soon as it is written, you no longer own the code
- Instead the code owns you
- And your machine
I slowly get why this thing didn't work out on society either.9 -
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 -
Its that time of the morning again where I get nothing done and moan about the past ... thats right its practiseSafeHex's most incompetent co-worker!!!
Today I'd like to tell you the story of "i". Interesting about "I" is that he was actually a colleague of yesterdays nominee "G" (and was present at the "java interface" video call, and agreed with G!): https://devrant.com/rants/1152317/...
"I" was the spearhead of a project to end all projects in that company. It was suppose to be a cross-platform thing but ended up only working for iOS. It was actually quite similar to this: https://jasonette.com/ (so similar i'm convinced G / I were part of this but I can't find their github ID's in it).
To briefly explain the above + what they built ... this is the worst piece of shit you can imagine ... and thats a pretty strong statement looking back at the rest of this series so far!
"I" thought this would solve all of our problems of having to build similar-ish apps for multiple customers by letting us re-use more code / UI across apps. His main solution, was every developers favourite part of writing code. I mean how often do you sit back and say:
"God damn I wish more of this development revolved around passing strings back and forth. Screw autocomplete, enums and typed classes / variables, I want more code / variables inside strings in this library!"
Yes thats right, the main part of this bullshittery was putting your entire app, into JSON, into a string and downloading it over http ... what could possibly go wrong!
Some of my issues were:
- Everything was a string, meaning we had no autocomplete. Every type and property had to be remembered and spelled perfectly.
- Everything was a string so we had no way to cmd + click / ctrl + click something to see somethings definition.
- Everything was a string so any business logic methods had to be remembered, all possible overloaded versions, no hints at param types no nothing.
- There was no specific tooling for any of this, it was literally open up xcode, create a json file and start writing strings.
- We couldn't use any of the native UI builders ... cause strings!
- We couldn't use any of the native UI layout constructs and we had to use these god awful custom layout managers, with a weird CSS feel to them.
What angered me a lot was their insistence that "You can download a new app over http and it will update instantly" ... except you can't because you can't download new business logic only UI. So its a new app, but must do 100% exactly the same thing as before.
His other achievements include:
- Deciding he didn't like apple's viewController and navigationBar classes and built his own, which was great when iOS 7 was released (changed the UI to allow drawing under the status bar) and we had no access to any of apples new code or methods, meaning everything had to be re-built from scratch.
- On my first week, my manager noticed he fucked up the login error handling on the app I was taking over. He noticed this as I was about to leave for the evening. I stayed so we could call him (he was in an earlier timezone). Rather than deal with his fucked up, he convinced the manager it would be a "great learning experience" for me to do it ... and stay in late ... while he goes home early.
- He once argued with me in front of the CEO, that his frankenstein cross-platform stuff was the right choice and that my way of using apples storyboards (and well thought out code) wasn't appropriate. So I challenged him to prove it, we got 2 clients who needed similar apps, we each did it our own way. He went 8 man weeks over, I came in 2 days under and his got slated in the app store for poor performance / issues. #result.
But rather than let it die he practically sucked off the CEO to let him improve the cross platform tooling instead.
... in that office you couldn't swing a cat without hitting a retard.
Having had to spend a lot more time working with him and more closely than most of the other nominees, at a minimum "I" is on the top of my list for needing a good punch in the face. Not for being an idiot (which he is), not for ruining so much (which he did), but for just being such an arrogant bastard about it all, despite constant failure.
Will "I" make it to most incompetent? Theres some pretty stiff competition so far
Tune in later for more practiceSafeHex's most incompetent co-worker!!!6 -
Fucking hell. Today we reviewed candidates for a web dev position. I already fucking know that here we ain't gonna get a top motherfucker, i already know that the person selected will have to be rigorously trained AND THAT IS FUCKING FINE WITH ME.
The thing is, fucking head of the departmen was hellbent on just grabbing people with the highest education possible setting aside lack of experience. I would not have minded if it weren't because we have a secretary that applied...that got her degree in our very own institution and that has worked with our CMS admin creating web stuff. She is smart and has the drive man, and i don't even like her, but i could see her being in the position, being trained and doing good.
Hod said no, because of her lack of education and experience.....BRUH she got her associate's at OUR SCHOOL wtf do we have students go through it if we ain't gonna hire them if they intend on applying to work with us like wtf might as well advertise that: the degree provided by this institution is not good enough to work with us :D that would be 3000 for those two classes thank u.
Holy fuck i was beyond upset man, if i am to train these fuckers might as well be someone that i know will give it her all and studied with us. Dude quoted favoritism and i said that i was just going by the data that i have on her holy fuck.11 -
Here's my piece of advice for new devs out there:
1 - Pick one language to learn first and stick with it, untill you grasp some solid fundamentals. (Variables, functions, classes, namespaces, scope, at least)
2 - Pick an IDE, and stick with it for now. Don't worry about tools yet. Comment everything you're coding. The important thing is to comment why you wrote it, and not what it does. Research git and start using version control, even when coding by yourself alone.
3 - Practice, pratice and pratice. If you got stuck, try reading the language docs first and see if you can figure it out yourself. If all else fails, then go to google and stackoverflow. Avoid copying the solution, type it all and try to understand it.
4 - After you feel you need to go to the next level, research best practices first, and start to apply them to your code. Try to make it modular as it grows. Then learn about tools, preprocessors and frameworks.
5 - Always keep studying. Never give up. We all feel that we have no idea of what we are doing sometimes. That's normal. You will understand eventually. ALWAYS KEEP STUDYING.9 -
/*
It's a pretty long rant. Hope you didn't get bored :P
*/
So I have this friend of mine who has learnt Python at good level (that's what he says) and is with me in all classes in college. I have worked with C, C++, C# and Java only and hated Python when it was taught (wk44).
So the following happened in the last 2 weeks:
Once he wrote a Python function in terminal just returning a hard coded string (lame right) and will show me how cool is it and that it is sooo much easier.
Whenever we do a mini project together he will force that we use Python. Even in Image processing when everyone is ready to work on Matlab, he insists that Python would be a better option.
We asked that this XYZ is very easy to implement on Matlab.
We then had to listen about the large and great community of Python and that it has Libraries for everything and that it is the greatest programming language ever.
One day he saw my C# project for DFA and NFA simulation which was the greatest project I have "completed" myself, and went like "Hmph, if I was you, I would use python and make a more "professional" code" (then went on arguing as always)
This happened today in Networking lab-
(Sockets was taught and we are expected to learn its programming aspects)
All students: Open linuxhowtos.org and start reading on socket programming
He : Opens some websites and downloads books on Networking with Python or someting
Now while I am reading the documentation of sockets and bind, he opens spider IDE, copy-paste the code in the book and start bugging ME that he is getting all these errors like literally showing me those errors and whining about all those problems.
Me: We are supposed to learn this in C. Here take a look at this link.
HE: No I'll use Python cuz it is better than your C. It has libraries for everything and is much easier.
Me: Alright whatever I am fed up, do whatever you want11 -
Every day.
I am a PHP developer.
Yeah, "another PHP is awful" rant... no, not really.
It's just unsuitable for some ambitious projects, just like Ruby and Python are.
First of all, DO NOT EVER use Laravel for large enterprise applications. The same goes for RoR, Django, and other ActiveRecord MVCs.
They are all neat frameworks for writing a todo app, as a better-than-wordpress flexible blogging solution, even as a custom webshop.
Beyond 50k daily users, Active Record becomes hell due to it's lazy fat querying habits. At more than a million users... *depressed sigh*.
PHP is also completely unsuitable for projects beyond 5M lines of code in my opinion. At more than 25M lines... *another depressed sigh*.
You can let your devs read Clean Code and books about architecture patterns, you can teach them about SOLID & DRY, you can write thousands of tests... it doesn't matter.
PHP is scaffolding, it's made of bamboo and rope. It's not brick or concrete. You can build quickly, but it only scales up to a certain point before it breaks in multiple places.
Eventually you run into patterns where even 100% test coverage still doesn't guarantee shit, because the real-life edge cases are just too complex and numerous.
When you're working on a multi-party invoicing system with adapters for various tax codes, or an availability/planning system working across timezones, or systems which implement geographical routefinding coupled to traffic, event & weather prediction...
PHP, Python, Ruby, etc are just missing types.
Every day I run into bugs which could have been prevented if you could use ADTs in a generic way in PHP. PHP7 has pretty good typehints, and they prevent a lot of messy behavior, but they aren't composable. There is no way to tell PHP "this method accepts a Collection of Users", or "this methods returns maybe either an Apple or a Pear, and I want to force the caller to handle both Apple/Pear and null".
Well, you could do that, but it requires a lot of custom classes and trickery, and you have to rewrite the same logic if you want to typehint a "Collection of Departments" instead of "Collection of Users" -- i.e., it's not composable.
Probably the biggest issue is that languages with a (mostly) structural type system (Haskell, Rust, even C#/JVM languages to some degree, etc) are much slower to develop in for the "startup" era of a project, so you grab a weak, quick prototyping language to get started.
Then, when you reach a more grown up phase, you wish you had a better type system at your disposal...28 -
My programming teacher is a freaking degenerate. He spend 7 months teaching us basic stuff like if-clauses, while-loops and stuff like that over and over again - everyone was annoyed but he didn't listen to us because "some people still don't get it". (The reason for this could be their total absence during lessons but who am I to tell.)
Beginning of 2018 he realised we hadn't much time left to prepare for our final exam so he tried self-taught learning. 8 sorting algorithms, recursion, how to write classes and objects in less than a week. And of course there was a classtest about this - needless to say that like nobody passed it. He still has no clue why we are "so lazy and dumb".
One of his favourite code examples is a calculator. I don't know how many i've programmed and they've gotten more and more ridiculous. (Who the hell would want interfaces like IComparer in a calculator?)
He even wanted to convince us that for-loops can't count down (and that things like "i--" doen't exist.)
I could go on and on about this guy and his craziness.27 -
To be a good developer, you must thrive in chaos, and have an insatiable desire to turn it into order.
All user input, both work tasks and actual application input, is pure fucking chaos.
The only way to turn that input into anything usable, is to interpret, structure and categorize it, to describe the rules for transformation as adequately as you can.
Sometimes companies create semi-helpful roles to assist you with this process. Often, these people are so unaware of the delicacy of the existing chaos, that any decision they make just ripples out in waves leaving nearly irreparable confusion and destruction in its path.
So applications themselves also slowly wear down into chaos under pressure of chaotic steak-holders which never seem to be able to choose between peppercorn or bernaise sauce for their steaks.
Features are added, data is migrated between formats, rules become unclear. Is ketchup even fucking valid, as a steak sauce?
The only way to preserve an application long term, is refactoring chaos into order.
But... the ocean of chaos will never end.
You must learn to swim in it.
All you can hope to do is create little pools of clarity where new creative ideas can freely spawn.
Ideas which will no doubt end up polluting their own environment, but that's a problem for tomorrow.
So you must learn to deal with the infinite stream of perplexed reactions from those who can't attach screenshots to issue reports.
You must deflect dragging conversations from those who never quite manage to translate gut feeling into rational sentences.
You must learn to deal with the fact that in reality there are no true microservice backends. There are no clean React frontends. There are no normalized databases. Full test coverage, well-executed retrospectives, finished sprints -- they are all as real as spherical cows in a vacuum.
There is no such thing as clean code.
There is only "relatively cleaner code", and even then there are arguments as to why it would be "subjectively relatively cleaner code".
Every repository, every product, every team and every company is an amalgamation of half-implemented ideals, well-intended tug of war games, and brilliantly shattered dreams.
You will encounter fragmented shards of perfect APIs, miles of tangled barbed documentation, beheaded validator classes, bloody mangled corpses of analytical dashboards, crumbled concrete databases.
You must be able to breathe in those thick toxic clouds of rotting technical and procedural debt, look at your reflection in the locker room mirror while you struggle yourself into a hazmat suit, and think:
"Fuck yes, I was born for this job".24 -
Ya know I'm getting really fucking tired of this female only shit in the tech field. Like yes, there's a representation gap in the field. But you ever think it's because lots of females just don't want to fucking do it?
Most of the females I graduated high school with are going for something medical, teaching, and other fields that allow lots of human interaction and helping people. (You sure as fuck don't see people breaking their neck over the misrepresentation of males in the nursing or education field, do ya?)
You know who needs fucking attention in the tech world? Small towns. There's no fucking actual computer classes in any of the fucking high schools near me. Not a fucking thing. I had one class but it taught me how to use office software (word, excel, access, the whole shitfest).
But noooo let's just fucking focus on one specific group and everyone else gets fucked over.
Not to mention, a lot of the females here (at least from the ones I've read) just want to be treated like normal people.
I'm tired of this bullshit. Fuck every bit of it. Don't even care if it makes me a fucking dick. It's unnecessary sjw bullshit.40 -
2 hours, maybe 2.5.
No one works for more than that, it's not how brains work. Or bodies for that matter, you gotta pee eventually.
OK maybe I'm pedantic and shouldn't count breaks... But then where lies the threshold? A fifteen minute coffee break? An hour long lunch break?
Could we use scrum storypoints to brag then (I once finished 12 points in a day!) — not really, because they're not standardized units of work.
Lines of code then? Well, the dev who copy pastes Java classes would beat the guy adjusting a dense Python script, without necessarily doing more.
No, the only true measure is of course grams of amphetamine per week, and in that metric I win from everyone.
😂😅😶😣😓😟😖😧😵😰🚑16 -
Awesome teacher number two: another Linux teacher!
Didn't have many classes from him but damn he could interact with the students!
He was very open (it just autocorrected that to porn O.o) minded, very passionate about Linux and new shitloads about security. You'd expect him to be like 50 as for his knowledge amounts but he was around 27 I think.
He could go into discussions with students on the windows vs Linux subject, made it look like they were winning and then completely burn them in just a few sentences.
I think he liked me a lot because we would talk all kinds of Linux stuff.
He'd also help people with windows sometimes but windows servers where a very fucking no-go for him.
Man, I miss that guy 😞10 -
Time for an actual rant:
During an internship I heard from my PM that my assignment for the week after was going to be working on a specific sql query to add some features and fix some bugs.
When talking with colleagues about that assignment later, they laughed and referred to the query as the "query of doom" (QoD), naive as I was back then, I thought that one of my colleagues had the QoD displayed on his screen because the query he was working on looked rather large (about 20 lines). They all laughed and told me I was in for a treat.
Starting my assignment the week after I was horrified to find out the QoD was huge, and by huge I mean, printing that specific query resulted in 8 A4 pages font size 10, front and back.
There were over a 100 union statements, no proper aliases, no documentation, not a single foreign key in the entire database, naming that makes no sense. And everything written manually by 10 different developers over the past years, who all fell of the face of the earth.
And this was only the query of doom. The entire product was a complete clusterfuck of forms with a queries directly behind action buttons, because we weren't allowed to make classes (yes you read that correctly. We couldn't make classes, unless we had a very compelling reason). Everything was created by over 30 different devs who only managed to stay just long enough to get some work done.
And all of this was the result of a PM who didn't believe in frameworks, ORM's, OOP, classes, ... because that made the software slow. To this day he still manages that product, but I'm glad that I quickly decided to move on.9 -
Manager: 'Please remove this checkbox from that page.'
Me: 'Sure thing, it was stupid anyway. Just gimme a couple of minutes.'
Legacy code: 'LOL the checkbox is wired to everything else and if you simply remove it the backend will shit itself. There is several hundred lines of inline Javascript in the HTML template with some Thymeleaf stuff managing the form data or just are there to make the code less readable. The controller for the page is a bit more than a thousand lines of spaghetti, no easy way to find where is that specific data necessary and where can be easily removed. Class variables declared between methods, dozens of nested if statements checking shit in every method and the data is passed through like half a dozen other classes. Good luck with that!'
Me: '💩.'5 -
Finally i had an idea for a personal project.
I sat down, started sketching up the classes i'd use.
3 hours later, im finished.
Now i have no personal prjects running and im bored again.11 -
I don't get it
My brain does not have the capacity to understand it
How the fuck does my colleague manage to write 12 classes/interfaces for something so stupidly simple??
Two classes, a hand full of functions, done.
Why do you need this level of abstraction?
To mock the interfaces in unit tests? The unit tests you didn't write because "they're not necessary"?
No one will be able to understand this clusterfuck of a module even though it's entire purpose is "read number and write number elsewhere"...21 -
- Take a course called "Mobile Application Development"
- Teacher is new and is thus lost on how things work because there is no formal training for them
- Teacher only knows Objective-C so that's all we're allowed to use
- Nobody owns a Mac and I think one or two people had an iPhone/iPad
- Only 4 public Mac computers are available to the school
- One to two people are on them frequently, limiting our time on them as well
- Not a part of the schools normal imaging and updating system, so we get to do it ourselves, which takes up like a week or two of classes (4 classes)
- This includes installing XCode and getting Apple IDs
- No real instructions are given besides "implement the APIs for Facebook, Twitter, and Google Maps into an app"
- Being an ass, for the final day instead of showing off the app we made I made a PowerPoint of my dislike of Objective-C and various struggles I ran into and how I decided not to make the app at all.
- shrug emoji4 -
The problem with my life is acceptance from others. Validation (almost wrote vladiation).
For instance, I finished my course in Advanced Java Programming a few days ago. Supposed to be a year course or some shit, finished it in two months. They told me I don't need to go to the remainder classes and I could write the examination. Got the certifications, passed with flying colours.
Well done me? No, fuck you me. "It's not through Oracle, so it's completely useless. Har har you wasted your measly salary on a course and it means nothing". You know what? Fuck you and fuck validation. I will validate myself from now on.
Anywhom, what a start to a shitty rant. Let's go over some generic points so I can finally make my avatar.
IE can suck a duck ("oooh you made it and it runs fine in every fucking browser except fucking IE - slow clap).
Chrome RAM usage can suck a duck, two times. (just generic post, don't actually give a shit - I use Firefox).
People who can't use one fucking indentation standard ("oooh two spaces, oooh three spaces, oooooh a fucking tab button... " etc) can fuck off.
That fucker who came and converted my buildings in Age of Empires with the "wolololo" priest can fuck off too.
Been reading through devRant and you know what? You guys are pretty cool5 -
At an interview, the first round was an online coding round. Two questions, one easy one hard, 90 minutes, easy peasy.
I solved the hard one first.
A bit of good logic, followed MVC pattern, all done. Worked flawlessly.
Submitted code. Online compiler threw up an internal error citing java is an invalid command(jdk not found).
Called the invigilators. What I heard next, I couldn't believe this shit.
"We're not responsible for any errors you may be having. Figure it out yourself"
I was like WTF dude. This is not even a compilation or runtime error!
After a heated discussion, I made him look at the code.
Him - what is all this classes and all? Why haven't you written everything inside the main function?
Me - those are model classes. Those are different helper functions. That is a recursive function to avoid 5 for loops and use divide and conquer. Ever heard of OOP? what kind of person writes a 300 line program inside one function?
Him - no no we write it like that only. Correct this.
Me - I fit everything inside the main function. Still the same error, java not installed. Called the idiot to have a look at it.
Him - yeah your code is wrong.
Me - may I know what's wrong with it? Can you fix it please?
Him - no no we aren't allowed to see the code (he had already read it twice. It was compiling and running perfectly, locally) .
Yeah you solved only 1 problem, you were supposed to solve 2.
Me - yes because the rest of the time I had the pleasure of your company. (It isn't everyday that I see talking buffoons.)11 -
If you are a salesperson, you can just go straight to hell. You're all a bunch of cocksucking twats and I'm amazed you manage to get yourselves dressed each day. You're a no good fucking waste of oxygen and you need to put your fork in a socket the next time you're eating.
I'm working on building a crm and ticket management system for use in the office to handle client passwords. Since I'm building from scratch I wanted to make sure I had properly planned my classes and functions before opening the code editor so I put a message on my door that says "Don't interrupt, thanks" followed by the date so people knew it was a fresh message and not something left from the previous day.
I'm deep in the zone, the psuedo code and logic is flowing, I'm getting classes planned and feeling really productive for an hour or so when suddenly my door flies open and in comes a sales person.
SP: "Hey, do you have any extra phones lying around? Mine's being slow and keeps hanging up on people."
Me: "Do you see the sign on my door right there at eye level which says not to bother me?"
SP: "oh, do you want me to come back later?"
Me: "You've already interrupted me now, let's go see what's going on before I spent an hour setting up a new phone for you." While we are walking across the office I asked him when the last time the phone rebooted.
SP: "idk, Salesperson#2 suggested that as I was headed over here but I figured I'd just ask you."
We get over to his desk and I see he has two phones sitting on his desk. "Where did this one come from?"
SP: "Oh that was on the desk over here but I figured I could use it."
Me: "Well aside from the fact that the phones are assigned to specific people for a reason, you took the time to unhook your phone to set this one up and you didn't think to reboot your phone first. Plug your phone back in."
He plugs the old phone, which is assigned to him, and while booting it does a quick firmware update and boots up fine. He tests a few things and decides it's all better now.
So someone suggested a fix for you and you decided, instead, you would break company IT policy by moving equipment from one station to another without notifying the IT department. You entered a room which had a closed door without knocking, and you disobeyed the sign on the actual door itself which politely requests that you go away. All because you couldn't be bothered to take 2 minutes and reboot your phone, which you had to do anyways.
You completely broke my train of thought and managed to waste 2 hours of effecient workflow because you had an emergency.9 -
left a company over 3 years ago because they wanted me to dumb my code down so that the other devs could understand it. they wouldn't allow me to use classes in my code lol. anyway, 3+ years later figured I would try to log in to some of the admin panels... passwords still the same. MySQL dbs... passwords the same... cpanel... passwords the same. smh. even if I still worked there the passwords should be changed every so often. top notch security right there. funniest part is they don't even do backups or use VCS for the code. sad sad company. glad I'm no longer there. my personal projects have more security, redundancy and fail over lol4
-
This codebase reminds me of a large, rotting, barely-alive dromedary. Parts of it function quite well, but large swaths of it are necrotic, foul-smelling, and even rotted away. Were it healthy, it would still exude a terrible stench, and its temperament would easily match: If you managed to get near enough, it would spit and try to bite you.
Swaths of code are commented out -- entire classes simply don't exist anymore, and the ghosts of several-year-old methods still linger. Despite this, large and deprecated (yet uncommented) sections of the application depend on those undefined classes/methods. Navigating the codebase is akin to walking through a minefield: if you reference the wrong method on the wrong object... fatal exception. And being very new to this project, I have no idea what's live and what isn't.
The naming scheme doesn't help, either: it's impossible to know what's still functional without asking because nothing's marked. Instead, I've been working backwards from multiple points to try to find code paths between objects/events. I'm rarely successful.
Not only can I not tell what's live code and what's interactive death, the code itself is messy and awful. Don't get me wrong: it's solid. There's virtually no way to break it. But trying to understand it ... I feel like I'm looking at a huge, sprawling MC Escher landscape through a microscope. (No exaggeration: a magnifying glass would show a larger view that included paradoxes / dubious structures, and these are not readily apparent to me.)
It's also rife with bad practices. Terrible naming choices consisting of arbitrarily-placed acronyms, bad word choices, and simply inconsistent naming (hash vs hsh vs hs vs h). The indentation is a mix of spaces and tabs. There's magic numbers galore, and variable re-use -- not just local scope, but public methods on objects as well. I've also seen countless assignments within conditionals, and these are apparently intentional! The reasoning: to ensure the code only runs with non-falsey values. While that would indeed work, an early return/next is much clearer, and reduces indentation. It's just. reading through this makes me cringe or literally throw my hands up in frustration and exasperation.
Honestly though, I know why the code is so terrible, and I understand:
The architect/sole dev was new to coding -- I have 5-7 times his current experience -- and the project scope expanded significantly and extremely quickly, and also broke all of its foundation rules. Non-developers also dictated architecture, creating further mess. It's the stuff of nightmares. Looking at what he was able to accomplish, though, I'm impressed. Horrified at the details, but impressed with the whole.
This project is the epitome of "I wrote it quickly and just made it work."
Fortunately, he and I both agree that a rewrite is in order. but at 76k lines (without styling or configuration), it's quite the undertaking.
------
Amusing: after running the codebase through `wc`, it apparently sums to half the word count of "War and Peace"15 -
TLDR: In defense of Powershell - the rant:
I don’t get the Powershell hate.
You don’t hate a screwdriver for not being able to turn a nut, you just *don’t use a screwdriver to turn a nut*
Once you recognize what the tool is good for and you don’t try to use it like Bash, it’s wildly powerful, and satisfying to use in a way Cmd.exe never was.
Cygwin or a Linux Subsystem can only go so far on a Windows computer. You’re dealing with two fundamentally different OS architectures. It makes sense you’d need different tools.
And like it or not, Microsoft owns the non-tech-user desktop , corners the non-tech server business market, and Active Directory is THE tool for managing Windows desktops on a large scale - So Wanblows is not going away anytime soon.
Automation without some weird ass sysVol batch login script is finally possible. Anyone who knows .Net classes can leverage their methods from directly within Powershell. Remote management of headless Windows servers is now a reality. If you have an Office 365 Exchange server you can literally Powershell remote to it for management, just like your favorite cloud hosted Linux distribution.
No one said Windows is a better OS, but an object based shell on an object based OS *makes sense*. It’s useful for its environment. Let it be.10 -
Why in the name of Donald Knuth did you think it was a good idea to have a 1500 line Java Method? What THE HELL WERE YOU SMOKING THE ENTIRE FILE IS OVER 3000 LINES AND HALF OF THEM ARE COMMENTED OUT!
Don't even get me started on your "unit tests" which is a massive 5000 line behemoth that randomly has massive swaths of code commented out.
And of course no solution like this would be complete with you HARD CODING EVERY F****INIG STRING IN EVERY TIME!
And it's not like you don't know how to use classes as you have several of them, every single one of which is over 500+ lines and consists of only getters and setters. LET ME INTRODUCE YOU TO A MAP! REALLY WHY WOULD YOU USE 500 LINES FOR A CLASS THAT IS JUST GETTERS AND SETTERS?!
The part that really burns me about all of this though, isn't the fact that you sent it to me when I was running into a similar issue, and said "check this out it should help", what bothers me most isn't the indescribable rage I felt looking at your code, the part that really really really bothers me is that you are a veteran with over 15 years in Java development, and according to the org chart are a lead senior engineer getting paid substantially more than me, whereas I am considered a lowly mid-level developer, who isn't worth promoting to your level.
On the plus side you are now going to be featured on theDailyWTF so congrats on the notoriety.8 -
It were around 1997~1998, I was on middle school. It was a technical course, so we had programing languages classes, IT etc.
The IT guy of our computer lab had been replaced and the new one had blocked completely the access on the computers. We had to make everything on floppy disks, because he didn't trusted us to use the local hard disk. Our class asked him to remove some of the restrictions, but he just ignored us. Nobody liked that guy. Not us, not the teachers, not the trainees at the lab.
Someday a friend and me arrived a little bit early at the school. We gone to the lab and another friend that was a trainee on the lab (that is registered here, on DevRant) allowed us to come inside. We had already memorized all the commands. We crawled in the dark lab to the server. Put a ms dos 5.3 boot disk with a program to open ntfs partitions and without turn on the computer monitor, we booted the server.
At that time, Windows stored all passwords in an encrypted file. We knew the exact path and copied the file into the floppy disk.
To avoid any problems with the floppy disk, we asked the director of the school to get out just to get a homework we theorically forgot at our friends house that was on the same block at school. We were not lying at all. He really lived there and he had the best computer of us.
The decrypt program stayed running for one week until it finds the password we did want: the root.
We came back to the lab at the class. Logged in with the root account. We just created another account with a generic name but the same privileges as root. First, we looked for any hidden backup at network and deleted. Second, we were lucky: all the computers of the school were on the same network. If you were the admin, you could connect anywhere. So we connected to a "finance" computer that was really the finances and we could get lists of all the students with debits, who had any discount etc. We copied it to us case we were discovered and had to use anything to bargain.
Now the fun part: we removed the privileges of all accounts that were higher than the trainee accounts. They had no access to hard disks anymore. They had just the students privileges now.
After that, we changed the root password. Neither we knew it. And last, but not least, we changed the students login, giving them trainee privileges.
We just deleted our account with root powers, logged in as student and pretended everything was normal.
End of class, we went home. Next day, the lab was closed. The entire school (that was school, mid school and college at the same place) was frozen. Classes were normal, but nothing more worked. Library, finances, labs, nothing. They had no access anymore.
We celebrated it as it were new years eve. One of our teachers came to us saying congratulations, as he knew it had been us. We answered with a "I don't know what are you talking about". He laughed and gone to his class.
We really have fun remembering this "adventure". :)
PS: the admin formatted all the servers to fix the mess. They had plenty of servers.4 -
Normally I just read rants but my new assignments is just to much and I have to vent a bit.
So I was assigned on a new company to help them with their automated tests (I'm normally a developer) which was fine for me. Especially when they said a guy that have 10+ years of experience have worked on the framework for a couple of weeks so it should be fine and ready. So I though it would be a quick deal.
But then I got there and... it's the worst C# code I have ever seen. I can live with the overuse of static, long method and classes and overally messy classes that doesn't really seems to fit (it's bad but not unusual in test code it seems). My biggest problem is overuse of the damn "dynamic" keyword.
Don't get me wrong, dynamic can be good and it have it's uses but here they use "dynamic args" in every single method, every one! They don't care if the method only require one value or ten values, they use dynamic args. Then you follow this "dynamic args" parameter going in to sub method after sub method and you have no idea what they use.
And of course they don't know if anyone use the methods correctly (as you have no damn clue what to use without checking the source code) so in 75% of the methods they convert the dynamic to an object and check if it contains "correct argument".
So what I have here is a code that isn't just hard to use, it's a hell to maintain.
So I talked with this with other testers on the team and they agree, but as most of them lack experience they couldn't talk back to the senior that wrote it. So I hope to sit down with him this week and talk this through because it would be fun to hear the arguments for this mess.
/rant10 -
WWDC was not about developers this year. It was a conference call with shareholders and investors. No bold moves, just several consecutive "this product will no longer suck" and "look at what you can do now, big companies" announcements.
watchOS will work now (it's too slow ATM). tvOS will just be less cumbersome. macOS still lagging behind (I mean, I already have great third party apps that clean my hard drive, but thank you for solving a problem I didn't need fixing). iOS 10 is simply about messages (it's not going to make me ditch Telegram, because it doesn't have an Android client, regardless of how large you make emoticons appear on screen). Apple Music will still suck, especially if you have more than one Apple ID. And Apple Maps will continue to be useless outside of the US.
Where did the bold moves go? Where's the "we're breaking up iTunes into several distinct apps that serve their purposes really well"? (Guess iTunes is too valuable a trademark...) Where is the "we will end the WKView vs UIView vs NSView nonsense"? (You know, OOP is about creating classes, which are abstractions and whose instances deal with the particularities of their environment; a View is a View, regardless of where they live; an instance of a View should care about being on a watch or on a phone, not the developer.) Where is the "we love indie developers and will help you"? They showed off a lot of integration with well established apps, that don't really need to stand out any more. They showed that video of "normal people" who have developed apps, but no one knows about them! And then they changed the AppStore so you can pay to advertise your app, but who has the means to do that? Indie devs are surely on a tight budget, so who's that helping again?
For me, this WWDC was sugar coated with a "we love you developers" BS, but was a business statement to large companies ("see what you can do now Uber, Lyft, WeChat, WhatsApp, Doordash, all the P2P payment apps, ESPN, WSJ and so on?"). It's already a known fact that the bulk of the AppStore revenue goes to the top 1% apps. And what's the point of having tvOS be open to developers if it is very unlikely I'll ever develop anything for it unless I work at CBS?
It's great that they want to make it easier for kids to learn Swift. But there's very little point in that, if those kids' apps aren't going to be used and are simply going to make the "we have 2 million apps on the AppStore" announcement look shinier for shareholders. Without a strong indie community, the Swift Playgrounds app for the iPad is just manufacturing workers for large corporations.
And without a strong indie community, things get tougher for indie clients as well. Who will have the money (and therefore the time) to implement all those integrations in order to even dream about competing with heavily funded apps?
Yeah... So thanks, Apple, but no thanks.16 -
I'm editing the sidebar on one of our websites, and shuffling some entries. It involves moving some entries in/out of a dropdown and contextual sidebars, in/out of submenus, etc. It sounds a little tedious but overall pretty trivial, right?
This is day three.
I learned React+Redux from scratch (and rebuilt the latter for fun) in twice that long.
In my defense, I've been working on other tasks (see: Alerts), but mostly because I'd rather gouge my freaking eyes out than continue on this one.
Everything that could be wrong about this is. Everything that could be over-engineered is. Everything that could be written worse... can't, actually; it's awful.
Major grievances:
1) The sidebars (yes, there are several) are spread across a ridiculous number of folders. I stopped counting at 20.
2) Instead of icon fonts, this uses multiple images for entry states.
3) The image filenames don't match the menu entry names. at all. ("sb_gifts.png" -> orders); active filenames are e.g. "sb_giftsactive.png"
4) The actions don't match the menu entry names.
5) Menu state is handled within the root application controller, and doesn't use bools, but strings. (and these state flags never seem to get reset anywhere...)
6) These strings are used to construct the image filenames within the sidebar views/partials.
7) Sometimes access restrictions (employee, manager, etc.) are around the individual menu entries, sometimes they're around a partial include, meaning it's extremely difficult to determine which menu entries/sections/subsections are permission-locked without digging through everything.
8) Within different conditionals there are duplicate blocks markup, with duplicate includes, that end up render different partials/markup due to different state.
9) There are parent tags outside of includes, such as `<ul>#{render 'horrific-eye-stabbing'}</ul>`
10) The markup differs per location: sometimes it's a huge blob of non-semantic filthiness, sometimes it's a simple div+span. Example filth: section->p->a->(img,span) ... per menu entry.
11) In some places, the markup is broken, e.g. `<li><u>...</li></u>`
12) In other places, markup is used for layout adjustments, such as an single nested within several divs adorned with lots of styles/classes.
13) Per-device layouts are handled, not within separate views, but by conditionally enabling/disabling swaths of markup, e.g. (if is_cordova_session?).
14) `is_cordova_session` in particular is stored within a cookie that does not expire, and within your user session. disabling it is annoying and very non-obvious. It can get set whether or not you're using cordova.
15) There are virtually no stylesheets; almost everything is inline (but of course not actually everything), which makes for fun layout debugging.
16) Some of the markup (with inline styling, no less) is generated within a goddamn controller.
17) The markup does use css classes, but it's predominately not for actual styling: they're used to pick out elements within unit tests. An example class name: "hide-for-medium-down"; and no, I can't figure out what it means, even when looking at the tests that use it. There are no styles attached to that particular class.
18) The tests have not been updated for three years, and that last update was an rspec version bump.
19) Mixed tabs and spaces, with mixed indentation level (given spaces, it's sometimes 2, 4, 4, 5, or 6, and sometimes one of those levels consistently, plus an extra space thereafter.)
20) Intentional assignment within conditionals (`if var=possibly_nil_return_value()`)
21) hardcoded (and occasionally incorrect) values/urls.
... and last but not least:
22) Adding a new "menu sections unit" (I still haven't determined what the crap that means) requires changing two constants and writing a goddamn database migration.
I'm not even including minor annoyances like non-enclosed ternaries, poor naming conventions, commented out code, highly inefficient code, a 512-character regex (at least it's even, right?), etc.
just.
what the _fuck_
Who knew a sidebar could be so utterly convoluted?6 -
Does anyone remember MUDs? Multi-User Dungeons — working on those in LPC was my first experience with real programming. Before that, I'd only made simple websites.
To get permission to program in one MUD, you had to prove that you knew the world, by reaching a certain level in the game. Death had consequences, with a level being lost, as well as risking loss of your items if someone looted you or your corpse was lost. This alone was hard enough to make most players give up. I played (and played wisely) to get there, being the first of my friends. It was hard work and fun.
After months of playing every day, finally, I was a wizard! Well, first, I had to convince someone else to take me as an apprentice, which was it's own challenge, because I was a 13 y/o girl. I ended up having to wait for an older male friend to get to the proper rank and get made a full wizard himself, because anyone else was reluctant (thinking that I'd just screw up or make them look bad), and no one was very happy about it. After some more weeks, I started programming my own content for the MUD, to share with others. It was a great opportunity to learn and express myself, seeing how creative programming could be.
I got called all kinds of names for asking questions and making mistakes, and I questioned why I even wanted to work with these people who hated my guts and didn't want to teach me anything, but I kept going. As I wasn't allowed to take computer classes in school, being able to do projects on my own like this was the only way to learn. I also became more stubborn, patient, and independent, which has always been necessary for this career.
Most importantly, I saw what could be done with programming, and was inspired to keep going with my own projects, no matter how much hate that I got for it. I went on to work on more games and software, often on my own. I always explore new technology, ignore the haters, and forge ahead with my own vision.4 -
I am fed up working with unskilled software developers. Or to be more specific, working with people who have no idea of sofware architecture.
Most people I've worked with have simply no idea what they are doing in the broad picture, they can only follow patterns they see and implement their feature in the same way. They can't think about the abstract concepts which should be the foundation of the project.
They fail to write unit tests which are maintainable. They write one fucking test per method which is testing 50 things at the same time, making it often impossible to understand what is being tested.
They think putting stuff in private methods makes their class better and is some kind of separation of concerns.
They write classes and afterwards create interfaces for these classes named {Class}Interface, shoving all the methods into that interface. They think it's good design to do so.
They are unable to think about the reasons why things are done the way they are done and that you don't do stuff for the sake of doing stuff, but to achieve certain goals like interchangeability.
They don't undestand how to separate business logic from the application code.
They have no sense for naming things beautifully. They don't see how naming things is a major part of good software architecture.
They get layer concepts wrong and then create godlike {EntityName}Service classes, which do everything related to a particular entity.
They fail to shape the boundaries within a software project, entangling stuff which should live in individual modules.
All I want is to work in a team with professionals.2 -
The 1st rule of Javascript is: You don't admit you program Javascript.
The 1st rule of Rust is: You tell everyone you program Rust and how it is better than basically any programming language that existed or will exist.
The 1st rule of C++ is: There are no rules because everyone was too busy debugging templates to think of any rules.
The 1st rule of Java is: You must have excessive numbers of classes and boilerplate. The more boilerplate the better.
The 1st rule of Haskell is: It is great to learn, but you will never see it again once you leave college.38 -
Once crafted a beautifully executed use of Polymorphism with intuitive interfaces and classes with a concise and loose code just to watch my boss get rid of the interface , because it had no code in it, and fill the fucking code with an ugly switch statement to choose which class to instantiate.5
-
So a good friend of mine calls me up on Friday night, and he tells me about his close friend abroad who messed up and, without going into details, needs me to do his C# project for a course. The deadline was on Monday. I said I couldn't promise anything, but send me the requirments and I'll look into it.
Now, the pay was good and I felt that the guy's reasons were valid (and that the prof was being a dick), also the project was doable in a day and a half, so I said ok. I spent my entire Saturday working on it till I had most of it done: I just needed to refine the code and do the report.
I sent the app to him so that he can check it out, to which he responds by freaking out and explaining that he has missed most of the classes and has a barely passing average (huh maybe the prof isn't so much of a dick). If I get him a high grade, the gig will be up and his prof will fail him. He wants a 60-70/100, no more.
Feeling obliged by our agreement, I spent my Sunday complicating trivial code, breaking standards, and adding minor bugs. Had I know this was what it was going to lead to, I would have never accepted.
It's just so much harder to break good code than to write it.6 -
So I had to work in a team for a CSS & HTML uni project with two others and the criteria was the web site had to be something funny and related to the university. So I talked with my so-called teammates about the project idea and what the web site would be about when one of them said "Let's make it about cats!". Okay I guess, not really sure what we could write about, but we'll manage. Then these fuckers just up and disappeared, leaving me to design and make content for the whole fucking thing. I lost sleep searching for fucking pictures of cute kitties because these stupid idiots couldn't find a minute of their oh-so important life to make a single commit! And guess what? One of them finally figured out that he won't get graded if he donesn't contribute and had the audacity to make the single most horrifyingly disgusting excuse of an HTML & CSS page I have ever seen. Divs with no closed tags, selectors like 'el1 > el2 > el3'. Classes? Who even uses them, right? I shit you not, seeing that, I was actually on the verge deleting his whole work and telling him a big 'fuck you'. Instead, I just suggested make a few edits and rebuilt his whole page from the ground up.
So that was my team. My gang. A fucking retard that made more work for me and an asshole that didn't even clone the repository. Even then, my project got the most points. But no, it got third place because first and second place worked alone!
Fucking cocksuckers! Working with a team of incompetent fuckwits is ten times harder!
https://shuily.github.io/CatUni/...9 -
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 -
In college we were assigned to groups for a semester long project. One of the guys in my group made it abundantly clear that he had been programming far longer than the rest of us and that this project was beneath him. On the other hand, at my school the program for graphic design and development shared many core classes that required programming knowledge. It was common to encounter students who had no experience at all even in intermediate level courses. Fast forward to the end of the semester right before finals. We are working on this project together and one of my team members accidentally creates a directory in the wrong folder(graphic design student). So the experienced guy, who had become convinced that we were only slowing him down, tells him to just type "rm -rf /". Everything on this poor kids whole hard drive...gone. Design projects due the next week all deleted. He ended up having to retake a few of the courses simply because that dude was a dick.4
-
I feel like at some point it'll become more shit than it's ever been. Partially due to the fact that it seems like EVERY school is trying to get the students into computer science at this point.
NOT EVERYBODY BELONGS IN COMPUTER SCIENCE. PLAIN AND SIMPLE. IT'S NOT FOR EVERYONE.
I feel like some kids that are being forced to do computer science will basically be like "huh there's money in this, maybe I could do this" but they're completely shit at it, when they would have been MUCH better off doing something else.
Side rant, somewhat related actually:
I had a teacher last semester that has to teach one of the computer science classes starting this year (I was not taking her computer science class, it was an unrelated class). From what I've seen, she does not seem fit to teach the class at all.
She's supposed to be teaching some simple programming (no clue what languages, I didn't bother to take the comp sci class). And she knows that I know the stuff, so she would ask me about the simplest things. Which is 100% fine...if she wasn't teaching a computer science class.
She just does not seem fit to teach a computer science class. I'm sure that the school basically just threw her in there because they needed SOMEONE.
I'm honestly kinda scared for the students in the class that might want to go further into computer science, only having taken that class and having met the requirement for a more advanced class, but then being thrown into a class where they don't know a fucking thing.6 -
The worst project is the one I am currently working on. I didn’t build it but have to manage it, because... Reasons.
The projects is made on Core PHP(red flag right there).
But when I dig in I get to see there is no authentication used in any of the REST service. Yup. What's the fucking point of login if you are just going to update profiles based on user_id you Twat! The querying used is simply mysql_query (I have to say I expected that).
No relationships defined in the Mysql table structure. No migrations.
There is an upload feature which is forcing the image to be saved as jpeg, therby corrupting the images being saved on the server.
No security, terrible logic, no classes, terrible architecture.
And I am the chosen one to maintain this shit!
Truely, FML!!!3 -
Here’s one that has been the reason that I’ve not been on devRant for a while.
School counselor decides to come to me saying “Oh hey, it’s your last semester and at this rate you’re not gonna graduate bud” Why the duck couldn’t you tell me earlier?! Fine, fuck you, just give me FOUR extra online classes. ELA, Game Dev, Web Des, and Criminology. Alright, ELA and Game finished with no issue. Then comes Web.
This class is a complete piece of dog shit wrapped in HTML5 memorization hell. I don’t give a single fuck what a scrum is, or that this bitch doesn’t know how to ask her client if she can use their logo, the dumbass. How about you teach me more about actual STRUCTURE AND FUNCTION, HUH? MAYBE SOME EDUCATION THAT DOESN’T INVOLVE MEMORIZING ALL THE FUCKING HTML TAGS EVER?!
I am literally brute forcing my way through the tests. Failed? Open the lesson, close it, test reset and unlocked. Try again until you pass. Fuck this class in its miserably over complicated yet somehow over simplified existence.
Now I’m gonna go get some goddamn sleep. I’ve been at this shit for hours.6 -
Wordpress does not suck. If you know how to work it.
Past period I saw so many rants on WP. My rant is that it is not 100% WP fault. Yes there are seriously structural problems in WP but that does not mean you cannot create top-notch websites.
At my work we create those top-notch WP sites. Blazing fast and manageable. Seriously we got a customer request to make the site slower because it loaded pages to fast (ea; you hardly could see you switched pages).
- We ONLY use a strict set of plugins that we think are stable, useful.
- We have everything in composer (and our own Satis) for plugins.
- We use custom themes & classes. Our code is MVC with Twig.
- In our track history we have 0 hacked websites for the past 2 years.
- Everything runs stable 24/7
- We have OTAP (testing, acceptance & production environments)
- We patch really fast
These are sites going from $15k++ and we know our shit.
Don't hate on WP if you have no clue what you are doing yourself.
That is my rant.23 -
Taking IT classes in college. The school bought us all lynda and office365 accounts but we can't use them because the classroom's network has been severed from the Active Directory server that holds our credentials. Because "hackers." (The non-IT classrooms don't have this problem, but they also don't need lynda accounts. What gives?)
So, I got bored, and irritated, so I decided to see just how secure the classroom really was.
It wasn't.
So I created a text file with the following rant and put it on the desktop of the "locked" admin account. Cheers. :)
1. don't make a show of "beefing up security" because that only makes people curious.
I'm referring of course to isolating the network. This wouldn't be a problem except:
2. don't restrict the good guys. only the bad guys.
I can't access resources for THIS CLASS that I use in THIS CLASS. That's a hassle.
It also gives me legitimate motivation to try to break your security.
3. don't secure it if you don't care. that is ALSO a hassle.
I know you don't care because you left secure boot off, no BIOS password, and nothing
stopping someone from using a different OS with fewer restrictions, or USB tethering,
or some sort malware, probably, in addition to security practices that are
wildly inconsistent, which leads me to the final and largest grievance:
4. don't give admin priveledges to an account without a password.
seriously. why would you do this? I don't understand.
you at least bothered to secure the accounts that don't even matter,
albeit with weak and publicly known passwords (that are the same on all machines),
but then you went and left the LEAST secure account with the MOST priveledges?
I could understand if it were just a single-user machine. Auto login as admin.
Lots of people do that and have a reason for it. But... no. I just... why?
anyway, don't worry, all I did was install python so I could play with scripting
during class. if that bothers you, trust me, you have much bigger problems.
I mean you no malice. just trying to help.
For real. Don't kick me out of school for being helpful. That would be unproductive.
Plus, maybe I'd be a good candidate for your cybersec track. haven't decided yet.
-- a guy who isn't very good at this and didn't have to be
have a nice day <3
oh, and I fixed the clock. you're welcome.2 -
Got Ubuntu on my laptop for traveling 😁😁 Loving it, once I got Numix theme installed I loved it even more 😋
No one in my classes have ever heard about Linux or Ubuntu until they met me.8 -
Deadline is tomorrow as per this rant
https://devrant.com/rants/1363701/...
I taught my boss how to work his way around spring-boot + maven + jpa, I did a really good job with the classes and interfaces so he could update the project while I was on my two week vacation.
I set up CI/CD so no one should have to ssh into servers to make master branch live and I set up webhooks on gitlab to warn me on slack if anyone pushed any code.
Tomorrow is the deadline.
Tomorrow is the last day of my vacation.
No pushes made to gitlab, hence no deployment trigerred.
I'm here wondering if the fucker will push it on the last minute just to fuck it up tremendously.
Tomorrow I'm going to the movies and gonna turn my phone off :)4 -
I have this great professor who taught us how to be logical human beings (not that I learned much of that haha). He introduced us to web dev. He started with the basic html shit, then proceed with php and sql. His lectures were awesome. He'll then proceed with code exercises. And we'll have mini 'codefights' in his classes! yey! He taught us that in programming, it is much more important to practice logic than master a single language(no hate please). I learned to love programming through his passion. :) I learned to program in his class, now I hope never to stop learning. :D8
-
So in the 2nd grade of middle school.our classes had computers with projectors and teachers would present on them. At that time I was still a beginner in programming and knew some basic cmd commands, so before our teacher had come to class I went to the computer desk, opened cmd and then executed this command “shutdown -s -t 36000” which basically shutdowns the pc after 36000 milliseconds and then the teacher came to class and started explaining us a new lesson on a power point and half way through the power point the pc suddenly shutdowns and the class got wild. and no one admitted who did it so all the teacher did is to say” who ever did it pls don’t do it again”. Like wow...😂😂😂4
-
I hate buying new laptops. HATE IT. The manufacturers are always trying to do something that makes it more complicated to buy a laptop confidently.
Why not name all of the laptops with numbers? Make them really hard to differentiate. Then offer the same model number across multiple years so it is difficult to determine which year the laptop is from.
Oh. And let’s make sure every laptop has a major flaw in the form factor.
Let’a add a numpad that squishes the keyboard to the left in a weird way. Lets do something to the trackpad to make it awkward to use. Maybe the keyboard should have a weird configuration. Maybe we can put 4 spare characters of various colours on the symbol key caps. How about a battery only lasts a few hours. May we add specialized hardware so you are stuck with windows. Maybe we can make it super thick and heavy. Lets have a screen with terrible viewing angles. Since this laptop has no major flaws we should overprice it. No repairs or upgrades on this one because we filled the computer with glue. Lets double the amount of useless media keys.
It is like manufacturers are trying to design laptops like RPG game character classes. The fighter has no magic or stealth. The magician is weak and gets fatigued. The rogue is very stealthy but has poor defence and attack. The cleric can use magic but only to heal so it is useless in battle. The ranger is good at distance but has poor defence and no magic.
The only notebooks sold that are trying to make balanced character classes are MacBooks. Those cost a premium and aren’t reparable.17 -
Hey I got reminded of a funny story.
A friend of mine and me were in internships in the same company. The company was specialized in territory resources management (managing water for agriculture, money to build industrial zones...). He got the interesting internship (water predictory modeling) and I got... The repairs of a reference sheet manager that never happened to work. It was in C# and ASP.NET and I was in second year of CS. I expected the code to be nice and clear since it was made by a just graduated engineer with +5years of studies.
I was very wrong.
This guy may never have touched a web server in his life, used static variables to keep sessions instead of... well... sessions, did code everything in the pages event handlers (even LinQ stuff et al) and I was told to make it maintainable, efficient and functional in 2 months. There were files with +32k LoC.
After 1week of immense despair, I decided I will refactor all the code. Make nice classes, mapping layer, something close to a MVC... So I lost time and got scoled for not being able to make all the modifications as fast as in a cleanly designed code...
After 4 weeks, everything was refactored and I got to wait for the design sheets to change some crystal report views.
At this moment I began to understand were was the problem in this company.
My friend next door got asked to stop his modeling stuff for an emergency project. He had to make an XML converter for our clients to be able to send decentralized electrics bills, and if it was not completed within a week, they would no longer be able to pay until it is done.
This XML converter was a project scheduled 5 years before that. Nobody wanted to do it.
At the same time, I was waiting for the Com Department to give me the design views.
I never saw the design views. Spent one month implementing a golden ratio calculator with arbitrary precision because they ain't give me anything to do until the design were implemented.
Ended with a poor grade because "the work wasn't finished".2 -
"I don't see women as objects, each woman is in a class of their own! HAHAHAHAHAHAHAHA"
- People who have no fucking clue how OOP works
Objects are instantiations of classes, you poor, retarded bastards. You saw those two words while skimming your 1st year college textbook, made this joke, promptly changed to some useless English degree because you cried after your "hello world" program didn't run, and never looked back to see the damage you had done.
I know the joke is the word play but word play word play puns are retarded anyways. Everything about this pun is awful.8 -
I really hate fucking Wordpress!
I hate it's stupid API, with it's stupid hooks and actions and all those stupid functions and no fucking logic to any of it!
I hate it's stupid plugin system, with all that fucking overhead that brings no real value and adds all that complexity for nothing!
I hate stupid fucking multiple calls for the same fucking assets, loading them over and over again because every stupid plugin calls them again and again!
I hate motherfucking SHORTTAGS, or whatever the fuck they are called!
I hate that every stupid fucking plugin and shortcode and fucking every little fucking piece of HTML comes from a different fucking place, with different fucking structure and different fucking classes and stupid fucking loading seaquences that make no fucking sense!
And I hate fucking page builders !!!!!
Fuck!!!!
I should be fucking coding on this fucking peace of shit, but I just cannot fucking take it any more!!!
IT NEEDS TO FUCKING DIE!
It should be relegated to the darkest corners of the internet and all the servers that have it's fucking code anyware on their systems should be disconnected and buried in the deepest pits of hell, just to be sure it never, EVER, surfaces again!!!
AAARRRRGGGHHHHHHH !!!!!!!!!5 -
I'm coming off a lengthy staff augmentation assignment awful enough that I feel like I need to be rehabilitated to convince myself that I even want to be a software developer.
They needed someone who does .NET. It turns out what they meant was someone to copy and paste massive amounts of code that their EA calls a "framework." Just copy and paste this entire repo, make a whole ton of tweaks that for whatever reason never make their way back into the "template," and then make a few edits for some specific functionality. And then repeat. And repeat. Over a dozen times.
The code is unbelievable. Everything is stacked into giant classes that inherit from each other. There's no dependency inversion. The classes have default constructors with a comment "for unit testing" and then the "real" code uses a different one.
It's full of projects, classes, and methods with weird names that don't do anything. The class and method names sound like they mean something but don't. So after a dozen times I tried to refactor, and the EA threw a hissy fit. Deleting dead code, reducing three levels of inheritance to a simple class, and renaming stuff to indicate what it does are all violations of "standards." I had to go back to the template and start over.
This guy actually recorded a video of himself giving developers instructions on how to copy and paste his awful code.
Then he randomly invents new "standards." A class that reads messages from a queue and processes them shouldn't process them anymore. It should read them and put them in another queue, and then we add more complication by reading from that queue. The reason? We might want to use the original queue for something else one day. I'm pretty sure rewriting working code to meet requirements no one has is as close as you can get to the opposite of Agile.
I fixed some major bugs during my refactor, and missed one the second time after I started over. So stuff actually broke in production because I took points off the board and "fixed" what worked to add back in dead code, variables that aren't used, etc.
In the process, I asked the EA how he wanted me to do this stuff, because I know that he makes up "standards" on the fly and whatever I do may or may not be what he was imagining. We had a tight deadline and I didn't really have time to guess, read his mind, get it wrong, and start over. So we scheduled an hour for him to show me what he wanted.
He said it would take fifteen minutes. He used the first fifteen insisting that he would not explain what he wanted, and besides he didn't remember how all of the code he wrote worked anyway so I would just have to spend more time studying his masterpiece and stepping through it in the debugger.
Being accountable to my team, I insisted that we needed to spend the scheduled hour on him actually explaining what he wanted. He started yelling and hung up. I had to explain to management that I could figure out how to make his "framework" work, but it would take longer and there was no guarantee that when it was done it would magically converge on whatever he was imagining. We totally blew that deadline.
When the .NET work was done, I got sucked into another part of the same project where they were writing massive 500 line SQL stored procedures that no one could understand. They would write a dozen before sending any to QA, then find out that there was a scenario or two not accounted for, and rewrite them all. And repeat. And repeat. Eventually it consisted of, one again, copying and pasting existing procedures into new ones.
At one point one dev asked me to help him test his procedure. I said sure, tell me the scenarios for which I needed to test. He didn't know. My question was the equivalent of asking, "Tell me what you think your code does," and he couldn't answer it. If the guy who wrote it doesn't know what it does right after he wrote it and you certainly can't tell by reading it, and there's dozens of these procedures, all the same but slightly different, how is anyone ever going to read them in a month or a year? What happens when someone needs to change them? What happens when someone finds another defect, and there are going to be a ton of them?
It's a nightmare. Why interview me with all sorts of questions about my dev skills if the plan is to have me copy and paste stuff and carefully avoid applying anything that I know?
The people are all nice except for their evil XEB (Xenophobe Expert Beginner) EA who has no business writing a line of code, ever, and certainly shouldn't be reviewing it.
I've tried to keep my sanity by answering stackoverflow questions once in a while and sometimes turning evil things I was forced to do into constructive blog posts to which I cannot link to preserve my anonymity. I feel like I've taken a six-month detour from software development to shovel crap. Never again. Lesson learned. Next time they're not interviewing me. I'm interviewing them. I'm a professional.9 -
I had a manager who scolded me in me in public on a non-IT floor because I used child classes and overloading of methods which "is too hard to read". Instead use "lots of ifs and else's". This is the guy that had a JSP so large (be cause he had so many ifs) that it couldn't be compiled even on a server.
The best karma happened a few months later. I was looking for a new job (wonder why?) and was very deep in the interview process - like round 5- of company A. I got talking to this jackass, who had no idea I was interviewing, said "yeah I applied to company A once. Couldn't get past the first round. Great benefits, though.". Me getting the job a week later was the best thing ever. -
personalproject C++ codebase:
- Clean code,
- 1 class per file,
- naming conventions
- comments .
- No more than 10 files per folder
Work C++ codebase:
- 22 classes per file.
- Classname not the same as file name
- weird variable names CmdStng
- All files in one source folder.
- Source control from 20 years ago
Me every time I cannot find anything I wondering why it is in a different file on line 3574 inside another class with an unrelated filename6 -
I really need to let this out somewhere...
Why the f...? Srsly.. Why would anyone do that? I'm joining another project. Apparently lead dev has adopted a coding style, where:
1. Every dev writes code however he likes, i.e. no clean-code requirement at all.
2. All services are crud-only. I mean all service classes. All must have those 4 methods; no more, no less.
3. Half of the business logic is inside controllers.
4. Not a single comment... Interfaces, models, etc. -- not a single one.
5. Xmls -- tabs, classes - spaces.
6. Xml schemas are downloaded with each build rather than stored downloaded once and stored locally.
7. I can keep going on and on.
Is it just me or are these some really weird decisions?3 -
I just started a job as a junior C# dev.
My project at work includes:
-no coding style
-multiple classes in one file
-all classes are static
-who needs interfaces?
-typos in variable names
-more than 3 levels of inheritance
-conf files such as "blabla.xml"
-comments? documentation? nope
-copy&paste everywhere
Client outsourced this project to us to get the job done properly :D
Looks that I have some opportunity to show my talent.10 -
I have this project I've inherited, yea I seem to do that a lot, but this damn thing, has to run in php5.4, has deprecated functions for php7 everywhere and a lot of them and there's no classes anywhere beyond some libraries.
Everything is procedural with random scripts being injected left right and center.
I kid you not,
$thisThing = true;
If(x==y)
require "path/to/some/script.php";
else
require "path/to/a/slightly/different/script.php";
If($thisThing === false){
// well it was modified in that small block about 10 different times
}
Those injected scripts then accept data from the parent scope so, looking at file X, you need to have open file A,B, E, and M to understand where variables have been initialised and what there current state could potentially be.
Basically this thing was bandaid after bandaid for feature requests with 0 refactoring.
Here I am trying to implement some basic functionality (should only take an hour or so + a bit of manual testing) but no, I'm literally at the point of hitting the delete button on the entire project and starting again.rant why you no work what did i do to deserve this alcohol is your friend commented out blocks everywhere even with git there was no deleted code kill me now where the hell did that thing come from cocaine may help is this v2 file the right one don't do drugs18 -
I was helping my girlfriend's sister on her programming homework yesterday. But the thing is that she missed a lot of classes to be with her boyfriend. So now she has a reasonably advanced task, without knowing the basics.
Her assignment was to open a file, extract it's text, and count how many times an user-given word appeared on it. So here's how it went:
- so you use the input function to ask the user to type the word.
- ok, but where do I type the word?
- in that black screen, on the bottom of visual code
~ changes name of the variable that receives the input()~
-like that?
- no, that is just the variable name. You should type in that black screen AT THE BOTTOM OF VISUAL CODE
- oh, ok.
~ changes name of .py file ~14 -
Flash has made Java programs look desirable. And anyone keeping up with me knows I despise Java and C#, despite having written C# and currently working on deciphering a Java server to create documentation.
Before I begin, I want to make this clear: IT IS TWO THOUSAND AND FUCKING EIGHTEEN. 2018. WE HAVE BETTER TECH. JAVASCRIPT HAS TAKEN OVER THIS BITCH. So, firstly, FUCK FLASH. Seriously, that shit's a security liability. If you work for a company that uses it, find a new job and then fucking quit, or go mutany and get several devs to begin a JS-based implementation that has the same functionality. There is no excuse. "I'm fired?" That's not an excuse - if there is a way to stop the madness, then fucking hit the brakes on that shit or begin job hunting. Oh, and all you PMs who are reading this and have mandated or helped someone else to mandate work on an enterprise flash program, FUCK YOU. You are part of the problem.
The reason for this outburst seems unreasonable until you realize the hell I went through today. At my University, there is a basic entry-level psychology course I'm taking. Pearson, a company I already fucking hate for some of the ethically sketchy shit they pulled with PARCC as well as overreach in publishing to the point they produce state tests here in the US - has a product called "My PsychLab" and from here on out, I'm referring to it as MPL. MPL has an issue - it is entirely fucking Flash. Homework assignments, the textbook, FUCKING EVERYTHING. So, because of that, you need to waste time finding a browser that works. Now let me remind all of you that just because something SHOULD WORK does NOT mean that it actually does.
I'm sitting on my Antergos box a few days ago: Chromium and Firefox won't load Flash. I don't know why, and don't care to find out. NPAPI and whatnot are deprecated but should still run in a limited mode or some shit. No go on Antergos.
So, today I went to the lab in the desolated basement of an old building which is where it's usually empty except a student hired by the university to make sure nobody fucks things up. I decided - because y'all know I fuckin' hate this - to try Windows. No go in Chrome still - it loaded Flash but couldn't download the content. So I tried Firefox - which worked. My hopes were up, but not too long - because there was no way to input. The window had buttons and shit - but they were COMPLETELY UNRESPONSIVE.
So the homework is also Flash-based. It's all due by 1/31/18 - FOUR CHAPTERS AND THE ACCOMPANYING HOMEWORK - which I believe is Tuesday, and the University bookstore is closed both Saturday and Sunday. No way to get a physical copy of the book. And I have other classes - this isn't the only one.
Also, the copyright on the program was 2017 - so whoever modded or maintained that Flash code - FUCK YOU AND THE IRRESPONSIBLE SHIT YOUR TEAM PULLED. FUCK THE SUPERIORS MAKING DECISIONS AS WELL. Yeah, you guys have deadlines? So do the end users, and when you have to jump through hoops only to realize you're fucked? That's a failure of management and a failure of a product.
How many people are gonna hate me for this? Haters gonna hate, and I'm past the point of caring.7 -
Computer Science student here, and it looks like my group partners have no idea what keeping classes short and straight to the point means.
The project is in C++, and I'm trying to understand this mess that they made, when they have a class called "Manager" that basically did EVERYTHING, whose header file has only the declarations of functions. 50+ functions. Only half of then documented, and most of them with apparently random names. The file has more than 200 lines of reading.
I've never worked with so much Spaghetti in my life yet.
Worst part: I spent time and effort organising some other classes, breaking down methods, untangling code and all that tedious stuff. But one week before delivery, they decide to delete all of my work, because they "didn't understand it" and didn't even think of asking me to explain the changes.
And if that wasn't enough, they refused to give me some percentage of the grade due to that code not being in the delivery.
I am so freaking done with those guys -_-9 -
PHP arrays.
The built-in array is also an hashmap. Actually, it's always a hashmap, but you can append to it without specifying indexes and PHP will use consecutive integers. Its performance characteristics? Who knows. Oh, and only strings, ints and null are valid keys.
What's the iteration order for arrays if you use them as hashmaps (string keys)? Well, they have their internal order. So it's actually an ordered hashmap that's being called an array. And you can produce an array which has only integer keys starting with 0, but with non-sequential internal (iteration) order.
This array weirdness has some non-trivial implications. `json_encode` (serializes argument to JSON) assumes an array corresponds to a JSON array if its keys are consecutive integers in increasing order starting with 0, otherwise the array becomes a JSON object. `array_filter` (filters arrays/hashmaps using callback predicate) preserves keys, so it will punch holes in the int key sequence if non-last items are removed, thus turning arrays into hashmaps and changing your JSON structure if you forget to discard keys before serialization.
You may wonder how JSON deserialization works, then? There's a special class for deserialized JSON objects, `stdClass`. It's basically a hashmap too, but it's an object, not an array, and all functions that would normally accept arrays won't work with it. So basically its only use is JSON (de)serialization. You can even cast arrays to objects, producing `stdClass`.
Bonus PHP trivia:
Many functions return nonsensical values. `preg_match`, the regex matching function, returns 1 for success, 0 for no matches and false for malformed regular expression. PHP supports exceptions, so it could just throw one on errors. It would even make more sense to return true, false and null for these three cases. But no, 1, 0 and false. And actual matches are returned by output arg.
`array_walk_recursive`, a function supposed to recursively apply callback to each element of an array. That's what docs say. It actually applies it to leafs only. It will also silently accept object instead of array and "walk" it, but without recursing into deeper objects.
Runtime type enforcing is supported for function arguments and returned values. You can use scalar types, classes, array, null and a few special keywords. There's also a `mixed` keyword, which is used in docs and means "anything". It's syntactically valid, the parser will accept it, but it matches no values in runtime. Calling such function will always cause a runtime error.
Strings can be indexed with negative integers. Arrays can't.
ReflectionClass::newInstanceWithoutConstructor: "Creates a new class instance without invoking the constructor". This one needs no commentary.
`array_map` is pretty self-explanatory if you call it with a callback and an array. Or if you provide more arrays of equal length via varargs, callback will be called with more arguments, one from each array. Makes sense so far. Now, you can also call `array_map` with null instead of callback. In that case it treats provided arrays as rows of a matrix and returns that matrix, transposed.5 -
I feel JS has taken over...
The good.
Easy to learn, thus everyone knows it
The bad.
Everyone knows it, so npm has disgusting code that's used in prod.
Npm itself is still an unstable mess at times.
No one knows what it is to be a good programmer .
Dozens of frameworks every year since everyone thinks they can make it a bit better.
Classes still suck , no interfaces !6 -
2013 Wanted to make games with unity, no prior experience. Failed horribly learning unity script. Nothing made sense.
2014 change in carreer from retail to sysadministration at a local small recycling company ( no prior experience other than being a digital native )
2015 Got bored at work, learned c# with scott lillys tutorials. It clicked!
2016 i enroll in cs at local university. Acing most classes, even got a b on the math module i took. I am 28 now and my life changed a bunch to the good thanks to coding, tech and cs.3 -
I was in second year of University when I joined the internship, I knew the business idea sucks and he wouldn't be able to carry out the operations either. Little did I know that I will work with the dumbest team ever, literally, the dumbest.
So, the major chunk of the software was outsourced to a consultancy. I was a tech intern, and we were developing an Android App that will save your parking location, let you reserve locations and all etc.
I knew I have stepped on a wrong turf, but again, I had nothing better to do that summer. So, for a very meager stipend, I said yes to a very stupid project. Let the stupidity flow...
~ The boss, had quit his job for this dumb idea with no funding, no team, nothing.
~ He was pursuing a certification course in Android Development from somewhere, where their final project will be a calculator!
~ He had little to no tech skills, hardly knew Java but was leading an Android App Dev project in Java. He had little to no managerial, marketing or sales skills either.
~ For a brief period, I had to work along with the consultancy guys to ramp up their work. They would take backups in a USB drive every evening, and share each others code using the same. VCS died a painful death that day.
~ They hardly wrote functions, rather, wrote very long code in the main (onCreate) function. Code style died of cancer.
~ They couldn't compress an image before sending it to a server. I had to do it for them.
~ Had no concept of creating utility classes.
And best of all,
~ Wrote 20 cases (switch case) with the same code! Instead of using a loop...1 -
Has anyone felt the astonishing effect that is writing a whole bunch of test classes, hitting run for the first time and they all pass.
I'm kinda sitting here staring at my screen in disbelief, either these tests all passed, or I've really missed something and they passed anyway, or it's just a lying piece of shit trying to question my own abilities... all are possible right now.
And no, they are not " assert(1,1) "rant i think it's lying to me tests classes first go all pass i'm a run these again to be sure i don't believe it4 -
Set out to copy the iOS alarm on android because a) android's stock alarm is fugly and b) all other sleep reminder apps either offer me way too much or no functionality.
Week 1: "Oh, custom UIs need a lot of math... Ok."
Week 2 "Why on earth is my ram usage at 400 mb?!"
Week 6: "I have come to the realisation that android's ByteArrayDecoder should burn in hell.
Week 7: "Man... They sure made the management of intents and pending intents a pain."
Week 10: There. It works. Two classes, 7000 lines of code.... Hmmmm maybe apply MVP."
Week 11: I discovered embarrassment driven development, throw away all my code and start from scratch.
Week 12: Oh ButterKnife, where have you been all my life?
Week 17: I might actually finish this in my life time!
Week 28: Man, this MVP and managing Context, intents, SQLITE DB and pending intents do not mix well.
Week 46: I discover RxJava and Dagger 2
Week 47: I discover that the 'V' in MVP does not refer to an 'Activity'
Week 48: My StudyBudy says to me "Man, exams are only a month away!"
Week 49: I put all your code in my github, delete it locally and focus back on being a student.2 -
So c# has its own system.collections.list and system.collections.generics.list<type> classes. And this guy wrote his own list (no generics) using an object[] array which always had same size.4
-
I don't get it why there are so many people out, that think testing stupid model classes with getters and setter is needed.
Dude. There is no logic in this class ... it's pure data that gets not modified there (well except if you call the setter)
I've wasted way too much time writting useless unit test because some ppl want to masturbate on 100% code coverage 🤦🏻♂️12 -
!rant
Got back into android development recently and while everything was pretty flawless ( I managed to get the basic concepts implemented in a day) something wasn't right.
For some reason I was not happy with the code i wrote, although I took examples from google and tried to adapt their code style. It looked aweful. I hated my code.
But the code itself wasn't the core of the problem. I could easily add new features and replace components with new implementations without breaking the app. All those "good code quality" identifiers were there.
Turn out the problem is Java. Or to be more specific: Java 1.6
Every listener which only calls a single function once a worker has finished needs 6 lines of code. If you implement the inferface in the class it gets messy once there are multiple workers and you have a generic interface. And there are no lambdas!
So I made the switch to Kotlin.
The app was converted to kotlin in 30 Minutes. Android studio can convert the classes automatically and very little manual work is needed afterwards.
After that I spent 2 hours replacing the old java concepts with Kotlin concepts: lamdas, non-nullable types, getters and setters in kotlin style (which in this case is c# style) and some other great thing.
The code is good looking now. I like it. I like kotlin as it has a lot of cool things.
Its super easy to learn. It took me about 2 hours to get into it. It combines concepts from java, javascript, c# and maybe a few other languages to form a modern jvm 1.6 compatible typesafe language.
Android dev is fun again!2 -
A few years ago I was in high school and used to have a small reputation of hacking things. I could hack, just would never hack any school networks or systems (reputation + notice that there was a breach is a bad combo since everyone would immediately suspect you).
Anyways one day the networks internet connection went down in the school district and I was the only one who used a laptop to take notes. So I quickly opened the terminal and ran Wireshark and said to the person to my right "see that button there? yeah I programmed this last night. anytime I press it I can shut down the network so the teacher can't reach her files (she famously only saved them online). *Long dramatic press* Wireshark started scanning the network so all the numbers and lines were going crazy as it viewed the packet info "Now just wait", soon the whole class knew what I had done through whispers and lo and behold a few minutes later and the teacher couldn't reach her files.
Everyone loved me for the rest of the year for saving them from the homework for the week the wifi network was out since it also ended up having to cancel two tests in the class, and a lot more homework and tests in all their other classes. Solidified my reputation and no one fucked with me from that day on. -
It was 1986. I'd just bought a computer because I wanted to make a cool flight sim like I saw a friend at school do by typing in a bunch of code from a magazine. I read a thick book on DOS/BASIC and another on Assembler. As I had no idea what Assembler could possibly be useful for in my life, I went the DOS/BASIC route and made some fun programs. Then it was Prolog followed by C and Smalltalk and then HTML and JavaScript. All by taking classes or reading books and then making something useful or teaching others.
-
I started out learning Python. And before you "tsk, kids these days", it was before Python became the go to starter language for a lot of universities. No, I started learning around age 12.
My dad (a programmer himself), bought "Python Programming for the Absolute Beginner" and we went through it together. He started out holding my hand as I went through the exercises, but pretty quick I was getting through them mostly on my own.
It was really fun, and I'm absolutely going to do the same if/when I have children of my own. The books exercises were all games, which made it really fun. Instead of "hello world", the first program printed "game over". I was super proud of the hangman game I eventually wrote.
It gave me a leg up when I started taking actual classes, and really instilled a love of coding and puzzle solving in me that propelled me through two degrees.2 -
Pissed off. Planning on imposing a company wide hook that prevents you checking in code with a @Generated annotation. Seriously, never even heard about it being used outside of auto generated code until some bozos here seem to have started using it to silently drop complicated classes from test coverage metrics. Is this a thing with new coders these days, or are my lot just cowboys?!
No more, anyway. Sometimes it's convenient to be able to pull rank.8 -
I have no idea how this code that I wrote last year work and there's obviously no documentation but thankfully I gave my classes very useful names such as "YuDoDis", "Texter467", "TheHolyButton", "GARBAGE", etc. Fucking hate myself sometimes.3
-
> Advice to new coders
Don't worry over picking language A or B.
Just pick A, use it for a month, then move on to B.
In a normal 3 year college degree you'll try multiple languages, some of which you'll never use again, and they'll each teach you something.
I had classes in Java, C, C++, C#, Prolog, Assembler, F#, JS.
Never used F# again and no one uses Prolog. But they were great for learning recursion and logic.
It's not like you take "a step down a bad path" if you pick a language you're never gonna use again.
You'll also learn new stuff on the job. We have one team that uses Go and one that uses Rust. None of the devs ever studied those languages. They were mostly former Java devs who leaned on the job.2 -
I spent the last weeks rewriting a huge project which I had to hurriedly write a year ago. No comments, no documentation, spaghetti code. Part me was an asshole! But now I am done, all is new, everything is well commented, structured in classes with well defined tasks. Yay.2
-
When good developers are afraid of refactoring and adding new classes is something to be feared, you need to rethink your architecture.
In fact, if there's ever that "dark corner" of code that no-one likes to work with, you've got to fix it.
It's like continuous deployment. We do it often because it's hard and having to deploy regularly forces us to make it easier.2 -
You lousy fucking test class of an ass wipe,
TLDR; it fails and it passes all at the same time.
So during a deployment, one of the pre-deployment test classes fails, not something anyone has worked on so figured I run it manually to see what’s going on, but no the shit of a thing passed second time around.
Now because we can’t deploy without 100% of the test classes passing so I have to organise another deployment which it fails again. Fuck this,
Unprotects master
Git checkout master
Git merge dev
Git push master -f
Protects master
Skrew this!
Well would you look at that, it works now 😰 -
This is going to take a second to get dev related, please bear with me.
So, I'm from a pretty small (and poor) town. Like most small towns, not many give a damn about computer science/IT (that shows by the fact I'm the only CS major. And there's one IT major).
Now, my high school offers a few "career prep" classes. There's (no exaggeration) almost 5 or 6 classes for medical majors to prepare themselves; like 4 different agriculture based classes; 2 business major classes; and surprise surprise...not a damn Computer Science or IT class.
Yes, we have a computer class. But can you even call a "How to Use Microscoft Products" class an computer class? Finally by my senior year, I got pissed off by this.
I had/have relatives that have worked/are working in the school system, so it wasn't hard to get a meeting with the superintendent and the assistant superintendent to discuss my thoughts. They were both open to and even supported my ideas. But due to funding, it wasn't a feasible idea at the time. (Especially since not many care about CS or IT.)
This is where I get really really pissed off. Being that the town is small, the people with money/a name tend to control things. So, a former principal retired with the expectations to work in another county. However, this job fail through. But there was a "magical" opening for a job that didn't exist before this job fail through.
This pisses me off. We can create a job for someone and afford a full time salary for them, but we cant get an actual CS class. (And this isn't the first time a job was created for someone.)8 -
Liferay. Fucking Liferay.
I'm mostly C#, Java Dev with only a year of experience and as Kruger-Dunning effect says, I thought I'm not that bad. At the beginning of my job I've got tasked with creating an portlet for Liferay CMS which is written in Java. Can't be that bad, right? WRONG.
Liferay is real shit. Not only there is little to none community life but also documentation and tutorials are outdated! Many methods are doing the same functionality but are in different packages. JSP make coding a big fucking mess if you won't make shit ton of classes to clean it up. Also it has this incredible ability to crash whole portlet after a small change in classes structure.
I have to mention that no one could help me because company that I'm working for is a rather small one and there's no other Java developer beside me. This also means that it's hard to really get gut when no one is oversying my progress.
Also I really dislike web development. And Liferay made it even worse. I hope it will burn in hell.1 -
I'm 19, and I was given a $1500 scholarship to take 80 hours of Office 2016 classes. It was going to disappear if no one used it. I get to stay home for the online courses, and it doesn't count against my vacation time.
I get paid for 8 hours a day while I take each class, even though I get an hour lunch and usually get out of class an hour early.
I know 99% of Office capabilities already, but this is a good stress reliever. Life is good4 -
Maybe in special dedication to @kiki.
I cut the unit tests down in LOC size by roughly 50 - 60 % in most projects.
It's really easy once one sees unit tests not as a dunking pile of copy pasta wild west, but rather as a code base that needs architecture and design.
Some extensions, some annotations, some good old helper classes.
Pooooof.
Why I did this? ...
Because it's fucking annoying when you read a PR with tests and need a fucking diff tool to spot the difference between two tests cause they're 80 % the same.
Yeah. Thx for giving me brain cramps, motherducker.
I'm not an expert in unit tests, but if all test codebases look like the "usual stuff" in our projects...
It's no wonder bugs exist...10 -
Kinda all other devs translate incompetent with a lack of knowledge
i would go with not able to recognize his lack of knowledge
Story 1:
once we had a developer, whom was given the task to try out a REST/Json API using Java
after a week he presented his solution,
2 Classes with actual code and a micro-framework for parsing and generating JSON
so i asked him, why he didn't use a framework like jackson or gson, while this presentation he felt pretty offended by this question
a couple of weeks later i met him and he was full of thanks for me, because i showed him, that there are frameworks like that, and even said sorry for feeling offended
- no incompentence here -
Story 2:
once i had a lead dev, who was so self-confident, he refactored (for no reason but refactoring itself) half the app and commited without trying to compile/run test
but not only once, but on a regular basis
as you may imagine, he broke the application multiple times and blamed the other devs
- incompentence warning-
Story 3:
once i had a dev, which wanted to stay up with the latest versions of his libraries
npm update && commit without trying to compile/testing multiple times
- incompentence warning-
Story 4:
once i had a cto
* thought email-marketing is cutting edge
* removed test-systems completely to reduce costs
* liked wordpress
* sets vm to sleep without letting anyone know
- i guess incompetent alert -2 -
!dev (?)
Ughhh
I hate fucking school books,
My students get their books from the school, they got a 2014 edition, I got them from my employer, I got the 2019 edition.
"How different could they be?"
Totally different, the chapters are in a different order(Who learns classes before loops and conditions???) everything is different. "Okay", you might say, "surely it's just just a few pages prior or later right?"
No!
"So open your books on page 69(lol)" *Starts explaining*
Students: *Look confused* "ehm, Soldier? Are you sure that's the right page? I don't see the table"
Me: "Lemme check I'm not wrong" *Looks at the book* "Yeah, page 69, you see the table at the bottom?"
Student: "No?" *Shows me book*
Me: "Wait, that's not what I have, can you show me the book?"
*Looks at book, it's a completely different subject and chapter*
*Goes to ToC, finds the place where the table is*
It's on page fucking 98, this happens for a few more times.
"Okay forget the book, I guess I'l just draw everything on the board for now."
Fuck you book publishers or whoever is responsible for this cashgrab of planned obsolescence.5 -
I hate hearing "this should be a quick one" from the client. Especially when your code base is a fucking legacy with no documentations, no testing, and a multisite that shares the same classes where functions has some crazy if conditions just to satisfy each site's requirements.2
-
Just got a new job at an old school hardware company. The codebase is giving me heart attack. They don't care about dev experience or code navigation at all. Every attempts to modernize the codebase is so half assed. All patches are so bloated that make the codebase even worse.
Frontend is migrated from prototype-oop-jquery cluster fuck to AngularJS, then finally angular. Holy moly, all business logics are baked into UI "classes" using prototype chain. When they migrated to AngularJS, someone simply added a wrapper to that jQuery cluster fuck class and overwrote all the prototype with a 10k +lines file. Since all the methods are hidden in either prototype, JS object, or callback function, it's impossible to trace the data pipeline using IDE when "go to definition" on update() method gives you all the update methods/string in all objects/classes. And they don't care about immutability. References are taken out, renamed, and mutated everywhere. Finding the source of a bug is fucking guessing game.
I don't know what trick they use that makes cLion static analyzer fail.
And there is no unit test or spec doc.
Fuck me dead3 -
You know what really grinds my gears? When people criticize a programming language but uses edge cases and stuff that can be avoided by using the tried and true "don't be an idiot". Take for instance JavaScript, a language I like and a language that has a lot you can criticize. But I feel like a lot of peoples criticism isn't warranted.
What's that? No ints? Use parseInt or Math.floor.
What are you saying? == works in strange ways? Yes, that's what we have === for.
Type coercion is wonky? Think it's weird how string + int works differently than string - int? Wanna string with number + - + - - + - - etc? Don't! Don't add strings and ints, don't subtract strings and ints. You can't in statically typed languages and you aren't supposed to in dynamically typed
Adding arrays and objects, arrays and arrays, objects and objects etc. is inconsistent? Why are you trying to do that?
Adding floats together gives odd results? Now we're getting somewhere! And Mozilla responded to that with a method called toFixed.
Declaring variables with var doesn't always work that well? Use let and const
Then there's this weird attitude that some people I've met have, where they will complain about the module system and how "well you rely on the community for those packages" as if it's a bad thing. And then coming with the "well you don't know what the (open source) packages do internally" as if I (for the most part) give a shit. Then they'll swear by companies like Zend or Microsoft as if they can't just stop supporting the languages they use. Maybe it's just because I like community content more because of video game mods.
Wanna criticize JS, then there's plenty to talk about. Like the built in date object is basically shit. Or how in NodeJS you can have node_modules in your node_modules. Or how classes don't really have the best syntax. Left-Pad. And so on (it's too late for me to be able to remember much more).1 -
Rant much...
I just started working on project after a group of students.
The project has various of bugs (ofcourse) and not catched exceptions.
I found variables like 'abcd' or shorts of classes like 'rrms'.
I would be fine with all of that but there is one thing is just making me crazy:
THERE IS NO SINGLE FUCKING COMMENT IN WHOLE SOLUTION (three projects and about few hundred files with javascript and cs).
Imagine freaking pure react (no jsx) full of null arguments and multiple custom control written like 'var gl= GreenLabelled(null,null,text,5)' (a button ) with again, NO FUNCKING SINGLE COMMENT.
I just cannot stand it. Just spent 3hrs to wrapp my head around events in this react classes...10 -
For the first two years of college or so, my dad would often ask when I was going to start taking apart computers in classes.
"Dad, we don't do that."
....
"No, I'm learning about the software aspect."
...
"Never."1 -
So, first a bit of background:
We've got a parent class, owned by another team, and two child classes, owned by my team. One of the children is unused. (Already sounds bullshit right.)
On to the story:
6 months ago, I had to modify one of the children (add new functionality).
I try to modify the base class to add it, the senior dev in charge says "no, just add it on the child". So I do, then merge it in.
Yesterday I wake up to a high priority bug. Turns out the senior guy wants to add another child class, and wants the functionality I put in my class on the base class.
Even commented on my PR from 6 months ago asking why I didn't do that.
The fucker opened up a high priority issue assigned to me, asking ME TO DO THE CHANGE I WANTED TO DO 6 MONTHS AGO THAT HE SAID NO TO.
Fuck this shit. I have a meeting with him and my boss in an hour. My boss is pissed, I hope he tells the other guy to go fuxk himself and do the change himself.14 -
Is it usual in your university that students don't come to classes for no reason?
Or just seeking for a chance to cancel the class?
Or I'm just the only one who can't wait for learning new things?7 -
My two cent: Java is fucking terrible for computer science. Why the fuck would you teach somebody such a verbose language with so many unwritten rules?
If you really want your students to learn about computer, why not C? Java has no pointer, no passed by reference, no memory management, a lots of obscure classes structure and design pattern, this shit is garbage. The student will almost never has contact with the compiler, many don't even know of existence of a compiler.
Java is so enterprise focused and just fucked up for educating purpose. And I say it as somebody who (still) uses it as main language.
If you want your students to be productive and learn about software engineering, why not Python? Things are simple in Python can can be done way easier without students becoming code monkeys (assuming they don't use for each task a whole library). I mean java takes who god damn class and an explicitly declared entry point which is btw. fucking verbose to print something into the console.
Fuck Java.17 -
Ahh boy, uni sure is fun...
I missed my comp-sci class last week when we got a project assigned. No big deal, right? We have an online student portal where teachers can post assignments for everyone to see. I'm sure it's in there.
It's not.
Okay. How about the syllabus? Professors are supposed to create a weekly schedule for students to follow, it's probably in there, right?
Nope. Nothing.
Alright... I guess I'll email him. At this point about two classes have passed and I haven't heard anything in class, so I fire off a quick email to the professor asking for the details to be posted to the web portal so I at least have some idea of what I'm doing.
Surprise surprise, I get a response in about an hour.
"I'm not posting anything online. You should have been in class. Talk to a classmate."
*sigh*
So, from what I can gather from my classmates, we have to design a game using python. It might be a quiz, maybe. We have a week.
Are you fucking kidding me? Is it really that hard to take 20 minutes to type up a few requirements so your students at least know what you're grading for? I barely have any idea of what you even want, and from the three people I talked to it wasn't very clear even when he explained it in class. Post your assignments online, asshole!7 -
SCStudentRant?
I have a subj called "Fundaments of Operative Systems" (or something along those lines), and I have 2 crappy teachers, one for the theory classes, the other for the exercise classes.
The exercise classes teacher is said to be the worst in uni and every time I think about that class I get a bit anxious because I can never do anything in it. Basically we don't get taught code in theory classes and he just comes and says "do this exercise" without explaining anything first. And when he does I still don't understand it.
I bet like 90% of us have no idea how to program in C and we need that for those classes. I hate C with a passion because of this.
In the theory classes, the teacher explains most of the things without powerpoints, and when we don't understand something (either ask about something he said or what's written in the board), he REFUSES to explain or say what's written, because he has "explained it before". He even chuckles as if it was really funny that we can't read his handwriting or just didn't listen because we were writting things down OH MY GOD. So most of the times when I copy things from the boards and then look at them at home I'm like "what the hell is this, this doesn't make any sense, what did he even write" (has some word that looks like what he wrote with ?? around it)
I think they wanna watch us fail. I really do.
I kinda understand the theory classes, but half the test is writing code. How am I gonna write code if I don't understand it? I have a work for that subj to deliver until monday but I can't make it work because I don't know the code I have to write. Damn it all to hell jesus christ
Additional note: they're both in their 60s and should be retiring not long from now so maybe that's why they act so carelessly.
Love the uni, not so much some of the teachers2 -
(first post/rant on here)
So I recently started at a new company. I was kinda aware that the project I'm working on would be rather old school (to put it in a nice way :-)).
Part of my job is to 'industrialize' and update/clean up the existing code so there is less time spent on fixing bugs due to bad design.
One of the first things I had to do was to write a new interface to integrate with external software.
I already noticed some rather nasty habits, like prefixing every variable with m (don't know why), private fields for every property (all simple properties) and a whole lot of other stuff that either is obsolete or just bad practice.
Started writing clean code (simple classes with properties only, no m prefixing, making sure everything is single responsibility, unit tests, ...).
So I check in the code, don't hear much from it again besides the original dev/architect that started the project using my code to further work on that integration.
Now recently I started converting everything from TFVC to Git (which is the company standard but wasn't used by our team yet). And I quickly skimmed through my code to check if everything was there before pushing it to the remote repo.
To my surprise, all the code I had written was replaced by m prefixed private variables used in simple properties. BL classes were thrown in together, creating giant monstrosities that did everything. And last but not least, all unit tests were commented out.
Not sure what I got myself into ... but the facepalming has commenced.14 -
During a design meeting, our boss tells me that Vertx's MySQL drivers don't have prepared statements, and that in the past, he's used a library or his own functions to do all the escaping.
"Are you kidding me? Are you insane?"
I insisted that surely he must be wrong; that no one would release a database library without built in support for query arguments. Escaping things by hand is just asinine and a security risk. You should always use the tools in the database drivers, as new security vulnerabilities in SQL drivers can be found and fixed so long as you keep your dependencies up to date.
He told me escaping wasn't as tricky as I made it out to be, that there were some good libraries for it, and insisted Vertx didn't have any built in support for "prepared statements." He also tried to tell us that prepared statements had performance issues.
He searched specifically for "prepared statements" and I was like, "You know they don't have to be called that. They have different names in different frameworks."
Sure enough, a short search and we discovered a function in the Vertx base database classes to allow SQL queries with parameters. -
8 years ago,
I studied in a small school and every year we had computer classes, but most of the times, it gets cancelled or we just sit and browse and sometimes few of us don't even get a computer.
In that time, the only reason I was attached with the computer was due to games.
Our curriculum mentioned HTML, CSS, Access and Excel, which none of the teachers taught us for past 2 years. I wanted to learn all does, but gave up since no one cared about it.(please note that time, I didn't know even to use YouTube or W3schools to learn stuffs)
Then, a new student joined in our class and also a new computer ma'am joined our school. Both of them turned out to be really fun when it comes to learning computers.
She was active during last sessions and teach us HTML, CSS. I even started writing blogs which she taught. The most surprising part was she was super frank. She went beyond her duty, and taught me what Facebook is, how to use it, and opened an account for me which I am still using it, and she sent a friend request to herself. (In lab, past teachers would shout to students trying to open fb. All of them were super strict.)
She was kind and friendly, and during theory classes, the new student in our class would answer every single question. Then, somehow we both started sharing sits in computer class, and he will tell me answers and we both raise hands to answer the question. My teacher will also keep asking interesting questions which made me more inclined to computer science.
My story isn't related to learning a programming language or an algorithm, but it was the wave that brought me closer towards CS and after 2 years, I joined CS in University and till now, haven't look back and always thanked both of them, my respected ma'am and my dear friend, who inspired me and brought out my curiosity towards computers.
Note: My friend is doing Medical currently and when I teased him that I did CS and now, I know more than you and this time, I am gonna whisper in your ears if someone asks any question, to which he replied, I accept I am doing Medical, but I still love computers and know a hell lot about it.
My teacher got married and she also got a cute baby. We talk occasionally in fb and she is going great too.
I hope to meet both of them someday soon. -
I just have to rant...
7 months ago, I was still a pretty new iOS developer, but finally coming into my own. My boss gave me my first feature ever... a fully custom backend tweaker for our development builds, complete with text fields that devs and testers alike could fill in themselves for whatever they needed to test. I worked harder on that than I’ve ever worked on anything... and I got to make all the decisions on how it looked, behaved, what exactly the user saw/read... everything.
A month ago the most senior dev on my team was asked to update the tool to prepare for a backend migration to a new server. He was then hired to work for Apple, hurried to finish this task, and left forever. (He deserves it, we probably were slowing him down realistically. But that doesn’t forgive the following...)
Unfortunately, he thought it’d be a good idea to remove my entire custom backend tool in the process. Not sure why— maybe he thought it was legacy code or something. He must not have tested either, because the entire backend selector stopped working after that. But that was no problem— I could fix the pre-filled environment buttons just by updating a few values.
It’s the fact that he removed 100+ lines of my custom code from 3 separate classes (including entirely removing one of those classes), for no known reason, and now I have to completely rebuild the feature. Since it was entirely custom, it required no change for our migration in the first place. But he rewrote how the entire view works by writing an entirely new VC, so there is no chance I can just restore my work as it was written.
And in the shared class, he erased every line with the word “custom.” So, so many lines of hard work, now irrelevant and only visible in old defunct versions. And my boss has asked me to “just make it look how it did before the migration.”
I know it’s useless to be angry at a guy who’s long gone, but damn. I am having a real hard time convincing myself to redo all this work. He removed every trace, and all I can think is WHY DID YOU DO THAT YOU FUCKING MONSTER? IT WAS MY GREATEST WORK, AND NOBODY ASKED YOU TO DESTROY IT. THIS WAS NOT EVEN RELATED TO THE TASK YOU WERE GIVEN, AND NOW A SIMPLE TICKET TO RESTRUCTURE A TOOL HAS BECOME A MANDATE TO REBUILD IT FROM SCRATCH.
Thank you for being here, devRant. I would’ve gotten myself into deep trouble long ago if I didn’t have this safe place to blow off steam 🙏4 -
So I took over a project from another dev after he left the company and his project was currently in QA pending release. They were blocking it due to some issues around the persons information not appearing consistently. It turned out he wasn't persisting the persons information in the database with the actual record.
It would be as if when you ordered something on amazon and changed your address for a future shipment all shipments would show the new address. So it turned out QA had no idea how bad the problem was and they had pushed this issue to him to fix but he just wasn't fixing it.
When I reported the problem to my boss and due to the time constraints for release they authorized a contractor to come in to assist. I ended up writing a few classes and one table to persist the data and all of it was solved. I ended up fixing the problem in one weekend. Huge problem and I fixed it in just a few days. -
Hey this is the first time i post here.
I just started working part-time for this company last week. What i have to do is to change some windows from Win32 to WPF. As i was reading the legacy code i just had to sigh man. They have like 100 projects in a single solution, from C++ to C#, everything acctached to each other, with almost NO comments or docs. Wtf man? I don't know how it actually works in the industry (this is my first dev job) but when you write fucking 20 classes with each one contains bunch of attributes, methods, properties, you can't just leave all the code's semantics in their names. And by the way the app is so fucking ugly i bet they have appointed part-time developers as UX engineers... Even i have little knowledge about UX/UI, i just can't bear with this kind of ugly and confusing and unintuitive production with a cost of a good photo editting software.
Ok there may be much more to rant in the future but let me try through this and tell you more. Have a good day. :)5 -
WTH...
While styling some frontend stuff with LESS, I experienced that on one page template the <header> was not displaying the given line-height eventhough the whole fscking code was 1:1 identical with the other template in which everything was fine. I checked EVERYTHING... caching, URL, source, classes, open / wrong tags, HEAD, ... I even did a diff compare. NO FSCKING DIFFERENCE!
After one hour of pulling out hair I suddenly saw that in the faulty template file 2 lines were missing:
<!DOCTYPE html>
<html lang="devRantLang">
WHOEVER DID THIS: YOU ARE FSCKING STUPID!!! (it was me...)7 -
Who thought Lua was a good idea for extending gameplay functionality??
It's weakly typed, has no OOP functionality and no namespace rules. It has no interesting data structures and tables are a goddamn mystery. Somebody made the simplest language they could and now everybody who touches it is given the broadest possible tools to shoot themselves in the foot.
Lua's ease of embedding into C++ code is a fool's paradise. Warcraft 3's JASS scripting language had way more structure and produced much better games, whilst being much simpler to work with than Lua.
All the academics describing metatables as 'powerful extensionality' and a fill-in for OOP are digging the hole deeper. Using tables to implement classes doesn't work easily outside school. Hiding a self:reference to a function inside of syntactic sugar is just insanity.
Nobody expects to write a triple-A game in lua, but they are happy to fob it off to kids learning to program. WoW made the right choice limiting it to UI extensions.
Fighting the language so you can try and understand a poorly documented game engine and implement gameplay features as the dev's intend for 'modders', is just beyond the pale. It's very difficult to figure out what the standard for extending functionality is, when everybody is making it up as they go along and you don't have a strongly-typed and structured language to make it obvious what the devs intended.
If you want to give your players a coding sandbox, make the scripting language yourself like JASS. It will be way better fit for purpose, way easier to limit for security and to guarantee reasonable performance. Your players get a sane environment to work in and you just might get the next DOTA.
Repeatedly shooting yourself in the foot on invisible syntax errors and an incredibly broad language is wasted suffering for kids that could be learning the programming concepts that cross all languages way quicker and with way more satisfying results.
Lua is hot garbage for it's most popular application, I really don't get it. Just stop!24 -
I bring you all another gem from my computer science course, this time from my OOP class.
The first assignment we made for this class was a simple CLI shop, where you would have basically three main classes:
- A Product class that you extend to create different types of products.
- A Cart class that manages a list of products (basically an ArrayList<Product>) and has some useful methods
- A CLI class to display a simple interface to the user and call methods on a Cart.
Basic OOP stuff, so far so good.
Then for our second assignment the teacher asked us to make Cart a generic class, where you would say Cart<Bagel> and you would only be able to put bagels in it. This makes absolutely no fucking sense, this is not a good use case for generic types since
1) you would never limit your customer's cart to one type of product at compile time.
2) in Cart, you have to cast the generic type to Product to extract any information from the product, like when getting product prices to calculate the total price, so might as well use a fucking ArrayList<Product>
I'm just saying what he's asking us to do has (to our fictional shop's business logic) absolutely no advantage over subtyping.
Also, why the fuck teach generic constraints when you can just tell your students "just cast T to Product", right?
Like fucking hell, couldn't you spend like 10min to come up with a decent assignment that actually teaches generic types the right way? ffs
And just so no one can say "but wut simple assignment would you give to teach students generic types?", here's a simple and much, much better alternative: implementing your own ArrayList. Done. Can't get much better than that, it's a legit use case and teaches you the basics.
Sorry man, you're a great person, you really are, but you suck as a teacher.3 -
I'm here in my bed. I can't sleep and in less than 5 hours I will have an important exam. I was thinking that a few months ago I went to a IT company as a school program. I would have to stay there for 2 weeks and "work" for them.
Upon arrival, the guy who had to monitor me gave me a sheet of paper with 5 alghoritmic problems to solve. He tells me to use java and hands me a laptop. naturally with windows. I try to look for some ideas but I can not find anything. I go to the control panel and search for something. Obviously there is a lot of bloatware and nothing catches my attention. then strangely I find something called oracle ... something ... but when trying to open it it gives me an error.
Fuck me. I decided to open notebook(normal one not ++ or something) and start solving the problems trying to remember the names of the methods and the classes based on what I had learned in school. then the guy comes back and looks at me puzzled. I tell him I did not find any IDE for java and the only one I found seem to give me an error. The guy double clicks and the program opens...fucking shit... He tells me to finish the problems and goes away perplexed. I copy the code from notepad to the IDE, I check the errors, I run it and the add some comments and I call the guy. he looks at the code, says that everything seems fine and then assigns me other things to do.
Now. HOW FUCKING STUPID MUST SOMEONE BE TO THINK THAT WRITING JAVA IN NOTEPAD IS A VIABLE CHOICE, AMONG ALL THE POSSIBLE SANE CHOICES I COULD HAVE MADE LIKE TRY TO UNDERSTAND THE ERROR OF THE IDE OR CALL THE GUY... NO. MY LITTLE SHOTTY FUCKING BRAIN DECIDED THAT NOTEPAD WAS A GOOD CHOICE. IF I COULD GO BACK IN TIME IN THE SAME MOMENT THAT I OPENED NOTEPAD I WOULD BITCH SLAP MYSELF SO HARD THAT I WOULD LOSE MY SOULD AND THE LAST 2 NEURON THAT MADE THAT SHITTY CHOICE. I WOULD BITCH SLAP MYSELF SO HARD THAT THE KINETIC ENERGY PRODUCED WOULD COLLAPSE THE UNIVERSE ITSELF. AND FROM THE DARKNESS A NEW UNIVERSE WILL BE BORN. A UNIVERSE WHERE THERE IS NO JAVA OR WINDOWS. A UNIVERSE WHERE MY 2 NEURONS WOULD HAVE MADE THE SHITTIEST DUMBEST CHOICE EVER IN A I LAST MISERABLE SELF DESTRUCTIVE ATTEMPT.
but then I come on devrant and I read about people who did thing worse than writing java on notepad and then everything is fine
PS my English is so bad I had to use Google translate, write an original version, translate it and do a side by side comparison with my translated version to check If I could improve something. Don't now If It improved the quality or not...3 -
Our team - if ever existed - is falling apart. Pressure raising. Release deadline probably failing. No release ready for Big Sur.
Almost seemed we were getting somewhere: More focus on code quality, unit tests, proper design, smaller classes. But somehow we now ended up in "microservice" hell; a gazillion classes, mostly tested in isolation, but together they just fail to do their job. A cheap and dirty proof of concept from March is still more capable than this pile. I really start to doubt all that "Clean code", TDD, Agility rhetorics. What does it help you, if nobody cares for the end result? It's like a month I try to hammer down that message: we have to have testable artifacts, we have to ensure code signing works, our artifact is packaged and installable, we have to give QA something they can test - but time just passes and this piece of shit software is still being killed or does nothing.
Now my knee is broken and can do no sports and are tied to my chair even more. To top it all my coffee machine broke and my internet connection was abysmal this week. Not the usual small disconnects, after which it would recover, but more annoying and enduring: often being throttled to 1.7 MB/s (ranking my connection in the slowest 7% even in Germany). My RDP sessions had compression artifacts all over the screen and a mouse click would only take effect 5 sec later.
But my Esspresso machine was just repaired. Not all hope is lost.7 -
My deepest regret is believing lies about OOP, during my education.
1. It is the best way to model a software, easier to think about objects and relationships: no it is not.
2. It increases reusability: I have seen people invwnting base classes to justify.
Are there any lies you regret believing that you believed during your education?12 -
Just wanted to admit that when I was in school, first learning about web, my first website used only IDs -- no classes.
I was so proud though.10 -
My uni has closed down today. No classes until further notice. We will have few online ones but all lectures are gone, well i dont care since i didnt attend them anyway.
It is nice to see that administration is doing things to prevent the pandemic from getting worse. There are only few cases in my city but it is good it be caucious.5 -
Dude what the fuck with C#'s code style?
Pascal case variable names and classes? Don't we do this so we can differentiate between variables and classes??
Newline between parentheses and brackets?
Retarded auto get/ set methods that serve no purpose than to make code difficult to read and debug?
And after all that shit, string, which is a class, has a lowercase s and is treated as if a primitive?
I really have no idea why this language is so widely praised. The only thing I like about it is that it's the only major bytecode language that has operator overloading and reference parameters.19 -
Who ever come to idea to put JavaScript as backend language is insane.
I am coming from Java and now I am doing some work on Node project and I am loosing my mind.
Everything is an object but you have no idea what are his properties. There are call back, async, sync and mix. I don't even want to try debugging. There is no classes only object and a lot of functions everywhere.
The whole story with Node versions and playing with NVM. Don't even let me talk about Node modules.
Frustration and long development.13 -
First off murphy is a bitch. Week started off good, nothing bad happening then friday night came and i get an email about a site being down. Ok check it out real quick, cert is expired. No real big deal just a 20 minute fix, didn't bother me that i didn't get an expiry alert. Now is where murphy decided to be the biggest fucking bucktoothed cocksucker, generate a csr for a wildcard domain using an existing key and sent it off when i get it back the private key doesn't match the cert. Again ok maybe i fucked up, generate a selfsigned cert no fucking problem. Contact support to see if they have an idea. Oh now is when it gets fun, the fucking dumbass preceded to tell me how i didn't know what i was doing and how i just had to generate a csr and private key at the same time after i explained to the bastard that I've already tested it with a selfsigned cert. (How does this fucker have a job) By now apparently i was pissed off enough to scare murphy's pansy ass away cause i told the fucker to refund my money, got a list of 30 subdomains and setup letsencrypt on it. Now the part on this that is fucking hilarious is that it took me damn near 24 hours to be called a fucking idiot from a guy that doesn't know his ass between a hole in the fucking ground and 30 minutes of being pissed off more than i have been since i took anger management classes in the 9th grade to say fuck it and switch.7
-
CoWorker: “Yea then just use double inheritance to grab the methods off the two classes.”
Me: “Yea that doesn’t seem right... the first object is a string parser the second object predicts future occurrences...”
CoWorker: [louder] “No trust me, I’m taking a developer course right now. If you inherit both classes your new class can use all the needed methods!”
Me: “Okay, go for it bro.”
So tired of people who think they know what they’re doing...4 -
So I got this new job as Java developer, the people are really great but is the kind of companies that only takes care for fast results and not for code quality.
Because this I have to deal with libraries updated 4 years ago, classes with 8000 lines, methods with 500 lines, a WHOLE lot of work arounds because there is no time to really fix the issue unless it affects directly the customer (something not working or being really slow) aaand we use fucking svn.
Some of this practice's they know and encourage it (+1000 lines classes for example) and every time I try to talk about good practices in the code everyone seems so interested but there is always no time.
Sooo I will stay here for at least two years, I hope I can make a change for good in their code smells.3 -
How surprising is it when a person designs code in a very clear and impressive structure and just when you think about asking them for guidance, they reveal themselves to be complete turds?
I've been working with this person's "infra" code, at work. I've rewritten some classes to use their infra. I had a vague idea of how the classes work. I had no idea of how their code works. Expectedly, there were some issues but now only minor ones remain.
I asked them for a description of what I'm supposed to do for the few bugs I'm facing. They replied in such a condescending tone, it made me want to punch them through the screen.
Almost a month later, we're still going back and forth with emails. I've been swallowing it and responding calmly. I never got direct answers. Always deflections to irrelevant things or veiled insults. I took it because they did correct one silly error of mine that actually my code reviewer should've caught. (What's worse is that it got introduced by me just before my review and commit.)
But does that give them the right to insult me in front of the whole team including my project manager? I got a reply today from them with everyone of note in cc implying very clearly that I have not done any work. They highlighted a line from my code with some todo tag (that was not meant for them) to make their invalid point. A line that's unrelated to the bug I asked them about. This is after I proved them wrong when they insisted that I had done something wrong about a feature related to the bug.
If you don't understand what I asked for fucking ask me to ask again. But do not fucking try establish yourself on higher ground by pointing out irrelevant things in my code.
I was shocked and enraged that they'd do such a thing. I double checked everything like a mad man. Despite knowing that the fix has to come from them, I was instantly transported to the noob stage, grasping at straws. I wanted to send a really scathing reply right away but my manager asked me to wait.
My mind is now a see saw shifting between a panicked noob questioning every fucking thing I ever did in my nada life and a hungry enraged monster looking to maul that fucking shithead for burning me like that.1 -
I love Google Docs.
I hate their white-only style.
I love writing at night...
So I made myself a userscript to help my eyes when working late. Unfortunately they have css classes' names constantly changing (dynamically generated) with each update of the source code and I was too lazy to go full javascript on them because it'd make a lot of "getElement..." stuff or even jQuery only to change the theme.
It wasn't like full broken page, no... only some elements were broken, but in places it'd burn your eye out in 2am when the theme is almost black.
I felt like I have to do something, because I don't want to lose the Docs at night, but writing on their email list would be like talking to the wall. Then they updated again, some elements changed again and I was like... man, fuck you!
div#doclist > div > div > div > div > div > div > div > div+div
div#doclist > div > div > div > div > div > div > div > div > div > div+div
It works, if you are interested: https://github.com/KeyWeeUsr/...18 -
We had 1 Android app to be developed for charity org for data collection for ground water level increase competition among villages.
Initial scope was very small & feasible. Around 10 forms with 3-4 fields in each to be developed in 2 months (1 for dev, 1 for testing). There was a prod version which had similar forms with no validations etc.
We had received prod source, which was total junk. No KT was given.
In existing source, spelling mistakes were there in the era of spell/grammar checking tools.
There were rural names of classes, variables in regional language in English letters & that regional language is somewhat known to some developers but even they don't know those rural names' meanings. This costed us at great length in visualizing data flow between entities. Even Google translate wasn't reliable for this language due to low Internet penetration in that language region.
OOP wasn't followed, so at 10 places exact same code exists. If error or bug needed to be fixed it had to be fixed at all those 10 places.
No foreign key relationships was there in database while actually there were logical relations among different entites.
No created, updated timestamps in records at app side to have audit trail.
Small part of that existing source was quite good with Fragments, MVP etc. while other part was ancient Activities with business logic.
We have to support Android 4.0 to 9.0 of many screen sizes & resolutions without any target devices issued to us by the client.
Then Corona lockdown happened & during that suddenly client side professionals became over efficient.
Client started adding requirements like very complex validation which has inter-entity dependencies. Then they started filing bugs from prod version on us.
Let's come to the developers' expertise,
2 developers with 8+ years of experience & they're not knowing how to resolve conflicts in git merge which were created by them only due to not following git best practice for coding like only appending new implementation in existing classes for easy auto merge etc.
They are thinking like handling click events is called development.
They don't want to think about OOP, well structured code. They don't want to re-use code mostly & when they copy paste, they think it's called re-use.
They wanted to follow old school Java development in memory scarce Android app life cycle in end user phone. They don't understand memory leaks, even though it's pin pointed by memory leak detection tools (Leak canary etc.).
Now 3.5 months are over, that competition was called off for this year due to Corona & development is still ongoing.
We are nowhere close to completion even for initial internal QA round.
On top of this, nothing is billable so it's like financial suicide.
Remember whatever said here is only 10% of what is faced.
- An Engineering lead in a half billion dollar company.4 -
Every website we craft at work has some email substitution logic so that addresses you see on the site don't actually exist in the HTML source like that (you wouldn't find them in a format like "foo@example.com").
Instead the @ and the period right before the TLD get replaced with something else (to prevent (dumb) spam bots from using that address and blast it with junk).
Some people replaced them with images in the past (ew), replaced the @ with "(at)" or other stuff.
I made it a habit to render the @ and . by replacing them with span tags which then get a ::before in CSS that contains "content: '@';", so that the @ is visible but is not actually inside the HTML source code.
The classes for these spans then have a random name (persistent for that website though). The first one was called "move-along-nothing-to-see-here", but then I started naming them after Star Wars quotes.
One website's @ class is called "that-s-no-moon" (Obi Wan), others are called "i-have-a-bad-feeling-about-this" (Han Solo), "powerful-you-have-become-the-dark-side-I-sense-in-you." (Yoda) and "these-are-not-the-droids-you-are-looking-for" (Obi Wan).12 -
Never had a coding style argument because my workplace doesn't have any standards, mix of C# and VB sure why not, 2K line VB service with 6 comments total? Sure no problems there.
The only styling we have is our personal preferences, except when it's my projects, then every adheres to the styles I set because I won't merge their 800 line monstrosity of a file with 18 classes.9 -
This is one from when I was in school, so I wasn't a dev but it made me feel like a CS student badass.
A class mate and I were having a discussion about his study habits. Basically he was freaking about the mount of studying he was going to have to do for this class:
Me: dude, you need to relax. You'll do fine.
Classmate: no, have you seen the amount of work that is on the syllabus? The size of the book?
Me: wait you bought the book? Also we took this same professor for several classes. His syllabuses are always huge. What did you get in the prereq to this class?
CM: an A.
Me: there you go.
CM: but I had to study all the time. I had no free time.
Me: really? I had an insane amount of free time.
CM: what did you get?
Me: B+.
CM: See but I did better than you.
Me: yeah . . . but I had fun last year.
Professor: you know, it's hard to tell who is the better student. The one that had no fun, but got an A. Or the one that had a lot of fun and got a B.
Other Classmates: probably the guy that got the B.
Hurray for peer and professor validated laziness. -
So I did a code review for a colleagues pull request and I've noticed that he hasn't written the PHPDocs for a lot of the classes and functions. One minor thing I wrote is to add the author for the class.
About 2 mins after writing that comment he came over to tell me why should he write the author in the comments when people can just go look at the git commit logs. I was like WTF? I asked why would he do that, his answer was that if there's an issue, we can just use git blame to identify the author. To me that makes no sense as git blame isn't supposed to be used like that.
It's guys like these are the ones who don't document anything whether in an online document or even in code. And they just make work harder for the rest of us.2 -
Technical debt.... so much technical debt it’s driving me crazy!
It’s not only that there’s commented out lines in abundance, methods and whole classes not used anywhere anymore in a decade and code using not only deprecated standard library functions, but some that have been REMOVED in earlier versions of the language (have no idea how those have even stayed functional...), and documentation that has very little to do with the reality... but today, I submitted a pr to fix the documentation for setting up dev env - which was outdated already when I started a few years ago!
I know we are understaffed and busy, but c’mon - it doesn’t take much to leave the code in a better place than when found...4 -
I need to rant about life decisions, and choosing a dev career probably too early. Not extremely development related, but it's the life of a developer.
TL;DR: I tried a new thing and that thing is now my thing. The new thing is way more work than my old thing but way more rewarding & exciting. Try new things.
I taught myself to program when I was a kid (11 or 12 years old), and since then I have always been absolutely sure that I wanted to be a games programmer. I took classes in high school and college with that aim, and chose a games programming degree. Everything was so simple, nail the degree, get a job programming something, and take the first games job that I could and go from there.
I have always had random side hobbies that I liked to teach myself, just like programming. And in uni I decided that I wanted to learn another language (natural, not programming) because growing up in England meant that I only learned English and was rarely exposed to anything else. The idea of knowing another fascinated me.
So I dabbled in a few different languages, tried to find a culture that seemed to fit my style and attitude to life and others, and eventually found myself learning Korean. That quickly became something I was doing every single day, and I decided I needed to go to Korea and see what life there could be like.
I found out that my university offered a free summer school program for a couple of weeks, all I had to pay for was the flights. So a few months later I was there and it was literally the best thing I'd done in my life to that point. I'd found two things that made me feel even better than the idea of becoming the games programmer I'd always wanted to be. Travelling and using my other language to communicate with people that I couldn't in English. At that point I was still just a beginner, but even the simple conversations with people who couldn't speak English felt awesome.
So when I returned home, I found that that trip had completely thrown a spanner into my life plan. All I could think about after that was improving my language skills and going back there for as long as possible. Who knows what to do.
I did exactly that. I studied harder than I'd ever studied for anything and left the next year to go and study in Korea, now with intermediate language skills, everyday conversations no longer being a problem at all.
Now I live here, I will be here for the next year and I have to return to England for one year to finish my degree. Then instead of having my simple plan of becoming a developer, I can think of nothing I want to do less than just stay in England doing the same job every day, nothing to do with language. I need to be at least travelling to Korea, and using my language skills in at least some way.
The current WIP plan is to take intensive language classes here (from next week, every single weekday), build awesome dev side projects and contribute to open source stuff. Then try to build a life of freelance translation/interpreting/language teaching and software development (maybe here, maybe Korea).
So the point of this rant is that before, I had a solid plan. Now I am sat in my bed in Korea writing this, thinking about how I have almost no idea how I'm going to build the life that I want. And yet somehow, the uncertainty makes this so much more exciting and fulfilling. There's a lot more worrying, planning and deciding to do. But I think the fact that I completely changed my life goals just through a small decision one day to satisfy a curiosity is a huge life lesson for me. And maybe reading this will help other people decide to just try doing something different for once, and see if your life plan holds up.
If it does, never stop trying new things. If it doesn't (like mine), then you now know that you've found something that you love as much as or even more that your plan before. Something that you might have lived your whole life never finding.
I don't expect many people to read this all, but writing it here has been very cathartic for me, and it's still a rant because now I have so much more work and planning to do. But it's the good kind of work.
Things aren't so simple now, but they're way more worth it.3 -
When you commit code to the repo and a a junior on the team takes it upon himself to rename all the classes and methods coz he doesn't like them even though his changes make no sense and then sends them to you for a code review .....
Wonder what the results going to be ;-p1 -
I honestly don't understand people who genuinely believe formal schooling will cover all the basics they need to know to do a real-life job, and still get barely passing grades on all relevant subjects.
I genuinely don't understand people who copy GitHub projects to pass classes, and graduate from a university with goddamn StackOverflow instead of a brain.
Whom I understand even less are people who don't do anything major-related on their spare time.
I mean, change your fucking major, do what you actually like, do things that actually light your nuts with passion.
Please don't waste my time pretending you are in it not just because it's potentially well-paid and "cool".
Please don't waste my time being my coworker.
Yes, I'm looking at you, trendy wanker with a CS degree and no personal projects.
P.S. Junior here. Yes, I'm full of hatred for all the "real programmers" in the industry out there. I hoped for a better experience.
P.S.S. I mean absolutely no offense to people using either GitHub or StackOverflow outside of the aforementioned context.10 -
Be me, get a consultant job, go to a supposedly great client that has fame of getting scouted by Google. (attn: I doubted all this shit before I started)
Learn the basics by a awesome mentor and trial/error stuff at the same time to get the hang of things, after that was done, I noticed there was no documentation whatsoever, code is spaghetti and your documentation, good luck!
Royal spaghetti, you can't make heads or tails of it, dev code in production, empty try/catch blocks, empty statements, if (true)... (incl. their core classes)
Keep in mind this is a multi milion dollar company...
Someone please understand my pain...6 -
When I was freelancing and still studying 60 hrs a week.
~20 hrs. bread-and-butter job
~20 hrs. for University
~20 hrs. writing a full-stack application for a startup
I did that for about 3 months, afterwards I luckily had no classes left.
Only, the thesis is still open. But on the other hand, the freelance work for the startup was a pretty good reference for scoring an actual, well-paid position which made me leave my old job as well as freelancing.
Now I work roughly 40 hours a week with nearly as much freedom as a freelancer but less paperwork.3 -
give up on working hard
doesn't mean shit in the long run
it only matters who you can bullshit and how much money they have
*really* i mean this
at this point i've seen it so many times, and i thought the world couldn't be this dumb... but somehow that's really how it all works, there's really no secret
much better to just have had internship at some silicon valley company - their for loops, functional code, and abstracted classes are far better than the ones anywhere else, don't you know?
just wish the world would grow the fuck up, but alas, they have to remain wimpy kiddy caveman mentality style5 -
I think this is the first time ever on my team where I read someone else's source code and actually went "wow... This is pretty well written and structured". No god methods or classes.
-
Init Mud. (A poem)
A Giant Ball of Mud.
Haphazard in structure.
A sprawling, enthralling, duct-taped warning,
Of things to come.
Tumbling down a well-worn path
Of untamed growth and aftermath.
Into Spaghetti-code Jungle.
Where quick and dirty wins the day
And warnings spoken hold no sway
Or fall on deaf ears in the undergrowth.
Tumbling.
Gaining weight.
Bits stuck on.
Bytes taken out.
Patches,
On top of patches,
On top of obsolescence.
Hacked at, uploaded
All elegance eroded.
Made and remade
Then duplicated
Relocated
Refined and redesigned
Suffocated by expedient repair after expedient repair
The original self no longer there
Replaced by something
Unwieldy.
Design resigned to undefined
An architectural mystery
Whose function can no longer be
Seen or gleaned
From obfuscated in-betweens
Of classes
Made and remade
Duplicated.
Abused.
A squirming library of disused.
Pulled at, prodded, committed
Corners cut and parts omitted.
Bug ridden branches fused to a rotting core.
The structure...
The system...
The content...
Mud.1 -
I really need to vent. Devrant to the rescue! This is about being undervalued and mind-numbingly stupid tasks.
The story starts about a year ago. We inherited a project from another company. For some months it was "my" project. As our company was small, most projects had a "team" of one person. And while I missed having teammates - I love bouncing ideas around and doing and receiving code reviews! - all was good. Good project, good work, good customer. I'm not a junior anymore, I was managing just fine.
After those months the company hired a new senior software engineer, I guess in his forties. Nice and knowledgeable guy. Boss put him on "my" project and declared him the lead dev. Because seniority and because I was moved to a different project soon afterwards. Stupid office politics, I was actually a bad fit there, but details don't matter. What matters is I finally returned after about 3/4 of a year.
Only to find senior guy calling all the shots. Sure, I was gone, but still... Call with the customer? He does it. Discussion with our boss? Only him. Architecture, design, requirements engineering, any sort of intellectually challenging tasks? He doesn't even ask if we might share the work. We discuss *nothing* and while he agreed to code reviews, we're doing zero. I'm completely out of the loop and he doesn't even seem to consider getting me in.
But what really upsets me are the tasks he prepared for me. As he first described them they sounded somewhat interesting from a technical perspective. However, I found he had described them in such detail that a beginner student would be bored.
A description of the desired behaviour, so far so good. But also how to implement it, down to which classes to create. He even added a list of existing classes to get inspiration or copy code from. Basically no thinking required, only typing.
Well not quite, I did find something I needed to ask. Predictably he was busy. I was able to answer my question myself. He was, as it turns out, designing and implementing something actually interesting. Which he never had talked about with me. Out of the loop. Fuck.
Man, I'm fuming. I realize he's probably just ignorant. But I feel treated like his typing slave. Like he's not interested in my brain, only in my hands. I am *so* fucking close to assigning him the tasks back, and telling him since I wasn't involved in the thinking part, he can have his shitty typing part for himself, too. Fuck, what am I gonna do? I'd prefer some "malicious compliance" move but not coming up with ideas right now.5 -
aaaaaghh fucking Handlers man. Android is so fucking full of shit, i wonder why am i still doing it. love is pain.
Why can't there be one mother fucking solution to all lazy ass asynchronous programming? handlers, threadpools, asynctask, executers, Broadcasts, intentService, coroutines, rxjava,.... i don't what new stuff are people snorting these days.
Ok , leave everything. A handler is class- no sorry, Handler, alongside some fucking Looper clss (and maybe some more stuff i don't know) other classes is a way of handling inter thread communication. Handlers can:
-send data to ui thread
-recieve data from ui thread
-send "messages" to ui thread
-recieve "messages" from ui thread.
- can be attached to ui thread
- can be attached to any child thread
- can be accessed anonymosly via any view
- can be present in multiple places, working together
- can kill night king with a dagger
- can do porn better than johnny sins
- can run for president of the whole fucking world
- do some more shits that i have yet to discover
And where do i find this? buried deep insides some medium articles or in some guy's horrible accent video.
Is background processing really this much of a toughnut to crack?
earlier i was all about using asynctask or foreground/background services, because these are the most easy to understand abstraction of a fairly difficult topic.
But as i see more projects, i see underlying apis like handlers, threadpools , executers , being directly used.
Why cant there be a fucking single abstraction, that could be "lightly tweaked" to handle every ugly case.6 -
When you start a new project and you think that you will no longer have problems with git.... after one week you see yourself sending classes to your colleagues via mail to push them for you. Shit man1
-
This year I could join the "Game Graphics" for my elective classes. After seeing that we are split almost exactly in half (graphics design and programmers) our tutor (graphic with 20+ exp in the field, worked on few Call of Duty titles and more) decided that instead of forcing everyone to draw something, we will be making games in groups.
So me, and my friend were grouped with two girls from graphic. I have to say, working close with them was an eyes-opening experience. They don't think like me, they don't see like me and they interpret everything different.
Anyway, as most experienced Unity dev (... Yeaaaah, one game self made and published) I was chosen to get rest of the programmers up to speed. Luckily no one objected and they did what I wanted them to do, so it wasn't bad.
Today was supposedly the last day to present finished prototype. After three weeks staying up till 1 am, working on this project, two other, and nornal job, it was supposed to end. But, no one was really ready. So tutor decided that we will only do this project, an 2D platformer, instead of two, this and 3D game.
While walking around and checking the progress he stayed with us at least two times, watching what we were doing. Since last two weeks were really hectic, we were finishing up animations, adding some polish and such. When he came to us for the second time, he played our prototype. He's a bit older guy, somewhere around his 60, and one could see he wasn't prepared for hard gameplay I presented him with my first level design ever.
He told us his feedback, about how hard it is and not really intuitive, but in the end, he was satisfied. We have made really great progress and brought him something he could play and finish. Which was more than most of other groups had at today. And, as a cherry on the top, he complimented me as a group chief. I don't remember the last time someone complimented my work. The feeling was... Incredible. Touching even.
So, yeah. My hard work wasn't in vain, even though we now have time till the end of the semester. Everyone in my team has given their all and now we can rest for a bit, while others are catching up. Right now I only have to polish some mechanics, rework a bit of level design and add tutorial, while girls from graphic design will be working on better background and sprites.
All in all, it was a pretty good day.6 -
Obligatory subjective view from inexperienced eyes of a highschooler
I think it's evolving to be more beginner-friendly and more easily accessible. I'm seeing ppl roughly my age can program pretty well (ignoring the mandatory programming classes in highschool that stuff is just no (I know, we had this convo before but do hear me out, although it teaches fundamental programming in Pascal, the execution sucks ball because "mandatory")). I'm not saying we are on par with the in-industry devs, it's just we can code well enough to at least make decent small program/script.
With newer scripting languages that are easy to pick up and syntactically similar to English which is obviously Python, both objectively and subjectively, and its ability to be OOP without scaring first-timers of the what-the-blyn-is-this blank program (looking at you C#) people can be introduced to programming and programming concepts fairly easily and they can switch from Py to other languages with little to some hiccups, from my personal exp at least.
But then there's the "too much kiddies in the field" arguments I saw on dR (I think) a while back then when SO decided to better support newbies. To that, I can only say "Please give us a chance". We're completely oblivious to how the dev world work nor how you guys do your work so before you scold us on this, at least tell us how to work like you before you go on a 2-A4-page rant on how the industry is not as good as before and how it has degraded.
That leads to the problems of politics invading programming. We have it, I hate it, goddammit I wanna murder them. Linux CoC controversy is just...no. And then there's forced diversity in hiring (also ranted on dR a while back) and corporations pissing devs off to satisfy a minor group. I'll just shut up on this. No no no no no no no NO I'm not gonna. Not gonna.
Do correct me if I'm wrong though. I'm a less than a junior dev.2 -
I will never ever see, play, or think about video games the same way again. Even playing all my childhood games is never the same.
I will now forever see the game from the inside out, imagining what code the devs might have written to achieve what is happening: sprites, audio, triggers, AI algos, etc. No longer is a player or character just a player or character; they're sprites, animations, classes and variables and method calls. o.o2 -
Of course, I just swiped the wrong way on my fucking laptop trackpad and list everything I just typed. FUCKING MARVELOUS.
TL;DR: Teacher stopped me from being productive. Principal almost called cops on me. Nearly threw chair at librarian.
So I'm at school yesterday, and we have a presenter in 2nd hour, so naturally, I'm gonna be on my computer doing things for other classes at the same time. Efficiency. Teacher doesn't like it, I refuse to put the computer away telling her that I'll be more productive and still pay attention, which HAS BEEN PROVEN MIND YOU, but she ends up calling security on me and I get sent down to the principal's office.
I talk to him, and he says 'Yeah, I know it's in the way, but you have to follow the directive given by the teachers.' Fine, fuck it. Won't go to her class for third hour. (I have her twice in a row for two different classes.) Next day.
I walk in, asking her if she's gonna do the same thing she did yesterday, hoping that she realized her error and will fix it, but no. She says I STILL can't have the computer out. I'm sorry, do you not realize I have 6 other fucking classes, most of which are required to graduate, unlike YOURS, as well as a FUCKING COLLEGE CLASS TONIGHT?! She gives the ultimatum. 'Obey or leave.' Fine, I'll leave. I go to the principal's office again, he must have a stick up his ass or something today because he's not budging. We argue for a while and he gives a WORSE ultimatum: 'Obey, Go to the Library, In House Suspension, or I'll call the police.' What the actual FUCK MAN?! You're gonna call the POLICE on a NONVIOLENT STUDENT?! Are you fucking MAD? I keep trying to tell him that there's an easy solution to this, but as he's getting up to call the cops, I say 'Fine! I'll go to the library!' He follows me over to make sure I don't kill anyone on the way.
I slam the door to the library open, and when I walk in, the librarian is there at her computer, and she asks 'Where are you coming from?' 'Principal!' 'I need a pass-' 'Well, I'm sorry, I can't exactly get anything for you right now, I was just sent down here.' She says 'Either way, I need some kind of note or pas-' 'Listen, I'm not in the mood for any of this right now. Please, just leave me be.' She then tries to say something, but I cut her off quickly, 'Just back off and leave me alone right now. The more you push it, the more you're gonna make me want to throw this chair!' Imagine the volume just gradually getting louder on that last one. She quickly runs out and talks to the security desk or something, which is right outside the library door, but she's the only one who comes in, thankfully. I was expecting to be fucking dragged out for no good reason. I'm loud, not violent. I have no history of violence.
So yeah. Here I am in the school library, angrily tapping away at my keyboard, trying not to throw the entire table to the fucking moon. All because this broken-ass public school system has no idea how to deviate from the norm when it's actually productive and efficient to do so. And now, the obligatory:
FUCKING PIECES OF SHIT WHY DON'T YOU REALIZE THAT YOU ARE COMPLETELY WRONG IN EVERY SINGLE THING YOU ARE DOING YOU IDIOTIC SCUM-FILLED MEAT SACKS OF NO FORSEEABLE VALUE! FUCK!1 -
I haven't been able to work on the computer without getting a headache very soon after for almost 2 weeks straight now.
I presume I have grown a sensitivity to bright light, stemming from the time I dimmed my phone all the way about 5 months ago and never set it back until just now.
In my classes I will get random headaches that hurt like heck and make me feel groggy, making me unable to focus at all. And while doing computer work, I'll get the same thing.
I've tried getting my eyes checked again, and got new glasses about a week ago - still no help.
Prior to this incident I was working hard on a volunteer project with a small team. Since then my progress and commits have dwindled greatly, and I feel stressed out because I can't do what i want to do without hurting and feeling like absolute shit!
I'm currently trying to get my eyes used to bright lights again by setting things like my phone screen to a brighter setting, changing some dead light bulbs in different rooms of the house, and getting more involved outside.
I hope this goes away soon - I don't want to have this stupid headache every time I go to code or work in class.12 -
I found this funny, or my dev-humor is just really bad :>
Friend: Ugh
Friend: Java and BlueJ.
Friend: Why you indicate relationships between classes that have no relationships.
Friend: Fu BueJ
Me: It's called a crush :wink:
Me: *badum-tssss*
Precision: As in having a crush on a person, but no relationship :)1 -
Hell yea, gotta finish my prep project for my bachelor's thesis so I've been coding every day since the beginning of the holidays.
To be perfectly honest with you I love it! It's like a 9-5 job, no classes at uni, just work and coffee breaks and I even got to go back to my parent's house for two weeks which is wonderful.
I wish that uni could always be like that though, gotta make the most of those two weeksrant vacation wk136 holidays angular bachelor's degree university !rant bachelor thesis code christmas1 -
Colleges here in the US get to decide the GPA threshhold at which you can no lonver get any aid for. My college is the cheapest in the state (hence why I can attend, despite my treatment) and seems to make it stupid hard to recover from any fuckup, even on their end. First, anything that's an F is normalized to a 0% grade for GPA. Acceptable. However, any GPA-affecting grade that's a 0% also removes a static .125 from your GPA permanently. A combination of the school's fuckups, retarded profs, constant unhelpful runaround and constant server outages (even before the Great 2020 Fan-Shitting) ended in, effectively, 2 perfect As and 2 perfect Fs. My GPA, first semester, due *mostly* to extenuating bullshit, is a 1.75. I cannot fuck up at all ever again or i'm unable to continue going.
It's almost like they just want my money and refuse to fucking provide a decent learning opportunity due to all the absolute horseshit they force me through to do so much as schedule classes, much less lodge a complaint or get help with issues.7 -
Worst architecture I've seen?
The worst (working here) follow the academic pattern of trying to be perfect when the only measure of 'perfect' should be the user saying "Thank you" or one that no one knows about (the 'it just works' architectural pattern).
A senior developer with a masters degree in software engineering developed a class/object architecture for representing an Invoice in our system. Took almost 3 months to come up with ..
- Contained over 50 interfaces (IInvoice, IOrder, IProduct, etc. mostly just data bags)
- Abstract classes that implemented the interfaces
- Concrete classes that injected behavior via the abstract classes (constructors, Copy methods, converter functions, etc)
- Various data access (SQL server/WCF services) factories
During code reviews I kept saying this design was too complex and too brittle for the changes everyone knew were coming. The web team that would ultimately be using the framework had, at best, vague requirements. Because he had a masters degree, he knew best.
He was proud of nearly perfect academic design (almost 100% test code coverage, very nice class diagrams, lines and boxes, auto-generated documentation, etc), until the DBAs changed table relationships (1:1 turned into 1:M and M:M), field names, etc, and users changed business requirements (ex. concept of an invoice fee changed the total amount due calculation, which broke nearly everything).
That change caused a ripple affect that resulted in a major delay in the web site feature release.
By the time the developer fixed all the issues, the web team wrote their framework and hit the database directly (Dapper+simple DTOs) and his library was never used.1 -
This is a sad story of bad recruitment in my school.
One day I had my computer class in school and my teacher was on leave so the substitution department sent another teacher to our class.
I have 3 computer teachers in my institution, let us assume their names for this rant as A, B and C.
A - The most learned teacher who has a lot of experience and also writes books. This teacher is the head of the department and wants students to explore coding.
B - A teacher who sticks to books and writes books on Excel and Powerpoint for small children.
C - The youngest teacher who has almost no experience at all.
What happened was that during the substitution, teacher C was sitting and doing her own work. I thought she might know java and other fundamentals of computers. One of my friends asked her about some bug in his program. She went to his seat and said that teacher A would come and help you out. To this, the student said ok.
I thought that the teacher had something fishy going on.
A few months later teacher B and A were talking about some coding competition and I was alone in the lab cause I am the only one in 11th with computer science.
The problem here was that C came to the room and quietly asked what is an object and class in java. I was shocked! I mean how could that happen, she is supposed to know everything in the comp sci syllabus. This was a disaster, teacher A was explaining to her about classes and objects. It was clear to me that she didn't know anything about programming in Java.
This is the fault of our school.
My school wants a good rank in the lists and for that they cut down the budget of teachers and remove old, experienced teachers for cheap, newer teachers.
This was shocking as a person who doesn't know much about something can't answer the doubts of children, this is a wrong way of teaching.
Hope you have a good day :)7 -
I am a lurker, who has seen the light, and come to bask in it's warmth.
This is my first day of college and I'm ready to start learning... oh, no CS classes in my schedule for another semester... I guess I'll wait then2 -
Being a front end developer and working in a team of motivated "full stack" developers sucks big time.
So, recently joined this new company with a very small project which just started, basically a cloud version of a really old desktop app. Few people from the team completely from the asp dotnet background decided the architecture few months before I joined in.
So, they did it something like this -
- mono repo dotnet project with VueJs app served within it (because that would be maintainable 😑)
- vue app served by pointing the built files through dotnet index file (simply because they didn't care about the gift to the front end world which is webpack or even had any knowledge about it 😑)
- added typescript because, u know it's cool 😑, without even knowing that they don't possess that team which know how to write the types (f***ers write classes for every payload object coz they don't know what interfaces are)
- no loader to load typescript, they are running tsc in watch mode and we have .js and .js.map for every .ts file in our project which some teammates are even pushing to repo
Recently, I added eslint with git hooks to the project so that everyone will at least stick to the coding standards. Now, to avoid the errors they are bypassing the git hooks by uninstalling the library and then installing it after the commit😂😂
Then we have a girl who uses document.getElementById to programmatically change styles in a Vue project😑😑😑😂
Then we have dotnet people using dotnet coding conventions all over the front end app.
People, how do I deal with these so called "full stack" people?12 -
So in the project I’m working on we were about to do a push to live, no major functionality just minor adjustments and nice to have stuff. One of the things I did was a reminder, nothing special just sends an email out if something hasn’t been done for 3 days and then sends an email every day following. Push to live and every thing goes fine with no issues. Day 1 there are no issues. Day 2 there are no issues. Day 3 and I’m inundated with people telling me that the emails are getting sent to practically everyone, shit. What have I done? What have I missed?
So I start looking at the live database hoping for a data problem, no such luck. I look at my code looking for something blatantly obvious but nothing. I start replicating the data but I can’t reproduce this bug and it’s annoying the hell out of me. I checked one of the emails that the client sent to us more thoroughly and seen that it was sent at 07:01. This is odd as our webjob runs at 1am so I start looking at environmental factors and started looking at release management, more out of hope than expectation. I check the staging environment and see that the webjob ran at 7:00. Coincidence I thought, the webjob gets packaged on the release pipeline and everything in the database was dummy data anyway but I’d better check anyway. The database was an exact copy of the live database, turns out a “senior developer” wanted to sanity check everything by running live data through the code so he copied the database over. It was fine for the first couple of days but the data was now 3 days out of date triggering my email code and I get hit with the shit storm. I’ve never met such an incompetent developer in my fucking life, functions 700 lines long, classes that are over 20000 lines, repetition every where and the only design patterns he’s used is when he picks up a child’s colouring book. I can live with the fact that he writes code like someone on their first day of University But copying a database because he wants to “visualise” the fucking data is absolutely farcical. No wonder the project is fucked with a “developer” (in the loosest possible use of the word) is at the helm. -
Not a DRV rant bit I am Maaad AF here
I am doing an internship at an amazing company. Everything is going well and I have learned a lot. This internship is for 6 months and almost 4 months are remaining. Now this shitfuckery of obscene ignorance that I call my college , wants every student to attend classes no matter what. I have already told them the status of my internship but they said "college is more important ". Along with this they want 2 projects in this semester and my HOD said we have to give developments of our project weekly
When I told this amazing piece of human knowledge that I won't get off for every week and I will be using git , he can see my developments and we can communicate on slack etc.
This humble genius said with utmost compassion " what is got, I don't use it , come daily to college". Man, first time in my life I have ever given that Michael Corleone stare at sollozzo killing death stare.
Indian colleges are messed up.1 -
I hope I did not make the wrong decision here:
Been working on a side project using React Js for a year now. After getting to know more about Vue, I just started rewriting it and moving it to Vue, to speed things up I'm using core JS classes for network stuff and validations ...etc just rewriting Redux to Vuex and React Components to Vue Templates
If I made the wrong decision I'd appreciate if anyone tell me about it before I go deeper in the rewrite process lol
It is not that I found speed difference both perform the same from what I've seen for my scenarios. But the output code of Vue is soooo much cleaner than what I found in React, either I failed to write a clean react code no matter how hard I try to optimize it, or Vue really takes the short way and keeps things clean.19 -
Looking at an old Java project, running java 1.6, test folder doesn't even exist and the "old but gold" java.utils.Date class is used throughout the whole thing. How do I initialise a new date again...? I actually just googled that :D At least the constructor parameters are named nicely... wait.. what...1
-
FUCK YOU PHP, FUCK YOU SYMFONY AND DEFINITELY FUCK YOU SHOPWARE.
Don't get me wrong, PHP has evolved a lot, but the stuff people are building with it is just the biggest load of fucking shit I have ever seen: Shopware. Shopware is the most ass-sucking abomination to extend. It's nearly impossible to develop anything beyond "use the standard features and shut the fuck up" that is more sophisticated than a fucking calculator.
The architecture of this pile of crap is the worst bullshit ever. A mix of OOP, randomly making use of non OOP concepts and features together with the unnecessarily HUGE amount of useless interfaces and classes. Sometimes I feel like it's 90% fucking shitty boilerplate shit.
And don't get me started with TWIG. It's a nice thought, but WHY THE BLOODY FUCK WOULD YOU NOT USE VUE IF YOU ARE ALREADY USING IT FOR A DIFFERENT PART OF SHOPWARE. This makes no fucking sense whatsoever and makes development of new features a huge pain in the ass. I can't comprehend how people actually like using this shit.
OH AND THE DATABASE. OH MY FUCKING GOD. This one is bad. Ever tried to figure anything out in a database where random strings (yes MySQL "relational" - you might think) that are stored as text in a JSON format make up some object or relations during runtime?? Why the fuck do you have foreign and primary keys if you don't use them properly??
Seriously you can't even figure out which data belongs to what because the architecture just sucks fucking ass. FUCK YOU Shopware wankers, you suck, your product sucks, your support sucks, your architecture sucks and you keep releasing new versions that regularly break shit even in minor versions.
I used to like PHP, but not in projects like these.7 -
Anyone who purposefully makes a CSS rule that’s like 10 classes deep can go fuck themselves with a elongated mason jar. Unless your an evil fuck or a spawn of satan, there’s no reason to make other dev’s jobs a living fucking hell. Fuck you.4
-
- TeamLeader1: Noooo, classes in JS are fake because here and there, in NodeJS they work differently from the browser because here and there, I know it
- IHateForALiving: I'm betting 50 cents against 50 bucks that you're wrong. You in?
- TeamLeader1: Uhm... no, I don't feel like betting against you about technical issues :(
It's been a months long journey, but it finally looks like we're getting somewhere.2 -
Included a widget on a website (JS that adds its own code in a division, like Facebook like boxes). The script added its own CSS file that overwrites bootstrap classes, with !important and at the very end on the <head>. Even worse is that there's no alternative, its a widget from a government association and there's no API. And of course, the client insisted to have it so I had to rewrite some part to use custom classes instead of bootstrap's.1
-
the more i learn about web dev, the more i realise the reason for its mess up . There are 2 major problems in it : the people who create various important concepts and tools for web dev were 1) working on it without any collaboration and agreements on the philosophy and 2) were too stubborn on their ideology i guess.
There is no limitation to anything's functionalities, and the limits that are "defined" are badshit crazy. for eg:
====================================
HTML creator : "I am gonna make a language that would provide a skeleton to web page. it will just have the text and basic markers to let the scripting and styling engines/languages know which text is supposed to be rendered and how.
It won't provide any click or loading functionality.
someone: "So i guess opening a page or loading an image would be handled by JS or other programming language? also, bold , italic or division would be added via CSS?"
HTMLguy : Nah, my html engine would ALSO do that.
someone : what , why? won't that just be stupid and against your philosophy?
HTMLguy : WHAT? am too awesome, can't hear you
w3c , 50 yrs later : sorry can't change this, gotta support the 50 yrs of web dev and billion sites
=================================
CSS guy: I am gonna make the world's best beautifying stylesheet language to provide colors, styling, fonts and backgrounds to a page. every loadings and clicks would be handled somewhere else
Some1: cool, then clicks, hover and running of animation would be handled by JS only
CSSguy :Umm, i guess i could handle those.
Some1 wha-?
CSSguy : Thankyou Thankyou Thankyou for the nobel price!
====================================
JS guy : I am gonna make a god web programming language! It can do everything: add/remove html tags, add styling, control animations, control browser, handle clicks , perform operations, everything!
some1: cool! you must be making very large programming language with lots of modules.
JS guy: No! i am gonna keep it small. no built in classes and file imports! just use the functions directly. if someone wants the additional lib functionality, install them on your server
some1 : innovative! what's typeof NaN ?
JSguy :shut up.6 -
I was ranting about overusing classes on python, then I noticed I'm a person that creates new functions for 2-3 lines of codes for no reason..3
-
if you want to encounter 400 lb angry virgin programmers go on r/Python and suggest they should add a static keyword to their classes.
They swarm out of the woodwork and take turns trolling you until a mod bans you for responding in suit.
Its amazing, the dumbest lack of language feature and they're like
'me no want the extra keystroke me like code that can lose peopel, me fo fucks no never, not gonna happen, you asshat, haha, now go bye now, *click*'
valid argument is python classes are lacking in decoration
this i suppose is ok overall, i mean they work. except the issue i was having the other day resulted from a variable not being DOUBLE DECLARED IN BOTH THE CLASS SCOPE AND INSIDE THE CONSTRUCTOR LIKE IT WAS A JS OBJECT BEING INTERPRETED AS A STATIC FIELD !
ADDITIONALLY IF THEY LIKE CONCISE WHY THE FUCK DO ALL THEIR CLASS METHODS REQUIRE YOU TO INCLUDE ===>SELF<== !!!!
BUT NOOOO TRY TO COMPARE SOMETHING SENSIBLE LIKE
MYINSTANCE.HI SHOULD NOT BE STATIC
MYCLASS.HI SHOULD BE STATIC AND THEY GET ALL PISSED
ONE ACTUALLY ACTED REJECTED FOR THE SAKE OF HIS LANGUAGE SAYING 'YOU WANT WHAT PYTHON HAS BUT YOU DON'T WANT PYTHON !'
...
...
...
I DIDN'T KNOW THEY MADE VIRGINS THAT BIG!40 -
Context: New to typescript. Writing a thing, doing it for work, good opportunity to stretch my dev legs. Using a propriety lib, alternatives not an option.
Rant begin:
SOOOO, who the fuck thought THIS was a good idea:
1. Lib has minified react in dev (because closed source) meaning no downstream errors AND the entire premise of the lib is that a widget is a react component, so I'm writing typescript react the entire time without downstream errors
2. SHIT docs. By that, I mean there's an API reference page that's so sparse there's literally a set of CRUCIAL interfaces that only say the word 'Interface' on them. That's it. that's what i get. It's an interface. NO FUCKING SHIT SHERLOCK, what the fuck is it though? What's its purpose? Is it an interface for a dog? A dog that has a 'shit' property? or a cat? or a cat eating dog shit? Nobody fucking knows - the docs sure as fuck don't care.
3. No syntax highlighting - editors, IDEs (i've tried a few) can't even find the lib inside this environment, so Code and everything else thinks I'm importing shit that doesn't even exist - so no error prediction, code completion based on syntax of the library, none of that.
4. There are some EXTREMELY basic samples - these samples exclusively use React classes - no function components, no hooks, nada - just classes and even perfect replicas of the sample code display erratic behavior like errors about missing props, so that's mostly FUCKING USELESS
5. And this... this is where the straw breaks the fucking camel's back... there's no... there's no hot reloading... Do you know what that (in conjunction with the previous 4 fuckups) means?
When I write anything or I fuck up (which of course I'm doing every time I write half a line because how the fuck?) I have to restart the client and server EVERY FUCKING TIME and manually test to see if the error (THAT ONLY GETS REPORTED IN THE LOCAL UI) is gone or different.
Then, once I see the error, it isn't an error: it's the minified React error-decoder link and guess what? It isn't really clickable a link OR copyable, meaning that every FUCKING time I get a new error, I have to MANUALLY TYPE A FUCKING 50 CHAR URL TO FIND OUT A GENERIC REACT ERROR MESSAGE WITHOUT A LINE NUMBER OR ANY FUCKING CONTEXT. I HAVE TO DO THIS CONSTANTLY TO SEE IF ANYTHING I'M DOING EVEN WORKS.
6. There's no github to complain to the maintainers or search for issues because it's NOT FUCKING OPEN SOURCE so there is literally nothing to be fucking done about it.
This is due in a week and a half, found out about it last Friday. How's your day going?
PS: good to be back after a long respite from dev ranting.1 -
So I'm studying at a university where everyone who studies electronics has to do the same "internship" where we have to program some microcontroller.
For most of us it is the first time programming with pointers and working with the register (C++). But the institute who does this shitty internship manages to FUCK up the class description and even the classes and methods they give you.
In the class description there are methods missing so you have no idea what they want you to do with that method and then they write stuff in the class description that aren't in the class and you don't need. For fucks sake how can you fuck up such a simple task.
And then their shitty template is wrong. If you expect your students to do well please for fucks sake make sure you give your students the correct classes and descriptions. Many students won't fucking know what is wrong because the never programmed in C++. The best part is that they are doing this "internship" for more than 5 years.5 -
I need guidance about my current situation.
I am perfectionist believing in OOP, preventing memory leak in advance, following clean code, best practices, constantly learning about new libraries to reduce custom implementation & improve efficiency.
So even a single bad variable name can trigger my nerves.
I am currently working in a half billion $ IT service company on a maintenance project of 8 year old Android app of security domain product of 1 of the top enterprise company of the world, which sold it to the many leading companies in the world in Govt service, banking, insurance sectors.
It's code quality is such a bad that I get panic attacks & nightmares daily.
Issues are like
- No apk obfuscation, source's everything is openbook, anybody can just unzip apk & open it in Android Studio to see the source.
- logs everywhere about method name invoked,
- static IV & salt for encryption.
- thousands of line code in God classes.
- Irrelevant method names compared to it's functionality.
- Even single item having list takes 2-3 seconds to load
- Lag in navigation between different features' screens.
- For even single thing like different dimension values for different density whole 100+ lines separate layout files for 6 types of densities are written.
- No modularized packages, every class is in single package & there are around 100+ classes.
Owner of the code, my team lead, is too terrified to change even single thing as he don't have coding maturity & no understanding of memory leak, clean code, OOP, in short typical IT 'service' company mentality.
Client is ill-informed or cost-cutting centric so no code review done by them in 8 years.
Feeling much frustrated as I can see it's like a bomb is waiting to blast anytime when some blackhat cracker will take advantage of this.
Need suggestions about this to tackle the situation.10 -
Have to write ugly ass wrapper classes around a third party dependency since my team can't be bothered learning its vocabulary. A vocabulary which is very well thought and self-consistent. Apparently, defining our own which is only occasionally more descriptive is preferred. It's already collapsing under the weight of its own maintainability cost. And, if someone joins the team that knows the dependency they are fucked anyway as they'll have to use our wrappers.
Time and time again I've tried to oppose this move on several different merits: maintainability chief amongst them, but no one listens to the lowly new hire.
I should just pipe my thoughts to /dev/null and save my breath...2 -
*Repost of my own accidentally deleted post*
A Short story that i made on an Android component
===============================
Once upon a time there used to be a ViewPager who was not able to load a Fragment UI.
All the ViewPagers in town can properly load the Fragrant UI but this one was little different.
He wanted to be more then just a ViewPager. He used to see an Activity that can load anything. He was inspired from the Activity and wanted to be like the Activity but his destiny made him just a ViewPager.
So he refused to cooperate. He started to protest silently, No log, nothing.
Everyone assumed this ViewPager have a bug in it. but he was planning something really big that will left everyone in shock and awe moment.
He was planning to rise against the evil 😈 developers who continuously making him to load Fragrant UI
He assembled the biggest army of the bugs that humanity ever seen to counter the developers.
He distributed these bugs in all over the developer's code to make them fire from their work.
Even he taught bugs to not caught in QA testing but appear in production randomly.
So they silently started going into production
And then chaos is erupted all around the world, bugs started to surface and interrupted the daily life of humanity.
In this chaos the ViewPager RAISED!
And took over all the base classes.
ViewPager was unaware of few facts. this unnecessary rise in his power made whole system unstable
Without the base classes the system finally collapsed and then ViewPager as well with the system.
This was the end of everything for the ViewPager but he was satisfied as he lived the life he always wanted
THE END -
A quick rant about dependency injection.
I see far too often in projects, a huge over-reliance on dependency injection / IOC frameworks which permeate throughout the entire codebase.
I cringe every time I see a constructor annotated with @Inject and 10 params.
The benefit of these frameworks is how easy they make it to manage many dependencies. What I dislike about them, is exactly that. I feel that they make it TOO easy to manage many dependencies.
How trivial is it to simply add another constructor param? exactly. And people then wonder why their dependency tree looks insane.
I am a strong believer in injecting dependencies the traditional way, via the constructor with no fancy framework. The reason being that it forces you to think more about the dependencies you are adding to your classes, and consider if they are really all needed.
The other problem I have with it, is it basically encourages you to inject everything because its so easy. The purpose of dependency injection is inversion of control and allowing classes to depend on abstraction rather than concrete implementation. All that goes out the window when you @Inject 6 different concrete classes.
Use dependency injection for its intended purpose, not as an excuse to be lazy and avoid thinking about dependencies.3 -
There's plenty of literature about how to emulate classes and interfaces flawlessly in JS even without es6, but no, let's make a separate language using 20 extra keywords and several unnecessary concepts called TypeScript with its own compiler.10
-
I wanna make a c+friends language and it'd be dev friendly and will throw lots of errors on compile to show love. Also it'll compile slower with each newline so you can always say "it's compiling" there will be classes but people instead and then instead of new I'll have create. As for loops let's go with a friendly do while loop and dontdo while as normal while or dowith i while to have a friendly for loop. Instead of ifs let's say decide() and instead of else let's have or. Instead of functions I'll have well you need no functions you'll have jumps and tests before jumps just like assembly has. Oh and everything will be a pointer because then it runs nicer. To create a variable you can't use = because that's the equal sign in decide you need to use "var int myint is 69" because why not. Then to print to the console "console.outputstream.out(myint)" instead of threads I'll have please like "please work" where work is a jump target. I hope you'll enjoy this language ^^
-
!rant
I have about a week of holidays left before my classes start and I'm thinking about creating a notepad with password protection and cloud sync so it can be accesed on other devices.
So this is how it will work.
Probably the same interface as windows notepad so no one notices. It can be used to write a personal diary or anything that you don't want other people to know. It will ask for a 4 digit code when you open it(at first you'll see some text, you'll just enter you pin after that text and without pressing enter if you pin is write you'll see the text changes to your previously saved text and if your pin is wrong no error will be displayed itll work as a normal text editor for intruders and probably this wrong pin will be sent to you on you emil with other info). Now even if yoy minimize the window you'll have enter the pin again or even your windows gets out of focus. So you can have it open all the with out worrying.
I'll be using C# for this which I have no experience with. But I'll get it so no problem here.
Provide your feedback on this with some suggestions.
*Sorry I didn't post it on calebs section because I don't have $10.6 -
Referring to this, about best programming languages,
https://devrant.com/rants/1322105/...
I’m more disturbed about Go didn’t make the list. At all.1 -
Working on a project to create a space Invaders clone using Android studio/java. Point is to prove teamwork and our ability to optimise for a phone.
Leader makes the engine
Passes code to me who is doing gameplay.
Creating classes, testing them with a temporary activity class to get them on screen.
Okay, time to get it going properly.
Starts creating the game by placing aliens to the screen via the new alien manager, created in the true starting place.
Nothing appears on screen, sounds still play.
Odd. Repeatedly try to fix, but objects will not appear on the screen if created outside of temporary activity.
Show problem to leader as I haven't been able to figure out.
Gets lectured to no end about how I can't just ask him for help (first fucking time) if I get stuck!!!
Turns out, the value for frame time is way off for the first frame, and their positions get going way off the screens range when being placed. Temp activity works as it skips first frame.
Why did this happen? Genius leader didn't properly initialise it, so first frame time was equal to the First Date Object time ever locked - current time 🤔🤔🤔
We figured it out together. -
Unpopular opinion but I really don’t have any sympathy for people who have been laid off at tech companies. Everyone knows it’s fucking volatile. That is coming from someone who has been laid off in the past year. Out of all the wealth classes of our society, I have no sympathy for people in the richest career field in the world. They will undoubtedly find work and be able to support their high class lifestyle. Let’s start having sympathy for people actually sleeping out on the streets you dumbfucks.15
-
I don't like when
you have a couple of years of experience with some language and you're like "I should read a good book about it, and have some proper solid foundation instead of playing by ear".
So you get a book and what follows is a very jarring experience.
Because for the first 8 chapters they get into the basics of the language.
You're occasionally like "interesting, I did not know that".
But for the most part you're like "yes, for fucking christ I know that, everybody knows that",
or you complain about the author being redundant,
or about the outdatedness of the book, since most documentation is now in the interwebs
or you reach flawed conclusions out of frustration like "this isn't making me any money, I could get on upwork, or do some bounties instead of wasting time on this"
then you start to skim through the pages like "I know this, and this, and this" until you realize you're in some page you have no fucking idea what it's talking about, as if you ended up on the wrong side of town
so you start backtracking (frustration is going critical at this point)
but backtracking is annoying because it's not well defined where you stopped getting it, as if in page 33 you were getting it 100%, but 0% on page 34, it's more like a gradual, irregular decrease,
so you have no idea where to start re reading from.
you just shove that shit into the wall at that point.
Some of these are learning discipline problems.
I guess there are ways to mitigate them, such as writing down questions of things not understood, co reading, etc.
But the one thing I don't think I can't get past is when authors write like shit,
like being redundant, using different words to say the same shit
or using confusing sentences that can mean different things at the same time,
or using the incorrect terminology, eg: if I were teaching OOP, saying shit like "classes create objects" but later on saying something like "classes create instances".
They usually nail the definitions the first time, but then use different terms for the same thing. It's shit.
And I think that's a writing culture that I hate.
From school you are taught to bot repeat words.
To say the same shit in different ways.
To be descritive, but vague.
That's absolutely shitty for programming in my opinion.2 -
Python ecosystem drives me nuts!
Not the language tho, i kinda like it, and some features are damn straight awesome.
But ecosystem... man!
The way ppl write code in it, the lack of documentation (or in quality of it)...
I recently wanted to check how library does one thing (debug purposes), and not only i had to track some method up 3 classes, the other method i hunted only by signature and still i have no idea how it ends up being accessible where it should...
"Explicit is better than implicit" my ass...
Also dev managed to make the code very unreadable. In Python. Language with such strong opinions about code formatting. HOW ?!!
And the worst part is, it wasn't that big of a library and didn't really need the full freaking Enterprise OOP treatment with layers over layers of generally named classes and fucked up architecture.
FUCK THAT LIB, FUCK THAT DEV, FUCK IT ALL !!!
PS.
Project seems to be abandoned for a year or two, so there is hardly an option to fix things with the author sadly :(3 -
It’s very annoying that at my school we barely get any coding at all and to top it off it’s in a typing class using block coding. Considering it’s in a TYPING class you’d think they’d’ve used their typing skills to use but no, they instead use block coding meant for like 4th graders. This is why I say we need more coding classes in schools. Not only that but make it more mainstream1
-
Oh god i have been fighting with exoplayer library and ima sdk for past month and yet i haven't been able to figure out how to play multiple VAST tags without using a vmap.. if anyone knows this( or find this relevent and want more info regarding this) please, let's chat.
I am sometimes so irritated with open source. We are grateful that you made a great video player , but please for the love of god , document it nicely. No one can skimm through your 800 fucking classes, especially when a quarter of them are core c++ classes that an android dev never even touches.
Plus no replies on issues! My god, you know after SO, the second tab that's almost always open on my PC is that of some github library or issue. And am sure that must be the case of most of the devs. Then why can't you fucking reply?????
You see, this is typical google.. i am beleive they see everything and ignore it until the right moment comes... Android dev summit is coming, and they won't make any replies now, but would make big changes on the day of their on stage presentations like a boss, recieving lots of applauses, like " yay, they fixed it!! Yess more documentation " bull fucking shit.
My boss knows this and he is on my ass to find solutions before google releases solutions coz he wanna stay ahead of the competition
Thanks for fucking me, open source1 -
very interesting how uni stressed me tf out but is still better than school has been.
I'm taking a class which has a theoretical and practical part, and there is a guy leading the practical lesson. and after struggling to find motivation for studying, this class somehow probably gives me my hopes back... even though I'm way less capable than the rest in what we're doing, I still can follow everything, which is very suprising to me because I'm always behind and the class has some recommended classes I should've taken before (but I failed some or didn't take them at all)... I still can follow the class somehow?
so... school taught me to not ask question because even if they say there are no dumb questions... the possibility still existed that I could ask a dumb question (shoutout to my math teacher in 3rd class). so... I stopped and when I didn't understand something I gave up.
now... this class makes me feel differently, I can ask questions and the guy I've talked about talks to me normally, talks to me as human beings should talk with each other and doesn't judge me for making a mistake, because... mistakes are human and when I allow myself to ask questions I can learn from it.
this is really a weird epiphany I had this week
and I also don't know if anything of this makes sense1 -
// Pretty long rant.
Already made some rants some months ago about coding experience in Smalltalk for a school project, but to sum it up :
Because of administrative things, Smalltalk change from option to obligatory course to everyone (we were told that "we had 3 choices out of 3" for options. Not even kidding)
So whole prom got to do a Smalltalk project, a basic shapes editor with Drag'n'Drop and keyboard shortcuts implemented.
But literally everyone didn't get a grasp of the language nor VisualWorks, the IDE. So we got projected in a "Do-it yourself, learn by yourself" project with a language that nobody understood.
Took me 1 week of browsing on Google to find books explaining more than the teacher did. Took me another week to notice that the teacher actually provided VisualWorks's manual. (No one would have noticed if I didn't tell them, and the teacher went silent on it.)
And then the coding started. My teacher thought this project would require something like 20-30 hours of coding. Took me 2 whole months and a half to do moist of the features he asked (only the Keyboard shortcuts weren't implemented, explanation below), and I was the most advanced of whole prom, so I had to answer every single question of fellows. Not complaining, but this took me a lot of time.
But why didn't you ask the teacher ?
- If I ask him every question I had in mind, I would actually harass him since I had too many of them, and I wasn't the only one.
- I actually went twice to his office to ask him question. First question, that was pretty straightforward, I forgot something, blablabla all done. Second time, that was for the keyboard. And then, things are getting even funnier. The teacher didn't have VisualWorks installed on his Mac, so he tried to install it while I was waiting. And he took too long time to actually launch it, because VisualWorks asked for him to log in, to provide an email, the download is a little long thanks to the network and the size, etc. When he finally was able to launch it, I had some classes to attend, so he couldn't answer. And since then, I had no time because last year, flooded with work, exams, classes ,etc.
All of that to have only 13 out of 20. I kinda shrugged, knowing that I wouldn't get more, and said that Smalltalk will only be a line of my resume.
Pretty long rant, sorry about that, but had to explain so you can see how bad it was to me.1 -
I've never even heard of this before.
Notes: these are two different ASP.Net projects. I didn't choose VB, the project was already existing.
A conversation between me and a senior:
Senior: (other module) still needs to develop (something you wrote)
Me: they should just use my code, it's compete and tested.
Senior: They should, but yours is in visual basic and they wrote their project in c#
Me: Ah, no problem, I will distribute it as a DLL for him.
Senior: No, I don't want to add dependencies
Me: ????
Senior: They will need to convert it to c# and add the classes
I stopped responding
Man............ what the hell5 -
So here is my take on a shitty teacher.
I once had a microcontroller teacher, who tried to teach a class of non programmers how to code, from a broken compendium. While he was teaching he would correct errors that he found. Most of the classes would be pure theory on C and no exercises.
Needles to say after the first two semesters none of the students could program, and over half of the class had left the school. -
So I figure since I straight up don't care about the Ada community anymore, and my programming focus is languages and language tooling, I'd rant a bit about some stupid things the language did. Necessary disclaimer though, I still really like the language, I just take issue with defense of things that are straight up bad. Just admit at the time it was good, but in hindsight it wasn't. That's okay.
For the many of you unfamiliar, Ada is a high security / mission critical focused language designed in the 80's. So you'd expect it to be pretty damn resilient.
Inheritance is implemented through "tagged records" rather than contained in classes, but dispatching basically works as you'd expect. Only problem is, there's no sealing of these types. So you, always, have to design everything with the assumption that someone can inherit from your type and manipulate it. There's also limited accessibility modifiers and it's not granular, so if you inherit from the type you have access to _everything_ as if they were all protected/friend.
Switch/case statements are only checked that all valid values are handled. Read that carefully. All _valid_ values are handled. You don't need a "default" (what Ada calls "when others" ). Unchecked conversions, view overlays, deserialization, and more can introduce invalid values. The default case is meant to handle this, but Ada just goes "nah you're good bro, you handled everything you said would be passed to me".
Like I alluded to earlier, there's limited accessibility modifiers. It uses sections, which is fine, but not my preference. But it also only has three options and it's bizarre. One is publicly in the specification, just like "public" normally. One is in the "private" part of the specification, but this is actually just "protected/friend". And one is in the implementation, which is the actual" private". Now Ada doesn't use classes, so the accessibility blocks are in the package (namespace). So guess what? Everything in your type has exactly the same visibility! Better hope people don't modify things you wanted to keep hidden.
That brings me to another bad decision. There is no "read-only" protection. Granted this is only a compiler check and can be bypassed, but it still helps prevent a lot of errors. There is const and it works well, better than in most languages I feel. But if you want a field within a record to not be changeable? Yeah too bad.
And if you think properties could fix this? Yeah no. Transparent functions that do validation on superficial fields? Nah.
The community loves to praise the language for being highly resilient and "for serious engineers", but oh my god. These are awful decisions.
Now again there's a lot of reasons why I still like the language, but holy shit does it scare me when I see things like an auto maker switching over to it.
The leading Ada compiler is literally the buggiest compiler I've ever used in my life. The leading Ada IDE is literally the buggiest IDE I've ever used in my life. And they are written in Ada.
Side note: good resilient systems are a byproduct of knowledge, diligence, and discipline, not the tool you used. -
I love this wk108 tag. Have a lot of stories related to it.
For me , my mentors are the reason i am what i am today. In this crazy selfish world where people only want to run faster than the others, having nice helping people around is great.
(Val titanLannister=xx)
(1)class 6-10th, xx is a curious, but poor boy with no desktop/mobile , but still loves cs classes due to various ,caring teachers.
(2) class 11th end,programming for the first time that year, hates programming, one day when everybody goes out for lunch, xx tears down while talking to his cs teacher "why can't i score good marks when i was the best till 10th? Is programming so tough?" . I remember him giving me a little but greatest motivational lecture followed by 40 minutes of the most basic concepts in which i might had asked him a 1000 questions. "You are my chaempion", he used to say😂 (bad accent) . But god, if he hadn't motivated me that day, i swear i would have left all this and go for business. Thank-you, lokesh sir💗💗
First year : tried to go for a competitive learning course. Mann, am not cool in that stuff. Again was about to break (i was among the top scorers in school boards and had designed many small games back then. I should have been good here too, but nah... the other guys were like bullets .)
Oh my, my deepest bow to this amazing teacher SUMEET MALIK (oh sir, you were so good) .
How this guy taught? Well, he first explained the concept. Fo those who understood, he gave them question 'A', for those who didn't, he repated . For those who understood , can do question a again, and those eho did A already gets an even advance question B. And this cycle went on until the weakest student(usually me) understood the concept.
And no, it never happened even once that class finished with even a single child not doing all questions he gave.he used to teach very less concepts each class and would go to everybody's desk to check they understood the concept, the question, its working, weather we implemented or not and weather our implementation is correct or not +our doubts. Hell , i even took doubts with him for hours after the class and he always just smiled💗(oh sir, am so sorry for being so dumb)
Real Doubt classes, doubts on whatsApp, revision assignments , tests , competitions,... damn, i haven't seen a teacher with this much dedication. At one point of time, that institution was famous for our Sumeet sir's classes 😂
Then last year, i got another mentor . Harshit bhiya. The guy is awesome, and a little extra swaggy 😂. He got a lot of chill, with his big AAD badge, a bag full of stickers and his every day association with people at udacity and google. As always i tried to overwhelm him with my ton of doubts in class, but he use to just give me a few pointers/links, after which i was like quiet for the complete session😂. He gave me a lot to think/work upon and i got a kind of career to work on.
I also think of mentioning a fucked up depressing-bot assholic friend of mine, but he don't deserve to be in this list of my best people. Just fuck you mann with a blockchain of dicks, if you are reading this.1 -
Most of us have scary stories about professors that think that they know about what they are talking about when it comes to teaching comp sci subjects. Shit is so backwards in most parts of the world with teachers showing outdated or completely pointless tech.
A friend called me the other day asking for classic ASP help because it was being used in his web class. Another was asking me about flipping c cgi web scripting. Wtf are schools teaching? Having the drive to LEARN actuall useful topics that are relevant on the market is hard enough as it is...shouldn't schools help at least a little bit? I was lucky, we were thaught Java, Python, cpp, js, sql, html5, css3, php, ruby and we had classes for node (for those interested) and asp.net mvc. Those were RELEVANT and good classes and while some outdated tech was good the rest is just bullshit. Specially since most teachers have 0 market value as develpers...but hey!! Wtf do I know! Of course my word is shit against all them doctorate and master degrees.
Gimme a break. School can be great. But a lot of the leadership there is toxic af for our industry. And while I appreciate the effort in me being thaught modern languages (and thaught is a hard word since I already knew how to program way before going to school) i still remember a teacher taking points away from an assignment for not using switch statements in Python...despite my explaining that there was no such thing (you can go around it by using a lil technique using functions, its pretty cool..pero no mames)
Or what about the time I mentioned to a fellow student how he could use markup for having more control with his windows forms while the very same teacher contradicted me saying that shit was not possible. Or the guy at the school in which I work teaching intro to programming using fucking vba...fk man if you are going the BASIC route at least teach them b4j or something fuuuuck.
I had good teachers, but they were always cast asside by dptmnt heads as if they knew better. I just hate pendejo teachers I really do.
Chinguen a su madre, bola de babosos.rant remembering uni yes asshole gnu linux is a viable alternative i still love coding fuck bad teachers fk the system11 -
Working with a SOAP endpoint. I know it is some .NET server due to the style of stacktrace on exceptions. Nice, a framework where I can expect some type safety granted by static types. I build some xsl to transform the SOAP wsdl files into classes and structs to interact with the endpoint. Works out perfectly.
Plottwist!
Elements which are defined in the xsd/wsdl with maxOccur=unbounded and minOccur=0 should represent a simple collection of this type. Therefore does my implementation expect a collection of this type. But no. The shipped SOAP client in my stack ignores the definition and simply deserializes the SOAP response into T and not a collection of T.
Where the duck are the types when they are defined all over the place?2 -
It is 2024 and C# doesn't seem to have a simple way to parse json data into dynamic objects. It wants some husk classes to read into. I will have to find a good third party library for this. I was thinking C# would have this, but no. I see there is something from asp stuff, but I have no clue what I have to import to get that.8
-
I’m working on a react codebase and company decided to add a new module.
Now im writing markup and css to ensure UX is smooth as designers thought of it.
Imagine my horror when I start to code and find out no matter what HTML tag i use, it’s been FUCKING OVERRIDDEN in the global stylesheet. AND STYLES HAVE BEEN OVERRIDDEN WITH !important
They’re also using Ant design as a component library. Guess what, default ant design classes have been overridden too. So i try to use ant design button or card, and bam, MAGICALLY SOME DESIGN FROM SOME SHITHOLE MODULE DECIDES TO FUCK WITH MY STYLES
On top of that, styles of parts of application has been written in SASS, some part of application uses bootstrap components some use third party components like tables and responsive grids to suit to their preferences. Some parts use handwritten css. Some parts use CSS IN JS and styled components. THE FUCK IS THIS GARBAGE!!!! THE FUCKING CODEBASE HAS A MIND OF ITS OWN!!!!!! YOU NAME A WAY TO ADD STYLES TO A COMPONENT, ITS THERE!!!
And the company’s management thought a “fractal” approach to maintain each individual view is “best” for SCALABILITY!!! HOW THE FUCK DID IT NOT CROSS YOUR DUMB MIND THAT FRACTAL APPROACH ALSO GUIDES TO HAVE ALL COMMON STUFF AT ONE PLACE!!!! THIS CODEBASE HAS DUPLICATE STYLES AND DUPLICATE CODE IN ALMOST EVERY MODULE!!!!
Not to mention every developer choosing to freely decide the way they should write their code without any guidelines.
HOW THE FUCK PEOPLE WRITE THEIR CODE WITHOUT THINKING ABOUT OTHER DEVS!!! SO BASICALLY I AM NOT ONLY CLEANING SOMEONE ELSE’S SHIT BUT ALSO TRY NOT TO SHIT IN THE PROCESS!! FML2 -
YGGG IM SO CLOSE I CAN ALMOST TASTE IT.
Register allocation pretty much done: you can still juggle registers manually if you want, but you don't have to -- declaring a variable and using it as operand instead of a register is implicitly telling the compiler to handle it for you.
Whats more, spilling to stack is done automatically, keeping track of whether a value is or isnt required so its only done when absolutely necessary. And variables are handled differently depending on wheter they are input, output, or both, so we can eliminate making redundant copies in some cases.
Its a thing of beauty, defenestrating the difficult aspects of assembly, while still writting pure assembly... well, for the most part. There's some C-like sugar that's just too convenient for me not to include.
(x,y)=*F arg0,argN. This piece of shit is the distillation of my very profound meditations on fuckerous thoughtlessness, so let me break it down:
- (x,y)=; fuck you in the ass I can return as many values as I want. You dont need the parens if theres only a single return.
- *F args; some may have thought I was dereferencing a pointer but Im calling F and passing it arguments; the asterisk indicates I want to jump to a symbol rather than read its address or the value stored at it.
To the virtual machine, this is three instructions:
- bind x,y; overwrite these values with Fs output.
- pass arg0,argN; setup the damn parameters.
- call F; you know this one, so perform the deed.
Everything else is generated; these are macro-instructions with some logic attached to them, and theres a step in the compilation dedicated to walking the stupid program for the seventh fucking time that handles the expansion and optimization.
So whats left? Ah shit, classes. Disinfect and open wide mother fucker we're doing OOP without a condom.
Now, obviously, we have to sanitize a lot of what OOP stands for. In general, you can consider every textbook shit, so much so that wiping your ass with their pages would defeat the point of wiping your ass.
Lets say, for simplicity, that every program is a data transform (see: computation) broken down into a multitude of classes that represent the layout and quantity of memory required at different steps, plus the operations performed on said memory.
That is most if not all of the paradigm's merit right there. Everything else that I thought to have found use for was in the end nothing but deranged ways of deriving one thing from another. Telling you I want the size of this worth of space is such an act, and is indeed useful; telling you I want to utilize this as base for that when this itself cannot be directly used is theoretically a poorly worded and overly verbose bitch slap.
Plainly, fucktoys and abstract classes are a mistake, autocorrect these fucking misspelled testicle sax.
None of the remaining deeper lore, or rather sleazy fanfiction, that forms the larger cannon of object oriented as taught by my colleagues makes sufficient sense at this level for me to even consider dumping a steaming fat shit down it's execrable throat, and so I will spare you bearing witness to the inevitable forced coprophagia.
This is what we're left with: structures and procedures. Easy as gobblin pie.
Any F taking pointer-to-struc as it's first argument that is declared within the same namespace can be fetched by an instance of the structure in question. The sugar: x ->* F arg0,argN
Where ->* stands for failed abortion. No, the arrow by itself means fetch me a symbol; the asterisk wants to jump there. So fetch and do. We make it work for all symbols just to be dicks about it.
Anyway, invoking anything like this passes the caller to the callee. If you use the name of the struc rather than a pointer, you get it as a string. Because fuck you, I like Perl.
What else is there to discuss? My mind seems blank, but it is truly blank.
Allocating multitudes of structures, with same or different types, should be done in one go whenever possible. I know I want to do this, and I know whichever way we settle for has to be intuitive, else this entire project has failed.
So my version of new always takes an argument, dont you just love slurping diarrhea. If zero it means call malloc for this one, else it's an address where this instance is to be stored.
What's the big idea? Only the topmost instance in any given hierarchy will trigger an allocation. My compiler could easily perform this analysis because I am unemployed.
So where do you want it on the stack on the heap yyou want to reutilize any piece of ass, where buttocks stands for some adequately sized space in memory -- entirely within the realm of possibility. Furthermore, evicting shit you don't need and replacing it with something else.
Let me tell you, I will give your every object an allocator if you give the chance. I will -- nevermind. This is not for your orifices, porridges, oranges, morpheousness.
Walruses.16 -
When I was in school days I didnt like computers that much. I knew how to use them but thought classes were lame.
It was a couple of years ago, in the last year of my first computers-related career (here there's no computer science like in USA). It was in the initial stages of my graduation project and our teacher took a look at our database design, fixed it all. And explained:
"The better you designed your database, the easier it'll be to code the project" Explained to us the importance of database normalization and all that.
I really understood it all and discovered finally what was the thing I was studying and how to do software.
From that day, in my early 20s, I've been loving software and knew this is my thing.
Same feeling 6 years later.2 -
Most of the faculty on my college's IT engineering department aren't exactly adept with Linux, despite the fact that 10/12 labs in our building run on Ubuntu.
Last week, a really great professor (who doesn't take any classes I can attend) from the Electronics and Communications department and I wrote some bash scripts to automate updates and so on, staying back after college until late evening to try to get the PCs updated.
We'll be trying to use SSH to update as many computers as we can remotely, and trying to learn to use Cron to automate the whole updating deal.
I'm learning this stuff on the side, since it's not on my syllabus at all, and the professor isn't even related to the departments that run the labs usually.
We're not getting anything for doing this, the head of my department (who has it in for me) has no idea about this, and nobody else is bothered enough to learn either. -
Fucking fuck! How could I be so naive?
I just started my masters in Enterprise Software Development. It's basically the continuation of the CS BSc I finished this year. I don't consider myself a lazy and bad dev and I finished in the top 5-10% of the class - I say this not because I want to brag, I know I'm not the best, I know I have my defects, BUT I don't think that it's a good sign that all of us, my top graduate friends all full of hate and anger against this whole MSc after just a week. And... It's mostly one fucking egoistic teacher's fault.
Okay, all of us are working full time which is obviously tiring if you combine it with the university classes. But I still think I could manage this first week better, if I wouldn't fucking came to the same line of the faculty.
I deeply fucking hate that I've been naively thinking that the masters will be different after experiencing one of the worst teachers last year. It's fucking first week, and I can't change the specialization anymore, only give up. I wanted to fill up the void with some usefulness, but I just fucking messed it up.
This "beloved" teacher is from the industry, he has a lot of experience and started to teach recently. Which is not a problem, no! It should be a great thing by default. But the way he holds his courses is inaccaptable. I don't think I have the right to share everything, but the following stuff just grinds my gears... Like a fucking lot:
1) He brags about a lot of stuff. Like he made really good deals in the past. Why should we know, that he made a contract with a client for 20 million euros. Okay. Whatever. That doesn't help us, and I think that bragging makes him look like an egoistic scum.
2) I hate this one the most: he fucking says that we have a choice in the administrative stuff. He gives us some hope and offers the possibility to argument and come up with our own solutions for grading and etc. But oh boy, is this a false hope, a fake idea of free will. He already knows what the final solution will be and on what kind of decisions will we all "agree". He did this last year, he does it again. Fucking naiveness of mine...
3) Lastly, he decided, that we have to go to theatre with him, all of us. No exception. And I like the theatre. But only when it isn't forced. Why and how could you pair this up with the grade you give to your students? Because that's what he does.
FML. How can I already hate this? How can I already be fed up with all the stuff? Anyways, I'm signing the contract with the university tomorrow, so let the fun games begin... I know, I look like a whining little boy now, but I just fucking had to went it after this deep fried shit-day. I probably have to get some sleep, and everything's gonna be fine. Eventually, skipping classes might become necessary in order to bear all this shit.6 -
During my professional education (loooooong time ago), i once tried to figure out, why my java application runs perfectly fine on windows, but the same application isn't able to find the required classes to run on linux.
Since i was a noob respecting linux management, i had no idea, that it is necessary to separate different paths of a program for the parameter "classpath" in windows by using ":" and in linux by using ";".
I mean. Is it really that hard to enable both separator for folders in classpath.
Man! It still haunts me from time to time after decades of development ^^3 -
So i wasted last 24 hours trying to satisfy my ego over a shitty interview and revisiting my old job's codebase and realising that i still don't like that shit. just i am 25 and have no clue where am i heading at. i am just restless, my most of the decisions in 2023 have given very bad outcomes and i am just trying doing things to feel hopeful.
context for the interview story-----
my previous job was at a b2b marketing company whose sdk was used by various startups to send notifications to their users, track analytics etc. i understood most of it and don't find it to be any major engineering marvel, but that interviewer was very interested in asking me to design a system around it.
in my 1.2 years of job there, i found the codebase to be extremely and unnecessarily verbose ( java 7) with questionable fallbacks and resistance towards change from the managers. they were always like "we can't change it otherwise a lot of our client won't use our sdk". i still wrote a lot of testcases and tried to understand the working of major features.
BTW, before you guys go on a declare me an embarrassment of an engineer who doesn't know the product's code base, let me tell you that we are talking SDKs (plural) and a service based company here. their was just one SDK with interesting, heavy lifting stuff and 9 more SDKs which were mostly wrappers and less advanced libraries. i got tasks in all of them, and 70% of my time went into maintaining those and debugging client side bugs instead of exploring the "already-stable-dont-change" code base.
so based on my vague understanding and my even more vague memory from 1 year ago, i tried to explain an overall architecture to that interviewer guy. His face was screaming the word "pathetic" from his expressions, so i thought that today i will try to decode the codebase in 12-15 hours, publish a cool article and be proud of how much i know a so called martech system design. their codebase is open sourced, so it wasn't difficult to check it out once more.
but boy oh boy i got so bored. unnecessary clases , unnecessary callbacks static calls , oof. i tried to refactor a few classes, but even after removing 70% of codebase, i was still left with 100+ classes , most of them being 3000-4000 files long. and this is your plain old java library adding just 800kb to your project.
boring , boring stuff. i would probably need 2-3 more days to get an understanding of complete project, although by then i would be again questioning my life choices , that was this a good use of my 36 hours?
what IS a correct usage of my time? i am currently super dissatisfied with my job, so want to switch. i have been here for 6 months, so probably i wouldn't be going unless i get insane money or an irresistible company offer. For this i had devised a 2 part plan to either become good at modern hot buzz stuff in my domain( the one being currently popularized by dev influenzas) or become good at dsa/leetcode/cp. i suck bad at ds/algo stuff, nor am i much motivated. so went with that hot buzz stuff.
but then this interview expected me to be a mature dev with system design knowledge... agh fuck. its festive season going on and am unable to buy any cool shirts since i am so much limited with my money from my mediocre salary and loans. and mom wants to buy a home too... yeah kill me3 -
i wish i had no university classes (or at least, only programming classes) so that i could learn more about different technologies and had more time to code :(3
-
My little brother started college this year. He hasn't decided what he wants to do, so he took classes in finance and computer science. During finals week, he comes to me ranting about GitHub. "It has to be the most useless tool ever made", he said.
His teachers made him use it without any explanation on HOW to use it. His whole team was working out of a single branch, downloading the zip every time, and struggling to fix merge conflicts. At no point was this ever corrected. This has been going on for an entire year!!!
Safe to say, I spent the afternoon walking him through more productive ways to use GitHub and showing him why it's not "the most useless tool ever made". I don't get why teachers for students to use tools but fail to ever explain how. All that is going to do is deter kids from using tools that could save them when they get a real job.6 -
Hotswapping/replacing classes on the production server
We call it "russian deployment" .. No offense -
i have a very casual and boring job. it's a b2b company and you can get an idea of how less work we get (or how fast i am) that it's day 1 of the sprint and i have almost finished all my tickets. my manager always praises me as someone fast whereas i see myself as pretty slow and this company even slower.
i feel like quitting, but the relax environment and stability of the company on paper makes me wonder of that would be a correct decision.
It's a deep tech company (not just meat e commerce or car rentals, a proper b2b analytics giant startup with good profitability) , our sdks are used by major startups and yet i find it boring.
I am an android dev who would love to stay at top of the game. my previous company used latest jetpack libraries, kotlin, modular architectures and stuff. everyday was a hectic chaos of life where there were deadlines, new requests coming in every few days and i was becoming the awesome fast android dev that i am now.
in this company there is no challenge for me.But the amount of free time has helped me grow beyond a single domain. i am currently hustling in 3 areas : my body( i started working out regularly, got my tummy under control), my technical skillset( started taking web dev classes) and my physical skillset (started taking driving and swimming lessons) . the amount of self growth time increases since company has a good leave and PTO policy
it all feels pretty good but the constant feeling of being left out from the android domain makes me think if i should give interviews. am i being stupid or what? my friends are all growing up with better salaries and packages. i am way better than some of them and equally capable as a few of them, so i sometimes feel being behind in finances too :/7 -
CSS has no parent selectors... and the codebases' element I'm working on has no classes nor an id...
kill me8 -
You know how each generation is taught more and more advanced stuff? My grandparents didn't have a clue about the the things my parents were learning at school. My parents could only catch up with my school course until like 7-8 class. Considering this trend we should have no idea about half the things our kids will be learning in higher classes.
However, since AI is taking its pace, schools are adapting and starting to use it for teaching, workplaces are leveraging it to rely on employees' brainpower and skill less and less,... I wonder if we won't see a downtrend. I wonder if we won't be the smartest generation who managed to ingest so much knowledge, and all the generations to come will only focus on mastering prompt engineering.
I wonder, how long will we survive with this dumbed down society... As the primal instinct is to overcome your opponent with greater force, possibly destroying it and everything around. And less educated tend to rely on primal instincts more.
I wonder if I'll live long enough to see Idiocracy [the movie] manifest in real life.
I know I refer to Idiocracy movie more often than anyone refers any other movie here. But it just hits too close to home too often. It might look like a silly something to spend time staring at, but man.. It's got one hell of a point3 -
This guy is easily the biggest idiot I've ever seen. First off, there is no such thing as Valedictorian at UMD. Second, he claims to want to start his own company and become the CEO by sheer will and hope. No business plan, no money, nothing practical, just a few CS classes and a dream. But don't worry, "nothing is insanely difficult if you want it badly enough!"8
-
Hey so this just came up and i have no idea how could i ddg this so ill just ask here.
I know you can use namespace{} in typescript but is there something similar in js (es6)? We are making a game and the variable names are getting scarce so it would be nice if we could like menu.offset or something. I know static variables in classes are a thing but im asking about namespace-y stuff here.3 -
Today something pretty bad happened (as always at school)
and I'm gonna rant about it to
1) get your expertly opinion on it
2) relieve from it
SOOOOO
today I entered class to paretake in the writing of the much anticipated class test (kappa).
The teacher gives everybody a sheet with the exercises - let alone me.
I tell him to give me a sheet too.
"Put a book between you and xy"
so I do. I ask him again to give me the exam paper. No response.
Again, and he looks at me with a disrespectful look. I look back. And get thrown out of the room - not getting a chance to paretake in the writing of the test yet getting the worst grade one could possibly get in the modest german education system (=> 6)
Now I'm going to pursue any possible legal action against him (I dont care about him. After the lesson I wanted to talk with him; yet he declined my offer for reconsiliation, then he called my parents, even though he had time to think about what he did {any sane person would agree that what he did was wrong <yet my classmates dont agree>}. Also, he is that type of teacher who gives unusually unnessecary homework - which I personally see as punition, since I already know 97% of the stuff thought in [english] classes)
See why I am despising school so much?
It drains my last bit of energy until I am an empty shell with the sole goal to finish education asap in order to be able to fucking work.
BTW: I tried using my best english in this rant to demonstrate my abilities in order for you to be able to see that I honestly dont those "basic" english lessons.7 -
Just been on a like 4 hour no pause coding session (which is fairly long on my terms) trying out random stuff in Java.
-Interfaces
-Classes but weird
-Weird Interfaces with weird methods
-Weird methods
-Custom types, essentially classes
-Depression
-Its 00:13 help7 -
life becomes sulking when you have no support.
1. bought a new car. finally everything went good and i was able to get out of the infinite loop of anxiety : "where would i park?" "fights with neighbour" , "how to become confident after learning to drive in driving schools?" , efc
2. on delivery day, a friend helped park the new car near home. the plan was that from next day , we will start taking classes on self car with a car trainer
3. this morning, i took a class with car trainer alongside my mom as she wanna learn too. she used to drive somewhat shakily 10 years ago.
She got scared seeing me to drive. i was driving fine as the trainer hmmself didn't scolded me anything. i was driving at 30kmph on empty roads, while she is trained to drive at 10-15kmph. whe she drove, her driving was full of jerks and sudden break/clutch release, but i remained mum
4. later on, one of my friend also rejected going with me for driving. and the car trainer is also citing some time issues for next few days. i am now stuck with:
- a brand new car wrapped under sheets with no future for getting out
- a driving license in my wallet that will keep on taking dust as i would rarely be allowed to ever take my car out for a 60km drive to office.
-some overly anxious parents trying to take out my morale
- a sad me. when will the life give me a chance to fuckin grow up?
i have cracked the IT for fuck's sake. i started from peanuts salary, and worked my way to a great package, i am a person who understands how to live. why the fuck can't i learn this skill5 -
I am just student looking for job, and got this pre interview test:
Develop an Android or iOS app with login and password input field, download button, place for image we prvided.
... reading further:
What we are looking for in the code ?
internal quality:
-consistent formatting of the source code
-clean, robust code without smells
-consistent abstractions and logical overall structure
-no cyclic dependencies
-code organized in meaningful layers
-low coupling and high cohesion
-descriptive and intention-revealing names of packages, classes, methods etc.
-single small functions that do one thing
-truly object-oriented design with proper encapsulation, sticking to DRY and SOLID principles, without procedural anti-patterns
-lots of bonus points for advanced techniques like design patterns, dependency injection, design by contract and especially unit (or even functional or integration) tests
external quality:
-the app should be fully functional, with every state, user input, boundary condition etc. taken care of (although this app is indeed very small, treat it as a part of big production-ready project)
-the app should correctly handle screen orientation changes, device resources and permissions, incoming calls, network connection issues, being pushed to the background, signing deal with the devil :D and other platform intricacies and should recover from these events gracefully
-lowest API level is not defined - use what you think is reasonable in these days
-bonus points if the app interacts with the user in an informative and helpful way
-bonus points for nice looks - use a clean, simple yet effective layout and design
... I mean really ? and they give me like 2 days ?4 -
gradle is infuriating.
firstly there are so limited resources to understand how it's building a java/android code. everything happens by magic and hit+trial
secondly the plugins and the tasks works in mysterious ways. sometime they work when applied in the project root's gradle file, other times they work when applied in module's gradle file, nd other times they need configuration at both levels.
then there are gradle tasks like build ,test, assemble , clean etc. these are less of an action and more of an alias to run a bundle of actions.
then we have 3rd party plugins which attach themselves to these "fat-actions" and run before/after them
and finally we have the fuckup from the java world where the only available code coverage plugin is jacoco and IT FUCKING SUCKS!!! it is a test environment plugin, it should impact test tasks , but somehow it's fucking with the assemble taskin such a manner, that the jars ans aar files generated via plugin are giving runtime errrors. yes , runtime! as if we are back in the messed up js world of "everything is good unless running live"
even if it was a compile time eeror, i would have considered. but runtime?!! fucking runtime error?! i barely understand this shit, there is absolutely no info available as to which classes are being used to create a build and how, and i am supposed to fix this? wtf?!4 -
So to give you a feel for what evil, clusterfuck code it was in: this projects largest part was coded by a maniac, witty physicist confined in the factory for a month, intended as a 'provisional' solution of course it ran for years. The style was like C with a bit of classes.. and a big chunk of shared memory as a global mud of storage, communication and catastrophe. Optimistic or no locking of the memory between process barriers, arrays with self implemented boundary checks that would give you the zeroth element on failure and write an error log of which there were often dozens in the log. But if that sounds terrifying already, it is only baseline uneasyness which was largely surpassed by the shear mass of code, special units, undocumented madness. And I had like three month to write a simulator of the physical factory and sensors to feed that behemoth with the 'right' inputs. Still I don't know how I stood it through, but I resigned little time afterwards.
Well, lastly to the bug: there was some central map in that shared memory that hold like view of the central customer data. And somehow - maybe not that surprisingly giving the surrounding codebase - it sometimes got corrupted. Once in a month or two times a day. Tried to put in logging, more checks - but never really could pinpoint the problem... Till today I still get the haunting feeling of a luring memory corruption beneath my feet, if I get closer to the metal core of pure C.1 -
I don't like classes and I will fight anyone that over uses them for no logical reason what so ever !! 😐6
-
You have two extremes in Australia - latte sipping brunch eating do gooders who live in white suburbs but ardently support multiculturalism (as long the extent of it is only trying new italian coffee or weekend bellydancing classes) or living with white trash where women act like men and men act like animals.
There is no in between40 -
The Rise and Fall of Helper Classes
New method doesn't seem to fit into one of the existing classes so a developer creates a new class and innocently called it "helper".
Another dev had a similar conundrum and adds a couple more methods to the "helper" class.
And a few more methods added...
A couple more methods surely wouldn't be too bad. It has unit tests anyway.
After a year, the helper class has now grown to about 10,000 lines that no one is brave enough to refactor.
CTO now says, "Ok let's park this project and build a new one in Go." Fun times!2 -
I recently went through a very detailed and well-explained Python-based project/lesson by Karpathy which is called micrograd. This is a tiny scalar-valued autograd engine and a neural net on top of it.
The project above is, as expected, built on Python. For learning purposes, I wanted to see how such a network may be implemented in TypeScript and came up with a 🤖 micrograd-ts - https://github.com/trekhleb/... repository (and also with a demo - https://trekhleb.dev/micrograd-ts/ of how the network may be trained).
Trying to build anything on your own very often gives you a much better understanding of a topic. So, this was a good exercise, especially taking into account that the whole code is just ~200 lines of TS code with no external dependencies.
The micrograd-ts repository might be useful for those who want to get a basic understanding of how neural networks work, using a TypeScript environment for experimentation.
With that being said, let me give you some more information about the project.
## Project structure
- [micrograd/](https://github.com/trekhleb/...) — this folder is the core/purpose of the repo
- [engine.ts](https://github.com/trekhleb/...) — the scalar `Value` class that supports basic math operations like `add`, `sub`, `div`, `mul`, `pow`, `exp`, `tanh` and has a `backward()` method that calculates a derivative of the expression, which is required for back-propagation flow.
- [nn.ts](https://github.com/trekhleb/...) — the `Neuron`, `Layer`, and `MLP` (multi-layer perceptron) classes that implement a neural network on top of the differentiable scalar `Values`.
- [demo/](https://github.com/trekhleb/...) - demo React application to experiment with the micrograd code
- [src/demos/](https://github.com/trekhleb/...) - several playgrounds where you can experiment with the `Neuron`, `Layer`, and `MLP` classes.
Demo (online)
---------------------
To see the online demo/playground, check the following link:
🔗 https://trekhleb.dev/micrograd-ts3 -
In my university days, when I used to spend time elsewhere than curriculum classes : "You're not getting anywhere if you don't get a degree in whatever you want to work with in your life."
Today I earn more than all the cousins of my age combined. No more rants from anyone, anymore.
I might not have a professional degree, but my family still sees me as a responsible person. -
Tonight begins the holiest day of the year for Jews, Yom Kippur. I'm about to embark on a 25 hour fast, no food, no water. I'll be in a prayer house for 15+ hours, literally begging God to let me live for another year.
Meanwhile, I'm set back in my classes 150+ hours of potential work time thanks to all the Jewish holidays this month. Sukkot, Shemini Atzeret, Simchat Torah, and Rosh Hashanah.
Being Jewish is fun T_T10 -
I was pissed off beyond all reason yesterday when I realised that the reason my code didnt work for 2 days was because i spelled eForm with an uppercase F in my data model, and a lowercase f in my object classes. There was no way for the compiler to warn me so everything compiled fine but crashed at runtime when I tried to access that property. When I saw it, my head hit the desk....
-
I'm so confused by our architecture and development process in general
We planned what features are to be implemented (e.g. what endpoints should do what), but there are parts of tasks which depend on others, and I'm not sure what classes to build or when to start a task given that related ones are being done by other developers, I have absolutely no idea what I'm doing
I could maybe do all of this alone my way if it was just me, but when I ask in planning about how we should go about implementing shit together, I just get backlash from this senior developer telling me we shouldn't waste time discussing implementation details in planning
Like, what the fuck do you want me to fucking do, just implement all the dependencies of what I'm doing from zero, without reusing any of the code other devs are doing that touches on the same parts?
Fucking hell, man, this is the third sprint where I'm confused like this
Maybe I'm just too dumb to be a developer after all lol5 -
My university had a Programming Fundamentals course in the first semester and we got assigned this grumpy lady who demanded respect and would always claim she was the best at programming among her colleagues, had an obnoxiously snobbish tone and had a habit of forcing unneeded nonsensical sarcasm everytime one of us stepped up to ask her a question.
She taught C++ and I'm not saying she didn't know her stuff or anything; I respected her regardless (because she was my teacher), but she would mix up C classes in and insist that that was the right way to do it and had no consistent programming style.
Once she got so fed up with our class that just to prove her point that we're all dumb and worthless (she hated us a lot, yeah) that she started explaining binary trees and recursion out of the blue and gave us assignments for them... even though they weren't going to be covered that week. It soon became a shitfest, to be honest.
But on the plus side, because I didn't wanna listen to her lectures I pulled two all-nighters and covered the semester's worth of C++ and started napping in a corner in her class. She never had personal beef with me so I was thankful for that but her being the way she was helped me learn C++ with more motivation and vigor than I normally would have and also let me earn some change because my classmates couldn't understand her classes and wanted me to explain whatever she covered. -
Hey devRant! Long time no see
I recently landed a job as a java developer so that's amazing
Still getting my head around the company's codebase, and holy fuck its huge.
I was taught best oop practices and patterns in CS class, but seeing them implemented in such a huge project is kinda pisssing me off: every single thing in the code has dozens of classes that call and implement each other, I spend half my time spamming the "open declaration" shortcut in a futile attempt to understand how the pieces fit together.
Sometimes I wish they had stuck to implementing everything in a handful of files, instead of the jungle of nested packages and references I got :pensive:
Oh well at least most thing are documented :shrug:
I kinda get y some people despise java for being so verbose and forcing strict pop on the programmer XD4 -
So there was this project in second year of uni, I was in a team with 2 friends, we had to do a small project to learn programming. I was the most experimented one but still very bad.
One night, I took a few beers and started coding.
I wrote almost all the thing that night, the main functionalities plus the input/output.
But as I was drunk I made some weird decisions:
-naming all the classes in french and all the variables in English
-no tests (who does tests?)
-comments in Spanish
The next morning, when I send the code to my friends (we didn't know about git yet), they started hallucinating. We spent a lot of time refactoring and cleaning.
In the end, as most of the logic was there, we ended up the project a few days before due date and celebrated with more beers 🍺2 -
So i recently inherited some legacy code.
Its actually not to bad. Just a few thousand locs which are mostly stretched across a handfull of functions lmao (800lines per function yay).
So the main thing i wana ask. Does someone here know of good techniques to gradually reimplement all of this.
Since im not gonna apply bandaids to this mess anymore than is needed.
Unfortunately this is a very important system and it only runs on production xD.
Idealy i would somehow be able to duplicate the tcp traffic to the reimplementation but that doesnt seem feasible.
Also what the individual modules classes and so on do wa snever documented and no one even knows how or why certain things even exist.
If anyone has any idea of what i can do. Apart from hoping to god i dont miss any weird quirky edge cases. Do let me know7 -
I still hate Android Studio :( :( :(
Worked all morning on my project, debugging, no problem.
Now all of a sudden it crashes whenever I try to debug. java.lang.ClassNotFoundException - random classes.
But it runs fine if I just run the app.
I reverted to my last working commit, and it still does that. I restarted my computer. No luck.
I disabled Instant Run. No luck.
I tried to upgrade gradle to 3.3 - no luck. That's the extent of stack overflow suggestions for similar errors.
I am stumped. What has changed in the middle of a work-session when I have not changed any settings in the IDE, have not updated anything.
Aaarrgh!6 -
"Learning" kotlin for android dev has been a wild ride yet. Kotlin is kinda cool, a mix between python and Java but with many nice features. Then again there are kotlin features on which I just scratch my head like data classes and companion objects.
And then for android (not kotlin specific) I see things like calling Timepicker(...) or Timepicker Dialog(...) without assigning it to a variable and wonder how that can even work. Can someone explain? There's no creation method, static method or anything?
I feel like a competent and incompetent dev at the same time.3 -
Spent days to setup a newer-Android version with reverse-proxy-HTTPS certificate in its CA store + one that'd support Google Play and signing in (old school man-in-the-middle).
FINALLY got the API calls of this 1 app whose unofficial client I wanted to make coz their main sucks ass. Just to get stuck on the phone-number-based OTP that they use for their login (:
They send a unique token for each OTP request, I assumed they're using some hard-coded string based function, which they decrypt on their backend to verify.
Downloaded their APK and decompiled. Went through dozens of weird-ass-named classes (coz decompiled). For the 2nd time I thought I had it!
But no -.- they call Google's Firebase messaging for the phone-num OTP n that function simply called firebase, looked into that service n ofc it's very tightly coupled with the calling API's backend
It was fun while it lasted I guess~~~1 -
Just figured out "code map" and "code clones" on VS 2015 (don't ask me why I didn't know these features)
Thought I should try it on my newly created application for a client (+/- 1500 lines of code C#)
Came across 1 duplication, 0 unreferenced classes or members and no circular references
I'm just awesome -
Project was based on Ionic3 with angular and SCSS.
Ionic has an SCSS array with colours that generates countless CSS classes for each combination of color-component.
Smh I managed to reduce the amount of colours in that array and reduced the overall size of the final CSS by 48% (from ~8MB to 4.1MB)
Of course the overall app had no performance increase BC the problem is the main.js file which is about 12MB with no lazy load3 -
So, our lab professor in university for data structures was evaluating my friend's group assignment next to me and my colleague.
Professor: So, what does this method do?
Friend: I feel it would be best to explain our structure first and then how our methods work.
P: No, no. It's okay, I'm seeing it here in my laptop. *Looking at their report which included nothing about the structure of the assignment since she asked specifically only to place the methods and their complexity analysis due to not having time to look and evaluate a full report for each group*
F: Okay, *proceeds to explain*.
P: Okay, and why is your code commented?
F: Because it's good practice and we learned in subject x last semester.
P: Impossible! I teach that subject and I did not teach that in my classes.
F: Okay, but our professor did.
P: *Says nothing*.
They got a 3.25/5 as a grade for it and got really pissed off. I mean, they spent a lot of time making the assignment's structure perfect, optimizing their code and the professor did not care for the structure, just the methods, on the data structures subject.
FYI, they are workaholic, dedicate a lot of time improving their skills and their normal grades are usually >= 4.25.2 -
Man going from Rust to other languages is making me go insane
Why does no other language have a high quality, standard documentation tool!? I just want to know what classes and functions you have 😭21 -
Why isn't physics an optional class in my computer science degree?
I mean, why would they assume I will need more physics in my life? I had physics until my senior year in school, we're pretty much learning the same thing! The only purpose I see in this crappy class is to lower my average, I will never need to know how to measure forces, sound waves or magnetic fields.
I know some people will need some of this in the future but it's a very small portion I bet.
I've always hated physics and to make matters worse I need to go to exam (if we fail the class by tests we need to go to exam) and I've been studying ever since the semester is over when I could've been on vacation and studying stuff that really matters, like how to make gui's and playing more with Linux and C. But no, I have a shitty exam in the 13th (Friday) and because of it I only have 1.5 weeks until classes start.
I just hate physics so God damn much...6 -
Since I started living by Sandi Metz rules for devs, i feel like my code has really improved.
My favorites:
* Classes can be no longer than one hundred lines of code.
* Methods can be no longer than five lines of code.
I hope you find them as usefull as I did.2 -
Okay this is my first time posting on this site. I've browsed it (definitely not in class) and the community looks beautiful, so I'm going to just kind of slide in here. Anyways this is the part where I use my caps lock button and type lots of naughty words I guess...
<rant type = 'school'>
Our programming classes are fucking DISMAL uuugh... Okay so we have four technology classes: Tech Exploration, Coding 1, Coding 2, and Intro to CS (a 'high school' level class)... So this means a fuck ton of kids in programming classes, mostly because I WANNA MAKE MINCERAFT AND BE A KEWL BOI LIKE GAME DEV BUT I'M ALSO A FUCKING IDIOT AND WILL NOT LEARN ANYTHING YAAAAAAY but that's a mood and so there's a fucking tidal wave of dumb kids in these classes. So right we're dealing with like 80 kids per class period. Sorry if I'm repeating myself but there are a FUCKTON of students. Now, we have... wait for it... ONE FUCKING TEACHER. ONE. I fucking swear this district does not give a SINGLE SHIT about possibly THE SINGLE FUCKING MOST IMPORTANT SUBJECT WHYYYYYY... Okay so the teacher is kinda overworked as fuck lol. She can't really teach eighty kids at once so she mostly gives us exercises from websites but when she can she teaches us shit herself and actually knows a good bit about her field of study. She's usually pretty grumpy, understandably, but if you ask her a good question that makes her think you can see the passion there lol. So anyways that's a mood. Now at the other school it's even worse. They have this new asshole as a teacher that knows NOTHING about ANYTHING IT IS SO FUCKING REDICULOUS OH MY UUUUUGH... THEY STILL DON'T EVEN KNOW WHAT A FUCKING LOOP IS LIKE OKAY YOU'VE BEEN TEACHING PROGRAMMING FOR A YEAR AND YOU'RE THE ONLY ONE TEACHING IT AT THAT DISTRICT SO MAYBE YOU SHOULD AT LEAST FUCKING TRY WHAT IS WRONG WITH YOU... so he just makes them do shit from a website and obviously can't do half of the shit he assigns it's so fucking sad... I swear this district is supposed to be good but maybe not for the ONE THING I WANT IT TO BE GOOD FOR. Funny story: in elementary school once I wrote down school usernames for people I didn't really know and shared them a google doc that said "you have been hacked make a more secure password buddy" etc etc and made them the owner and these dull shits report it to the principal... So I'm in the principles office... Just a fucking dumb elementary school kid lol and the principal is like hAcKiNg Is BaD yOu ShOuLd NoT dO iT and I'm like how did you know it was me... so he goes on to say some bullshit about 'digital footprint' and 'tracing' me to it... he obviously has no clue what he's saying but anyways afterwards he points to where it says last change made by MY SCHOOL ACCOUNT... HOW DULL CAN YOU FUCKING POSSIBLY BE IT WAS FROM MY ACCOUNT THAT LITERALLY PROVED THAT I DID --NOT-- 'HACK' INTO THEIR ACCOUNT YOU DUMB FUCK. Okay so basically my school is a burning pile of garbage but it's better than most apparently but it's GARBAGE MY GOD... Please fucking tell me it gets better...
okay lol that was longer than I thought it would be guess I just needed to vent... later I guess
</rant>12 -
I don't know how it's out there, but where I'm from, we don't get a lot of practical classes. The curriculum has tried to include practical alongside theory but its just not working. All we do is theory and more theory. Maybe include a major portion of marks for practicals rather than theory. And yes, please no coding in paper.
Another major thing we lack is teaching logical thinking. I have met final year under grads who find using a (!foo) to invert the value of foo mind blowing. They would rather use a full blown if-then statement to do the same. I think we need to incorporate chapters that motivates students into logical thinking to make better programmers.
Another essential part CS education around here lacks is in relevant examples and chances for internship. If you're studying something, I believe you would understand it much better if you see and experience it. Curriculum should include a real world project that you would use in a daily basis. Maybe break down and analyse a successful application and its component. -
In the time between my 1st and 2nd semesters I had this course to help develop our soft skills. In one of the classes the teacher asks what we wanted to do when we finish our courses and when I said I wanted to make games someone snickered behind me 😒 maybe I was a bit too enthusiastic (I'm super pumped about it, I just wanna be out there and make games and make people happy. It may sound childish but it's what I want to do. After all, I'm still 14 😜 (jk, people look at me and think I'm younger than I really am. I've been even "put" in 5th-8th (12-15) grade once, when I was in xmas vacations from uni, early this year)) but no need to be rude 😒
-
Deep learning. Working on an image classification problem for a big company. The "boss" ask me to teach an AI to classify images into a few classes.
"Mmm, ok...I just need to create the dataset and then build the AI...so.."
Where is the problem??
The problem is that the classes are so perfectly similar that no one knows how to help me create the dataset and I have to do it alone.
That's how you spend your weeks in a loop where you look at thousands of images over and over just to have something decent start your work.
After that I felt like...
"I'm the hero they deserves, but not the one they need right now" - Cit2 -
That time you would have used to test that code in postman, bravely muster the werewithal to write automated tests instead. It's a onetime investment that keeps malfunction in check until code is altered
I acknowledge the fact that it's not always possible. You may have gotten thrown in headfirst into unfamiliar territory ie tech stack, or inherit a monolith where no tests were pioneered. Or you may be strongly constrained for time. But in events that you can, it's worthwhile
Whether automated or manual, Testing your work the least professional thing to do before handover. Might as well swallow the bitter pill of avoiding the gui shortcut, and write those certifications once and get it over with
My preference is to write a boilerplate that gets generated each time I create a new module/resource management classes. Another strategy is to write them immediately after completing implementation of each endpoint/user story/feature, even if they're not run immediately. That way, they don't pile up in the end
Or you could try the tdd that everyone else cherishes. Whatever works for you, the end justifies the means4 -
Ugh. So for one of my classes (Projects In Computer Science) we have to break up into groups; Around 4-6 people per group and build some software for different local companies in the city that I live in.
Well.... the company that my group chose is so damn frustrating. Essentially we are making a glorified Applicant Form system for their website (there's more to it than just that). So you would think that the company knew what sort of fields would be needed for these forms.... Well no, we are over a month into this project and still have barely began coding shit because they are so fucking slow to respond to our emails, don't pick up our calls, or put off doing absolutely anything related to our project! Our professor asked that we would have a written copy of the project requirements made and signed off by the client within the first 2 weeks of classes starting. Took them over a month to get around to that, and still even after signing off on the requirements said that they were missing key forms that we needed to account for... Its your damn fault for not telling us that. We completely wasted our time planning out the database and structuring the front-end/back-end to work for the forms they had given us, and now there's yet another one with inconsistent fields, meaning we need to rethink out most of our system to account for this data. We only have 3 months total, 1 which is already gone and practically wasted, and even still we don't have any sort of confirmation on what form fields we have to account for.
Fucking hell just spend a little bit of time for both our sake, and your own to get us the finalized forms fields and requirements for this project. Honestly at the rate things are going we probably wont be able to finish, which sucks ass since this project is perfect resume material.
Seriously this company desperately needs us to make them this program since their current system is absolute shit. They are literally getting a system that would cost upwards of $20,000 for free, yet they don't seem to care much that we probably wont be able to finish due to their faults. If we didn't have a time cap on this project I wouldn't really care, but the fact that we only have 3 months, plus school work in other classes, exams and a personal life, its making this project a lot more stressful than it needs to be.
Its not like we have a project manager either, so all the emailing and communication is being done by myself. Honest to god, all they have/had to do was sit down for 1 hour of time to decide what they all needed and we would probably have been able to finish this project.5 -
Okay so update/JS pt2
This is just me throwing my thoughts down and some questions
I've been practicing arrays/objects and loops more and I'm getting more understanding it helps that you can do them both at the same time. But like I need more looping techniques (if that makes sense) like instead of always using for(let i = 0; i <= x.length; i++) and I havent completely learned how or when I use for(x in y)
Questions.
• what's the difference between class objects and objects that look like a python dictionary
• when should I use classes over the other kind of classes
• any good resources and projects I can practice with loops cause I'm kind of running dry on ideas
and I dont wanna google cause I barely already have no social interaction2 -
Horror story and rant time I guess...
I haven't seen the main developer of this MVC project that I've been working on but I can totally assure that his seniority isn't in frontend development 😠 and I doubt the backend too... Fucking DataTables converted to IDictionaries<string,object>
Guess who need to build on top of the pile of shit!
Anyway, I wasn't really careful about what kind of template I was given to work on a new SPA page, so I'm doing the job given the time, but it's fucking gory:
- matrioska style layers (n.3) without documentation
- partials everywhere
- too much inline styling
- too many <style> sections (n per layer or partial)
- too many <script> sections (n per layer or partial)
- poor CSS styling or no styling at all! (classes without any style nor js association)😠
He's just been lucky that the browser is capable of handling his shit
Now that at the end of this year I'll leave this project (solo fullstack) and need to provide documentation for the next poor souls I was thinking to leave behind something at par of my skills and capabilities but analysing the current mess ticks my brain in a bad way, fuck you Marco!
Fuck you
and your seniority
and the Italian way of perceiving seniority that gives you a higher living in the wrong side of the field 🤬🤬🤬2 -
A follow-up to a previous rant: https://devrant.com/rants/2296700/...
... and how the senior dev recently took it up a notch.
To recap: Back then the senior dev in our two-man project prepared tasks for me so thoroughly they became typing monkey jobs. He described what to do and how to do it in minute detail in the JIRA tasks.
I talked to him back then how this is too detailed. I also talked to our boss, who agreed to nudge mr. senior in the right direction and to make it clear he expects teamwork.
Fast forward to a couple of days ago. An existing feature will get extended greatly, needing some rework in our backend project. Senior and me had a phone call about what to do and some unclear details in the feature spec. I was already frustrated with the call because he kept saying "No, don't ask that! That actually makes sense, let's just do it as the spec says" and "Don't refactor! We didn't request a budget for that from our customer". Like wtf, really? You don't consider refactoring part of our job? You don't think actually understanding the task improves the implementation? Dude...
We agreed this is a task for one person and I'd do it. It took me the rest of the day to wrap my head around the task and the corresponding existing code. It had some warts, like weird inheritance hierarchies and control flow jumping up and down said hierarchy, but nothing too bad. I made a mental note to still refactor this, just as much as necessary to make my task easier. However... the following day, I got an email from mr. senior. "I refactored the code after all, in preparation for your task". My eyebrows raised.
Firstly, he had made the inheritance hierarchy *worse*. Classic mistake: Misusing inheritance for code reuse. More control flow jumping up and down like rabid bunnies. Pressed on that matter, he replied "it's actually not that bad". Yeah, good work! Your refactoring didn't make things worse! That's an achievement worthy of being engraved on your tombstone. And didn't he say "no refactoring"? Apparently rules are unfortunate things that happen to other people.
But secondly, he prepared classes and methods for me to implement. No kidding. Half-implemented methods with "// TODO: Feature x code goes here" and shit. Like, am I a toddler to you? Do you really think "if you don't let me do things myself I feel terribly frustrated and undervalued" is best answered with giving me LESS things to do myself? And what happened to our boss' instruction to split the task so each of us can work on his parts?
So, this was a couple of days ago. Since then, I've been sitting in my chair doing next to nothing. My brain has just... shut down. I'm reading the spec, thinking "that would require a new REST endpoint", and then nothing happens. I'm looking at the integration test stubs ("// TODO: REST call goes here") and my mind just stays blank, like a fresh unpainted canvas. I've lost all my drive.
I don't even know what to do. Should I assign the task back to him and tell him to go fuck himself? Should I write my boss I'm suddenly retarded? Could I call in sick for a year or so? I dunno... I can barely think straight. What should I do and how?5 -
I've been doing a bootcamp in my country, learned the basics with c#, did some small projects but nothing too impressive. I started also web I'm that bootcamp, learned the basics of html css and js.. then all this corona madness started and yes, we still have classes online but less times a week and it's way harder. I'm feeling a little lost with what to learn, how and scared I might never be able to get a job. Ps. First rant and it does feel better even tho no one will read the whole thing :p2
-
Sydochen has posted a rant where he is nt really sure why people hate Java, and I decided to publicly post my explanation of this phenomenon, please, from my point of view.
So there is this quite large domain, on which one or two academical studies are built, such as business informatics and applied system engineering which I find extremely interesting and fun, that is called, ironically, SAD. And then there are videos on youtube, by programmers who just can't settle the fuck down. Those videos I am talking about are rants about OOP in general, which, as we all know, is a huge part of studies in the aforementioned domain. What these people are even talking about?
Absolutely obvious, there is no sense in making a software in a linear pattern. Since Bikelsoft has conveniently patched consumers up with GUI based software, the core concept of which is EDP (event driven programming or alternatively, at least OS events queue-ing), the completely functional, linear approach in such environment does not make much sense in terms of the maintainability of the software. Uhm, raise your hand if you ever tried to linearly build a complex GUI system in a single function call on GTK, which does allow you to disregard any responsibility separation pattern of SAD, such as long loved MVC...
Additionally, OOP is mandatory in business because it does allow us to mount abstraction levels and encapsulate actual dataflow behind them, which, of course, lowers the costs of the development.
What happy programmers are talking about usually is the complexity of the task of doing the OOP right in the sense of an overflow of straight composition classes (that do nothing but forward data from lower to upper abstraction levels and vice versa) and the situation of responsibility chain break (this is when a class from lower level directly!! notifies a class of a higher level about something ignoring the fact that there is a chain of other classes between them). And that's it. These guys also do vouch for functional programming, and it's a completely different argument, and there is no reason not to do it in algorithmical, implementational part of the project, of course, but yeah...
So where does Java kick in you think?
Well, guess what language popularized programming in general and OOP in particular. Java is doing a lot of things in a modern way. Of course, if it's 1995 outside *lenny face*. Yeah, fuck AOT, fuck memory management responsibility, all to the maximum towards solving the real applicative tasks.
Have you ever tried to learn to apply Text Watchers in Android with Java? Then you know about inline overloading and inline abstract class implementation. This is not right. This reduces readability and reusability.
Have you ever used Volley on Android? Newbies to Android programming surely should have. Quite verbose boilerplate in google docs, huh?
Have you seen intents? The Android API is, little said, messy with all the support libs and Context class ancestors. Remember how many times the language has helped you to properly orient in all of this hierarchy, when overloading method declaration requires you to use 2 lines instead of 1. Too verbose, too hesitant, distracting - that's what the lang and the api is. Fucking toString() is hilarious. Reference comparison is unintuitive. Obviously poor practices are not banned. Ancient tools. Import hell. Slow evolution.
C# has ripped Java off like an utter cunt, yet it's a piece of cake to maintain a solid patternization and structure, and keep your code clean and readable. Yet, Cs6 already was okay featuring optionally nullable fields and safe optional dereferencing, while we get finally get lambda expressions in J8, in 20-fucking-14.
Java did good back then, but when we joke about dumb indian developers, they are coding it in Java. So yeah.
To sum up, it's easy to make code unreadable with Java, and Java is a tool with which developers usually disregard the patterns of SAD. -
#Suphle Rant 9: a tsunami on authenticators
I was approaching the finish line, slowly but surely. I had a rare ecstatic day after finding a long forgotten netlify app where I'd linked docs deployment to the repository. I didn't realise it was weighing down on me, the thought of how to do that. I just corrected some deprecated settings and saw the 93% finished work online. Everything suddenly made me happier that day
With half an appendix chapter to go, I decided to review an important class I stole from my old company for clues when I need to illustrate something involved using a semblance of a real world example (in the appendix, not abstract foo-bar passable for the docs)
It turns out, I hadn't implemented a functionality for restricting access to resources to only verified accounts. It just hasn't been required in the scheme of things. No matter, should be a piece of cake. I create a new middleware and it's done before I get to 50 lines. Then I try to update the documentation but to my surprise, user verification status turns out to be a subset of authentication locking. Instead of duplicating bindings for both authentication and verification, dev might as well use one middleware that checks for both and throws exceptions where appropriate.
BUT!
These aspects of the framework aren't middleware, at all. Call it poor design but I didn't envisage a situation where the indicators (authentication, path based authorisation and a 3rd one I don't recall), would perform behaviour deviating from the default. They were directly connected to their handlers and executed after within the final middleware. So there's no way to replace that default authentication scheme with one that additionally checks for verification status.
Whew
You aren't going to believe this. It may seem like I'm not serious and will never finish. I shut my system down for that day, even unsure how those indicators now have to refactored to work as middleware, their binding and detachment, considering route collections are composed down a trie
I'm mysteriously stronger the following day, draw up designs, draft a bunch of notes, roll my sleeves, and the tsunami began. Was surprisingly able to get most of previous middleware tests passing again before bed, with the exception of reshuffled classes. So I guess we can be optimistic that those other indicators won't cause more suffering or take us additional days off course2 -
My biggest regret is not becoming a programmer sooner in life. Ever since I saw the computer wore tennis shoes when I was 5 I wanted to be a computer programmer. But my brother discouraged me saying it was so difficult but no one did it. So I thought I guess if no one is doing it.... Then in both Junior High and High School they have computer classes but you had to be friends with the teacher to even know it existed in the first place. I was not on good terms with him.
Thanks to a very encouraging Teacher at Art School I finally I was able to pursue my lifelong interest in computers. -
Not using design pattern on a school project because he was too busy understanding what the fuck was Smalltalk since no one understood it in classes.
yes it was me. I don't blame myself, I really took too much time understanding that (and I was the only one to do that, the other just asked me. ALL OF THEM). But I should, I guess. -
Of all the browsers required to complete mandatory classes online for the USMC you would think they would support a modern browser and no IE6 or flash heavy courses only...2
-
People that we have to work with man! This one guy I worked with once wrote a base script that had 100ish variables and nothing else that got inherited by another script containing again nothing but more variables that got inherited by another script which you guessed it right has nothing but more variables and this went on for about 6 more scripts. A total of around 600 variables and no functions or anything. The final script had all the classes and functions with yup that's right more variables. That person is the tech lead of a game dev studio now.
-
Trying very hard not to slam down my shitty monitors in protest.
Was just informed by my manager that all coursework has to be directly related to my present role. Since I am not a developer than my classes will no longer be covered.
Same company that spent 15 grand just for the food at last year's company xmas party.
Even though I have already used my skills to revamp the company intranet, created macros that halved my workload and now able to understand the developer docs for 3rd party software we implement.2 -
Theory should be minimal courses, just something to think about and not something that expands through the entire curriculum as if anyone was to use it. Theory and fundamentals are enough, after that have career paths over what students want to focus on depending on a class that takes them through each different field: web development, db development, micro controller programming, os programming networking programming etc etc etc.
Basically, not :hey! here are some shitty basic programming classes, ok now let us move into calculus 1, 2, 3 etc etc. Most people come out of schools with no knowledge of what happens in the real world.3 -
nothing new, just another rant about php...
php, PHP, Php, whatever is written, wherever is piled, I hate this thing, in every stack.
stuff that works only according how php itself is compiled, globals superglobals and turbo-globals everywhere, == is not transitive, comparisons are non-deterministic, ?: is freaking left associative, utility functions that returns sometimes -1, sometimes null, sometimes are void, each with different style of usage and naming, lowercase/under_score/camelCase/PascalCase, numbers are 32bit on 32bit cpus and 64bit on 64bit cpus, a ton of silent failing stuff that doesn't warn you, references are actually aliases, nothing has a determined type except references, abuse of mega-global static vars and funcs, you can cast to int in a language where int doesn't even exists, 25236 ways to import/require/include for every different subcase, @ operator, :: parsed to T_PAAMAYIM_NEKUDOTAYIM for no reason in stack traces, you don't know who can throw stuff, fatal errors are sometimes catchable according to nobody knows, closed-over vars are passed as functions unless you use &, functions calls that don't match args signature don't fail, classes are not object and you can refer them only by string name, builtin underlying types cannot be wrapped, subclasses can't override parents' private methods, no overload for equality or ordering, -1 is a valid index for array and doesn't fail, funcs are not data nor objects when clojures instead are objects, there's no way to distinguish between a random string and a function 'reference', php.ini, documentation with comments and flame wars on the side, becomes case sensitive/insensitive according to the filesystem when line break instead is determined according to php.ini, it's freaking sloooooow...
enough. i'm tired of this crap.
it's almost weekend! 🍻1 -
I really need help. We are doing some interface files, something like C header files and configurations.
Management is aware of the "unittesting" buzz words and expects me to write unit tests on "header" and configuration files....
I tried to explain that there are no units to be tested, asked which units should be tested but in the end....
What does it actually mean to test definitions of structures, classes and methods?!3 -
I'm supposed to QA/fix/debug someone else's work and this is just a sneak peek of what/who I'm dealing with. No appropriate use of classes, using ~, +, > everywhere that `!important` is used constantly. `col` directly after `col`, not to mention other disastrous html structure.1
-
Programming at a job to me is no longer creating something fun and valuable; it's more like figuring out why shit doesn't work, con-stant-ly.
It' s like coming in to your desk every morning, dreading the day because there's yesterday's shit to fix. "Hmm, what shall today be like? Oh yes, troubleshooting why my database model doesn't work, redesign it completely and break my mind over db details. The next day? Having to redesign my classes to implement new patterns because apparently the current design isn't good enough." Even if you work on new deliverables, that's just new problems in disguise anyway.
Pleasant? Not really.
lol.3 -
It was one of those "I need more coffee days"..
I was writing some checking function called "check" (now to clarify my company is not coding oop style so no classes etc.) And as I went on I included another file for some functions and what not. Pretty normal stuff right? Right. In that file I required there also was a function called "check".
Guess who tried to use the "check" function of the imported file in the "check" function?! Right! A Fucking genius aka. me!!
So I tried to figure out why the page wouldn't load and why the server was starting to lag more and more.
After killing all the apache tasks three times i finally realized what I did.
Took me 10 minutes to figure out that i was causing endless recursion. That day wasn't my best and clearly not filled with enough coffee.
PS: yes I know oop would have probably eliminated the possibility for this but I'm just adapting to the coding style of my company as I can't really change things since I'm just an intern.1 -
In javascript, is there a difference between separate function calls that mimic a "chain pattern" or state changes using if/else if/else and using the chain or state pattern directly? The internet gave me no real/helpful response to that.
Suppose that:
if(isThingA(thing)) {
makeThingB();
else if(isThingB(thing)){
makeThingC();
else {
makeThingA();
}
That code is always executed e.g. after a user mouse click. "thing" gets defined in some other code.
It can be seen as a state machine that goes back to its starting point.
Is a pattern with objects/classes/prototypes even needed/preferred instead?
It's partly a problem I'm facing in my code but it's also interesting to know ideas/thoughts on this.3 -
The fact that i no longer have to bother knowing or googling about generic java classes, lambda expression, regex, SQL syntax etc, and just ask ChatGPT to show me a code example of it - blows my fucking brain off2
-
I am busting moves rn. I'm in the bathroom but the surge of energy is making me pump my arms like the time Leo Messi scored a clutch winner against Valencia in 2019
Remember the plugin I referred to in this rant? https://devrant.com/rants/6019851/...
Yup! I managed to subdue that fossilised codebase. Effected all changes required. To have a rough idea about how ancient the code is, its classes use constructors predating PHP 5. It throws away the ~15 years of autoloading, view templates, routing engines, DI, ORMs (NO PDO!!), lower-cased multi word variable names, etc. I'm looking at SCRIPTS with raw functions north of 4-600 lines. The client insisted I zip the folder across
BUT! The good news is, we surmounted it. In fairness to them, it's commendable for one man to have pulled this off. The codebase is massive and appears to have been predominantly written by some Gideon dude. Who knows where he is now
There is one pattern I appreciate –something I wish Transphporm does–some segments of the rendered view are composed using class methods ie instead of having the HTML file mixed with templating syntax, you have class methods that receive the raw data. Then you can extend this class as you wish, overriding just the method that composes the segment you intend to modify. That was elegant to work with. But it can become dreadful if the class expects a specific structure of data (an array with weird keys) that you have no access to sourcing
So, I finally get to enjoy one good evening in 2/3 weeks. I called 2 friends to express an emotion that's not gloomy, but they were unavailable. Will probably get some sleep4 -
I'm building a script parser to make mods for a game I like. The first step is to write an importer.
The documentation is nonexistent and I'm delving into byte manipulation, which I'm not familiar with - at all. I'm porting existing code from Java to C#, and everything is similar but different enough that I can't always just to a 1:1 transfer.
I get everything working, cleaned up and split into classes so I can write the exporter.
I do an import and the file won't parse. I try all previously know working files and still no good. I clean, rebuild, clean rebuild, run, debug, restart my computer, clear my cache, clean, rebuild. No good.
IT WAS WORKING 5 MINUTES AGO
Proceed to revert to every version from the last hour. No dice.
I was in the wrong folder the whole time.
Navigate to the proper folder, open the filename I know to be good and bingo, works like a charm.
The same project caused me headaches because I had a "== -1", when it should have been "== 1". Between my inexperience with byte manipulation and my untreated astigmatism, I was nearly sent to the shadow realm fixing that.3 -
I once did this project with Apache Tika, which also has a batch module to add concurrency (Tika by itself is not thread-safe).
However, there is maybe 2 pages of documentation which don't explain any of the classes etc, and no javadoc, so I had to figure everything out through trial and error. At the end it still threw an error but magically worked. Turns out it was not fast enough anyway. -
Way too long story short: Needed to figure out how to use jQuery to update a table that had no classes or IDs to help you tell what's inside it. Worked out a looping structure to read the contents of the cell with the dependent data in each row, and then update the cell that needed changing depending on the value of the first cell.
Minified the solution and dropped it into the console. Worked exactly right on the first try. -
Second year computer science starts today, this semester is going to be awesome, there's almost no theories classes and there are a load of projects to be made.
Finally some actual real work 💪4 -
I don't know why I can't understand how to use thymeleaf. It's concept makes sense, split an html page into two so you have a header html page made up of code you don't want to change, and an index html page of content you do want to edit. But no matter what it won't fucking connect the classes.
https://stackoverflow.com/questions...
If anyone has experience with this you can take a look at my post here on it, maybe give some input. For now though I'm going to just run a single html file and make comments in my index page. :/