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 - "extending"
-
One of my colleague took 3 week vacation leave. End of vacation time he requested for extending the leave. Company is not allowed him, so he send resignation email. After 1year we get to know in vacation time he already joined new company. I asked him why, he said "That three weeks is trials. If nothing workout he planned to going back to old company." 🤨4
-
“Fullstack dev continues to unleash his terror.”
We were in a meeting the other day discussing how we can integrate our React component with other existing systems easily — other React apps, Ionic, Angular, Vue and vanilla HTML.
All of a sudden, he opens his mouth.
Fullstack dev: So the thing is... it’s like...ummm... (he always starts after with these words. Always) since Ionic and Vue are both “angular-based”. It shouldn’t be a problem.
Me: excuse me! What do you mean vue is “angular-based”? What’s vue gotta do with angular?
Fullstack dev: You need angular installed to run vue apps and you have data binding in vue and in angular.
Me: (fuck me dead) I don’t know what that means, but I know what the Rock is cookin’. (My exact words in the meeting)
They flew him in from India and they keep extending his stay. He’s been working on the project for 2+ years now.
More to come!26 -
!dev
!!misery
I'm drunk, so it's time for some faux-emotional, blunt oversharing. and lots of profanity. It won't be pretty.
------
I'm miserable. I can't sleep at night. When I finally manage to, I sleep like crap. In the morning, early, I get woken up by my children screaming or pulling my hair or jumping on either the bed or me, or talking ad furore, or any number of other miserably unpleasant things that completely prevent sleep. So I'm tired every single day, which totally surprisingly makes focusing on work fucking difficult. Doubly so because the work is fucking uninteresting and the code is awful to read and difficult to understand because it's complicated and often poorly written. And extending it takes enormous mental effort I simply do not have to give. Oh! Guess what my job is?
To make matters worse, time to myself basically does not exist, ever. I wake up, I attend standup, I cook and eat breakfast, I work while fighting against endless distractions and interruptions, I cook and eat dinner, I work some more, and finally: I can go to bed and try to sleep. The next morning, I wake up and repeat this misery, ad nauseam.
Et ad nauseam? Nauseam est nunc.
It's not proper latin, but fuck you. it's good enough. and nobody speaks it anyway.
Ego sum miseriae. Is that good enough for you?
I can't find it in myself to care about anything. I've been doing whatever I can to feel a little more normal, but mostly I just feel numb. If I drink, it helps a little because I notice my misery a little less. That's a great solution right there: drink until I don't care anymore, and keep doing the same shit without even trying to make things better. Why? Because I fucking can't. I hate this house, I hate the lack of quiet, I hate this city, I hate the dust and the clutter, I hate this state, I hate this codebase, I don't like my coworkers, I hate that I can't get a fucking thing done without spending 6x longer than it should, I hate that I can't fucking think of a single thing I want to do, I hate that I can't ever enjoy anything, I hate that I'm beginning to hate myself, and I fucking hate everything else, too.
In short:
I'm not happy. I'm fucking miserable.
And no, I'm not posting this here for you to psychoanalyze me or suggest solutions. It's for me to vent. Fuck your opinions and fuck your advice and fuck you.29 -
When you realize the legacy PHP code you're working in has a class you're extending with over 2000 lines and you think, "Nope, this isn't a class, it's a university."2
-
"Mature codebase"
"Our entire team are senior devs"
"Almost everyone that worked on the project is still here and available, so nothing's lost! We can ask whatever we need to."
You would think this would mean the code was clean and easy to read, and you could ask the person who wrote it for help. But. no. It's kinda the opposite.
Here's an example:
I'm trying to write a mailer, and I have no freaking clue how to get it working. I talked with two of the more senior devs, and both assured me it was very straightforward, and then walked me through the quite complicated mailer structure and got lost. The first pretended not to, but glazed over a few holes in his tour, and said I could figure the rest out. The second one ended up admitting that he's totally unfamiliar with it -- his last commit on a mailer was from about 8 years ago -- and doesn't know how to get it working anymore.
So, I'm on my own.
I wrote a super basic mailer for debugging (no idea if/how it actually sends a mail, but I think I can construct one?). But whenever I call the mailer, it gets run twice? Somehow? Apparently I need to start a bunch of daemons to get that part of the system to work. Which is cool because they don't work fresh out of the repo. Got some further help, and now my ostensibly working code throws errors for an undefined var that i'm not even using, and to make it easier: without a backtrace. joy! There's so much inheritence and extending and including going on that it's going to take me hours to track this down. ugh.
I'm keeping my paystub in front of me for some desparately needed motivation.13 -
The code is a freaking mess. Shared behavior, terrible variable/method naming, misleading module naming, dynamic polymorphic spaghetti, whitespace errors, no consistency, confusing even if you understand what the code is doing, ... . It should never have passed code review. It probably wasn't code reviewed.
The comments are sparse and useless. Quality level: // This is bridge.
The documentation does not exist.
Testing steps for QA are missing several steps, including setup, so actually using the feature is bloody challenging. If one thing is wrong, the feature just doesn't show up (and ofc won't tell you why).
The specs for the feature are outdated and cover only 4 of 19+ cases. And are neigh useless for those 4.
The specs for the report I'm fixing don't even check the data on the report; it just checks for one bit of data on each row it creates -- a name -- which is also the same on each row. gg.
The object factories (for specs) are a mess, and often create objects indirectly, or in backwards order with odd post-create overwriting to make things work. Following the factories is a major chore, let alone fixing or extending them.
The new type has practically zero test coverage.
The factory for the new type also only creates one variant -- and does so incorrectly.
And to top it all off: the guy who wrote the feature barely ever responds. If he does, he uses fewer words than my bird knows, then stops responding. I've yet to get a useful answer out of him. (and he apparently communicates just fine, according to my micromanager.)
But "it's just fixing a report; it'll be easy!"
Oh, fuck off.8 -
I just love refactoring :) that feeling when an agonic 50loc method with ifs, loops, streams, other shit shrinks down to 3 lines with descriptive and SRP-compliant method calls.. When you can actually read code as a nicely written story. When there are no rubbish comments, cryptic variables and no overly complex if-else skyscrapers jamming all the logic in one conditional chain. When all the abstractions are designed so nicely and design patterns applied so perfectly that extending either of the components is as easy as a walk in a park.
When everything is nice and neat. Only then can I sleep well and enjoy the autumn :)
just some random thoughts after today's coding session :)5 -
Am I the only one that gets fucking pissed when others write unnecessary <div>s?
I know sometimes it's necessary for styling, but my coworkers do it because it's easier to add a new div than extending the style of an existing element.
What's worst, when I do it they reject my PR saying to create a new div instead. Fucking fuck off.5 -
The overreach by a single company near or close to near monopoly on the internet is beyond bone chilling.
To be precise, I am talking about Google extending its reach by forcing people to use AMP in the webpages.
I get insta furious when i see my favorite webpages using them and effectively my entire browsing activity on that page is happily recorded for clicks and ads.
To just bypass that i have to unnecessarily add more and more addons to lock them out of my browsing which in turn WEAKENS my entire browser.
And sincerely saying, this sort of outreach is becoming really annoying. Because plain JS and Cookie Blocking will not work. and slowly people are running out of options.
If posts about AMP are being made earlier, I apologize.8 -
Honestly remote work allowed me to stay productive but to make it more better:
* I usually isolate myself from the rest of the family so I can focus on work
* Taking breaks between sessions so I don't over-exert myself.
*Calming music (I don't know how calming Symphonic Metal is but it is to me)
Other than that, these are just my ways to keep myself efficient, aside from the additional setup my home setup needs which are a new external keyboard and a additional monitor (I use a laptop)
Additional notes: If you get burnt out too easily, try not extending your sessions for a entire day, you'd risk being devoid of motivation easily8 -
Boss: some consultants worked on this feature extending some legacy code
Boss: it's 90% done
Boss: they used FTP. It uses iframes and we fired them when they couldn't get the frontend modules working in sync with the backend.
Me: git checkout -b herewegoagain
git diff-tree --no-commit-id --name-only -r 666w3wl4d
*copy output list of files to sublime text 3; select all lines; add to each:
gitk --follow [filename] > src/.notes/herewegoagain/[filename].diff
*examines....
Me: It's -10% done. you'll know I'm almost done when I enter the fugue state. You'll find me at this address. Give me this USB stick and a 4 pack of redbull and I'll do the merge.6 -
So I know this mobile dev at work that refuses to get 'modern' with the times, i.e. using git to commit and still insists to this day, to use his sodding USB stick to copy his files into. He also point blank refuses to write any tests and wonders why bugs crop up constantly. He then blames the QAs for not finding these bugs in previous versions!
He was given the aim to 'learn and start using git' in his review for the past 4 years but somehow always gets away with never achieving them and extending it another year by sidestepping around his boss and only books those meetings in with HR so he can tech-waffle at someone who doesn't understand a word he's saying..11 -
If you're making a game, dont start by thinking about your inventory system. Start by thinking about what you want your player to be able to DO, the cost of those things, and the constraints.
For example, ages of empires didnt have you worrying about unit equipment at all. every villager could do almost any job. while survival games, especially survival horror, like the recent RE remake, severly restrict inventory and stack sizes to make resource managenent more important.
Games like Fallout had list based inventories because lists are cheap, and it allowed a tighter interaction loop. players would loot. go into inventory. close container, onto the next container, keeping the player in the exploration loop longer. neoscav did the opposite *for effect* harkening back to diablo, but taken to the nth degree: *everything*, actions, combat, exploration, character design, all based on an inventory-style grid.
while games like rimworld and dwarf fortress have your inventory represented by zones where items are physically *stored* in stacks on the ground, extending the concept of base management to resource management through physical layout and build optimization.
its important to think about what kind of actions you want players to be able to do, and the kinds of challenges and constraints you want on them at each point of the game and each mechanic they engage in.
other examples, though terrible, include fortnite, where the limitations of competitive play had inventory limited to a resource system and a hotbar. while earlier battle royale and sandboxs games like rust and battleground induced tension by combining loot mechanics and grid inventories with the constant danger of competing players, allowing them to have richer inventory systems at the risk of frusterating players who frequently died while managing their inventory. meanwhile in overwatch, notice how the HUD changes to best represent the abilities of each character.
all in all it is better to stop thinking of inventory systems as a means to an end, and instead as the end representation of desired mechanics, or artificially selected representations for particular effects.
this applies likewise to ui and ux in general. because the design of interface is fundementally about the design of *interactions*, and what you want to enable a user or customer to *do* will ultimately drive those interactions.6 -
I've made the json protocol. It's a protocol containing only json. No http or anything.
To parse an json object from a stream, you need a function that returns the length of the first object/array of all your received data. The result of that function is to get the right chunk of the json to deserialize.
For such function, json needs to be parsed, so I wrote that function in C to be used with my C server and Python client. I finally implemented a C function into python function that has a real benefit / use case. Else you had to validate but by bit by the python json parser and that's slow while streaming. Some messages are quite big.
Advantage of this protocol is that it's full duplex.
I'm very happy!36 -
I prefer functional style programming because it is easier to me to think in modules and functional hierarchies than it is object style shierarchies.
All in all, languages like F# and Clojure have always been fascinating to me. I wish I could find a use case for Haskell, but I can't. If anything F# is awesome to me because I already know .NET and really dig the entire framework, the strides made by Core are outstanding.
I had tried Scala before and just couldn't get into it. Far easier to just stick to Java even if I hate the idea of extending classes all over the place.
Ocaml is interesting too, but I know little to nothing about it, and Elixir looks far too much like Ruby for my taste even if I do like Ruby.
Choice is good, but sometimes overwhelming14 -
Who thought Lua was a good idea for extending gameplay functionality??
It's weakly typed, has no OOP functionality and no namespace rules. It has no interesting data structures and tables are a goddamn mystery. Somebody made the simplest language they could and now everybody who touches it is given the broadest possible tools to shoot themselves in the foot.
Lua's ease of embedding into C++ code is a fool's paradise. Warcraft 3's JASS scripting language had way more structure and produced much better games, whilst being much simpler to work with than Lua.
All the academics describing metatables as 'powerful extensionality' and a fill-in for OOP are digging the hole deeper. Using tables to implement classes doesn't work easily outside school. Hiding a self:reference to a function inside of syntactic sugar is just insanity.
Nobody expects to write a triple-A game in lua, but they are happy to fob it off to kids learning to program. WoW made the right choice limiting it to UI extensions.
Fighting the language so you can try and understand a poorly documented game engine and implement gameplay features as the dev's intend for 'modders', is just beyond the pale. It's very difficult to figure out what the standard for extending functionality is, when everybody is making it up as they go along and you don't have a strongly-typed and structured language to make it obvious what the devs intended.
If you want to give your players a coding sandbox, make the scripting language yourself like JASS. It will be way better fit for purpose, way easier to limit for security and to guarantee reasonable performance. Your players get a sane environment to work in and you just might get the next DOTA.
Repeatedly shooting yourself in the foot on invisible syntax errors and an incredibly broad language is wasted suffering for kids that could be learning the programming concepts that cross all languages way quicker and with way more satisfying results.
Lua is hot garbage for it's most popular application, I really don't get it. Just stop!24 -
Fuck this I need to ventilate.
Thinking about job change because maintaining and extending 3 years old codebase (flask project) is FUCKIN exhausting. It was badly written since start by someone who obviously didn't know much about python. (Going by commit history.)
Examples:
- if var != None / if var == None
- if var is not None / if var is None (well..)
- Returning self-parsed obscure JSONs from dict variable
- Serializing dictionaries into database by str() (both sqlalchemy and mysql support JSON format) - THEY ARE ALMOST UNUSABLE OTHER WAY AROUND (luckily, python can deal even with that)
- celery tasks, the way they are called they BLOCK the whole flask (not bad in itself, but if connection breaks there are no errors, nothing it just hangs)
- obscure generator/yielding that contains return of flask's response in itself
- creating fifteen thousands of variables one by one where they would look so nicely as dict keys, and hey they are then both MANUALLY SERIALIZED into returning dict by "%s" (string formatting) [okey, some of them are objecst like datetime but MATE WTF]
- many, many more, PEP lint shall not pass
I would rather deal with fresh startup owners wanting me to program unicorns in one week then trying to extend and manage zombie-like projects.
Nothing personal against the firm I actually like the place.3 -
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 -
First Happy new year, now lets get put on the dancing shoes... (I have another one coming, but this one is fresh)
As a PHP developer (yeah I am and I like it, if you gonna hate on me... go fuck yourself) I expect to not be required to reinvent the wheel when I have to use something that is not too mainstream (in my case was producing JSON and XML HAL responses). Now there are 2 (fairly active and somewhat mature), one of which does not produce XML responses, so off I went with the other one, but for fucks sake it does not produce XML that is compliant with the (draft)RFC (https://tools.ietf.org/html/...)
So as I need that, I decided to write one myself, since extending the one that provided XML would've been a waste of time, since it is NOT documented and for some reason depends on about 4 packages (also developed by the same maintainer), why the whining you ask, eh? Well fuck this shit. It took me 2(+2 classes) to achieve everything (according to standard as far as I can tell) + went with using a "hydrator" as opposed to reflection (the lib used reflection and didn't care too much for the access modified on the property of the object being serialized) so got a pretty solid performance boost, cleaner and simple code (I wrote it for a few hours and it is ugly, but hey KISS and it works perfectly)...
So with the more ranty part of this rant... Why the fuck so many people don't write independant packages for the simple parts... I don't hate it when I need a package and end up downloading half of the codebase of symfony or whatever fancy framework the dev decided to use, wasn't it the point of having 'package managers' (composer, npm, etc.. you get the deal..) instead of promote our projects and not force others to use our favorite framework that is absolutely out of scope for their projects...
Fuck you, fuck me and fuck everybody... If this continues I will continue writing my own packages from scratch, because "you" asshole are too lazy to learn and apply SOLID and common sense; even if your life depends on it you cannot write a meaningful piece of code without "the fancy framework of the month" holding your hand and allowing you to continue being a dumbass that has enough brain cells to walk straight and remember that you have to go to the toilet and not shit all over the place....
FML.... Fuck this shit and that is the main reason my gears grind the most when I head "you should use *framework name* instead" or "don't reinvent the wheel", fuck that guy I refuse to work my ways around a framework in order to get things done, my boss aint happy for that shit you know, I don't get paid to deal with your crappy code or uninformed opinion..3 -
Everytime I am developing an API (from scratch, not when extending an old one) I try to return 418 HTTP error code in places that aren't yet developed or mainly when something that shouldn't have happened did actually happened. (example: failed non-essential assert, yes python)
So it's always lighter on lungs seeing people running around with wtf.png faces when their browser says "I AM A TEAPOT".2 -
Had a call with my line manager today about extending a deadline to the end of the year. Given the work needed it’s a given as I’m having to pretty much refactor an entire app, plus I also suggested that I train the new guy to give him some experience as I have training and tutoring experience.
It’s the first time I’ve gone “Here’s what I want and here’s what I need for this to work” and it went smoothly.
Great day. -
Guys, seriously, i dying from writing documentation. I'm frustrated and bored to the hell. But i need it for others. How to keep my mind fresh and excited? Just looking inside Leximo and see how much i need to write. https://repository.cartio.dev/lexim...
I need a coffee.16 -
How do you get over the bad times? I keep having to work with shitty legacy systems that were written in perl and flash in the 90s, but my boss keeps telling me "No" on redoing some of the bigger stuff even though it is really needed. I mean, that is your goal here, right? Rebuilding this POS? FFS you still stored passwords in plain text twoo weeks ago! But no, you's rather dig around in Perl than upset some random user because his fucking interface looks different.
But then I also have to work with another system that I could redo in Cake/Laravel in two weeks (it's literally getting and writing data to one table, so two views and user auth), and the previous dev just... made a huge mess. I mean, why would you need to post data asynchronously when it's this one stupid form ? Just do a regular form submit? And the system is really not suitable for extending, because everything is in the database, EVERYTHING! Like, html form inputs? So to add a simple input to the template I have to create a new input type in the types table and then add that to the form structure table? Only to have the input checked by fucking regex? REGEX! Why? Seriously, this is not some high end CMS that needs this level of code reusability No. This is a simple fucking form.
And I can't get it to work. No documentation of course. No comments, either. All of this makes me feel like I'm just the shittiest dev ever. I feel dumb, and useless. Haven't turned on my private PC in weeks because I see no reason to work on any of my own stuff.
I used to have a job, working with Magento and Wordpress. And yeah, it was horrible, it was chaos, but it was fun and I was great at it. I bent that motherfucking system to fit my needs. People respected my opinion, they were convinced I could program this and that, and I proved them right. Did I make mistakes? Hell yeah. Did I give up? Fuck no!
But now, I just feel like I can't even write a simple fucking form any more. I'm just so close to giving up on development as a whole, even though I love it so much.5 -
If you've ever tried using Go plugins raise your hand.
If you've ever tried doing plugins in Go, raise your hand.
If you think that the following rant will be interesting, raise your hand.
If you raised your hand, press [Read More]:
This is a tale of pain and sorrow, the sorrow of discovering that what could be a wonderful feature is woefully incomplete, and won't be for a very long time...
Go plugins are a cool feature: dynamically load pre-compiled code, and interact with it in a useful and relatively performant way (e.g. for dynamically extending the capabilities of your program). So far it sounds great, I know right?
Now let me list off some issues (in order of me remembering them):
1. You can't unload them (due to some bs about dlopen), so you need to restart the application...
2. They bundle the stdlib like a regular Go binary, despite the fact that they're meant to be dynamic!
3. #2 wouldn't be so bad if they didn't also require identical versions of all dependencies in both binaries (meaning you'd need to vendor the dependencies, and also hope you are using the right Go version).
4. You need to use -trimpath or everything dies...
All in all, they are broken and no one is rushing to fix it (literally, the Go team said they aren't really supporting it currently...).
So what other options are there for making plugins in Go?
There's the Hashicorp method of using RPC, where you have two separate applications one the plugin, one the plugin server, and they communicate over RPC. I don't like it. Why? Because it feels like a hack, it's not really efficient and it carries a fear of a limitation that I don't like...
Then we come to a somewhat more clever approach: using Lua (or any other scripting language), it's well known, it's what everyone uses (at least in games...). But, it simply is too hard to use, all the Go Lua VMs I could find were simply too hard to set up...
Now we come to the most creative option I've seen yet: WASM. Now you ask "WASM!? But that's a web thing, how are you gonna make that work?" Indeed, my son, it is a web thing, but that doesn't mean I can't use it! Someone made a WASM VM for Go, and the pros are that you can use any WASM supporting language (i.e. any/all of them). Problem inefficient, PITA to use, and also suffers from the same issues that were preventing me from using Lua.
Enter Yaegi, a Go interpreter created by the same guys who made (and named) Traefik. Yes, you heard me right, an INTERPRETER (i.e. like python) so while it's not super performant (and possibly suffering from large inefficiency issues), it's very easy to set up, and it means that my plugins can still be written in Go (yay)! However, don't think this method doesn't have its own issues, there's still the problem of effectively abstracting different types of plugins without requiring too much boilerplate (a hard problem that I'm actively working on, commits coming soon). However, this still feels to be the best option.
As you can see, doing plugins in Go is a very hard problem. In the coming weeks (hopefully), I'm going to (attempt to at least) benchmark all the different options, as well as publish a library that should help make using Yaegi based plugins easier. All of this stuff will go (see what I did there 😉) in a nice blog post that better explains the issues and solutions. But until then I have some coding to do...
Have a good night(/day)!13 -
TFW the mock class has way more code than the real one.
Testing big infrastructures can be a pain...
Or maybe my team is just not so good at it.
My time spent:
Adding new feature to the real class 15%
Extending the mock with the same feature 55%
Writing tests 30%7 -
I value our most senior developer. His code is certainly clean and structured. He is the ultimate at KISS. However he's not a fan of testing and instead just says, well, did it compile? No matter how much I show him how great testing is, he comes back with how it's pretty unnecessary. Somehow, in the deep dark parts of the web, he finds articles that comply with his standing. I'm okay with him not making tests, I do it myself. But then when working extending or implementing his code, many of my parts are untestable because the parents are. Oye.6
-
The Coding Apocalypse: A Dev's Rant
June 14, 2024
Okay, gather ’round, fellow code warriors, because it’s time for a good ol' developer rant. If you're reading this, chances are you’ve already faced the dragon that is modern software development, and you’re somehow still using "Agile" as a life preserver while the ship is sinking. So let's dive into the chaos that our world has become.
Here’s the thing: We’re living in a paradox where every other day there's a shiny new framework promising to be the “ultimate solution” while ignoring that it's just recoil from the last big mess. I mean, can we talk about JavaScript for a second? I’m pretty sure if you stand still long enough, a new JavaScript framework will spontaneously generate from the void. Do we really need another one?
And don’t get me started on Sprint Planning. It’s like playing Tetris with stones while blindfolded, hoping that all the blocks land perfectly. Spoiler: They don’t. The product manager’s eyes glaze over as they nod approvingly to your estimates, secretly extending deadlines in their minds. The 'flexible' deadlines then become rigid, unattainable goals, and who gets the heat? The devs, of course.
Also, can we address the insanity of microservices? Sure, splitting a monolith into microservices sounds fun—until you’re drowning in API calls and Docker containers. Debugging a distributed system is like trying to untangle a pair of headphones made of spaghetti.
Oh, and if one more person asks if we’re "leveraging AI" and "blockchain technology" for our simple CRUD app, I might lose it. Sometimes, folks, the wheel doesn’t need reinventing. It just needs a little grease.
Finally, remote work. Blessing and curse. Sure, I enjoy the freedom of working in my PJs, but the endless Zoom calls are killing my soul. Breakout rooms? More like breakdown rooms. The Slack notifications? Let’s just say my sound settings have a hair trigger on mute these days.
So here’s to us, the devs. The ones who stare into the abyss of JIRA tickets and laugh in the face of mounting tech debt. May your coffee be strong, your code refactored, and your deployments ever in your favor.
End rant. Back to the trenches. 🚀💻6 -
Just a quick follow up. I told you guys after rebooting my server by accident, I'll color in the terminals for my ssh connections.
Normal terminal in white. With the code to do it. Just a shell script with the name ssh earlier in the path than the actual ssh. That was the only solution that didn't fuck my auto-completion. compdef was somehow useless. But it is simple.
For some reason I had to hardcode the return color to white. Alacritty was not happy with just a no-color code. But whatever. Super useful. I won't accidentally restart non-host computers now.
Planning on extending this to have different colors according to the host. Like my homelab could be green. Live servers would be red. Dev servers blue. But that's for the future.
Just wanted to share my little improvement that will make my computing saver.8 -
The real web development is optimising the shitty front end code.
The task assigned to me is optimisation of dashboard page of website which was developed by freenlancers.(end of contract from their side)
The front end is mess. Individual js files (bootstrap, popper, jQuery, jQuery ui, loader and main) loading in production inside head tag of html file
No text compression.
Every template has random number of their own js files in any block of template. Nothing structured. There will be fantastic waste of time figuring out file dependencies.
Same with css files. Some are scss, some plain css. No compression. No proper modules.
Basically, I have to go through 25-30 html files. Then understand, which template is extending which one. Go through all js and css files in each html file and again understand dependencies between them
This is gonna be real fun.1 -
Lets take onlyfans system for example. They have fans and creators. How is database models supposed to be structured? Whats the correct way.
1) a User model that contains all users of all roles, but differentiates them by Role ENUM
2) a separate Fan and Creator model, each having their own unique attributes, while each extending an abstract base User model class that has all the common attributes that both models should use
The 1st approach is simple but gets very large and difficult to maintain and view all the attributes cluttered in 1 class. Not to mention how some attributes will never be used for a user who registered as a Fan.
2nd approach is more modular and easier to understand and maintain by knowing exactly what attributes to put for each model. However problems occurs when you try to join tables and stuff start to become overengineered14 -
My preprocessor is just generalized kerning, the macros are variations on the single well-known proof for the Turing-completeness of GK, the type system will probably be a Prolog reskin so simple the translator can be a FSM, the type inference algo is the original HM algorithm which I don't even need to change, the core language is Lambda calculus and no more, and the backend might just be Erlang itself if my research confirms that extending LLVM until it consistently beats Erlang is unrealistic.
I invented nothing, I create nothing. All I do is plug circles into square holes and fill the gaps with play dough.5 -
Life-hacks for school
-----------------------------------------------------------
Extending a deadline for a paper:
Create a word file, fill it with Lorem ipsum.
Save.
Open the word document with notepad.
Delete soms gibberish code.
Save
Word will throw an error saying the file is corrupt.
Teacher will ask for the file again after the deadline.
-----------------------------------------------------------
Deceiving a plagiarism detector.
only works if you can submit multiple times and no resource is mentioned or checked by teachers
Plagiarize something but not to much, submit it. Change a few words. Submit again.
The system will check the first submission against the second one and determine its 99% plagiarism of your own paper. -
I am currently in the works of designing, building and extending an CRM/MRP system for production lines.
But for some reason I cant seem to find ANY modern sources, papers, books, forums, threads for context on this topic. It’s as if this topic doesn’t exist.
(One thing to point out is that there are sources for business wise analytics but am looking design wise)
I am starting to think that i am not googling it correctly (what a boomer).
Do you have any magic sources, captains of devrant?10 -
5 hours for 6 lines of code. Math is awesome and stuff, but translating matlab code into python and then extending it without knowing what it does (so you have to understand it first), well, is sometimes exhausting.
But after all this time I am so happy that it works and that I fully understand all the math behind it. And now I have to compare it to the other 6 methods I created for this task.. Yay.1 -
Anyone with 2 monitors (or more) with laptop as the primary source. How did you connect everything together? Also, I use Linux (Antergos)
I bought 2 monitors. I was able to connect one of them to my laptop with HDMI. Now, my laptop only has one HDMI and no VGA. So I can't really figure how to use 2 monitors with my laptop (also extending it and not duplicating screens).
I've come across HDMI splitter. But I don't if it allows extending screens8 -
Random thoughts on more out of the box tools/environments.
Subject: Pharo
Some time ago I had shown one of my coworkers about Pharo and he quickly got the main idea behind it but mentioned how he didn't like the idea of leaving behind his text editor to deal with source code.
Some time last week I showed the dude some cool 3d animations you can do with Pharo while simultaneously manipulating the code to change them in real time. Now that caught his attention particularly and he decided he wanted to know more about the language but in particular the benefits of fucking around with an image based environment rather than a file based.
Both of us reached the conclusion that image based makes file based dev enviroments seem quaint in comparison, but estimated that it was nothing more than a sentiment rather than a fact.
We then considered what could be the advantage/disadvantages of such environments but I couldn't come up with anything other than the system not having something like Vim or VS Code or whatever which people love, but that it makes up for it with some of the craziest IDE tools I had ever seen. Plugins in this case act like source code repos that you can download and activate into your workflow in what feels something similar to VS Code being extended via plugins written in JS, and since the GUI is maleable as it is(because everything is basically just subsets of morp h windows) then extending functionality becomes so intuitive that its funny
Whereas with Emacs(for example) you have to really grind your gears with Elisp or Vimscript in Vim etc etc, with Pharo your plugin system is basicall you just adding classes that will convert your OS looking IDE into something else.
Because of how light the vm machine is, portability is a non issue, and passing pharo programs arround is not like installing Java in which you need the JVM.
Source code versioning, very important, already integrated into every live environment and can be extended to do pushes through simple key bindings with no hassle.
I dunno, I just feel that the tool is too good to be true. I keep trying to push limits into it but thus far I have found: data visualization and image modeling to work fine, web development with Teapot to be a cakewalk and work fine, therr are even packages for Arduino development.
I think its biggest con would be the image based system, but would really need to look into how this is bad by any reason other than "aww man I want vim!" since apparently some psychos already made Emacs and VS code packages for interfacing with Pharo source trees.
Embedded is certainly out of the question for any real project since its garbage collected and not the most performant cookie in the jar.
For Data science I can see some future, seems just as intuitive and interesting as a Jupyter Notebook actually, but the process can't and will not be the same since I still don't know of a way to save playground snippets unless you literally create classes for it, in which case every model you build gets saved inside of an object, sounds possible but, strange since it is not a the most common workflow in jupyter.
Some of the environment is sometimes glitchy, but it does have continuos development and have not found many hassles.
There is a biased factor from my side: I seem to be wired to understand the syntax and simple object model better than in other languages. To me this feels natural as if I was just writing ideas rather than code, mostly because I feel that there really ain't much in terms of syntax, the language gets out of my way and the IDE feels like the most intuitive environment in the world to me. I can see why some people would find it REALLY weird of counterintuitive tho.
Guess I really am a simple dude. -
// long rant sorry
A few jobs ago I had a meeting that was scheduled for 15 mins. It was not going to be a bad meeting. I was looking at the people that were invited a few dev's, few pm's, and this one guy (Fuck!!). This one guy we will call him R.
So R is a pm but not just any pm he is the pm that will keep asking why like a 5 year old trying to understand how a car works. To top it off he loved to debate in the work place anything and everything. How something worked or why something was the way it is.
So this one meeting was about a project that I had started on my own and turned in to this huge project. I was super excited it was one of those project that you are excited to work on and love to add new things to it. The meeting was to talk about how it was going to be used and what customers sites this was going to be added to in the coming weeks. 15 mins not bad.
Well the meeting comes we finished in about 10 mins I was trying to get out of the room before R started. Well I waited a little a little to long and sure enough he asked the question. "What about this drop down?". Instantly I thought "FUCK!!! Here we go." Now I don't remember what his exact question was about said drop down but it ended extending the meeting by another 30 mins with me almost cussing him out and walking away.
There was a heated debate about this thing and R continuing to ask questions and want to debate this. I was only saved by the lead dev and lead pm say that they think that this is something that could be talked about at a later date. Lucky for me I was leaving the company in the following weeks. -
Just because you are new from university and don't understand the stuff this oh so very important senior developer does, does not mean he is doing a good job.
Latest when he leaves the company and you stay behind maintaining and extending the project you will notice...3 -
I used to play on an electric guitar which I was trusted to store after the original owner emigrated, now that I left as well I'm out of a hobby.
I have an ever-extending list of small luxuries I plan to buy once I have stable disposable income, the first item is a stratocaster with an amp.1 -
!rant
Frontend people, I need your opinion.
I will soon start building the next version of a rather large project's frontend but I am mostly a backend guy.
It is a custom made web application (PHP, Postgres) that handles all business aspects of a shipping company of about 50 people (trucks, truck free space in shipments for new packages, package tracking via gps on the truck, invoicing, reselling shipping services to other businesses, everything).
The existing frontend is using an ancient version (1.x) of the YUI framework and uses AJAX heavily to refresh the user interface. It's usable, but maintaining and extending it is getting really hard as the project grows larger and larger and more systems are integrated.
So the question is, given this use case, what JS framework do I use and what is a good resource to start learning it?5 -
Good Lord!
FP looks nice, feels right, scratches the itch when written well, but supporting, debugging and fixing/extending it is a fucking hell!
Well, it's either FP or TS/Node.4 -
I first started off with a pentium 3 machine in 2004, started gaming on warcraft 3 and maplestory and eventually got addicted to it because nothing else was interesting in my life. Okay extending this story, i eventually got banned, dad smashed 1000 bucks of his money by kicking and throwing it. Years later (i think it was 2011), i got hold of my first Android device. This time round, things were different and I spent 6 months with it problem free and then it started lagging. Google search led me to XDA, started modding the device, eventually startedgetting interested about how people do it and voila, C prog, write some management drivers for malloc and etc. Eventually i dropped kernel development 3 years later and now im in .NET Core.5
-
Framework Style Guide:
"When extending this library, please refrain from exposing too many arguments for the stages in your pipeline. Everything that could be fixed or inferred should not require additional configuration. "
Real life:
"Adjust every fucking knob and screw to stupidly specific settings for each and every use case or gravity itself will stop working. Heed this warning for you will not have another chance. "
That's it. More a vent than a rant. -
// new Rant("help")
I am currently writing my first 'real' Ruby project. I want people to be able to contribute through a module class by extending it and implementing the needed methods. This can (if done correctly) provide new commands for the terminal and new features.
But is this a good idea? I would download the code then by using git and keep it that way updated (similar brew does). At the start of the terminal app I would add all files recursively from the folder where I clone the modules into and lookup each class that extends module and then load the new content.
Is there another way of creating such a 'modular' application in Ruby?
They way I load the modules is through the inherited method, I just add the classes (not a concrete object created with new) to a list and retrieve it at runtime.
Would be nice to get some feedback going on here, not sure if my idea is good/bad. -
TLDR: Wrote a custom class for writing apibtest cases for a project with zero code test coverage.
We have a project with zero test coverage. Recently, i was tasked with writing api test cases for said project, it might have taken me months to write tests for all endpoint, plus the main issue was that each endpoint needed to tested for all available user roles and permissions.
I tried the main stream approach of writing api tests, but ended up running into a lot of issues directly linked to our projects roles/permissions architecture (cherry on top some endpoint are apikey specific). Don't get me wrong in my opinion this is by far one of the best user roles architecture out there, but writing test cases keeping it in mind is pain in ***.
After trying out different testing methods and frameworks, i decided to write my own class by extending django test framework (which uses unitest)
- It has generator and validators for request and response.
- Supports testing for user roles and permissions.
- We won't have to make any changes to code after user role or permissions changes
- I just have to copy and past request and responses from postman api collection.😂1 -
Ok being a developer and a technical assistant at the same time
Yesterday was out in the field we where fixing network at one insurance company and extending telephone line to of the offices....man what a labor intense job....
we had to drill a whole on one of those metal trunking.... man those fuckers are hard as fuck
having had spent the whole fucking day out the office i get a call saying 1 of the laptops at the office didnt have OS installed and one had a defected screen and they where in stock
and Im supposed to be checking these laptops when they come before going into stock
and Im like WTF!!??? confused and shit + being tired
got back to the office and fuck it was a shit show
the whole technical department got fucked over this and Up to now I have no fucking idea how those laptops got into stock and we missed it
My only answer is they never came for checking and if you try to air that out they will say you are try to blame some1 else for the fuck up and FUCK it
We had to write reports this morning me had 2 from the tender issue
fuck this
fuck this
fuck this fucking shity place -
C++ is the building blocks for many high-level programming languages, and since 1984 its first appearance in the markets the C++ core committee developers have introduced its 4 new versions which are C++03 (ISO/IEC 14882:2003 second edition), C++11 (third edition), C++14 (fourth edition) and C++17 is the fifth edition. With each new version, developers introduced new features, libraries and APIs in it.
C++ introduced as the extension of C programming language which made C++ as a compiled programming language, which means the developer required a C++ compiler to translate the C++ code to its equivalent machine or byte language, so the Operating system of the computer can execute the program.
There are various C++ compilers in the market and most of them are open source and free to use, however conventionally when we say C++ compiler, we basically talk about GCC which stands for GNU Compiler Collection.
What is GCC?
GCC stands for GNU Compiler Collection, and it is a collection of programming compilers which induce C, C++, Objective-C, Fortran, and some versions of Java. The first version of GCC introduced in 1987 and it was also known as GNU C compiler which became the standard compiler for C programming language, in that same year GCC also provided Compiler support for the C++ programming language.
Now GCC has various versions and each version give specific support for C++ versions, by now if we look at all the versions of GCC, we have a stable GCC for every version of C++, but there are some exceptions with C++11.
C++11:
C++11 introduced as the 2nd update version of C++, it suffixes 11 because it released in 2011 or because on August 12, 2011, ISO gives official approval to it. Formally C++11 known as C++0X because developers were expecting the new update released in 2010, but with its release in 2011, the core committee developer of C++ changed its name by C++0X to C++11.
C++ 11 replaced the old version of C++03, and it also brings many new features for the C++ developers. The main aim of designing C++11 to stabilize and maintain the backward compatibility of new C++ version with the C+98 and C programming language and that’s become the main reason why core committee developers only introduced new features in the old standard library rather than extending the core language.
GCC does not give Full Support to C++11:
GCC version GCC 4.8.1 purpose the first feature-complete implementation of the C++11 standard, however, the 4.8 and 4.7 does not give the full support for the C++11. The current version of GCC provides the major support for all the standard features of C++11 but if you are using the GCC 4.8 or 4.7 versions then your GCC only provide you with the experimental support for the C++11.
To use the Experimental support of GCC you need to enable it first before you compile or run you C++ 11 version code.
use code std=c++11 or -std=gnu++11 to enable the experimental support for C++11.17 -
Am I the only one having a really hard time grasping code when it involves more than just a few classes devided into several files?! I simply can't follow what happens when method a in class b instantiates class c and d while implementing interface e injection dependency f and extending class g...!?
Does this make sense? -
Not feeling well (plus cold office) but still extending time after work hours (OTY) because of a big task with a quick deadline (already have a short deadline set before the task was given to me)
Oh well. Grind, hustle and push!
Listening to this while working 👊 :
https://listenonrepeat.com//...!
https://listenonrepeat.com//..._1 -
you know i see plenty of evidence I was alive all this time extending past the year 2030 at least the problem is certain people fucked up everything.
they twisted what would have been a meaningful life around because they're garbage that believe in nothing and like playing games to feel like garbage more in control that are actually alive themselves, when they're not.13 -
Reading the source of a message queue system I'm planning on extending.
I don't see myself as a rockstar programmer or anything but the construction of arrays from hash tables, sorting those arrays and then a nested for loop to find matches really irks me. Luckily not on the critical message processing path but the stats collection thread. There are mutexes in play though that would probably delay processing a little bit when stats are collected. -
Hello from the other side.
I just finish my first open source project on Github, feel free to fork and improve it. I don't want to re-invent the wheel so I am extending some functionalities from zend components such as zend-mail and zend-view.
https://github.com/JiNexus/.... -
I been teaching someone python for a few day with 2-3 hour each day. It has been very pleasant to teach him programming since he have a goal in mind. He already know what kind of program we wanted to build.
He is a novice and not familiar with programming. It have been a good chance to see how the novice look at the python. I been given a chance to ask the answer like
"Why do we throw exception?" ,
"Why do we put define function at the top of the file and not at __main__?"
"Why do I need to use constructor?" ,
"Why should I call parent constructor in the child constructor?"
Here is the main question.
I have been wondering "should I teach him multi inheritance and the diamond problem?" I haven't been using multi inheritance for a while other than the exercise I done when I started programming and cannot think of the situation to use multi inheritance. I know in other language we use multi inheritance (kind of) regularly by extending multiple interface. I wanted to ask if multi inheritance is common in python.
Another question I have is how should I introduce him to gui programming in a simple manner? I am thinking of introduction him to the gui framework which haved WYSIWYG editor like "Remi"10 -
In the midst of writing a book review of Atomic Design by Brad Frost. Work in Progress and he announced he is extending the book in honor of it's 6th year anniversary. Perfect timing: http://bradfrost.com/blog/post/...
-
In a Phaser game, I was unknowingly overriding a method of a parent class. It must've been Phaser.Group or Phaser.Sprite that my class was extending, I was calling destroy() on it without realising I was calling the parent class' method too and was baffled about why shit wasn't working. Found out maybe two days later and changed the method 'destroy()' in my class to 'pokeItWithAStick()'. This was at a previous job, but I'm mostly sure that it stays that way in the codebase three years later.2
-
So how do you find motivation to finish a work project which is supposed to "go long"?
So, umm, this is weird, but i have been in this situation a few times and i am not sure if i deal with them correctly.
- the company proposes a brand new feature : a feature which never existed in the product before.
- they have high level directions (both business logics and technical) on how its supposed to be build
-they set vague but comfortable timelines (20-30days) to complete it
- they align me as the main dev for frontend, some x guy for backend , some y guy for parallel frontend (ios/web) and kinda forget about us.
- the business requirements are evolved/cleared as we go on making the product, the backend keeps on providing evolving apis which get stable over time.
- the business ppl shows that yeah there is no pressure and we won't mind extending this for release as other systems will be "obviously" taking time.
- our (the folks on new feature) feature is sidelined .nd we are rarely talked about until we reach those deadlines and at that time we are questioned.
I... am not a powerful performer in these situations. adding a new feature required solving some major problems again and again , while solving smaller problems too, so as the product finally takes shape . for eg:
1. i will start fast by adding all the possible screens, their abstract code, their navigation logic, their xmls etc
2. then based on designs, i will try creating designs a bit
3. then once the apis arrive, i start adding them and modify the logic to handle those.
4. meanwhile many smaller problems come up , like when sending an image from one screen to the previous screen, the thumbnail don't show up, so i spend 5+ hours ensuring that it works precisely . or how i could make 3 api calls in async and make the upload flow better.
5. this goes on for days, until and i and other people start to realise that my project is not upto the point of completion
i keep getting distracted from the original goal of making a working poc first and then fixing the nuances2 -
PHP gurus / masochists.
I've been using Symfony components for new, isolated features in a legacy php application for awhile now. the time has come to integrate using the kernel, and routing for new endpoints while existing endpoints use the existing apache means of loading pages.
It's not my first rodeo doing this, but I'd appreciate any wisdom/resources/patterns you followed for anyone who's had to do the same.
My clients don't have the means to do hire the appropriate ammount of devs to do a proper port, so this is a long path towards modernization by ceasing to bolt on features to existing code and instead, when working on something, updating it to the new design pattern and then extending that, with a spec, documentation and code coverage.3 -
Fixing and extending some old code, cursing the fool programmer... then version control blames yourself.
-
How do I create a Collab..
Well, I'm looking to form a team of 2 - 4 members. We will be devoted to learning machine learning through books, Kaggle, self assignments and various group discussions and pair programming. We will form a group name, open a GitHub account and upload our projects there. Am looking up to extending it to build projects together. This can also help us build our portfolios.
There are no tight requirements. But some good programming skills especially in Python will be great and a good understanding of high school math. We will be learning together.3 -
I love how the devRant webapp is intercepting scroll events (I assume) such that attempting to scroll down results in one step down, two steps up.
Why? Is this an attempt to solve jellypotato for infiniscrolling?
Looking further I see the scrollbar itself is actually getting smaller, like some element on the page is extending beyond the end or something. 🤔
I don't know, man...4 -
Google just fucked Apple so hard by extending Assistant to iOS! Now let's see wether Siri visits Android 😝! I think it was more arousing than porn, "pun intended" 😂 ...
-
I (frontend) was given 2 weeks to develop a new feature of the app. Almost after the end of 1 week, backend guy was finished with his code , with still bugs pending. Since backend wasn't ready for most part of the development process, I was working on my part, basically creating functionality and created views using the UI guys wireframes.
Now, we were on a time crunch , I didn't got enough time to improve the wireframes or to work with the UI guy . I released on staging environment and no one liked the UI.
App feature was supposed to be released on Tuesday. Shit hit the fan and i had to create a new ui, code the new parts of the app, do shit ton of other work and extending the deadline to today.
As of now backend code is still not fully functional,
app is ready but edge cases still not tested and I have to pull an all nighter to finish this fucking piece of shit.2 -
A young new dev was working on his first ticket, about a bug during parsing of an uploaded excel file. Our issue was that if the file contained an empty line, all remaining rows were ignored. So the task included extending our tests to cover this case. After 2 weeks (!), his merge request comes in. His idea (without ever asking for help) was to parse the whole file (in some cases huge) in the production code a second time, just to count the rows (!!) and save the count in a public static int field, which was verified in his new test.2
-
IT/Dev Connections must be getting desperate. They keep on extending the early bird registration, and taking $100.00 off with the special VIP discount. I would so love to spend a week in Vegas hanging with like-minded geeks, though.
-
I know liquid-nitrogen-powered air cans heat up after getting cold during use, and boil in the process, extending use time, but do they really need to make disturbing noises that sound like a clicking creature in a horror movie???