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 - "code structure"
-
My "Coding Standards" for my dev team
1.) Every developer thinks or have thought their shit don't stink. If you think you have the best code, submit it to your peers for review. The results may surprise you.
2.) It doesn't matter if you've been working here for a day or ten years. Everyone's input is valuable. I don't care if you're the best damn programmer. If you ever pull rank or seniority on someone who is trying to help, even if it isn't necessarily valid or helpful, please have your resume ready to work elsewhere.
3.) Every language is great and every language sucks in their own ways. We don't have time for a measuring contest. The only time a language debate should arise is for the goal of finding the right one for the project at hand.
4.) Comment your code. We don't have time to investigate what the structure and purpose of your code is when we need to extend upon it.
5.) If you use someone else's work, give them the credit in your comments. Plagiarism will not be tolerated.
6.) If you use flash, you will be taken out back and shot. If you survive, you will be shot again.
7.) If you load jQuery for the sole purpose of writing a simple function, #6 applies.
8.) Unless it is an actual picture, there is little to no reason for not utilizing CSS. That's what it's there for.
9.) We don't support any version of Internet Explorer and Edge other than the latest versions, and only layout/alignment fixes will be bothered with.
10.) If you are struggling with a task, reach out. While you should be able to work independently, it doesn't make sense to waste your time and everyone else's to not seek assistance when needed.
11.) I'm serious about #6 and #7. Don't do it.48 -
My manager started a company and I was his first employee, he literally started it because he wanted to make use of my talent.
So one day I finished my project on Friday and took in advance Monday and Tuesday off. Went back Wednesday to find my manager angry like "you didn't finish your project, you costed us money with our client company (a big ass famous one) I am putting you on probation and you could probably get fired if you don't get yourself together" and he said that my colleague had to do my whole work that I supposedly didn't do.
So I went to the code and checked. And I found that what my colleague did was re write my code in a different structure and pretended like he did everything and did do anything.
Got passed off so I wrote an email to my manager with the commits and links to them and their builds and made sure it's well explained, and titled the email "resignation letter" with me expressing at the end how angry I am and informing about my resignation.
Later on he replied saying it was a misunderstanding and there was lack of communication and he could give me I raise.
I insisted.
One week later I got hired by the client company and suddenly I was sitting on the other side of the meeting table. And it felt so damn good.4 -
I work at a small company that uses very outdated coding approaches for their solutions.
About a year ago I went through our main application to improve performance and found quite a few areas that I could tackle such as using a dictionary data structure in place of (many) foreach loops that required to pull out a single object.
That specific change yielded a lot of improvement (you can only imagine) and the other developers wanted to learn the ways of dictionaries (because it was so revolutionary and new to them). I showed them many examples so that they could better understand this data structure.
Fast forward to a few months later, saw one of my coworker's code and noticed that they were using a dictionary... And iterating through each kvp similar to a foreach..... Wtf?!
P.S. that person's salary is much higher than mine :(
First time rant. Thanks for listening!10 -
I was hired as a senior software engineer. During handover I found out I'm actually replacing the CTO.
I queried why he was leaving and got a simple "just want a break from working" which I found odd.
Fast forward and now I also just want a break from work, permanently. This place has followed every bad practise and big no-no out there. Every bit of software is a built in house knockoff janky piece of crap that doesn't work and makes people's jobs 5000 times harder.
The UI looks worse than Windows 3.1, absolutely horrendous code formatting, worst database structure I've ever seen.
The mere mention of using a team communication tool results in being yelled at from the CEO whom communicates purely via email, who then gets annoyed when you don't reply because they sent the email to a client instead of you.
We get handed printed out "tickets" to work instead of the so called "amazing in house ticket system" built using PHP 5 and is literally crammed into an 800x600 IFrame. Yes a F$*#ing IFRAME!
It's not like we have an outdated TFS server that has work items we can use...
Why not push for changes you say. I have, many times, tried to suggest better tools. The only approval I've gotten is using PhpStorm. Everything else is shutdown immediately and you get the silent treatment.
The CEO hired me to do a job, then micromanages like crazy. I can't make UI changes, I can't make database changes, why? They insists they know best, but has admitted multiple times to not knowing SQL and literally uses a drag and drop database table builder.
Every page in the webapps we make are crammed into 800x600 iframes with more iframes inside iframes. And every time it's pointed out we need to do something, be it from internal staff or client suggestions, the CEO goes off about how the UI is industry leading and follows standards.. what in the actual f....
Literally holding on by a thread here. Why hire a CTO under the guise of being a senior developer but then reduce the work that can be done down to the level of a junior?
Sure the paycheck is really nice but no job is worth the stress, harassment and incompetent leadership from the CEO.
They've verbally abused people to the point they resign, best part is that was simply because the CEO made serious legal mistakes, was told about it by the employee then blamed it on others.21 -
To be a good developer, you must thrive in chaos, and have an insatiable desire to turn it into order.
All user input, both work tasks and actual application input, is pure fucking chaos.
The only way to turn that input into anything usable, is to interpret, structure and categorize it, to describe the rules for transformation as adequately as you can.
Sometimes companies create semi-helpful roles to assist you with this process. Often, these people are so unaware of the delicacy of the existing chaos, that any decision they make just ripples out in waves leaving nearly irreparable confusion and destruction in its path.
So applications themselves also slowly wear down into chaos under pressure of chaotic steak-holders which never seem to be able to choose between peppercorn or bernaise sauce for their steaks.
Features are added, data is migrated between formats, rules become unclear. Is ketchup even fucking valid, as a steak sauce?
The only way to preserve an application long term, is refactoring chaos into order.
But... the ocean of chaos will never end.
You must learn to swim in it.
All you can hope to do is create little pools of clarity where new creative ideas can freely spawn.
Ideas which will no doubt end up polluting their own environment, but that's a problem for tomorrow.
So you must learn to deal with the infinite stream of perplexed reactions from those who can't attach screenshots to issue reports.
You must deflect dragging conversations from those who never quite manage to translate gut feeling into rational sentences.
You must learn to deal with the fact that in reality there are no true microservice backends. There are no clean React frontends. There are no normalized databases. Full test coverage, well-executed retrospectives, finished sprints -- they are all as real as spherical cows in a vacuum.
There is no such thing as clean code.
There is only "relatively cleaner code", and even then there are arguments as to why it would be "subjectively relatively cleaner code".
Every repository, every product, every team and every company is an amalgamation of half-implemented ideals, well-intended tug of war games, and brilliantly shattered dreams.
You will encounter fragmented shards of perfect APIs, miles of tangled barbed documentation, beheaded validator classes, bloody mangled corpses of analytical dashboards, crumbled concrete databases.
You must be able to breathe in those thick toxic clouds of rotting technical and procedural debt, look at your reflection in the locker room mirror while you struggle yourself into a hazmat suit, and think:
"Fuck yes, I was born for this job".24 -
We're using a ticket system at work that a local company wrote specifically for IT-support companies. It's missing so many (to us) essential features that they flat out ignored the feature requests for. I started dissecting their front-end code to find ways to get the site to do what we want and find a lot of ugly code.
Stuff like if(!confirm("blablabla") == false) and whole JavaScript libraries just to perform one task in one page that are loaded on every page you visit, complaining in the js console that they are loaded in the wrong order. It also uses a websocket on a completely arbitrary port making it impossible to work with it if you are on a restricted wifi. They flat out lie about their customers not wanting an offline app even though their communications platform on which they got asked this question once again got swarmed with big customers disagreeing as the mobile perofrmance and design of the mobile webpage is just atrocious.
So i dig farther and farthee adding all the features we want into a userscript with a beat little 'custom namespace' i make pretty good progress until i find a site that does asynchronous loading of its subpages all of a sudden. They never do that anywhere else. Injecting code into the overcomolicated jQuery mess that they call code is impossible to me, so i track changes via a mutationObserver (awesome stuff for userscripts, never heard of it before) and get that running too.
The userscript got such a volume of functions in such a short time that my boss even used it to demonstrate to them what we want and asked them why they couldn't do it in a reasonable timeframe.
All in all I'm pretty proud if the script, but i hate that software companies that write such a mess of code in different coding styles all over the place even get a foot into the door.
And that's just the code part: They very veeeery often just break stuff in updates that then require multiple hotfixes throughout the day after we complain about it. These errors even go so far to break functionality completely or just throw 500s in our face. It really gives you the impression that they are not testing that thing at all.
And the worst: They actively encourage their trainees to write as much code as possible to get paid more than their contract says, so of course they just break stuff all the time to write as much as possible.
Where did i get that information you ask? They state it on ther fucking career page!
We also have reverse proxy in front of that page that manages the HTTPS encryption and Let's Encrypt renewal. Guess what: They internally check if the certificate on the machine is valid and the system refuses to work if it isn't. How do you upload a certificate to the system you asked? You don't! You have to mail it to them for them to SSH into the system and install it manually. When will that be possible you ask? SOON™.
At least after a while i got them to just disable the 'feature'.
While we are at 'features' (sorry for the bad structure): They have this genius 'smart redirect' feature that is supposed to throw you right back where you were once you're done editing something. Brilliant idea, how do they do it? Using a callback libk like everyone else? Noooo. A serverside database entry that only gets correctly updated half of the time. So while multitasking in multiple tabs because the performance of that thing almost forces you to makes it a whole lot worse you are not protected from it if you don't. Example: you did work on ticket A and save that. You get redirected to ticket B you worked on this morning even though its fucking 5 o' clock in the evening. So of course you get confused over wherever you selected the right ticket to begin with. So you have to check that almost everytime.
Alright, rant over.
Let's see if i beed to make another one after their big 'all feature requests on hold, UI redesign, everything will be fixed and much better'-update.5 -
The Linux Kernel, not just because of the end product. I find it's organizational structure and size (both in code and contributors) inspirational.
Firefox. Even if you don't use it as your main browser, the sheer amount of work Mozilla has contributed to the world is amazing.
OpenTTD. I liked the original game, and 25 years after release some devs are still actively maintaining an open source clone with support for mods.
Git. Without it, it would not just be harder working on your own source code, it would also be harder to try out other people's projects.
FZF is possibly my favorite command line tool.
Kitty has recently become my favorite terminal.
My favorite thing open source has brought forth though is a certain mindset, which in the last decade can be felt most heavily in the fact that:
1. Scientific papers with accompanying GitHub urls, especially when it comes to AI. Cutting edge research is one git clone away.
2. There are so many open hardware projects. From raspberry pi to 3d printers to laser cutters, being a "maker" suddenly became a mainstream hobby.12 -
Why do people (Some devs too...) bloody hell think that devs have Hard time fixing the Semi Colon issue, we have a lot of other issues to figure out, like the Structure of Data, Code Fragmentation, API Creation, Invalid Data Handling, Injection Prevention. But no, since we are developers, we are having sleepless nights because of one fucking semicolon? FUCKING NO, it hardly takes 30 seconds to figure out that there is a missing semi-colon. Really People, stop the ; thing!10
-
Worst legacy experience...
Called in by a client who had had a pen test on their website and it showed up many, many security holes. I was tasked with coming in and implementing the required fixes.
Site turned out to be Classic ASP built on an MS Access database. Due to the nature of the client, everything had to be done on their premises (kind of ironic but there you go). So I'm on-site trying to get access to code and server. My contact was *never* at her desk to approve anything. IT staff "worked" 11am to 3pm on a long day. The code itself was shite beyond belief.
The site was full of forms with no input validation, origin validation and no SQL injection checks. Sensitive data stored in plain text in cookies. Technical errors displayed on certain pages revealing site structure and even DB table names. Server configured to allow directory listing in file stores so that the public could see/access whatever they liked without any permission or authentication checks. I swear this was written by the child of some staff member. No company would have had the balls to charge for this.
Took me about 8 weeks to make and deploy the changes to client's satisfaction. Could have done it in 2 with some support from the actual people I was suppose to be helping!! But it was their money (well, my money as they were government funded!).1 -
I've had many, but this is one of my favorite "OK, I'm getting fired for this" moments.
A new team in charge of source control and development standards came up with a 20 page work-instruction document for the new TFS source control structure.
The source control kingpin came from semi-large military contract company where taking a piss was probably outlined somewhere.
Maybe twice, I merged down from a release branch when I should have merged down from a dev branch, which "messed up" the flow of code that one team was working on.
Each time I was 'coached' and reminded on page 13, paragraph 5, sub-section C ... "When merging down from release, you must verify no other teams are working
on branches...blah blah blah..and if they have pending changes, use a shelfset and document the changes using Document A234-B..."
A fellow dev overheard the kingpin and the department manager in the breakroom saying if I messed up TFS one more time, I was gone.
Wasn't two days later I needed to merge up some new files to Main, and 'something' happened in TFS and a couple of files didn't get merged up. No errors, nothing.
Another team was waiting on me, so I simply added the files directly into Main. Unknown to me, the kingpin had a specific alert in TFS to notify him when someone added
files directly into Main, and I get a visit.
KP: "Did you add a couple of files directly into Main?"
Me:"Yes, I don't what happened, but the files never made it from my branch, to dev, to the review shelfset, and then to Main. I never got an error, but since
they were new files and adding a new feature, they never broke a build. Adding the files directly allowed the Web team to finish their project and deploy the
site this morning."
KP: "That is in direct violation of the standard. Didn't you read the documentation?"
Me: "Uh...well...um..yes, but that is an oddly specific case. I didn't think I hurt any.."
KP: "Ha ha...hurt? That's why we have standards. The document clearly states on page 18, paragraph 9, no files may ever be created in Main."
Me: "Really? I don't remember reading that."
<I navigate to the document, page 18, paragraph 9>
Me: "Um...no, it doesn't say that. The document only talks about merging process from a lower branch to Main."
KP: "Exactly. It is forbidden to create files directly in Main."
Me: "No, doesn't say that anywhere."
KP: "That is the spirit of the document. You violated the spirit of what we're trying to accomplish here."
Me: "You gotta be fracking kidding me."
KP grumbles something, goes back to his desk. Maybe a minute later he leaves the IS office, and the department manager leaves his office.
It was after 5:00PM, they never came back, so I headed home worried if I had a job in the morning.
I decided to come in a little early to snoop around, I knew where HR kept their terminated employee documents, and my badge wouldn't let me in the building.
Oh crap.
It was a shift change, so was able to walk in with the warehouse workers in another part of the building (many knew me, so nothing seemed that odd), and to my desk.
I tried to log into my computer...account locked. Oh crap..this was it. I'm done. I fill my computer backpack with as much personal items as I could, and started down the hallway when I meet one of our FS accountants.
L: "Hey, did your card let you in the building this morning? Mine didn't work. I had to walk around to the warehouse entrance and my computer account is locked. None of us can get into the system."
*whew!* is an understatement. Found out later the user account server crashed, which locked out everybody.
Never found out what kingpin and the dev manager left to talk about, but I at least still had a job.13 -
The sooner you start coding, the longer it will take.
This was meant as a way to tell us all the slow down and plan first. If you go right into coding things before the structure is thought out you will end up with garbage code.4 -
My old employer used to used a highly complex people management system, made up of around fifteen or so different tools and packages. Apparently this had been the case for decades, so in my spare time, I wrote an entirely bespoke, extensible HR web application that could be easily modified without changing the code. It even supported the weird spider web management structure.
I took it to my area manager, who pushed it up the chain. Apparently the country representative liked it a lot, so decided to bring me on board for an implementation and test case. Fast forward a few months, and people are singing praises. I get a huge promotion, with a sizeable pay bump to match.
Sadly, most of my country was sold out to another org, who decided pretty much straight off to make 90% of us redundant. Last I heard, though, my app is now in use in almost every operating country around the world. Not bad for something I wrote in my spare time.
I'm waiting for them to need modifications, because I never had time to complete the documentation...4 -
Why is the ternary operator such a hated thing? I constantly hear people saying it's less readable, confusing, etc.
I think it's a beautiful, useful, and important operator and I use it constantly wherever readability won't be much affected.
How can you justify a repetitive if/else structure over a ternary, given that you're sure you're not going to put anything else in the ifs?
Whatever happened to DRY?
Whatever happened to KISS?
If those guidelines are what you code by, what's the excuse not to use it?
Because you can't read it as well? Familiarity breeds comprehension and legibility, my dudes.15 -
> Root struggles with her ticket
> Boss struggles too
> Also: random thoughts about this job
I've been sick lately, and it's the kind of sick where I'm exhausted all day, every day (infuriatingly, except at night). While tired, I can't think, so I can't really work, but I'm during my probationary period at work, so I've still been doing my best -- which, honestly, is pretty shit right now.
My current project involves legal agreements, and changing agent authorization methods (written, telephone recording, or letting the user click a link). Each of these, and depending on the type of transaction, requires a different legal agreement. And the logic and structure surrounding these is intricate and confusing to follow. I've been struggling through this and the project's ever-expanding scope for weeks, and specifically the agreements logic for the past few days. I've felt embarrassed and guilty for making so little progress, and that (and a bunch of other things) are making me depressed.
Today, I finally gave up and asked my boss for help. We had an hour and a half call where we worked through it together (at 6pm...). Despite having written quite a bit of the code and tests, he was often saying things like "How is this not working? This doesn't make any sense." So I don't feel quite so bad now.
I knew the code was complex and sprawling and unintuitive, but seeing one of its authors struggling too was really cathartic.
On an unrelated note, I asked the most senior dev (a Macintosh Lisa dev) why everything was using strings instead of symbols (in Rails) since symbols are much faster. That got him looking into the benchmarks, and he found that symbols are about twice as fast (for his minimal test, anyway), and he suggested we switch to those. His word is gold; mine is ignorable. kind of annoying. but anyway, he further went into optimizing the lookup of a giant array of strings, and discovered bsearch. (it's a divide-and-conquer lookup). and here I am wondering why they didn't implement it that way to begin with. 🙄
I don't think I'm learning much here, except how to work with a "mature" codebase. To take a page from @Rutee07, I think "mature" here means the same as in porn: not something you ever want ot see or think about.
I mean, I'm learning other things, too, like how to delegate methods from one model to another, but I have yet to see why you would want to. Every use of it I've explored thus far has just complicated things, like delegating methods on a child of a 1:n relation to the parent. Which child? How does that work? No bloody clue! but it does, somehow, after I copy/pasted a bunch of esoteric legacy bs and fussed with it enough.
I feel like once I get a good grasp of the various payment wrappers, verification/anti-fraud integration, and per-business fraud rules I'll have learned most of what they can offer. Specifically those because I had written a baby version of them at a previous job (Hell), and was trying to architect exactly what this company already has built.
I like a few things about this company. I like my boss. I like the remote work. I like the code reviews. I like the pay. I like the office and some socializing twice a year.
But I don't like the codebase. at all. and I don't have any friends here. My boss is friendly, but he's not a friend. I feel like my last boss (both bosses) were, or could have been if I was more social. But here? I feel alone. I'm assigned work, and my boss is friendly when talking about work, but that's all he's there for. Out of the two female devs I work with, one basically just ignores me, and the other only ever talks about work in ways I can barely understand, and she's a little pushy, and just... really irritating. The "senior" devs (in quotes because they're honestly not amazing) just don't have time, which i understand. but at the same time... i don't have *anyone* to talk to. It really sucks.
I'm not happy here.
I miss my last job.
But the reason I left that one is because this job allows me to move and work remotely. I got a counter-offer from them exactly matching my current job, sans the code reviews. but we haven't moved yet. and if I leave and go back there without having moved, it'll look like i just abandoned them. and that's the last thing I want them to think.
So, I'm stuck here for awhile.
not that it's a bad thing, but i'm feeling overwhelmed and stressed. and it's just not a good fit. but maybe I'll actually start learning things. and I suppose that's also why I took the job.
So, ever onward, I guess.
It would just be nice if I could take some of the happy along with me.7 -
i was asked to start a new project, and another dev was brought onto the team shortly after. as soon as he joined, straight away he started an entirely new project and worked on it through the whole weekend, then came back on monday and just sort of pasted his files into/over the code i had already started and was working on, with no regard for folder structure or naming conventions or anything. his work was even split between 2 almost identically named namespaces (both of which were completely different to the existing project namespace) and his shit broke everything i did in the first place. the cherry on top is that none of his work was even functional, it was purely dummy/mockup web pages that weren't linked to any sort of backend.
when i asked him wtf he thought he was doing, he kept saying "i didnt touch your code" and refused to acknowledge that pasting a project over a different project can break stuff, then said it "wasn't his fault that i'm slow and not keeping up". and just kept saying vague bullshit about how i have to do it his way because he "has more experience"
he had no idea what my previous experience was, he had never asked and i had never told him, he just decided that he had more experience than me.
i dug through the shit and found out that he didn't just break my work, he had actually purposely deleted it when he realised it was getting in the way of his spaghetti. i showed him the commit and confronted him with it and all the cunt said was "well the good news is, you know the fix" and kept trying to dismiss me in the most disrespectful ways he could think of. i eventually snapped at him (long overdue at this point) and told him that any experienced developer would not commit code that didn't even fucking compile, especially when they're the one who broke it, and that he needs to grow up. of course he then complained that i was being unprofessional.
our manager decided we should go with fuckfaces """code""" without even looking at the work either of us had done, purely because fuckface is older than me and that's how the world works.
in the end i just told my manager that i refuse to work with the guy and he could either take him or me off the project (guess who he picked) or i quit.
after a few months of the guy failing to deliver any of even the basic functionality that was asked for, the entire project got scrapped, and the dude just quit once everyone realised he was literally just larping as an experienced dev but couldn't accomplish simple tasks.
i never received an apology from anybody involved.5 -
Unpopular dev opinion:
I like ending lines of code with semicolons. It helps add structure and organization. My code feels naked without them. After learning to code in JavaScript and Java, it's force of habit to put them, and python's lack of them is one of the reasons I hate it's syntax
Maybe I'm old fashioned. All the hipster languages either make semicolons optional or usually actively discourage them
Idk I like them though13 -
I am UI developer. The fucking domain model which we have in our project changes very frequently (once in a week (f**k)).
There is one person who is backend developer in this project. I call him TATTI because code he wrotes is "maha tatti".
Now real story,
Whene ever he makes any chnages to, so called, very complex domain model, he even doesn't inform me to reflect changes in UI. So whenever it goes on production, our boss abuse me for not updating UI.
Fucking tatti, just message me what should be changed or not and I really don't understand why they need changes in domain model every week.
F**g cto, decide domain structure first and then tell your team to start implementing it.
Other thing, when ever I ask tatti any doubt about any field is needed to display in UI or not because it is removed or added in domain model, he fucking chutiya starts explaining me whole project instead of just telling yes or no.
I don't care what your fucking backend does. Just tell me what is needed or not. And also he is not sure whether to keep that field or not even he had made that change.
He tells, "ha ye field chahie (after 5 seconds) , nahi wese to hum kahi use nahi kr rhe, ye sirf furture ke liye rkha tha use hta do (after 5 seconds), ek kam kro Mr xyz(another back end developer) se puch lo"
Fuck you maha tatti. And due to this i left that project and switched to other.19 -
"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 -
A nice word to all developers who say stuff like "I know I write bad code, but what does it matter.":
Please try to think in a logical way about what this part you are about to write has to do. It is much more difficult to rewrite code, the longer you wait after you started to code.
Bad code can have big impacts on different levels.
For example financially: Bad coding style or program structure can lead to thousands or much more in losses because of nasty bugs, bad performance, expandability or maintainability.
Think about quality over quantity.
A little example: I had to work together with other coders to meet a fucking tight deadline. The last day we coded like crazy and these dudes started to apply styling changes (CSS) directly as inline styles to the HTML code, instead of taking a few minutes more to find where in the CSS files they had to make the changes.
At the end of the deadline we had more stylingbugs than before. It took us another whopping 3 hours to fix what they had done.
So next time you code: Thinking before coding is mostly faster than just straightahead coding and fixing at the end. 😉2 -
You are a consultant and wrote some easy scripts by copying code snippets together?
Good for you!
It makes your job easier?
Good for you!
You didn't care too much about UI because you only needed the job to be done?
That's fine!
BUT DON'T YOU DARE SELL THIS SHIT TO A CUSTOMER AND CALL YOURSELF A SOFTWARE DEVELOPER!
YOU ARE NO DEVELOPER!
YOU DON'T KNOW NOTHING ABOUT HOW TO BUILD A RELIABLE SOFTWARE.
no one needs a solid database structure?
Object oriented programming is "just another hype"?
No one cares for the coding?
FUCK YOU, AND YOUR ATTITUDE!7 -
So I once had a job as a C# developer at a company that rewrote its legacy software in .Net after years of running VB3 code - the project had originally started in 1994 and ran on Windows 3.11.
As one of the only two guys in the team that actually knew VB I was eventually put in charge of bug for bug compatibility. Since our software did some financial estimations that were impossible to do without it (because they were not well defined), our clients didn't much care if the results were slightly wrong, as long as they were exactly compatible with the previous version - compatibility proved the results were correct.
This job mostly consisted of finding rounding errors caused by the old VB3 code, but that's not what I'm here to talk about today.
One day, after dealing with many smaller functions, I felt I was ready to finally tackle the most complicated function in our code. This was a beast of a function, called Calc, which was called from everywhere in the code, did a whole bunch of calculations, and returned a single number. It consisted of 500 or so lines of spaghetti.
This function had a very peculiar structure:
Function Calc(...)
...
If SomeVariable Then
...
If Not SomeVariable Then
...
(the most important bit of calculation happened here)
...
End If
...
End If
...
End Function
But for some reason it actually worked. For days I tried to find out what's going on, where the SomeVariable was being changed or how the nesting indentation was actually wrong and didn't match the source, but to no avail. Eventually, though, after many days, I did find the answer.
SomeVariable = 1
Somehow, the makers of VB3 though it would be a good idea for Not X to be calculated as (-1 - X). So if a variable was not a boolean (-1 for True, 0 for False), both X and Not X could be truthy, non-zero values.
And kids these days complain about JavaScript's handling of ==...7 -
This spring I was working on a library for an algorithm class at uni with some friends and one of the algorithm was extremely slow, we were using Python to study graphs of roads on a map and a medium example took about 6-7h of commission to finish (I never actually waited for so long, so maybe more).
I got so pissed of for that code that I left the lab and went to eat. Once I got back I rewrote just the god-damned data structure we were using and the time got down to 300ms. Milliseconds!
Lessons learned:
- If you're pissed go take a walk and when you'll come back it will be much easier;
- Don't generalize to much a library, the data structure I write before was optimized for a different kind of usage and complete garbage for that last one;
- Never fucking use frozen sets in Python unless you really need them, they're so fricking slow!3 -
I'm working on a programming language with a "bytecode" interpreter and a compiler that translates source code to said bytecode and... it sort of actually works!
I want to recreate an Erlang-style environment, currently you can write functions, call C++ functions via wrappers, have immutable-only values, and it has no explicit control structure apart from statement sequencing and the if-expression because I want to make it as functional as possible. Next thing on the list is to add a green threads implementation and ability to spawn and send messages to processes.
Still a WIP and heck even design-in-progress.
Now for the rant:
I'm using CMake for building C++ (interpreter) and Stack for Haskell (compiler) and I've been trying to get them to talk to each other for hours because I want CMake to manage the Stack build too and shove all the executables into one place. CMake documentation is weird and Stack isn't too helpful either, so I guess I'll just spend another few hours trying to get Stack to fuckin reveal its build directory to CMake and/or build to a given directory. Ugh.8 -
So today, I managed to make one of my colleagues feel like an idiot. In this contract, I work mostly for ui integration, while he build the pages with angular before I add all the html structure and fancy css.
We are building the front-end/ui for an industrial device with a touch screen. For that last 2 days he was blocked on a bug that when you click the confirm button on a delete popup, it would somehow select an input in the page before it was deleted and would lock the ui when showing the virtual keyboard (the poor thing didn't know what to do and wouldn't close).
During those two days, he asked all the other devs for help, trying to find a pattern or anything that could help, while I was focused on writing my css and stuff since it was my priority and I was hired specifically for that (I was aware of the bug and gave my input but I never saw it being reproduced)
So today, he start his new routine of raging at his desk and he decides to show me on my device for some reason. I immediately notice a pattern. It would always select one of the two fields behind the popup, in the click area of the button (it's a big button). Then, I noticed that I could press a random spot on the screen, drag my finger on the button and let go and nothing would happen.
It's at this moment I knew I had found the bug. The button was set to emit an event on mousedown while the inputs behind it were set to emit an event on mouseup (like it should be everywhere). So the popup closed when you placed your finger on the screen and the input was selected immediately after when you removed your finger (which was usually faster than the page code which was not yet optimized)
After that, it was just an easy fix to change the listener and I had a free beer.1 -
"WTH! Get the fuck out of here, bitch!!".
I started a new job today (remote) and my first task was to improve product sign-up process, basically the UX is shit and the backend is even worse, never felt so bad looking at terrible software design my entire life and career. My first assignment was to introduce some sanity. (Mr. Supervisor's exact words)
Anyway, I report directly to upper management but need to get onboarded by current technology expert who's highly skilled at writing shitty code and is also stupid, literally.
It took the whole day to get him to grant access to the private repo in order to start working but that's not the story.
So, I'm seated, demoralised about the structure of software I have to work on and here I was refreshing localhost:7878 consistently and was consistently getting the message:
"WTH! Get the fuck out of here, bitch!!".
So, this same codebase I have is suppose to be the exact same one that's powering the app in production. I was furious and confused. Is stupid calling me a bitch already??? He wants to fuck??? What the hell!!!
I called him and turns out, I was suppose to switch branches. The branch I had was suppose to show that message intentionally (??!???!???) (His words exactly), I couldn't even muster the words "Why" completely before he hung up.
So basically, I got onboarded today. Quite successfully, I must add, because I know exactly the battlesuit I have to wear to my new remote job going forward!11 -
Day 1 at internship:
Manager: Can you get this RFID tracking system working? We have the full source we just need it installed.
Me: Sure thing, shouldn't take too long if it's a working system.
Me: (opens VS project)
Code is a sprawling abyss devoid of any intelligible structure, commented with broken one-liners which serve only to annotate method names.
In Mandarin.
For the record the system was broken, took me several weeks to track down all the issues.4 -
A few months ago I was working on a (totally underpaid project) where my friend and I had to basically rewrite the entire program our client was using.
So we started planning and wrote all sorts of documentation to show the client our ideas for the new flow of the program, the new structure of the GUI and a few more details of what would the inner workings of the new app. He seemed to like all those ideas and gave us the green light to go through with the project and start coding.
We spent a couple of months coding, redoing the front end from scratch (with a different framework even, so I couldn't reuse any code from the old version) and completely redesigning the back end so it would be better, faster, more scalable etc etc etc. During this process, we obviously showed the progress of the app to our client, explaining everything we had been doing, and he seemed to like every new version we showed him.
When we were in one of the last stages in development (basically sending versions of the app to the client for evaluation), the guy suddenly changed his mind. After agreeing on everything we had been showing him over the last months, he sent an email saying:
"...the new system makes the app too complicated. I want this program to be as simple to use as possible; so we should revert the "Policy" system to essentially what it was in the last major version. The only change I want to make is [...] and everything else is essentially the same as the last Policy system."
So basically he wanted us to FUCKING UNDO EVERYTHING WE HAD DONE AND REVERT THE FUCKING PROGRAM TO THE FUCKING VERSION HE HAD BEFORE HIRING US!!!! WHAT THE FUCK????
YOU WANTED US TO CHANGE YOUR APP AND THEN YOU SUDDENLY CHANGE YOUR MIND AFTER 3 FUCKING MONTHS WHEN THE PROCESS IS DONE???
GO FIND A SWORDFISH TO FUCK YOU IN THE ASS, IM NOT WORKING FOR YOU ANYMORE
God, it feels good to let that out.4 -
I just finish "rebuilding" a page that I have built last year. My Js file (jQuery) went from 1200+ lines to 600..
I rewrite everything, the functionality is the same but the code is mush more cleaner.
Soo bad and redundant code.
Although comments where very helpful.
Feels good. -
Do NOT "compress" your code by leaving out braces in control structures and putting the 300 char statement on the same fucking line as the control structure!
Yes, your code file becomes vertically shorter than the usual 3000 lines, BUT my brain tumor proportionally grows larger.7 -
The superhuman feeling of going back to your code after a week and it all makes perfect sense, the variable names are intuitive, the doc strings are comprehensive, and the general codebase structure is sensible.2
-
Sometimes I write awesome code that executes well as intended with proper file structure and clean codebase and sometimes I bring shame to my family.8
-
(Best read while listening to AEnima by Tool, loudly)
Dear Current Workplace,
Fuck you, for the reasons enumerated below.
Fuck your enterprise grey blue offices, the stifling warm air of a hundreds of bodies and sub par "development laptops".
Fuck your shitty carbonated water machines which were a cost saving measure over decent drinkable water.
Fuck your fake "flexi time", "you can do home office whenever you want" bullshit. You're still inviting me to mandatory meetings at 09:00 regularly.
Fuck your shitty, in house, third part IT provider sister company. They're the worst of all worlds. If it was in company, we'd get to give out to them, if it was an external company we'd fire them. And yes, when I quit I will quote the dumpster fire that is our corporate VPN as a major factor.
Fuck your cheery, bland, enterprise communication. Words coming under the corporate letterhead seem to lose all association with meaning. Agile, communication, open are things you write and profess to respect, but it seems your totally lack understanding of their meaning.
Fuck your client driven development. Sometime you actually have to fix the foundations before you can actually add new features. And fuck you management who keep on asking "why are there so many bugs and why is it always taking longer to deliver new releases". Because of you, you fucknuts, Because you can't say "NO" to the customer. Because you never listen to your own experienced developers.
Fuck your bullshit "code quality is important to us" line. If it's so important, then let us fix the heap of shit you're selling so that it works like a quasi functional program.
Fuck you development environment which has 250 projects in a single VS solution. Which takes 5mins plus to compile on a quad core i7 with 32 gb of ram.
Fuck this bullshit ball of mud "architecture". I spend most of my time trying to figure out where the logic should go and the rest of the time writing converters between different components. All because 7 years ago some idiot "architect" made a decision that they didn't have to live with.
Actually, fuck that guy in particular. Yeah, that guy who was the responsible architect for the project for 4 years and not once opened the solution to look a the code.
Fuck the manual testing of every business process. Manual setup of the entities takes 10mins plus and then when you run, boom either no message or some bullshit error code.
Fuck the antiquated technology choices which cause loads of bugs and slow down development. Fuck you for forcing me to do manual tests of another developers code at 20:00 on a Friday night because we can't get our act together to do this automatically.
Fuck you for making sure it's very clear I'm never going to be anything but a code monkey in this structure. Managers are brought in from outside.
Fuck you for being surprised that it's hard to hire competent developers in this second rate, overpriced town. It's hard to hire anywhere but this bland shithole would have anyone with half a clue running away at top speed.
Fuck you for valuing long hours and loyalty over actual performance. That one guy who everyone hated and was totally incompetent couldn't even get himself fired. He had to quit.
Fuck you for your mediocrity.
Fuck you for being the only employer for my skill-set in the region; paying just well enough that changing jobs locally doesn't make sense, but badly enough that it's difficult to move.
Fuck you for being the stable "safe" option so that any move is "risky".
Fuck your mediocrity.
Fuck you for being something I think about when I'm not at work. Not only is it shit from 9 to 5 you manage to suck the joy out of everything else in my life as well?
Fuck you for making me feel like a worse developer every day I work here. Fuck you for making every day feel like a personal and professional failure. Fuck you for making me seriously leave a career I love for something, anything else.
Fuck you for making the most I can hope for when I get up in the morning is to just make it until the night.6 -
Worst: The guy gave me 5 minutes to code a given assignment on paper. I did all the logic and told him I was missing a function whose name I would just Google. He told me I can't always Google. Well... I won't be coding on paper either.
Best: I was given the assignment to clone a part of a production site. Assignment was intended for 3 days and I was given 5 hours. Completition wasn't important, only structure and coding style counted. I cloned everything and even added new features.
You just can't always be in the zone. I hope more interviewers would take that into account and design better questions.4 -
Type T ( something something... )
...
Type * TP = T;
TP.do()
> Be me
> Production code
> Update Type structure
> SEGV
> Wtf why was this even working
> Ask senior
> senior y u do dis
> bc
> Why were no errors
...
> mfw
> He says
"I added -fpermissive and forgot..."
On production since May
...
...
...
... 20072 -
Interesting bug hunt!
Got called in because a co-team had a strange bug and couldn't make sense of it. After a compiler update, things had stopped working.
They had already hunted down the bug to something equivalent to the screenshot and put a breakpoint on the if-statement. The memory window showed the memory content, and it was indeed 42. However, the debugger would still jump over do_stuff(), both in single step and when setting a breakpoint on the function call. Very unusual, but the rest worked.
Looking closer, I noticed that the pointer's content was an odd number, but was supposed to be of type uint32_t *. So I dug out the controller's manual and looked up the instruction set what it would do with a 32 bit load from an unaligned address: the most braindead thing possible, it would just ignore the lowest two address bits. So the actual load happened from a different address, that's why the comparison failed.
I think the debugger fetched the memory content bytewise because that would work for any kind of data structure with only one code path, that's how it bypassed the alignment issue. Nice pitfall!
Investigating further why the pointer was off, it turned out that it pointed into an underlying array of type char. The offset into the array was correctly divisible by 4, but the beginning had no alignment, and a char array doesn't need one. I checked the mapfiles and indeed, the old compiler had put the array to a 4 byte boundary and the new one didn't.
Sure enough, after giving the array a 4 byte alignment directive, the code worked as intended.8 -
I think I want to quit my first applicantion developer job 6 months in because of just how bad the code and deployment and.. Just everything, is.
I'm a C#/.net developer. Currently I'm working on some asp.net and sql stuff for this company.
We have no code standards. Our project manager is somewhere between useless and determinental. Our clients are unreasonable (its the government, so im a bit stifled on what I can say.) and expect absurd things from us. We have 0 automated tests and before I arrived all our infrastructure wasn't correct to our documentation... And we barely had any documentation to begin with.
The code is another horror story. It's out sourced C# asp.net, js and SQL code.. And to very bad programmers in India, no offense to the good ones, I know you exist. Its all spagheti. And half of it isn't spelled correctly.
We have a single, massive constant class that probably has over 2000 constants, I don't care to count. Our SQL projects are a mess with tons of quick fix scripts to run pre and post publishing. Our folder structure makes no sense (We have root/js and root/js1 to make you cringe.) our javascript is majoritly on the asp.net pages themselves inline, so we don't even have minification most of the time.
It's... God awful. The result of a billion and one quick fixes that nobody documented. The configuration alone has to have the same value put multiple times. And now our senior developer is getting the outsourced department to work on moving every SINGLE NORMAL STRING INTO THE DATABASE. That's right. Rather then putting them into some local resource file or anything sane, our website will now be drawing every single standard string from the database. Our SENIOR DEVELOPER thinks this is a good idea. I don't need to go into detail about how slow this is. Want to do it on boot? Fine. But they do it every time the page loads. It's absurd.
Our sql database design is an absolute atrocity. You have to join several tables together just to get anything done. Half of our SP's are failing all the time because nobody really understands the design. Its gloriously awful its like.. The epitome of failed database designs.
But rather then taking a step back and dealing with all the issues, we keep adding new features and other ones get left in the dust. Hell, we don't even have complete browser support yet. There were things on the website that were still running SILVERLIGHT. In 2019. I don't even know how to feel about it.
I brought up our insane technical debt to our PM who told me that we don't have time to worry about things like technical debt. They also wouldn't spend the time to teach me anything, saying they would rather outsource everything then take the time to teach me. So i did. I learned a huge chunk of it myself.
But calling this a developer job was a sick, twisted joke. All our lives revolve around bugnet. Our work is our BN's. So every issue the client emails about becomes BN's. I haven't developed anything. All I've done is clean up others mess.
Except for the one time they did have me develop something. And I did it right and took my time. And then they told me it took too long, forced me to release before it was ready, even though I had never worked on what I was doing before. And it worked. I did it.
They then told me it likely wouldn't even be used anyway. I wasn't very happy at all.
I then discovered quickly the horrors of wanting to make changes on production. In order to make changes to it, we have to... Get this
Write a huge document explaining why. Not to our management. To the customer. The customer wants us to 'request' to fix our application.
I feel like I am literally against a wall. A huge massive wall. I can't get constent from my PM to fix the shitty code they have as a result of outsourcing. I can't make changes without the customer asking why I would work on something that doesn't add something new for them. And I can't ask for any sort of help, and half of the people I have to ask help from don't even speak english very well so it makes it double hard to understand anything.
But what can I do? If I leave my job it leaves a lasting stain on my record that I am unsure if I can shake off.
... Well, thats my tl;dr rant. Im a junior, so maybe idk what the hell im talking about.rant code application bad project management annoying as hell bad code c++ bad client bad design application development16 -
The senior programmer at work commits so rarely that in 3 months I committed more than him in 3 years (e.g. 0 times in September)...
What’s the point of having a repo on bitbucket if most of the time the latest code version is only on his machine?
And why I have to recreate and repopulate the db every fucking time because he made so many changes to the structure, which of course conflicts with mine?5 -
Structure: decades of programming in too many languages to enumerate. I lean functional, but only when the language doesn't fight it. No matter what I'm doing, my code is immutable in practice, if not paradigm.
Syntax: No one thing in particular. I code differently depending on the language.
When I start learning a language, I'll find the standard style checker and create a project where I write an example of every single rule.
The end result is generally a quick intro to the language and a bonus understanding of the hot sports opinion in said language. I call this an ocean boiler.
I lean heavily into autoformatting because I've worked on too many projects to care, and I have a general expectation that something which is important enough to make a code standard is important enough to be enforced in tooling. I'd rather spend my time solving problems that thinking about stylistics.5 -
What do you guys tell your friends when they ask what you're doing on the computer? My wife asks all the time and I usually give a generic answer like "writing code" but lately that's not good enough. Today I had browser dev tools open along with vim because I was building a web scraper in python and I needed the structure of a certain site. I tried actually explaining it but got nowhere so I ended saying I was just downloading content from a site. Do you just give generic answers to people or try to get more technical? She seems unhappy with both approaches but maybe I'm just bad at explaining.12
-
Joined a new company...
It's been a week since I joined.I feel like shit.
There are over 20 employees, however I didn't had a chance to chat with a single person for more than a minute or two. Not a single meaningful or even a shitty but personal conversation. I'm trying to strike up conversations whenever I can, but there are no possibilities to do so. I think they have a few chat groups where I'm not added. At lunch time they suddenly start running to a guy that gathers the money to buy lunch, i saw that and joined, but I'm 99% sure they are communicating/speaking on some kind of chat.
I joined as a front-end developer, however I'm not sure if I'm a junior or whatever here. On the first day they showed me the system, they are using PHP and jquery + es6, the structure is messy and I'm not used to it It should be MVC-like, but messier, but it's not like anything I have seen. I usually work with opencart / cakePHP style systems. There are js files with a lot of custom funcions and sometimes there are functions that have mixed jquery and es6 inside script tags top or bottom of the view files. There are a lot of code that I don't understand, on the third day they gave me a task - to remodel a view (basically one page in the cms) I did it, but they didn't check up on me untill the next day, I gave them some notes on the task I finished, and I started making some of the code easier to read for myself after I was done. They didn't really gave me a new task, and I don't know what to do, don't have anyone to ask about what to do, because there are only 2 developers here, and the other guy is on vacation. The boss is also a coder, but he's never here and I feel like I shouldn't be asking him stupid coding questions, because you know.. He's a boss. I understand a lot more of their PHP code then their js/jquery. I feel like I'm stupid and I don't know what I am doing here and what I will be doing here in the future. I did move across the country to join this company, and if this won't work out i have a rent contract signed for a year. Today I was looking at the clock for the last 2 hours of the work day and waiting untill I could get out of there. To say that I feeling like shit would be an understatement.
I don't have anyone whom I could ask for coding advice outside of the company. Fuck.I have worked in a few companies before, but there was always an introduction to the staff, and or the working environment and usually there was a person that I could ask questions on the regular. This company is bigger however and I'm not an emotional guy whatsoever, but I feel like I will start crying.rant weird company shitty situation new company problems junior developer junior problems weird colleagues new company depression7 -
I really hate fucking Wordpress!
I hate it's stupid API, with it's stupid hooks and actions and all those stupid functions and no fucking logic to any of it!
I hate it's stupid plugin system, with all that fucking overhead that brings no real value and adds all that complexity for nothing!
I hate stupid fucking multiple calls for the same fucking assets, loading them over and over again because every stupid plugin calls them again and again!
I hate motherfucking SHORTTAGS, or whatever the fuck they are called!
I hate that every stupid fucking plugin and shortcode and fucking every little fucking piece of HTML comes from a different fucking place, with different fucking structure and different fucking classes and stupid fucking loading seaquences that make no fucking sense!
And I hate fucking page builders !!!!!
Fuck!!!!
I should be fucking coding on this fucking peace of shit, but I just cannot fucking take it any more!!!
IT NEEDS TO FUCKING DIE!
It should be relegated to the darkest corners of the internet and all the servers that have it's fucking code anyware on their systems should be disconnected and buried in the deepest pits of hell, just to be sure it never, EVER, surfaces again!!!
AAARRRRGGGHHHHHHH !!!!!!!!!5 -
Fuck (some of) you backend developers who think regurgitating JSON makes for a good API.
"It's all in JSON. iOS can read JSON, right?"
A well-trained simian can read JSON, still doesn't mean it can do something with it. Your shitty API could be spitting out fucking ancient Egyptian for all I care, just make it be the same ancient Egyptian everywhere!
Don't create one endpoint that spits out the URL for the next endpoint (completely different domain, completely different path structure). Are you fucking kidding me?
As if that wasn't enough, endpoints receive data structured in one way, but return results in another!! "It's all JSON", but it's still dong.
How do I abstract that, you piece of shit? Now I have to write ever so slightly different code in multiple places instead of writing it only once.
How the fuck do I even model that in a database?
Have a crash course on implementing APIs on the client side and only come back when you're done.
Morons.6 -
I've been lurking on devrant a while now, I figure it's time to add my first rant.
Little background and setting a frame of reference for the rant: I'm currently a software engineer in the bioinformatics field. I have a computer science background whereas a vast majority of those around me, especially other devs, are people with little to no formal computer background - mostly biology in some form or another. Now, this said, a lot of the other devs are excellent developers, but some are as bad as you could imagine.
I started at a new company in April. About a month after joining a dev who worked there left, and I inherited the pipeline he maintained. Primarily 3 perl scripts (yes, perl, welcome to bioinformatics, especially when it comes to legacy code like is seen in this pipeline) that mostly copied and generated some files and reports in different places. No biggie, until I really dove in.
This dev, which I barely feel he deserves to be called, is a biology major turned computer developer. He was hired at this company and learned to program on the job. That being said, I give him a bit of a pass as I'm sure he did not have had an adequate support structure to teach him any better, but still, some of this is BS.
One final note: not all of the code, especially a lot of the stupid logic, in this pipeline was developed by this other dev. A lot of it he adopted himself. However, he did nothing about it either, so I put fault on him.
Now, let's start.
1. perl - yay bioinformatics
2. Redundant code. Like, you literally copied 200+ lines of code into a function to change 3 lines in that code for a different condition, and added if(condition) {function();} else {existing code;}?? Seriously??
3. Whitesmiths indentation style.. why? Just, why? Fuck off with that. Where did you learn that and why do you insist on using it??
4. Mixing of whitesmiths and more common K&R indentation.
5. Fucked indentation. Code either not indented and even some code indented THE WRONG WAY
6. 10+ indentation levels. This, not "terrible" normally, but imagine this with the last 3 points. Cannot follow the code at freaking all.
7. Stupid logic. Like, for example, check if a string has a comma in it. If it does, split the string on the comma and push everything to an array. If not, just push the string to the array.... You, you know you can just split the string on the comma and push it, right?? If there is no comma it will be an array containing the original string.. Why the fuck did you think you needed to add a condition for that??
8. Functions that are called to set values in global variables, arrays, and hashes.. function has like 5 lines in it and is called in 2 locations. Just keep that code in place!
9. 50+ global variables/hashes/arrays in one of the scripts with no clear way to tell how/when values are set nor what they are used for.
10. Non-descriptive names for everything
11. Next to no comments in the code. What comments there are are barely useful.
12. No documentation
There's more, but this is all I can think to identify right now. All together these issues have made this pipeline the pinnacle of all the garbage that I've had to work on.
Attaching some screenshots of just a tiny fraction of the code to show some of the crap I'm talking about.6 -
So here's the deal. I am a team lead of a small company and I have a junior who is an idiot. I mean literally, idiot. We code in Python mostly and as Python is not structured as a default Java or C# project, the developer needs to be very careful so that the structure (or tiers) is maintained properly.
Now this girl, always messes up the tiers. Say one enhancement can be easily implemented in the UI tier, she would do the implementation in the core Db access layer, which may complete this particular enhancement, but breaks all the other functions (sometimes the whole project) connected to that particular module of the Db layer. She doesn't do any integration testing after updating the code, she only checks the current enhancement she is working on. When the enhancement goes to the testing phase, the testers find those broken functions and that results a re-work (most of the times done by me).
I have warned her. Even our manager has warned her. She always tells that she is working to improve herself. But I know, she isn't. She mostly chats with her boyfriends (yes, with an 's') when she has no work to do. She never upgrades herself or works on her skills.
I can easily report about her, and they will fire her without any warning (they did it already with a guy earlier). I don't want to do that again. What should I do? Any suggestions?
Oh, she has a great ego. She thinks that knows and understands everything. She will listen to your suggestions carefully, but will never follow those.11 -
Why is starting a C++ project so overly complicated and annoying?!
So many different compilers. So many ways to organize the files. So many inconsistencies between Linux and Windows. So many outdated/lacking tutorials. So many small problems.
Why is there almost no good C++ IDEs? Why is Visual Studio so bizarre? Why are the CMake official tutorials literally wrong? Why can't we have a standard way to share binaries? Why can't we have a standard way to structure project folders? Why is the linker so annoying to use?
Don't get me wrong, I quite like the language and I love how fast it is (one of the main reasons I decided to use it for my project, which is a game almost comparable to Factorio)... But why is simply starting to write code such a hassle?
I've been programming in Java for years and oh god I miss it so much. JARs are amazing. Packages are amazing. The JDK is amazing. Everything is standardized, even variable names.
I'm so tempted to make this game in Java...
But I can't. I would have a garbage collector in the way of its performance...11 -
How do I know when I’m ready for a junior dev job? Currently I’m very familiar with syntax rules, data structure, I even created my first p2p app and I’m feeling more comfortable with server side programming and handling dependencies.
But I can’t like code blindfolded and I’m very slow and have to think very deeply and concentrate very hard before doing any minor thing.
How do I know??9 -
Is it just me who sees this? JS development in a somewhat more complex setting (like vue-storefront) is just a horrible mess.
I have 10+ experience in java, c# and python, and I've never needed more than a a few hours to get into a new codebase, understanding the overall system, being able to guess where to fix a given problem.
But with JS (and also TS for that matter) I'm at my limits. Most of the files look like they don't do anything. There seems to be no structure, both from a file system point of view, nor from a code point of view.
It start with little things like 300 char long lines including various lambdas, closures and ifs with useless variables names, over overly generic and minified method/function names to inconsistent naming of files, classes and basically everything else.
I used to just set a breakpoint somewhere in my code (or in a compiled dependency) wait this it is being hit and go back and forth to learn how the system state changes.
This seems to be highly limited in JS. I didn't find the one way to just being able to debug, everything that is. There are weird things like transpilers, compiler, minifiers, bablers and what not else. There is an error? Go f... yourself ...
And what do I find as the number one tipp all across the internet? Console.log?? are you kidding me, sure just tell me, your kidding me right?
If I would have to describe the JS world in one word, I would use "inconsistency". It's all just a pain in the ass.
I remember when I switcher from VisualStudio/C# to Eclipse/Java I felt like traveling back in time for about 10 years. Everyting seemd so ... old-schoolish, buggy, weird.
When I now switch from java to JS it makes me feel the same way. It's all so highly unproductive, inconsistent, undeterministic, cobbled together.
For one inconveinience the JS communinity seems to like to build huge shitloads of stuff around it, instead of fixing the obvious. And noone seems to see that.
It's like they are all blinded somehow. Currently I'm also trying to implement a small react app based on react-admin. The simplest things to develop and debug are a nightmare. There is so much boilerplate that to write that most people in the internet just keep copying stuff, without even trying to understand what it actually does.
I've always been a guy that tries to understand what the fuck this code actuall does. And for most of the parts I just thing, that the stuff there is useless or could be done in a way more readable way. But instead, all the devs out there just seem to chose the "copy and fix somehow-ish" way.
I'm all in for component-izing stuff. I like encapsulation, I'm a OOP guy by heart. But what react and similar frameworks do is just insane. It's just not right (for some part).
Especially when you have to remember so much stuff that is just mechanics/boilerplate without having any actual "business logical function".
People always say java is so verbose. I don't think it is, there is so few syntax that it almost reads like a prose story. When I look at JS and TS instead, I'm overwhelmed by all the syntax, almost wondering every second line, what the actual fuck this could mean. The boilerplate/logic ration seems way to off ..
So it really makes me wonder, if all you JS devs out there are just so used to that stuff, that you cannot imagine how it could be done better? I still remember my C# days, but I admin that I just got used to java. So I can somehow understand that all. But JS is just another few levels less deeper.
But maybe I'm just lazy and too old ...4 -
Tl;DR; version:
French designer, Mexican PSD -> HTML converter, Indian VueJS developer, Spanish project manager and a Taiwanese back-end developer. Application was made like an tower of pizza from bullcrap held by boogers and constantly licked by an orangutang to keep it standing.
Longer version:
We had to take a "half-finished" project from one of our clients, received the code for full-stack project. The css/design was so unbearable that it mostly broke on anything that had higher than 720px wide screen, structure was full of tables/divs and no fucking flexbox/grid... Then the fun part - we saw it's conversion to vueJS - a single fucken App.vue file that had shitton of conditions for pages.... yea, not even multi-component/routed app, just conditions!!!! And then... A back-end (in which I mainly specify myself) - it was made by a developer that had to mainly use Java/C# as their daily driver while all being build on php and Laravel. 0 Fucken laravel functions used, 0 of models, logic and so on.... Most of the page was running on RAW sql queries. Names... Oh my god the function names....
`getTheUsersThatHasAtLeastOneSpaceAssignedToThemByGivenCompanyId(int $id)`
And it held an RAW sql that was coming from a model....
All of this was managed by a random spanish manager who couldn't really understand what our client needed and what he actually wanted so from 100% of the site, only 20% was correct in logic....
And yet, according to the whole "package" (team) - they did everything correctly, saw no issues and our client was ungrateful fucker that refused to pay 10x the amount that we asked in order to completely re-do the application....
Morale: Remote teams are great... As long as all of them can work remote in TEAM.5 -
Testing hell.
I'm working on a ticket that touches a lot of areas of the codebase, and impacts everything that creates a ... really common kind of object.
This means changes throughout the codebase and lots of failing specs. Ofc sometimes the code needs changing, and sometimes the specs do. it's tedious.
What makes this incredibly challenging is that different specs fail depend on how i run them. If I use Jenkins, i'm currently at 160 failing tests. If I run the same specs from the terminal, Iget 132. If I run them from RubyMine... well, I can't run them all at once because RubyMine sucks, but I'm guessing it's around 90 failures based on spot-checking some of the files.
But seriously, how can I determine what "fixed" even means if the issues arbitrarily pass or fail in different environments? I don't even know how cli and rubymine *can* differ, if I'm being honest.
I asked my boss about this and he said he's never seen the issue in the ten years he's worked there. so now i'm doubly confused.
Update: I used a copy of his db (the same one Jenkins is using), and now rspec reports 137 failures from the terminal, and a similar ~90 (again, a guess) from rubymine based on more spot-checking. I am so confused. The db dump has the same structure, and rspec clears the actual data between tests, so wtf is even going on? Maybe the encoding differs? but the failing specs are mostly testing logic?
none of this makes any sense.
i'm so confused.
It feels like i'm being asked to build a machine when the laws of physics change with locality. I can make it work here just fine, but it misbehaves a little at my neighbor's house, and outright explodes at the testing ground.4 -
NEW 6 Programming Language 2k16
1. Go
Golang Programming Language from Google
Let's start a list of six best new programming language and with Go or also known by the name of Golang, Go is an open source programming language and developed by three employees of Google and the launch in 2009, very cool just 3 people.
Go originated and developed from the popular programming languages such as C and Java, which offers the advantages of compact notation and aims to keep the code simple and easy to read / understand. Go language designers, Robert Griesemer, Rob Pike and Ken Thompson, revealed that the complexity of C ++ into their main motivation.
This simple programming language that we successfully completed the most tasks simply by librariesstandar luggage. Combining the speed of pemrogramandinamis languages such as Python and to handalan of C / C ++, Go be the best tools for building 'High Volume of distributed systems'.
You need to know also know, as expressed by the CTO Tokopedia namely Mas Leon, Tokopedia will switch to GO-lang as the main foundation of his system. Horrified not?
eh not watch? try deh see in the video below:
[Embedyt] http://youtube.com/watch/...]
2. Swift
Swift Programming Language from Apple
Apple launched a programming language Swift ago at WWDC 2014 as a successor to the Objective-C. Designed to be simple as it is, Swift focus on speed and security.
Furthermore, in December 2015, Swift Apple became open source under the Apache license. Since its launch, Swift won eye and the community is growing well and has become one of the programming languages 'hottest' in the world.
Learning Swift make sure you get a brighter future and provide the ability to develop applications for the iOS ecosystem Apple is so vast.
Also Read: What to do to become a full-stack Developer?
3. Rust
Rust Programming Language from Mozilla
Developed by Mozilla in 2014 and then, and in StackOverflow's 2016 survey to the developer, Rust was selected as the most preferred programming language.
Rust was developed as an alternative to C ++ for Mozilla itself, which is referred to as a programming language that focus on "performance, parallelisation, and memory safety".
Rust was created from scratch and implement a modern programming language design. Its own programming language supported very well by many developers out there and libraries.
4. Julia
Julia Programming Language
Julia programming language designed to help mathematicians and data scientist. Called "a complete high-level and dynamic programming solution for technical computing".
Julia is slowly but surely increasing in terms of users and the average growth doubles every nine months. In the future, she will be seen as one of the "most expensive skill" in the finance industry.
5. Hack
Hack Programming Language from Facebook
Hack is another programming language developed by Facebook in 2014.
Social networking giant Facebook Hack develop and gaungkan as the best of their success. Facebook even migrate the entire system developed with PHP to Hack
Facebook also released an open source version of the programming language as part of HHVM runtime platform.
6. Scala
Scala Programming Language
Scala programming termasukbahasa actually relatively long compared to other languages in our list now. While one view of this programming language is relatively difficult to learn, but from the time you invest to learn Scala will not end up sad and disappointing.
The features are so complex gives you the ability to perform better code structure and oriented performance. Based programming language OOP (Object oriented programming) and functional providing the ability to write code that is capable of evolving. Created with the goal to design a "better Java", Scala became one behasa programming that is so needed in large enterprises.3 -
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 rewrote my static website generation from jekyll to custom python code over single night.
Literally all jekyll plugins I use including seo, rss, syntax highlighting inside markdown content, sitemap, social plugins, css sass, all of it.
Now it’s around 400 lines of python code that I understand completely. I didn’t touch any existing templates and after comparing output I got even better results now and it’s working faster.
I skipped drafts as I don’t need them now.
Why ? Cause now I can make better generator for my side projects that can include some partial website generation, better modification and date handling, tree structure, etc.
What I will do now is that I will parse bunch of content to create markdown files that will be sucked by this generator to create static web pages that will flood internet lol.
Still I didn’t believe it was possible to rewrite all of it so quickly. I sit yesterday around 4pm and finished around 6am.
I started thinking that maybe I am crazy and no one can help me.9 -
Had to hand in as assigment for my algorithms & data structure course and really put alot of work into it, commented code, easy to understand and all.
"Why are you showing me copied code from the internet?" was the professors answer...
I did not copy any code and some algorithms often look the same...6 -
Anyone else developed a habit to structure verbal allday Argumentations in your head in Code syntax? Helps me alot to follow ones logic. Except when I'm arguing with my girlfriend. Sometimes setMood(angry) gets randomly called (bug?) and then every if statement seems to be valid, eventhough it should return false. An inputstream that contains my outputstream is initialized but .readLine() is never being called. Instead, the outputstream to my inputstream is being overly abused. Once we get dive deeper into our if-statement we will find a while loop with a mysterious flag. Noone knows it's origin. The while loop keeps printing out random concatenated strings until it overflows your own capacity. I would have said its while(true) but in fact there must be a timer in another very hidden thread or something that sets our flag to false. The other and only way I know to exit that loop is to call apology() 100 times (maybe a variable sets the boolean that could be deeply buried in her projectstructure like this CONST.VALUES.getMood().getRealMood().getTrueMood().TRUTHCONTAINER.angryMode=true)..
I wish I could get a stressball so I can continue theorycrafting and debugging. Its 4.30 am now, my better side is snoozing next to me. I bet making this a pseudocode would be fun.
Ps: I love my lady but I had to rent3 -
How to NOT write unit tests:
A colleague of mine has developed a new package of software, many of our new projects are going to use. So in his presentation of the new functionalities he also showed us that he used unit tests to cover some of his code. So i asked him to show me that all tests passes.
He: I can show you, but one test suit will fail currently.
Me: Why?? You told us, everything is finished and works fine.
He: That's right, but they will fail because I'm currently not in the customer VPN.
Me: Excuse me, WHAT??
He: Yes, I'm not in the VPN that connects me to this one customers facility in Hungary, where the counterpart of the software is runnung live.
Me: YOU WROTE UNIT TESTS THAT TEST AGAINST A RUNNING LIVE FACILITY??
He: Yes, so I can check, that the telegramms I send are right. If I get back the right acknowledgement, the telegramm structure is right and my code is working.
Me: You know, that is not the porpose of unit tests? You know, that these test should run in any environment?
He: But they are proving, that my code is working. Everytime I change something I connect to the customer and let the tests run.
Me: ...
Despite the help of some other developers we could not convince him that this was not good and he should remove them. So now this package is used in 2 new projects and this test suit is still failing, everytime you execute all unit tests.7 -
met a client yesterday to discuss about the coming task. After discussion, we agreed that I will develop the API for the system in one month. I did the planning and posted the upcoming tasks in Trello. Today, he told me some of the tasks have been done by his staff and asked me if I can continue the remaining tasks and get it done in one week. Hey, bro, what you want!? it is not what we agreed! do you think i can understand the code that your staff wrote, with poor documentation and structure, in few hours and immediately start working on it, yet deliver everything with high quality? come on...5
-
anyone else have their own side projects where they follow no structure and pretty much make spaghetti code just to get it finished asap so you can make money off the system you are building? lol. not proud of the code i wrote today but damn did I get a lot of functionality implemented.8
-
Only if people understood the amount of effort that goes behind building a simple app.
Even if it's a simple notes app, I've to design the UI (at least 2 different activities - 1 for the list and the other for editing notes), write the code which makes it run i.e. without which the app is just a piece of empty design, think about what data
structures to use (that notes you are saving need to be stored somehow) and then club everything together and hope nothing breaks (spoiler alert: something will definitely break).
People need to understand that it's not just putting some fancy buttons and boxes around. Also, I'm not just making the app for one device. I've to make sure it works on different screen sizes, different versions of the OS (a user can't imagine how many functions need to be re written because something got deprecated in the process and I'd to switch to something different).
Also I'm not just sitting at my computer and converting coffee to code. I've to think about the flow, structure, design, navigation, backend etc. Of the app; most of my time isn't spent writing code but thinking/studying how to write the code. I also need to wait while the project is compiling/building every time I want to test it.
A function which you think is hard to implement night be really easy while something you claim is easy might be a nightmare. Oh and I didn't even mention how I need to stick to some design guidelines to make the app look consistent with the rest of the OS.
If you're wondering why a developer is spending most of his time on a browser, he isn't playing internet games or browsing reddit ( at least you better hope not), he's probably looking at the docs/stack overflow to get something to work/fix something!
Wow! That was long. Thanks!3 -
Beta version... only devs have access
Screen for a not-ready-yet feature:
A nice image of a faded broken structure, underlined with a "Work in progress" text.
Primary button below "I want it now"
/clicks button
next to the button, a text fades in:
"Please, be patient"
You keep clicking "I want it now", after a few clicks you get "Plese, be **very** patient"
/Checks the source code
it bloody adds a "very" for every 5 clicks and calls an API to send you an email for every 5 clicks:
Thanks for very {n times very} much wanting {feature name}
11 clicks = 3 emails with very, very very and very very very
Yep, I am patient now, especially if I get my hands on you...3 -
When the project manager (who knows nothing about code) tells me how to structure HTML markup. No, please, tell me how to do my job.1
-
Recently in a project of mine people started to raise tons of issues and suggesting fixes "just slap this module on it", "just do this", "just do that". And no respect for the project whatsoever. Code contributions? Don't even think about it.
The users raising these do not know what language the project is written in, they do not know whether it supports modules at all (let alone that particular one), and they have no idea whatsoever what the code is like, or how this suggestion 99% of the time would not at all integrate with the overall structure of the project. And aside from all that, don't fucking tell me what to do with my project!
My question is, how do you deal with these people? All I can think of is "wontfix™️" or even "cantfix™️" in some cases. Given that this is an endless slew of users, anything long-term?1 -
Time for a soap box rant.
I just found this in one of our projects. I've simplified the example to make it more anonymous.
When I see code like this it automatically means there is a lack of attention to enumerations and/or understanding of what they are.
One may argue that in a certain execution of code it's a minor performance hit and therefore insignificant. It's still a performance hit. Furthermore, it takes even less time to do it the right way than it does to do it the wrong way.
Every one of these lines will enumerate the list from the beginning to try and find that one element you're interested in. Big O notation, people.
Throw that crap into a dictionary or hashset or similarly applicable data structure with direct reads at the beginning of your logic so that it only gets enumerated ONCE when the data structure instance is created. Then access it however many times you want.
Soap box rant over.15 -
I wanna meet the dumbass that decided it was a good idea to teach scratch, basic, java, or even python as a first programming language course in college.
I’m so sick of seeing developers out of with shitty code structure and practices, and absolutely no understanding of what is going on behind the scenes of the IDE when you push run.
In order to be a good engineer you MUST know the basics, the root level, bare bones, bare metal shit.
I fear the future, less and less software engineers are comming out of colleges, the majority today is script kiddies, and folks with some basic java experience.
Who the hell is going to be writing firmware in the future then?
It’s insane the lack of foundational skills these students get in college. If they would get a strong foundation in C, and C++ they can easily attack at problem in any language, but missing the foundation, and relying on IDEs.. you will never be-able to go from a knowing only a high level languages and scripts to Lower level problems.
RIP the future of Software Engineering
Welcome to the hell full of script kiddies27 -
At work, my closest relation is with the DBA. Dude is a genius when it comes to proper database management as well as having a very high level of understanding concerning server administration, how he got that good at that I have no clue, he just says that he likes to fuck around with servers, Linux in particular although he also knows a lot about Windows servers.
Thing is, the dude used to work as a dev way back when VB pre VB.NET was all the rage and has been generating different small tools for his team of analysts(I used to be a part of his team) to use with only him maintaining them. He mentioned how he did not like how Microsoft just said fk u to VB6 developers, but that he was happy as long as he could use VB. He relearned how to do most of the GUI stuff he was used to do with VB6 into VB.NEt and all was good with the world. I have seen his code, proper OOP practices and architectural decisions, etc etc. Nothing to complain about his code, seems easy enough to extend, properly documented as well.
Then he got with me in order to figure out how to breach the gap between building GUI applications into web form, so that we could just host those apps in one of our servers and his users go from there, boy was he not prepared to see the amount of fuckery that we do in the web development world. Last time my dude touched web development there was still Classic ASP with JScript and VBScript(we actually had the same employer at one point in the past in which I had to deal with said technology, not bad, but definitely not something I recommend for the current state of web development) and decided that the closest thing to what he was used was either PHP(which he did not enjoy, no problem with that really, he just didn't click with the language) and WebForms using VB.NET, which he also did not like on account of them basically being on support mode since Microsoft is really pushing for people to adopt dotnet core.
After came ASP.NET with MVC, now, he did like it, but still had that lil bug in his head that told him that sticking to core was probably a better idea since he was just starting, why not start with the newest and greatest? Then in hit(both of us actually) that to this day Microsoft still not has command line templates for building web applications in .net core using VB.NET. I thought it was weird, so I decided to look into. Turns out, that without using Razor, you can actually build Web APIs with VB.NET just fine if you just convert a C# template into VB.NET, the process was...err....tricky, and not something we would want to do for other projects, with that in we decided to look into Microsoft's reasons to not have VB.NET. We discovered how Microsoft is not keeping the same language features between both languages, having crown C# as the language of choice for everything Microsoft, to this point, it seems that Microsoft was much more focused in developing features for the excellent F# way more than it ever had for VB.NET at this point and that it was not a major strategy for them to adapt most of the .net core functionality inside of VB, we found articles when the very same Microsoft team stated of how they will be slowly adding the required support for VB and that on version 5 we would definitely have proper support for VB.NET ALTHOUGH they will not be adding any new development into the language.
Past experience with Microsoft seems to point at them getting more and more ready to completely drop the language, it does not matter how many people use it, they would still kill it :P I personally would rather keep it, or open source the language's features so that people can keep adding support to it(if they can of course) because of its historical significance rather than them just completely dropping the language. I prefer using C#, and most of my .net core applications use C#, its very similar to Java on a lot of things(although very much different in others) and I am fine with it being the main language. I just think that it sucks to leave such a large developer pool in the shadows with their preferred tool of choice and force them to use something else just like that.
My boy is currently looking at how I developed a sample api with validation, user management, mediatR and a custom project structure as well as a client side application using React and typescript swappable with another one built using Angular(i wanted to test the differences to see which one I prefer, React with Typescript is beautiful, would not want to use it without it) and he is hating every minute of it on account of how complex frontend development has become :V
Just wanted to vent a little about a non bothersome situation.6 -
It began when I was tasked with creating a better and more engaging experience for our new Facebook page. This was in Facebook's early days, so there were not really any "best practices". We were making it up as we went along. I decided one way would be to game-ify things, since gaming, at the time, was a Big Deal on Facebook and people were starting to use it to build customer funnels.
Grasping for low-hanging fruit, I decided a Tetris variant around our topic would be fun. I had to hire a dev because at the time I was a static HTML web developer just getting into social media management. I knew nothing about game development or how to use Facebook's API for such things.
Long story short, we got about $10,000 (FB app devs came at a premium then) into the project when I came across a very recent article about the history of Tetris games. It said that even though Tetris had once been considered for all intents to be public domain due to it being created by a Russian coder during the Cold War, it had just been acquired by an IP protection entity that was charging royalties for any variant of Tetris created from a specific date onward and paying the original developer. So, even though I thought I had been thorough in my initial permissions checking, it turned out we were gonna be in deep doo-doo with licensing fees and restrictions if we released this game to the public.
I had to call my boss and admit my error. She was FURIOUS and really gave me an ass-chewing over it. I then had to call the marketing person whose budget I'd been slaving away at wasting. She was a bit more forgiving (her budget was in the millions). Then I had to call the corporate legal department and explain what was going on. They told me to immediately pay any outstanding hours, then fire the dev but not before getting him to send me all code and assets, deleting his copy, and then, upon my receipt of those assets, deleting MY copy so that nothing of it ever existed. And I was supposed to say _nothing_ to the dev about why he was being let go, so that there would be no "trail" leading back to this fiasco. (The dev hounded me for weeks asking what he'd done wrong. It killed me that I was bound and gagged by corporate legal and couldn't tell him.)
I was in so much trouble. I was literally in tears over it. I'd never wasted that much money in my life. That incident pretty much sealed my fate as far as any trust my bosses ever put in me again (not much at all). I was a bit of a pariah in a lot of ways for the next 5 years whereas I had come onto the team as a young social media rockstar at first.
After that, and a couple of other bad scenarios that were less my fault and more due to a completely dysfunctional management and reporting structure, they eventually "transferred" me to another team. Which was really just a way of getting rid of me by sending me to a department that was already starting to outsource overseas and lay people off. It was less messy that way. I was in the first set of layoffs.
Since then, I've had a BIG fear of EVER joining a large corporation EVER again. I prefer to work for small businesses now, even if I get paid less. Much less stressful from an office politics and impact of mistakes standpoint.3 -
There was an android project that I got from my senior.
he told me that another developer already completed most the project and all I have to do is minor changes...
Well when i saw, i was amazed that the code he commented is more than the actual working code without any structure.
He copied most of code from internet.
If it's not working, put in comment else use it.
It took me a whole month to figure out what's going on.
And another 2 months to fix the issues.
Well in last my senior told me that the developer took 1 year to write this code
(to be honest any normal developer can complete that project in less than 3 month)2 -
I'm so tired.
Got enough sleep but tired nevertheless every day.
Situation in the company isn't helping, would really like to get a review as I'm really close to a 'final' version for productive use, none given.
Didn't think far enough and didn't include various OO-things when starting to program this application, so I had to rewrite lots of it. It certainly got better by the time but as it's a grown structure I'd feel happier if someone other than me had seen and cursed the code.
Coworker that has most experience in C# only once implemented something with multiple threads, couldn't help me there.
Could not test the code yet because the hardware was inaccessible and is now potentially broken.
I really like working independently, nevertheless I feel a little bit lost at sea - I can deal with that, but it's exhausting.
Also, trying to get an answer from the colleague who should act as my supervisor whether or not I can work remotely during a CS related course in the semester break for > 2 weeks now. Course admission is the mid of January so I'd like to have an answer this year so I can repeat the basics I'll need if necessary.
Also, Midterm is coming.
It's a lot of little things piling up right now I wouldn't mind if there were only 1-2 of them.
I'm just so damn tired.
I'll go to sleep now.
(In happy news: my internet connection is working pretty decent now, technician that fucked it up apologized and said that he probably needs glasses, he misread the connection number. :D)4 -
1) Read the wiki on git. I probably have enough shorthands and test methods that you won't need much other shit to debug issues.
2) when debugging, remember that if it is there, there's a good reason why I put it there.
3) commented-out code is probably useful for maintenance. I left it there for a good reason. 😛
4) chances are whatever I wrote, was the state of the art at the time I wrote it. There might be better ways to do it now tho.
5) I always work modular. First, understand the structure. (probably also documented on wiki) DO NOT fuck up the structure. If you change it, you document it.
6) If you feel I wrote shit, it's probably because management annoyed the living shit out of me. Pun intended.
7) Your confusion is normal. I don't do dumb shit.4 -
Got demoted, got a pay raise and don't know how to feel about it. A story of how not to drink with your coworkers?
The story begins roughly 8-9 months ago. Me and this coworker (let's name him Tim) go out drinking after a Friday party at the office. We do some rounds and we're both smashed. Tim starts telling me how he's happy with life and that he's earning a nice salary right now. He told me his salary. It was the same as mine. Which was weird - He codes in a more hardcore languages than me and has almost double the time in the company as me. I think after some more drinking I've confessed that I make the same as him. This part is sort of a blur (drinking). I've gotten a pay raise(+30-40%) roughly a few months ago from that point backwards because another company gave be a much higher offer. The company I work for matched to keep me. Anyway, 3 months or so after the drinking,Tim is promoted to team lead, and me and a few other people are added to his team. Conversation slips and he told me his new salary - quite a bit more than me.I think it's safe to assume what happened.
The problem with that is that I was a team lead of 1 person (me) at that time, and I was managing my own time and my own tasks, was working with people individually. I was part of the weekly meetings with the CEO and other team leads. Being stripped of this title wasn't a problem at the beginning, as people still contacted me because of their problems, suggestions, whatever. A few more months pass (to now) and less and less people are contacting me - instead they are talking with Tim, and are asking of his opinion on tasks I should do, where he has no experience and roughly 0 lines in the programming language I code in. This is starting to piss me off.
There are a couple other things to take into consideration as well - The company is hiring a lot of people right now. The whole structure for team leads changed a bit, more team leads then ever right now and new roles added pretty fast.
I've gotten a pay raise a few weeks ago though(10%~).
I'm not sure on how to react to this. Should I comply and just keep on working on these tasks? Or should I still keep contacting people directly on their requests and talk to them directly, take credit for the projects I complete publicly and the stuff I do as I was previously doing? Part of me wants to reroute all of the stupids questions people have to Tim, as he is now responsible for these tasks and get this weight off my shoulders.
I'm starting to shift to learning a new programming language and thinking of jumping ship. Thoughts?6 -
<rant>
I fucking HATE the Arduino environment right now.
First of all: you can't fucking put your project files in a sub folder to the main file. I can't write #include "src/motor.hpp" because it doesn't fucking know what that means.
Turns out you have to put all your header files in the fucking library folder common for all Arduino projects!
Secondly, you can't call your cpp headers hpp, they HAVE to be called h, or the Arduino environment throws a fit and begins whining about being unable to find the fucking files.
Not just that! You can't reference other Arduino libraries from within your library because the environment doesn't know what that means either.
To get around that you need to fucking include the library in your main file, AND THEN you can include it in the library file that uses it. After all, it should be the programmer's job to soon feed a so called IDE, right?
I'M SO FUCKING DONE WITH THIS SHIT! 😤
I'm ready to either program the Arduino directly with an AVR programmer or even port the entire project to the raspberry pi where I have a proper fucking Linux environment with a proper fucking directory structure so I can code proper fucking C++.
Hell I'm even fucking willing to spend all weekend porting all the code myself if necessary.
It's not reasonable that correct fucking C++ code is invalidated because I called the files something "wrong" and put them in the "wrong" directory.
</rant>
"user friendly project board" my ass12 -
PM: this is our super fancy new CI/CD pipeline, it's the greatest. i expect you to learn and understand all this in no time.
devs: so i have to spend some more time on this topic because it's completely new to me and requires some learning...
PM: nooo, that's a super easy task with zero effort, my braindead hamster can do that in no time, so can i, and so can you! let's assign 1 story point for that.
~ 3 months latèr ~
also PM, after he has started developing as well: so i'm realizing there are many things that i have to learn, and it takes me some time. i haven't developed with C++ and <other tool stack> for a longer time. by the way, you guys don't need to check for any quality right now, we need to deliver fast. it's okay, when you have memory overflows, your code is completely crappy, poor architecture or memory overflows, it doesn't matter.
he even has a subtask for migrating his code from VS project to our new project structure, since he refused to learn our pipeline right from the beginning and created VS project instead. シ why is this a subtask? this job can be done in no time, my left vanishing twin named Klaus who has dislexia and hates vim can solve this task in 20 seconds!!!!11
(and still no PR, not even a feature branch in our repo)2 -
Going through a WordPress site that hasn't been updated in over a year. It's so severely infected that even the Wordfence and Security plugins say it's fine. So I'm going through the file structure manually.
File by file, folder by folder manually searching for infected files. This is the most tedious thing I've had to do. But I'm learning some really interesting tips. One file looked empty and I almost missed it because the code had been tabbed over a few hundred times clearing it way off the the right of the screen.10 -
BOSS: Hey we should start implementing this thing in that program
ME: Yes but everything that is required for that at lower level is not yet done
BOSS: Just pretend it's done
ME: that is stupid, even if we have a general idea on how it will be done what's the point of writing code that relies on something that is not yet defined, I need to read that stuff and I don't know how we will structure that data
BOSS: Just make a guess you will fix it when the lower level stuff is done
ME: But it makes no sense! We will basically have to rewrite ground up everything
BOSS: also can you check the printer n°3 it doesn't connect to my PC
😄😄😄😄😄😄😄😄😄😄😄😄😄😄😄6 -
As a final year student it makes me feel proud about things I do now, back in 2014 I was newbie to programming and after the years of study ( I skip collages in order to study by my self at home since my syllabus is too old for me to keep up with new technologies. ) I still feel like shit against brilliant programmers on the internet.
My journey untill now was frustrating and side by side it was fun too, I have spent several days to figure out very minor problems in my programme which made me forced to learn even more in order to avoid silly mistakes in future.
Those four lines of output were really true worth of that forty lines of code.
Every one of us, in their entire life at least once had thought about which programming languages to learn first and yes I was one of those guy who used to search on Google, watched YouTube videos and asked seniors for the same advice but soon I realized it's never enough to completely learn even one language. Each and every programming language is based on similar logical structure. No matter how different it's syntax is it won't make much of a difference.
I am thankful to internet and all of those guys who make video tutorials, help on q&a forum (stack overflow) , publish posts on website and all of IT community guys. I made it this far it's all thanks to you and I know it's just beginning of spectacular journey ahead.undefined thanks programmer programming quote blog blogging journey life of programmer life internet it crowd2 -
So I found some weird library included in this legacy code, didn't really get what it does and why it's there though.
Turns out there's nothing to be found on the internet about it. Absolutely nothing.
So after browsing through the directory structure a bit more I discover a README file. Hoping for answers I opened it, only to find this...3 -
TL;DR:
JuniorDev ignores every advice, writes bad code and complains about other people not working because he does not see their result because he looks at the wrong places.
Okay, so I am really fed up right now.
We have this Junior Dev, who is now with us for circa 8 months, so ca. a year less than me. Our first job for both of us.
He is mostly doing stuff nobody in the team cares about because he is doing his own projects.
But now there's a project where we need to work with him. He got a small part and did implement that. Then parts of the main project got changed and he included stuff which was not there anymore. It was like this for weeks until someone needed to tell him to fix it.
His code is a huge mess (confirmed by senior dev and all the other people working at the project).
Another colleague and me mostly did (mostly) pair programming the past 1-2 weeks because we were fixing and improving (adding functionality) libraries which we are going to use in the project. Furthermore we discussed the overall structure and each of us built some proof-of-concept applications to check if some techniques would work like we planned it.
So in short: We did a lot of preparation to have the project cleaner and faster done in the next few weeks/months and to have our code base updated for the future. Plus there were a few things about technical problems which we need to solve which was already done in that time.
Side note: All of this was done not in the repository of the main project but of side projects, test projects and libraries.
Now it seems that this idiot complained at another coworker (in our team but another project) that we were sitting there for 2 weeks, just talking and that we made no progress in the project as we did not really commit much to the repository.
Side note: My colleague and me are talking in another language when working together and nobody else joins, as we have the same mother tongue, but we switch to the team language as soon as somebody joins, so that other colleague did not even know what we were talking about the whole day.
So, we are nearly the same level experience wise (the other colleague I work with has just one year more professional experience than me) and his work is confirmed to be a mess, ugly and totally bad structured, also not documented. Whereas our code is, at least most of it, there is always space for improvement, clean, readable and re-useable (confirmed by senior and other team members as well).
And this idiot who could implement his (far smaller part) so fast because he does not care about structure or any style convention, pattern or anything complains about us not doing our work.
I just hope, that after this project, I don't have to work with him again soon.
He is also one of those people who think that they know everything because he studied computer science (as everybody in the team, by the way). So he listens to nothing anybody explains to him, not even the senior. You have to explain everything multiple times (which is fine in general) and at some points he just says that he understood, although you can clearly see that he didn't really understand but just wants to go on coding his stuff.
So you explain him stuff and also explain why something does not work or is not a good thing, he just says "yes, okay", changes something completely different and moves on like he used to.
How do you cope with something like this?6 -
So I'm tasked with rewriting the old software my employer uses to track basically anything in his company. They want to stick quite close to the old workflow as much as possible, I get that.
"Why exactly do you need access to the system? No you don't need to look at it just recreate the flow. I'll give you the sql structure is that OK? Oh and this won't take long, you can copy from the old code can't you? Wait why do you need access to the code? No. "
🙄7 -
Just spent an entire night eaning up my codebase...
I optimized some of the functions got rid of unnecessary global variables and changed up the whole file hirearchy so it would be easier to read. After spending all night doing this I went to run the program and for once it seemed everything worked right the first time! However a portion of my application that is supposed to happen at a certain date and time never would run. After spending all night comparing each and every line for what I changed versus my last commit I couldn't find the fallacy in my logic. Everything should still work like it did before. After spending more time looking for bugs I finally realized I didn't break anything when I switched over to this new structure it was the old code that was broken. I went through the old code and after some debugging eventually found the culprit an extra continue statement that prevented my loop from fully executing. Lesson learned sometimes the biggest bugs can spawn from one line of code.4 -
Spent the last month creating a really scalable chat application, with fast front end, all kinds of neat functions such as polls, and a really efficient database structure in Apache Cassandra.. Everything is built to use NoSQL, and even the front-end is using all kinds of features to speed up itself... Now, guess what... The company I'm doing an internship decided that everything needs to be done in MariaDB, and I can basically remove 1/3 of my program, event the front end will get a huge purge of code, and as much as I explained that MariaDB IS NOT FUCKING USABLE FOR A CHAT APPLICATION, and when there are many messages, the access times will get realllllyyy sloow, and that the whole structure there currently is based on NoSQL... Now I can remove all the clustering, custom data types, and bucketing of messages... And store FUCKING JSON IN 'TEXT' FIELDS IN A STUPID SQL DATABASE. FUCK ME6
-
My two cent: Java is fucking terrible for computer science. Why the fuck would you teach somebody such a verbose language with so many unwritten rules?
If you really want your students to learn about computer, why not C? Java has no pointer, no passed by reference, no memory management, a lots of obscure classes structure and design pattern, this shit is garbage. The student will almost never has contact with the compiler, many don't even know of existence of a compiler.
Java is so enterprise focused and just fucked up for educating purpose. And I say it as somebody who (still) uses it as main language.
If you want your students to be productive and learn about software engineering, why not Python? Things are simple in Python can can be done way easier without students becoming code monkeys (assuming they don't use for each task a whole library). I mean java takes who god damn class and an explicitly declared entry point which is btw. fucking verbose to print something into the console.
Fuck Java.17 -
!rant
Need some opinions. Joined a new company recently (yippee!!!). Just getting to grips with everything at the minute. I'm working on mobile and I will be setting up a new team to take over a project from a remote team. Looking at their iOS and Android code and they are using RxSwift and RxJava in them.
Don't know a whole lot about the Android space yet, but on iOS I did look into Reactive Cocoa at one point, and really didn't like it. Does anyone here use Rx, or have an opinion about them, good or bad? I can learn them myself, i'm not looking for help with that, i'm more interested in opinions on the tools themselves.
My initial view (with a lack of experience in the area):
- I'm not a huge fan of frameworks like this that attempt to change the entire flow or structure of a language / platform. I like using third party libraries, but to me, its excessive to include something like this rather than just learning the in's / out's of the platform. I think the reactive approach has its use cases and i'm not knocking the it all together. I just feel like this is a little bit of forcing a square peg into a round hole. Swift wasn't designed to work like that and a big layer will need to be added in, in order to change it. I would want to see tremendous gains in order to justify it, and frankly I don't see it compared to other approaches.
- I do like the MVVM approach included with it, but i've easily managed to do similar with a handful of protocols that didn't require a new architecture and approach.
- Not sure if this is an RxSwift thing, or just how its implemented here. But all ViewControllers need to be created by using a coordinator first. This really bugs me because it means changing everything again. When I first opened this app, login was being skipped, trying to add it back in by selecting the default storyboard gave me "unwrapping a nil optional" errors, which took a little while to figure out what was going on. This, to me, again is changing too much in the platform that even the basic launching of a screen now needs to be changed. It will be confusing while trying to build a new team who may or may not know the tech.
- I'm concerned about hiring new staff and having to make sure that they know this, can learn it or are even happy to do so.
- I'm concerned about having a decrease in the community size to debug issues. Had horrible experiences with this in the past with hybrid tech.
- I'm concerned with bugs being introduced or patterns being changed in the tool itself. Because it changes and touches everything, it will be a nightmare to rip it out or use something else and we'll be stuck with the issue. This seems to have happened with ReactiveCocoa where they made a change to their approach that seems to have caused a divide in the community, with people splitting off into other tech.
- In this app we have base Swift, with RxSwift and RxCocoa on top, with AlamoFire on top of that, with Moya on that and RxMoya on top again. This to me is too much when only looking at basic screens and networking. I would be concerned that moving to something more complex that we might end up with a tonne of dependencies.
- There seems to be issues with the server (nothing to do with RxSwift) but the errors seem to be getting caught by RxSwift and turned into very vague and difficult to debug console logs. "RxSwift.RxError error 4" is not great. Now again this could be a "way its being used" issue as oppose to an issue with RxSwift itself. But again were back to a big middle layer sitting between me and what I want to access. I've already had issues with login seeming to have 2 states, success or wrong password, meaning its not telling the user whats actually wrong. Now i'm not sure if this is bad dev or bad tools, but I get a sense RxSwift is contributing to it in some fashion, at least in this specific use of it.
I'll leave it there for now, any opinions or advice would be appreciated.question functional programming reactivex java library reactive ios functional swift android rxswift rxjava18 -
Recently I launched the minimalistic online drawing app https://okso.app. I wanted it to be a place where people could do fast, ad-hoc, napkin-based-like explanations of any concept as if you are sitting with your friend and trying to explain him/her something during lunch. Don't ask me why it is needed, I was just experimenting.
So, the first concept I've tried to explain with sketches was the Data Structures. Without further ado, here is the interactive ✍🏻 https://okso.app/showcase/... showcase that you may play with.
Of course, not all data structures are covered. And of course, this is not comprehensive material, but rather a cheatsheet that would create visual hints and associations for the following data structures:
- Linked List
- Doubly Linked List
- Queue
- Stack
- Hash Table (with hash collision resolution)
- Tree (including the Binary Search Tree)
- Heap (including Mean Heap and Max Heap)
- Trie
- Graph
Each box on the sketch is clickable, so you may dig into the data structure you're interested. For example `Heap → Max Heap`, or `Heap → Min Heap`, or `Heap → Array Representation`.
The sketches are split into so-called Pages just to make it easier to grasp them, so the users stay focused on one concept at a time, they see the relationship between the concept, and thus, hopefully, they are not getting overwhelmed with seeing a lot of information at the same time on one drawing/page.
Each page has a link to the source-code examples that are implementing the data structure on JavaScript.
The full list you may find in the ✍🏻 https://okso.app/showcase/... showcase.
I hope you find this showcase useful and I hope it will be a good visual cheatsheet-like complement to your data structure knowledge.12 -
Who thought Lua was a good idea for extending gameplay functionality??
It's weakly typed, has no OOP functionality and no namespace rules. It has no interesting data structures and tables are a goddamn mystery. Somebody made the simplest language they could and now everybody who touches it is given the broadest possible tools to shoot themselves in the foot.
Lua's ease of embedding into C++ code is a fool's paradise. Warcraft 3's JASS scripting language had way more structure and produced much better games, whilst being much simpler to work with than Lua.
All the academics describing metatables as 'powerful extensionality' and a fill-in for OOP are digging the hole deeper. Using tables to implement classes doesn't work easily outside school. Hiding a self:reference to a function inside of syntactic sugar is just insanity.
Nobody expects to write a triple-A game in lua, but they are happy to fob it off to kids learning to program. WoW made the right choice limiting it to UI extensions.
Fighting the language so you can try and understand a poorly documented game engine and implement gameplay features as the dev's intend for 'modders', is just beyond the pale. It's very difficult to figure out what the standard for extending functionality is, when everybody is making it up as they go along and you don't have a strongly-typed and structured language to make it obvious what the devs intended.
If you want to give your players a coding sandbox, make the scripting language yourself like JASS. It will be way better fit for purpose, way easier to limit for security and to guarantee reasonable performance. Your players get a sane environment to work in and you just might get the next DOTA.
Repeatedly shooting yourself in the foot on invisible syntax errors and an incredibly broad language is wasted suffering for kids that could be learning the programming concepts that cross all languages way quicker and with way more satisfying results.
Lua is hot garbage for it's most popular application, I really don't get it. Just stop!24 -
I was mentoring a group of students and helping them with their graduation project. I taught them NodeJS, MongoDB & few other things.
One time, one of them came to show me her code, and it has the weirdest and most bizarre structure ever!
I asked her, “who told you to structure your code like that? This is wrong! I didn’t teach you this way!”.
She replies: “<<a local shitty tech startup name>>’s CTO”
When I searched about him, he’s a civil engineer who founded a startup and assigned himself as CTO with no technical background or knowledge whatsoever! FFS students believe that he’s a real CTO and started learning from him 😑 His code was so bad in every way that a fresh would write a better code!5 -
A colleague of mine who doesn't know how to write simple conditions and sends button code from backend in loosely coupled design.
Worst of all she doesn't wants to get updated to the latest programming structure and no signs of learning on how to write clean code! -
I'm trying really hard not to be sensitive, but my manager is making it difficult with their "constructive criticisms" ...
Just finished up a call with them. And I'm so tired. I'm not even angry or upset, I just feel so tired of their bullshit.
I set up a meeting as a courtesy to get them up to date on all the code changes I made. Last night I stayed up late to try and get things in before the deadline and this morning just killed me when they say.
"I don't think I should have given you this."
"I was right, you weren't ready to start doing this."
(Then don't even bother giving me anymore tasks then, I don't fucking care.)
"you clearly don't understand how branches work"
(Absolutely fucking false, I fixed that shit and am very familiar with how to understand the structure of the fucking repo)
"you are rushing and I don't need you messing up the website"
(I'm being proactive you twat, not rushing, making it very difficult for me to do the work and being productive)
Like seriously bro! Don't fucking patronize me for the work I was trying to get out. And trust me this fucking meeting is done in order to get ahead of potential issues, not a time to be condescending of my skills or lack there-of as you seem to so keenly think.
If you had this much doubt about my abilities then why give me the fucking Sr. title? Fucking trust that I'm being honest, and I'm trying to get us to a good spot, not fucking sabotage the company. God fucking damn.6 -
Proudest bug squash? Probably the time I fixed a few bugs by accident when I was just trying to clean up an ex-coworker's messy code.
So I used to work with a guy who was not a very good programmer. It's hard to explain exactly why other than to say that he never really grew out of the college mindset. He never really learned the importance of critical thinking and problem-solving. He did everything "by the book" to a point where if he ran into an issue that had no textbook solution, he would spin his wheels for weeks while constantly lying to us about his progress until one of us would finally notice and take the problem off his plate. His code was technically functional, but still very bad.
Quick Background: Our team is responsible for deploying and maintaining cloud resources in AWS and Azure. We do this with Terraform, a domain-specific language that lets us define all our infrastructure as code and automate everything.
After he left, I took on the work to modify some of the Terraform code he'd written. In the process, I discovered what I like to call "The Übervariable", a map of at least 80 items, many of them completely unrelated to each other, which were all referenced exactly once in his code and never modified. Basically it was a dynamic collection variable holding 80+ constants. Some of these constants were only used in mathematical expressions with multiple other constants from the same data structure, resulting in a new value that would also be a constant. Some of the constants were identical values that could never possibly differ, but were still stored as separate values in the map.
After I made the modification I was supposed to make, I decided I was so bothered by his shitty code that I would spend some extra time fixing and optimizing it. The end result: one week of work, 800 lines of code deleted, 30 lines added, and a massive increase in efficiency. I deleted the Übervariable and hardcoded most of the values it contained since there was no possible reason for any of them to change in the future. In the process, I accidentally fixed three bugs that had been printing ominous-sounding warnings to the console whenever the code was run.
I have a lot of stories about this guy. I should post some more of them eventually.2 -
In today's episode of kidding on SystemD, we have a surprise guest star appearance - Apache Foundation HTTPD server, or as we in the Debian ecosystem call it, the Apache webserver!
So, imagine a situation like this - Its friday afternoon, you have just migrated a bunch of web domains under a new, up to date, system. Everything works just fine, until... You try to generate SSL certificates from Lets Encrypt.
Such a mundane task, done more than a thousand times already... Yet... No matter what you do, nothing works. Apache just returns a HTTP status code 403 - Forbidden.
Of course, what many folk would think of first when it came to a 403 error is - Ooooh, a permission issue somewhere in the directory structure!
So you check it... And re-check it to make sure... And even switch over to the user the webserver runs under, yet... You can access the challenge just fine, what the hell!
So you go deeper... And enable the most verbose level of logging apache is capable of - Trace8. That tells you... Not a whole lot more... Apparently, the webserver was unable to find file specified? But... Its right there, you can see it!
So you go another step deeper and start tracing the process' system calls to see exactly where it calls stat/lstat on the file, and you see that it... Calls lstat and... It... Returns -1? What the hell#2!
So, you compile a custom binary that calls lstat on the first argument given and prints out everything it returns... And... It works fine!
Until now, I chose to omit one important detail that might have given away the issue to the more knowledgeable right away. Our webservers have the URL /.well-known/acme-challenge/, used for ACME challenges, aliased somewhere else on the filesystem - To /tmp/challenges.
See the issue already?
Some *bleep* over at the Debian Package Maintainer group decided that Apache could save very sensitive data into /tmp, so, it would be for the best if they changed something that worked for decades, and enabled a SystemD service unit option "PrivateTmp" for the webserver, by default.
What it does is that, anytime a process started with this option enabled writes to /tmp/*, the call gets hijacked or something, and actually makes the write to a private /tmp/something/tmp/ directory, where something... Appeared as a completely random name, with the "apache2.service" glued at the end.
That was also the only reason why I managed fix this issue - On the umpteenth time of checking the directory structure, I noticed a "systemd-private-foobarbas-apache2.service-cookie42" directory there... That contained nothing but a "tmp" directory with 777 as its permission, owned by the process' user and group.
Overriding that unit file option finally fixed the issue completely.
I have just one question - Why? Why change something that worked for decades? I understand that, in case you save something into /tmp, it may be read by 3rd parties or programs, but I am of the opinion that, if you did that, its only and only your fault if you wrote sensitive data into the temporary directory.
And as far as I am aware, by default, Apache does not actually write anything even remotely sensitive into /tmp, so...
Why. WHY!
I wasted 4 hours of my life debugging this! Only to find out its just another SystemD-enabled "feature" now!
And as much as I love kidding on SystemD, this time, I see it more as a fault of the package maintainers, because... I found no default apache2/httpd service file in the apache repo mirror... So...8 -
How comes that people can write such fucking shitty code?
Because I mean, why the hell would I want a progress indicator while the form is loading?
Actually, let's just not disable the form while it's loading. Let the user get mad when it's data's overwritten.
And best of all. Let's use inconsistent naming and fucking metadata tables so that we don't have any structure and make queries slow.
Yes. I fucking love incompetent consultants. Fucking love them. Good thing he never got hired...2 -
Started a job as a full stack developer. My first task was shocking! Do these small edits on this backend script that collects stuff from one database and edits the entries in another... piece of cake so far!
Here is the project on the TFS...
HOLD ON! IS THIS VISUAL BASIC?!!
I came here to do .Net framework development and .Net Standard... I wasn’t told that there will be VB, I have never used vb.net before.
Now... that I’m going to maintain this script in the future, I decided to rewrite it in C#, few things I learned on my journey of doing this:
1- There is an access modifier in VB called Friend
2- There is a data structure/type called Collection, it’s a value,key pair! Not key value pair... Value first, then key!!
3- Do you know how null is null everywhere?!! In VB they call it Nothing! Yes, as in...
if(myVar == nothing)
{
//stuff
}
Asking the guy responsible for that choice... he thinks VB is easier to read than C#
I DONT WANT YOU TO READ IT, I WANT IT TO MAKE SENSE AND WORK WITH THE REST OF THE C# CODE WE HAVE!!9 -
So, I'm still not certain if it's actually a bug or merely my lack of experience, but I've been working on a 2D platformer game (using only C++ and SDL2) for roughly 2 years now (on and off; sometimes off for months) and I'm extremely embarrassed about this, but for the life of me, I cannot seem to get the player character's movement and collision physics working properly. It's driving me absolutely insane.
I've read articles and tutorials, referenced books, and posted about it in game development communities (e.g., gamedev.com, Discord servers, etc.), but even though the fundamental structure and explanations made sense, getting the code to work has been unsuccessful, albeit not completely so, but if I get one thing working, another thing breaks. It feels like I'm trying to repair a vase that fell off of a skyscraper and turned to dust on the street below.
I've always been a very tech savvy person with a fiery passion for programming, electronics and game/software/embedded/web development, but to be honest, having such a difficult time with things like this that — in theory, at least — seem like trivial bumps in the road have made me feel like I'm never going to be successful in this field. But regardless of the depressing thoughts of worthlessness, my passion doesn't let me stop trying. Who knows, maybe it'll have to remain just a hobby. 😕4 -
I used to think that I had matured. That I should stop letting my emotions get the better of me. Turns out there's only so much one can bottle up before it snaps.
Allow me to introduce you folks to this wonderful piece of software: PaddleOCR (https://github.com/PaddlePaddle/...). At this time I'll gladly take any free OCR library that isn't Tesseract. I saw the thing, thought: "Heh. 3 lines quick start. Cool.", and the accuracy is decent. I thought it was a treasure trove that I could shill to other people. That was before I found out how shit of a package it is.
First test, I found out that logging is enabled by default. Sure, logging is good. But I was already rocking my own logger, and I wanted it to shut the fuck up about its log because it was noise to the stuffs I actually wanted to log. Could not intercept its logging events, and somehow just importing it set the global logging level from INFO to DEBUG. Maybe it's Python's quirk, who knows. Check the source code, ah, the constructors gaves `show_log` arg to control logging. The fuck? Why? Why not let the user opt into your logs? Why is the logging on by default?
But sure, it's just logging. Surely, no big deal. SURELY, it's got decent documentation that is easily searchable. Oh, oh sweet summer child, there ain't. Docs are just some loosely bundled together Markdowns chucked into /doc. Hey, docs at least. Surely, surely there's something somewhere about all the args to the OCRer constructor somewhere. NOPE! Turns out, all the args, you gotta reference its `--help` switch on the command line. And like all "good" software from academia, unless you're part of academia, it's obtuse as fuck. Fine, fuck it, back to /doc, and it took me 10 minutes of rummaging to find the correct Markdown file that describes the params. And good-fucking-luck to you trying to translate all them command line args into Python constructor params.
"But PTH, you're overreacting!". No, fuck you, I'm not. Guess whose code broke today because of a 4th number version bump. Yes, you are reading correctly: My code broke, because of a 4th number version bump, from 2.6.0.1, to 2.6.0.2, introducing a breaking change. Why? Because apparently, upstream decided to nest the OCR result in another layer. Fuck knows why. They did change the doc. Guess what they didn't do. PROVIDING, A DAMN, RELEASE NOTE. Checked their repo, checked their tags, nothing marking any releases from the 3rd number. All releases goes straight to PyPI, quietly, silently, like a moron. And bless you if you tell me "Well you should have reviewed the docs". If you do that for your project, for all of your dependencies, my condolences.
Could I just fix it? Yes. Without ranting? Yes. But for fuck sake if you're writing software for a wide audience you're kinda expected to be even more sane in your software's structure and release conventions. Not this. And note: The people writing this, aren't random people without coding expertise. But man they feel like they are.5 -
What you could have:
- simple project structure
- common lib with modular logic
- import logic as needed in you services
What you do:
- waste months to write an opinionated framework that works only if used in a super specific way
- have a fat sample project as example
- use a code generator to copy and rename the said sample project whenever you create a new service
- have everything break whenever something new is added in the framework
- oh and keep the framework in active development while others work on the client services, so lots of things will break often and out of nowhere
Fucking god, i hate when people make pet projects out of work projects2 -
!rant
Wish me luck. I am done with the spaghetti mess.
There is a stock management system written using laravel and jQuery. There are mistakes in database structure. There are lots of I-dont-know-what-this-function-do-so-i-should-leave-it-alone codes. There are lots of repeated and duplicated functions.
Gonna start things from scratch and will also start using vue. This week's Thursday and Friday are public holidays here. I hope I can code my ass off and finish the migration/refactoring/cleaning shit by Sunday.1 -
How surprising is it when a person designs code in a very clear and impressive structure and just when you think about asking them for guidance, they reveal themselves to be complete turds?
I've been working with this person's "infra" code, at work. I've rewritten some classes to use their infra. I had a vague idea of how the classes work. I had no idea of how their code works. Expectedly, there were some issues but now only minor ones remain.
I asked them for a description of what I'm supposed to do for the few bugs I'm facing. They replied in such a condescending tone, it made me want to punch them through the screen.
Almost a month later, we're still going back and forth with emails. I've been swallowing it and responding calmly. I never got direct answers. Always deflections to irrelevant things or veiled insults. I took it because they did correct one silly error of mine that actually my code reviewer should've caught. (What's worse is that it got introduced by me just before my review and commit.)
But does that give them the right to insult me in front of the whole team including my project manager? I got a reply today from them with everyone of note in cc implying very clearly that I have not done any work. They highlighted a line from my code with some todo tag (that was not meant for them) to make their invalid point. A line that's unrelated to the bug I asked them about. This is after I proved them wrong when they insisted that I had done something wrong about a feature related to the bug.
If you don't understand what I asked for fucking ask me to ask again. But do not fucking try establish yourself on higher ground by pointing out irrelevant things in my code.
I was shocked and enraged that they'd do such a thing. I double checked everything like a mad man. Despite knowing that the fix has to come from them, I was instantly transported to the noob stage, grasping at straws. I wanted to send a really scathing reply right away but my manager asked me to wait.
My mind is now a see saw shifting between a panicked noob questioning every fucking thing I ever did in my nada life and a hungry enraged monster looking to maul that fucking shithead for burning me like that.1 -
I talk to clients. I prepare the requirements. I design the database structure. I design prototype frontend. I do documentation. I code. I debug. I update change log.
I die.3 -
It took me way too long to understood what I wrote few weeks ago. After looking at the code for few minutes and looking at my db structure, I finally realized. I also instantly remembered that I wrote that "user is shown as ad" comment hoping I will not confuse myself in future. Apparently I failed.
Temporarily added next line of comment to help the future me.
Deep down I know that I should change function name itself to become clearer, more meaningful and easier to understand.
But writing that comment, making those screenshots, combining the 2 images in Pinta and writing this rant is faster than thinking the new name.3 -
Everyone's saying "oh my, I'm so ashamed of my code I wrote 4 days ago, it's so horrible"
Well... At least you can relate to someone. When I look at my project's code I wrote half a year ago (or sometime before that) I'm genuinely surprised to see I'm not browsing some library's codebase - the abstraction layers, the generics, the structure... it's brilliant! It's as SOLID as it gets. -
Init Mud. (A poem)
A Giant Ball of Mud.
Haphazard in structure.
A sprawling, enthralling, duct-taped warning,
Of things to come.
Tumbling down a well-worn path
Of untamed growth and aftermath.
Into Spaghetti-code Jungle.
Where quick and dirty wins the day
And warnings spoken hold no sway
Or fall on deaf ears in the undergrowth.
Tumbling.
Gaining weight.
Bits stuck on.
Bytes taken out.
Patches,
On top of patches,
On top of obsolescence.
Hacked at, uploaded
All elegance eroded.
Made and remade
Then duplicated
Relocated
Refined and redesigned
Suffocated by expedient repair after expedient repair
The original self no longer there
Replaced by something
Unwieldy.
Design resigned to undefined
An architectural mystery
Whose function can no longer be
Seen or gleaned
From obfuscated in-betweens
Of classes
Made and remade
Duplicated.
Abused.
A squirming library of disused.
Pulled at, prodded, committed
Corners cut and parts omitted.
Bug ridden branches fused to a rotting core.
The structure...
The system...
The content...
Mud.1 -
tl;dr; A co-worker and I had an disagreement on our package structure. They went straight to our team lead instead of trying to solve this in our team and by that letting me do my job.
Do I overreact by assuming that this was malicious?
A co-worker asked me to do their code review today. There was nothing really wrong there, mainly something a bad generator created.
However at one point we had a disagreement about the naming structure of the packages. We both agreed to disagree, so I thought we could bring that up in the next daily, as it's something the team should agree on.
Shortly after that, they told me on Slack, that they relayed the matter to our team lead to get their opinion. Wtf.
My role in the team is that of a technical lead. Even though I like to discuss such topics in the team and not straight up dictate decisions.
By going directly to our team leader, they basically circumvented the whole team. This really rubs me wrong the way.
Maybe I'm just overreacting?5 -
One of our projects migrated their file-repository to another one during a major release.
Instead of giving this task to an experienced programmer, they gave it to the head of the respective dev department due to the usual release panic.
Soo.... He wrote the migration tool. It was executed during the release. Everything seemed fine so far.
A few days later. Someone from the above project came to my team due to some "strange behaviour on the production database".
They reported that they couldn't download some of the user's documents due to unknown reasons.
After quickly analyzing the current state of the new file-repository, we concluded that the affected documents did not exist in the new repository.
Then we took a look at the so called migration tool...
Well.. After nearly 30 min. we knew the root cause for that.
They only migrated the first 4 levels of the folder structure. Due to the assumption that "we don't use deeper nesting". (Facepalm)
As the head of their department wrote it, no one seems to questioned it either. Nor did they made a code review and ended up with a tool with hard coded urls to the production db, no version control, no build tool, no ci, nothing. Breaking nearly every possible company standard.
However.. That's not it. When analyzing their migration tool we noticed another even more dangerous thing.
They mixed up the id generation of the migrated documents resulting in a random assignment between customers and documents. Which is quite bad as this contains sensitive information. E.g. passports
They offered us quite a nice amount of money to fix this until EOB. We declinded as it was simply not possible in that time, but agreed to support them with the new tool.
After some time I heard that they migrated production again. And they fucked it up again. They never talked to us after we offered them support...
The third and final migration was written by us. Not only migrated it correctly. It was also way faster. By factor 20.
In the end we haven't gained anything from this rushed project as the penalties were piling up due to this fucked up migration.
After all this time I'm not sure who is to blame. In my opinion, partly all of them.
Head of department who can't and shouldn't code.
Seniors who didn't review the code and didn't ask for help.
Release mgmt who put way too much pressure on the devs. -
I've spent a lot of time messing around with C, having struggled with object-oriented programming (due to not really knowing how best to structure things, not knowing when to apply certain design patterns).
When writing C code, I'd write OOP-esque code (pass around a struct to routines to do things with it) and enjoyed just making things happen without having to think too much about the overall design. But then I'd crave being able to use namespaces, and think about how the code would be tidier if I used exceptions instead of having every routine return an error code...
Working with Python and Node over the past couple of years has allowed me to easily get into OOP (no separate declaration/definition, loose typing etc.) and from that I've made some fairly good design decisions. I'd implemented a few design patterns without even realising which patterns they were - later reading up on them and thinking "hey, that's what I used earlier!"
I've also had a bit of an obsession with small executable files - using templates and other features of C++ add some bloat (on Windows at least) compared to C. There were other gripes I had with C++, mostly to do with making things modular (dynamic linking etc.) but really it's irrelevant/unreasonable.
And yes, for someone who doesn't like code bloat, working with Node is somewhat ironic... (hello, node_modules...)
So today I decided to revisit C++ and dust off my old copy of C++ in a Nutshell, and try to see if I could write some code to do things that I struggled with before. One nice thing is that this book was printed in 2003, yet all of its content is still relevant. Of course, there are newer C++ standards, but I can happily just hack away and avoid using anything that has been deprecated.
One thing I've always avoided is dynamic_cast because every time I read about it, I read that "it's slow". So I just tried to work around it when really if it's the right tool for the job, I might as well use it... It's really useful!
Anyway, now I've typed all this positivity about C++ I will probably find a little later on that I hit a wall with what I'm doing and give up again... :p7 -
MENTORS - MY STORY (Part II)
The next mentor was my first boss at my previous job:
2.- Manager EA
So, I got new in the job, I had a previous experience in other company, but it was no good. I learned a lot about code, but almost nothing about the industry (project management, how to handle requirements, etc.) So in this new job all I knew was the code and the structure of the enterprise system they were using (which is why the hired me).
EA was BRILLIANT. This guy was the Manager at the IT department (Software Development, Technology and IT Support) and he was all over everything, not missing a beat on what was going on and the best part? He was not annoying, he knew how to handle teams, times, estimations, resources.
Did the team mess something up? He was the first in line taking the bullets.
Was the team being sieged by users? He was there attending them to avoid us being disturbed.
Did the team accomplished something good? He was behind, taking no credit and letting us be the stars.
If leadership was a sport this guy was Michael Jordan + Ronaldo Nazario, all in one.
He knew all the technical details of our systems, and our platforms (Server Architectures both software and hardware, network topology, languages being used, etc, etc). So I was SHOCKED when I learned he had no formation in IT or Computer Science. He was an economist, and walked his way up in the company, department from department until he got the job as IT Manager.
From that I learned that if you wanna do things right, all you need is the will of improving yourself and enough effort.
One of the first lessons he taught me: "Do your work in a way that you can go on holidays without anyone having to call you on the phone."
And for me those are words to live by. Up to that point I thought that if people needed to call me or needed me, I was important, and that lessons made me see I was completely wrong.
He also thought me this, which became my mantra ever since:
LEARN, TEACH AND DELEGATE.
Thank you master EA for your knowledge.
PART I: https://devrant.com/rants/1483428/...1 -
Was working on my game engines scripting language for the terminal and this is how things went in roughly the space of 30 minutes
"Ok let's get a basic language structure defined..."
*Time passes*
"Ok, so now I have basic structure and concepts of a potential auto translation framework, external library use and just a dash of complicated file structures and use"
And I still haven't written a single line of code except for ignoring whitespace when starting to lex the file to transpiling ;-;2 -
Holly shit, they will never understand....
If you come to dev, minding his buissness, writing some code, beeing focused, with headphones on, etc. You absolutely destroy his cache of things in mind, you stay next to him gazing at his screen and throwing away madly words that you need some data extracted from database NOW and you will stay standing next to him gazing when he quickly types few lines of ultra-wide screen of SQL querry with all the fucking joins and shit you wanted with exac aliases you understand and makes one typo but query executes and spits out some data. He didn't notice that something is wrong with it becouse he didn't memorize database's data, and he sends it to you.
Now you are coming back to him pissed and in general fighting mood becouse he did one fucking typo when you was actively pressurizing him to make fucking query faster while you absolutely destroyed his flow of work (in meaning he now needs to dive back into code, figure out why he was editing given file and what was idea for further structure)
Now you are standing again next to him and absolutely pissing him off that he fucked up and made one fucking typpo that unfortnately database didn't say "nope" but it instead spit out wrong data.
If you can relate to "you" stated above, sincerly fuck you.
If you can relate to "he" stated above, I feel ya man, its fucking annoying, isn't it?1 -
As I already said on devrant, I'm a freelance web developer and I also often sell my services for teaching, loving that. Currently I'm teaching PHP with 30 students and it's going very well.
But yesterday, I received an offer for giving another course next month, this time on HTML and CSS, for a company I don't know yet. Almost every line of this email is wrong, outdated by 20 years, or just basically meaningless...
So I thought I could do my best to translate this as close as possible to the original, preserving the wrong formulations too, just for you devranters fellas.
"Hello,
I have an offer for a 2 days course for 5 people (level 1+ and/or 2), on HTML5 and CSS3. Below, the program :
1. XHTML AND CSS2 INTRODUCTION
Advantages and benefits of change
Understanding compatibility for different versions of browsers
HTML, XHTML, CSS edition tools : presentation of the different tools
The CSS language : different types of selectors : class of selector, identifier of selector, contextual selectors, grouped selectors
Blocks of text, boxes of text
The CSS1, CSSP, CSS2 properties
Relative and absolute measures units
2. LAYOUT TECHNIQUES
Full CSS, XHTML websites demo
Positioning with the position property, positioning with the float property
Columns creation
Layout for forms
Layout for data tables
Layout for menus
3. INTRODUCTION TO SVG (SCALABLE VECTOR GRAPHICS)
Role and importance of SVG
Using SVG on client side : basic shapes
SVG structure of document, tags examples
Using CSS styles with SVG
Different integration methods for SVG in a XHTML document
4. OPTIMISATION OF JAVASCRIPT CODE
Introduction to DOM and Javascript
Access to document objects : different access techniques, using this keyword, create elements dynamically
Positioning elements with the help of Javascript : positionning elements relatively to the mouse, move elements
Show/hide elements for creating hierarchical menus
Code optimisation techniques : using objects, objects litterals, loops optimisation
Can you please give me your availability ?"
Seriously...
CSS-fucking-1 ! Is it a course for dinosaurs ?
...And if only my rant was just about the program...
It's totally impossible to cover all these subjects in only 2 days with people of different levels and experience.
The guy exactly said to me : "don't worry about the program, it's an old text but they agreed to it anyway. They just want to learn HTML and CSS, some of them already know it but want to learn more, and the others are total beginers.".
And here is the meaning for the "(level 1+ and/or 2)" part in the email.
So... Surprizingly, I accepted the offer, but asked for at least a 3rd day. I'm waiting for their answer, but I'll do it anyway, adapting the course content to the actual students knowledge. I need the money, after all.
Wish me luck...
It's just sad that these formation companies are selling bullshit to clients that just want to learn something useful. It's too often like that, they sell shitty/useless programs and we have to catch up in real time with students that don't understand why they don't learn what was told to them.3 -
Python Question:
I'm learning Python and thought I'd start with web services since that's a concept I'm familiar with. My question is, in the attached code, am I doing it right when it comes to python? Cuz I feel like I'm following the same structure I follow in C# WebAPI and NodeJs
What about naming style? Is is the default for python? cuz I'm also using C# naming style :\
Thanks in advance ranters :)26 -
While in Mec engineering university program I was in a robocup team (small robots playing soccer against an other team of robots using AI).
I designed the mechanical structure of the robots. After 2 years of development (while all those years our goal was to participate in the upcoming international tournament) we realized the software part of the project was mismanaged and really far behind. I couldn't accept that and learned how to code over night. Couldn't let the project I put so much time in die because of someone else.
With the help of others that came from other backgrounds than software, we made it the to tournament and the following two others after this one.
Now my job involves programming more than standard mec engineering. It also pushed me to do a masters in robotics in which I developed my coding skills even more.3 -
iiiii fffffuckingg hate articles that just explain something
put a piece of code
that piece of code uses X amount of classes/models
they never mention what structure are those models/classes made of
what is inside them
i cant continue following the article because i dont know what is inside them
they just put it in ur face and say Fuck you
no
Fuck YOU
<font size="1000000px;">FUCK</font>
<font size="10000000000000000em;">YYYYYYYOOOKUUUUUUUUUUU</font>
U MOTHFFFFFUCKERRRRRRRRRRRRRRRRRRRR
USELESSS ARTICLE
zzzzz
frustratioms
my nerves are torn
broken
disabled
demented
day
in life
obsession
hell
unreal
what is life
q
what are doing
why are doing this
what is the point of living
how long does it take for a man to die
why are some people blessed with luck and some are not
zzzz
u know what is even more frustrating
girls
yes
ohdont get me started on this topic
well i warned u
the path towards abundance lies upon the few; thou who shalt not risk high; shalt always stay thus low
girls also frustrate me bc
i always do every thing nice and im always nice
so i realized
being nice is fake as fuck and doesnt fuckin work
being urself doesn't do a Fckimg tHING
hhh
frustrations
.
breathe
.
in this hardlife
only the strong survive in this world
- tupac shakur
zzzz
so yes bavk where i was saying girls frustrate me because i always do what im supposed to
so
i tried being thou who shalt i am not
guess what mothrfucker
it works when u be a gofdamn fkig low mothfckr a u know a goddmn fkig punk then they respect u and want u
back i fckked up
i turned back to my real me, the nice me
and then they left me
they think being nice = means being weak
FUCCKK YOUU
ssss
zzzf
kindness != weakness
U FCKING WHORES
UNDERSTAND THAT
zzzzz
breathe
i just wanted to have a walk outside and thenit started raining
so i had to stay inside bc of the rain
m
i am very lonely
u know i was very fine when i was lonely at a very young age but now i need a living entity beside me
with me
i fking need
wait i will cuddle my fluffy dog rn maybe i will feel better
br b wait for me ok
i feel better now
fck
i remembered that goddamn girl again
man i feel so heart broken
srsly
i have sunk into the deepest depths of endless depression I think
it doesnt feel nice
it feels very lonely and depressing down here
but i thimk tjat is be because i care too much
some people say i overthink
I dont overthink
i am like the stealth people
the shadow people
i stay quiet and observe
everything
i always know what is happening but i rarely speak about it
and people dont realize
so they think they can fool me
no
everything has its limits
so much lies that im sick of it
i always tell it how it is
i always reward those who help me
i always help those who help me
i never forget those people
zzzZZ
why is it that people who dont give a single fucking Fffffficxkkckck about me
are the ssame people i almost care the MOST?
i cross hundreds and thousands of miles to visit a person, invest hours of my time to do that
i do that....
and they wouldnt even step 1 foot in front to see me....
what kind of life is this
vv
feel like cryin rn
.
zzzzz
.
i dont understand what one must do
what is the point
all i want is to be happy
that is it
but being happy is.... i wanted to say the hardest part of life but now my voice told me being happy is a state of mind
myself answered me that being happy ? is a state of mind?
so that means if i want to be happy even if everything around me is falling apart
in my mind i can create a psychological world that would make me.... happy ....?
or what
i dont understand what did myself tell me
why do i care so much if im lonely
u know my friend from college we go to same computer science college
hes a very smart man but a fake FUCKING friend, plastic as fuck
he reads philosophy booms and told me
"when a man is lonely for long enough, he will slowly start to fall apart"
that is me...... that is ...truth......
he quoted a philosopher from some book
zzzz
he also said a quote he read about the meaning of life
"this life is endless pain and the only purpose of life is to reduce this pain as much as possible so we can be happy"
what the fck that is incredibly depressing
what the fuck im actually crying rn
i feel stabbed in the back and left behind and cheated on, all of those happened and some of them are happening right now
dont know what to think about the reasons
all of this causes me such huge anger and depression and that is whT keeps me going
going by working harder than i am supposed to
without all this hurt there would be no glory
all this effort..... it better pay off at the end...... please God..... i beg you....
i have completed 50% of my life purpose, let me do the rest so i can die in peace...13 -
my fist job... i get to edit a c++ code written by a (mind you) programming company that they teamed with for the past(mind you again) 3 years ...
now just for starters, this code was edited by self taught coders that are really good engineers(they are really good), that didnt really know how the code worked before yet they still changed it, and it worked, how ever they wanted some changes.
i get the project files, and there is not one single comment describing what is happening... only code commented out... and no documentation what so ever were done....
so below are some of my comments that i wrote after i finished adding what i had to add, and fixing what i had to fix:
/*first rule of C anything coding, no actual functions in the header, well let me introduce you to a fully functioning thread running program all in the header, enjoy*/
//used to control the thread
// i honestly dont know why, but it worked soooooo yea...
// TG uncommented // for absolutely no reason what so ever...
//used to communicate with the port
//the message to be sent to the inverter, which has a code that will handle it
//hmmmmmm...
//again not usefull since we are using radioButtons
// same ...
// same ...
// same ...
// they said they dont even use this mode, but none the less, same ...
// calculate the checksum for the message
// ....
// one of the things that work, and god forbids i touch
// used for the status displayed on screen
// used for the (censored :P) status in the message
// used for the (censored :P) status in the message
// not used at all, but the message structure contains it and i refuse to edit that abomination
// used for the (censored :P) status in the message
// used for the (censored :P) status in the message
// just dont ask and roll with it, i didnt want to touch this
// saaaaame ...
// if before true this saaaaaame ...
// value of the (censored :P)
// it pains me to say it again, but this is no use
// (censored :P) input
// (censored :P) input
// only place seen , like for real it was just defined,sooooo yea :D
// well you know how it is
// message string
// check sum string
/****below from feed back****/
// (censored :P) coming in
// (censored :P) coming in
// (censored :P) coming in
// (censored :P)
/****below is the output to the receiver ****/
//(censored :P)
// (censored :P)
// (censored :P)
// (censored :P)
//you thought we were done.... nope, no idea. it comes in the feedback
// not used, literally commented out the one time it was used
// same ...
// XD, man this is a blast, same ...
// nope ...
// used to store the port chosen for the communication
// is a static for the number of data we have recorded so far, and as a row indicator for the recording method
// used to indicate the page we are on in the excel file, as well as the point in physical point in the test
// same ... oh look at this a positive same :D
// same ...
// same ...6 -
¡rant|rant
Nice to do some refactoring of the whole data access layer of our core logistics software, let me tell an story.
The project is around 80k lines of code, with a lot of integrations with an ERP system and an sql database.
The ERP system is old, shitty api for it also, only static methods through an wrapper to an c++ library
imagine an order table.
To access an order, you would first need to open the database by calling Api.Open(...file paths) (yes, it's an fucking flat file type database)
Now the database is open, now you would open the orders table with method Api.Table(int tableId) and in return you would get an integer value, the pointer.
Now for the actual order. first you need to search for it by setting the search parameter to the column ID of the order number while checking all calls for some BS error code
Api.SetInt(int pointer, int column, int query Value)
Then call the find method.
Api.Find(int pointer)
Then to top this shitcake of an api of: if it doesn't find your shit it will use the "close enough" method of search.
And now to read a singe string 😑
First you will look in the outdated and incorrect documentation given to you from the devil himself and look for the column ID to find the length of the column.
Then you create a string variable with ALL FUCKING SPACES.
Now you call the Api.GetStr(int pointer, int column, ref string emptyString, int length)
Now you have passed your poor string to the api's demon orgy by reference.
Then some more BS error code checking.
Now you have read an string value 😀
Now keep in mind to repeat these steps for all 300+ columns in the order table.
News from the creators: SQL server? yes, sql is good so everything will be better?
Now imagine the poor developers that got tasked to convert this shitcake to use a MS SQL server, that they did.
Now I can honestly say that I found the best SQL server benchmark tool. This sucker creams out just above ~105K sql statements per second on peak and ~15K per second for 1.5 second to read an order. 1.5 second to read less than 4 fucking kilobytes!
Right at that moment I released that our software would grind to an fucking halt before even thinking about starting it. And that me & myself and I would be tasked to fix it.
4 months later and two weeks until functional beta, here I am. We created our own api with the SQL server 😀
And the outcome of all this...
Fixes bugs older than a year, Forces rewriting part of code base. Forces removal of dirty fixes. allows proper unit and integration testing and even database testing with snapshot feature.
The whole ERP system could be replaced with ~10 lines of code (provided same relational structure) on the application while adding it to our own API library.
Best part is probably the performance improvements 😀. Up to 4500 times faster and 60 times less memory usage also with only managed memory.3 -
I might create a coding course for people actually interested in learning how to program correctly (not Get Rich Quick Bootcamp style, not webapps, not magic Javascript incantations).
I have an idea on how to structure it but I worry it'll be too weird for most people to follow (starting from binary theory and then teaching machine code and then working upwards to C and beyond) explaining how a computer works along the way, showing the real errors with annotations explaining things, etc.
I've always wanted to teach in this format but I feel as though it's too.. idk, "useless" to most people? But I've never had a friend go through e.g. CodeAcademy and come out knowing how to actually make applications from start to finish without just hacking together random React components and hoping the frankenstein project works well enough.
The target demographic would be those either completely new to programming or just have a fundamental or web-centric preexisting knowledge, or maybe those who simply want to understand computers better.
Am I barking up a shitty tree?28 -
Committing code with the same commit message although you refactored several times and changed the structure1
-
ok. been going full steam since December with 1 day off since. managing teams, review designs, designing, prototyping, code reviewing, mentoring, and doing project. management. i get that it's a "flat" org structure but hire proper PMs and BAs instead of trying to pinch pennies. all the while, i see marketing with deeeeeeep pockets spending money on anything like mommy and daddy are funding their spring break getaway. i need time to disconnect and recharge my spirit.2
-
Fellow C# programmers, how often do you use #region in your projects and how important do you think it is?
I have found myself using it increasingly. It works great for me and I feel that I can structure my code better.10 -
Taking over development of a system from some other guy who just straight up dropped it with zero documentation. The code looks like he wrote it after watching some getting started tutorial. There is no structure. Some methods and statements are just empty. And he spelt 'connection' three different ways in the same file.
God help me...1 -
Pretty late for week 86, but I just remembered my first paid freelancing web dev work.
While not my worst experience, it was a pretty horrible task given to me...
I was helping someone implement a new design on a pretty outdated (visually and technically) PHP site.
I was getting paid crap. The guy wouldn’t even let me look at the HTML, let alone touch it, so definitely no PHP work, either...
Literally the only code I was allowed to write was CSS. So, I’m supposed to be restyling, but I can’t change the structure at all, or even ADD CSS SELECTORS.
Fine, I’ll just make your site fragile as fuck by using nested relative selectors.
#main:nth-child(3) > div > div > div > button
As if that wasn’t bad enough, there were some pages...I shit you not...that had A DOZEN LEVELS OF NESTED TABLES.
WHY. DEAR GOD WHY.
For a simple checkout page.
So, on some pages I was literally trying to access elements through relative selectors, nested within levels and levels of tables. FFS
Needless to say, I did not work for him for long. Even if I wanted to deal with that crap, my time is much more valuable than what I was being paid. -
it would help if i had time to learn even a little more C, as I'm bumbling my way through the Linux kernel and GodMode9 (an amazingly powerful 3DS manip tool for everything from the SD card to the NAND to literally raw FIRM0/FIRM1 bootloader access) to try amd patch some code from GM9 into the kernel to handle the SD card *properly* so Linux 3DS doesn't constantly hang when reading/writing to the SD card, to enable Wi-Fi access (same bus location and similar bus structure as SD/NAND access, different processor,) enable NAND decryption and access (yes, really, NAND is encrypted via software, which is... ...fun...) and more.
tl;dr: the 3DS hardware, C, and others' code collectively make me wanna slit my fucking wrists. Hopefully my sacrifice allows higher-level programming languages to be visble for low-level jobs in the future.4 -
I always had this mentality that I shouldn’t rely on a certain library or framework for my entire project because what if one day they stop supporting it. (Yeah I’m talking to u vuetify) That’s why I came up with this code structure that for everything that I wanna do I have a ‘driver’ library all coded by myself that interacts with that third party framework or library so if they stop supporting it I could just change a couple of lines of code in my driver file and my codebase should be working again. But I feel like this ‘driver’ approach is not the most efficient way of going in terms of memory usage. Do you guys think I should keep it simple and directly use those libraries or this is actually not a bad approach.7
-
My friend sent me this as WYSIWYG
/* A simple quine (self-printing program), in standard C. */ /* Note: in designing this quine, we have tried to make the code clear * and readable, not concise and obscure as many quines are, so that * the general principle can be made clear at the expense of length. * In a nutshell: use the same data structure (called "progdata" * below) to output the program code (which it represents) and its own * textual representation. */ #include <stdio.h> void quote(const char *s) /* This function takes a character string s and prints the * textual representation of s as it might appear formatted * in C code. */ { int i; printf(" \""); for (i=0; s[i]; ++i) { /* Certain characters are quoted. */ if (s[i] == '\\') printf("\\\\"); else if (s[i] == '"') printf("\\\""); else if (s[i] == '\n') printf("\\n"); /* Others are just printed as such. */ else printf("%c", s[i]); /* Also insert occasional line breaks. */ if (i % 48 == 47) printf("\"\n \""); } printf("\""); } /* What follows is a string representation of the program code, * from beginning to end (formatted as per the quote() function * above), except that the string _itself_ is coded as two * consecutive '@' characters. */ const char progdata[] = "/* A simple quine (self-printing program), in st" "andard C. */\n\n/* Note: in designing this quine, " "we have tried to make the code clear\n * and read" "able, not concise and obscure as many quines are" ", so that\n * the general principle can be made c" "lear at the expense of length.\n * In a nutshell:" " use the same data structure (called \"progdata\"\n" " * below) to output the program code (which it r" "epresents) and its own\n * textual representation" ". */\n\n#include <stdio.h>\n\nvoid quote(const char " "*s)\n /* This function takes a character stri" "ng s and prints the\n * textual representati" "on of s as it might appear formatted\n * in " "C code. */\n{\n int i;\n\n printf(\" \\\"\");\n " " for (i=0; s[i]; ++i) {\n /* Certain cha" "racters are quoted. */\n if (s[i] == '\\\\')" "\n printf(\"\\\\\\\\\");\n else if (s[" "i] == '\"')\n printf(\"\\\\\\\"\");\n e" "lse if (s[i] == '\\n')\n printf(\"\\\\n\");" "\n /* Others are just printed as such. */\n" " else\n printf(\"%c\", s[i]);\n " " /* Also insert occasional line breaks. */\n " " if (i % 48 == 47)\n printf(\"\\\"\\" "n \\\"\");\n }\n printf(\"\\\"\");\n}\n\n/* What fo" "llows is a string representation of the program " "code,\n * from beginning to end (formatted as per" " the quote() function\n * above), except that the" " string _itself_ is coded as two\n * consecutive " "'@' characters. */\nconst char progdata[] =\n@@;\n\n" "int main(void)\n /* The program itself... */\n" "{\n int i;\n\n /* Print the program code, cha" "racter by character. */\n for (i=0; progdata[i" "]; ++i) {\n if (progdata[i] == '@' && prog" "data[i+1] == '@')\n /* We encounter tw" "o '@' signs, so we must print the quoted\n " " * form of the program code. */\n {\n " " quote(progdata); /* Quote all. */\n" " i++; /* Skip second '" "@'. */\n } else\n printf(\"%c\", p" "rogdata[i]); /* Print character. */\n }\n r" "eturn 0;\n}\n"; int main(void) /* The program itself... */ { int i; /* Print the program code, character by character. */ for (i=0; progdata[i]; ++i) { if (progdata[i] == '@' && progdata[i+1] == '@') /* We encounter two '@' signs, so we must print the quoted * form of the program code. */ { quote(progdata); /* Quote all. */ i++; /* Skip second '@'. */ } else printf("%c", progdata[i]); /* Print character. */ } return 0; }6 -
To a fellow dev on my team; If you notice a difference between the spec and the database structure, just fucking talk to the BA! Don’t code something that fails and put it into QA.
And constantly saying “It’s not my job” is a severely career limiting move you dogmatic little shit.2 -
We are at the end of the school year, at least in France.
This is my recap of this shitty year.
My school try to teach programming, and that’s just a try.
Some of the dudes do not event know what a variable was.
For a second year university diploma, they don’t teach OOP, no Git, no DP, no JS, no clean code or whatever.
So at the end of the year, you’ll be able to code in procedural, no versioning, spaghetti code and a big mess in folder structure, lack of interactivity because of poor JS knowledge.
Well a codebase which makes you crying blood, literally.
And that’s what a second year university diploma ...
Fortunately for the most curious there’s so much to learn out of the school but, damn, why are some schools so retarded ?
For almost 8k€/year you just receive a piece of paper and you’re still a shit in your *suppose to be* job.8 -
We are all about structures, clean code and many other things that make our life easier, right?
Well... It's not all white and black...
As talked many times, projects can be rushed... Client budgets can be low at the start and only then grow...
Let me take an example:
Client X needs a tool that helps his team perform jobs faster. They have a $500 budget. So... Testing, clean architecture and so on - are not really a viable option. Instead, you just make it work and perform that task as needed. So the code has minimal patterns, minimal code structure, a lot of repetitive parts and so on.
Now... Imagine that 3 months pass by without any notice and clients are ultra happy with the product. They want more things to be automated. They contact developers and ask for more things. This time they have a bigger budget but short timeframe.
So once again, you ignore all tests, structure and just make it work. No matter what. The client is happy again.
A year passes and the client realizes that their workflow changed. The app needs total refactoring. The previous developer has no time for adjustments at this point and hires a new company. They look at the code and rants spill out of their mouth along with suicidal thoughts.
So... What would you do? Would you rant about "messy project" or just fix it? Especially since people now have a bigger budget and timeframe to adapt to changes.
Would you be pissed on such a project?
Would you flame on previous devs?
Would you blame anyone for the mess?
Or would you simply get in and get the job done since the client has a "prototype" and needs a better version of it?
---
Personally, I've been in this situation A LOT. And I'm both, the old and new dev. I've built tons of crappy software to make things work for clients and after years - they come back for changes/new things. You just swallow the pill and do what is needed. Why? Well, because it's an internal system and not used by anyone outside their office. Even if it's used outside the office - prototyping is the key. They didn't know if the idea would work or be helpful in any way. Now they know and want it done correctly.6 -
...a project with well defined requirements that doesn't change shape every day making useless any attempt to define a solid code structure...my dear client I can do all you want but you can't change your ideas every 10 minutes
-
just found out a vulnerability in the website of the 3rd best high school in my country.
TL;DR: they had burried in some folders a c99 shell.
i am a begginer html/sql/php guy and really was looking into learning a bit here and there about them because i really like problem solving and found out ctfs mainly focus on this part of programming. i am a c++ programmer which does school contest like programming problems and i really enjoy them.
now back on topic.
with this urge to learn more web programming i said to myself what other method to learn better than real life sites! so i did just that. i first checked my school site. right click. inspect element. it seemed the site was made with wordpress. after looking more into the html code for the site i concluded all the images and files i could see on the site were from a folder on the server named 'wp-content/uploads'. i checked the folder. and here it got interesting. i did a get request on the site. saw the details. then i checked the site. bingo! there are 3 folders named '2017', '2018', '2019'. i said to myself: 'i am god.'
i could literally see all the announcements they have made from 2017-2019. and they were organised by month!!! my curiosity to see everything got me to the final destination.
with this adrenaline i thought about another site. in my city i have the 3rd most acclaimed high school in the country. what about checking their security?
so i typed the web address. looked around. again, right click, inspect element and looked around the source code. this time i was more lucky. this site is handmade!!! i was soooo happy because with my school's site i was restricted with what they have made with wordpress and i don't have much experience with it.
amd so i began looking what request the site made for the logos and other links. it seemed all the other links on the site were with this format: www.site.com/index.php?home. and i was very confused and still am. is this referencing some part of the site in the index.php file? is the whole site written inside the index.php file and with the question mark you just get to a part of the site? i don't really get it.
so nothing interesting inside the networking tab, just some stylesheets for the site's design i guess. i switched to the debugger tab and holy moly!! yes, it had that tree structure. very familiar. just like a project inside codeblocks or something familiar with it. and then it clicked me. there was the index.php file! and there was another folder from which i've seen nothing from the network tab. i finally got a lead!! i returned in the network tab, did a request to see the spgm folder and boooom a site appeared and i saw some files and folders from 2016. there was a spgm.js file and a spgm.php file. there was a contrib, flavors, gal and lang folders. then it once again clicked me! the lang folder was las updated this year in february. so i checked the folder and there were some files named lang with the extension named after their language and these files were last updated in 2016 so i left them alone. but there was this little snitch, this little 650K file named after the name of the school's site with the extension '.php' aaaaand it was last modified this year!!!! i was so excited! i thought i found a secret and different design of the site or something completely else! i clicked it and at first i was scared there was this black/red theme going on my screen and something was a little odd. there were no school announcements or event, nononoooo. this was still a tree structured view. at the top of the site it's written '!c99Shell v. 1.0...'
this was a big nono. i saw i could acces all kinds of folders. then i switched to the normal school website and tried to access a folder i have seen named userfiles and got a 403 forbidden error. wopsie. i then switched to the c99 shell website and tried to access the userfiles folder and my boy showed all of its contents. it was nakeeed naked. like very naked. and in the userfiles folder there were all, but i mean ALL files and folders they have on the server. there were a file with the salary of each job available in the school. some announcements. there was a list with all the students which failed classes. there were folders for contests they held. it was an absolute mess and i couldn't believe it.
i stopped and looked at the monitor. what have i done? just to learn some web programming i just leaked the server of the 3rd most famous high school in my country. image a black hat which would have seriously caused more damage. currently i am writing an email to the school to updrage their security because it is reaaaaly bad.
and the journy didn't end here. i 'hacked' the site 2 days ago and just now i thought about writing an email to the school. after i found i could access the WHOLE server i searched for the real attacker so if you want to knkw how this one went let me know in the comments.
sorry for the long post, but couldn't held it anymore13 -
Little bit of background I've been a front end developer for the past eight years not a good one but I get by. Last 4 working with consulting firms for fortune 500 clients. Big projects big plans big structure, following someone else's lead and just knowing the basics of code reviewing, git flow, code deployment and everything else... life happens and i end up as a front end developer for a big company not tech related that wants to depend less from consultants and do more in house dev. Seems a pretty straightforward project front in angular. Back on python doing queries to a database with sql server. I finish the on-boarding and after two weeks finally get access to the repos. Worst spaghetti code I've ever seen. Seems like someone took a vanilla script project from 10 years ago and push it into an angular tutorial project. Commented code, no comments for the code, deprecated functions still there, no use of typescript nested ifs hell. I try to do my job doing new features do comments clean up a bit. Senior developers get annoyed5
-
I need some opinions on Rx and MVVM. Its being done in iOS, but I think its fairly general programming question.
The small team I joined is using Rx (I've never used it before) and I'm trying to learn and catch up to them. Looking at the code, I think there are thousands of lines of over-engineered code that could be done so much simpler. From a non Rx point of view, I think we are following some bad practises, from an Rx point of view the guys are saying this is what Rx needs to be. I'm trying to discuss this with them, but they are shooting me down saying I just don't know enough about Rx. Maybe thats true, maybe I just don't get it, but they aren't exactly explaining it, just telling me i'm wrong and they are right. I need another set of eyes on this to see if it is just me.
One of the main points is that there are many places where network errors shouldn't complete the observable (i.e. can't call onError), I understand this concept. I read a response from the RxSwift maintainers that said the way to handle this was to wrap your response type in a class with a generic type (e.g. Result<T>) that contained a property to denote a success or error and maybe an error message. This way errors (such as incorrect password) won't cause it to complete, everything goes through onNext and users can retry / go again, makes sense.
The guys are saying that this breaks Rx principals and MVVM. Instead we need separate observables for every type of response. So we have viewModels that contain:
- isSuccessObservable
- isErrorObservable
- isLoadingObservable
- isRefreshingObservable
- etc. (some have close to 10 different observables)
To me this is overkill to have so many streams all frequently only ever delivering 1 or none messages. I would have aimed for 1 observable, that returns an object holding properties for each of these things, and sending several messages. Is that not what streams are suppose to do? Then the local code can use filters as part of the subscriptions. The major benefit of having 1 is that it becomes easier to make it generic and abstract away, which brings us to point 2.
Currently, due to each viewModel having different numbers of observables and methods of different names (but effectively doing the same thing) the guys create a new custom protocol (equivalent of a java interface) for each viewModel with its N observables. The viewModel creates local variables of PublishSubject, BehavorSubject, Driver etc. Then it implements the procotol / interface and casts all the local's back as observables. e.g.
protocol CarViewModelType {
isSuccessObservable: Observable<Car>
isErrorObservable: Observable<String>
isLoadingObservable: Observable<Void>
}
class CarViewModel {
isSuccessSubject: PublishSubject<Car>
isErrorSubject: PublishSubject<String>
isLoadingSubject: PublishSubject<Void>
// other stuff
}
extension CarViewModel: CarViewModelType {
isSuccessObservable {
return isSuccessSubject.asObservable()
}
isErrorObservable {
return isSuccessSubject.asObservable()
}
isLoadingObservable {
return isSuccessSubject.asObservable()
}
}
This has to be created by hand, for every viewModel, of which there is one for every screen and there is 40+ screens. This same structure is copy / pasted into every viewModel. As mentioned above I would like to make this all generic. Have a generic protocol for all viewModels to define 1 Observable, 1 local variable of generic type and handle the cast back automatically. The method to trigger all the business logic could also have its name standardised ("load", "fetch", "processData" etc.). Maybe we could also figure out a few other bits too. This would remove a lot of code, as well as making the code more readable (less messy), and make unit testing much easier. While it could never do everything automatically we could test the basic responses of each viewModel and have at least some testing done by default and not have everything be very boilerplate-y and copy / paste nature.
The guys think that subscribing to isSuccess and / or isError is perfect Rx + MVVM. But for some reason subscribing to status.filter(success) or status.filter(!success) is a sin of unimaginable proportions. Also the idea of multiple buttons and events all "reacting" to the same method named e.g. "load", is bad Rx (why if they all need to do the same thing?)
My thoughts on this are:
- To me its indentical in meaning and architecture, one way is just significantly less code.
- Lets say I agree its not textbook, is it not worth bending the rules to reduce code.
- We are already breaking the rules of MVVM to introduce coordinators (which I hate, as they are adding even more unnecessary code), so why is breaking it to reduce code such a no no.
Any thoughts on the above? Am I way off the mark or is this classic Rx?16 -
Such glorious Wednesday...
#1: Friend needs me to keep her cats, hasn't called yet to give me keys (and she's leaving tonight).
#2: Got an e-mail from a job I applied, rejected cause I flunked the impromptu technical interview (with the usual pretty wording).
#3: Helping a friend with his dissertation code in Java. Just a marvellous spaghetti code with minimal semblance of a structure and a hodgepodge of various solutions found on the Internet. 2H 40M and still nothing... At least I have my stress ball to save me from mental breakdown...1 -
!rant
For all of youse that ever wanted to try out Common Lisp and do not know where to start (but are interested in getting some knowledge of Common Lisp) I recommend two things:
As an introductory tutorial:
https://lisperati.com/casting.html/
And as your dev environment:
https://portacle.github.io/
Notice that the dev environment in question is Emacs, regardless of how you might feel about it as a text editor, i can recommend just going through the portacle help that gives you some basic starting points regarding editing. Learn about splitting buffers, evaluating the code you are typing in order for it to appear in the Common Lisp REPL (this one comes with an environment known as SLIME which is very popular in the Lisp world) as well as saving and editing your files.
Portacle is self contained inside of one single directory, so if you by any chance already have an Emacs environment then do not worry, Portacle will not touch any of that. I will admit that as far as I am concerned, Emacs will probably be the biggest hurdle for most people not used to it.
Can I use VS Code? Yes, yes you can, but I am not familiar with setting up a VSCode dev environment for Emacs, or any other environment hat comes close to the live environment that emacs provides for this?
Why the fuck should I try Common Lisp or any Lisp for that matter? You do not have to, I happen to like it a lot and have built applications at work with a different dialect of Lisp known as Clojure which runs in the JVM, do I recommend it? Yeah I do, I love functional programming, Clojure is pretty pure on that (not haskell level imo though, but I am not using Haskell for anything other than academic purposes) and with clojure you get the entire repertoire of Java libraries at your disposal. Moving to Clojure was cake coming from Common Lisp.
Why Common Lisp then if you used Clojure in prod? Mostly historical reasons, I want to just let people know that ANSI Common Lisp has a lot of good things going for it, I selected Clojure since I already knew what I needed from the JVM, and parallelism and concurrency are baked into Clojure, which was a priority. While I could have done the same thing in Common Lisp, I wanted to turn in a deliverable as quickly as possible rather than building the entire thing by myself which would have taken longer (had one week)
Am I getting something out of learning Common Lisp? Depends on you, I am not bringing about the whole "it opens your mind" deal with Lisp dialects as most other people do inside of the community, although I did experience new perspectives as to what programming and a programming language could do, and had fun doing it, maybe you will as well.
Does Lisp stands for Lots of Irritating Superfluous Parentheses or Los in stupid parentheses? Yes, also for Lost of Insidious Silly Parentheses and Lisp is Perfect, use paredit (comes with Portacle) also, Lisp stands for Lisp Is Perfect. None of that List Processing bs, any other definition will do.
Are there any other books? Yes, the famous online text Practical Common Lisp can be easily read online for free, I would recommend the Lisperati tutorial first to get a feel for it since PCL demands more tedious study. There is also Common Lisp a gentle introduction. If you want to go the Clojure route try Clojure for the brave and true.
What about Scheme and the Structure and Interpretation of Computer Programs? Too academic for my taste, and if in Common Lisp you have to do a lot of things on your own, Scheme is a whole other beast. Simple and beautiful really, but I go for practical in terms of Lisp, thus I prefer Common Lisp.
how did you start with Lisp?
I was stupid and thought I should start with it after a failed attempt at learning C++, then Java, and then Javascript when I started programming years ago. I was overwhelmed, but I continued. Then I moved to other things. But always kept Common Lisp close to heart. I am also heavy into A.I, Lisp has a history there and it is used in a lot of new and sort of unknown projects dealing with Knowledge Reasoning and representation. It is also Alien tech that contains many things that just seem super interesting to me such as treating code as data and data as code (back-quoting, macros etc)
I need some inspiration man......show me something? Sure, look for a game called Kandria in youtube, the creator, Shimera (Nicolas Hafner) is an absolute genius in the world of Lisp and a true inspiration. He coded the game in Common Lisp, he is also the person behind portacle. If that were not enough, he might very well also be Shirakumo, another prominent member of the Common Lisp Community.
Ok, you got me, what is the first thing in common lisp that I should try after I install the portacle environment? go to the repl and evaluate this:
(+ 0.1 0.2)
Watch in awe at what you get.
In the truest and original sense of the phrase (MIT based) "happy hacking!"9 -
My last post was a year ago. What brought me back here is the ability of AI to agree and apologize to anything and everything, while producing the worst hopeful code.
4 days I wasted, trying to make an android audio visualizer, but AI... sigh.
It gave me the wrong structure of FFT bytes emitted. I corrected it
It gave me the wrong logarithm calc, I corrected it
It gave me the wrong sampling rate, I corrected it.
It gave me the wrong texture order, I corrected it.
It gave me the wrong glsl sample2d, I corrected it.
It gave me the wrong textureID generation, I corrected it.
It gave me a render which was about 10 fps, I found out that instead of using native onDraw, I had a fcking delta time in my shader. I almost corrected it, I gave up
Lets go to code generators with Annotations.
Like always, starts very positive, until I start to correct it.
It gave me the wrong file locations, I corrected it.
It gave me the wrong order of find copy modify and write to .build, I didnt correct it.
It gave me regexes to find annotations. Im like So whats the use of an "ANNOTATION PROCESSOR"
It apologizes and used a fucking regex in the processor,..... I didnt correct it, in the end, I was left with a separate module, targetting iOS Android and JVM, with an annotation processor implemented in jvmMain, which tries to modify commonMain src by finding annotations with regexes, which wont run on app build or app sync project, but only on java -jre command pointing to that fucking .java class in that module, which takes at least 2 mins to run, and Finally generate 0 files.
I needed to rant, I understand LLMs are just models of words built and stolen from the most intelligent and dumbest people out there. But Im an idiot for getting my hopes high. I cant build anything new and unheard of. I used to do that. I once made a textView + image print util for a bluetooth printer just to say FU to libraries and heavy sdks. like literally rasterizing shit to bluetooth packets. I needed to let off some steam. I havent been here in a year so I dont know what reactions I can get from this rant. I bet someone will just say yeah we tired of 'Fuck AI' rants. but shit, it hurts. When I gave up on that visualizer, I downloaded an app, I think its called project M, like in reference to MilkDrop.. like the Winamp Milkdrop. I opened it, played something on spotify, and let my eyes go blind9 -
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 -
I just realized that I subconsciously believe more lines of code means slower code.
It's not intellectual. I understand that little lines of code often are just calling other code. That this is not how Big O works or does not replace benchmarking and that some data structure requires a lot of code for immense speed up. E.g: B-Trees with sizes at page size for big amounts of data read from a secondary storage location.
But still, when I see a function with just 3 to 5 lines, my inner monkey believes it must be fast.
Know your biases, I guess.3 -
Sooooo this is the thing.
For a stupid fucking project at work we basically have to scrum manage a bunch of individual components on a rather large web app.
We start with the html and css and js bs and we all have to work on different sections of one page at a time. Large blocks right? Ok cool.
Originally I had suggested to build everything inside individual php files and then stack them up with require(). As fucking simple as fucking that. Except that the manager does not have php on her pc. The other two developer don't either. I am the only one that fucks with php OUTSIDE our fucking servers.
Go fucking figure...the lead developer does not fuck with php outside the servers.....man
So, because i know it would be a shitstorm with something as basic as installing i dunno...fucking xampp my manager said that she needs a different solution.
Fuck it...fine...whatever. i know go. So i make a fucking server wich upon being fired you can just code the templates and paste them where they need to go. Docs and everything..a sane folder structure and everything and a fucking pipleline for the assets and everything. I would have thought that shit was good enough but I even added a cmd tool that merges all the fucking html files together into one html file with all the shit included.
All in Golang. It works, its fast and i can just give them the fucking folder with the exe and it will work.
I dunno if this was the best way to do it. But it took me maybe 20 mins to do it and it works.
I would have expected our manager to be impressed but she legit did not gave two fucking shits about the fact that one of her developers is able to create this mini server for static sites shitstain project in 20 minutes.
Man I don't want praise. She thinks that jquery is the best thing in the world so I don't expect much. But shit man.......a better reaction would have been better. She basically went meh ok as long as it works.
I also showed them a demo of a flutter project to replace the shitty ass webview filled school app that they have for android and ios. Shit is native and it looks beautiful. Ask me what she said.
Go on, fucking ask me.
She said tha if it would take me much time to continue on that the she would rather leave it to the third party vendor that currently makes the app.
I told her that such shitty app costs the school 40 fucking thousand dollars a year that I could do in a fucking month, which would also be better since it would raise the salaries of me and the other 2 developers and will more importantly make us more valuable to the school.
Said that she would think about it because we have a lot of projects.
I
Fucking
Hate
It
When someone fucks with my ability to make more money. I hate it fam. And i fucking despise being limited by other people.
Fuck this week.
I am never gonna grow in here. Ever. But it pays the bills so fuck it.6 -
!rant just a question. Sorry in advance for the long post.
I've been working in IT in Windows infrastructure and networking side of things for my entire career (5years) and recently was hired for a role working with AWS.
We use Macs and we use *nix distros for days. I've only ever dabbled for 'funsies' before with Linux because every previous job I held was a Windows house and f*** all else.
I'm just wondering if anyone here might have some insights as to a great way to learn the Linux environment and to learn it the right way. I'm not the best Windows admin ever and will never claim to be, but I have seen stuff that other people have done that makes me want to swing a brick at someone's head. And I feel that with all of the setup wizards and the "We'll just do it for you." approach that Windows has used since forever it allowed enough wiggle room for people that didn't know what they were doing to f*** sh*t up royally. I'm not familiar enough with Linux to know if this is also a common problem. I know that having literal full-access to every file in your OS can cause a n00b like myself to mess up royal, thus the question about learning Linux the right way.
I vaguely understand the organization of the folders and file structure within Linux, and I know some very basic commands.
sudo rm -rf /*
Just kidding
But All of my co-workers at my new job are like mighty oaks of knowledge while I'm a tiny sapling. And at times I've been intimidated by how little I know, but equally motivated to try and play catch-up.
In addition to all of this, I really want to start learning how to program. I've tried learning multiple times from places like codecademy.com, YouTube tutorials, and codeschool.com but I feel like I'm missing the lesson that explains why to use a certain operation instead of another. Example: if/else in lieu of a switch.
I'm also failing to get the concept of syntax in certain languages I've tried before. Java comes to mind real fast.
The first language I tried teaching myself was C++ from YouTube. I ended up having a fever dream that night about coding and woke up in a cold sweat. Literally, like brain overload or something. I was watching tutorials for like 9 hours straight.
Does anyone know of a training resource that will explain, in terms a 5 year old would understand, what the code is doing and why? I really want to learn but I'm starting to lose steam cause I'm just not getting it.
Thank you in advance for any tips guys and gals. I really appreciate it. Sorry for the ridiculously long questions.5 -
Are there any tools, points of reference, barebones templates, bits of advice, etc. that anyone can share or direct me to that could potentially a programmer with ADD stay organised and keep projects/code structured?
Just a bit of background:
I am 29 years old and have battled with severe Attention Deficit Disorder since early childhood. No hyperactivity, just a mind that is constantly running at light speed. I have a tendency to lose focus on the main goal in my projects and I fall victim to feature creep more than I'd like to admit—to the extent that on countless occasions, I've ended up just starting projects over from scratch because they became too convoluted and hectic.
I've spent the past 2~3 months working on a sort of companion app for players of the game Warframe using Dart/Flutter. The main purpose of the app is to provide players with an accessible and customisable agenda to help with keeping in-game goals organised (oh, the irony). I have made a decent amount of progress, but I consistently find myself working on various bits and pieces of code (usually) without finishing each of them before moving on to something else. What I end up with is a tangled yarn ball of code and I get lost and overwhelmed in the chaos.
Any feedback or advice is much appreciated.9 -
I have been working on IoT projects for last five years. After using MQTT in many of my projects I have realized that there is a huge learning curve for the beginners to understand and implement MQTT in their projects. The packet structure of MQTT is complex and MQTT packets are difficult to debug. Also customizing the open source MQTT brokers are also difficult for the beginners, and sometimes even for the experts.
To make IoT and Messaging simple, I am designing a new protocol which uses JSON packets for data exchange and is far less complex than MQTT. I am also developing an open source project which will contain a server (with load balancer support), a python client, a Javascript client and a python based load balancer. I hope this project will reduce the development time as the protocol is easy to understand and the open source code is fully modular & easy to customize.
This will be my very first contribution to the open source community. Wish me luck! -
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 -
I just started but I'm already tired.
For some years I have worked in the industry, not a lot, I know right but I really wonder how do you deal with all "not code-related" bullshit.
IT should be a dynamic field but somehow it is stuck inside the business logic which is all about the money and that does not take care of the real matter which is "code engineering".
- Most of the projects I have seen are an utter mess.
- No real structure
- Code is literally thrown somewhere to make stuff works and fix bugs
- Features which should require X amount of time are planned and shipped earlier ignoring best practices.
- The customer changes idea every week
- Nobody wants to pay for a reasonable architecture but prefer to keep financing un-maintainable projects that only God knows where they have been made (presumably in Hell)
- Juniors devs with no real senior following them committing unreasonable stuff
- Seniors devs thinking they are but they aren't.
- Company that keeps delivering projects even if they have not the required amount of people to make it in time.
Seems like nobody wants to stop and take time to think and make the right decisions. I see people running around me like crazy ants.
But, above all, what really kills me deep inside is HR. You are looking for "dynamic" "talented" "cool" devs but you are not willing to pay them enough.
Should I talk about LinkedIn?
Oh, God... Even the worsts companies sound like they are into Fortune 500. I feel so much hypocrisy here.
I have worked for big and small IT companies.
In the end, is all about "inside politics", everything which is getting financed is not because of usefulness but because of "relationship".
I started coding when I was really young.
After ten and more years, I finally take the job of my dreams but everything is shuttering under my feet.
If you have some words of wisdom, I'm here to hear you.
PS.
I'm not a native English speaker, I apologize for any mistake.6 -
How do y'all deal with reading other people's code?
Context: was given a frontend project (I'm a frontend dev) that was started and is managed by a backend dev who just started doing frontend.
I want to start from scratch as I don't understand a thing he codes, conventions are all off, and the structure is just weird.5 -
I do not work developing, besides this is really a passion for me. Said that, today I was talking with my boss.
Boss: Your idea is great, I love this tool you made.
Me: Thank you, I just need to finish some details, this last dramatic change in our structure messed up with a lot of things.
Boss: Yes, I have some ideas to we code more.
Me: Great! I love development! We can do ...
Boss: No, we can use your time with other things as it is more expensive. I'm going to get a boy still in college to develop.3 -
Fucking fuck !
I work with a senior Dev,
It’s pretty much like am working under him....
He’s like a great Dev no doubt about it
But !!!!
He’s a fucking dumbass when it comes to working in a team. He makes changes in my code without telling me. He says He forgot to tell me , every single time
When I ask him how a piece of code works , he says it’s pretty much obvious and acts like even a 6 year old kid Would know this ,
He doesn’t think 2 steps ahead before solving a problem usually creating another problem !
We were once working on a language which we weren’t very good at , so I suggested him to ask another Dev in our company about inputs on our code structure to which he completely Disagreed saying they really won’t know much and that he knows more than them..
Fucking dumbass thinks he knows more than most ...
I have tried confronting him multiple times but he feels but he just won’t listen...1 -
I just realized that in my company , the code review is not important.... And the source code is fucked up.... The structure is like functional programming and Oop combine with redundant function everywhere.
And in the source code there's a folder called depreciating service , I asked them what is that , they told me it is the service previously but not recommended for using it.
I was like "you mean deprecated"? Omg
They don't care about code review and clean code here.
My struggle here is they dare to create one class for the entire project and every code are in that class...
This is fucking not acceptable. -
<!doctype confusedRant 😕>
Plot: we need to release our website in two weeks which holds at least a thousand pages. All these pages are manually migrated from the old website, which doesn't have a database. Current status: 650 pages/1000 are completed, 40 different templates need to be adapted. I'm alone on these templates, my colleagues create the pages and fill the new database
So I'm working on the templates a WebDev coded for our website on a licensed CMS, and had this decently simple html block that looks like a square and consisting of roughly this (Emmet style):
a.area > blockquote > strong.title + p
After adding another <a> element inside the p, I noticed that my <a> wouldn't display and bust the whole look of the square.
Just for more details, the CSS the dev made is ultra specified (meaning each element is too precisely "described" : div.class .child .child2 { /* styles */ } when it could be .class .child2 for example). Also, the templates he made need to be compatible with any "module" the website has, thus the need of this high specificity
So I fired up the DevTools to check what happened, and had:
Expected: a.area > blockquote > strong.title + p > a
Actual result: some new a.area were wrapping the <strong>, the <p> and the <a> I just added. The source code was not showing any of this but just the rules I initially wrote - the expected result
Wtf?! I thought the JS the dev made was adding elements. I disabled said JS, and bam, these a.area were still wrapping everything!! What black magic would add these stupid tags I never asked for.
So I went looking in the CSS files in case some wizardry was happening, but everything was OK.
I tried changing my structure, changing tag (swapping a.area to p.area or without .area), HTML just said "nope, have those please".
Eventually I rewrote my own module out of frustration after three quarters of an hour fiddling with this stupid "module". I hate losing time for such shenanigans and under a lot of pressure because of deadlines.
Still haven't figured why those <element>.area would wrap everything out of nowhere...3 -
Hello devs. This happens to be my first rant. And I got a question to start off.
I'm looking for an existing public/open-source React project which is not too hard to understand and has a good folder/file structure and code structure. Something that gives me an idea of how a good production level code and project should be.
Any recommendation is appreciated. Can be your own project too.
Thank you 😊.10 -
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 -
Have you ever seen a tree data structure implementation in any code base?
I wonder why recruiters are so desperately asking how to invert binary trees in my coding interviews🥴4 -
I manage the infrastructure of an application. Responsible for setup, maintenance and upgrades of all the associated servers, databases, filesystems and tuning. The business area is responsible for maintaining the content and structure of the app.
A couple of weeks ago, the business area started asking me for the system admin passwords in an attempt to integrate a remote service. The reason was because he didn't want to store his own credentials in Jenkins. Imagine the shock when they were told no.
Then a week ago, they asked for the password again so they could update a properties file. Again, the answer was no.
We sent them an email yesterday asking for their change management number so we could make the change to the properties file. They were absolutely shocked to find out that we hadn't already updated the file because they had already deployed their code changes to go with the properties file last Thursday. They submitted the request to us on Friday.
Getting real tired of people screwing up and pointing the finger back at me. -
So I just realized (while rewriting some code) Python can't import stuff from a sibling directory without voodoo tricks. Seriously. In 21st century.25
-
I'm not sure if I have made devEnemies so far, because nobody has pissed in my good-morning-office-coffee yet. But I think my tendeny to perfectionism in syntax and code structure may have been a PITA in the ass for some coworkers sometimes...3
-
Did the simplest corridor gen I could think of. The tile that makes up corridors is different than the tile that makes up the rooms. They are drawn the same here though. In the floor data structure they are different types. This will allow me to easily place doors the like. The dots are potential door placements.
Now that I have simple room gen working I can work on filling it with 3d models to make up walls, doors, etc.
Most of the time the rooms connect on the whole map. But once in a while they do not. I like this as I will incorporate mining. The final map will be much bigger. This is 32x32 and I want 256x256. I will need to figure out how to determine room density versus grid size.
I need to spend some time cleaning up the code and try and generalize the code. I will need to allow for pregenned rooms as well with defined entry points. The entry points on these rooms is all random. It will probably be tricky to do random room to pregenned room corridors. Proximity seems to work. So prox to a predefined door location should work.4 -
The „UI-God“ in our team has never heard of dry or clean code.
Clashing classnames for modules in global namespace, gives a f* about patterns, naming conventions, structure and everytime I rebase it breaks my code.
I need the same amount of time fixing his work as he spends on it. -
So we're doing this contract work for this other company and the project is just an overcomplicated piece of garbage where they shoved every buzzword technology into it just because. I managed to get the code just about organized and functional on our side of the contract and it was looking up when suddenly the management decides "we had a rough start, lets start over, learning from our mistakes"
So I was thinking "cool, there were a lot of problems with this overcomplicated pre-optimized stack, surely we can only do better".. oh boy how naive I was. See Im not the guy in charge of the infrastructure (unfortunately) and really the project structure across this huge multi service project is a free-for-all kind of management.. so we had a call on friday where they explained how the new structure should be built... 3 new technologies, more micro services and even worse dependency tree later I was contemplating suicide on the spot.
I tried to make this shit usable and efficient and all my fucking work went down the drain in a single day of these fuckers throwing more buzzwords at the problem... I can't even get a new empty project started without browsing our huge 100+ repo project git for which dependency Im still missing to even run it...
I fucking hate this retarded piece of crap project and I hope every "manager" and "developer" with an exception of very few chokes on a cock...2 -
Anybody wanna contribute to this, find issues...?
https://github.com/Ganofins/...
I know the code structure is worst...but I am trying to improve it
Sorry for that16 -
Today I was forced to write spaghetti code.
When your database structure isn't set up properly, that happens...
I'm already sure I will need to revisit this piece of literal shit when we revise that structure. Though, it'll be much easier and logical, and I'll probably be able to just delete a big part of the code and implement it as intended. -
Joined a new project. The codebase is… Jesus Christ Vampire Hunter, is there ANY decent project in vue which has an hint of readibility in this damn world?
Every single time anyone talks about vue I roll my eyes “no I swear we managed it well!” 600 lines of code components. Is there even a good way to structure it for big apps?9 -
I was watching this fantastic talk on coding through refactoring:
https://m.youtube.com/watch/...
Highly recommended....
And it got me all enthusiastic about coding again and then I realised, at my last work place, the "we value code quality" corporate hellhole you'd be criticised for taking too long by management and for changing too much code by coworkers.
And a month later, you'd come back to the code and some other coworker would have jammed in a bunch of extra if statements and absolutely fucked your nice structure....1 -
Every time I try and write C++ code, I end up getting annoyed with my approach and trying several different ways to structure my code before giving up and reverting to writing the exact logic I need in C.
It is most likely due to lack of experience with writing C++ programs, and one day I'm sure I will finally work out how to apply the right patterns at the right time and find it quicker and easier to write good code. But for now, I use C since it is very easy to bend into whatever shape I desire.4 -
Okay, going to delve into the world of C game programming. I come from a JS/React background and wondering where to start. I did a C project back in uni so I know some foundations.
Idea is a 4x space game with simple 2d shapes representing ships, inspired by an old game I can't remember the name of (anybody?)
Firstly, I am thinking Allegro as the lib, it seems to be more maintained than SDL. Does that seem good? Though not sure where to start, or any tutorials for someone who is scratchy with C.
Any advice on how to structure my code?
I like the idea of entity component system, is that sensible?
Cheers for any help10 -
Has to fix a bug in our old products web interface, how did I ever put up with it. In some places it has 7 nested iframes. It is also some of the worst code I have ever seen, no user input is sanitised plus there is no structure to the code, try looking for a CDs element without going into chrome dev tools is impossible as there are 52 separate CSS files1
-
Half rant, half shameless self-advertisement (I guess)
I created a (currently rather basic) devRant sidebar for atom.io:
https://github.com/sambadevi/...
But this STUPID thing took me WAY too long to code it, the plugin structure was sooo frustrating that I decided to recode the whole thing after I had probably 80% done!
Reminder to self:
Next time just use another DOM element...1 -
I have a PHP related question.
I noticed a few frameworks make use of this structure of code and it makes absolutely no sense to me. There would be a PHP file, and the contents of the file would be as follows:
<?php
return [
‘a’ => ‘b’
];
My only understanding is that this is an array/object but I have no idea how these values would even be accessed.
Like, there is no array variable, how can a php file simply return something into a void? There isn’t a function or variable to catch that array.
How does this even work?23 -
!rant
Buy some colored pens. The more colors the better.
I did it out of curiosity. Ended up being a life saver when taking notes and planning work on paper. It probably cut my work in half. I spend more time writing stuff on paper and planning stuff, but when I do write 10 lines of code, they turn out to be pure gems fitting perfectly in the entire structure. I write them with tons of confidence, knowing that I had thought of everything and I didn't forget anything, because everything is right there, in color, on the diagrams that I drew.2 -
for the life of me I cannot figure out in my mind how to structure this project I want to start, and jumping right into coding does not improve this mental block.
At work this Golang code base has a clean architecture, so easy to maintain and extend, and I'm unable to replicate it on my own project(s). It sucks to be an ignorant.2 -
Alright... maybe it's time to call it quits...
NLegs changed the ID structure... The URL is like
http://.../yyyy/MM/dd/id.html
Before id was unique... so thats what I have in my DB, the ID column is int. primary key.
Now id by itself is no longer unique...
---
Actually no.... After changing the code to just pick the next ID (like autonumber) and check uniqueness using the url...
It turns out actually the "new issues" are old.... they just changed which image to show in the front page thumbnails...5 -
Making a dev enemy? Quite simple. Asked too many questions for the dev. I wanted to learn and understand his reasons, he thought I was undermining his position. Other time, I forced him to make the source code be consistent with the structure of applications existing code. Dude came, made some commits adding features in places suitable for him, despite the code having clean layer separation, which took me long time to achieve.
-
I feel fucking stupid about using a custom node system at work. It is designed to generate an xml file for configuration. However, when using a node I cannot add more to the node unless the node has data. So I gotta call a function to inject useless XML into the node for it to not be empty. I literally set the internal data to <key></key>. It is stupid and I hate it. Just let me create my node hierarchy damn it!
Is this some weird data pattern I should know about? Like what does preventing adding data to an empty structure do? I have the root node. Is that not enough. Remember, this is custom node system that is probably fucking 20 years old. The previous coders did a lot of walled garden shit that I also hate. Prevents reuse of code. This code might just be more of that shit.1 -
TLDR;
Side project update.
Made simple nlp library in python and published it’s first version to open source.
Now I can feed it with parsed pdf text.
See rant https://devrant.com/rants/2192388/...
Why ?
Cause during reading book about nltk I couldn’t find simple extendible way to provide support for polish language and I wanted to abstract stemming, word normalization, tokenizer etc. so I can provide ex. different conditions for separate text files and don’t write much code what is an asset when you work solo.
It’s about 12GB of pdf public accessible law data I am trying to handle ( at first ) which is about 35000 files from last 90 years.
So far I automated downloading web pages and pdf documents from them. Extracting data from web pages and saving it to database. Extracting text from pdf files. I have about 5-6 projects to do all of it above maybe at the end I will put it to some workflow manager like Luigi or just run it by cronjob.
First thing for website version 1.0 part is find correlation between all documents inside law text using nlp library by building custom conditions. Then just generate directory structure and html files with links between documents.
Website version 2.0 is already in my mind but it will be creepy to make it and will take at least 1-2 months and I want to publish fast.
I have some pdfs with only images instead of text and tesseract worked quite good with them so maybe I will try to process them when everything go live.
Learned a lot about pdf as now I know that font in pdf is not always providing unicode characters ( stupid form of obfuscation) so when you extract text you need to build glyph vector to text map for every font.
Pdf is full vector representation - just like svg - what is logic if you think a bit and know that some printers are running using postscript.
Let’s hope next update will be about flutter mobile app which started all of shit above. It’s almost ready ( except getting data from api I am trying to do and logo for release version ). It’s last piece of puzzle.3 -
In the past, apps I've written have used a flat file backend. It's very fast, but obviously clunky to have a big structure of flat files for an app. It ran circles around framework-based RDBMS backends, as performance is concerned, but again, it was clunky. Managing backups and permissions on tens or hundreds of thousands of small files was no fun. Optimizing code for scaling was fun- generating indexes, making shortcuts -but something was still missing. Early in 2017 I discovered redis. A nosql backend that just stores variables and lives almost entirely in memory. Excellent modules and frameworks for every language. It was EXACTLY what I'd needed, even though I didn't know I did. I spent a good deal of time in 2017 converting apps from flat files to redis, and cackled with glee as they became the apps I wanted them to be. Earlier this week, I started building my first app that started with redis, instead of flat files, and I can't stop gushing to anyone who will listen. Redis for president!
-
I have been working on IoT projects for last five years. After using MQTT in many of my projects I have realized that there is a huge learning curve for the beginners to understand and implement MQTT in their projects. The packet structure of MQTT is complex and MQTT packets are difficult to debug. Also customizing the open source MQTT brokers are also difficult for the beginners, and sometimes even for the experts.
To make IoT and Messaging simple, I am designing a new protocol which uses JSON packets for data exchange and is far less complex than MQTT. I am also developing an open source project which will contain a server (with load balancer support), a python client, a Javascript client and a python based load balancer. I hope this project will reduce the development time as the protocol is easy to understand and the open source code is fully modular & easy to customize.
This will be my very first contribution to the open source community. Wish me luck!3 -
I need to add new feature into the program which I wrote years ago so I start digging up the source code. The project is written in a language which I no longer code in.
That code is really poorly written with most of them don't have tests. I also find out that previous self is really a genius since he can keep track of huge project with almost no documentation.
To make matter worst, there are unused components (class,feature) in the source code. "Current me" have a policy of "just adding only a feature you need and remove unused feature" but it seem the "previous me" don't agree with the "current me".
The previous me also have the habit of using writing insane logic. I can remember what particular class and methods is doing but I can't figure out the details.
For example one method only have 5 line of code but it is very hard to figure out what those do.
The saving grace is that he know the important for method signature and using immutable data structure everywhere.
I was under the influence of caffeine and have a constant sleep deprivation at the time (only sleeping about 4 hour every day) so I can't blame him too hard.
I can't blame him too hard, right?
Could someone invent a time machine already? Invent time machine not to save the world but to save the developers from himself.4 -
!rant
Continuation from: https://devrant.com/rants/979267/...
My vision is to implement something that is inspired by Flow Based Programming.
The motivation for this is two fold
* Functional design - many advantages to this, pure functions mean consistent outputs for each input, testable, composable, reasonable. The functional reactive nature means events are handles as functions over time, thus eliminating statefulness
* Visual/Diagrammable - programs can be represented as diagrams, with components, connections and ports, there is a 1 to 1 relationship between the program structure and visual representation. This means high level analysis and design can happen throughout project development.
Just to be clear there are enough frameworks out there so I have no intentions of making a new one, this will make use of the least number of libraries I can get away with.
In my original post I used Highland.js as I've been following the project a while. But unfortunately documentation is lacking and it is a little bare bones; I need something that is a little more featureful to eliminate boilerplate code.
RxJS seems to be the answer, it is much better documentated and provides WAY more functionality. And I have seen many reports of it being significantly easier to use.
Code speaks much louder so stay tuned as I plan to produce a proof of concept (obligatory) todo app. Or if you're sick of those feel free to make a request.3 -
Drupal is such a fucking wortless and infuriating hinder in software development.
I've been a software developer for the past 6 years, I have worked with many different frameworks and technologies in both backend and frontend, such as .net, react, php, you get the idea.
In my current project, we have been forced to use Drupal as backend. Initially I had no complaints, but after trying to use it for the past month, I'm beyond mad at the ridiculous and overly complicated way of doing the most basic tasks in existence.
Not only is installing Drupal such a dependency hell, that we had to modify our entire ecosystem just to accommodate for Drupal's versioning, but it's just a crutch that we have to carry around and make ridiculous exceptions for.
I've seen other projects made in Drupal by professional companies, and not a single one of them actually makes use of the CMS that is meant to be the entire point of this piece of shit.
Instead, we have to make a regular backend database, force the PHP code into Drupal's modules and then try for the impossible of making use of the pointless structure system integrated in Drupal.
It's almost pointless since we still had to make a react application to actually do the pages, since Drupal is limited as hell when it comes to personalization.
Just to end up with this error message: "The website encountered an unexpected error. Please try again later." no explanation, no nothing, just going after an endless debugging using [drush] commands.
Anyway, I fucking hate Drupal7 -
1) git init
2) organize the structure of the project and check what features you need
3) google the name of the features and search a module that solves it
4) follow the module's tutorial step by step
5) compile the code
6) notice it doesn't work
7) StackOverflow, github, Quora, emails with insults to developers, parcel posts with bombs, try suicide
8) ascertain you could have spent all that time in funnier or more productive tasks
9) right click on project -> delete
10) forget the previous experience
11) goto 1 -
Here is a gem I found when looking at the previous offshore team's database.
So apparently they didn't know that SQL has an ALTER TABLE command to add new columns. So they created a brand new table, version 2, THEN migrated all the data over, every single time a new field was needed.
Then of course they had to update all their code that previously looked at the original table and the clients had to resync data onto the tablets as well.
Maybe they thought it was a good solution since they don't know what database versioning is (something they also manually implemented) or that ORMs exist.
**Sanitized the table names but kept the general structure, casing, etc
CREATE TABLE [dbo].[TVP_NameHere] AS TABLE(
[NameTime] [datetime] NULL,
[NameId] [int] NULL,
[somethingId] [int] NULL,
[fooId] [int] NULL,
[Time] [int] NULL
)
CREATE TABLE [dbo].[TVP_NameHereV002] AS TABLE(
[NewColumnHere] [int] NULL,
[NameTime] [datetime] NULL,
[NameId] [int] NULL,
[somethingId] [int] NULL,
[fooId] [int] NULL,
[Time] [int] NULL
)3 -
So I see posts about an interview question/challenge of inverting a binary tree. I don't use trees very often (mainly file related or parsing server nodes), but I thought I would learn how to do this.
I saw a page that started talking about different ways to invert enough to understand that one type of inversion is swapping left and right nodes. So I stopped before they showed how.
Then I created a test program that has a tree structure and also can display a tree before and after modification. This was kind of fun.
So then I wrote the inversion function. It was less than 10 lines of code. Wtf? I thought it would be harder than this.
Then I started wondering where trees were used. So today I have been learning how they are used and why I might need one to solve a problem. One use I intuited was parsing regex or a language. Apparently it is useful there.
What I am learning is that a lot of these interview questions are really test to see if you can comprehend instructions when stressed. Or you will ask questions to clarify the task. It doesn't necessarily test your ability to solve hard problems.
One thing that perplexes me. If inverting a tree is swapping nodes left<->right, then why not leave data in place and just swap roles in the functions. Maybe I completely misunderstood what inversion means or why it would be done. I guess if this is not inverting I have the structure to try other methods now.2 -
I am just student looking for job, and got this pre interview test:
Develop an Android or iOS app with login and password input field, download button, place for image we prvided.
... reading further:
What we are looking for in the code ?
internal quality:
-consistent formatting of the source code
-clean, robust code without smells
-consistent abstractions and logical overall structure
-no cyclic dependencies
-code organized in meaningful layers
-low coupling and high cohesion
-descriptive and intention-revealing names of packages, classes, methods etc.
-single small functions that do one thing
-truly object-oriented design with proper encapsulation, sticking to DRY and SOLID principles, without procedural anti-patterns
-lots of bonus points for advanced techniques like design patterns, dependency injection, design by contract and especially unit (or even functional or integration) tests
external quality:
-the app should be fully functional, with every state, user input, boundary condition etc. taken care of (although this app is indeed very small, treat it as a part of big production-ready project)
-the app should correctly handle screen orientation changes, device resources and permissions, incoming calls, network connection issues, being pushed to the background, signing deal with the devil :D and other platform intricacies and should recover from these events gracefully
-lowest API level is not defined - use what you think is reasonable in these days
-bonus points if the app interacts with the user in an informative and helpful way
-bonus points for nice looks - use a clean, simple yet effective layout and design
... I mean really ? and they give me like 2 days ?4 -
dev && !rant
I am thinking about picking up a functional language. Currently I use Kotlin (and I fucking love that language) but I have to admit that it's support for functional programming is limited.
But I think their lies a certain beauty in fp and I want to do some project with it.
The 2 main problems are:
1. I have no experience in functional programming. I have no clue how to structure my program (potantialy without oop) and write clean testable code.
2. I don't know what language to use. Scala seems great since it has good IDE support and I like the Java ecosystem and Haskell seems to have more beauty but is missing that IDE support and it is very unfamilar for me.
So what do you guys think I should pick up? And how do I learn to write good software with it?17 -
So let's talk about today, spent the whole night awake fixing some code PYCHARM FUCKED UP! Technically i fucked up but I still blame pycharm for making the project structure a mess. Word of advise don't create a project with pycharm , I should have made mine on the terminal as all things of worth should be.
Gotta push the presentation for it to afternoon am beat . I've learned a lot though, recovering lost files is a bitch . And funny thing is i got saved by a git stash that had been auto saved earlier by accident 😂😂1 -
The whole episode of me managing an outsourced team for about 6 months. I thought because I’ve managed other teams doing non dev things, it would be like that.
I’ve never been so wrong and NEVER AGAIN! I had to own everything and they’re code is so repetitive and confusing. It misses basic structure because I didn’t outline some things like knowing when a operation is complete and that if the same button appears in two pages it should do the same thing! Or that is you break up a SPA you shouldn’t just duplicate the whole files and then confusingly use randomly parts to so random jobs across all layers of the app. Ffs. Never want to work with a team that doesn’t have a plan to maintain the code they write. I felt like a failure but for me to make them successful I would have had to pretty much write the code.
Now I have to explain this embarrassing pile of curry spaghetti to my colleagues who need to do some other work on it. Fuck. I want to throw it out and start over so badly.
I should have told my boss a hard no on that one and let him know outsourcing would slow things down not speed them up. He just needs to stop trying to get software developed and deployed at the same time. Fuckers.3 -
No proper normalization and database structure practices seems to continue to be the bane of my fucking existence at work.
One would think that it would be the quirks carried through by the language stacks in question, those are fucking absolutely ridiculously horrible by the way, y'all think you've seen bad Javascript and PHP? these would make you cry, laugh, wonder in amazement and then fucking pity me and eventually buy me a beer NO JOKE.
Y'all think you have seen some obscenely unoptimized SQL code? think of the worst fucking possible output from the shitty-est most error prone boundary checking inefficient ORM out there and multiply it by 10k. Then refer to my other point, and do the same thing for me which culminates in alcoholic consumption.
Worst thing? the developer that wrote most of this is a college level TEACHER rn....i've met the smug piece of shit, he acted severely condescending to everyone around him and I just smiled because I know how much of a piece of shit he is.
The other dude in question (it was two of them that I am talking about) left for another city and currently holds a senior developer position....i-fucking-magine that.
Fuck I hate these mfkers and I really wish they gave me a chance to fucking blow up on them.2 -
Context:
I recently joined a team and we are working on a fairly large mobile app using RN, they started a month ago. And I noticed, they don't have any fucking tests and static typings like Typescript.
I have this pretentious team leader that acts like he's the BeSt dEveLopEr in ThE woRld, and act like he always know what he's doing. But in reality, he code like crap, the formatting is shit because the ESLint config is not working, he's not even aware of it until I've fixed it. He's using every BAD Practice available, unused variables and imports are scattered everywhere, etc. And the directory structure is crap and no consistency.
How can I convince this ignorant mofo to use tests and typescript? He believes that adding those will take us longer and cost more money to the client, based on my experience, this is not the case, it's only slow on the first 2 weeks and it is worth it in the long run.13 -
Last week I did a test for a huge real estate company here in Dubai.
The test they asked to create a database of students and use jquery datatables so far is easy.
But they told you cannot use any framework and uses mvc structure, in other words, build your own framework. It's ok.
But my main concern is, the company is quite famous to not provide proper feedbacks or just forgot about you. And I would be very piss off if after of 3 entires days building my own framework, doing documentation, code comments those guys didn't reply me any feedback.4 -
Talking to my architect:
- hey, we have a lot of code smell and data is structured usually in a chaotic way, also its hard to understand what is going on with all these code duplications, maybe we can think about refactoring, better structure, maybe even we can extract some domains and make life less painful?
- what is domain?
- *facepalm*4 -
Working with someone who made repetitive css code like this:
#home {
x
}
#blog {
y
}
where x and y exactly have same child classes structure with small differences, making css file somewhat large.2 -
I recently went through a very detailed and well-explained Python-based project/lesson by Karpathy which is called micrograd. This is a tiny scalar-valued autograd engine and a neural net on top of it.
The project above is, as expected, built on Python. For learning purposes, I wanted to see how such a network may be implemented in TypeScript and came up with a 🤖 micrograd-ts - https://github.com/trekhleb/... repository (and also with a demo - https://trekhleb.dev/micrograd-ts/ of how the network may be trained).
Trying to build anything on your own very often gives you a much better understanding of a topic. So, this was a good exercise, especially taking into account that the whole code is just ~200 lines of TS code with no external dependencies.
The micrograd-ts repository might be useful for those who want to get a basic understanding of how neural networks work, using a TypeScript environment for experimentation.
With that being said, let me give you some more information about the project.
## Project structure
- [micrograd/](https://github.com/trekhleb/...) — this folder is the core/purpose of the repo
- [engine.ts](https://github.com/trekhleb/...) — the scalar `Value` class that supports basic math operations like `add`, `sub`, `div`, `mul`, `pow`, `exp`, `tanh` and has a `backward()` method that calculates a derivative of the expression, which is required for back-propagation flow.
- [nn.ts](https://github.com/trekhleb/...) — the `Neuron`, `Layer`, and `MLP` (multi-layer perceptron) classes that implement a neural network on top of the differentiable scalar `Values`.
- [demo/](https://github.com/trekhleb/...) - demo React application to experiment with the micrograd code
- [src/demos/](https://github.com/trekhleb/...) - several playgrounds where you can experiment with the `Neuron`, `Layer`, and `MLP` classes.
Demo (online)
---------------------
To see the online demo/playground, check the following link:
🔗 https://trekhleb.dev/micrograd-ts3 -
Finally finished an algo to check an image for grouping of pixels that will form a rectangular area. I got the grouping to work on one image, but found it was utterly failing on another. I went through every step of the algo and still could not find the solution. The 128x128 image was working, but the 128x16 image was not. I knew it had something to do with the dimensions. Started thinking it was overflowing a buffer somewhere. So I started putting asserts in the functions that abstracted the buffer access. None of the numbers exceeded the proper bounds. It was close to bedtime so I finally gave up. I was tired. Then I realized it wouldn't be until the next evening when I could look at this again. So I got up again and started looking at the code again. I had a loop to check the output of my algo that I did the memory access of the buffer. It too was not fully filling my temp image to show how the algo was working. WTF!
Then I finally realized the flaw:
buffer[x+y*height]
And my test loop to test the algo:
buffer[x+y*ymax]
I kept overlooking the error because I was sure it was right. Also my asserts for the functions to access the buffers? They only checked the inputs x and y. So it didn't help that the math was wrong for reading and writing the buffers. It also worked fine on 128x128 images because the width and height were the same.
It is funny that I struggled with this part. The algo was actually surprisingly easy to formulate. I just looked through every point and checked a buffer to see if that point was used. If not then I would attempt to grow in the x and y direction the shaped of that point based upon pixel color. This was saved in a structure while growing that point. Then when that rectangle could not be grown further the inner loop would continue checking used points again.
I still have work to do to use the data this algo produces. I need to now figure out how to parent the rectangular areas to each other. I will probably use my check buffer to keep track of these rects by an index. Then do adjacent checks to determine parenting. Eventually I will have to extend this algo to 3 dimensions, but that should not be difficult.2 -
The one in which I am rn is the reason why so many people dislike php, jquery and Java on the server.
Then previous to this one, classic ASP for the web interface and our desktop components were delphi (OLD ass delphi)
Mind you, these are all tech stacks that I do like (php, java and O Pascal in particular) but really dislike in:
php: we have just your standard procedural spaghetti php on some old ass shit.
Classic ASP: Same as with php, no proper structure, made more apparent by the intense limitations of VBScript, I did enjoy the language tho, had it evolved better It would have been more tolerable, but the hoops i had to take to build a propee API in it....boooooy that shit was an eye opener.
Delphi: Not bad in itself, but the original dev had a shit notion about how architecture should work.....or what architecture is for that matter.
The Java one: this shit was coded when Spring was already an alternative to just fucking around with JSP, or any other framework for that fucking matter. Dude tried....TRIED to implement design patterns in it and it failed on every single fucking component. Worst of all, it was coded in such a shit way that during certain...err...conditions, the bottleneck proved too massive of an ubdertaking and the app chokes and needs to be restarted ... constantly
their use cases for jquery are not bad, but loading all of jquery for the shit they mostly do could have been easily done with just standard vanilla JS.
I got more, but thede are just from the top of my head
I love php, mind you, but shit like this makes me see why some people GREATLY dislikes it.
I alsp have some old web forms in c# and vb net that I loathe, funny enough the code for thise in vb.net is more elegant, almost as if it were from a different developer.3 -
I just finished refactoring the code of a single jupyter notebook into a decent structure with comments. It feels good.
Unfortunately I still have stuff to implement and it's 2:50am :(5 -
HTML Writers Guidelines
When designing your web site you want to make the visiting experience as enjoyable as possible and at the same time make it so that if the site needs to be changed in any way, the changes are not too difficult to make. You want the look to be as appealing as possible for all browsers and also make the site accessible to users with disabilities. In order to accomplish all this there are some general guidelines when creating your HTML code.
1. The first thing that will really make your life easier is through the use of Cascading Style Sheets (CSS) - CSS is used to maintain the look of the document such as the fonts, margins and color. HTML directly on the page is not a good choice to handle these aspects because if say, the font color you are using for certain paragraphs needs to be changed from blue to red, you would have to go in and change each color tag manually. By using CSS you can designate the color for each of those paragraphs just once in the CSS file. That way if you have to change the font color from blue to red you make one change instead of the countless number of changes you might have to make, especially if your web site contains hundreds of pages. This is a big time saver and a must for all professionally designed web sites.
2. Don't use the FONT tag directly in your HTML code - This becomes a problem when using some cheap authoring tools that try to mimic what a web page should look like by using excessive FONT tags and nbsp characters. These tools end up creating web pages that are impossible to keep maintained. There is a program you can use, if you've created one of these disaster pages, called the HTML Tidy Program which you can actually download here . This will clean up your code as well as possible.
3. You want your web pages readable to people who have disabilities - People who surf the Internet depend on speech synthesizers or Braille readers to interpret the text on the page. If your HTML markup is sloppy or isn't contained in CSS the software these people use to read pages have a difficult time in interpreting these pages. You should also include descriptions for each image on your page. Also, don't use server side image maps. If you are using tables you should include a summary of the table's structure and also associate table data with the correct headers. This gives non visual browsers a chance to follow the page as they go from one cell to another. And finally, for forms, make sure you include labels for form fields.
By following just these three guidelines you give your visitors, especially disabled visitors the best chance of having an enjoyable visit to your site while at the same time making it so that if you have to make changes to your site, those changes can be made easily and quickly.2 -
It was back in 2010, they told me to build a simple CRUD system, habe me 2 hours, just to see the code structure/style.
Was it hard? No! I handed it in after 30min, the remaining time I got to talk to the devs. Was nice. No bullshit, no whiteboard, just a laptop and an IDE.6 -
Any good advice for managing junior developers?
In my experience I have found that loose definitions of work to be completed yields poor results. Honestly, sometimes I wonder if I have to write the code structure and leave a bunch of TODO comments for people to fill in.
Or alternatively people get going on tangents without thinking of the concrete problem given.
Or go try building generic abstractions that are unneeded and will not be reused complicating even the simplest use case.
Maybe the problem is in me and that I am not clear in communicating what's needed. What techniques do you guys use to get more or less what you want?7 -
when i look at the code structure of the project i work on with my friends, i always think about how to implement the SOLID principles of bob martin for clean code
... and then i think about the clusterfuck of almost unmaintainable code that has been created over time and all the unit testing that doesn't exist at all and how much time and effort it would need to correct that code and how i realize that i don't even understand the principles and how to implement them
... and then i give up and go on coding even more mess
... and then i repeat😅😖😩3 -
Boss/prof (does not understand code): "I like it more this way. Come on don't make that face thanks to OOP it won't be that much of a deal to make a change right"
He wants to change a fundamental data structure of our software 😉😉😉1 -
Isn’t it delightful when you come in to a large project to discover that they have a large underlying core that no one wants to touch but everyone relies on.
Quickly perusing the code you realize that the base was clearly created by someone who found their first tutorials for Java, but were previously a c developer.
It’s funny cause this code is of course from ~20 years ago and in different sections you can tell they were a C developer, a business admin, a Db admin, a junior conforming to pressures from others.
I recently looked at the deep rooted abuses of Java beans, and this entire internally created state management engine that serves no purpose but to create contrived complexity.
The use of propriety tools, that they paid lots for that perform incredibly simple tasks that have long since been solved by the open source community. Many of which are long defunct.
And the constant focus is on monkey patching the engine to solve small issues, which bloat the time to deal with issues. Since everything needs to be tested by their methodologies.
The inability to understand that the underlying structure is the issue and that tackling that, rather than just shifting the entire solution to new languages will suddenly solve the problems(or other underlying systems).
It’s just sad.1 -
i'm currently working on a FOSS project with 2 friends and try to do some kind of VHDL (virtual hardware description language) code generator in javascript
the more i think about the structure i need to build, the possible combinations, the automation of describing all components, yada yada yada, the more i get this feeling it's becoming an NP problem ... or at least a very big algorithm😅😐
let alone the problem of saving the whole goddamn code in files downloadable by the client via javascript🙄
heard of nodejs that supports file handling, might try that🤔4 -
I hate when programming books have shit code examples.
Just came across these, in a single example app in a Go book:
- inconsistent casing of names
- ignoring go doc conventions about how comments should look like
- failing to provide comments beyond captain obvious level ones
- some essential functionality delegated to a "utils" file, and they should not be there (the whole file should not exist in such a small project. If you already dump your code into a "utils" here, what will you do in a large project?)
- arbitrary project structure. Why are some things dumped in package main, while others are separated out?
- why is db connection string hardcoded, yet the IP and port for the app to listen on is configurable from a json file?
- why does the data access code contain random functions that format dates for templates? If anything, these should really be in "utils".
- failing to use gofmt
These are just at a first glance. Seriously man, wft!
I wanted to check what topics could be useful from the book, but I guess this one is a stinker. It's just a shame that beginners will work through stuff like this and think this is the way it should be done.3 -
Say what you will but React JS development is utterly exhausting. Every React project is a totally new stack and there is no consensus in the ecosystem.That is how I feel after having worked on 5 big SPA React JS projects over the course of 5 years.
The structure of these projects was all but similar: most used HOC's, some render props, functions-as-a-child, hooks or rather component lifecycles, some used container-components, some Redux, others sprinkled business logic & state all over, and yet others use a mix of server-side rendering and "hydration"...
I dangerouslySetInnerHTML on LazyExoticComponents, and dared not useEffect on the DO_NOT_TOUCH_OR_YOU_WILL_BE_FIRED root property. Hooks embrace functions, but without sacrificing the practical spirit of React, you see.
I didn't make this up. It's verbatim from the code and the docs.
This is not web development, this is at best a tedious fantasy multiplayer game or at worst, a costly joke.5 -
I tried implementing graph data structure in java. And I reckon it's the most painful code I ever wrote since "hello world".5
-
!rant
I feel like I know typescript a lot better than JavaScript... Is that strange? 😂
I mean after studying languages like C#, I feel like JavaScript is so random, I feel like it has no structure and that I don't know how to code in JavaScript. However when I start using typescript I just feel like I can understand what I am doing on another level. I would like to learn JS more in depth, anyone that has any tips?1 -
When you're using openapi generators and stuff for generating SDK code and let "the architect" handle the data structure and nomenclature, don't you hate having to add 33 (I counted) models, most of which are just the same class with different name or one property apart from each other, serialization of which gives request body overhead 56-132x (actual calculated results depending on the model complexity) the size of actual data you want to send, just to add support for one endpoint that needs just one model that started this whole madness?
I just had to add this one top level model reference and this happened to me. Those 33 models are not including the ones I already had included in my project so they didn't have to import them again.
For the love of <your_belief_here /> and all that's holy, never ever agree on generating code based on openapi if the person responsible for that is unexperienced. It will do more harm than good, trust me.
Before we decided to go with generated SDK my compiled product was a bit over 30KB, and worked just fine, but required a bit of work on each breaking API change. Every change in the API requires now 75% of that work and the compiled package is now over 8MB (750KB of which is probably my code and actually needed dependencies).
Adding an endpoint handler before? Add url, set method and construct the body with the bare minimum accepted by the server
Now? Add 33 models (or more), run full-project find&replace and hope it will work with the method supplied by the generated code, because it's not a mature tech and it's not always guaranteed it will work. -
What do you think, does Google just have really good code structure that allows re-use at this level, or are they just coordinating release notes?1
-
So, our lab professor in university for data structures was evaluating my friend's group assignment next to me and my colleague.
Professor: So, what does this method do?
Friend: I feel it would be best to explain our structure first and then how our methods work.
P: No, no. It's okay, I'm seeing it here in my laptop. *Looking at their report which included nothing about the structure of the assignment since she asked specifically only to place the methods and their complexity analysis due to not having time to look and evaluate a full report for each group*
F: Okay, *proceeds to explain*.
P: Okay, and why is your code commented?
F: Because it's good practice and we learned in subject x last semester.
P: Impossible! I teach that subject and I did not teach that in my classes.
F: Okay, but our professor did.
P: *Says nothing*.
They got a 3.25/5 as a grade for it and got really pissed off. I mean, they spent a lot of time making the assignment's structure perfect, optimizing their code and the professor did not care for the structure, just the methods, on the data structures subject.
FYI, they are workaholic, dedicate a lot of time improving their skills and their normal grades are usually >= 4.25.2 -
What do you guys use to write unit tests in C? I look at some libs such as check, cmocka, gtest etc, but they all seem like way more than I need. Also, I have a hard time to separate test files and source code files (directory structure wise).
Any recommendations?5 -
client A: "why don't you code in Java then? it looks much more authentic! those alien-like structure just so cool to us!"
me:"cause i can do the same thing with around 15 lines of code using Python instead of 100 lines in Java...."
client A:*confusing look*
then we have a 15mins of awkward silence time...
please don't set me to meet client T_T...1 -
The rear ducking continues. We've built a reliable translator in the dumbest fucking way possible, it's just lovely. I simply reused the structure for feeding data to the VM assembler, an array of arrays, where there's one array of (ins [args]) per node in the parse tree.
It's nice because nodes can be solved out of order without affecting the actual sequence in which the instructions are output. And if one statement (node) equals multiple instructions, you just push multiple entries to the corresponding array, or push nothing if you need to output nothing. Easy as goblin pie.
This is enough to convert an input language to the assembly-like intermediate representation we use for the virtual machine. So then there's doing it backwards: walk the same array of arrays, and map those virtual instructions to a physical architechture. I guess I could do the encoding to native binary myself, it'd certainly be interesting to try, but I'm burnt-out already so I'll just use fasm for now.
Initial test: wrote a test program in my own stupid language, ran the translator, dump output to file, assemble that with fasm, run with r2 -d.
Crashes? No.
Runs fine? Yes and no.
For fuck's sake, I don't have syscalls. Mainly because the VM doesn't have an operating system, lmao. I was testing virtual programs by just freezing state, terminating, then dumping the fucking registers and stack to the console, we have no I/O to speak of. Not even a real 'exit', VM handles that by reading a return value every step like a mentally damaged son of a bitch.
So anyway, I manually paste the linux mambo, you know:
mov rax,60
mov rdi,0
syscall
And NOW our program can end execution without crashing.
Okay then, so does the test code work correctly?
** DRUM ROLL **
Yes.
Ladies and gentlemen, mother fucking PESO is now a compiled language, and going forward I will be expectantly receiving your marriage proposals for reviewing. Oh, but not so fast, we still need a frontend...
Well, we'll handle that in the next few days. I'm just glad to be *nearly* finished with this fucking compiler, I want nothing to do with anything else ever, but we know that's not going to happen, so Lord please end my pain.
No sponsor as this rant has been paid for by tax evasion. -
Heres the initial upgraded number fingerprinter I talked about in the past and some results and an explanation below.
Note that these are wide black images on ibb, so they appear as a tall thin strip near the top of ibb as if they're part of the website. They practically blend in. Right click the blackstrip and hit 'view image' and then zoom in.
https://ibb.co/26JmZXB
https://ibb.co/LpJpggq
https://ibb.co/Jt2Hsgt
https://ibb.co/hcxrFfV
https://ibb.co/BKZNzng
https://ibb.co/L6BtXZ4
https://ibb.co/yVHZNq4
https://ibb.co/tQXS8Hr
https://paste.ofcode.org/an4LcpkaKr...
Hastebin wouldn't save for some reason so paste.ofcode.org it is.
Not much to look at, but I was thinking I'd maybe mark the columns where gaps occur and do some statistical tests like finding the stds of the gaps, density, etc. The type test I wrote categorizes products into 11 different types, based on the value of a subset of variables taken from a vector of a couple hundred variables but I didn't want to include all that mess of code. And I was thinking of maybe running this fingerprinter on a per type basis, set to repeat, and looking for matching indexs (pixels) to see what products have in common per type.
Or maybe using them to train a classifier of some sort.
Each fingerprint of a product shares something like 16-20% of indexes with it's factors, so I'm thinking thats an avenue to explore.
What the fingerprinter does is better explained by the subfunction findAb.
The code contains a comment explaining this, but basically the function destructures a number into a series of division and subtractions, and makes a note of how many divisions in a 'run'.
Typically this is for numbers divisible by 2.
So a number like 35 might look like this, when done
p = 35
((((p-1)/2)-1)/2/2/2/2)-1
And we'd represent that as
ab(w, x, y, z)
Where w is the starting value 35 in this case,
x is the number to divide by at each step, y is the adjustment (how much to subtract by when we encounter a number not divisible by x), and z is a string or vector of our results
which looks something like
ab(35, 2, 1, [1, 4])
Why [1,4]
because we were only able to divide by 2 once, before having to subtract 1, and repeat the process. And then we had a run of 4 divisions.
And for the fingerprinter, we do this for each prime under our number p, the list returned becoming another row in our fingerprint. And then that gets converted into an image.
And again, what I find interesting is that
unknown factors of products appear to share many of these same indexes.
What I might do is for, each individual run of Ab, I might have some sort of indicator for when *another* factor is present in the current factor list for each index. So I might ask, at the given step, is the current result (derived from p), divisible by 2 *and* say, 3? If so, mark it.
And then when I run this through the fingerprinter itself, all those pixels might get marked by a different color, say, make them blue, or vary their intensity based on the number of factors present, I don't know. Whatever helps the untrained eye to pick up on leads, clues, and patterns.
If it doesn't make sense, take another look at the example:
((((p-1)/2)-1)/2/2/2/2)-1
This is semi-unique to each product. After the fact, you can remove the variable itself, and keep just the structure in question, replacing the first variable with some other number, and you get to see what pops out the otherside.
If it helps, you can think of the structure surrounding our variable p as the 'electron shell', the '-1's as bandgaps, and the runs of '2's as orbitals, with the variable at the center acting as the 'nucleus', with the factors of that nucleus acting as the protons and neutrons, or nougaty center lol.
Anyway I just wanted to share todays flavor of insanity on the off chance someone might enjoy reading it.1 -
A question to game devs : which design/architecture patterns do you use ?
Everytime I try to take a look at game development, I feel like there is a lack of guidelines, mostly about architecture.
It's something strange to me as a web dev, as we use much of these patterns on a daily basis. Of course I think about the near omnipresence of MVC and its variants, but not just that. Most of frameworks we do use are essentially focused on architecture, and we litterally have access to unlimited tutorials and resources about how to structure code depending on projects types ans needs.
Let's say I want to code a 2D RPG. This has been done millions of time across the world now. So I assume there should be guidelines and patterns about how to structure your code basis and how to achieve practical use-cases (like the best way to manage hero experience for example, or how to code a turn-based battle system). However I feel these are much harder to find and identify than the equivalent guidelines in the web dev world.
And the old-school RPG case is just an example. I feel the same about puzzle games or 3D games... Sure there are some frameworks and tools but they seems to focus more on physics engine and graphic features than code architecture. There are many tutorials too, but they are actually reinforcing my feeling : like if every game developer (at least every game company) has his on guidelines and methods and doesn't share much.
So... Am I wrong ? Hope to.
What are the tools and patterns you can reuse on many projects ? Where can I find proper game architectures guidelines that reached consensus ?6 -
Im trying my BEST to not be judgemental about my boss but damn the code's shit
It's written how a 1st year UGrad would, trying to add as many complicated shits to it as they can to show "see? I know this obscure way of writing code, cool eh"
Like they're ticking off a rubrics
There is no design language, barely any structure. MVC's Controllers go beyond 2.5k lines.
Everything is an Interface but with such horribly designed code, they just add on to the clutter
Oh and it somehow also uses ReactJS inside .cshtml, which was already out of fashion A DECADE AGO. -
Question to all those who have worked with software architecture: What is your approach when implementing architecture and design into actual software?
I find it very hard to translate UML diagrams and architectural requirements into working code and I feel like there is quite a big "gap" between the two. How to you breach that gap and manage to maintain a clean and comprehensive architecture in your project folders?question clean architecture architecture requirements patterns suggestions project structure clean code software engineering11 -
Can anyone suggest me some repo or blog link that has good code structure of node apis.
Something that can be use in big project. -
Sydochen has posted a rant where he is nt really sure why people hate Java, and I decided to publicly post my explanation of this phenomenon, please, from my point of view.
So there is this quite large domain, on which one or two academical studies are built, such as business informatics and applied system engineering which I find extremely interesting and fun, that is called, ironically, SAD. And then there are videos on youtube, by programmers who just can't settle the fuck down. Those videos I am talking about are rants about OOP in general, which, as we all know, is a huge part of studies in the aforementioned domain. What these people are even talking about?
Absolutely obvious, there is no sense in making a software in a linear pattern. Since Bikelsoft has conveniently patched consumers up with GUI based software, the core concept of which is EDP (event driven programming or alternatively, at least OS events queue-ing), the completely functional, linear approach in such environment does not make much sense in terms of the maintainability of the software. Uhm, raise your hand if you ever tried to linearly build a complex GUI system in a single function call on GTK, which does allow you to disregard any responsibility separation pattern of SAD, such as long loved MVC...
Additionally, OOP is mandatory in business because it does allow us to mount abstraction levels and encapsulate actual dataflow behind them, which, of course, lowers the costs of the development.
What happy programmers are talking about usually is the complexity of the task of doing the OOP right in the sense of an overflow of straight composition classes (that do nothing but forward data from lower to upper abstraction levels and vice versa) and the situation of responsibility chain break (this is when a class from lower level directly!! notifies a class of a higher level about something ignoring the fact that there is a chain of other classes between them). And that's it. These guys also do vouch for functional programming, and it's a completely different argument, and there is no reason not to do it in algorithmical, implementational part of the project, of course, but yeah...
So where does Java kick in you think?
Well, guess what language popularized programming in general and OOP in particular. Java is doing a lot of things in a modern way. Of course, if it's 1995 outside *lenny face*. Yeah, fuck AOT, fuck memory management responsibility, all to the maximum towards solving the real applicative tasks.
Have you ever tried to learn to apply Text Watchers in Android with Java? Then you know about inline overloading and inline abstract class implementation. This is not right. This reduces readability and reusability.
Have you ever used Volley on Android? Newbies to Android programming surely should have. Quite verbose boilerplate in google docs, huh?
Have you seen intents? The Android API is, little said, messy with all the support libs and Context class ancestors. Remember how many times the language has helped you to properly orient in all of this hierarchy, when overloading method declaration requires you to use 2 lines instead of 1. Too verbose, too hesitant, distracting - that's what the lang and the api is. Fucking toString() is hilarious. Reference comparison is unintuitive. Obviously poor practices are not banned. Ancient tools. Import hell. Slow evolution.
C# has ripped Java off like an utter cunt, yet it's a piece of cake to maintain a solid patternization and structure, and keep your code clean and readable. Yet, Cs6 already was okay featuring optionally nullable fields and safe optional dereferencing, while we get finally get lambda expressions in J8, in 20-fucking-14.
Java did good back then, but when we joke about dumb indian developers, they are coding it in Java. So yeah.
To sum up, it's easy to make code unreadable with Java, and Java is a tool with which developers usually disregard the patterns of SAD. -
Rubber ducking your ass in a way, I figure things out as I rant and have to explain my reasoning or lack thereof every other sentence.
So lettuce harvest some more: I did not finish the linker as I initially planned, because I found a dumber way to solve the problem. I'm storing programs as bytecode chunks broken up into segment trees, and this is how we get namespaces, as each segment and value is labeled -- you can very well think of it as a file structure.
Each file proper, that is, every path you pass to the compiler, has it's own segment tree that results from breaking down the code within. We call this a clan, because it's a family of data, structures and procedures. It's a bit stupid not to call it "class", but that would imply each file can have only one class, which is generally good style but still technically not the case, hence the deliberate use of another word.
Anyway, because every clan is already represented as a tree, we can easily have two or more coexist by just parenting them as-is to a common root, enabling the fetching of symbols from one clan to another. We then perform a cannonical walk of the unified tree, push instructions to an assembly queue, and flatten the segmented memory into a single pool onto which we write the assembler's output.
I didn't think this would work, but it does. So how?
The assembly queue uses a highly sophisticated crackhead abstraction of the CVYC clan, or said plainly, clairvoyant code of the "fucked if I thought this would be simple" family. Fundamentally, every element in the queue is -- recursively -- either a fixed value or a function pointer plus arguments. So every instruction takes the form (ins (arg[0],arg[N])) where the instruction and the arguments may themselves be either fixed or indirect fetches that must be solved but in the ~ F U T U R E ~
Thusly, the assembler must be made aware of the fact that it's wearing sunglasses indoors and high on cocaine, so that these pointers -- and the accompanying arguments -- can be solved. However, your hemorroids are great, and sitting may be painful for long, hard times to come, because to even try and do this kind of John Connor solving pinky promises that loop on themselves is slowly reducing my sanity.
But minor time travel paradoxes aside, this allows for all existing symbols to be fetched at the time of assembly no matter where exactly in memory they reside; even if the namespace is mutated, and so the symbol duplicated, we can still modify the original symbol at the time of duplication to re-route fetchers to it's new location. And so the madness begins.
Effectively, our code can see the future, and it is not pleased with your test results. But enough about you being a disappointment to an equally misconstructed institution -- we are vermin of science, now stand still while I smack you with this Bible.
But seriously now, what I'm trying to say is that linking is not required as a separate step as a result of all this unintelligible fuckery; all the information required to access a file is the segment tree itself, so linking is appending trees to a new root, and a tree written to disk is essentially a linkable object file.
Mission accomplished... ? Perhaps.
This very much closes the chapter on *virtual* programs, that is, anything running on the VM. We're still lacking translation to native code, and that's an entirely different topic. Luckily, the language is pretty fucking close to assembler, so the translation may actually not be all that complicated.
But that is a story for another day, kids.
And now, a word from our sponsor:
<ad> Whoa, hold on there, crystal ball. It's clear to any tzaddiq that only prophets can prophecise, but if you are but a lowly goblinoid emperor of rectal pleasure, the simple truths can become very hard to grasp. How can one manage non-intertwining affairs in their professional and private lives while ALSO compulsively juggling nuts?
Enter: Testament, the gapp that will take your gonad-swallowing virtue to the next level. Ever felt like sucking on a hairy ballsack during office hours? We got you covered. With our state of the art cognitive implants, tracking devices and macumbeiras, you will be able to RIP your way into ultimate scrotolingual pleasure in no time!
Utilizing a highly elaborated process that combines illegal substances with the most forbidden schools of blood magic, we are able to [EXTREMELY CENSORED HERETICAL CONTENT] inside of your MATER with pinpoint accuracy! You shall be reformed in a parallel plane of existence, void of all that was your very being, just to suck on nads!
Just insert the ritual blade into your own testicles and let the spectral dance begin. Try Testament TODAY and use my promo code FIRSTBORNSFIRSTNUT for 20% OFF in your purchase of eternal damnation. Big ups to Testament for sponsoring DEEZ rant.3 -
Practicing some random code interview questions while not busy.
Find top N values with MaxHeap in JS
Didn’t get it right in 1st try. Something wrong with the replace function. Then started getting busy...
At the end of the day, still didnt have a chance to fix it.
God damn it! It’s me. A frontend developer can’t write MaxHeap in JavaScript 🤦♂️ -
I don’t mind taking over a project when there is a structure and logic. Normally the problem is messy code which I can work around.
It’s a different story though when there’s model stuff in the controller and views or sometimes views calling controller functions or loading other views. I don’t even know, flicking between files, recompiling and not getting the result makes me agitate because I’m unproductive.3 -
If a project's structure is shit, well of course, let's continue using it because "it is known". Doing it any other way "will add complexity".
That I wasted three days making my working code adhere to the clusterfuck of a structure, nevermind that. Let's continue. And yes, colleagues do agree that the structure is shit, though let's improve it ... later.
Or in other words: Suck it up, we always have done it this way. Fuck you and your ill-advised attempts of trying to improve it. -
I’m back for round two!
Anyone else have to use Feature Switches in their codebase, and if you do, what do you think?3 -
Who asked for RedDatabase and RedXpert? You guessed it - nobody 😑 It's a buggy Firebird and DBeaver domestic knock-off!
My student was assigned with making Flask app by "simple" requirements. But guess what? We can't figure out hecking RedDatabase?! Figures out that they sent incompatible *.fdb database file, on which we wasted entire 3 hours troubleshooting obscure error, while clean database doesn't cause any trouble.
Last error that completely drained us is following:
"""
Reason: unsupported on-disk structure for file /var/rdb/test.fdb; found 12.3, support 12.2; IProvider::attachDatabase failed when loading mapping cache [SQLState:HY000, ISC error code:335544379]
"""
So now, he basically recreates database by scheme on image. What also shady seems to me is that application also has to deployed on virtual OS which he can bring on USB stick or by cloud later. -
Still as a scholar who has had his intership I decided that I was finally confident enough in my ability to apply for a small part-time programming job. I had an internship at a cool exhausting place with tons of expertise and I've proven myselve over there. So now I wanted a job on the side. Nothing special, just something that would make a little money with programming instead of washing dishes at the restaurant.
So I started at this small internet based startup (2 or 3 progammers) as a backend-oriented programmer. The working hours were amazingly compatible with my school schedule.
The lead dev also sounded like a smart guy. He had worked as a backend guy for years and had code running on verry critical public infrastructure that if it were to fail we'd be evacuated from our homes.
As a first asignment I got an isolated task to make an importer for some kind of file format that needed integration. So I asked for access to the code. I didn't get it since they were going to re-do the entire backend based on the code I wrote. I just needed to parse the file in a usable object structure. So I found out that the file format was horrible and made a quite nice set of objects that were nice. At the end of the first week or so I asked if I could get access to the code again, so I could integrate it. Answer was no. The lead dev would do that. I could however get access to my private repository.
Next week a new intern was taken to build a multiplatform responsive app. Only downside was that all the stuff he had ever done was php based websites. It wasn't going anywhere anytime soon, but I figured that that was where internships were for. So I ended up helping him a lot and taught him some concepts of OOP and S.O.L.I.D. and the occasional 30 minute rants of IndexOutOfRangeException, ArgumentException and such.
So one day he asked me how to parse a json string and retrieve a specific field out of it.
I gave him something like the following to start with:
"
JObject json;
if(!JObject.TryParse(jsonString, out json))
{
//handle error
}
string value;
if(!json.tryget("foo", out value).../// code continues
"
but then the main dev stepped in and proposed the following since it wouldn't crash on an API change:
"
dynamic json = new JObject(jsonString);
string value = json.myJsonValue;
"
After me trying to explain to him that this was a bad choise for about 15 minutes because of all kinds of reasons I just gave up. I was verry mad that this young boy was forced to use bad programming pracises while he was clearly still learning. I know I shouldn't pick up certain practises. But that boy didn't.
Almost everytime the main dev was at the office I had such a mindboggling experience.
After that I got a new assignment.
I had to write another xml file format parser.
Of course I couldn't have any access to our current code because... it was unnecesary. We were going to use my code as a total replacement for the backend again.
And for some reason classes generated from XSD weren't clear enough so after carefull research I literally wrapped xsd generated code in equivalent classes.
At that moment, I realized I made some code that was totally useless since it wasn't compatible with any form of their API or any of the other backend code. (I haven't seen their API. I didn't have access to the source.) And since I could've just pushed them generated XSD's that would've produced thesame datastructure I felt like I was a cheat. I also didn't like that I wasn't allowed to install even the most basic tooling. (git client or, Ide refactoring plugins, spelling checker etc...)
Now I was also told that I couldn't discuss issues with the new guy anymore since it was a waste of my valuable time, and they were afraid that I taught him wrong concepts.
This was the time that my first paycheck came in so I quitted my job.
I haven't seen any of the features that I've worked on. :) -
I’m in between jobs due to the pandemic and need structure in my life. I have ADHD and no structure makes me a sad panda. I’m desparately grasping for some online educational content bc my previous tech stacks are a little old and need to keep up with the modern stacks so I can get a new role and have a structured regimen that school gives.
Unfortunately most of these courses are just boring as shit video lectures where you watch the developer code! WTF!! They’re advertised as “you will code a real world application” and 🤣you get a certificate at the end!
So if anyone took a full stack curriculum using modern stacks like the MEAN stack where they actually developed something themselves, post it here please?6 -
So I graduated last year learned everything I would need to succeed in the job world. I got to my first rotation, I solved a total of 6-7 jiras in the past 6 months. I got to my second rotation, my new team is pretty much all remote and it’s been 2 weeks that i have been sitting idle. Their code base is not on git they’re not organized as my first one and I’m confused as to what they do, there’s not really any confluence and the deployment of code is done via uploading a jar. I really want them to adopt a structure like my last team or something similar because but I don’t know enough how to implement a new deployment process. I feel like sitting idle is the worst so I’m gonna start to see if I can implement a proper structure for them but who knows if they’ll even use it.3
-
Finally I finished the exams, now I have to write my thesis. An agency who wants remain anonymous at the moment told my supervisor to choose a student who will works out on the ransomware argument. The relator was a little bit scared about consequences but I'm pressing to write a controlled ransomware in a closed network brtween virtual machines. What qualities a good ransomware should has?
Mutable structure to avoid antivirus detection? Good exploits and vulnerability scanners to make itself viral? The payload should stay in the code or should be downloaded from a server? I need some reference on analysis of vx codes, any help? -
*looks drowsy* Ugh my head..
You know what, guys? If you can freshly and directly remember how to do this:
- calculate the time complexity for each type of loop and code structure
- knowing how to write the following regex:
"A 15-digit number starting with a possibility of a group of 1-2 digit numbers, segregated into three 5-digit numbers tuples with three different separator characters, evaluated ahead"
- mentally work out how to reverse an array's indexes (swapping algorithm) without writing anything down
- know how to optimize a binary search in your head
then kudos to you. lmao
I'm rusty. It took me a while..7 -
Oh man I sure do love having three separate code generators in one project with some additional hand written versions of the data containers so that every time the system engineers decide we need to change something about a data structure I have to update 1-3 hand written mapping functions. (Kill me please)4
-
1. Music, something fast paced with minimal to zero lyrics (usually a GOA radio station in my case)
2. No distractions around (use a "do-not-disturb" flag or something to hang on your monitor or show on your desk)
3. No chats or other communication/social media visible, best case those apps / tabs are completely closed or muted
4. Having a clear goal to achieve, might even be only a sub-goal for the current coding session.
5. Structure your code before your actually write it, I usually create step-by-step comments in each file, documenting my thought process and what steps the current file/class/whatever should do.
6. Try to code your stuff in the same order as the aforementioned comment step-by-step list dictates (unless there is a reason to change the coding order)
7. Only windows open: IDE/Editor, Browser
8. Also keep only the browser tabs needed for your work open (testing clients, documentation, music if using a browser client, etc.)
At least that's what works for me3 -
-- Learn Data Structure this year
-- Complete 2 project with clean code
-- RnD on Game Development
-- Develop one WP plugin
-- Complete two tutorial get them promoted
-- Clear IELTS and try to get job Abroad
-- If have time will go for freelancing
-- Lastly if get bored will switch job -
Atm we're merging everything straight up to production because we only have our first client going live tomorrow. No problem except for the fact boss is using production to give demos to clients already. And so some JavaScript change that broke search made it to production and cropped up during a demo. So what does boss do? Call HR/support and yell at her that everything which works needs to keep working. Which is fair if we were live and we go back to merging to production being rare. So HR/support was in tears during our meeting where we were taking about the new live branch structure. GG boss. We consoled HR/support but really boss man knew how we work but ignored it.
Question for everyone though: what can we use or do to prevent changes to more general JavaScript breaking things around the code? We talked about unit tests and maybe code linters but is there more? Because it seems now might be the time to improve our working and even get budgets for tools.1 -
Have a freelance job where they require documentation of the code for later development. (+ I'd like to document my personal projects for practice)
Any web devs that could give some pointers on what kind of docs you would like to get if someone hands you a legacy project?
Obviously: comments in code and db structure and relationships1 -
Hey all ruby devs! I've recently made a redux gem implemented in native ruby, that allows you to completely decouple state from your code. If any of you like the redux design structure and want to use it in your backend, check out https://github.com/alexdovzhanyn/...
-
Oh when you refactor the complete project structure and give for build the first time !!!
It's like you are sitting with your heart on your hand and praying to God that at least let the errors be readable(I am no genius to think I will be able to produce error free code the first time😝😝) -
When you work on a project for months, the newly appointed tech lead says "we all (him, the boss and other colleagues not involved in this project) looked at your code and decided that it should be dropped and we are starting from scratch again....now I'm not against code review (which we never did) so I welcome the input but allow me to vent my frustrations about how this is being done. Also to have a review & verdict without me being present?
So I ask what was so wrong:
* You changed the database structure. Valid, I tried to make your db an actual db with relationships, so I added some foreign keys, delete fields that were never used, all because they told me to use an ORM.
* You used to much logic in setters, validation etc, valid again but this would be something we could look at and fix imho.
* You are passing classes in your constructor, valid I wanted to use DI to make unit testing possible. Ohh but I don't like unit testing so I don't see the point and it makes it to complicated was the response.
So not only was the project cancelled, the new iteration is being developed without me, I'm shunned from all meetings. Ohh and from what I see they are now using 5 tables instead of 25 and completely started the db model from scratch...5 -
Critical Tips to Learn Programming Faster Sample:
Be comfortable with basics
The mistake which many aspiring students make is to start in a rush and skip the basics of programming and its fundamentals. They tend to start from the comparatively advanced topics.
This tends to work in many sectors and fields of Technology, but in the world of programming, having a deep knowledge of the basic principles of coding and programming is a must. If you are taking a class through a tutor and you feel that they are going too fast for your understanding, you need to be firm and clear and tell them to go slowly, so that you can also be on the same page like everyone else
Most often than not, many people tend to struggle when they reach a higher level with a feeling of getting lost, then they feel the need to fall back and go through basics, which is time-consuming. Learning basics well is the key to be fast and accurate in programming.
Practice to code by hand.
This may sound strange to some of you. Why write a code by hand when the actual work is supposed to be done on a computer? There are some reasons for this.
One reason being, when you were to be called for an interview for a programming job, the technical evaluation will include a hand-coding round to assess your programming skills. It makes sense as experts have researched and found that coding by hand is the best way to learn how to program.
Be brave and fiddle with codes
Most of us try to stick to the line of instructions given to us by our seniors, but it is extremely important to think out of the box and fiddle around with codes. That way, you will learn how the results get altered with the changes in the code.
Don't be over-ambitious and change the whole code. It takes experience to reach that level. This will give you enormous confidence in your skillset
Reach out for guidance
Seeking help from professionals is never looked down upon. Your fellow mates will likely not feel a hitch while sharing their knowledge with you. They also have been in your position at some point in their career and help will be forthcoming.
You may need professional help in understanding the program, bugs in the program and how to debug it. Sometimes other people can identify the bug instantly, which may have escaped your attention. Don't be shy and think that they'll make of you. It's always a team effort. Be comfortable around your colleagues.
Don’t Burn-out
You must have seen people burning the midnight oil and not coming to a conclusion, hence being reported by the testing team or the client.
These are common occurrences in the IT Industry. It is really important to conserve energy and take regular breaks while learning or working. It improves concentration and may help you see solutions faster. It's a proven fact that taking a break while working helps with better results and productivity. To be a better programmer, you need to be well rested and have an active mind.
Go Online
It's a common misconception that learning how to program will take a lot of money, which is not true. There are plenty of online college courses designed for beginner students and programmers. Many free courses are also available online to help you become a better programmer. Websites like Udemy and programming hub is beneficial if you want to improve your skills.
There are free courses available for everything from [HTML](https://bitdegree.org/learn/...) to CSS. You can use these free courses to get a piece of good basic knowledge. After cementing your skills, you can go for complex paid courses.
Read Relevant Material
One should never stop acquiring knowledge. This could be an extension of the last point, but it is in a different context. The idea is to boost your knowledge about the domain you're working on.
In real-life situations, the client for which you're writing a program for possesses complete knowledge of their business, how it works, but they don't know how to write a code for some specific program and vice versa.
So, it is crucial to keep yourself updated about the recent trends and advancements. It is beneficial to know about the business for which you're working. Read relevant material online, read books and articles to keep yourself up-to-date.
Never stop practicing
The saying “practice makes perfect” holds no matter what profession you are in. One should never stop practicing, it's a path to success. In programming, it gets even more critical to practice, since your exposure to programming starts with books and courses you take. Real work is done hands-on, you must spend time writing codes by hand and practicing them on your system to get familiar with the interface and workflow.
Search for mock projects online or make your model projects to practice coding and attentively commit to it. Things will start to come in the structure after some time.4 -
Error reporting. Yeah it is a pain to come up with something that users will understand. As devs we need meaningful stacktraces so we can diagnose the problem but the normal person doesn't care. Also not having consistent messages looks terrible for the user's experience.
I hate it when there is no standardized error messages and/or json structure between teams or individual members of said teams. Why should we have 10+ different structures to code for in our apps? There is RFC 7807 for a reason. It has a defined structure plus accounts for custom properties. If you are a c# developer, check out the ProblemDetails class. It has made my life easier and I can guarantee everyone that all of my team's projects return this structure. -
I'm currently writing a discord bot using the discord.py library and I cannot decide how to structure my code.
I was thinking of writing it in modules, with a core script that would load any valid module class that would include an array of all the event hooks it wanted, whether it wanted to send messages and so on.
It's a nice way to practice python after my last working bot that I wrote in (Sit down for this) PHP using an outdated and abandoned wrapper (Yeah, event-based programming in PHP, I know)
Are there any better ways to do this? I really don't want to hardcode all the functions in, only to have it fall apart later after adding another feature...1 -
Not a horror. I'm rewriting services.
It started as a help request. I was asked to help with completing a service dealing with push notifications which was a research prototype. It was suggested to keep core part of it, but it was so awful that I just removed all files and wrote the service from scratch.
The second service had been developed for more than a year by a junior and then by our manager who wanted to complete it as fast as possible, without taking care of code quality. Then I was asked to take over the project and after some time I agreed with one condition: I'll have 1 month on takeover. But when I looked at the code, it became clear that it's much faster and better to rewrite everything except API and database than to takeover existing code.
The third service dealing with file exchange was working, but the junior who wrote it advised to rewrite it because it was a very simple service. So, I initiated rewriting, designed a new API and reviewed the final result.
And now I'm dealing with the fourth one. It was developed in my team but not under control. Now, when I "inherited" this complicated project, I decided to rewrite it because it should be simple, but it doesn't. It features reflection, layers inside layers, strange namespaces, strange solution structure. And that's after months of refactorings and improvements. So, wish me luck because I want to keep part of the infrastructure, but I don't know if it's possible. -
Fuck you, BouncyCastle. I really like you but the way you have documentation. It's annoying. Nice name. Cool project.
Here, I'm write Java Docs for JUnit tests! For every damn test case!
So damn less documentation even SO said mind your own business! It's been more than 15 hrs. Not a single reply! I died a little today. They have examples but they are not really "examples". No passion at all for documentation!
You should watch and learn from AssertJ docs. OMFG @joel-costoglia sets standards for code style and docs before pull requests. The examples are LOTR themed for god's sake. I'm not asking for fluent API. I just want docs. What class does what. A simple program structure required.
Dyn4j, deeplearning4J have wonderful docs. Why not BouncyCastle?!!!!! -
When do the front-end developers get the APIs.?
How does the communication between front-end and back-end works.?
I work in a startup and I'm getting the feeling that this communication is way off the place. Many-ier times we have to wait for weeks for the API to come. Till then, we build mock data structures and implement it. The API gives us more and less exactly what we need. And you can guess it sometimes the structure gets changed in such a way our front end code gets to be refactored.
Is it the correct way.? The whole mock data structures and wait for the API thing. One of my colleagues says, "It's much better if we get some part of API first and integrate it progressively".2 -
Ok......so we working on this system with a friend
we have deadline today
he's the one who wrote the code
I'm just implementing some features
maaan the dude is just not responsive to questions
and project structure and code is bad AF no comments or docs
WTF!!!!!!! -
Perfect job would be work life balance.
Colleagues are helpful.
The existing project are having clean architecture and code structure that won’t confuse developer at all. -
When i wrote my first data structure (linked list) in c.
When I first learnt and used the concept of subqueries.
And way before that when i made a static website teaching c and made JavaScript output the result of c code i was explaining.
Also in my first job when i was debugging a shitty 2k plus lines stored procedure for days to realize that it was giving a wrong output just because a single variable was unassigned (null) -
so am switching jobs as an Android dev from a company which made android libs (using almost 0 external dependencies and mostly java) to a company which makes android apps( and is probably using either rx/guava/ribs/hilt etc or the more fancy hilt/compose/coroutines/clean-arc etc. its either one of them depending upon the maturity of product)
B2C folks use tons of libraries in favor of delivering fast but learning about those libraries while taking new tasks and fixing bugs CAUSED by those libraries ( or their inappropriate usage) is a big PAIN IN THE FUCKING ASS.
I remember i had once became such a weird dev coz of my prev company ( before the current libraries one, which was also a B2C) .
on weekends i would come up with a nice app idea, start a new android studio project, and before writing a single line of useful code, i would add a bunch of libraries, gradle scripts and extensions .
that ocd will only settle once all the steps are done and i can see a working app after which i would write the code for actual code for feature implementation.
granted that these libs are good for creating robust scalable code, but most of the times those infinite kayers of seperation, inheritance and abstraction are not really needed for a simple , working product.
:/
i have also started reading about rxjava , and although i am repulsive to this library due to its complicated black box like structure, i find its vast number of operators nd built in solutions very cool.
at the end of the day, all i want is to write code that is good enough for monkeys, get it shipped without any objections and go back home.
and when you work on a codebase that has these complicated libs, you bet your ass that there will be thos leetcode bros and library lover senëõr devs waiting to delay the "go back home" part 😪2 -
For those who ever tried to find and/or implement a crm: everything seems to be based on that bastardized vtiger core which is based on an old version of sugarcrm I'm so fucking tired of that shit. I gonna make my own. The underlying framework makes me sick to the bone. Everything in there relies heavily on magic. Being arround for years and just recently got a new major release yet unable to transfer offer items to the invoice even though it requires a relation?
This is not blunt talk. My thing is based on Laravel, EAV principle for dynamic fields, module code structure, interface for the list view and many other stuff is already integrated. This is gonna be done and will be done because existing stuff is so fucking ugly and broken I can't fathom myself.
Btw I still need a name
PS: I hate smarty, PearDb and their fucking database layout -
I've gotten started with web dev in the past and learned HTML and CSS and started learning JS but I never could understand what I could use for a code editor to practice and pretty much forgot all of that stuff. Now I'm trying to learn Python, but what's pissing me off is paying for a phone app that doesn't teach you to write code in these lessons, rather interactive multiple choice questions and "put this in the right order". sequences. This is not learning for me, this is informing. Which is info I don't retain. And If i'm paying for it why is there so little to these lessons? Barely covering anything. I've done every lesson Mimo had for python but it didn't really explain the practicality of what it was teaching me and they skipped a lot of shit. Changing the pace of the lesson from Print this and that and heavily explain the most basic stuff 3x over to only explaining the more advanced stuff one fucking time.
I would really like learning python while being walked through a project as a lesson. Teach the terminology, structure, application, process, rinse and repeat, and outcome all in one. With a project target to look forward to. I need a goal to keep my interest.
So far all I know about python is its a programming language used to create Youtube. And I'm trying to learn it because I keep reading that its the recommended starting line. But I need to be able to visualize what this code can be used for. Explanations in terminology I haven't been taught yet just frustrates me. And I read everyone's posts and see many people mention being frustrated, but I haven't even started coding yet. Feel free to comment and redirect me to page that can help. Links are appreciated. Nay, encouraged!7 -
sat through a 2 hour lecture/live code on streams, still don't understand the structure well enough to modify an example to check for 4 sequential numbers in a HashSet.
-
I am busting moves rn. I'm in the bathroom but the surge of energy is making me pump my arms like the time Leo Messi scored a clutch winner against Valencia in 2019
Remember the plugin I referred to in this rant? https://devrant.com/rants/6019851/...
Yup! I managed to subdue that fossilised codebase. Effected all changes required. To have a rough idea about how ancient the code is, its classes use constructors predating PHP 5. It throws away the ~15 years of autoloading, view templates, routing engines, DI, ORMs (NO PDO!!), lower-cased multi word variable names, etc. I'm looking at SCRIPTS with raw functions north of 4-600 lines. The client insisted I zip the folder across
BUT! The good news is, we surmounted it. In fairness to them, it's commendable for one man to have pulled this off. The codebase is massive and appears to have been predominantly written by some Gideon dude. Who knows where he is now
There is one pattern I appreciate –something I wish Transphporm does–some segments of the rendered view are composed using class methods ie instead of having the HTML file mixed with templating syntax, you have class methods that receive the raw data. Then you can extend this class as you wish, overriding just the method that composes the segment you intend to modify. That was elegant to work with. But it can become dreadful if the class expects a specific structure of data (an array with weird keys) that you have no access to sourcing
So, I finally get to enjoy one good evening in 2/3 weeks. I called 2 friends to express an emotion that's not gloomy, but they were unavailable. Will probably get some sleep4 -
I'm building an Android app from ground up targeting to have functionalities added without much effort in succeeding phases.
What I'm pissed about mobile development at the moment though, is its lack of structured code base that is easy to follow. Unlike web where codes are modularized and well placed, in mobile, I kept going back and fort in different modules to see how they are used in all places in the project which made it tedious as time goes.
So I kept a notepad keep track of detailed flow. However, once I go back at the notes to place them on top of your head, the almost spaghetti-like structure just becomes very hard to track. For me it doesn't follow a pattern and that developers are free to do what ever they wish so as long as it can run in the device or emulator.
For instance, implementing concurrency as well as dependency management and a Clean architecture is such a pain. I hope i can relate to someone here.
If only there is a standardized way of structuring codes in android in Java or Kotlin (haven't tried this), there would be hope for me. So if anyone can provide a good, readable, reliable android project that I can start building my project on top of, your help will be greatly appreciated! Thanks for reading. -
I have a changed a project that has many many many bugs because of outdated code that kept it from working. In the process, I changed the structure of some feature implementations in order to get the application to work again. Can this be considered refactoring, or is it just a special kind of bugfixing?
Also, can I call something a rewrite even though I'm not actually writing anything, just using a GUI environment to create the same functionality again?
I need this because I'm writing about what I'm doing for my university and I can't find it on google - I guess it's opinion based.1 -
Finally im starting to get hang of how nextjs works. Still no idea how query params work, routing api calls, the proper structure, useEffect vs useState, SSR vs static props, etc but i wrote the messiest spaghetti code youve ever seen, and it works! I built a frankenstein. And its alive. Cleaning this shit up is the least difficult part4
-
{TL:DR/ a super non web dev non frontend non interested person aka me somehow cracked the interview(through wrong practices i guess) landed into an internship that would have gone to a better person.I cracked the interview but am shit scared if i could stand the job}
- So 3 days ago i was talking to my friend regarding random stuff, when he told about needing a front end dev for making static template based html pages for their company.
- (I haven't ever worked in deep with web dev, just generated a few websites using mardown to html convertors, and was recently trying to learn flask/bootstrap/js) I was in need of some work so immediately requested him to talk about me in their company.
- yesterday i get an interview call from the hr of that company . She ask what i know, what they want and if i could do. I honestly tell them about my experience with web dev( with some maybe's)
- moments later , she adds me to a group with another guy, and gives us both a task to use create a clone of same website in 2 days.
- The website is a super graphically designed web page with lots of animations, custom mouses and what not. I could sense the basic elements out of it , like the nav bar and the carousals, but those animations were way beyond my knowledge. yet i start working on it
- I try with taking the clever top down approach of cloning the website and fixing its structure. It has such long code files of 10k+ lines, but i was still able to clean the css and html files and some of js code to make the website work
- later my friend calls and tells me that the other guy is a 1st year student / his brother and he doesn't know much stuff so he's kinda like me.
- He shows me a video of his code that he sent to him. That guy took the honest, bottom up approach, used the design as inspiration and was trying hard to create the similar design and animations via js.
- among other things, he also tells me that this challenge is super difficult and the level of difficulty in the work is certainly going to be lesser than this.
- In my task, I was super stuck at js because i haven't learned it much, therefore after spending 1.5 days, i made a submission without the main thing, i.e one particular carousal working
- later I get a call from another friend (B) of mine and while discussing random things, i show him my code over anydesk and ask him if he could somehow get my code to work. He asks for some time and sends me a complete refactored version of code with the same design but fully working carousal and other stuff.
- meanwhile i get to see the other guy's code and he had legit made all the designs and functions by himself, but his code looked less polished and different from the design.
- I pushed my friend(B)'s refactored version and added a comment on the group the carousal in mu code is now working.
- later at night my friend1 calls and tells me that their company was considering my submission and i would be getting the selection call
- I feel like a crazy fraud who somehow cracked the interview but is going to get his ass whipped. Where and how can i learn js, and jquery?5 -
I know a lot of people aren't fans of Microsoft here, but does anyone have some extended experience with using powershell?
I've been using it for creating a script that handles quite a large set of tasks for setting up and configuring some application servers and so far I have been really digging the language. Being able to invoke the script against remote hosts in parallel like ansible has been a really cool learning experience.
Admittedly it's verbose as fuck, so getting the same thing done in something like python/perl might be like half the lines of code. And I know that some of the commands illicit a "WTF?" every now and again. But I think one of the powershell tutorials I watched early on in attempting this helped make using powershell not suck ass.
Every command is basically 'verb-noun'. You don't know what the command or switches are:
> get-help "command" -showwindow
It will give you a list of options if you didn't select the exact command with get-help.
It feels* amazingly buttoned up as a scripting language and it's really cool to be able to take advantage of lower level stuff, like you can run alternative shells (we have cygwin installed on some of our servers), you can run C# code, you have access to interfacing with .NET api's. I haven't messed with anything azure yet, but being able to interface with products and services like SQL/Exchange/O365/azure/servers/desktops from the same language seems pretty cool.
Admittedly, the learning curve feels terrible though. I felt like a dunce for the first couple weeks, couldn't navigate the language at all, and was always in the docs trying to figure stuff out. I think I just needed to understand how the people developing powershell intended for it to be used. Once I was able to put two-and-two together about the verb-noun structure and how to find information/examples about the cmdlets it's been quite easy to work with it.
If anyone else has any extended experience with it, please share your thoughts/opinions. Curious to see if your experiences are/were similar to mine.
If you don't have Powershell experience, please feel free to share your opinions of Micro$haft and me for using Micro$haft products too! It's all good 😎9 -
!rant
Was too much into jquery, and so when I started my job I made everyone think jquery is the boss and stuff (my team is full of data engineers and business analysts.. No one understands code)
But now, based on my previous rant, I feel I should switch the entire project from a node/express structure with jquery to one with angular2
Does it make sense? Please advice... I am nervous of losing my job coz of this
(even now I hate typescript but I see why angular2 is better than jquery.. So I'll learn it all)13 -
Hey, can someone point me to a sample project (if it exists) on the best way(s) to stucture code for Serverless architecture that includes GraphQL and unit testing?
Preferably in NodeJS. I'm more interested in the code structure than anything else. -
Hello guys, i need some advice:
Our school is having a "auto-management" (idk how to translate) period, it lasts 3 or 4 days just before christmas vacation, and in those days students get to organize courses about pretty much everything to teach stuff to other students (exept stuff like video games cuz the principal is closed-minded), some friends asked me to make a course about programming in c# because they are interested, i thought it was cool so i said OK.
Now i'm thinking how to structure it, it's going to be 2 "lessons" of 2 hours each, and it's open to everyone in the school.
I don't want to do a full blown course explaining everything, i just want to give them a kick start and point them to the right direction, I thought about explaining some "theory" in the first lesson, I'm assuming almost everyone that will come never did programming stuff, so i'm thinking of explaining stuff like how a computer works, why you need a compiler, etc.. maybe based on the introduction from learncpp.com without getting to much into the details and then explaining how c# works and its grammar.
Then in the second lesson i'll try to code togheter some stuff (We'll have just one pc attached to a projector).
So, how would you do this ? I mean i never tried explaining programming to someone else and i'm self-taught i looked at the guide on msdn but it starts directly by giving you an hello world, should i follow it ? I fear i'd get too thecnical and they wouldn't understand me, do you know some good guide i can use as a reference ?
ps: there's going to be max 30 people1 -
I need help structuring a new TypeScript project built on a MERN stack. I used CRA for the client, so I opted to have separate tsconfig files -- one for client (auto-generated by CRA) and one for server (extends node12 tsconfig). However, I'm trying to setup eslint and prettier globally so that the lint/style rules are uniform across the codebase. CRA adds an eslint config that extends react-app, which is fine, but I'd like to still have my global rules. I have written my eslintrc.json file and am happy with it, so I placed it in the project root directory. I figured I would install eslint, prettier, etc. in the project root, then when I run eslint globally, it would lint the server code with the global rules and the client code with the global rules and the react-scripts rules.
However, react-scripts complains that I've installed a newer version of eslint in a parent directory. I can either ignore that rule or use the same version as react-scripts, but it seems like react-scripts is going to run eslint on its own when I run npm start, regardless of if I have a global config. What should I do? Is there a better way to structure the app?1 -
THIS is powering the internet:
"[...] was a protocol number, similar to the third argument to socket today. Specifying this structure was the only way to specify the protocol family. Therefore, in this early system the PF_ values were used as structure tags to specify the protocol family in the sockproto structure, and the AF values were used as structure tags to specify the address family in the socket address structures. The sockproto structure is still in 44BSD (pp. 626-627 of TCPv2) but is only used internally by the kernel. The original definition had the comment "protocol family" for the sp_family member, but this has been changed to "address family" in the 4.4BSD source code. To confuse this difference between the AF_ and PF_ constants even more, the Berkeley kernel data structure that contains the value that is compared to the first argument to socket (the dom family member of the domain structure, p. 187 of TCPv2) has the comment that it contains an AF_ value. But some of the domain structures within the kernel are initialized to the corresponding AF value (p. 192 of TCPv2) while others are initialized to the PF value." Richard Stevens 'Unix network programming' -
How do all you other devs deal with sleep? Because I am losing my fucking mind I work for myself so I don't go to work at 9am leave at 6pm.
I normally work until 6am and then sleep till 12 drink 3 strong coffee to start functioning again try and do something productive which at the moment involves catching up on the NBA playoffs and then starting work at 6pm.
Due to resent baby I thought shit my life is fucked I haven't left the house in 3 days I need structure routine I need to work 9am to 6pm become human again but I just can't FUCKING sleep it's now 1:30am and I'm trying to sleep.
I know what your thinking why are you on devRant but I've been trying to sleep for the past 3 hours but all I can think about is work code, refactoring, new languages, security, support shit that can wait but I can't get it out my head, keep thinking "ah your not tired you could work", and YES I have a list which get bigger every day wish I had a drug dealer or was still in contact with my old mates so I could get some Valium but it's hot milk and sleeping tablets for me, life is so much easier when you can just fuck of home at the end of the day and forget about work, not having your laptop next to you trying to trick you into opening it. How do other people who work for theirselves deal with the life work balance?4 -
Finish my game. It will probably be shit because the concept just wasn't that good, but I will be able to extract 2-3 useful node modules once it's finished and tested properly. A VoIP system with overlapping rooms and an efficient co-browsing system without a serverside browser like Selenium are certain. Perhaps the plugin structure as well, but that's more architecture than code.1
-
I feel no motivation until we're past this fucked up hump and all the tech that is relevant and theory that was kind of crap remains the same and in the same foreground position and all the chommies die or go away.
I can't even finish the next line of code I know I already wrote to spawn a crap ton of md5 and file structure scans for quick disk vs disk inventory.
that i knew actually worked.
i mean if i hide proof this time period existed in teh fucking woods again they'd just use dogs to find it.
guess its time to make news.1 -
Depends on what style means...
How I format the code: language, team/style-check rules, IDE auto format settings
How I structure my code and design programs: experience... Mainly from blowing stuff up, having to rewrite monolith code, trying to understand other people's shitty code and why they can't seem to organize it better so you don't need to be a surgeon or God to even attempt to figure out wtf it's doing and how it works... Or supposed to work. -
Fucking Yeoman, guys.
For a school project I thought I'd try it out to scaffold out my folder structure etc. Ran a php generator (not having commits since 2013) through npm and sipped my coffee while one node deprecation warning after the other filled my terminal.
Now I just feel like I'm sitting with my dick in my hand while staring at what looks like the fucking source code of the Matrix itself.
Does anyone use Yeoman for PHP projects anymore?
Well, at least Grunt works flawlessly 😎 -
Working on a portfolio project - I ran some tests, everything is all good - 100% passing. Computer freezes - pop_os has been giving me shit lately, so I have to restart. Fine.
I get back into code, i re-run pytest - nothing works. Python apparently can't find my modules anymore. I try a few things, nothing. Why? Who the fuck knows - "oh you need this conftest file", "oh you need to remove __init__ from this directory or that one", "oh it's a pytest version iss---" no, no, no - listen here you little shit, it was working two seconds ago. Tell me why and how software I wrote with the most basic ass package structure - literally TWO directories suddenly has no fucking clue how to import the modules. hmm? Even from within the app directory, app.server now no longer recognizes imports from app.main or app.database.
ALL of this worked. It works in new directories without dedicated venvs - it works in new directories with my global python install - it works with any one of my conda envs - it works on other computers - WHY doesn't it work in THIS directory all of a sudden?? Ugh.
What's terrible is that relative imports will probably solve it within the app dir, but the tests dir won't accept them. Moreover, vs code autocompletion can find all the modules, but python itself cannot. Fucking infuriating shit like this is.1 -
Hey!
I am trying to learn creating games for android (+- 0 android expirience).
I figured I could use GoDot for it's awesome pricing (free, no strings attached).
I've done few minor things, but, to be perfectly honest, I'm fed up of GDscript. I just internally hate it more every single time I touch it, so recently I stopped attempts to learn doing games for droid/iOS.
I'm looking for free alternative to godot, preferably no strings attached, but wahtever... Here is what I need:
- I prefer code, but doing stuff in GUI is fine, but stuff like making level etc, preferably in UI
- C++ derrived syntax (ex. c# etc. c++ is fine too), no BS like some wacky workaround to do basic shit like 2d array....
- easy android/iOS export (like in godot, one day I was attempting to hello world in android and compiling for first time... was quite an advanture)
- objects
- some easy way for restfull apis
Good to have:
- ability to test project without android VM
- observer pattern (signals/slots)
I don't care what structure it's made, for me milion of scenes on one screen was extremly coutner-intuitive but meh, whatever. As long as it's possible to learn, it is fine.
Can devranters help, please?
Thanks,
peace.16 -
Starts new codebase
uses boilerplate with the intent to keep a clean structure.
after 2 weeks it already a complete bunch of spaghetti code and doing things like putting the same image in 4 different directories... boy i wonder why i could never hold down a job as employee...2 -
If I ever work with people who use Python professionally I will go postal in under a day they are some of the most unprofessional snarky little fucking bastards on the internet !
Apparently a question with a million hits who's cure all answer DOESN'T WORK, is me being stupid.
So question, how many of you when looking at a third party client that doesn't have great documentation, export class data into a file to look it over at your leisure by using a serializer that just dumps the shit into said file so you can look at it ?
I mean fire and forget. Just works. Just descends into the data structure and starts dumping field values. Done. One line of code.
Json.PUTMYSHITINASTRING(FUCKINGCLASS) ???????
DON'T SAY MY METHOD OF WORKING IS BAD ! ESPECIALLY WHEN THERE FUCKING EXPORT CODE AS A CHECK_CIRCULAR BOOLEAN PARAMETER INDICATING IT SHOULD WORK BETTER THAN IT FUCKING DOES AND THE FUCKING DEBUGGER CAN REFLECT THE OBJECT !!!!4 -
Recently joined new Android app (product) based project & got source code of existing prod app version.
Product source code must be easy to understand so that it could be supported for long term. In contrast to that, existing source structure is much difficult to understand.
Package structure is flat only 3 packages ui, service, utils. No module based grouped classes.
No memory release is done. So on each screen launch new memory leaks keep going on & on.
Too much duplication of code. Some lazy developer in the past had not even made wrappers to avoid direct usage of core classes like Shared Preference etc. So at each place same 4-5 lines were written.
Too much if-else ladders (4-5 blocks) & unnecessary repetitions of outer if condition in inner if condition. It looks like the owner of this nested if block implementation has trust issues, like that person thought computer 'forgets' about outer if when inside inner if.
Too much misuse of broadcast receiver to track activities' state in the era of activity, apપ life cycle related Android library.
Sometimes I think why people waste soooo... much efforts in the wrong direction & why can't just use library?!!
These things are found without even deep diving into the code, I don't know how much horrific things may come out of the closet.
This same app is being used by many companies in many different fields like banking, finance, insurance, govt. agencies etc.
Sometimes I surprise how this source passed review & reached the production. -
For most part, after realising I have freedom of implementing and structure my codebase. I have followed only this rule whenever I stumbled into new way of code format/implimentation techniques.
- Understand the structure
- Check if it's new/upcoming way people started coding
- decide should I use it just yet
- implement according.
Adding factors such as time and prefered language, it turns out to be your own personal style.
PS: yes you do follow community conversion but, there's some part of it that makes it unique to you. -
Teaching all my friends JavaScript and thereby learning more myself. What a beast it is to comprehend. Other languages feel like learning a structure and syntax, where as JS feels like learning an entire actual language.
Soon... Soon we will all be speaking ninja code. My evil plan is coming together >:) -
This year I and two friends joined modelling competition for uni students called SCUDEM. We are modelling refugee settlements and the crime rate in Uganda. I try to lead the group as the previous year and we changed one team member. The model is written in Julia and it is 2k of working lines after week, we work on it in our spare time.
However, one friend who hasn’t done any bigger project in the past or wasn’t programming for money disagree with the workflow. He prefers doing some small models separately. He doesn’t write clear code and it is difficult to read it afterwards. His ideas are good, but he likes more to talk about the problems than straight code them down in the way that we can use it in the bigger structure.
Do you any ideas on how to motivate him to take part in the collective workflow? I feel that working separately is rather contra-productive.2 -
I want to ask for your opinion guys, because I don't know if I am right or wrong.
So, some days ago, my brother sent me some code to check out for an automation that he does for testing purposes, since he's a QA (I am a programmer). He should be able to send XML data to a server and depending on the process that he tests, the data is different every time. I saw a strange thing, he hardcodes the XML tags and concatenates them with data which I find stupid. So I proposed him to use a template to generate XML data, because I think it's more flexible and easier, making data and presentation separate. That way if in the future he wants to start using JSON he could do it in no time. I made the code in a separate file which he imports and uses it's functions (they are two so no need for classes) and uses them to load the template and render it as he passes the data as a hash table. He insists that concatenating data and XML tags is easier and simpler and I can't wrap my mind how could that be true. I gave him an example in which the data structure for a process is changed and he have to open the file and change the XML tags or the structure and he still says that's simpler.
What is the right decision in this situation. Keep in mind that I simplified the process a lot and it actually involves sending the data and reporting the results, but they are not important here since I am talking only about generating data. -
Have anyone ever regreted on any code/structure written that you find hard to eliminate it as the system grows bigger
-
We use Sequelize. This is how we do database structure changes:
- I create/change a model in Sequelize, and let it change my local database, then I do work on that
- I push the new code to a remote branch
- my boss/CTO/lead dev then manually creates/changes the relevant table(s) in our staging database
- I finally merge the branch I originally developed into the remote branch
- boss checks that everything is working
- at last, boss does the same process of modifying/creating tables in production database
- finally, staging code is merged into main
So right now:
- I'm changing a feature, forgot I was editing in the main branch
- go ahead and create a remote branch for it, pull locally, checkout local version of newly created branch
- try to run code
- oops, there's a missing column in one of my local database tables
- ask for boss for SQL script that will create the missing column and potentially add more data or whatever
- waiting for boss to respond
H-how can we improve this process? Boss has talked about us moving to use migrations but we never ended up doing it. I don't know much about migrations either. This is gonna suck so hard.3 -
Okay, here is the thing. I'm reviewing some changes about a new Pop Up component made in React.
Everything starts as usual; seeing the new code, what they remove, what they added. But for some reason one of my fellows decide to change the whole structure and changing component site to another folder, renaming and doing a lot of stuff not related to what we were suppose to do in that dev.
Am OK with improving code during new additions or tweaks of code but this... this goes too far.
Now am not sure of pushing all the changes to master cause I can't ensure everything will be fine... crap.
That's all, just needed to spell it out.