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 - "interfaces"
-
A story about how a busy programmer became responsible for training interns.
So I was put in charge of a team of interns and had to teach them to work with Linux, coding (Bash, Python and JS) and networking overall.
None of the interns had any technical experience, skills, knowledge or talent.
Furthermore the task came to me as a surprise and I didn't have any training plan nor the time.
Case 0:
Intern is asked to connect to a VM, see which interfaces there are and bring up the one that's down (eth1). He shuts eth0 down and is immediately disconnected from the machine, being unable to connect remotely.
Case 1:
Intern researches Bash scripting via a weird android app and after a hour or so creates and runs this function: test(){test|test&}
He fork-bombed the VM all other interns used.
Case 2:
All interns used the same VM despite the fact that I created one for each.
They saved the same ssh address in Putty while giving it different names.
Case 3:
After explicitly explaining and demonstrating to the interns how to connect to their own VMs they all connect to the same machine and attempt to create file systems, map them and etc. One intern keeps running "shutdown -r" in order to test the delay flag, which he never even included.
Case 4:
All of the interns still somehow connect to the same VM despite me manually configuring their Putty "favorites". Apparently they copy-paste a dns that one of them sent to the entire team via mail. He also learned about the wall command and keeps scaring his team members with fake warnings. A female intern actually asked me "how does the screen knows what I look like?!". This after she got a wall message telling her to eat less because she gained weight.
Case 5:
The most motivated intern ran "rm -rf" from his /etc directory.
P.S. All other interns got disconnected because they still keep using his VM.
Case 6:
While giving them a presentation about cryptography and explaining how SSH (that they've been using for the past two weeks) works an intern asked "So is this like Gmail?".
I gave him the benefit of the doubt and asked if he meant the authorization process. He replied with a stupid smile "No! I mean that it can send things!".
FML. I have a huge project to finish and have to babysit these art majors who decided to earn "ezy cash many" in hightech.
Adventures will be continued.26 -
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 -
Long rant ahead, but it's worth it.
I used to work with a professor (let's call him Dr. X) and developed a backend + acted as sysadmin for our team's research project. Two semesters ago, they wanted to revamp the front end + do some data visualization, so a girl (let's call her W) joined the team and did all that. We wanted to merge the two sites and host on azure, but due to issues and impeding conferences that require our data to be online, we kept postponing. I graduate this semester and haven't worked with the team for a while, so they have a new guy in charge of the azure server (let's call him H), and yesterday my professor sends me (let's call me M), H and W an email telling us to coordinate to have the merge up on azure in 2-3 days, max. The following convo was what I had with H:
M: Hi, if you just give me access to azure I'll be able to set everything up myself, also I'll need a db set up, and just send me the connection string.
H: Hi, we won't have dbs because that is extra costs involved since we don't have dynamic content. Also I can't give you access, instead push everything on git and set up the site on a test azure server and I will take it from there.
M: There is proprietary data on the site...
H: Oh really? I don't know what's on it.
<and yet he knows we have no dynamic data>
M: Fine, I'll load the data some other way, but I have access to all the data anyway, just talk to Dr. X and you'll see you can give me access. Delete my access after if you want.
H: No, just do what I said: git then upload to test azure account.
Fine, he's a complete tool, but I like Dr. X, so I message W and tell her we have to merge, she tells me that it's not that easy to set it up on github as she's using wordpress. She sends me instructions on what to do, and, lo and behold, there's a db in her solution. Ok, I go back to talking to H:
M: W is using a db. Talk to her so we can figure out whether we need a database or not.
H: We can't use a database because we want to decrease costs.
M: Yes I know that, so talk to her because that probably means she has to re-do some stuff, which might take some time. Also there might be dynamic content in what she's doing.
H: This is your project, you talk to her.
<I'm starting to get mad right now>
M: I don't know what they had her do apart from how it interfaces with what I've done.
H: We still can't have databases.
M: Listen, I don't do wordpress, and I'm not gonna mess with it, you talk to her
H: I won't do any development
<So you won't do any dev, but you won't give me access to do it either?>
M: Man, the bottleneck isn't the merging right now, it's the fact that W needs a db
H: I know, so talk to her
M: THE RESTRICTION TO NOT HAVE DATABASES IS NOT MINE, IT'S YOURS, YOU TALK TO HER. I can't evaluate whether it's a reasonable enough reason or not since I don't know the requirements or what they're willing to spend.
H: It's your project.
M: Then give me fucking access to azure and I'll handle it, you know you'll have to set up wordpress again regardless whether we set it up the first time.
H: Man just do your job.
At this point I lost it. WHAT A FUCKING TOOL. He doesn't wanna do dev work, wants me to go through the trouble of setting up on a test subscription first, and doesn't want to give me access to azure. What's more, he did shit all and doesn't want to anything else. Well fuck you. I googled him, to see if he's anyone important, if he's done anything notable which is why he's being so God damn condescending. MY INTERNSHIP ALONE ECLIPSES HIS ENTIRE CV. Then what the fuck?
There's also this that happened sometime during our talk:
M: You'll have to take to Dr. Y so he'll change the DNS to point to the azure subscription instead of my server.
H: Yea don't worry, too early for that.
M: DNS propagation takes 24 hours...
H: Yea don't worry.
DNS propagation allows the entire web to know that your website is hosted on a different server so it can change where it's pointing to. We have to do this in 2-3 days. Why do work in parallel? Nah let's wait.
I went over his head and talked to the professor directly, and despite wanting to tell him that he was both drunk and high the day he hired that guy, I kept it professional. He hasn't replied yet, but this fucker's pompous attitude is just too much for me alone, so I had to share.
PS: I named his contact as Annoying Prick 4 minutes into our chat. Gonna rename him cz that seems tooooooo soft a name right now.undefined tools i have access and you don't haha retards why the fuck would you hire that guy? i don't do development46 -
Our designer (and frontender) just saved my ass big time. Had to do a tiny project involving design and frontend so I gave it a try and it looked like crap, deadline in a week. The designer made the most beautiful thing in like two days.
Kudos to all designers for doing what they're good at and ensuring that we, backenders (and cyber security people for that matter), can do our thing without having to worry about knowing how to design stuff and create interfaces because we might hate doing that and sometimes just really suck at it.
Kudos designer guys/girls!8 -
A while back, I had a lot of telemarketers were calling me daily, and I mean A LOT of them.
I got so frustrated with he calls that I decided I had to figure out a better way to handle those calls.
At the time, I was working with a PBX software called Asterisk, which is used to handle hardware interfaces and network applications for phone calls.
I needed a suitable side project and there was a version of Asterisk designed for Raspberry Pi, so I made a fun little answering service for myself.
Whenever a telemarketer called, I asked them to call back later, but to "my personal number", and gave them the number to my phone robot. (which had a pre-paid SIM card in a GSM dongle mounted)
When it received a call, it would play a pre-recorded phrase, wait for 1000 ms of silence and then play the next phrase.
After all 16 phrases had been played, it would start from phrase 7 again and repeat until the caller gave up.
I had this set up running for a while, and then added another robot for english speaking callers.
The calls stopped after a few months.
MISSION ACCOMPLISHED!13 -
Dear Microsoft,
Thanks for not completely fucking up Github. At least you didn't integrate Office365, allow only Azure deployments, or force downloading repos through OneDrive or something.
But like most developers, I don't deal well with changes to familiar interfaces.
So please.... STOP FUCKING TWEAKING THE BUTTON PLACEMENTS AND TEXTS ALL OVER THE WEBSITE.
(or at least send me a bottle of cognac and a box of chocolates before every UI experiment, so I can deal with it emotionally. I'm a very sensitive boy, you know).21 -
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 -
Fuck frontend. Writing a new service thingy and while the backend was done in about one fucking hour, I've been working on the frontend for hours now because frontend fucking hates me and that feeling is fucking mutual.
Grrrrrrr. (and respect for the ones who can properly develop nice looking interfaces)13 -
curl cheat.sh — get an instant answer to any question on (almost) any programming language from the command line
tldr
do curl cht.sh/go/execute+external+program to see how to execute external program in go
And this question: why I actually should I start the browser, and the browser has to downloads tons of JS, CSS and HTML, render them thereafter, only to show me some small output,
some small text, number or even some plot. Why can't I do a trivial query from the command line
and instantly get what I want?
I decided to create some service that will work as I think such a service should work.
And that is how wttr.in was created.
Nowadays you probably know, how to check the weather from the command line, but if not:
curl wttr.in
or
curl wttr.in/Paris
(curl wetter in Paris if you want to know the weather in Paris)
After that several other services were created (the point was to check how good the console
can solve the task, so I tried to create services providing information
of various nature: text, numbers, plots, pseudo graphic etc.):
curl rate.sx/btc # to check exchange rate of any (crypto)currency
curl qrenco.de/google.com # to QRenco.de any text
And now last but not least, the gem in this collection: cheat.sh.
The original idea behind the service was just to deliver a various UNIX/Linux command line cheat sheets via curl. There are several beautiful community driven cheat sheet repositories such as tldr, but the problem is that to use them you have to install them first, and it is quite often that you have no time for it, you just want to quickly check some cheat sheet.
With cheat.sh you don't need to install anything, just do:
curl cheat.sh/tar (or whatever)
you will get a cheat sheet for this command (if such cheat sheet exists inf one of the most popular community-driven cheat sheet repositories; but it surely does).
But then I thought: why actually show only existing cheat sheets? Why not generate cheat sheets or better to say on the fly? And that is how the next major update of cheat.sh was created.
Now you can simply do:
curl cht.sh/python/copy+files
curl cht.sh/go/execute+external+program
curl cht.sh/js/async+file+read
or even
curl cht.sh/python/копировать+файл
curl cht.sh/ruby/Datei+löschen
curl cht.sh/lua/复制文件
and get your question answered
(cht.sh is an alias for cheat.sh).
And it does not matter what language have you used to ask the question. To be short, all pairs (human language => programming language) are supported.
One very important major advantage of console oriented interfaces is that they are easily
programmable and can be easily integrated with various systems.
For example, Vim and Emacs plugins were created by means of that you can
query the service directly from the editor so that you can just write your
questions in the buffer and convert them in code with a keystroke.
The service is of course far from the perfection,
there are plenty of things to be fixed and to be implemented,
but now you can see its contours and see the contours of this approach,
console oriented services.
The service (as well as the other mentioned above services) is opensource, its code is available here:
https://github.com/chubin/cheat.sh
What do you think about this service?
What do you think about this approach?
Have you already heard about these services before?
Have you used them?
If yes, what do you like about them and what are you missing?26 -
At my old company one of my colleagues introduced async / await into our csharp code. He created interfaces and showed us a great structuring of his code. Sadly a few weeks later he left the company, because of personal reasons and a bug appeared in his written service. Our senior developer took the issue and complained for like 1 week. That you can't find anything, that interfaces are useless, that async / await is slow and sucks and that we should stop trying to bring new structures into the code base and do things the old way. In the end he deleted all the great things that my colleague introduced and wrote bad and smelly code.9
-
Ladies and gentlemen, prepare yourselves for a rant with a capital R, this is gonna be a long one.
Our story begins well over a year ago while I was still in university and things such as "professionalism" and "doing your job" are suggestions and not something you do to not get fired. We had multiple courses with large group projects that semester and the amount of reliable people I knew that weren't behind a year and in different courses was getting dangerously low. There were three of us who are friends (the other two henceforth known as Ms Reliable and the Enabler) and these projects were for five people minimum. The Enabler knew a couple of people who we could include, so we trusted her and we let them onto the multiple projects we had.
Oh boy, what a mistake that was. They were friends, a guy and a girl. The girl was a good dev, not someone I'd want to interact with out of work but she was fine, and a literal angel compared to the guy. Holy shit this guy. This guy, henceforth referred to as Mr DDTW, is a motherfucking embarrassment to devs everywhere. Lazy. Arrogant. Standards so low they're six feet under. Just to show you the sheer depth of this man's lack of fucks given, he would later reveal that he picked his thesis topic "because it's easy and I don't want to work too hard". I haven't even gotten into the meat of the rant yet and this dude is already raising my blood pressure.
I'll be focusing on one project in particular, a flying vehicle simulator, as this was the one that I was the most involved in and also the one where shit hit the fan hardest. It was a relatively simple-in-concept development project, but the workload was far too much for one person, meaning that we had to apply some rudimentary project management and coordination skills that we had learned to keep the project on track. I quickly became the de-facto PM as I had the best grasp on the project and was doing a lot of the heavy lifting.
The first incident happened while developing a navigation feature. Another teammate had done the basics, all he had to do was use the already-defined interfaces to check where the best place to land would be, taking into account if we had enough power to do so. Mr DDTW's code:
-Wasn't actually an algorithm, just 90 lines of if statements sandwiched between the other teammate's code.
-The if statements were so long that I had to horizontal scroll to see the end, approx 200 characters long per line.
-Could've probably been 20 normal-length lines MAX if he knew what a fucking for loop was.
-Checked about a third of the tiles that it should have because, once again, it's a series of concatenated if statements instead of an actual goddamn algorithm.
-IT DIDN'T FUCKING WORK!
My response was along the lines of "what the fuck is this?". This dipshit is in his final year and I've seen people write better code in their second semester. The rest of the team, his friend included, agreed that this was bad code and that it should be redone properly. The plan was for Mr DDTW to move his code into a new function and then fix it in another branch. Then we could merge it back when it was done. Well, he kept on saying it was done but:
-It still wasn't an algorithm.
-It was still 90 lines.
-They were still 200 characters wide.
-It still only checked a third of the tiles.
-IT STILL DIDN'T FUCKING WORK!
He also had one more task, an infinite loop detection system. He watched while Ms Reliable did the fucking work.
We hit our first of two deadlines successfully. We still didn't have a decent landing function but everything else was nice and polished, and we got graded incredibly well. The other projects had been going alright although the same issue of him not doing shit applied. Ms Reliable and I, seeing the shitstorm that would come if this dude didn't get his act together, lodged a complaint with the professor as a precautionary measure. Little did I know how much that advanced warning would save my ass later on.
Second sprint begins and I'm voted in as the actual PM this time. We have four main tasks, so we assign one person to each and me as a generalist who would take care of the minor tasks as well as help out whoever needed it. This ended up being a lot of reworking and re-abstracting, a lot of helping and, for reasons that nobody ever could have predicted, one of the main tasks.
These main tasks were new features that would need to be integrated, most of which had at least some mutual dependencies. Part of this project involved running our code, which would connect to the professor's test server and solve a server-side navigation problem. The more of these we solved, the better the grade, so understandably we needed an MVP to see if our shit worked on the basic problems and then fix whatever was causing the more advanced ones to fail. We decided to set an internal deadline for this MVP. Guess who didn't reach it?
Hitting the character limit, expect part 2 SOON7 -
@Root has a code review.
CR comment: “Why would you do it this way? It’s awful. Clean it up!”
Totally fair. I had copied the legendary dev’s code, and it was ick. Cleaning it was easy and enjoyable. I cleaned the source, too.
CR comment: “Why would you touch this? It’s outside the scope of the ticket. You could get it working without changing all this.”
Revert…
CR comment: “The interfaces don’t match. Now it’s confusing, and that makes it harder to maintain.”
🤦🏻♀️16 -
It’s time.
FUCK YOU FRONTEND DEVELOPERS!!!
What the FUCK is wrong with you!?
Could you please STOP creating ”innovate” user interfaces….
Just FUCKING STOP!!!!!
Web after web after web and I can see 100 different fucking date pickers. I mean. WHAT-THE-FUCK!!!
And the menus. GIVE US A FUCKING CLEAR UNDERSTANDING WHERE THE FUCK I AM.
And clicking back SHOULD FUCKING WORK YOU RETARDS!!!
YOU IMBECILS!
And remember the scrolling position. WHAT THE FUCK!? I did that shit
15 YEARS AGO
YOU FUCKERS!!!
It is just… a sad, sad place. I wish the old web was back. Super quick. Simple. Clear.
I get it. It is better now but IT IS NO EXCUSE TO JUST SKIP THE FUNDAMENTALS!!! You bastards!!!
AND WHY THE FUCK THE LARGE IMAGES!? You should have solved this by now!!! Fucking MB!? Are you serious? Did your mother not love you enough?
Oh man that felt good…35 -
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 -
Alleged senior dev in a company I was consulting at 👴: "interfaces? I never use those. I don't believe in interfaces"4
-
I'm a backender. I fucking hate everything relating to designing, UI/UX designing and especially frontending.
I can't stand it when interfaces look bad/are off, have bugs and so on.
I just can't stand that stuff but the irony is real 😅5 -
So this shit happened today...
We were asked to implement a functionality on the device that allows it to go to standby mode to save battery power. Once the device enters that state, it can only be woken up by actual bus-network activity, and usually that means connecting a shit-ton of wiring harness and network emulation devices... Before implementing and releasing the device software that does this, we told that fucktard customer how difficult it would be for him to connect to the device without such a setup. He seemed to be fine with it and said rather arrogantly that we should implement the requirement as asked...
Well okay you cock-sucking motherfucker, you'll get exactly what you asked for... We implement the functionality and deliver the software...
Now this pile of shit comes back running his mouth on how the device tears down all its interfaces (to reduce power consumption) and he can't connect to the device anymore.... Well what else were you expecting you dickhead.
To make things worse for me apparently he runs to the manager describing his apparent problem. Both of them come to my desk.. With that fucking Bastard hiding his smugly mug behind the manager's back... He thought he was going to have the upper hand... Well guess what fucked piece of shit, I came prepared... I showed the manager how this was a part of the requirements by throwing that JIRA ID in their faces... The manager seems to understand but this relentless fuck wanted me to implement a "workaround" that would allow him to connect to the device easily... The manager almost had me implement that workaround, when I expose a huge security flaw in doing so. Guess what, now the entire team comes to my desk and start supporting my statement... To make it better they also tell how doing so will violate other requirements...
I've never felt so happy in my entire fucking career, when the entire team stood by me and watched that asshole drag his sorry ass back to his place5 -
It's a Sunday, playing around with code/servers/config stuffs and decided to give Arch another try! Downloaded Apricity OS (Yes, I still love beautiful interfaces I don't have to fully configure), realized I didn't have any spare discs so went looking for a USB flash drive.
Seriously. Those FUCKERS are always around when you don't need them.
But ohhhhh, the FUCKING SECOND YOU NEED THEM, THEY ARE NO-FUCKING-WHERE TO BE MOTHERFUCKING FOUND.
Well, there goes my FUCKING plans for today.14 -
it's funny, how doing something for ages but technically kinda the wrong way, makes you hate that thing with a fucking passion.
In my case I am talking about documentation.
At my study, it was required to write documentation for every project, which is actually quite logical. But, although I am find with some documentation/project and architecture design, they went to the fucking limit with this shit.
Just an example of what we had to write every time again (YES FOR EVERY MOTHERFUCKING PROJECT) and how many pages it would approximately cost (of custom content, yes we all had templates):
Phase 1 - Application design (before doing any programming at all):
- PvA (general plan for how to do the project, from who was participating to the way of reporting to your clients and so on - pages: 7-10.
- Functional design, well, the application design in an understandeable way. We were also required to design interfaces. (Yes, I am a backender, can only grasp the basics of GIMP and don't care about doing frontend) - pages: 20-30.
- Technical design (including DB scheme, class diagrams and so fucking on), it explains it mostly I think so - pages: 20-40.
Phase 2 - 'Writing' the application
- Well, writing the application of course.
- Test Plan (so yeah no actual fucking cases yet, just how you fucking plan to test it, what tools you need and so on. Needed? Yes. but not as redicilous as this) - pages: 7-10.
- Test cases: as many functions (read, every button click etc is a 'function') as you have - pages: one excel sheet, usually at least about 20 test cases.
Phase 3 - Application Implementation
- Implementation plan, describes what resources will be needed and so on (yes, I actually had to write down 'keyboard' a few times, like what the actual motherfucking fuck) - pages: 7-10.
- Acceptation test plan, (the plan and the actual tests so two files of which one is an excel/libreoffice calc file) - pages: 7-10.
- Implementation evalutation, well, an evaluation. Usually about 7-10 FUCKING pages long as well (!?!?!?!)
Phase 4 - Maintaining/managing of the application
- Management/maintainence document - well, every FUCKING rule. Usually 10-20 pages.
- SLA (Service Level Agreement) - 20-30 pages.
- Content Management Plan - explains itself, same as above so 20-30 pages (yes, what the fuck).
- Archiving Document, aka, how are you going to archive shit. - pages: 10-15.
I am still can't grasp why they were surprised that students lost all motivation after realizing they'd have to spend about 1-2 weeks BEFORE being allowed to write a single line of code!
Calculation (which takes the worst case scenario aka the most pages possible mostly) comes to about 230 pages. Keep in mind that some pages will be screenshots etc as well but a lot are full-text.
Yes, I understand that documentation is needed but in the way we had to do it, sorry but that's just not how you motivate students to work for their study!
Hell, students who wrote the entire project in one night which worked perfectly with even easter eggs and so on sometimes even got bad grades BECAUSE THEIR DOCUMENTATION WASN'T GOOD ENOUGH.
For comparison, at my last internship I had to write documentation for the REST API I was writing. Three pages, providing enough for the person who had to, to work with it! YES THREE PAGES FOR THE WHOLE MOTHERFUCKING PROJECT.
This is why I FUCKING HATE the word 'documentation'.36 -
!dev I'd just helped a client cut over to a new fiber connection and then left for Vegas, about 2 days into the trip my wife and I decided to hit a breakfast spot that had bottomless mimosa's, which was of course a claim we had to test.
As we are walking(stumbling) out of the restaurant I get a call that the connection has crashed and the entire car dealership is unable to sell cars, which they tell me is important functionality.
So I make it up to my room and break out the laptop, luckily the mgmt interfaces are still available externally so I'm able to log in and then have the fun challenge of 1) not falling off of my chair 2) not accidentally making a change that kills what connection I have in and 3) fixing their actual issue.
Took me almost an hour to find a simple OSPF issue but at least got them working and happy. However by that time I was beginning to sober up, which is the absolute worst thing that can happen while day-drinking and ended up basically causing me to be be hung-over for the rest of the night, including my wifes friends wedding, which she wasn't thrilled about...
The moral of this story is to make sure to NOT stop drinking while dealing with unexpected production impacting events.1 -
Fucking hell, how much I hate frontend!
Getting a tab system to work (bulma only exists out of css) has been taking me ages and its still not working.
I love nice interfaces but I just want to work on the backend 😭18 -
Found in the trash. Powered up fine and I spent a good half an hour reliving one of the greatest interfaces created (co-operative multitasking notwithstanding). That said, I couldn't find a site that Netscape Navigator would connect to other than example.com.12
-
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 -
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
-
Allright, I'm pissed.
Warning: more than 4k characters written by a non native english speaker ahead.
Legend:
Storytelling
> Short summary of the current situation
> "Something being said"
> (Something being thought)
* Actions *
-- Background --
In an attempt to reorganize my desktop I accidentally deleted a folder I called "development". In there I stored links to all my IDEs (Not sure how you call these in english), but also some workspaces like unity (Not much stuff there, processing (just some hobby stuff) AND Eclipse (FUCKING EVERYTHING RELATED TO SCHOOL WEB DEVELOPMENT). Now 3 days have passed and I realized this important folder was missing. Cleared that windows trash the instant I deleted the trash on my desktop.
> Shit, Regret
Install a file restore programm. Do every possible search. Nothing found.
> Big shit
Deadline was in like 3 days. Week was fucking rough so:
> "Screw this, the teacher nevet corrects the assignments and also fuck JSP"
Fast forward 2 months to last week. Teacher starts checking assignments.
> Fuck
* Sees pattern: Only students with missing or bad marks are checked. *
* Feels save *
Teacher approaching me while working on current projects.
* Doesn't feel save anymore *
> "Well, I'ld like to see your THAT programm"
> Well fuck
* Tells the truth *
> "Well that's unfortunate, but I must write a mark. Do you really have nothing to show?"
* Remember that I worked on the school pcs when I started *
> (Better than nothing. Gotta try it)
* Teacher checks programm, not pleased *
> (Fuck me, but at least it's over...)
> Nope
* Teacher calls me over *
> "With the mark I had to write today you can't reach that good mark even with a good examination, what are we gonna do about this?"
> "Well, there were other assignments that were never checked. Could we replace that mark with one of those?"
* Teacher agrees *
> (Srly bless this guy for that support)
My best choice was an Android app we had to develop during December in pairs. I did the front end (90% of the whole work) and my partner the backend (10 %). I also did 30 % of these 10 %, because I had to review the shit he wasn't able to debug himself.
> brainlogic.exe provided by windows vista
This distribution was partly my fault since I overestimated the work needed for the backend, but also the fault of that fucker. I mean, he didn't tell me the professor already provided 90 % of the backend...
Rest of the week was really busy (always 1 or 2 things to study for each day, workout and family stuff).
Yesterday (It's past 12 already) I arrived at ~9 pm in the dorm I could finally start reviewing my code.
Internet gets shut down at 10 pm.
Gotta hurry.
* Opens project *
* Sees half a year old code *
* Fights urge to puke *
> (Alright I gotta do this. For the mark!)
* waits for gradle to index files *
* Remembers the fact that I haven't opened Android Studio in the last 2 months *
For those who don't develop with android studio: This is an equivalent to ~10k windows updates waiting to be installed
> (Well, gotta work with this kinda old version)
"gradle sync failed"
> ( Ok, just restart it. You're fine )
* Android Studio doesn't react anymore and/or renders *
* Waits 5 min *
* Restarts laptop *
* Android Studio is reacting again*
"gradle is synching"
9:45 pm: gradle is done and I can finally compile my app
> FML
* Sees App launched on phone *
* Almost pukes again *
> (This was the assigment for the UX chapter, so design doesn't matter)
UX is decent. Proceeds with testing stuff. Save paths work, but some bugs can be caused by going of it
* fixes as much as possible *
* Takes quick look at backend *
Date date = new Date (GregorianCalender.getInstance().getTimeInMillis());
C'mon, I asked you to be the backend. You got 90% of the methods already written by the teacher and had 2 months to write the interfaces to my Front end AND you come up with shits like that.
Note: this example is a minor example of brainlogic.exe
I did what I could to make improve my situation. Hopefully he doesn't discover the bugs. And If it's a backend bug then I could't care less, since that was not my job!
Wish me luck for today!undefined web development jsp school assignment not my job fuck up android studio tldr; not getting paid enough for this shit gradle blame backend9 -
OMFG BOSS STOP CHANGING MY INTERFACES INTO CLASSES WITH REDUNDANT CODE AND IF ELSES BECAUSE "IT DIDNT DO ANYTHING" OMFG WE ALREADY WENT OVER IT YOU STUPID FUCK!!!2
-
Me: I can't get a grasp on frontend and nice interfaces...
Friend: it's actually quite easy:
Rule 1 -Don't reinvent the wheel..
Rule 2 -That does not look like a wheel.
Made my day :D1 -
Me: Bro look, I have learnt so many things from the past couple of days.
-Introduction
-Data Types
-Variables
-Arrays
-Operators
-Control Statements
-Classes
-Methods
-Inheritance
-Packages
-Interfaces
-Exception Handing
-Multi-threaded Programming
-Enumerations
-Autoboxing
-Annotations
-Generics
My senior: Congrats on finishing up the basics
Me: Those were just basics???...///!!! 😜3 -
Do not hire a team of full stack developers such that the entire teams' core competency is back-end development and then wonder why they can't hurry the fuck up to design and build usable, device-friendly interfaces.
Hire a damned front-end dev.1 -
I'm thinking about doing a live coding stream on twitch this saturday, late afternoon or evening (CET).
I've never done a live stream before.
Do you have any suggestions or interests?
I'm thinking about something like a small RESTful API with Angular4/TypeScript (frontend, single page application) and CraftCMS/PHP (backend) with somebasic theory about HTTP requests / response, redirecting, data transfer and interfaces et cetera...
The duration will be around 2-4 hours, maybe longer if I have enough Mate & Beer.
But it's all just an idea at the moment. 😉
I will create an empty project for the stream on my Github and push to it during streaming, so you can pull it live or later.17 -
!rant
So, I imagine this little prank is about as old as graphical OS interfaces, but anyways.. Now and then I will take a screenshot of someone's desktop, set that image as their wallpaper, then hide all their icons, make their taskbar (or plural for Linux) to the smallest possible size, and wait for them to try use their PC.
One day a few years back, I tried to catch my mom with this trick, but although it was still pretty epic, it did not happen quite as I expected.
Suffice to say with her knowledge of keyboard shortcuts, she actually used her laptop for about an hour before she noticed none of the taskbar buttons were working.
Yay for trying to prank people who actually know how to use a computer. Lol.1 -
While I fucking hate front end and app development, I also hate that I'm so fucking dependant on them for the development of services and such.
Right now I'm developing a suite of services with a mate and while the backend and security (+linux servers) are something I'm good at, I find it hard sometimes to continue without being able to see my API's in action through apps and good looking interfaces.
My mate is currently handling that part but he has way less time than I do and thus I sometimes have to create interfaces to even just be able to see how my shit would work irl.
I can't fucking stand this and it sometimes entirely drains my motivation but there's also no fucking way in hell that I'll dive into frontend and/or app development.
Fucking hell.14 -
Fuck brand builders, or, how I learned to start giving a shit and love devrant.
Brand builders are people who generally have very little experience and are attempting to obfuscate their dearth of ability behind a wall of non-academic content generation. Subscribe, like, build a following and everyone will happily overlook the fact that your primary contribution to society is spreading facile content that further obfuscates the need for fundamentals. Their carefully crafted presence is designed promote themselves and their success while chipping away at the apparent value of professional ability. At one point, I thought medium would be the bottom of the barrel; a glorified blog that provides people with scant knowledge, little experience and routinely low integrity a platform to build an echo chamber of replayed or copied content, techno-mysticism and best-practice-superstition they mistake for a brand in an environment where there's little chance of peer review. I thought it couldn't get any worse.
Then I found dev.to
Dev.to is what happens when all the absence of ability and skills insecurity on the internet gets together to form a censorship mob to ensure that no criticism, reality or peer review will ever filter into the ramblings of people intent on forever remaining at the peak of the dunning-kreuger curve. It's the long tail of YMCA trophy culture.
Take for example this article:
https://dev.to/davidepacilio/...
It's a shit post listicle by someone claiming to be "senior," who confidently states that "you are only as good as the tools you use." Meanwhile all the great minds of history are giving him the side-eye because they understand tools are just a magnifier of ability. If you're an amazing carpenter, power tools will help you produce at an exponential rate. If you're a shitty carpenter, your work will still be shit, there will just be more of it. The actual phrase that's being butchered here is "you're only as good as the tools you create." There's no moral superiority to be had in being dependent on a tool, that's just a crutch. A true expert or professional is someone who can create tools to aid in their craft. Being a professional is having a thorough enough understanding of the thing you are doing so as to be able to craft force multipliers that make your work easier, not just someone who uses them.
Ok, so what?
I'm sure he's a plenty fine human to grab drinks with, no ill will to him as a human. That said, were you to comment something to that effect on dev.to, you'd be reported by all the hangers-on pretty much immediately, regardless of how much complimentary padding and passive, welcoming language you wrap your message in. The problem with a bunch of weak people ganging up on the voice of reason and deciding they don't want things like constructive criticism, peer review, academic process or the scientific method is, after you remove all of that, you're just left with a formless sea of ideas and thoughts with no categorization, no order. You find a lot of opinions and nothing to challenge them and thereby are left with no mechanism for strong ideas to rise to the top. In that system, the "correct" ideas are by default those posited by the strongest personality.
We all need some degree of positive reinforcement. We also need to be smacked upside the head when we're totally off in the weeds. It's all about balance. The forums of ancient Greece weren't filled with people fervently agreeing with one another and shouting down new ideas en masse. We need discourse, not demagoguery.
Dev.to, medium, etc are all the fast fashion of the tech industry. Personally, I'd prefer something designed to last a little longer.30 -
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 -
So here is my week 72 as a reviewer. But first, let me ask y'all. Am I weird to think that you should finish coding the thing and testing the thing before kicking it out to review? Cuz that's how I do it. And that is the process at my work place.
So anyway, I was doing this review. And it was very wrong. Like really, really wrong. We give a thorough intro to our product (perhaps too thorough) so this guy should have known every test case he had to cover. Or at least, if he was unsure, asked. It was all documented.
Anyway, he kicks out this peer review. First thing I notice, it is not following the standard. Fair enough, we didn't give him the coding standard. BUT HE DIDN'T EVEN MAINTAIN THE FORMAT OF THE ORIGINAL FILE. HE JUST DID HIS OWN THING!!! So I email him the coding standard and make a comment in the review. He denies the finding. No reason. Just turns it down. Strike 1.
Then, I'm going through and he didn't even cover all of the core cases. I found several core cases that he missed. And every edge case. Make a not of it. He fixes only the couple of examples I gave him. Strike 2.
Guy decided to redesign a major chunk of our interfaces. Our interfaces are not just used by us (hence interfaces). We designed them the way they were for a reason. It was not a fun design process. Myself, the architect, one of our customers, and the guy that did the implementation all told him to roll back his change. Especially since it wasn't in the scope of what he was doing. He wouldn't. Strike 3.
I go to the lead and bring him in. He has a talk with him. All of the sudden he is putting out multiple builds per finding. Like most times I will put out like 2 to 4 for the whole peer review. No he kicks out minimum one per finding and chokes the review queue. Strike 4.
Strike 5: he tells me, a former DBA, that I didn't know what I was talking about when I told him to move something into a new table, even after I told him that "while in database terms it doesn't make sense, this is for product robustness".
Strike 6: he was just a condescending asshole. Bragging about how he did this job and that job over his career. His longest position held was about 18 months. Bragged about working at my company and being some hotshot at the company: only worked here for 8 months and that was 5 years ago.
You know. I have never really wanted to fight someone after about undergrad. But he came close.7 -
Since the beginning of this year our IT department has a new boss. He has no idea about IT, but worked with the other departments and CEO + management on an new business strategy. The other department bosses recogniced that this guy is stupid and only talking hot air, but not the CEO and management.
The IT part of the strategy is abstract and bullshit. The IT Team (we) was not included in building this. We only got the "finished" presented.
So our Team should integrate 6 big new systems (ERP, CRM,...) within 1,5 years. No system is actually fixed and the IT boss is only saying: "Its easy, just some interfaces to connect".
Nice additional: CEO says: Either we go with the strategy or we can leave the company.
My decision is made.4 -
1. Ability to freeze time... (except for internet & computer speed). Too many ideas, not enough hours in a day. Sleep should be declared optional as well.
2. Ability to not eat/drink at all, or eat/drink in copious quantities without negative effects. I enjoy a cognac, pizza & chocolate binge more than nausea, upwards BMI creep and hangovers.
3. True Virtual Reality. None of this headset crap, but immersiveness rivaling reality itself, with voice-controlled AI-assisted interfaces to "program" anything by simply describing it, iterating over details to add increasing complexities. Not even for porn reasons... my head just overflows with creative ideas for "holonovels" and interactive worldbuilding, but I don't have the patience nor artistic skills for game development.3 -
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 -
Don't you hate it when your co-worker does dumb things, but thinks it's the "clean code" way?
The following is a conversation between me and a co-worker, who thinks he's superior to everyone because he thinks he's the only one who read the Clean Code series. Let's call him Bill.
Me: I think the feature we need is quite simple, our application needs to call this third party API, parse the response and pass it to the next step. Why do you need to bury everything under an abstraction of 4 layers?
Bill: bEcAuSe It'S dEcOuPlInG, aNd MaKe ThE cOdE tEsTaBlE
Me: I don't know man, you only need to abstract the third party api client, and then mock it if you want. Some interfaces you define makes no sense at all. For example, this interface only has 1 concrete implementation, and I don't think it will ever have another. Besides, the concrete implementation only gets the input from the upper layer and passes it down the lower layer. Why the extra step? I feel like you're using interface just for the sake of interface.
Bill: PrOgRaMmInG tO iNtErFaCe, NoT cOnCrEtE iPlEmEnTaTiOn!!!
Me: You keep saying those words, I don't think they mean what you think they mean. But they certainly do not mean that every method argument must be an interface
Bill: BuT uNcLe BoB blah blah blah...
Me: *gives up all hope*14 -
Our company maneuvered themselves into a classic technical debt situation with a project of a second team of devs.
They then left, signing a maintenance contract and now barely work on the project for exorbitant amounts of money.
Of course management got the idea to hand off the project to the first team, i.e. our team, even though we are not experts in that field and not familiar with the tech stack.
So after some time they have asked for estimates on when we think we are able to implement new features for the project and whom we need to hire to do so. They estimates returned are in the magnitude of years, even with specialists and reality is currently hitting management hard.
Code is undocumented, there are several databases, several frontends and (sometimes) interfaces between these which are all heavily woven into one another. A build is impossible, because only the previous devs had a working setup on their machines, as over time packages were not updated and they just added local changes to keep going. A lot of shit does not conform to any practices, it's just, "ohh yeah, you have to go into that file and delete that line and then in that other file change that hardcoded credential". A core platform is end of life and can be broken completely by one of the many frameworks it uses. In short, all knowledge is stowed away in the head of those devs and the codebase is a technical-debt-ridden pile of garbage.
Frankly I am not even sure whom I am more mad at. Management has fucked up hard. They let people go until "they reached a critical mass" of crucial employees. Only they were at critical mass when they started making the jobs for team 2 unappealing and did not realize that - because how could they, they are not qualified to judge who is crucial.
However the dev team behaved also like shitbags. They managed the whole project for years now and they a) actively excluded other devs from their project even though it was required by management, b) left the codebase in a catastrophic state and mentioned, "well we were always stuffed with work, there was no time for maintenance and documentation".
Hey assholes. You were the managers on that project. Upper management has no qualification to understand technical debt. They kept asking for features and you kept saying yes and hastily slapped them into the codebase, instead of giving proper time estimates which account for code quality, tests, reviews and documentation.
In the end team #2 was treated badly, so I kinda get their side. But up until the management change, which is relatively recent, they had a fantastic management who absolutely had let them take the time to account for quality when delivering features - and yet the code base looks like a river of diarrhea.
Frankly, fuck those guys.
Our management and our PM remain great and the team is amazing. A couple of days a week we are now looking at this horrible mess of a codebase and try to decide of whom to hire in order to help make it any less broken. At least it seems management accepted this reality, because they now have hired personnel qualified to understand technical details and because we did a technical analysis to provide those details.
Let's see how this whole thing goes.1 -
First day on my first job ever, the boss asks me what I want to do. I indicated that I had some experience with php and the yii framework (which was at some point very cool xD), so I wanted to start with something like that. And so it goes: after two days of watching laracasts (which is an awesome platform by the way! :O) I got assigned to a project.
Now the company I work at uses some kind of self built system that tracks how many hours are spent on which project, and compares that to how many hours was estimated implementing a feature would take. That's cool, but then I saw that for the project I was working on the time estimated was 5 work days. This was the estimate for both designing the interfaces and implementing both front and backend. I knew in advance that this was probably way to little time for me, but didn't want to come over as the new kid who can't do shit x)
Anyway, I started on the project and was having fun, but the biggest time consuming aspect of the project was not necessarily that I didn't have enough experience: it was that the developer who started this project and made most of the design choices had written some very messy code, without tests or apparently any refactoring. Also, everything was extremly inconsistent and not according to all the best practices I just watched in my laracasts spree.
So fastforward a little: we're way over the estimated hours. Yay. Now suddenly the boss comes by with an almost angry face that the client is becoming angry and we need to finish soon. He makes it entirely our (me and the front end guy) problem and I just decide to say nothing and try to work faster.
Now I'm stuck writing fugly code on top of more fugly code and when I mentioned to my front end guy that I was almost finished with feature but I only needed to finish up the tests, he said something like "oh just don't write tests, that'll take too long"... Is that really the mindset of this company?! No wonder the project I work on was in a very bad state.
Thanks to devrant I see now that I just need to say something if I know that I won't be able to complete something in a certain amount of time and that other people are just like me (thank god). :) I think I'll need to post more rants to vent my frustrations x)5 -
In PHP (yes, it's a language I... don't hate) I've always hated exceptions. They're like GOTO, in an OOP world with interfaces and contracts, try/catch is really odd as it breaks a promise about returning with a typed value.
But you can now do this in PHP8, which comes pretty close to Maybe/Either monads (Option, Result whatever it's called in other languages):
function getUser(): User | UserNotFound
PHP8 unions don't come with the same strong guarantees as in other languages but *pets PHP gently on the head* you did well, my boy.
Now I would really love it if PHP9 could do:
function getUsers(): Collection<User>
Type Tree<T> = Null | Node<T>;
function 🎄(): Tree<Branch<Ornament|Light|null>>15 -
Self documenting code is a fucking myth you bloody sheep.
Write “self documenting code” then add a fucking comment or two explaining why the fuck the code deserves should be there because nobody can see what the fuck it is doing or understands how the whole collection of microservices works. I’m sick of spaghetti code bullshit full of accidental redundancy because it is impossible for anyone to realize why something is there at a glance.
I renamed different “Contract” classes today by adding numbers before code review.
Contract
Contract1
Contract2
Contract3
All of these classes are supposed to be the same but somehow they aren’t and you self documenting dumbasses missed it. Don’t gripe about the numbered classes in the repo… fix the fucking code and collapse the classes so we don’t have four sections of code describing the same fucking structure from a http get with different interfaces because four people couldn’t read the whole like some fucking computer.11 -
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 -
this code is messy .. it has to be refactored..
abstact those classes to commom interfaces .. create a base class for all those common classes .. make this a parameter, make that a setting.. generalize this, pass a behaviour to that.. separate responsobilities..
hmm .. need to handle that special case .. let's just add a temp method for now to get it compiling .. //todo this later .. maybe add a couple virtual bools to handle the base class behaviour
238 compilation errors! .. let's do a static var for now on this.. and just add this for backward compatibility .. maybe hardcode that dll name, I know it'll NEVER change..
aah finally, all compiles..
oh..
this code is messy .. it has to be refactored.. -
!rant
My first design work (in Adobe XD)
Design has never been my strong point (implementation or design) but am very interested in designing interfaces.
Don't hold your horses. Criticize this. I want to know what you think about this.17 -
Update on my old rant: I started writing type definitions for our project (it's basically a chunk of separate files where you document the objects you use; typed languages have this out of the box, js doesn't and it may become useful depending on the size of the project). Our codebase is reasonably big -not complicated, but big- and I felt like I was losing track of all the properties\objects\usage\comments\whatever. So I iiterally wrote some ts interfaces: properties with name and types, that's it, so you know what you're passing around.
Proposal was denied, I'll have to delete the documentation; "keeping the doc updated is going to require more work".
Me: Ok, but what am I supposed to do when I need to interface with your code? Run the debugger and figure out what the fuck you guys are passing around?
Team leader: Yes 😊6 -
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 -
I got in trouble for refactoring code to be modular. They said “thats too complicated the maintenance team”.
Said coworker produced a kludge of copy pasted code so the dumb ass maintenance team could understand it.
tldr; interfaces and abstract classes are too advanced for our employees so make the codebase shitty on purpose.3 -
Best tool:
Your hands!
- incredibly flexible
- express a lot of commands trough very little code (just raise the middle finger and tell me if you are not expressing something VERY strong with VERY little complexity)
- reusable
- interfaces
- smells of good soap
Worst tool:
Your brain
- highly power consuming
- wrinkly, ehw!
- overthinks a lot
- imposter syndrome
- hooked on sugar like it was cocaine
- hooked on cocaine like it was sugar
- refuses to comprehend chthulu5 -
So, during my Java lessons we had a teacher who had a very special relationship with the language.
During the introduction he used to tell us that interfaces in Java are really poorly designed and that they would not reflect how an interface normally should be implemented. The possibility for a developer to add default methods to an interface or that a class could inherit from multiple interfaces was unacceptable to him.
Due to those reasons, he would hate on Java 8 and tell us to not use it and instead stay with Java 7 - dafuq!4 -
The biggest lesson I learned in Frontend Dev is: listen to users, not clients.
There are so many rants about stupid ass clients on here, and when you let clients treat you like that, it's kind of your own fault. Look at how people use your interfaces and you will immediately see what's bullshit about them. When you have user behavior as an argument basis, clients will listen to you.2 -
7 page resume
13 jobs, some only lasting 3 months
TONS of grammatical and spelling errors.
Descriptions of each job has several lines just saying he "created functions; interfaces; abstract classes; classes".... For a jr/senior level developer job? Why are we interviewing him?8 -
For a new project I first try to get an overview about the specifications, hosting and platform.
Depending on this information I decide which language and frameworks (if any) to use.
Basically always the first part I create is the backend, so I have all the data interfaces ready. For web stuff Postman is really useful.
Later on I start with the frontend, get myself really angry because I hate frontend.
Then I get into a hate-overdrive because browsers suck and I delete everything and quit.1 -
*Java*
Friend: So I can have variables on interfaces?
Me: Yeah, just that they are final and static
Friend: ...2 -
So I help out in a development forum for a framework I use at work. I learned a crap ton by seeing questions people ask, then learning to solve them myself. I have really enjoyed being in that forum that past 4 years.
Yet, I see people who cannot seem to reason themselves out of a paper bag at times. I see questions of I cannot run this linux executable because there are parenthesis in the filename. I mean most console interfaces are just tab complete even with special characters. This is for a developer in their 50s that has been coding 30 years. Or I see other programmers asking basic questions that 5 minutes with the docs would solve. Most of the ones that I have issue with seem to have been a part of that community a lot longer than myself.
How do developers survive without problem solving skills to understand the frameworks or tools they use?
I had another conversation with a dev in another forum about using "man" in Linux to figure out how to use something. They said something to the effect: "try learning awk from a manpage". I explained about how "back in the day" we learned EVERYTHING from man pages. That is why they are called "man" pages.
Is the industry flooded with idiots now?5 -
dev "no no no, you're overengineering it. You just need one class for that"
Me "but ... Those are different object that share a common interface. The internal logic is not the same, only their output is. You know ... That's the purpose of interfaces"
Him "no no, as i said, you don't need that. Listen, you can put ALL the fields and methods in a single class and then you can use a switch with different cases .."1 -
You know what's rocket science? Serial ports.
Every freakin' datasheet states RX/TX but not from which side of the connector. Some look at it from the inside (RX for own receive), some from the outside (RX for receive of the counterpart). But never ever try to explain what is what, that would be too easy.
On literally any first attempt of connecting devices in my life it was wrong. And then you switch 'em and it's still wrong. Then you switch again, and it may work. Or you have to switch a few times more, you never know.
Those freaking bastard interfaces from hell.4 -
Is it my imagination or are the developers who write user interfaces in 2024 completely retarded?24
-
So.....Google Flutter is finally out of beta and ready to go.
Why? Well you see, Google realized that Android development was a complete fucking mess (50+ lines of code to get a permission? Yeah eatadick) and that Fb had it right with React Native which held a better model for building interfaces and manipulating said data. Dart as a language is very nice and for those comming from C#, Java and Js should not pose that much of a hassle.
I love Java, I really do, but Google took care of making Android Java development as tedious as fucking possible with the quirky Android API. Hopefully Flutter will make it better and hopefully Fushia will become a better OS.
Remember, language extensions or frameworks happen for 2 different reasons:
1 the community loves the environment and language enough that they make more cool stuff for it (Js, Ruby, Python etc, this phenomena happens in said ecosystems)
2 the environment is so severly flawed that people add libs to fix it (or extensions to the language if we ate talking about a language)
E.g Android Butterknife, okhttp etc.
I welcome our Dart overlords.10 -
Running a fucking conda environment on windows (an update environment from the previous one that I normally use) gets to be a fucking pain in the fucking ass for no fucking reason.
First: Generate a new conda environment, for FUCKING SHITS AND GIGGLES, DO NOT SPECIFY THE PYTHON VERSION, just to see compatibility, this was an experiment, expected to fail.
Install tensorflow on said environment: It does not fucking work, not detecting cuda, the only requirement? To have the cuda dependencies installed, modified, and inside of the system path, check done, it works on 4 other fucking environments, so why not this one.
Still doesn't work, google around and found some thread on github (the errors) that has a way to fix it, do it that way, fucking magic, shit is fixed.
Very well, tensorflow is installed and detecting cuda, no biggie. HAD TO SWITCH TO PYHTHON 3,8 BECAUSE 3.9 WAS GIVING ISSUES FOR SOME UNKNOWN FUCKING REASON
Ok no problem, done.
Install jupyter lab, for which the first in all other 4 environments it works. Guess what a fuckload of errors upon executing the import of tensorflow. They go on a loop that does not fucking end.
The error: imPoRT eRrOr thE Dll waS noT loAdeD
Ok, fucking which one? who fucking knows.
I FUCKING HATE that the main language for this fucking bullshit is python. I guess the benefits of the repl, I do, but the python repl is fucking HORSESHIT compared to the one you get on: Lisp, Ruby and fucking even NODE in which error messages are still more fucking intelligent than those of fucking bullshit ass Python.
Personally? I am betting on Julia devising a smarter environment, it is a better language already, on a second note: If you are worried about A.I taking your job, don't, it requires a team of fucktards working around common basic system administration tasks to get this bullshit running in the first place.
My dream? Julia or Scala (fuck you) for a primary language in machine learning and AI, in which entire environments, with aaaaaaaaaall of the required dlls and dependencies can be downloaded and installed upon can just fucking run. A single directory structure in which shit just fucking works (reason why I like live environments like Smalltalk, but fuck you on that too) and just run your projects from there, without setting a bunch of bullshit from environment variables, cuda dlls installation phases and what not. Something that JUST FUCKING WORKS.
I.....fucking.....HATE the level of system administration required to run fucking anything nowadays, the reason why we had to create shit like devops jobs, for the sad fuckers that have to figure out environment configurations on a box just to run software.
Fuck me man development turned to shit, this is why go mod, node npm, php composer strict folder structure pipelines were created. Bitch all you want about npm, but if I can create a node_modules setting with all of the required dlls to run a project, even if this bitch weights 2.5GB for a project structure you bet your fucking ass that I would.
"YOU JUST DON'T KNOW WHAT YOU ARE DOING" YES I FUCKING DO and I will get this bullshit fixed, I will get it running just like I did the other 4 environments that I fucking use, for different versions of cuda and python and the dependency circle jerk BULLSHIT that I have to manage. But this "follow the guide and it will work, except when it does not and you are looking into obscure github errors" bullshit just takes away from valuable project time when you have a small dedicated group of developers and no sys admin or devops mastermind to resort to.
I have successfully deployed:
Java
Golang
Clojure
Python
Node
PHP
VB/C# .NET
C++
Rails
Django
Projects, and every single fucking time (save for .net, that shit just fucking works on a dedicated windows IIS server) the shit will not work with x..nT reasons. It fucking obliterates me how fucking annoying this bullshit is. And the reason why the ENTIRE FUCKING FIELD of computer science and software engineering is so fucking flawed.
But we can't all just run to simple windows bs in which we have documentation for everything. We have to spend countless hours on fucking Linux figuring shit out (fuck you also, I have been using Linux since I was 18, I am 30 now) for which graphical drivers for machine learning, cuda and whatTheFuckNot require all sorts of sys admin gymnasts to be used.
Y'all fucked up a long time ago. Smalltalk provided an all in one, easily rollable back to previous images, easily administered interfaces for this fileFuckery bullshit, and even though the JVM and the .NET environments did their best to hold shit down, and even though we had npm packages pulling the universe inside, or gomod compiling shit into one place NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO we had to do whatever the fuck we wanted to feel l337 and wanted.
Fuck all of you, fuck this field, fuck setting boxes for ML/AI and fuck every single OS in existence2 -
>Installed a new graphics card (thanks santa <3)
>Boots into Ubuntu
>Try to SSH. No route to device.
>Log in locally. "Failed to start raise network interfaces"
>ok.
>find out that installing graphics card renamed enp2s0 to enp3s0.
>ok.6 -
I think that two criterias are important:
- don't block my productivity
- author should have his userbase in mind
1) Some simple anti examples:
- Windows popping up a big fat blue screen screaming for updates. Like... Go suck some donkey balls you stupid shit that's totally irritating you arsehole.
- Graphical tools having no UI concept. E.g. Adobes PDF reader - which was minimalized in it's UI and it became just unbearable pain. When the concept is to castrate the user in it's abilities and call the concept intuitive, it's not a concept it's shit. Other examples are e.g. GEdit - which was severely massacred in Gnome 3 if I remember correctly (never touched Gnome ever again. I was really put off because their concept just alienated me)
- Having an UI concept but no consistency. Eg. looking at a lot of large web apps, especially Atlassian software.
Too many times I had e.g. a simple HTML form. In menu 1 you could use enter. In menu 2 Enter does not work. in another menu Enter works, but it doesn't submit the form it instead submits the whole page... Which can end in clusterfuck.
Yaaayyyy.
- Keyboard usage not possible at all.
It becomes a sad majority.... Pressing tab, not switching between form fields. Looking for keyboard shortcuts, not finding any. Yes, it's a graphical interface. But the charm of 16 bit interfaces (YES. I'm praising DOS interfaces) was that once you memorized the necessary keyboard strokes... You were faster than lightning. Ever seen e.g. a good pharmacist, receptionist or warehouse clerk... most of the software is completely based on short keyboard strokes, eg. for a receptionist at a doctor for the ICD code / pharmaceutical search et cetera.
- don't poop rainbows. I mean it.
I love colors. When they make sense. but when I use some software, e.g. netdata, I think an epilepsy warning would be fair. Too. Many. Neon. Colors. -.-
2) It should be obvious... But it's become a burden.
E.g. when asked for a release as there were some fixes... Don't point to the install from master script. Maybe you like it rolling release style - but don't enforce it please. It's hard to use SHA256 hash as a version number and shortening the hash might be a bad idea.
Don't start experiments. If it works - don't throw everything over board without good reasons. E.g. my previous example of GEdit: Turning a valuable text editor into a minimalistic unusable piece of crap and calling it a genius idea for the sake of simplicity... Nope. You murdered a successful product.
Gnome 3 felt like a complete experiment and judging from the last years of changes in the news it was an rather unsuccessful one... As they gave up quite a few of their ideas.
When doing design stuff or other big changes make it a community event or at least put a poll up on the github page. Even If it's an small user base, listen to them instead of just randomly fucking them over.
--
One of my favorite projects is a texteditor called Kate from KDE.
It has a ton of features, could even be seen as a small IDE. The reason I love it because one of the original authors still cares for his creation and ... It never failed me. I use Kate since over 20 years now I think... Oo
Another example is the git cli. It's simple and yet powerful. git add -i is e.g. a thing I really really really love. (memorize the keyboard shortcuts and you'll chunk up large commits faster than flash.
Curl. Yes. The (http) download tool. It's author still cares. It's another tool I use since 20 years. And it has given me a deep insight of how HTTP worked, new protocols and again. It never failed me. It is such a fucking versatile thing. TLS debugging / performance measurements / what the frigging fuck is going on here. Take curl. Find it out.
My worst enemies....
Git based clients. I just hate them. Mostly because they fill the niche of explaining things (good) but completely nuke the learning of git (very bad). You can do any git action without understanding what you do and even worse... They encourage bad workflows.
I've seen great devs completely fucking up git and crying because they had really no fucking clue what git actually does. The UI lead them on the worst and darkest path imaginable. :(
Atlassian products. On the one hand... They're not total shit. But the mass of bugs and the complete lack of interest of Atlassian towards their customers and the cloud movement.... Ouch. Just ouch.
I had to deal with a lot of completely borked up instances and could trace it back to a bug tracking entry / atlassian, 2 - 3 years old with the comment: vote for this, we'll work on a Bugfix. Go fuck yourself you pisswads.
Microsoft Office / Windows. Oh boy.
I could fill entire days of monologues.
It's bad, hmkay?
XEN.
This is not bad.
This is more like kill it before it lays eggs.
The deeper I got into XEN, the more I wanted to lay in a bathtub full of acid to scrub of the feelings of shame... How could anyone call this good?!?????4 -
Angular is still a pile of steaming donkey shit in 2023 and whoever thinks the opposite is either a damn js hipster (you know, those types that put js in everything they do and that run like a fly on a lot of turds form one js framework to the next saying "hey you tried this cool framework, this will solve everything" everytime), or you don't understand anything about software developement.
I am a 14 year developer so don't even try to tell me you don't understand this so you complain.
I build every fucking thing imaginable. from firmware interfaces for high level languaces from C++, to RFID low level reading code, to full blown business level web apps (yes, unluckily even with js, and yes, even with Angular up to Angular15, Vue, React etc etc), barcode scanning and windows ce embedded systems, every flavour of sql and documental db, vectorial db code, tech assistance and help desk on every OS, every kind of .NET/C# flavour (Xamarin, CE, WPF, Net framework, net core, .NET 5-8 etc etc) and many more
Everytime, since I've put my hands on angularJs, up from angular 2, angular 8, and now angular 15 (the only 3 version I've touched) I'm always baffled on how bad and stupid that dumpster fire shit excuse of a framework is.
They added observables everywhere to look cool and it's not necessary.
They care about making it look "hey we use observables, we are coo, up to date and reactive!!11!!1!" and they can't even fix their shit with the change detection mechanism, a notorious shitty patchwork of bugs since earlier angular version.
They literally built a whole ecosystem of shitty hacks around it to make it work and it's 100x times complex than anything else comparable around. except maybe for vanilla js (fucking js).
I don't event want todig in in the shit pool that is their whole ecosystem of tooling (webpack, npm, ng-something, angular.json, package.json), they are just too ridiculous to even be mentioned.
Countless time I dwelled the humongous mazes of those unstable, unrealiable shitty files/tools that give more troubles than those that solve.
I am here again, building the nth business critical web portal in angular 16 (latest sack of purtrid shit they put out) and like Pink Floyd says "What we found, same old fears".
Nothing changed, it's the same unintelligible product of the mind of a total dumbass.
Fuck off js, I will not find peace until Brendan Eich dies of some agonizing illness or by my hands
I don't write many rants but this, I've been keeping it inside my chest for too long.
I fucking hate js and I want to open the head of js creator like the doom marine on berserk19 -
!rant
So, Rust again.
When I learned that Rust doesn’t support inheritance, only traits (interfaces), I was shocked at first.
Then I tried to remember when the last time was that I have used inheritance in the code that I write (not the code that I use).
And I could remember an instance some months ago. But I also remember that I was very unsatisfied with that design and refactored it to use composition instead. And it was much better.
One of Rust’s properties is that many good practices in other programming languages are enforced rules in Rust.
And in case of inheritance, it seems like Rust decided that composition over inheritance is such a good practice that it should be a rule.
I’m not 100% convinced that there never will be cases where inheritance is better. But I still like this radical idea of forcing the devs to do it "the right way" in the majority of (if not all) cases.
I think many devs will disagree.
What do you think?14 -
I'm not qualified to say anything here, I'm a junior as well, but something general that I picked up:
Not everything needs to be object oriented.
Writing 5 functions and calling it a day is often much better than needing 13 classes and 4 interfaces.5 -
That feeling when building and testing on android device takes you 5 mins and then you spend 2 days dealing with Apple's bullshit.
Sexy devices and pretty interfaces but they just looove making devs jump through hoops.3 -
How do you deal with massively poorly-performing and unknowledgeable teams?
For background, I've been in my current position for ~7 months now.
A new manager joined recently and he's just floored at the reality of the team.
I mean, a large portion of my interview (and his) was the existing manager explicitly warning about how much of a dumpster fire everything is.
But still, nothing prepares you for it.
We're talking things like:
- Sequential integer user ids that are passable as query string args to anonymous endpoints, thus enabling you to view the data read by that view *for any* user.
- God-like lookup tables that all manner of pieces of data are shoved into as a catch-all
- A continued focus on unnecessary stored procedures despite us being a Linq shop
- Complete lack of awareness of SOLID principles
- Actual FUD around the simplest of things like interfaces, inversion of control, dependency injection (and the list goes on).
I've been elevated into this sort of quasi-senior position (in all but title - and salary), and I find myself having to navigate a daily struggle of trying to not have an absolute shit fit every time I have to dive into the depths of some of the code.
Compounded onto that is the knowledge that most of the team are on comparable salaries (within a couple thousand) of mine, purely owing to length of service.
We're talking salaries for mid-senior level devs, for people that at market rates would command no more (if even close) than a junior rate.
The problem is that I'm aware of how bad things are, but then somehow I'm constantly surprised and confronted with ever more insane levels of shitfuckery, and... I'm getting tired.
It's been 7 months, I love the job, I'm working in the charity sector and I love the fact that the things I'm working on are directly improving people's lives, rather than lining some fintech fatcat's pockets.
I guess this was more a rant than a question, and also long time no see...
So my question is this:
- How do you deal with this?
- How do you go on without just dying inside every single day?8 -
Ughhhhhh. This fucking code is a disaster! The guy says he built it DRY, but it's WET as fuck! So much fucking repeated code!
I'm annoyed most because I know that it'd be a fucking waste of time to try and rebuild what these guys have built over the past 5 years, but goddamn it, it shouldn't be an excuse to keep on making code like this!
I know that I'm not super experienced in C# but pick up a goddamn book on good coding practices. This thing is a disjointed mess and it never had to get this way.
So many fucking interfaces!!!! AAAAAAAAAAAAAAA19 -
Many people here rant about the dependency hell (rightly so). I'm doing systems programming for quite some time now and it changed my view on what I consider a dependency.
When you build an application you usually have a system you target and some libraries you use that you consider dependencies.
So the system is basically also a dependency (which is abstracted away in the best case by a framework).
What many people forget are standard libraries and runtimes. Things like strlen, memcpy and so on are not available on many smaller systems but you can provide implementations of them easily. Things like malloc are much harder to provide. On some system there is no heap where you could dynamically allocate from so you have to add some static memory to your application and mimic malloc allocating chunks from this static memory. Sometimes you have a heap but you need to acquire the rights to use it first. malloc doesn't provide an interface for this. It just takes it. So you have to acquire the rights and bring them magically to malloc without the actual application code noticing. So even using only the C standard library or the POSIX API can be a hard to satisfy dependency on some systems. Things like the C++ standard library or the Go runtime are often completely unavailable or only rudimentary.
For those of you aiming to write highly portable embedded applications please keep in mind:
- anything except the bare language features is a dependency
- require small and highly abstracted interfaces, e.g. instead of malloc require a pointer and a size to be given to you application instead of your application taking it
- document your ABI well because that's what many people are porting against (and it makes it easier to interface with other languages)2 -
I’m so sick and tired of the cattle-minded people in the software world. I love coding and improving myself; I've got over 18 years of experience. I enjoy what I do, and I like being good at it. I know my way around a variety of different technologies, and I could easily outperform most engineers with similar experience. If I don’t know something, I get excited to learn and I ask questions. I don’t enjoy standing in the spotlight about what I know; I prefer supporting, helping, solving problems, improving solutions, and simplifying everything.
From my experience, the best solution is the simplest, shortest, fastest, and leanest one. But unfortunately, there are people in the workplace who think the opposite of me and blindly follow this so-called prophet named Uncle Bob, zealously writing all his SOLID principles and dogmatic code, turning their work environments into a toxic mess. I’m so done with it. You have no idea how harmful a person can be when they cling to the teachings of a guy like Uncle Bob—someone who probably hasn't even written the "s" in software himself and is just trying to sell his book. In almost every job or team I join, there’s one of these people who drags junior developers into writing dogmatic code by chanting about SOLID principles, Uncle Bob, and object-oriented programming.
Software engineering isn’t something you can learn from a book written by people like Uncle Bob, who haven’t coded a decent product in a real development process. Experience is something entirely different, and from my experience, everything taken to extremes turns out badly. Wherever I see an Uncle Bob disciple, the work inevitably slides into the extremes. For someone writing in C and C++, it’s disheartening to hear about object-oriented programming, SOLID principles, and agile nonsense. I’m tired of seeing people cluttering their code with interfaces for every little thing, over-engineering patterns, and stuffing every piece of code with interfaces to make it “testable.” They run around claiming they’re writing SOLID code, doing TDD, following “best practices,” yet they can't solve any real problems or algorithms. They take a week-long task and drag it out to six, making simple things complex and distancing themselves from real solutions. I’m sick of these types.
If you’re a junior developer, please ignore the fools trying to lead you down this path, and don’t become dogmatic about what you learn, especially if you’re writing C++.
I’ve never seen any real engineer who takes this SOLID, object-oriented nonsense seriously. Believe me, once you reach a certain threshold, you won’t hear these words anymore. Software isn’t just about that. Object-oriented programming, especially if you’re not writing Java or C#, and especially if you’re working in C++ (thankfully, C doesn’t even have it), is something you should definitely steer clear of. Robert C. Martin, aka Uncle Bob—if only you had written your book with a focus on Java or C#. These dogmatic code writers with 7-8 years of experience crying at the sight of free functions in C++ really give me a headache. Because of you, these people exist, and I don’t have the energy to deal with this nonsense at my age.rant agile uncle bob object oriented solid c dogmatic code oop solid principles c++ tdd robert.c martin7 -
I was just chatting with my dad. He used to be mostly a C# dev but changed jobs and is now doing mostly Java. He says he likes it better.... Because it doesn't have lambdas/anonymous functions.
Uh.... Java was the first and only language where you can define interface implementations in-line (aka a whole bunch of functions)...
And 1.8 supports lambdas for Interfaces that have a single function...
I bet he'll hate JS... Where functions are can be passed around like objects, ES6 now supports lambdas and await, async... and anonymous functions (apparently they're called arrow functions?)9 -
Material Design on the web was not a good experience in my personal opinion. I see these spaces around the boxes that are too huge. The faded underlined input boxes are confusing, too. I'd rather prefer seeing a border all around the input box or something of similar representation than an underline with a distracting animation. Many also fail at placing the buttons with a transparent background on the right spot. I'd still prefer Semantic UI or something clean on my upcoming projects. To me, Material Design is really good for mobile interfaces though.5
-
If an AI gets advanced enough to not require human support it will also be advanced enough to either just pamper us, or replace us.
But I think that long before that we will have neural interfaces that brings us to the next level so the AI will be part human ;)7 -
Three of us work on an app. I made a mockup interface to develop the functionality, a second person made the designed interfaces and a third made the API. Now the design got included in the app.
I had a conversation with the third person.
He: Do you need a list of what works and what doesn't?
Me: If you have free time...
*2 seconds later*
He: Nothing except login. Have fun!1 -
Asked a 3rd party developer to add HTTPS support to an IoT device which interfaces with our webservice.
Spent almost 4 weeks trying to explain they don't need the server side certificate to do so. -
tl;dr Do you think we will any time soon move from editing raw source code? Will IDE or other interfaces allow us to change the code in graphic representation or even through voice?
---
One thing I found funny watching Westworld is how they depicted the "programming" - it is more like swiping on a smartphone, a bit maybe like Tom Cruise's investigations in Minority report. Or giving certain commands and key words by voice.
There was one quote from Uncle Bob's "Clean Code" I could never find again, where he said something along the lines, that back in the seventies or eighties they thought they would soon raise programming languages to such a high level they would use natural language interfaces, and look at us now, still the same "if's".
So I feel uncomfortable without my shell and having tried a graphical programming language once this particular (Labview) seemed clumsy to me at best. But maybe there are a lot of web devs here and it seems with them frameworks you might be able to abstract away a lot of the pesky system programming... so do you feel like moving to some new shiny programming experience or do you think it will stay the same for more decades as the computer is that stupid machine where you have to spill it out instruction by instruction anyways?7 -
Had a legit argument with a manager about the text in a drop down menu. I argued that it should actually state what the option was for because I care about the user experience... Management wanted to conceal several business logic steps behind an unrelated option in the same menu because of a literal interpretation of the process and the client's request.
Interfaces should tell the user what is going on...2 -
Applications written with game engines - Unity to be specific -, that mimick usual user interfaces with an appalling design that screams "grefic desein is ma peaetion"
Your cancerous application is ruining my health and the ads only make it worse. Go learn to program natively on a platform or caese.
Nobody wants to see that logo of yours while waiting for your app to load what? Your very "unique" listview? Those very extremely beautiful buttons with images? You incompetent being learning how to crop images properly without destroying the proportion of it?
Please learn how to kick yourself in the head6 -
Ok that's nice and all Google but how about you fix the fucking UI, laggy interfaces, janked and half baked tablet mode and just all round fix what you broke from chromeOS 70 onwards?
You know.. make sure things are stable before pretty?5 -
Need some advice guys/gals. I'm a back-ender working to create a new web application where I do the UI creation as well. I'm very familiar with bootstrap but do you people have any tips on how to create interfaces easily and fast?6
-
Colleagues cannot seem to grasp that allowing a user to manually update a field via an Api, that only business process should update is a bad idea.
The entire team of around 10 'software developers' cannot grasp that just because the frontend website won't set it doesn't mean its secure. I have tried many times now...
Just an example honestly... Our project follows a concrete repository pattern using no interfaces or inheritance, returning anaemic domain models (they are just poco) that then get mapped into 'view models' (its an api). The domain models exist to map to 'view models' and have no methods on them. This is in response to my comments over the last 2 years about returning database models as domain transfer objects and blindly trusting all Posts of those models being a bad idea due to virtual fields in Ef.
Every comment on a pull request triggers hours of conversation about why we should make a change vs its already done so just leave it. Even if its a 5 minute change.
After 2 years the entire team still can't grasp restful design, or what the point is.
Just a tiny selection of constant incompetence that over the years has slowly warn me down to not really caring.
I can't really understand anymore if this is normal.3 -
We are 2 people working as remote android devs for this startup in another country. 6 weeks ago a new person joined onsite to work directly in startup HQ. I'l refer to him as an newguy.
Last week we started new sprint (of 2 weeks) to work on a new feature.
Newguy was responsible for gathering all the specs and planning, so this is how our sprint is going so far:
Day 1:
We have 10+ tickets in jira (tickets have only titles) no one knows what to do and we don't even have specification. I started pushing everybody onsite to get their shit together. We NEED UX/UI specs, we NEED backend to be ready, or at least start working paralelly so that once wer'e done with frontend backend would be ready. I mean cmon guys this feature is already 70% done on iOS, why cant you send us the specification?
Day 2:
We had a meeting on Zoom and talked about missing specification and project manager promised to send us the specs. Meanwhile the idea of feature became clearer so I agreed with the newguy to start researching about best way to implement our solution.
Day 3:
We received the specifications. I provided my research for the feature to the newguy. Turns out the he knew about specification 4-5 days before.
Instead of sharing information with us, he decided to create his own library to do what we want to do and blatantly rejected my research input.
Now he showed his implementaton (which is shit by the way) and presents it as the only way to proceed forward. He offers for us to work paralelly with him on this (basically he wants to write library alone, and we are supposed to somehow implement and test it, but how the fuck we can implement if backend is not ready and library is just a bunch of empty interfaces at this point?)
I talked with one of the teamleads in the startup and told him that this is not the way things were being done here before and new guy is becoming a dictator.
Teamlead talked with new guy and found no issue. Basically newguy defended his sole decision by saying that he did research on his own, there are no libraries that do what we want and he knows better.
Teamlead tells me to STFU because new guy seems competent and he will be leading this feature. Basically from what I gathered teamlead doesn't give a single fuck and wants to delegate all project management to this new guy.
Day 5:
End of the week. New guy claims that his lib is done so we can start implementing properly. I tried implementing his lib but its fucked up and backend is still not ready.
Day 6:
Backend is still not ready, no one is doing anything just waiting for it to be ready.
Day 7 (Today):
Today(Backend is still not ready, no one is doing anything just waiting for it to be ready.
So what can I say? His plan was to probably prove his self worth and try to lead this feature by giving us information at last minute. At the point were we should start implementing instead of researching.
What happened? Motherfucker doesn't know shit about backend, has been notified about backend issues multiple times but his head was so deep up his ass with that new library of his that he delayed the rest of the team.
Result? 7 working days wasted. Out of 3 developers only 1 was actually working (and his fucked up code will have to be rewritten anyways). Only 50% of feature done. Motherfucker tells me that this is how we will work in the future, "paralelly". The fuck is this mate? If you would have worked on this feature alone you would have done it already now, but instead you wait until we remote devs will login and fetch you the test input and talk with backend guys for you? The fuck is wrong with you.
You fucking piece of shit, learn to plan and organize better if you want to lead the team. Now all that you are doing is wasting time, money and getting on everyboys nerves. Im tired of fucking spoon feeding you every day you needy scheming office politics playing piece of shit. Go back to your shithole country and let us work.
When I was responsible for sprint planning I figured out what to do before start of the sprint and remote devs were able to do week's work in 1-2 days and have rest of the week off. This is how it's supposed to be when you work with a remote team. Delegate them separate features, give them proper specs ahead and everyone's happy. Don't start working on frontend if you dont even fucking know when backend will be ready. It's fucking common sense.
Now I need to spoon feed this motherfucker who can't even get information while sitting on his ass onsite in HQ. Fucking hell.8 -
GOD ALMIGHTY I HATE SWIFT & XCODE...
Why the fuck does it take a horrendous amount of time to muck about with layout constraints. Why the heck does xcode choose to add constraint layouts to elements that already have pissing constraints! Why does dealing with something as trivial as tables have to be so god damn fucking involved when HTML and CSS let me create and style tables in fuck all lines.
And what the hell is up with how pissing long xcode takes just to figure out that 1 extra line of code I've just added. You jump to another file and xcode finally decides to be an ide again and bitch at the fact that you've forgotten to add some parameter or that they've decided to rename paramter "x" since version fuck nows what.
Working with abstract classes is fun, lets use protocols (because interfaces are too old school) and then lets tack on something we call extensions and then lets make people piss about with convenience initializers.
And lord almighty, what the fuck is up with casting, what all this ?! BS. What's wrong with just checking if the value is null in the first place, or whats wrong with giving something an initial value, oh because having to unwrap shit is more elegant right??
And good god, I need to own a fucking cinema screen just to have the storyboard open, there's less fucking panels on the Sistine Chapel ceiling
then there is in xcode.1 -
Last 4 days, struggling to get ship it from a Dev who is reviewing my code.
The comments have already piled up more than the LOC submitted.
The code review consists of just 2 interfaces and a pojo. Hardly 20 LOC in total, excluding javadocs.
I hope it gets ship it soon.
Wish me luck.2 -
"Because every person knows what he likes, every person thinks he is an expert on user interfaces." - Paul Heckel
-
What's everyone's opinion when it comes to designing modern and/or minimalistic interfaces when using blur or gradients?
I see a lot of people who are hating blur used in UI elements and a lot of people praise the 'death' of gradients, what's everyone else think of these.
I personally love using blur in UI's and do like gradients if done correctly (not 2 colour gradients)
EDIT: I mean what's your opinion on blur and gradients not which one is better :-P12 -
I was doing code reviews for some of the new Devs recently joined... One guy wrote his entire life history in the check in description... Like Why he took this approach, why interfaces are necessary in coding, when did he lost his virginity (I doubt he ever did), what's his pet name? - sadly no information related to his online banking... Shame really...
-
Musk's OpenAI beat the top professional Dota2 players in the World. That's pretty impressive. AI has a lot of potential for the future. BTW, any Dota2 players here? My son complains that he ends up on Teams that don't speak English. Dota2 can be modded. Imagine a mod that interfaces with Google Translate and does on the fly translation. Beyond my experience level. Way beyond.3
-
!dev but tech related...
Got a device configured in a location that is fairly far away from me. It operates only through a cloud service specifically for these devices, with one of the most unreliable web interfaces and smartphone apps I have ever used.
I email my issues to the tech support who don't seem to understand the problems and can't fathom the difference between "reset settings" and "restart device".
Eventually they need to log in to my account to find out whats wrong. I explicitly state that under no circumstances should any settings be changed.
Today I find that the device has been removed from the cloud account. I physically must be near it to register it on the account again. Tech support don't seem to know what happened and the best explanation is that it is "a glitch". They have no way to add it back themselves. I have to travel to the device.
Funny how this happened after I let them access the account... -
Been working at a new job for two months and had a code review on the latest project.
My senior asked me why I had used interfaces because he dosent see the point in them and that they aren't useful. #facepalm3 -
[Hardware geeks, microcontroller geeks, please come]
Yet another Hacktoberfest tshirt...
Gotcha? (I bet you know who I am)
Just kidding. Just a random project idea I am not sure if it is possible to make from scratch.
It is essentially a usb external storage
About 32gb
And has a lcd that shows available storage space
And some buttons to play snake. (Yup)
Is it possible?
What should I expect when creating from scratch? (Microcontroller, c language, interfaces, etc)13 -
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 gripe about modern UX interfaces. UX interfaces need to have better ways to get information displayed in text as text. It is exceedingly annoying to be presented with an error message in a dialog with a cryptic error code. The user is forced to transcribe the error message to try and figure out what is causing the error. Just make the text copy-able with normal cut and paste interfaces. I think this should be a standard in interfaces that present text to make it easy to copy the message or text from interfaces. This makes information sharing easier and less cumbersome to the user. This is definitely a mindset change for UX. This is mostly a gripe about desktop. Phone systems are just shit to begin with.6
-
ME - me, TM - teammate
I was just recruited to the company. We're starting new project based on few modules.
ME: So this module will do X and Y, I will use good old interfaces and design based on abstractions so that stuff does not get glued too much.
TM: But why? Make good old processor with all the logic and throw objects at it.
ME: B-but unit tests, decomposition and othet stuff...
TM: *insists and forces me to agree*
ME: *gets shit done his way, TM checks on code review and complains but generally doesnt give a fuck*
ME: Ok, its done. Lets get shit shipped.
TM: Well, we were just told by PM that we will need to process one more source with much different logic that does not fit current solution (he did meant GOD-PROCESSOR, idea of his).
ME: What do you mean? *injects another contextual implementation of processing logic to template method pattern solution*.
TM: I will tell PM you cant make it because of the implementation.
ME: But I just did it...
TM: Impossible, processor needs to be reimplemented. Get your shit together!
ME: *still doesnt get the shit about the god processor love*
TM: *rage quits next month*
ME: *module gets reused once more 2 month later, profit* -
Not sure if it's the worst code review but it's a recent one.
We don't really do code reviews where I work unfortunately but my coworker used my framework for the first time (build some nice composer libraries for cmdline projects) and asked if I could make them do autoloading.
He never used namespaces before so I was glad to help him out.
What I saw was a dreadful mess. His project was called "scripts" so good luck picking a namespace...
Than it was all lose functions in the executable file. All those functions are however called by a class in another file (if they where not calling eachother as a cascading mess). That class was extending an abstract class from my library as instructed. However I never imagined my lib being raped like that.
The functions themselves are a horrible mess. Nothing uniform completely different style (our documentation states PSR's should be used).
Parameters counts higher than 5.
Variable names like Object and Dobject (in calling function Dobject is Object but it needs a fresh one.
If statements on parameters that need basically split it in two (should simply be to functions)
If else statement with return of same variable as a single line (sane people use ternary for that)
Note that I said functions. All of it should have been OO and methods. Would have saved at least some of the parameter hell.
I could go on and on. Do I think the programmer is bad yes (does not even grasp interfaces, dep injection, foreach loops). Is this his best work no. He said that for a one of script like this it just has to work. Not going to be used elsewhere. I disagree as it is a few thousand lines of code that others have to read too.2 -
rant="""
It's too many features for me to keep up with. And the client just bounces between this matrix of all the possible permutations of them, refusing to admit that he is asking for mutually exclusive behavior in more than one place. I have mentioned to him at least 12 times a year that there is too much going on, not organized, we need to simplify, prioritize, or we will have 100 half baked untested features.
Of course it is more or less made it out to be that this is all my fault, or at least it's hard not to feel that way when I say:
It will be a long time before X will be working, we need 25 other things first.;
Next day he asks:
Have you made any progress on X;
I reply: Now we need 24 things to be done at this rate it will be a month.;
He replies:
Ok but I need this yesterday. How about if you add a new feature Y that does everything X does without those 24 things?;
I reply: That will not work at all like X. Y is just X + 1 more feature.
He replies: Ok well I need Y so when you're done with X I need a way to do it like Y also. I just thought it'd be easier.
EASIER TO ADD MORE FUCKING FEATURES YEAH SURE THATS EASY AS FUCK YOU FUCK FUCK FUCK. He's a nice enough guy, pretty smart compared to my first few paying gigs, but wtf really? How do I come out and tell you I need 25 days and you ADD more work? This was one example.
IN TWO days he has added 12 features. And during the week has asked for 29 UI interfaces to be COMPLETELY different. This is becoming COMMONPLACE. Every week there is either a huge change, or a conversation like about that finds its way into the entire business flow inside an dout.
The worst thing is: I TOTALLY understand what he needs. I feel that HE doesn't. This weekend I spent literally HALF of his retainer on getting equipment into my hands to bring it back to find out it DOESNT WORK. Why aisn't HE doing this so I can finish the features from NOVEMBER that HE NEEDS in order to PROCESS SALES.
I've tried and tried but I just can't get through to this client what a tremendous waste of time his \"process\" is, for lack of a better word. Constant changes, contsant additions, lack of clarity, needless repetition and contradictions, constantly adding moonshot ideas to compete with every industry in the region, and not beta testing anything until something goes wrong.
Fuck this guy! His business is failing and I felt responsible for the longest time but it is clear to me that if I wanted to save his business I would have to ignore 95% of his feature requests. I ignore 50% now because of the stress in trying to determine which of the 3 different paradigms he is talking about changing. I will lose this client, and I feel like he will sue me to get all of his money back. He holds me to very little honestly - BUT WEEKLY reminds me that he won't be able to pay me next month if feature XY and Z arent ready!
If a developer is CLEARLY overwhelmed, it makes NO sense at all to continue to PILE ON feature after feature
"""
try:
while true:
rant+=", after feature"
except DevHeadExplodes as inevitable:
raise YourDevsRatesOrLookElsewhere(inevitable)8 -
Hello and welcome, to a presentation in which I will tell you my thoughts on the shortcomings of modern day computers and programming practices.
Computers are based on a very fundamental and old idea, folders, and files, a file is basically a concrete amount of data, whereas a folder is a group of files, and it comes from the real life concept of files and folders, now it might be quite obvious already that using a concept invented in 1898 by a guy called Edwin G. Seibels, might not be the best way for computers to function in the year 2020, but alas, it is.
Unless of course, you step into the world of a programmer.
A programmer’s world is much different, they use this idea of a data structure, or in simpler terms, an object. An Object is just like what you would think of as an object in your head, something with different properties that you can think about in different ways, for example your mobile phone, it has a battery percentage, it has a screen size, it has free space available. Programmers use these data structures to analyse data very quickly, like finding all phones with a screen size bigger than a certain size for example.
The problem is that programmers still use files and folders to create the programs that use these objects.
Consider this example.
Let’s say you want to create a virtual version of a drink bottle, consider what properties it will have, colour, volume, height, width, depth, material, etc..
As a programmer, you can leverage programming features and change the properties of a drink bottle directly, if you wanted to change the colour, you just say, drink bottle “dot” colour, equals blue, or red.
But if the drink bottle was represented as a file, all the drink bottles data would be inside the one file, so you would have to open the whole file, find the line or section of the file that has the colour data of the drink bottle, and select it, highlight it, delete what’s there, and type in your new value.
One way to explain this better is to imagine a folder that now represents the drink bottle, imagine adding a new file into that folder that represents each property I described before, colour, volume, etc.., well now, you could just open that folder, find the file for colour, either by looking with your eyes or you could do a file search in the folder for a file called colour, open it, and edit the value inside. This way of editing objects is the one that more closely represents the way programmers and a program itself interacts with objects inside a running programming language.
But the thing is, programmers don’t use the folder/file way of creating objects and putting them into programs, because it would be too cumbersome, they just create 1 file for an object, or have lots of objects in a file, and create all the objects in 1 file, and then run the program which creates the objects, then when they stop the program, it deletes the objects. So there is no actual link between the object in a file and the object that the program creates by reading the data from that file, if you change the object in your program, it does not get saved to the file.
So programmers created databases to house these objects, but there is still a flaw in databases, they are hard to interface with, and mostly databases are just used to send data or retrieve data from, programmatically, you can’t really browse a database the way you can browse the files on your computer. You can, but database interfaces are not made to be easily navigated the way files and folders are.
As it stands, there is no way to store objects instead of files on your computer and interact with them in complex ways the way programmers can inside the programs they create.
If the idea of an object became standard the way a file and folder is standard, I think it would empower human’s a great deal to express things far more easily and fluidly than they can today.
Thanks for reading.8 -
Meanwhile I was sitting in my Python class.
Suddenly she starts teaching about CGI Scripts and how widely they are used in these days' web interfaces.
:3
Being a web dev myself, this felt so sad.
Considering the advent of so many web frameworks that make it so much easier for the developer to ship a website, who'd use CGI scripts until it's a total nessecary.
Now , what's much worse is she wants us to write a CGI Script for making a resume generator?
I don't know what to do with her..! -
as an Android dev of a few years, I HATE iOS. Coding on XCode vs Android Studio is a nightmare. The error logs are terrible in comparison to Java. Obj-C is a nightmare. Swift is cool, I'll admit, but I could probably build better interfaces that scale per device on an Etch-A-Sketch. Instead of creating a layout in Interface Builder that worked for all devices (freakin' impossible) I instead opted to save myself some time and get a reference of the constraints and adjust them PER DEVICE. If that's not shitty code practice, I don't know what is. when I code iOS apps I feel like I'm in college again, just doing whatever the hell I can to get a project done with. the problem with mobile dev is that, when you can, you want to target both OSes. typically I do Android first and switch to iOS. I probably should do iOS first and then work on the Android version11
-
Fucking gratuitous interface changes:
In Zoom, when you leave a meeting, now it has a read 'Leave' button, and when you click on it, a second 'Leave meeting' button pops up which you have to click as well.
In Outlook, there used to be a search bar above the list of e-mails. Recently I noticed it wasn't there anymore, and it took me a while before I found it… they moved it to the title bar!
WTF are these people thinking? Seems like they change interfaces just for the sake of changing something.5 -
Java: each type is required being in a seperate file with the type's name, many of my projects have way to many files, half of them for really small interfaces or classes16
-
I made a huge mistake
I got "in the zone", I was coding so nice and fast and everything was working, so I didn't want to commit every single minute and then have to go back, cherrypick commits squash them revert them etc.
So I didn't commit anything at all... Now if I were to commit the commit would modify 2 files, create 26 new files and delete 2 files.
The changes include moving from JS to TS, implementing a desearialization scheme, implementing a server class and wrapper client classes, with common type interfaces for different requests...
So now I need to save my changes somewhere, go back to the last commit and slowly incorporate the changes.
I'm dumb9 -
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 -
That this one component being object orientated is necessary and good design.
We have uh interfaces, theyre contracts.
Spoiler: it wasn't, I could have written it in half the code and half the time. But no, we gotta have those patterns, can't miss on dependency injection!6 -
When I was taking a programming course as a Mathematics prerequisite, and then object oriented programming basics (inheritence, interfaces specifically) all just clicked at once. Immediately decided I was going to pursue the computer science major instead of math.2
-
I'm literally laughing my ass off at how Google gave their fat middle finger to Object Oriented programming with Go's Structs, Methods, and Interfaces. F*** you Java and C++! :-P4
-
Well this is the thing. I have been starting to replace a lot of my shit with Golang. I think it is a great language because of one small fact: it is a boring language.
With this I don't mean that it is not incredibly fun to use. It is and honestly I feel that a lot of the concepts that I had from C passed quite nicely with some additions. The language does not do anything special and there is no elegant code. It works in a very procedural fashion without taking into consideration any of the snazzy things found in JS, Python, c# etc etc. Interfaces and struct make sense to me, way more than oop does in other languages. I don't need generics with the use of interface parameters and I have hadly found a situation in which I have to strive too far away from the way things are done with Go to be happy with it, then again my projects are not hard or by any means groundbreaking (most of them deal with logistics or content management and a couple of financial apps that I am rewriting in Go from work)
The outcome is fast and easy to read since idiomatic go is for the most part very readable(no people...single letter variable names are by no means a standard and they should feel ashamed from it)
I miss the idea of a framework, but not so much and the docs and internal code for Go is just way top inviting. I believe the code to be readable enough than anyone that has gotten used to the syntax and ideas of the language can just jump in and start learning. This is the first language that I have learnt from studying the code as it is inside of the standard lib, the same I cannot say for any other language or framework.
Also, it play beautifully nice with vs code.
I dunno man, I feel that I am doing something wrong. I have projects built in Node, php, python, ruby and spring java as well as .net core and I still find Golang way more appealing simply because it goes harder than Python with "one preferred way" to do things.
The lang does not make me feel like a pro, i certainly develop in it at pro speeds, but it was made with beginners in mind to built fast and concurrent apps, with the most minimal syntax possible.
I guess my gripe with it is that it gets shunned from this, saying that it ignored years of lang research to make it as dumbed down as possible. Which it did, lack of generics amongst other things certainly make it seem like, but I will not say that it was poorly designed. Not at all, I believe it is a testament of amazing engineering. To be able to create such a simple yet amazingly powerful language.
Wish there were more to it. Wish there was a nice gui lib or a ml framework comparable to the ones offered by python and java. But I guess such things will come with time.
I feel stupid with this language.
And that is fine.5 -
So apparently Docker exposes all the forwarded ports on *all* the interfaces, making all running containers available to the entire internet BY DEFAULT.
I have a question:
WHY???10 -
Hey, some of you might remember a rant I posted a few days back complaining about email scores.
Well, I finished the project I needed them for and thought someone might be interested to give feedback or try and break it.
Basically, it's intended as a solution for the absolute mess our school is in before parent conference days. We're talking 3 pieces of paper per student, meaning about 3000 sheets being wasted every half year.
The beta version of the website is hosted at https://laravel.privateger.me/.
Seriously, take this apart as harshly as possible please. I'm sure there are a ton of issues I haven't seen.
The website is in German, but it should be really easy to understand even without knowing it.
If you get banned by the small protection thingy I added, tell me, I'll clear that.
Credentials here (students and teachers have different interfaces):
Students:
AbelMonika | Pass: 1emctd03m3pf | abel.monika@redacted.de
AchtertKristian | Pass: yne8ncqyzlq7 | achtert.kristian@redacted.de
AdamJanina | Pass: kakphpodpc0k | adam.janina@redacted.de
Teachers:
BerendsJana | Pass: 0829btgjnrc1wcd5 | jana.berends@redacted.de
BerqueFelix | Pass: 1p1b3zx7tzn45jm5 | felix.berque@redacted.de
BliengenMax | Pass: tuc6hd2hayixk0hn | max.bliengen@redacted.de9 -
One stubborn (but not very good) dev working on one part of new project (Windows desktop application with C# underneath) decided he didn’t like the interfaces we were agreeing for the algorithmic code.
Instead of discussing with the team (we were still very much in design phase), he made his own interfaces with the same name but in a different namespace, and in his assembly rather than in the base library. He was senior to the rest of the dev team, so when we raised our concerns he pulled rank and just carried on.
I resigned not long after that. -
Those little assholes who code the web interfaces for the provider specific router. You also can't replace it with a fritzbox or something similar.
1. Password field only
2. Password field is no password field
3. This red internet thing doesn't tell me what's fucking wrong
4. The "diagnose" says everything is alright with my internet
5. It always complains because not every device in my network supports gigabit yet (there is an old switch). No reason to show everything in fucking red imo.
6. The things it lists I have to check can be and also should be checked by the fucking thing itself. Like wtf. They wanted a lot of money from me for this shitty thing and there is no temperature sensor to check if it's too hot.
7. It just stops working on hot days... Restart manually solves it. Let's restart manually from work when I have to access my files on my NAS from fucking 40 km away..
(see comments for more screenshots)4 -
Been reading about this mess called C# 8.... WHY THE FUCKING HELL DO YOU THINK ALLOWING FUCKING INTERFACES TO HAVE DEFAULT METHOD IMPLEMENTATIONS IS A FUCKING GOOD IDEA?
Just Can't wrap my head around this stupid idea... Help me out here fellas...5 -
Wow Angular2 you are beautiful.
I loved you early on angular 1.x but by the end we drifted apart driven by our diffrent needs. I needed a manageable code base and more excitement you needed to stay the way you are. I respect you for that, but we are not right for each other anymore.
I have been hurt Angular2 i may not fully heal but you provide me with what I need. Developing on you is a pleasure that feels like a full object orientated experience. Most of all developing on you is *fast* your seperation of concerns tickles me in all the right ways. The suger you provide with your decorators, classes, abstract classes and interfaces makes me weak at the knees.
Keep growing and improving Angular 2. I think we shall have many projects together.3 -
So, my current company builds a ERP system hand has a far to complicated database with one k tables and over 2k procedures. I started working there 3.5 years ago, well, first 2.5 years were educational. But I was mostly doing support work. From time to time I was tasked to do some interfaces ( around 15 currently I think) but since a few month I am just completely fucked up and don't know what to do. I still don't really get how this fucking huge database is supposed to work. I have 2-3 interfaces alto implement at the same time. Then I should create a app to allow users to stamp the personal and assignment times. Also I was tasked to create a html5 webpage ( never did something like this before) for also stamping times and some additional data to create a service report for customers on the fly. And finally I should create a asp.net based website for a dashboard overview which should be customisabke by our customers, which I also never did before. In the meantime I also have around 10-15 support tasks a week, and I don't see myself getting anywhere near finishing anything. But I am getting constantly approached by the boss and my team leader for not really getting anything done, even though they have no idea what the other one told me to do. And my boss has no idea if time management, he asked me how long a feature of the app would take and I told him at least two days and somehow he told my colleague I would be done in 4 hours. So currently I am permanently stressed and slightly depressed and I have no idea what to do, and I am just afraid of losing my job, because I am not able to finish my tasks.1
-
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'm writing a blog series about GoLang and REST interfaces, if your interested in golang but don't know where to start give it a read https://blog.mescrocker.co.uk/golan...2
-
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 -
We use at our company one of the largest Python ORM and dont code ourselfs on it, event tough I can code. Its some special contract which our General Manager made, before we as Devs where in the Project and everything is provided from the external Company as Service. The Servers are in our own Datacenter, but we dont have access.
We have our Consultants (Project Manager) as payd hires and they got their own Devs.
Im in lead of Code Reviews and Interfaces. Also Im in the "Run" Team, which observes, debuggs and keeps the System alive as 3rd-Level (Application Managers).
What Im trying to achieve is going away from legacy .csv/sftp connections to RestAPI and on large Datasets GraphQL. Before I was on the Project, they build really crappy Interfaces.
Before I joined the Project in my Company, I was a Dev for a couple of Finance Applications and Webservices, where I also did coding on Business critical Applications with high demand Scaling.
So forth, I was moved by my Boss over to the Project because it wasn't doing so well and they needed our own Devs on it.
Alot of Issues/Mistakes I identified in the Software:
- Lots of Code Bugs
- Missing Process Logic
- No Lifecycle
- Very fast growing Database
- A lot of Bad Practices
Since my switch I fixed alot of bugs, was the man of the hour for fixing major Incidents and so on so forth. A lot of improvements have been made. Also the Team Spirit of 15+ People inside the Project became better, because they could consult me for solutions/problems.
But damn I hate our Consultants. We pay them and I need to sketch the concepts, they are to dumb for it. They dont understand Rest or APIs in general, I need to teach them alot about Best Practices and how to Code an API. Then they question everything and bring out a crooked flawed prototype back to me.
WE F* PAY THEM FOR BULLCRAP! THEY DONT EVEN WRITE DOCUMENTATION, THEY ARE SO LAZY!
I even had a Meeting with the main Consultant about Performance Problems and how we should approach it from a technical side and Process side. The Software is Core Business relevant and its running over 3 Years. He just argumented around the Problem and didnt provide solutions.
I confronted our General Manager a couple of times with this, but since 3 Years its going on and on.
Im happy with my Team and Boss, they have my back and I love my Job, but dealing with these Nutjobs of Consultants is draining my nerves/energy.
Im really am at my wits end how to deal with this anymore? Been pulling trough since 1 year. I wanna stay at my company because everything else besides the Nutjob Consultants is great.
I told my Boss about it a couple of times and she agrees with me, but the General Manager doesnt let go of these Consultants.
Even when they fuck up hard and crash production, they fucking Bill us... It's their fault :(3 -
Why do io-interfaces usually use a signed integer to return the number of bytes processed?
Like seriously, you literally can't write/read less than 0 bytes.4 -
An actual text from my CS Human-Machine Interfaces book:
"How do users react when a vending machine "eats" their money and doesn't give the product? Most likely, they will kick the machine in hopes of it returning him the money. Therefore, if we build a machine which has a "Cancel" button which returns the money in the lower part of the machine (the "kick zone") we would be improving the usability of the system a lot'
1st reaction: Wait, what the fuck?
2nd reaction: It ain't stupid if it works, I can't argue with that 🤔2 -
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 -
What do you think about my language choice set for the future (knowing I want to work as a software and app developer) ? Anything to add / remove ?
- C++: Fast and well-documented, so I think it's a standard even in the next decades to come
- Java: Although I think that this language will more likely die in the next decade, I'll maybe keep this language because some dinosaurs enterprises still rely on it. Ah and mainly because it's still widely used in Android apps programming. For now.
Talking about Android, does learning Kotlin worth it ?
- Python: Will mainly use it for automation and prototyping, but nothing more, as it seems not to be widely use in the software development field (or it is ?). I'll also keep it for hobbies, however.
- Rust: This language seems to be a rising star in the industry since it is very clean, classic, as fast as C / C++ while introducing more safety. However I'll wait a bit for this one since it requires more complicated and abstract knowledge I do not have yet.
- Javascript (or more particularly JSX): Hurts to say I'll keep it, even more than Java. I'd let it in the web development hell I won't step in if it was not used in webapps / cross-platform mobile applications. And since this kind of stuff looks trendy, I don't think I can avoid it. Plus, I liked working with React Native. Sorry.
- C#: Seems to be a must when working on Windows software interfaces, so guess I'll have to learn this one. Will do so gladly, it looks better than Java17 -
Worst part of coding lang I love?
C# being case-sensitive.
Not a C# language thing, but I hate the vilification and anti-coding standard of not 'allowing' prefixes. Interfaces are allowed (ex. IUpdateCustomer), why not classes? Why can't I have a DTO and declare it a TCustomer and the zealots not scream "HE'S USING HUNGARIAN NOTATION!!! TAKE HIM TO THE STAKE!!"?24 -
I love python, but a short way to enforce interfaces on arguments would be great. I mean, this is the third function where type checking is longer than the actual body.1
-
Hey peoples,
Have a look at my new project.
https://github.com/thosebeans/...
It's a docker container to deploy a wireguard interface.
Why would you do something like this you ask, well there's actually 2 main reasons.
1. Distributing wireguard configuration over k8s/swarm/whatever.
2. Bringing up wireguard Interfaces automatically, on systems that don't support that normally, eg. Alpinelinux.2 -
Linux networking: A tragedy in three acts
ACT 1:
Wherein the system administrator writes their /etc/network/interfaces file as is the custom.
ACT 2:
Wherein the kafkaesque outputs of basic networking commands threaten basic sanity. Behold:
```
# ifup ens3:1
RTNETLINK answers: File exists
Failed to bring up ens3:1.
# ifdown ens3:1
ifdown: interface ens3:1 not configured
```
ACT 3:
Wherein all sanity is lost:
(╯°□°)╯︵ ┻━┻)1 -
the irony appears to be that JavaScript is more consistent than rust
so let's say you want to create some enums to represent some potential values in a REST JSON payload
well you can implement Display trait but that won't determine the JSON output
you can make a as_str() method and that doesn't even make sense frankly, I guess it's not even a trait even though it's everywhere in the std library? (traits being rust's version of interfaces, so you'd think they should be consistent)
I have a halfway urge to say rust was a beloved language but then the foundations' drama made everyone escape the ship, leaving behind a mess
well evidently the answer is you use the stupid annotations:
enum Lang {
#[serde(rename = "en-US")]
EnUS,
}
well then this only works in serialization with serde. way to go.
how about if I have some JSON data that starts with numbers? I have an interval field in the REST that expects things like 1m, 15m denoting time scale
well no deal
because rust doesn't want enums starting with numbers
and here I thought rust was superior with its static typing. but I am having to rename things all the way down and nothing is consistent. this would be so trivial in JavaScript. and there's only one toString() method! and no interfaces people say you should use while nobody uses them!87 -
Why in the fuck are twilios typings so spread out and tucked away in a hundred folders? I have 8 separate imports to deeply nested directories (whose path includes fucking api version numbers) and at the end of each path are generic garbage interfaces. Autocomplete suggestions show handfuls of identical interfaces and types, and autosuggest for import paths is cut off because the paths are too long. To make it worse, they’re cut off at exactly the name of the directory for the actual resource I’m trying to get types for. It shouldn’t be this fucking hard, twilio.2
-
Recruiters with no clue (a recurring theme it seems).
Got an e-mail this morning via LinkedIn proposing a position in Zurich (Switzerland) doing customization of an application according to business needs, configuration of interfaces, gathering of requirements, 2nd level support etc.
DID YOU READ ANYTHING MY LINKEDIN SAYS? I work in storage support (doing mostly troubleshooting of FC/iSCSI issues between storage and hosts), and live in Amsterdam, and while I would like to pivot to a SW dev job, this seems to be way over my grade of experience, plus I have no desire to go living in Switzerland.
Arsehole!5 -
(On conference call with potential client)
Me: ...yes, you can interface with our system via our documented interfaces, using either JSON or XML...
Client: That's too hard. Can I just email you guys a Word doc or something?
Sales Rep: Yep, we can totally handle that, no problem.2 -
Mah noob wannabe language designer side here again...
...Idea: Automatic/implicit interfaces.
1. do you know a language that has (something like) this?
2. good idea or a bad idea? why?
3. thanks :)21 -
I find dynamically typed language a lot easier to read and understand than statically typed language.
What's up with all these interfaces, types and abstractions, its just too much!
I do want structure when writing code, but also the flexibility to test things without the f*** interface/type errors!!!16 -
Me: //trying to fix bugs
IntelliJ: hey you have 2 typos
Me: Where? I can't see typos anywhere what the Hell
Me: //looks up and down my classes/interfaces. It's my name
Me:
Me: Well isn't that delightful -
Years ago when I was a kid I was into making things to solve problems. Earlier in my life I remember as a kid seeing a neighbor shove 120VAC into the ground to get worms to come up to the surface. I also remember taking a worm and slapping it on one of the posts and shocking the shit out of myself. Apparently that lesson did not stick.
As a teenager I wanted a device similar to this. So I wired a 120VAC plug and cord to a 1/4" audio connector. I threw this in a box and forgot about it. Years later my sister went through my things looking for a power plug for a synthesizer we had. It had an audio 1/4" plug for headphones. She told me she plugged this cord she found of mine into the synth and it started smoking. She went to pull the plug out and shocked the shit out of her. I don't think that the synth ever worked correctly after that.
Well, today I was thinking fondly about that story. I mean, who wouldn't think fondly about shocking the shit out of your sister (she didn't die, so its okay). However, it was dangerous. Really really dangerous.
The lesson I can take from this memory is this: if you know a software interface (or electrical) is not safe then don't build it. Someone will try and use that shit years later and really fuck some stuff up. I have to wonder. What kind of software traps have I built in the past that are yet to be discovered?3 -
One advice I've given to most junior developers which they've practically benefited from is...
"Avoid duplicate comments between interfaces and their base class at all times".
As a smartly-lazy dev, you shouldn't enjoy writing same thing multiple times... be it code or comment, don't write it twice!2 -
This is iOS. The “Phone” label should move and transition from white to blue. But, it’s not just one label, it’s two labels on separate screens, so for this effect to work, they should be aligned perfectly.
However, blue label is off by two pixels.
Yes, to notice that you should probably have Aspergers. Yes, I do develop user interfaces.
Yes, I basically monetized my Aspergers.3 -
I've been creating my Typescript/C# projects using SOLID principles. Whenever someone randomly joins me in my projects at work, i feel they need a lot of help. Specially since they know programming, but are not familiar with SOLID.
Like ohhh ok you created a base class for that, or ohhh that method already exists in the base class sorry i've implemented it again, or ohhhh ok you already implemented this method in that class.
The more classes i create the more complicated it becomes, sometimes for me too!
I feel I have to write a documentation for the code I write just to keep up with the different, but code changes/augments so writing a doc is really time consuming.
However if i didnt create base classes or interfaces it would be less complicated to browse through method definitions.
I am happy with the code like that though, but in some specific times it's a pain in the ass.
Comments?2 -
The only really influential product Microsoft ever created is Verdana. Yes, the typeface.
It was the first typeface designed to be displayed on a screen rather than in print. Before that, there only were monospaced typefaces like we saw in terminal, or digitized typefaces like Helvetica Neue.
More than that, its looks were partly generated by an algorithm, hence the odd, alien looks. But because of it, Verdana works amazingly good in small labels. The 8pt Verdana is more readable than 10pt Helvetica.
I still use Verdana in all of my projects, religiously.
All the other Microsoft products: Windows, Xbox, Surface, Office, Azure, all that stuff — is mere garbage compared to the influence Verdana made on how our interfaces look now.4 -
Why developer of c# (Anders Hejlsberg) when developing (TypeScript) not implemented method overloading and interfaces' methods implementation with same names.3
-
So another rant inspired me.
Tell me one fact or detail about your favorite programming language, other devs not using it, might not know about.
I go with: In Delphi you don't have garbage collection, unless you use interfaces the right way.7 -
Can gamedevelopers stop using lua as their freaking scripting language..
Every time I try and figure out how tables work and think I finally get it it throws a big fuck you curve ball.
Oh and then they use json file to store the data of a table except that those json interfaces are complete retards.
If you are going to support json files then why the fuck won't you put in a small fucking inconsecential JS interperter so you can actually find some docs regarding more complex fucking docs then those simple minded t[guildName] = "guild"
Another thing, why the fuck does lua not use {} like every other langauge. I use those curly brackets to figure out where shit start and ends half the freaking time.
Fuck this I'm out for today...
And a big fuck you with both middle fingers to any dev that thinks lua is a great scripting language for plugins.3 -
I am insecure about using graphical user interfaces. E.g. IDEs, COTS systems, cloud tools, and ERPs. If I don't know what is happening inside the box I don't feel like I know what I'm doing.6
-
Even though I mainly work as a backend developer at work or in my side projects, my little pleasure is to follow instagram accounts that publish awesome interfaces and dreaming that one day, I'll get to integrate something like that
Tonight I'm trying to integrate a basic interface for a friend, it looks so gross from a 15.6" laptop computer I want to end myself -
When everyone on YouTube has interfaces that definitely do NOT appear to you :/
I was supposed to create my pixel, give it a cute lil name and then test events ( Facebook ).
But NOOO ofc I would get a ton of issues in the process, everyone is able to connect their pixels safely but it took Facebook more than what, 4 days now ? To kindly inform me that:
Server external ID not matching to pixel external ID
You're sending the external_ID parameter for your PageView event from your server, but you're not sending the external_ID parameter for this event from your pixel. If you send external_ID for an event from your server, you must send it from your pixel as well in order for that event to be valid.
How am I even supposed to know how to fix that ! I just started learning programming, the only thing I know how to do is use Linux and write a ciao mundo C program. Now my store was supposed to be launched a week ago and I am still looking for solutions to this. Ugh.7 -
Got a nice solution, part of a micro-services system. Interfaces where they should be. Single responsibilities. Easily unit testable (and plenty of tests in there).
Then the Senior rewrites things because he didn’t see the point in having interfaces and couples every layer to a shared set of objects, and those objects are now shared by all the other micro-services too. One change in one and we have to repeat it in every service. 🤦♂️4 -
So ok, today was a crazy day.
New sprint, new ticket.
Work on the bug tickets first he said ….
Sure can. Oh had I just known that this very first innocent looking ticket is the way to coder‘s hell ….
‚Access of undefined‘ it said. Easy to fix, I thought.
Until I found the very same code twenty-fucking-two times over about 50 files!
Who would guess that exportSingleOperatorBooking, exportSeveralOperatorBookings, exportAllOperatorBookings (… and more) could in practically be the same? Nah, they all use different interfaces.
Oh wait, the alias type of the extended sub-interface of file misc.ts is the same logical content as a differently named interface below another different interface with the same content as in another ts file?
Wait that can‘t be. Riiiiight?? 😳
8h later I have barely scratched the surface of refactoring this shitshow of a project.
But no, I refuse to put the same error handling multiple times in different places.
I could have been done already. I could have saved my soul, my sanity. But I will be brave and strong to save the innocent developer that will cometh after me. For I shall be rewardeth for my sacrifice.
Amen.8 -
Client and ex-Dev/manager wanted automated testing.... manager doesn't see a reason for interfaces... Still wants unit tests, and a SOLID design. Doesn't want to pay for the extra time needed. Good times2
-
There are a few constants in Software Development:
1) The requirements always change.
2) Don't trust input.
Silly me was so naive to ignore 1 and 2 and later I dealt with the consequences.
1) Oh, we have this new API and we're only going to build Google Maps interfaces with it. Nice, easy task. We won't have to address the other parts of the library, wooh! The next day: "Yeah guys, we kinda wanna use the other parts now". Me: sigh.
2) Simple task: I have my API accept CSV files so I can generate graphs out of them. What could go wrong? Provide wrong file? I caught that. Provide completely fucked up and garbled CSV? Whoops.2 -
OOP is so ass, classes that extend classes that need objects, of classes that extend classes , passend to their constructor which constructs an object to be given to a constructor of a class that extends a class that implements three interfaces. And in the end it all could have been done with a single function and all of these classes get used a single time.19
-
A lot of this might be an assumption based on not enough research on both NestJS and TypeScript, so if something here is not well put or incorrect then please feel free to provide the necessary info to correct me since I care far more about getting dat booty than I do being right on the internet :D
Sooo, a year or so ago I got a hold on the Nest JS framework. A TypeScript based stack used to build microservices for node. Sounded good enough in terms of structure, it is based on the same format that Angular uses, so if you use Angular then the module system that the application has will make sense.
I attempted (last night) to play with the framework (which I normally don't since I am not that much of a big fan of frameworks and prefer a library based approach) and found a couple of things that weird me out about their selling points, mainly, how it deals with inversion of control.
My issue: This is dependency injection for people that don't really understand the concept of dependency injection. SOLID principles seem to be thrown out of the window completely due to how coupled with one another items are. Literally, you cannot change one dependency coming from one portion to the other(i.e a service into a controller) without changing all references to it, so if you were using a service specification for a particular database, and change the database, you would have to manually edit that very same service, or define another one....AND change the hardwire of the code from the providers section all the way into the controllers that use it....this was a short example, but you get the gist. This is more of a service locator type of deal than well....actual dependency injection. Oh, and the documentation uses classes rather than interfaces WHICH is where I started noticing that the whole intention of dependency injection was weird. Then I came to realize that TypeScript interfaces are meeheed out during transpilation.
Digging into the documentation I found about custom providers that could somehowemaybekinda work through. But in the end it requires far too much and items that well, they just don't feel as natural as if I was writing this in C# or Java, or PHP (actually where I use it the most)
I still think it is a framework worth learning, but I believe that this might be a bias of mine of deriving from the norm to which I was and have been used to doing the most.3 -
We're talking about coding standards and someone on our team wants us to avoid the protected keyword because it allows for variable shadowing.
The lead architect wants to avoid levels of inheritance whenever possible; trying to keep only Interfaces and Implementations (and he names all of the Implementations with the same class name plus "Impl").6 -
I'm thinking of designing a programming language.
I want it to have easy to read syntax like python. Inheritance and interfaces like java. More advanced concepts like pointers and memory management like c++.
I was originally going to write my own compiler but I figured it's not worth reinventing the wheel. So the current plan is to basically just create a parser that turns a source file into c++ code and then that is compiled with g++. The only problem I can think of with that is catching runtime errors.
How does this language sound?
My purpose is to have a language that is as easy to read as python but with the speed of a compiled program and the ability to use it for embedded projects. I feel like reading larger C++ projects can be quite time consuming. So I figure the trade off of taking a little longer to write the code to make it more obvious what is going on is better than having a lot of syntax that can be tough to walk though the logic of (I find this often with c and c++, not like I don't figure it out but It definitely takes longer than it does to read and understand python)4 -
Generic arguments can't be cast. List<Dog> can't be cast to List<Animal>, because any methods that take Dog as an argument would suddenly have to work with an Animal (same works the other way round with return values).
But there are many situations where this would be okay. For instance, a Date can be cast to a String, so if we know that no method directly or indirectly accessible from a ListView<T> (including accessible property and field setters) will ever take an argument of type T, then ListView<Date> can be cast to a ListView<String>. Conversely, if we know that methods of StreamWriter will only ever take arguments of the generic type and interact in ways that don't change the object, then we can safely cast a StreamWriter<String> to a StreamWriter<Date>.
There could be a pair of generic constraints signifying that the type only crosses the interface boundary in one direction. I think this would be an interesting feature, but I don't know any strict type system that allows it. What do you think?25 -
(TL;DR at bottom)
Does anyone else feel that modern GUI's or webpages or anything thats 2-D and modernized, just seem to contain 10x less data that old interfaces.
Disclaimer: First time uploading picture, idk how it will go)
Let's say Google's Inbox, compared to the old Gmail interface... (In attached picture)
I am the only one annoyed by this?
I really like the look and everything and I love modern designs, but please please, keep the functionality there. I just feel like there is 10x less options to do when I see a system converted to a new modernized design. Even YouTube look ugly now, that I am convinced there are about 10 buttons less under each video.
(New <-> Old in attached picture)
Thinking objectively, all of the buttons are still there, but from other experiences, I just always get discouraged when I see a product with a minimalistic design, and am immediately turned away from it, expecting that I wont have any sort of ability to customize my settings.
If you say that fancier GUI's take too much work to make all he settings, the fucking don't make a modern GUI... I want something I can tailor to my needs... There is always a good line in between, just like "old" youtube's design...
Maybe thats why I hated LastPass with it's fancy GUI's and instead preferred KeePass for my passwords...
As promised:
TL;DR
Anyone else hate modern GUI's since they usually lack features?3 -
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 -
I have working on a new website for a client that interfaces with their internal systems, meaning we must collect the data fields required by the client. A look over the designs reveals such huge inconsistencies in the data input that we may as well not have bothered designing it.1
-
I need cyclic data structures but algebraic data types are my first love and tying the knot is impossible with the eagerness F# has. The interfaces and classes I abandoned C# for are the ones I am now writing in F#. What a job well done on my part in avoiding mutability :(6
-
I know this is utopic, but I've been thinking for a while now about starting an open source platform for figuring out the problems of our society and finding real world, applicable, open source solutions for them.
To give you some more details, the platform should have two interfaces:
- one for people involved in researching, compiling issues into smaller, concrete chunks that can be tackled in the real world, discuss and try to find workable solutions for the issues and so on
- one for the general public to search through the database of issues, become aware of the problems and follow progress on the issues that people started working on
Of course, anyone can join the platform, both as an observer (and have the ability to follow issues they find interesting) and/or contributor (and actually work with the community to make the world a better place in any way they can).
Each area of expertise would have some people that will manage the smaller communities that would build around issues, much like people already do in the open source community, managing teams to focus on the important thins for each issue. (I haven't found a solution for big egos getting in the way yet, but it would be nice if the people involved would focus on fixing stuff in stead of debating about tabs vs spaces, if you know what I mean).
The goal of this project would be to bring together as many people from all kind of fields to actually try to fix this broken society.
It would be even better if it attracted people with money and access to resources (one example off the top of my head being people like Elon Musk) that could help implement the solutions proposed by the community without expecting to gain profit off of it (profit is also acceptable if it is made in a considerate, fair and helpful way, but would not be promoted on the platform).
The whole thing would be voluntary work; no salary, no other commitment than the personal pledge that once someone chooses to tackle something, he/she will also see it trough (or at least do his/her best).
The platform would be something like a mix of real time communication, issue tracker, project management tool and publishing platform.
I don't yet have all the details for how it should all fit together, but if there is something that I would like to start, this is definitely it!
PS: I don't think I can ever do something like this by myself, and I don't really have the time to manage a community of developers to start work on it right now. But if you guys think something like this is something worth your time, I will make time and at least start on defining the architecture and try to turn this into a real project.
If enough people are interested, I will drop any other side projects and do my best to get this into the world!
Thank you for reading :)6 -
ATTENTION PLEASE! Important announcement following:
Please check your interface implementations for correct byteorder according specification BEFORE YOU START COMPLAINING ABOUT DATA FAILURES ON EXCHANGING DATA.
Freakin hell, if I'd get some money for every byte order mismatch on testing interfaces, I'd be a be a billionaire.
And why are all those highlevel I-know-every-fucking-framework developer incapable of checking the real memory content of a datatype, and the real data content on the interface even if you tell them that their byte order is obviously wrong?
No, your system is not the centre of the universe and I don't care how you get your less-than-32bit-datatypes-are-for-assembler-usage-frameworks to change byteorder. It's not rocket science, if there's no ready-to-use-function then write those 4 lines yourself.
Next time I get to specify an interface I'll go for mixed-endian, just to make sure everybody involved knows the concepts of endianess afterwards.2 -
I bought BMW recently and the engineers who designed it did a phenomenal job. The one oddity though, there are up and down arrows on the steering wheel representing next and previous, except that down is next and up is previous. It's so counter intuitive and I wish they would standardize button interfaces or produce guidelines everyone would stick to.8
-
Hi. Quick question, I came across a rant that described the best tools for a designer to help developers be on the same page for the prototypes. Can you guys suggest some? I remember there was one that shared the same exact hex color or code for UI/ux interfaces between designers and developers.6
-
@dfox & @trogus
Any chance of the tablet versions of DevRant to have rotatable interfaces? I always keep my iPad on my Smart Cover which is in landscape. -
I'm building an app with Cordova and everything was working great, tested on multiple devices and everything worked perfectly. Until my boss called me to say that some interfaces don't work on his phone. Needless to say Android 4.3 doesn't like the "new" syntax of flex and just tells me that I can fuck off. Well Android fuck off too.2
-
Swift is such a horrible language now that I am actually using it. You have protocols that don't behave like interfaces, classes that aren't objects, structs that aren't passed by reference. And stupid counterintuitive generic grammer. I feel scammed.1
-
Understanding vulgarised politics and psychology, it showed me good examples to understand some design patterns or concepts like interfaces...
-
Having a hard time thinking the alternates to if statements is a good idea. I was genuinely curious how this was done. The examples I am finding seem to just spread the logic everywhere across multiple objects. To me this makes the logic objectively less clear. I didn't understand the obsession with objects until I saw the examples that creates a fuckton of boiler plate objects. How someone can say this is preferred over a few if statements boggles my mind. I actually am trying to understand the functional mindset as well. It is not going well for me. I can sorta see some value in using a map. Technically a lookup could be faster. But again it spreads the code all around adding more boilerplate.
https://blog.bitsrc.io/reduce-if-el...
https://dev.to/phouchens/...
Is it because these are contrived examples? I initially searched to find ways of reducing ifs in a functional approach. I did find it in the second example. I was however hoping to find that by lazy eval or something. I see people making references to how one you "get it" functional logic is easier to understand and evaluate. I cannot tell if this is straight up gaslighting or my brain is just too fucking imperative.11 -
Speciality: Conversational interfaces / NLP
Why I chose it: It appeared to be the only area where my previous academic background (Law) was relevant, so they didn't consider me to have 7 years of blank on my CV.2 -
Me: “I think I’ll check linkedin today”
Clicks on video: “... good perspective on growth and blockchain micro service apis that leverage ML models for understanding interfaces that welcome scalability within a agile environment...”
Me: *jumps out window*1 -
Hahahahaah
https://kotaku.com/eve-online-facin...
I always thought a redesign of the economy was in order making several interfaces to allow automation and removing the wow like game controls making it instead a flight combat sim7 -
I miss functions that do stuff.
Just a simple logic piece that does the stuff it wants to do. Without classes, objects, interfaces, frameworks or configurations.
I mean, yes, wrapping the functions behind the implementation of an indifferent interface is usually a good call.. As long as it stays simple.
But it rarely does, doesn't it?5 -
Adding a new feature to a mobile app that has a bunch of classes for getting URLs! Want some examples?
FallbackUrlProvider
CompositeUrlProvider
CompositeRouteUrlProvider
CompositeBaseUrlProvider
RootUrlProvider
I was half expecting to find FallbackRootBaseCompositeUrlProvider!
Not only that, but there were a load of interfaces that sometimes didn't match the name of the class!!!
For example,
class RootUrlProvider : ICompositeUrlProvider
Ugh! But I managed to get the new feature in... Somehow... After trying something... Throwing it away... Trying something else... Throwing it away...
😭😭😭3 -
ok found the object orientated guide but for rust which is functional spaghetti: https://howtocodeit.com/articles/...
it has moved into architecture
... and actually makes a good case for interfaces / traits. generally in languages I just used generics to get around limitations of having to type a lot / duplicate code, and I'd remove interfaces because they're annoying to have to deal with, but I can see this be useful for once now.
like you can start a prototype app with files as a database then move to a small database type then later a more monolithic big data one and all that would be through one trait the whole time. so you could anticipate natural progressions of an app, instead of having to build the last version you can put jank behind interfaces and then switch things in and out to test new technologies which does actually give me a lot of relief for my newfound anxiety of me rewriting my rust codebases because I get some small things wrong. I've been coding in circles due to it and I have several saved files that are out of date now but I don't want to delete and they make the compiler mad cuz I had no interface boundaries as such and now stuff has changed somewhere else in the app and by God pls argh
this also means you can code "top-down". in carl Jung typology that's Te and most programmers are Ti-types so they do the little details and then sort of glue everything together (?) but not everybody thinks this way. I naturally think more top-down, which works for more dynamic languages and is annoying in static languages because then you're just fighting semantics and your earlier work the whole time (actually this is a surprisingly good write-up on the different thinking types: https://bothsidesofthetable.com/the...)
wheeeee -
Those 'HR tools'. 'Workforce Management'.
Once the company commits to it, they stay in use long after their interfaces have become clunky, their features outdated. Pretty bad UX.
Expense reports. Time Sheets. Leave Applications.
I'm looking at you, Kronos. >.< -
I got to thinking it might be nice to have my own personal fingerprint reader. I could carry it with me and hook to my work computer for tasks such as sudo and login. At home I could login. I figured there ought to be some nice cross platform devices... Oh hell fuck no. Its all Windows shit. Most of them say windows 10 and usually say don't work on Linux, Mac, or Android.
So I think I am going to hack my own:
https://amazon.com/FlashTree-Optica...=
https://amazon.com/Seeeduino-Smalle...==
I have a 3d printer that I can use to enclose this and make it look nice and personalized. I can embed any kind of functionality I want to make this work.
Manufacturers: STOP MAKING SHITTY WINDOWS ONLY HARDWARE!7 -
Yeeehaw,
i finally get rid off that over-the-top dependency on Zend\Config in upwork/phystrix
The Pull-Request is on it's way:
https://github.com/upwork/phystrix/...
After 4 years of "this will take minutes to refactor" and "yeah. I totally agree. Replace Zend\Config with Array Interfaces", someone (in this case me) took finally care of this easy to solve issue :)
I hope it will be merged soon into the master branch -
Make your code available for your team members, please.
So we're working on this robotics project using ROS, a framework that enables multiple nodes in a network exchange their functionality among each other through tcp connections. Each node can be implemented and executed on your own machine, and tested with dummy inputs, but in collaboration they make a robot do fancy stuff.
The knowledgebase needs data from the image processing unit, providing this data to others with semantic context to high level planning, which uses this semantic data for decision making and calling the robot manipulation node with meaningful input, to navigate the robot's components in the environment. We use a dedicated machine, which pulls the corresponding repositories and is always kept configured correctly, to run each node, such that everybody has access to each other's work when needed.
So far so good. We tried to convince the manipulation guy (let's call him John) to run his code on our central machine, not a week, but since the first day, 5 months ago. Our cluster classification has been unavailable for 2 months, but my collegue fixed that. We still can't run the whole project without John's computer. If his machine blows up we're fucked.
Each milestone feels like a big-bang-test, fixing issues in interfaces last-minute. We see the whole demo just moments before our supervisors arrive at the door.
I just hope he doesn't get hit by a truck.2 -
Never used Emacs in batch mode, did it today to transform some code generated by struct2ts (convert Golang structs to Typescript classes/interfaces).
I won't rely on sed/awk for complex stuff ever again, is much pain in the ass for me tbh.4 -
Reading a book on React and how data/changes flow one way... down.
Oh hm... sounds different...
Then after an hour or more it goes oh yeah, you can pass children callbacks.
OH WTF!!!! That's like every single language (passing the parent itself as an Interfaces), Android Fragments, Node/Express, Async finding)
That's pretty much MVC?3 -
Is there a mockup/authoring system for linux that I can use to mockup gui interfaces? I want to be able to create pages of screens with button that link to other pages. I first want to use this to document out current app. Then I want to use it to create a new version so that others can review the approach I want to take.
I am first looking at libreoffice because you can draw primitives very easy. It has a scripting backend as well. I had used authoring systems years ago (20 years) on old black and white macs. I have not seen systems like that in a while. Searching for authoring systems for linux brings up a lot of web based ones. I don't want to mock it up on web if I can help it, but it could work if it did relative links to html files in the same directory. That way any browser would work.
I really just don't know what the state of the art tools used for this. Probably using terms I don't recognize.5 -
Java Background "Use interfaces for model classes"
We should basically write the getters and setters in an interface. Programming against interfaces is a pracitct that is undisputed a must. But using interfaces for your model class c'mon. -
How much of a red flag is it if a programmer gets concepts like interfaces and classes, but when asked what an interface is, can't give me a straight answer?8
-
Can someone explain to me Java lighting...
There log4j, slf4j, logback. Some are interfaces, others are implementations.
What is the setup so I can basically wit one and forget, or upgrade with the jar amount of code changes?
I need to upgrade log4j 1 to 2 and they changed the package name and how to init it....
Now it's logging.log4j.
And correct me if I'm working, Logger logger = LogMagager.getLogger(Clazz.class)
Does the log4j.properties need changing as well?18 -
I'm a Newbie to networking, and currently trying to understand this Network and Identifying the IPs for which interfaces.
I'd love to know which IP address is for the captured Router interface, etc. Which IP is the address of the captured interface n2.
How do I approach to solve this Problem?2 -
Hate getting a project that's 4 hours to slice 3 full page PSD interfaces, have all assets created, and have the site live and fully functional. Wtf?
-
Using a library that is a wrapper around an API, seems to work fine and I can connect to the api with my credentials.
Cue me, a responsible dev, wanting to use Dependency Inversion using the library's interfaces so that I can mock them easily in tests.
var test lib.IObjectManager = lib.ObjectManager{}
Error: Return type of method 'GetA' is A and should be 'B' according to the interface!
Error: Return type of method 'GetE' is *E and should be 'E' according to the interface!
Clearly nobody ever tried to use that interface :/ -
Dear Java, I don't care about your tight rules and patterns; I just want the data.
Do I want some values from some far, hidden-away objects? Oh no, I can't, because I must respect the OO contracts between those objects and interfaces and type safety and blah dee bla.14 -
A mind computer interface that acts like an extension of my psyche. Allows information access, tool access, and gets rid of mundane interfaces like keyboard and mouse.
I would like this interface to be non-intrusive with the ability to remove. I would hate for it to mess with my driving. In that case it would be nice if it overlay-ed data for a hud while driving. Like just having the speed be an overlay would be nice.
I wonder if such an interface would make our already lazy mental skills even lazier? Or would it invigorate our learning?2 -
How do you think about unit testing/TDD when writing apps? (I'm working this at 3am so might be a bit messy... Just a thought I woke up to).
Whenever I write an app, I don't write unit tests but as I'm developing I may create test functions for specific parts that I run to validate a specific component is working before moving onto the next.
So first, when I get a problem, break it up into components based on the requirements. It's usually sort of input, processor, output sequence.
Where the processor is essentially the core app. And so I start coding it, referring to the input thru an interface, model objects, adding fields as I go along (assume no matter what the input, I will get these before the logic is called). I may add some more interfaces as well for other data I may need but I know won't be going in the first input.
So I write all the logic, functions needed to get a basic app to run that does what I am writing the app for.
Only then do I write a test functions passing in different parameters to make sure the logic and response is what I want and making fixes as necessary. At that point I basically have the simplest version of the app.
(I guess this is sort of like mocking?)
Then build outwards implementing and testing components as I go along and may do some simple refactoring/redesign. (I guess all these tests are functional then, have to start the whole app).
And finally when I have the basic requirements fully complete I will add the "nice to haves" on top via refactoring of specific logic in specific components. Again testing by running the app maybe with simple inputs.
I guess now I'm thinking how do you write unit tests/TDD if the app keeps changing (via adhoc refactorings) as you are creating it? -
It's interesting when I go back to old code that I haven't touched in awhile that calls an external library, I have new questions like "why can't it ..." then discover that it can... Just that the original usage was incorrect.
Sometimes generalising to interfaces is the problem...2 -
Our manager is in tons of meetings all the time. He sees himself as our architect, and he has read and approved code reviews. Yet when he does get time to code and submits his own massive weekend coding binge pull requests, they're often entirely different from everything we've written to this point.
Instead of trying to be consistent with the work we've currently done, he continually argues any comments we make in the code review. I want to be like, "If you wanted it this way you should have designed it this way instead of giving us a bunch of empty class files an interfaces with terrible names." -
!rant
Interview prep question. My understanding now is, at least in theory is: always use SOLID. I've never really understood it explicitly though I think I follow it a lot in practice, just naturally...
But when I usually program I'm kinda of in between... I don't automatically default to it.
Particularly, I don't always create interfaces, at least not in the first pass unless I know or expect many different implementations of a certain component... Or just because I need some class that does X but haven't quite thought of the implementation.
But I have never created an interface with like only 1 property or method... Kinda feel that's overkill...
I tend to follow DRY more I guess...
What's everyone thoughts on this stuff? -
Why is it so hard to find a way to make nice frontend on Visual Prolog. I trully hate interfaces that looks like Windows vista.1
-
Spend 1 hour learning to configure networking interfaces via command line on an ubuntu VM for home use.
Can't ping anything.
Double check /etc/network/interfaces, restart box, check loopback interface functions, check physical cabling.
Realize that VM is attached to a separate virtual switch.
Virtual switch is tagged for Vlan 2, connected router is a flat topology.
Face palm. -
After couiple of hours (Yes, apprently it's insane how hard is to add a new NIC to a linux machine and make it start on boot), I finally got my connexion working !
Story :
Server has original MB 1Gbits card. Internet connexion is 1.1 Gbps. So 1Gb card only picked at 940 Mbits download
I bought a 2.5 Gb card (new nic)
Pluged it in : Nothing
Couple of ifconfig -a etc, bring device UP : Yeah working !
Reboot : Nothing
/etc/interfaces : nothing
And why it's not eth0 and eth1 etc as before but some thing cryptic like enp3s0.
Well, at least now everything working (Apperently there is a new "network plan" config file in yaml... what a waste, DO FUCKING JSON YOU RETARDS)
Ping is awsome tho ! Same cable on windows Machine, I get 5 ms.4 -
Hey guys,
I´m trying to create a generic class, which inherits from an Interface, which is also an generic.
My problem is to instantiate the interface with the correct type, cause the new class should use all classes from the instantiated interface.
Is this possible? It´s a bit complex ^^ but that´s just my thought :)3 -
I feel compelled to figure out how to use software in a gaming setting to teach skills like CS and Math. But do it in a way that is fun and not feeling like a "math game".
I want to spend more time learning about algorithms, architectures, design approaches, etc. Writing such a game would force me to understand what I present in a very intimate way.
I can see a way to create algos in game using very visual ways. Then allowing someone to make superstructures combining those algos to solve tasks.
I was inspired by how some algos require data to be sorted a certain way before starting. As the algo as a side effect resorts the data to know when it has completed. I realized if an algo is generic enough it can be combined just like functions or objects.
I also want to learn math better, especially in conjunction with code. So making a platform for learning these would be a lot of fun. I would definitely want both visual and textual interfaces to the code. I have to imagine a real programmer being frustrated with a visual interface unless it was really compelling.
I find it interesting that a lot of algos are represented visually when trying to show how it works. I realize some probably cannot be visualized so easy though.
I also want to use software like this to teach someone to think more deliberately and help people be more disciplined in their thinking. I know I could use this.
I have a secret goal of being able to use such software to help someone become a math/programming wizard. I don't know if this is achievable, but having exercises that help solidify root concepts in a fun way would be really useful IMO. -
I have become very fond of React, but the pushback I've experienced when suggesting typescript is crazy.
I think this is the reason why so many enterprise apps are written in Angular. Type safety isn’t a crutch, it's a tool. Plus, interfaces are a dev time construct, and will not bloat the codebase since it doesn’t transpile into js.
But Ts also gives us a lot of other goodies that allow for cleaner design patterns and a better adoption of oop principals.
Also, generics/constructor types, whatever you wanna call it, are your friends. An Array<SomeEntity> or SomeEntity[] will give you peace of mind I’m so many scenarios.
Anyway, I have bitched enough.
Rant over.
Have a wonderful Christmas, everyone.
Ps. This isn’t aimed at anyone in particular, but a the react community as a collective. :)3 -
Maybe you people will like this story.
The past semester I studied Java in class. First time doing object oriented programming, I had an annoying teacher but got the hang of it. I still miss C from the last year.
As a final project we had to do any program and apply some stuff we saw in class (The program should have an array list, use interfaces, bla bla bla bery simple stuff). It also must have a complete documentation, a manual and a diary explaining what was developed every week. Bonus points if it was in a repository like GitLab.
I wanted to do an RPG game in a matrix, like a rougelike or an old FF game, that should be a map or two, a few monsters and items and that's it. Enough to show what can I do and to have enough excuses to apply everything that the teacher asked. I had a team with two friends who wanted to do the same.
After making accounts in three different pages that apparently would help us to be more organized (One to make charts and two task trackers) I lost all patience and made an account in GitLab, made the basic classes that we had defined in a chart, divided the tasks and put them in to do on GitLab and we started to work.
One of my companions caused a lot of problems. First, he didin't wanted to learn how to use GitLab (I simply asked them to do merge requests) and he insisted to use GitHub. Then he started to say that using the console version was even better (Pretty sure he said thet he never used Git, but maybe was gas poisoning). The GitLab repository never had a single commit to his name.
BUT WAIT IT GETS BETTER all the entire time, he was complaining about the graphical interface of the game, wanting to use some SDK for RPGs that he found. I told him that we will see that at the end, that first we should have all the mechanics done, test it in ASCII in the console and then, if we have time, we will put the visual interface, separated and optional from the main program to avoid problems.
After two weeks where he gave me very simple standard stuff late, half done and through Google Drive, I discovered he was most of the time working on... the graphical interface SDK! He took the job already done by me and the other guy and making a pretty hardcoded integration with the graphical interface and making everything that he tought it would be necesary. Soon enough the GitLab repository was totally outdated and completly useless. He had the totallity of the project in his half broken laptop, and sometimes he gave us a zip with all the code, outdated after a few minutes. Most of the stuff that I made was modified, a lot of the code was totally unknown to what it was and I had no idea even of how the folders were organised.
We had a month to finish it. I got totally disconected from the project and just hoped for the best, sometimes doing a handful of generic and adaptable lines of code for a specific thing (Funny enough, many core mechanics were nonexistent). The other guy managed to work more on the project, mostly fixing the mess that the guy did: apparently he didin't read the documentation of the SDK and just experimented and saw tutorials and tried to figure out how to do what he wanted.
Talking about documentation: we dont had yet. The code wasn't even commented propely. We did all that the last week and some stuff was finished the last night. The program apparently worked but I had no idea.
Thank God, the teacher just looked over everything and was very impressed by the working camera and the FF tiles. I don't think he saw the code or read too much of the documentation, much less when I directly wrote how I lost all access to the project.
I had a 10/10. I didin't complained. Most easy and annoying ten I ever had. I will never do a project with that guy. -
Rant("
I wonder if Orchardcms with its great idea to replace the mvc pattern with an mpvchds pattern (model part view controller handler driver shape) should inject dependencies of IHateble, IBullShitService and IFuckingFuckshitCMS Interfaces.
");2 -
So. Question: is service-oriented architecture a web/network "thing" or would it take actually be of some benefit to an installed app?
I ask because we build on a framework that, for the most part, has pretty good interfaces and is specific on how things need to be implemented in order to work. However there are (g)rumblings within sad frameworks working group that they are going to switch over to "Service-oriented Architecture" which to me just sound buzzwordy. We are an installed desktop app.5 -
With the prospect of copying and pasting the same method 23 times looming ahead of me, I begin to wonder if maybe my predecessors didn't understand the point of interfaces
-
Hi, so currently in my Java course, I'm learning about abstract classes. I noticed how a method in an abstract class can use an access modifier, however, interfaces don't use them.
In addition to this, I noticed that IntelliJ didn't give me an error stating that adding an access modifier was redundant or useless. So I wanted to know if there is a point in adding access modifiers to abstract methods.
Thanks so much for anyone who can help me out with this!1 -
So we have to do a final project for a course in groups of four people. The project's about multimodal user interfaces and physical computing. Apparently they decided to randomly assign the groups. No biggie, I thought. So once we got in touch with each other, it turns out the three other people had a lot in common.
1. "I'd prefer to take care of the design and visual stuff, coding isn't really my strength"
2. "I don't know python, but we can use it as long as I don't have to touch the codebase"
3. "Do we have to use git? It was so hard the last time."
Come one, you're 3rd/4th year students with quite a lot of studies in java/scala, how hard can it be to grasp the basics of python.
It's gonna be long two weeks... Oh well, it's a learning experience.1 -
My most consistent enemy at work is this fucking system I have to work in, holy shit. Not only is there no default support for shit you would really think there should be, no real control over the interfaces with the UI, and the far too complicated method they use to magically make said interfaces, but we also have to use their build environment to build this shitty thing. So builds take anywhere from 4 to 12 minutes a pop and ridiculous style guide will stop the build, no questions asked, for dumb violations like spaces between if and (. And it doesn't catch these, sometimes, until 7 or 8 minutes in. I have wasted so much time on this. And seeing as we work in 2 week sprints that are really 7 to 10 day sprints based on whatever hair goes up my bosses ass and have to deliver feature complete in those two weeks, I can't really afford all this nonsense. I used to joke about having an alcohol problem, but I think I actually may be developing one at this point.
-
So it's a basics question I know, but is the main difference between abstract classes and interfaces is just that you can use non-abstract methods in abstract classes but not in interfaces ??3
-
Some background:
About 2 months ago, my company wanted to build a micro service that will be used to integrate 3 of our products with external ticketing systems.
So, I was asked to take on this task. Design the service, ensure extendability and universality between our products (all have very different use cases, data models and their own sets of services).
Two weeks of meetings with multiple stakeholders and tech leads. Got the okay by 4-6 people. Built the thing with one other guy in a manner of a week. Stress tested it against one ticketing service that is used in a product my team is developing.
Everyone is happy.
Fast forward to last Thursday night.
“Email from human X”: hey, I extended the shared micro service for ticketing to add support for one of clients ghetto ticketing systems. Review my PR please. P.S. release date is Monday and I am on a personal day on Friday.
I’m thinking. Cool I know this guy. He helped me design this API. He must’ve done good. . . *looks at code* . . . work..... it’s due... Monday? Huh? Personal day? Huh?
So not to shit on the day. He did add much needed support for bear tokens and generalized some of the environment variables. Cleaned up some code. But.... big no no no...
The original code was written with a factory pattern in mind. The solution is supposed to handle communication to multiple 3rd parties, but using the same interfaces.
What did this guy do wrong? Well other than the fact that he basically put me in a spot where if I reject his code, it will look like I’m blocking progress on his code...
His “implementation” is literally copy-paste the entire class. Add 3 be urls to his specific implementation of the API.
Now we have
POST /ticket
PUT /ticket
POST /ticket-scripted
PUT /ticket-scripted
POST /callback
The latter 3 are his additions... only the last one should have been added in reality... why not just add a type to the payload of the post/put? Is he expecting us to write new endpoints for every damn integration? At this rate we might as well not have this component...
But seriously this cheeses me... especially since Monday is my day off! So not only do I have to reject this code. I also have to have a call now with him on my fucking day off!!!!
Arghhhhhh1 -
Stop putting your interfaces all inside a folder called "Interfaces"! If I'm looking for the interface for CheckoutService, I don't want to browse through every interface in the application to find it.
I also shouldn't have to import a namespace solely for an interface. Ideally, the interface will be in another project, but under the same namespace as its implementation, in most cases.
Do you see Microsoft putting their interfaces in a folder called "Interfaces"? There's probably a reason they don't.3 -
If I could create laws, I would pass a "software usability act" which would eliminate many annoyances we face daily.
For example, the law would mandate range selection in file managers, mandate time-stamped file names in camera and voice recording apps, and require that browsers open a new tab next to the currently open tab instead of at the end, and all user interfaces must have a dark mode to reduce eye strain, and all operating systems must have a blue light filter, text editors must create a temporary copy when saving to avoid corrupting the existing file, camera applications should not corrupt the entire video file when ending unexpectedly (crashing), cancelling file operations must not cause data loss ( https://support.google.com/photos/... ), no mandatory pull-to-refresh ( https://chromestory.com/2019/07/... ), to mention a few examples.
Mobile file managers commonly lack a range selection feature (also known as shift selection or A-to-B selection), where all items between two selected items of a list can be selected immediately. ES File Explorer had this in 2012, yet many fancy new file managers still don't have this. To select many items, each item needs to be tapped individually. This is an unacceptable annoyance.
This is not to be confused with the inferior drag-to-select which requires holding the finger on the screen until all desired items are selected. Drag-to-select is not range selection, only its ugly stepsister.
Ah yes, under the imaginary software usability act, Mozilla would have to say good-bye to its evil add-on signing. "For our protection" my arse.13 -
Somewhere in out application backend we generate a simple bullet chart. But in the most complicated way possible.
We call a web service to retrieve it(yes, a simple bullet chart). The service requires some parameters, and the code that generates them is hidden behind a wall of interfaces and abstract methods (the best and apparently only way to get to the actual code is to debug it).
However, one of these parameters is very well visible and it is a string with (uncommented)javascript function that manipulates the resulting chart, adding some final touches. With hardcoded values etc..
Dear programmers, I know we should avoid reinventing the wheel, but sometimes we should stop and consider the possibility, that we are using the wrong wheel and in completely wrong/obscure way. Thank you.
Yours WhoeverWillMaintainTheCode3 -
Visual Studio's intellisence recommending me NOT to use
ISomeService = new Service() and just Service coz the latter is faster (these are non-DI services)
is giving me a wierd anxiety. I'd prefer to stick to exposing Interfaces just as a convention but the constant💡is killing me :v
//I know the actual performance difference is neglible, but retarded mind still focuses on it even if I dont want it to2 -
My dev superpower would be to grok interfaces and be able to easily explain, to anyone who asks, their function and purpose (in 140 characters or less).1
-
I am a product designer. I can create nice interfaces for any project.
I currently do not have a job right now. I will be gratful if someone helps.2 -
Holy fucking shit, I hate ubuntu SO much.
So what it happened..
I was tryin to set up an Ubuntu server on my machine using virtual box, and I know what you are thinking, "VirtualBox?" yeah its the only machine I had lying around and it had windows and I didn't wanna re-format its hard drive.
So Here how it goes...
Install went fine.. But when I was trying to manage multiple network interfaces, it was Terrible & pain in the ASS 😡...
So initially I needed 2 network interfaces, one for NAT adapter and another Host-only interface for SSH and stuff.. so I made changes in virtualbox settings and rebooted the VM. and it stuck on "a start job is running for wait for network to be configured" I was like okayy and removed host-only adapter and rebooted, it booted fine :/ then I tried combo of bridged adapter with my Ethernet and a host-only adapter, and what? it booted finally! but this wasn't an optimal solution because it had and IP address within subnet of other devices with my router and half the bandwidth (like 50mbps or something).. I reverted back to NAT network & I checked with ifconfig and it STILL didn't had an IP address assigned to it for Host-only adapter!! FFS I deleted the VM and reinstalled the whole thing again but this time both interfaces attached..
after installing it stuck on same shit again :'(
"a start job is running for wait for network to be configured"... FUCK!
after about an hour of troubleshooting and trying different configurations, I still couldn't get it to work.. I never had such problems with centOS.
Fuck you ubuntu.. fuck you in the ass7 -
Angular and is best friend RxJs are too over engineering and far from the concept of 'keep it simple, stupid'
But just a moment they're both use typescript to design there interfaces ... maybe that is the fucking reason for that !2 -
//Not meant to be a rant
I'm doing the doc for a uni project and IDK how to comment our interfaces (not talking about the methods - I can get my way around those) (it's a pair work and my colleague told me to do the doc because I type faster than her 😛 I don't really mind tbh). What should I write as a description of the interface, everything I think about sounds stupid LoL
For example: there's an interface for an activity (which requires 3 arguments to create an object Activity). Do I simply go like
/ * *
* Activity
*
* ( we have to put our names )
* /
Or should I write something more/else? Any tips?
This is bugging me all the way to hell and back -
Intelligent Development class (yeah, that's how it's titled), teacher leaves us as first task to develop our own Database, because later we will make it a fuzzy database.
She gave us three days. Three (counting me) in the team. I began working on Interfaces (Java development) and so on, using GitHub for VCS and documenting each method.
This assholes didn't even ask what was missing or what should they do. One day before date, I told them "Hey, I think I can nail the underlying file management tonight, so, work on the language parser, please"
Stood awake until 1 A.M., waiting for their reply, but there wasn't any.
Next day, I'm the only one of the team and I tried to decline the presentation of my work, but a friend encouraged me, because it was my work and I worked hard.
Presentation went better than expected.
After the class, I have another with one of my team members, he asks "How did you do?", "Us? You meant me, because the other prick didn't go".
And that's all, not another single question nor explaining why did he didn't answered the DM's I sent.
Fuck those guys, fucking team of shit, I hate it when you can't pick your team, but I guess that's just a common place for all of us here, isn't it?3 -
i always get sucked into this "cute code" hell whenever i am working with a b2c codebase, and especially with kotlin code.
here's a scenario:
task : build a debounce logic for an input view where each user input is currently triggerring an api call.
my steps
1. read what debouncing is.
2. see if any code is available on the internet
=> found a code piece on the internet with some level of abstraction ( basically a simple final class that implements the input event callback and encapsulates the debounce logic)
3) copy it, run it , it wokrs
------
for any sane coder, these steps are hardly 10-30 mins and they can move on with life. but its your truly that made this task into a 6hour research only to come up at similar solution. my curiosity led me to stupid places
1) why this class is final? what if someone else wanna use it but with a different behaviour? lets try open(non final class) .
2) why even use a class? it extends an interface, lets try to wrap the logic in interface itself (kotlin supports interfaces that don't require implementation)
3) umm , the interface works but it looks ugly, with all its global overridden variables. what about we make it extension?
4) yeah the extension approach is also not very good, lets go back to open class.
5) but extend is super nice to look! lets keep the extension and open class too
6) can we optimise the implementation? why it uses an additional handler? what if we provided everything in constructor? how about builder pattern?
FUCK MY BRAIN! there are so much fucking options that i forgot that i spent 4 hours on this small thing
the simplest approach would have been tk just shove all the listeners and everything in activity and forget about it :/
senior devs on this platform, how do you stop yourself from adding every concept that you know into the smallest possible task?6 -
You know when I think back to the ideas I've had and the things I've worked on. I'm having difficulty, with the exception of certain far out projects that were like unattainable, in thinking of anything I've done or thought of that does not involve: data visualization, data gathering, encryption/obfuscation, inventory/storage and/or communication.
am I just unimaginative ?
I did have an idea for a code translator and how it would work and what interfaces you'd have to adopt and how you'd attack implementing things that don't translate well like c++ to js for example. or c++ to c# for that matter ! but I never got far into it. though that would have been attainable as long as you had easy ways of generating bindings.
i mean pathing and navigation were things I thought of too but... that would pretty much be implementing someone else's stuff4 -
I have watched a couple of videos on YouTube talking about Elm. It is a language used to develop user interfaces. It has a very organized ecosystem (unlike JS) and it is pretty cool to code with. Static typing, everything is immutable, etc...
For those who have worked with it, is it worth learning? I would love to know your experience.1 -
Node server with webpack poly fill on embedded device. Why 😂 .
Replacing node-fetch with node http instead of waiting for native node fetch API. Why 😂
All npm scripts on package.json are dead. Why 😂
Node server is not even sharing TS interfaces with frontend.
Customers are complaining about MeM0r1 L3k and let's build more features on stupid node.
Fucking kill me.1 -
I want to make a program that interfaces to a game window and plays the game for me :P
I could do it.
with ocr and object recognition !11 -
I think I hate interfaces
I get the purpose behind them, and I understand why they're best practice in most OOP situations.
But goddamn it makes me groan when I change a parameter in a method and then find out I have go do the same in the interface as well.7 -
Why are there so many template languages? Do people enjoy them? I certainly don't.
What is the problem with just using functions? E.g. using https://j2html.com/ or http://www.lihaoyi.com/scalatags/
You can do code reuse with functions, for-loops, classes, interfaces etc.
Why are they avoided in Spring, PlayFramework and similar? -
After meet emacs, I NEED keyboard shortcuts even for visual interfaces and chill apps. Even, for apps like Telegram, WhatsApp, Magnet (Windows Manager for OS X), Photoshop & Illustrator among others.1
-
How do come up with good names for classes and interfaces? Mine always seem stupid and I want to change them, but cant think of anything better.2
-
rant.author != this
Christ people. This is just sh*t.
The conflict I get is due to stupid new gcc header file crap. But what
makes me upset is that the crap is for completely bogus reasons.
This is the old code in net/ipv6/ip6_output.c:
mtu -= hlen + sizeof(struct frag_hdr);
and this is the new "improved" code that uses fancy stuff that wants
magical built-in compiler support and has silly wrapper functions for
when it doesn't exist:
if (overflow_usub(mtu, hlen + sizeof(struct frag_hdr), &mtu) ||
mtu <= 7)
goto fail_toobig;
and anybody who thinks that the above is
(a) legible
(b) efficient (even with the magical compiler support)
(c) particularly safe
is just incompetent and out to lunch.
The above code is sh*t, and it generates shit code. It looks bad, and
there's no reason for it.
The code could *easily* have been done with just a single and
understandable conditional, and the compiler would actually have
generated better code, and the code would look better and more
understandable. Why is this not
if (mtu < hlen + sizeof(struct frag_hdr) + 8)
goto fail_toobig;
mtu -= hlen + sizeof(struct frag_hdr);
which is the same number of lines, doesn't use crazy helper functions
that nobody knows what they do, and is much more obvious what it
actually does.
I guarantee that the second more obvious version is easier to read and
understand. Does anybody really want to dispute this?
Really. Give me *one* reason why it was written in that idiotic way
with two different conditionals, and a shiny new nonstandard function
that wants particular compiler support to generate even half-way sane
code, and even then generates worse code? A shiny function that we
have never ever needed anywhere else, and that is just
compiler-masturbation.
And yes, you still could have overflow issues if the whole "hlen +
xyz" expression overflows, but quite frankly, the "overflow_usub()"
code had that too. So if you worry about that, then you damn well
didn't do the right thing to begin with.
So I really see no reason for this kind of complete idiotic crap.
Tell me why. Because I'm not pulling this kind of completely insane
stuff that generates conflicts at rc7 time, and that seems to have
absolutely no reason for being anm idiotic unreadable mess.
The code seems *designed* to use that new "overflow_usub()" code. It
seems to be an excuse to use that function.
And it's a f*cking bad excuse for that braindamage.
I'm sorry, but we don't add idiotic new interfaces like this for
idiotic new code like that.
Yes, yes, if this had stayed inside the network layer I would never
have noticed. But since I *did* notice, I really don't want to pull
this. In fact, I want to make it clear to *everybody* that code like
this is completely unacceptable. Anybody who thinks that code like
this is "safe" and "secure" because it uses fancy overflow detection
functions is so far out to lunch that it's not even funny. All this
kind of crap does is to make the code a unreadable mess with code that
no sane person will ever really understand what it actually does.
Get rid of it. And I don't *ever* want to see that shit again. -
Anyone know any tools for quickly creating interfaces for APIs? Like if I have a list of posts, I want to display them as a list with title and content.18
-
I‘m currently working fulltime in IT, i would say as a business analyst/ requirement engineer. I do this job for 2 years now and its no fun for me because its only interfaces we work on.I am also studying software engineering in the evenings.
At the UAS programming is really fun for me and seeing progress instead of only interfaces really makes me happy..but i am scared to not have skills for starting as a developer fulltime and get called dump or something like this. Do you guys have any advice for me? Is it ok to start as a junior directly after UAS? -
A web app (recruiting system) with two interfaces، in a holiday (2 days), without any other information.
No one wants to answer your question because of holiday.
Somehow it worked fine after the holidays, but I redeveloped the system in 3 weeks. -
As I understood the Adapter pattern, you start with two given (!) interfaces that are incompatible, create a class that implements one interface, and has the second interface as a property. Then the methods of the implemented interface wrap the calls to the interface referred to from the property.
Everything is fine with that.
Now I wonder, why every other class in our code base is suffixed with "Adapter". There is some external thing to be used, like a file storage, a message queue, an email service or just something outside of the system. But the class that makes use of that external interface is made up on our own, no interface given.
So I think Adapter is a misnomer, because we do not adapt thing A to thing B, we just use thing B and call it from some class.
What are your thoughts on that?5 -
Tried moving over to Fedora only to notice the goXLR audio interface doesn’t work on Linux tried some unofficial drivers but you need to run those in the vm or whatever to get it to work.
So question, does anyone know of any audio interfaces similar for Linux with some sound channel rockers potentially.2 -
I was watching an Ancient Aliens episode called "Beyond Roswell". The show described the idea of some of our tech being seeded slowly by introducing alien technology to specific companies. They suggested that computing technology has advanced very fast and introducing this tech could be part of that.
At first I was kinda pissed about this. I have read about the creation of the first transistor back in the 40s or 50s. WWII really advanced our need for computing devices such as what Turing built. Then I realized a lot of the explosion of computer tech did occur after key ET events. This kind of made me wonder how much is "us" and how much is ET tech. I also realized it can take a lot of effort to understand something really advanced. So reverse engineering can take a LOT of effort to figure these things out. Being seeded by external tech does not take away from humans at all.
A parallel to this is a programmer that learns how to use a C++ compiler. They could go their whole career without ever understanding how the compiler itself is doing its job. I find myself wanting to learn how compilers work and started down this path. I look at the simple grammar I have learned to parse. Then I look at the C++ grammar and think "How can I ever learn to do that?" So I see us viewing potentially advanced things and wondering how the heck can we ever learn to do that. The common reaction when faced with such tech would be disbelief and in some cases ridiculing the messenger. When I was a kid the idea of sending a picture over a phone was laughable. Now this is common and expected. It was literally a scifi concept when I was a kid.
So, back to the alien tech. I am now thinking it would be cool to be working with alien technology through computing. This is like scifi stuff now! So what if what we have was not all invented here (Earth). If anything this will prepare us programmers to get jobs working for alien corporations writing ship level programs and brain interfaces. Think of it as intergalactic resume building. 😉 -
OOP question: Can someone fucking explain to me what does it mean to hide complex implementation behind an interface?
Also whats the point of using interfaces when you can define methods in an abstract class and just override them in subclasses in order to get class specific implementations?18 -
#Suphle Rant 6: Deptrac, phparkitect
This entry isn't necessarily a rant but a tale of victory. I'm no more as sad as I used to be. I don't work as hard as I used to, so lesser challenges to frustrate my life. On top of that, I'm not bitter about the pace of progress. I'm at a state of contentment regarding Suphle's release
An opportunity to gain publicity presented itself last month when cfp for a php event was announced last month. I submitted and reviewed a post introducing suphle to the community. In the post, I assured readers that I won't be changing anything soon ie the apis are cast in stone. Then php 7.4 officially "went out of circulation". It hit me that even though the code supports php 8 on paper, it's kind of a red herring that decorators don't use php 8 attributes. So I doubled down, suspending documentation.
The container won't support union and intersection types cuz I dislike the ambiguity. Enums can't be hydrated. So I refactored implementation and usages of decorators from interfaces to native attributes. Tried automating typing for all class properties but psalm is using docblocks instead of native typing. So I disabled it and am doing it by hand whenever something takes me to an unfixed class (difficulty: 1). But the good news is, we are php 8 compliant as anybody can ask for!
I decided to ride that wave and implement other things that have been bothering me:
1) 2 commands for automating project setup for collaborators and user facing developers (CHECK)
2) transferring some operations from runtime to compile/build TIME (CHECK)
3) re-attempt implementing container scopes
I tried automating Deptrac usage ie adding the newly created module to the list of regulated architectural layers but their config is in yaml, so I moved to phparkitect which uses php to set the rules. I still can't find a library for programmatically updating php filed/classes but this is more dynamic for me than yaml. I set out to implement their library, turns out the entire logic is dumped into the command class, so I can neither control it without the cli or automate tests to it. I take the command apart, connect it to suphle and run. Guess what, it detects class parents as violations to the rule. Wtflyingfuck?!
As if that's not bad enough, roadrunner (that old biatch!) server setup doesn't fail if an initialization script fails. If initialization script is moved to the application code itself, server setup crumbles and takes the your initialization stuff down with it. I ping the maintainer, rustacian (god bless his soul), who informs me point blank that what I'm trying to do is not possible. Fuck it. I have to write a wrapper command for sequentially starting the server (or not starting if initialization operations don't all succeed).
Legitimate case to reinvent the wheel. I restored my deleted decorators that did dependency sanitation for me at runtime. The remaining piece of the puzzle was a recursive film iterator to feed the decorators. I checked my file system reader for clues on how to implement one and boom! The one I'd written for two other features was compatible. All I had to do was refactor decorators into dependency rules, give them fancy interfaces for customising and filtering what classes each rule should actually evaluate. In a night's work (if you're discrediting how long writing the original sanitization decorators and directory iterator), I coupled the Deptrac/phparkitect library of my dreams. This is one of the those few times I feel like a supreme deity
Hope I can eat better and get some sleep. This meme is me after getting bounced by those three library rejections -
In the dynamic realm of software development, where the user interface meets the complex machinery behind the scenes, Back-End Expertise https://sombrainc.com/expertise/... emerges as the unsung hero. As businesses increasingly rely on digital platforms to connect, engage, and transact with their audience, the prowess of back-end development becomes paramount.
At its core, Back-End Expertise refers to the specialized knowledge and skills required to architect, build, and maintain the server-side of applications. While the front end dazzles users with intuitive interfaces and captivating designs, the back end silently weaves the intricate tapestry that ensures seamless functionality, robust security, and optimal performance.
The Back-End Symphony: Orchestrating Digital Harmony
Imagine a symphony where each instrument plays its part to perfection, creating a harmonious melody. Similarly, in the world of software, the back end orchestrates a symphony of databases, servers, and frameworks, ensuring that data flows smoothly, operations execute seamlessly, and applications respond promptly to user commands.
Back-End Experts are the virtuosos who write the code that makes applications tick. They delve into the intricacies of databases, crafting queries that retrieve and store data efficiently. They architect server-side logic, meticulously designing algorithms that power functionalities ranging from user authentication to complex business processes.
Security as the Forte: Safeguarding the Digital Fortress
In an era where data breaches loom as potential threats, Back-End Expertise becomes a formidable fortress. These experts implement robust security measures, safeguarding sensitive information and ensuring the integrity of digital ecosystems. Encryption, authentication protocols, and secure API integrations are the tools of their trade as they create digital bastions against cyber threats.
Optimizing Performance: The Need for Speed
User experience hinges on speed, and Back-End Experts understand the importance of optimizing performance. Through efficient coding practices, load balancing, and server-side optimizations, they strive to minimize latency and ensure that applications respond swiftly, even under heavy user loads.
Future Trends: Back-End Evolution
As technology evolves, so does the landscape of back-end development. Cloud computing, serverless architectures, and microservices are shaping the future of back-end expertise. Back-End Experts must adapt to these trends, embracing new tools and methodologies to stay at the forefront of innovation.
In conclusion, Back-End Expertise is the backbone of digital experiences. While users interact with the front end, the magic unfolds behind the scenes, where Back-End Experts craft the architecture that defines the reliability, security, and performance of applications. Their alchemy transforms lines of code into seamless digital experiences, leaving an indelible mark on the ever-evolving landscape of software development.1 -
Does anyone know of interesting interfaces which can be used for text based adventure python game?8
-
My new project is going to enable business to do IT work via intuitive interfaces and eliminate the IT team dependency at all.
It's not AI/BOTS/ROBOTS/ML that will replace us, we ourselves are our own enemies 🙄12 -
Here are few questions that you could expect when attending a Java interview
1 - In which programming paradigm Java 8 falls?
2 - What is MetaSpace? How does it differ from PermGen?
3 - What are functional or SAM interfaces?
4 - What are static methods in Interfaces?
5 - What are the various categories of pre-defined function interfaces?2 -
Writing javadocs for interfaces with quite complicated methods all day is so fucking exhausting. Programming itself is so much easier than documenting the written code clearly and precicely so that everyone understands it.
-
So on saturday I download vscode, I also installed the PlatformIO IDE so I can do esp8266 development. At this point I thought I had everything I needed. Later that day I was in a place where there is no internet. I started up vscode and went to create a new project using PlatformIO in vscode. It started having internet connection issues.
I am not used to my IDE interfaces needing network just to operate. Really dissappointing.
Does VSCode require internet to operate?2