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 - "best practices"
-
preface: I'm fucking exhausted and angry.
Why does everyone assume I know how to do frontend?
Why am I always the design girl?
Why?
You hire me to do backend. STOP GIVING ME FRONTEND DESIGN CRAP. I HATE IT.
AND STOP GODDAMN YELLING AT ME FOR NOT MAKING SOMETHING RESPONSIVE.
I DON'T KNOW HOW.
yes i can learn, but I CAN'T FUCKING PICK UP A SKILL LIKE THAT IN A DAY. Also, I fucking hate it.
STICK IT UP YOUR (min-width: 1400px) ASS.
But seriously, I've spent 13 hours today figuring out completely new things (webpack, susy, express.js, cloudinary, responsive best practices, more webpack) because the boss is in panic-mode (his preferred state) and wants this project released last monday.
guess what? it isn't done.
because i still don't know how to do everything. and ofc there's nobody to ask because there never fucking is.
Seriously, boss-man. hire a fucking designer, and stop being an illiterate sales goon while you're at it. ffs.54 -
"Can you put my site as the first result on google?"
I can add SEO to your site, just give me your preferred keywords, a description, and let's make sure we follow white hat best practices etc.
"No call someone at google and ask how much to go to the top of the list"
So you want to pay for ads or..?
"No get a figure I can pay to get to first page"
"Or can you just edit the google"
... And so I never renewed that contract ever again, the end.12 -
TOP 10 PROGRAMMING BEST PRACTICES
#1 Start numbering from 0.
#10 Sort elements in lexicographic order for readability.
#2 Use consistent indentation.
#3 use Consistent Casing.
#4.000000000000001 Use floating-point arithmetic only where necessary.
#5 Not avoiding double negations is not smart.
#6 Not recommended is Yoda style.
#7 See rule #7.
#8 Avoid deadlocks.
#9 ISO-8859 is passé - Use UTF-8 if you ▯ Unicode.
#A Prefer base 10 for human-readable messages.
#10 See rule #7.
#10 Don't repeat yourself.12 -
Let's get rid of the developer training: Pair Programming
Let's get rid of the software testers: Test First Programming
Let's get rid of the project managers: Agile
Let's get rid of the project planners: Scrum
Let's get rid of the system admins: DevOps
Let's get rid of the security guys: DevOpsSec
Let's get rid of the hardware budget: Bring Your Own Device
Let's get rid of the servers: Cloud Computing
Let's get rid of the other scruffy guys: Outsourcing
Let's get rid of the office space: Home Office
Let's get rid of the whole fucking company: Takeover8 -
Breaking devRant news: we are extremely excited to announce the featured guest for the first episode of our podcast. He co-authored possibly the most famous software development book of all-time - "The Pragmatic Programmer" and is well-known for many other titles including "Practices of an Agile Developer." For the devRant community, one of his coolest/fun claims-to-fame might be that he is the inventor of rubber duck debugging, a frequent topic of discusson here on devRant. Beyond this, he is also one of the founders of the agile development movement. Our first featured guest is Andy Hunt (http://www.toolshed.com/about.html)!
As you can probably imagine, we're very excited to have Andy on the first episode of the devRant podcast and there's so many things we want to ask him. We want to give the devRant community a chance to submit questions too because we know devRanters will come up with fun questions. So feel free to just submit any questions you'd like us to ask on your behalf as comments on this rant, and we'll pick the best ones. Thanks!25 -
Here's my piece of advice for new devs out there:
1 - Pick one language to learn first and stick with it, untill you grasp some solid fundamentals. (Variables, functions, classes, namespaces, scope, at least)
2 - Pick an IDE, and stick with it for now. Don't worry about tools yet. Comment everything you're coding. The important thing is to comment why you wrote it, and not what it does. Research git and start using version control, even when coding by yourself alone.
3 - Practice, pratice and pratice. If you got stuck, try reading the language docs first and see if you can figure it out yourself. If all else fails, then go to google and stackoverflow. Avoid copying the solution, type it all and try to understand it.
4 - After you feel you need to go to the next level, research best practices first, and start to apply them to your code. Try to make it modular as it grows. Then learn about tools, preprocessors and frameworks.
5 - Always keep studying. Never give up. We all feel that we have no idea of what we are doing sometimes. That's normal. You will understand eventually. ALWAYS KEEP STUDYING.9 -
Lads, I will be real with you: some of you show absolute contempt to the actual academic study of the field.
In a previous rant from another ranter it was thrown up and about the question for finding a binary search implementation.
Asking a senior in the field of software engineering and computer science such question should be a simple answer, specifically depending on the type of job application in question. Specially if you are applying as a SENIOR.
I am tired of this strange self-learner mentality that those that have a degree or a deep grasp of these fundamental concepts are somewhat beneath you because you learned to push out a website using the New Boston tutorials on youtube. FOR every field THAT MATTERS a license or degree is hold in high regards.
"Oh I didn't go to school, shit is for suckers, but I learned how to chop people up and kinda fix it from some tutorials on youtube" <---- try that for a medical position.
"Nah it's cool, I can fix your breaks, learned how to do it by reading blogs on the internet" <--- maintenance shop
"Sure can write the controller processing code for that boing plane! Just got done with a low level tutorial on some websites! what can go wrong!"
(The same goes for military devices which in the past have actually killed mfkers in the U.S)
Just recently a series of people were sent to jail because of a bug in software. Industries NEED to make sure a mfker has aaaall of the bells and whistles needed for running and creating software.
During my masters degree, it fucking FASCINATED me how many mfkers were absolutely completely NEW to the concept of testing code, some of them with years in the field.
And I know what you are thinking "fuck you, I am fucking awesome" <--- I AM SURE YOU BLOODY WELL ARE but we live in a planet with billions of people and millions of them have fallen through the cracks into software related positions as well as complete degrees, the degree at LEAST has a SPECTACULAR barrier of entry during that intro to Algos and DS that a lot of bitches fail.
NOTE: NOT knowing the ABSTRACTIONS over the tools that we use WILL eventually bite you in the ASS because you do not fucking KNOW how these are implemented internally.
Why do you think compiler designers, kernel designers and embedded developers make the BANK they made? Because they don't know memory efficient ways of deploying a product with minimal overhead without proper data structures and algorithmic thinking? NOT EVERYTHING IS SHITTY WEB DEVELOPMENT
SO, if a mfker talks shit about a so called SENIOR for not knowing that the first mamase mamasa bloody simple as shit algorithm THROWN at you in the first 10 pages of an algo and ds book, then y'all should be offended at the mkfer saying that he is a SENIOR, because these SENIORS are the same mfkers that try to at one point in time teach other people.
These SENIORS are the same mfkers that left me a FUCKING HORRIBLE AND USELESS MESS OF SPAGHETTI CODE
Specially to most PHP developers (my main area) y'all would have been well motherfucking served in learning how not to forLoop the fuck out of tables consisting of over 50k interconnected records, WHAT THE FUCK
"LeaRniNG tHiS iS noT neeDed!!" yes IT fucking IS
being able to code a binary search (in that example) from scratch lets me know fucking EXACTLY how well your thought process is when facing a hard challenge, knowing the basemotherfucking case of a LinkedList will damn well make you understand WHAT is going on with your abstractions as to not fucking violate memory constraints, this-shit-is-important.
So, will your royal majesties at least for the sake of completeness look into a couple of very well made youtube or book tutorials concerning the topic?
You can code an entire website, fine as shit, you will get tested by my ass in terms of security and best practices, run these questions now, and it very motherfucking well be as efficient as I think it should be(I HIRE, NOT YOU, or your fucking blog posts concerning how much MY degree was not needed, oh and btw, MY degree is what made sure I was able to make SUCH decissions)
This will make a loooooooot of mfkers salty, don't worry, I will still accept you as an interview candidate, but if you think you are good enough without a degree, or better than me (has happened, told that to my face by a candidate) then get fucking ready to receive a question concerning: BASIC FUCKING COMPUTER SCIENCE TOPICS
* gays away into the night53 -
Boss: Great news, we are getting another backend dev from another team to help us out.
Me: Cool, hopefully we don’t have the same trouble as the others, not replying, never writing anything down etc.
Boss: No, I’ve worked with her before. She’s much more passionate about doing things right, using best practices and all that stuff.
Me: Oh that’s perfect, great news!
Boss: Yep! ... just be aware she has a tendency to get very easily confused. She delivers the wrong thing from time to time and might need to redo stuff semi-regularly.
Me: ... ... ...
Boss: It’ll all work out. Don’t worry. Ok gotta run.16 -
devRant is a place to rant. Not a journal of best practices.
Can I just rant without giving a long winded backstory?
Do I have to explain myself to prevent people from commenting that the problem must be me?
If you read a rant, and you can't relate to it sympathetically.
Move along! That rant is not for you!
When people are trying to vent no one wants to see your snippy little comment about how 'unprofessional' they are being.8 -
I just quit my job!
The company I worked for is a small company founded in Jan of this year and I was there since the early days but wasn't a founder nor a partner.
It was me who decided on which tech stack we should use, which languages, what servers to use, best practices and almost anything related to development. I was the lead developer and project manager for the biggest project they had.
But they decided that I don't deserve to be a partner. I was making more than 50,000 SDG per month for the company but only paid 6,000. The worst thing is that the partners don't know shit about software development. They have no vision for where should the company be in the future.
I just had enough. I already had my own software dev business before joining them, and it was successful.
I am going back to building my own company with my own vision.
I know I made the right decision, but it still hurts leaving a company after u made it what it is today. It is like your own baby and you are abandoning it.
Hopefully, it is for the best.9 -
Why not have a custom (500 line) JSON mapper... you know... fuck those auto mapping libraries out there...14
-
You just came in today, being new in your position. I've been with the company for around 5 years, and you're the new guy. Look, I absolutely respect your skills. You're not a newbie coming out of uni, ok? You're a skilled sysadmin. But you asking me "what is your college?" and after me telling you I majored in linguistics, your answer "huh, that's why" and explaining why I'm wrong in my programming practices (which are taken from the Apache foundation) is utterly bullshit. Fuck off!
1) The fact that you have a BS in CS doesn't mean you know the best. I've worked as a programmer for some time. You were never paid to write a line of code.
2) Even if you were absolutely, positively, non-questionably right, you have no right to be condescending.
So, can you just shove your degree far up your ass? Because my friend, you're uppity as fuck just because you spent 4 years in college learning theory that you never applied in real world. I spent years learning my programming skills alone, after 9 to 5 work, during the evenings and fucking weekends. I don't need to prove myself to you, you fuckity fuck, I have proven myself to our employer over the last five fucking years.
Fuuuuuuuck!10 -
To all the design pattern nazis..
Don't you ever tell me that something is impossible because it violates some design pattern! Those design principles are there to make your life easier, not something you have to obey by law.
Don't get me wrong, you should where ever possible respect those best practices, because it keeps your software maintainable.
But your software should foremost solve real world problems and real world problems can be far more complex than any design pattern could address. So there are cases where you can consciously decide to disregard a best practice in order to provide value to the world.
Thanks for reading if you got this far.6 -
I was thinking today about a certain aspect of running a software startup and then it came to me...
Hank Scorpio, from the Simpsons, was right in his approach.
So many time I have seen people get hired only for the company to get a less-than-optimal performance from them.
But why is this? Of course, it is many factors but one of the major ones is...
Employers seem to lump employees in together and assume that since most developers operate in one way that the new devs should be the same way.
The problem with this seems to be that we are all pandering to the lowest common denominator.
Let's face it, most devs (like most people) are not good, and almost everyone is not living up to their potential because of a lack of understanding of themselves and how they can achieve more.
On top of that, most devs are just employees who will do what you tell them to.
Since those above developers are the norm (Reference Seinfeld "95% of people are undatable") we have to assume that there is a 5% who are exceptional.
The difference between the 5% and the 95% is NOT some built-in superiority but that the 5% has a good idea themselves and an understanding of how to get the most out of them. They set goals and then find the right path to achieve them. They don't coast.
By assuming these developers are the same as the others is REALLY hampering their potential and by doing this the company only hurts itself.
So, that's a lot of talking but what actionable things can be taken away from this?
Hank asks Homer "What is your dream?"
Well, employeers should take the time to identify which of these developers are in the 5%. A problem arises though when the 5% decide it is in their best interest to blend in.
Like when home says his dream is to "Work for you?" Hank shuts him down and wants to get to the truth. He makes Homer comfortable with not only vocalizing but achieving his dreams.
When an employer is looking for their types they should be looking for the following...
1. A real genuine desire to achieve
2. A real plan to get their goals done
3. Critical thinking and self-evaluation
But more importantly, when they identify these types they should be asking questions like...
- How can we help you be more productive?
- Is there anything about our current operating norm that is hindering you?
- How does your productivity workflow look?
3 difficulties arise though…
1. Most hiring managers are incompetent, and quite frankly, everyone thinks they are in the 5% and for those managers who delude themselves into this without putting in the work, they will have an impossible time actually identifying those who are actually good and productive employees.
2. Showing special treatment to these folks may upset the people below.
3. You will hear things you don’t like…
Examples include…
- That new fancy open-office that you got because it was the trendy thing to do, you might hear that this is a huge hinderance.
- These days people seem to treat devs like nomads, “just give him a laptop and a table and he is fine”!. You may hear that this is complete BS. Real achievers may want a dedicated desk with multiple monitors, a desk with drawers etc.
- This WILL cost you money. I know of developers who cannot work without a dedicated whiteboard. Buy them whatever they need.
- They may want BOTH a standing desk and a chair to sit on.
- Etc.
The point is that it seems to me to be a foolish strategy to tailor your entire company to force everyone into the same work habits. Really good employees have the self-awareness to develop their own productive practices and any keeping of them inside a box will NOT help.27 -
!rant I got permission from @dfox for this.
I'm a visual learner and like to see and hear what I'm being taught. I also am fed up with StackOverflow.. plus, it lacks in detailed learning and best practices. I created a new platform that allows you to view and create live talks for development discussions, demos, and presentations. Think of it like a 24/7 dev conference.
I'm releasing it early to devRant users. Just note, that it is in early beta but I do regular releases.
Go ahead and start creating your talks at http://unityco.de17 -
Public service announcement: Do not get married to your language, tools, or way of doing things. If there's an easier solution to something, try it before dismissing it. No language is perfect, and dumping everything on the responsibility of an API or framework can cause more headache then solve it.
Case in point: I love Java for backend programming, but node.js is a better solution to frontend programming then depending on JSP's and HTML within the same Java project. Less things go wrong and it's easier to debug issues.
There is no best programming language. Only best practices and using the right tool for the right job.
#exceptC++fuckthatlanguage
:^)15 -
Starting a new project
Me: This time we'll follow all the best practices, do atomic commits and write meaningful commit messages.
Coworker: Yeah! Let's start.
40 commits later.
Me: Why is .idea folder in the repository?
Coworker: Sorry My Bad.
Me: 👿👿👿👿6 -
I don't want to write clean code anymore :(
I read Clean Code, Clean Coder, and watched many uncle bob's videos, and I was able to apply best practices and design patterns
I created many systems that really stood the test of time...
Management was kind enough to introduce me to uncle bob clean code in the first place, letting us watch it during work hours. after like one year, my code improved 400% minimum because I am new and I needed guidance from veterans...
That said, to management I am very slow, compared to this other guy, they ask me for a feature and my answer would be like "sure, we need to update the system because it just doesn't support that right now, it is easy though it would take 2 days tops"
they ask the same thing for the other guy : "ok let me see what I can do", 1 hour later, on slack, he writes : done. he slaps bunch of if-statement and make special case that will serve the thing they asked for.
oh 'cool' they say -> but it doesn't do this -> it needs to do that -> ok there is a new bug,-> it doesn't work in build mode-> it doesn't work if you are logged in as a guest, now its perfect ! -> it doesn't work on Android -> ok it works on android but now its not perfect anymore.
and they feel like he is fast (and to be fair he is), this feature? done. ok new bugs? solved. Android compatibility ? just one day ... it looks like he is doing doing doing.
it ends up taking double the time I asked for, and that is not to mention the other system affected during this entire process, extra clean up that I have to do, even my systems that stood the test of time are now ruined and cannot be extracted to other projects. because he just slaps whatever bools and if statements he needs inside any system, uses nothing but Singleton pattern on everything. our app will never be ready-for-business, this I can swear. its very buggy. and to fix it, it needs a change in mentality, not in code.
---------------
uncle bob said : write your code the right way, and the management will see that your code generates less errors, with time, you will earn respect even though they will feel you are slow at first.
well sorry uncle, I've been doing it for a year, my image got bad, you are absolutely right, only when there is no one else allowed to drop a giant shit inside your clean code.
note: we don't really have a technical lead.
-------------------
its been only two days since my new "hack n' slash" meta, the management is already kind of "impressed" ... so I'll keep hacking and slashing until I find a better job.9 -
Yesterday I had my performance review discussion with my manager after about 6 months into the job, which is my first dev job. Before this, I had spent about 2 years in a support role after graduation, but always yearned to build something cool and be a full time developer. Hence I had made the lunge in spite of a pay cut into a development role.
For the past 6 months I was asked to develop a bunch of features on top of legacy code which is ~15 years old. I did my best and brought in the best ideas and practices onto the table and delivered on time. The features turned out great. I enjoyed working with the team and the team loved me back!
But at the back of my mind, I was hoping that I would get to work on something new and relevant. To quench this thirst, I used to spend my personal time on side projects.
The managers and the leads who have been observing me all along, told me yesterday that my manager got AMAZINGLY positive feedback from the leads and my teammates (who are like 10 years senior to me). Going forward, I get to work on any CRAZY idea and pick up any technology I like with the goal of revamping our product. Essentially I get to work on my side projects full time as long as it adds value to the company.
Ohhhhhh YEAH!
Wish me luck. 😎1 -
Last year I signed in for a course called "Best Practices in Programming", and part of the course was to get the code of our current projects reviewed by a professional developer. I had a horribly written (out of inexperience) code in Python. The guy who had to review my code basically said I had no idea about coding but went on helping me a lot. Since then I started to learn some concepts of software engineering, how to code more efficiently, and so on and I've been much better ever since. So kudos to him for putting up with my spaghetti code and sending me in the right direction!1
-
I'm going for longest rant. TL:DR; version here:
http://pastebin.com/0Bp4jX9y
then:
http://pastebin.com/FfUiTzsh
Twat Client,
As per our conversation, here is an invoice for the work you requested on behalf of U.S. Bloom. I realize that you ended up going with another designer, but you did request samples of what my take on the logo design would be. The following line item is indicative of 1 hour of graphic design consultation as per your request via Skype.
As I recall, you mentioned that this is not how Upwork "works" but considering it was you who requested that I converse with you via Skype instead of via the Upwork messenger, and since there were no clear instructions on how to proceed with Upwork after our initial consultation, It is assumed that you were foregoing Upwork altogether to work with me directly, thus the invoice from me directly for my time involved in the project. I would have reached out to you via Skype, but it seems that you may have severed our connection there.
After spending a little time researching your company, I could not find current information for Basic Media Marketing, but I was able to reach out to your former partner Not A. Twat, who was more than helpful and suggested that he would encourage you to pay for the services rendered.
It is discouraging that you asked for my help and I delivered, but when I ask for compensation in return for my skills, you refused to pay and have now taken your site offline and removed me as a contact from Skype.
{[CLIENT of CLIENT]},
I am sorry that I have bothered you with this email. I copied you on it merely for transparency's sake. I am sure that your logo is great and I am sure whatever decision was made is awesome for your decision. I just wanted to make sure that you weren't getting "samples" of other people's work passed off as original work by Twat Media Marketing.
I can't speak for any of the other candidates, but since Twat asked me to conduct work with him via Skype rather than through Upwork, and since he's pretty much a ghost online now, (Site Offline, LinkedIn Removed or Blocked, and now Skype blocked as well) one has to think this was a hit and run to either crowdsource your logo inexpensively or pass off other artist's work as his own. That may not be the case, but from my perspective all signs are pointing to that scenario.
Here is a transcript. Some of his messages have been redacted.
As you can clearly see, requests and edits to the logo were being made from Jon to me, but he thinks it's a joke when I ask about invoicing and tries to pass it off as an interview. Do you see any interview questions in there? There were no questions about how long I have been designing, what are my rates, who have I done work for in the past, or examples of my previous work. There were none because he didn't need them at this point.
He'd already seen my proposal and my Behance.net portfolio as well as my rates on Upwork.com. This was a cut to the chase request for my ideas for your logo. It was not just ideas, but mock designs with criticism and approval awaiting. Not only that, but I only asked for an hour of compensation. After looking at the timestamps on our conversation, you can clearly see that I spent at least 3 hours corresponding with Twat on this project. That's three hours of work I could have spent on an honest paying customer.
I trust that TWATCLIENT will do the right thing. I just wanted you guys to know that I was in it to do the best design I could for you. I didn't know I was in it to waste three hours of my life in an "interview" I wasn't aware I was participating in.
Reply from ClientClient:
Hello Sir,
This message is very confusing?
We do not owe your company any money and have never worked with you before.
Therefore, I am going to disregard that invoice.
Reply from TWATCLIENT's boss via phone:
I have two problems with this. One I don't think your business practices are ethical, especially calling MY client directly and sending them an invoice.
Two why didn't you call or email Jon before copying my client on the email invoice?
Me: Probably because he's purposely avoiding me and I had no way to find him. I only got his email address today and that was from a WHOIS lookup.
Really, you don't think my business practices are ethical? What about slavery? Is that ethical? Is it ethical to pass of my designs to your client for critique, but not pay me for doing them?
... I'LL HAVE TO CALL YOU BACK!
My email follow up:
http://pastebin.com/hMYPGtxV
I got paid. The power of CCing the right combination of people is greater than most things on Earth.14 -
"...the way he has written the code, it feels nasty man. I would have done it this way..."
Fuck you and your feelings. If you think my code is bad, give justification for it. Explain the fucking reason. Stop saying it "feels" like a bad code.
Fucking tired of this mentality in most of the developers. Why is it that the moment you look at someone else's code, you feel like you would have written it better. Programming is problem solving. And you can solve a problem in couple of different way.
If the code is absolute shit, has followed no best practices then yeah, go ahead and call it a bad code. But just because you would have moved some lines here and there, that doesn't mean the other persons code is horrible.
Goddamit!13 -
Does anyone know if there's a Bob Ross of development?
I feel like I just need to hear someone coding or talking best practices in a chilled out relaxing way to help me through the day.16 -
So I spent 4-5 weeks explaining how shit the current code base was, implemented gulp tasks to lint js, CSS etc, written shed loads of coding standards and best practices to follow. At this point everyone was onboard with the changes and thought brilliant were going to start getting some good code coming out of this team.
I go on holiday for a week, come back and fucker has ignored the documentation disabled the linters in the gulp tasks and the code is back to square one SHIT!!
Plus everyone still committing to master!!!!
Why do I bother!!6 -
I'm in that weird spot where the more I study programming, the more I realize I know next to nothing. I get pretty demotivated at times because it can be so overwhelming to study for hours, finally understand a topic... only to find out the next thing is even worse and there's literally thousands of things to learn, from languages themselves, to rules, best practices, paradigms and so on and so forth.
How do you guys deal with this? Do you even have the same problem?10 -
You know what's more irritating than working with a partner who doesn't understand how to properly build an API?
Working with one who fully understands the best practices but doesn't give a shit to implement them until something breaks.1 -
Okay, story time.
Back during 2016, I decided to do a little experiment to test the viability of multithreading in a JavaScript server stack, and I'm not talking about the Node.js way of queuing I/O on background threads, or about WebWorkers that box and convert your arguments to JSON and back during a simple call across two JS contexts.
I'm talking about JavaScript code running concurrently on all cores. I'm talking about replacing the god-awful single-threaded event loop of ECMAScript – the biggest bottleneck in software history – with an honest-to-god, lock-free thread-pool scheduler that executes JS code in parallel, on all cores.
I'm talking about concurrent access to shared mutable state – a big, rightfully-hated mess when done badly – in JavaScript.
This rant is about the many mistakes I made at the time, specifically the biggest – but not the first – of which: publishing some preliminary results very early on.
Every time I showed my work to a JavaScript developer, I'd get negative feedback. Like, unjustified hatred and immediate denial, or outright rejection of the entire concept. Some were even adamantly trying to discourage me from this project.
So I posted a sarcastic question to the Software Engineering Stack Exchange, which was originally worded differently to reflect my frustration, but was later edited by mods to be more serious.
You can see the responses for yourself here: https://goo.gl/poHKpK
Most of the serious answers were along the lines of "multithreading is hard". The top voted response started with this statement: "1) Multithreading is extremely hard, and unfortunately the way you've presented this idea so far implies you're severely underestimating how hard it is."
While I'll admit that my presentation was initially lacking, I later made an entire page to explain the synchronisation mechanism in place, and you can read more about it here, if you're interested:
http://nexusjs.com/architecture/
But what really shocked me was that I had never understood the mindset that all the naysayers adopted until I read that response.
Because the bottom-line of that entire response is an argument: an argument against change.
The average JavaScript developer doesn't want a multithreaded server platform for JavaScript because it means a change of the status quo.
And this is exactly why I started this project. I wanted a highly performant JavaScript platform for servers that's more suitable for real-time applications like transcoding, video streaming, and machine learning.
Nexus does not and will not hold your hand. It will not repeat Node's mistakes and give you nice ways to shoot yourself in the foot later, like `process.on('uncaughtException', ...)` for a catch-all global error handling solution.
No, an uncaught exception will be dealt with like any other self-respecting language: by not ignoring the problem and pretending it doesn't exist. If you write bad code, your program will crash, and you can't rectify a bug in your code by ignoring its presence entirely and using duct tape to scrape something together.
Back on the topic of multithreading, though. Multithreading is known to be hard, that's true. But how do you deal with a difficult solution? You simplify it and break it down, not just disregard it completely; because multithreading has its great advantages, too.
Like, how about we talk performance?
How about distributed algorithms that don't waste 40% of their computing power on agent communication and pointless overhead (like the serialisation/deserialisation of messages across the execution boundary for every single call)?
How about vertical scaling without forking the entire address space (and thus multiplying your application's memory consumption by the number of cores you wish to use)?
How about utilising logical CPUs to the fullest extent, and allowing them to execute JavaScript? Something that isn't even possible with the current model implemented by Node?
Some will say that the performance gains aren't worth the risk. That the possibility of race conditions and deadlocks aren't worth it.
That's the point of cooperative multithreading. It is a way to smartly work around these issues.
If you use promises, they will execute in parallel, to the best of the scheduler's abilities, and if you chain them then they will run consecutively as planned according to their dependency graph.
If your code doesn't access global variables or shared closure variables, or your promises only deal with their provided inputs without side-effects, then no contention will *ever* occur.
If you only read and never modify globals, no contention will ever occur.
Are you seeing the same trend I'm seeing?
Good JavaScript programming practices miraculously coincide with the best practices of thread-safety.
When someone says we shouldn't use multithreading because it's hard, do you know what I like to say to that?
"To multithread, you need a pair."18 -
You guys made my whole day for the first time since I joined. (yes all of you!)
1) I had a 'fight' with a guy I'm making a startup with. Had to explain some of the story of my life, just to clarify that I'm not evil or generally unwilling to understand - regarding me, having the need to keep using practices
2) I've found that a whole niche-community of people seems to ignore the rest of the community and won't tag along. Having spent several months to be able to help, and receiving shit or absolutely nothing, for finally trying
3) Was in a bad mood the moment I woke up, because I fought with my girlfriend last night because she fails to communicate simple things and won't realise it.
Sorry for the bad punctuation, I tried and smartphones aren't a nice way to edit such things.
So my rant is basically a thank you! Not a rant.. But still, I think you people are the best for being so relatable and making me laugh, and feel like there's more of 'my kind'.
I also just fixed a bug in my app by (finally!) asking the framework maintainer what's up, and got a response which made no sense in a logical manner.. That's a rant for another day, I'll aggregate all the 0 fucks given, when I'm finally able to leave this thing behind, and give you a proper curse-filled shit stack of the nonsense I'm experiencing!
The bug would still live if I weren't so energized by devRant
EDIT: '!' != ','1 -
!rant
Our lead dev in the company seems to be a smart guy who's sensitive about code quality and best practices. The current project I'm working on (I'm an intern) has really bad code quality but it's too big an application with a very important client so there's no scope of completely changing it. Today, he asked me to optimize some parts of the code and I happily sat down to do it. After a few hours of searching, profiling and debugging, I asked him about a particular recurring database query that seemed to be uneccesarilly strewn across the code.
Me: "I think it's copy pasted code from somewhere else. It's not very well done".
Lead Dev: "Yeah, the code may not the be really beautiful. It was done hurriedly by this certain inexperienced intern we had a few years back".
Me: "Oh, haha. That's bad".
Lead Dev: "Yeah, you know him. Have you heard of this guy called *mentions his own name with a grin*?"
Me: ...
Lead Dev: "Yeah, I didn't know much then. The code's bad. Optimize it however you like. Just test it properly"
Me: respect++;2 -
Recap: https://www.devrant.io/rants/878300
I was out Thursday at the Hospital. I'm what the doctors would call "Ill as fuck"
So, Friday I’m back in the office to the usual: "How was that appointment?"
I know people mean well when they ask this. So, I do the polite thing and tell them it went as well as it could.
Realistically it does't matter how well it went... They haven't cured Crohn's because I showed up to the appointment. They know I'm fucked already.
But, push it down, add it to the future aneurism.
I had to go through the usual resignation meetings with managers:
"We"re fucked now you're going"
"yep"
"we need to get a handle on how fucked"
"already done that for you, here"s a trello board, very fucked."
"we need to put a plan together to drop all the junior devs in the shit with the work you’ve been doing"
"You need about 4 devs, please refer to the previous trello board for your plan"
Meanwhile, me and Morpheus are in constant communication because all of this is like a Shakespearean comedy.
So, I overhear a conversation between a Junior Dev and the Solution Architect.
[SA] took over the project because he knows better than two tried and tested senior devs -_- (fuckwit).
JD: "It took me one and a half days to build it out"
SA: "Yeah, it must have taken me twice as long... It must be a problem with the project, you should just be able to check it out and run it."
JD: "I know, it has to be wrong"
All of this is about Morpheus' work of art, of an Ionic 3 hybrid app.
I fumed quietly at my desk because I've been ordered by the Stazi to be hands off.
Since Morpheus and me were pulled from the project [JD] and [JD2] were dropped into it to get it over the line.
It"s unfortunate and I was clear and honest with my advice to them: I personally would not take over the project because I"d be way out of my depth... Oh, and the App works, so uh, there's no work to do.
They have been constantly at our desks. Asking fuckdiculous questions about how to perform basic tasks. So they can get Morpheus" frigging masterpiece to the user.
It"s like watching that touch up of jesus that got borked by an amateur. Shit I have google, it's like watching this happen: http://ti.me/NnNSAb
[JD] came to me Friday evening.
"I can’t get this to build to iOS or install on [Test Analyst]'s phone."
Me: "No worries brother, where are you stuck right now?"
[JD] describes the first steps with clear indication he hasn't googled his problem.
Life lesson: http://lmgtfy.com/?q=lmgtfy
Que an hour of me showing [JD] how to build an Ion3 project for iOS. Fuck it, your man's in a bind and he"s asked politely for help. I can show him quicker than he can read 3 sets of docos.
I took him through 'ionic cordova build ios', the archive and release processes in XCode 9, then the apk bundling process for droid. Finally we have an MAM so the upload process for that too.
All the while cleaning up his AppIDs, Profiles, deployment attempts.
Damn they were a mess.
I did this with a smile on my face, not because I could say "I told you so"... But. because when any developer asks you how to do something. If you know how to do it, you should always be happy to learn them some new tricks!
Dude's alright, he's been dropped in the shit. Now I know how badly so I'll help him learn things that are useful to his role, but aren't project specific.
As a plausi-senior dev (I'll tell you about that later); it's my job to make sure my team have what they need to go home smiling!
I’m not a hateful fucker, the guy asked me an honest question so I am happy to give him the honest answer.
I took him through it a few times and explained a few best practices. Most were how to do his AppID and ProvProfile set up. Good lad, took it all on board.
However! In his frustration, he pointed the finger at Morpheus' "David" (ref: Michelangelo).
He miraculously morphed into a shiny colourful parrot and fed me SA's line:
"you should just be able to build from a clean clone"
My response was calm and clear:
"You can, it took me 20 minutes on Thursday evening. I was bored and curios, so I wanted to validate Morpheus' work. Here it is on my iOS device and my Android device. It would have taken me 5 if my laptop wasn’t so horrifically out of date."
I validated Morpheus' work so I have evidence, I trust that brilliant bastard.
I just need to be able to prove it's good.
[JD] took this on board.
Maybe listening to two tried and trusted senior devs is better than listening to a headstrong Solution Architect.
When JD left for the weekend I was working a late one (https://www.devrant.io/rants/874765).
His sign off was beautiful.
"I think I can happily admit defeat on this one, it can wait until Monday."
To which I replied: "no worries brother, if you need a hand give me a shout."
Rule 1: Don't be a cunt.
Rule 2: If someone needs help and you can give it: Give it!
Rule 3: Don't interrupt James' cigarette time.
Rule 4: goto Rule 3.rant day 3 jct resigns crohns resignation solution architect wk71 invisible illness fuckwit illness junior developer4 -
Oh man. Mine are the REASON why people dislike PHP.
Biggest Concern: Intranet application for 3 staff members that allows them to set the admin data for an application that our userbase utilizes. Everything was fucking horrible, 300+ php files of spaghetti that did not escape user input, did not handle proper redirects, bad algo big O shit and then some. My pain point? I was testing some functionality when upon clicking 3 random check boxes you would get an error message that reads something like this "hi <SENSITIVE USERNAME DATA> you are attempting to use <SERVER IP ADDRESS> using <PASSWORD> but something went wrong! Call <OLD DEVELOPER's PHONE NUMBER> to provide him this <ERROR CODE>"
I panicked, closed that shit and rewrote it in an afternoon, that fucking retard had a tendency to use over 400 files of php for the simplest of fucking things.
Another one, that still baffles me and the other dev (an employee that has been there since the dawn of time) we have this massive application that we just can't rewrite due to time constraints. there is one file with (shit you not) a php include function that when you reach the file it is including it is just......a php closing tag. Removing it breaks down the application. This one is over 6000 files (I know) and we cannot understand what in the love of Lerdorf and baby Torvalds is happening.
From a previous job we had this massive in-house Javascript "framework" for ajax shit that for whatever reason unknown to me had a bunch of function and object names prefixed with "hotDog<rest of the function name>", this was used by two applications. One still in classic ASP and the other in php version 4.something
Legacy apps written in Apache Velocity, which in itself is not that bad, but I, even as a PHP developer, do not EVER mix views with logic. I like my shit separated AF thank you very much.
A large mobile application that interfaced with fucking everything via webviews. Shit was absolutley fucking disgusting, and I felt we were cheating our users.
A rails app with 1000 controller methods.
An express app with 1000 router methods with callbacks instead of async await even though async await was already a thing.
ultraFuckingLarge Delphi project with really no consideration for best practices. I, to this day enjoy Object Pascal, but the way in which people do delphi can scare me.
ASP.NET Application in wich there seemed to be a large portion of bolted in self made ioc framework from the lead dev, absolute shitfest, homie refused to use an actual ioc framework for it, they did pay the price after I left.
My own projects when I have to maintain them.9 -
So my boss booked me a spot at a conference about "the future of online payments" and I received an email with auto created account (there was no sign up) with a clear text password.
I'm feeling pretty confident that I can trust them to guide and advise me on best practices when it comes to handling sensitive information.8 -
I don't think I could give the best advice on this since I don't follow all the best practices (lack of knowledge, mostly) but fuck it;
- learn how to use search engines. And no, not specifically Google because I don't want to drag kids into the use of mass surveillance networks and I neither want to promote them (even if they already use it).
- try not to give up too easily. This is one I'm still profiting from (I'm a stubborn motherfucker)
- start with open source technologies. Not just "because open source" but because open source, in general, gives one the ability to hack around and explore and learn more!
- Try to program securely and with privacy in mind (the less data you save, the less can be abused, compromised, leaked, etc)
- don't be afraid to ask questions
-enjoy it!7 -
This is more of a wishful thinking scenario......but language/tech stack/whatever bashing.
Look, I get it, we like development, we would not be here if we didn't like it. But as my good friend @Stuxnet has mentioned in the past, making this a personality trait is fucking retarded, lame, small, and overall pathetic. I agree with this sentiment 100%
Because of this a lot of people have form some sort of elitist viewpoint concerning the technologies that people use, be it Java, C#, C++, Rust, PHP, JS, whatever, the same circle jerk of bashing on shit just seems completely fucking retarded. I am hoping for a new mentality being that most of us are younger, even if you are a 50+ year old developer, maturity should give you a different perspective, but alas, immaturity and a bitchy attitude carried throughout years of self dick sucking implications would render this null.
I could not give two fucks if the dude next to me is coding his shit in whatever as long as best practices are followed, proper documentation is enforced, results are being brought to our customers(which regardless of how much you try to convince us, none of your customers are fucking elite level) and happiness is ensured, then so fucking be it.
Gripes bitches and complaints are understandable, I dislike a couple of things about my favorite tools, and often wish certain features be involved in my particular tech stacks, does this make stuff bad? no, does it make me or anyone else less of a developer,? no so why give a fuck? bitch when shit bites you in the ass when someone does not know what the fuck they are doing with a language that permits writing bullshit. Which to be honest ALL of them fucking allow. Not one is saved from this. But NOT knowing how to work a solution, or NOT understanding a tech stack does not give you AUTOMATIC FULL insight on how x technology operates, thinking as such is so fucking arrogant and annoying.
But I am getting tired of looking at posts from Timmy, a 18 year old "dev" from whothefuckcares bitch about shit when they have never even made a fucking penny out of their "development" endeavors just because they read some dickhead's opinion on the internet regarding x tech stack and believes that adopting their bullshit troll ass virgin ideas makes them l337.
Get your own fucking opinion on things, be aggressive and stand fucking straight, maybe get some fucking pussy(or dick, whatever) and for fucks's sake learn to interact with other fucking human beings, take a fucking run, play games, break out from your whinny bitch ass shell, talk to that person that intimidates you, take a run, do yoga, martial arts anything that would break you out from being such a small little bitch.
Just fucking do something that keeps you from shitting on people 24/7 365/ a year.
We used to bitch about incompetent managers, shit bosses, fucking ludicrous assignments. Retarded shit that some other dev did, etc, etc. Seems like every other fucking retard getting into this community starts with stupid ass JS/PHP/Python/Java/C#/ whatever jokes and you idiots keep upvoting that shit. Makes those n00bs gain credability. Fuck me shit is so pathetic.
basically, make dev rant great again.
No fuck off and have a beer, or tea or whatever y'all drink.15 -
former boss wrote three cyber-defense books. had his "collections" team sending plaintext passwords to high-side clients over unsecured email4
-
My code is always a battle between best practices and what I assume would be the most efficient way to do things4
-
Sometimes dirty code is more efficient than clean code.
If features get dropped frequently and requirements change every few days, writing best-practices, tested code is wasted time. Learned that in my first job where I thought the other devs were all bad. Until I realized their bad code pays my salary, and my clean code takes more time to develop.6 -
So.... We spend most our lives learning languages and methodologies and best practices and all that crap while depriving ourselves of sleep because the rules said if we did that we'd make something cool and have fun doing it...
But then *any company here* comes along and says make this shitty feature in *arbitrary time here* for our stupid *product here*.
You do it working overtime and sacrificing quality to have the client say afterwards that he wants something different (from his own specs).
And then the circle repeats...
I should consider a different profession...
Hey plants don't speak... Maybe I'll be a gardener!
Clip here clip there - done. I'll be a happy fucking script2 -
Had a job interview for a front end dev (Involving a technical test). After couple of days, recruiter says - Unfortunately they say that you are too focused on best practices so they want to pass.3
-
during code review...
peer: "you should pass this variable, and extract the logger from it"
me: "why? it is a 3 line logging function. why not pass the logger instance?"
peer: "because that is our best practice. It is the way we do things"
me: "why is it a best practice?"
peer: "because it is. We use it everywhere!"
me: "No we don't. And I still don't understand why is this a best practice. can you explain?"
peer: gives ups, did not look at the mr, and was not going to.
mr stays open. probably forever.11 -
I've been using microsoft dev stack for as long as i remember. Since I picked up C#/.NET in 2002 I haven't looked back. I got spoiled by things like type safety, generics, LINQ and its functional twist on C#, await/async, and Visual Studio, the best IDE one could ask for.
Over the past few years though, I've seen the rise of many competing open source stacks that get many things right, e.g. command line tooling, package management, CI, CD, containerization, and Linux friendliness. In general many of those frameworks are more Mac friendly than Windows. Microsoft started sobering up to this fact and started open sourcing its frameworks and tools, and generally being more Mac/Linux friendly, but I think that, first, it's a bit too late, and second, it's not mature yet; not even comparable to what you get on VS + Windows.
More recently I switched jobs and I'm mainly using Mac, Python, and some Java. I've also used node in a couple of small projects. My feeling: even though I may be resisting change, I genuinely feel that C# is a better designed language than Java, and I feel that static type languages are far superior to dynamic ones, especially on large projects with large number of developers. I get that dynamic languages gives you a productivity boost, and they make you feel liberated, but most of the time I feel that this productivity is lost when you have to compensate for type safety with more unit tests that would not be necessary in a static type language, also you tend to get subtle bugs that are only manifested at runtime.
So I'm really torn: enjoy world class development platform and language, but sacrifice large ecosystem of open source tools and practices that get the devops culture; or be content with less polished frameworks/languages but much larger community that gets how apps should be built, deployed, monitored, etc.
Damn you Microsoft for coming late to the open source party.11 -
Best girl i've met.
I attended a CMS Conference last month(I don't use a CMS, i'm just interested with the topics about DevOps and UI/UX). I met this pretty lady ( I find her cute and awesome.) who's one of the speaker, she talked about design principles and applying it to BEM with SASS. After the talk, i asked her some questions about her dev't workflow like what tools she used and some best practices. Our conversation went well and exchange some of our knowledge and ideas also i introduced her to devrant (She's a wordpress user, i showed to her how the community hates WP, idk if she registered). After her talked we separated ways and ended seeing again after the conference as she's looking for a cab going to a mall (Same directions where i'm heading to), We talked again and decided to have dinner together. I felt like she's the best girl i met as she's into TV shows i like (Silicon Valley and Mr Robot). We added ourselves in FB and saying goodbye to each other. After a week or two, i just found out that she already into a relationship and it broke my heart.
I guess im back to the start, but i'm happy that i made a new friend.15 -
devRant is awesome, but Disney also manages to light-up my day.
This is how Wall-E became a beloved member of our team, and helped me put a smile on my face throughout a very frustrating project.
It all started in a company, not so far far away from here, where management decided to open up development to a wider audience in the organization. Instead of continuing the good-old ping-pong between Business and IT...
'not meeting my expectations' - 'not stated in project requirements'
'stuff's not working - 'business is constantly misusing'
'why are they so difficult' - 'why don't they know what they really want'
'Ping, pong, plok... (business loses point) ping, pong'
... the company aimed to increase collaboration between the 2 worlds, and make development more agile.
The close collaboration on development projects is a journey of falling and getting back up again. Which can be energy draining, but to be honest there is also a lot of positive exposure to our team now.
The relevant part for this story is that de incentive of business teams throughout these projects was mainly to deliver 'something' that 'worked'. Where our team was also very keen on delivering functionality that is stable, scalable, properly documented etc. etc.
We managed to get the fundamentals in place, but because the whole idea was to be more agile or less strict throughout the process, we could not safeguard all best-practices were adhered to during each phase of a project. The ratio Business/IT was simply out of balance to control everything, and the whole idea was to go for a shorter development lifecycle.
One thing for sure, we went a lot faster from design through development to deployment, high-fives followed and everybody was happy (for some time).
Well almost everybody, because we knew our responsibility would not end after the collection of credits at deployment, but that an ongoing cycle of maintenance would follow. As expected, after the celebrations also complaints, new requirements and support requests on bug fixes were incoming.
Not too enthusiastic about constantly patching these projects, I proposed to halt new development and to initiate a proper cleaning of all these projects. With the image in mind of a small enthusiastic fellow, dedicated to clean a garbage-strewn wasteland for humanity, I deemed "Wall-E" a very suited project name. With Wall-E on board, focus for the next period was on completely restructuring these projects to make sure all could be properly maintained for the future.
I knew I was in for some support, so I fetched some cool wall papers to kick-start each day with a fresh set of Wall-E's on my monitors. Subsequently I created a Project Wall-E status report, included Wall-E in team-meetings and before I knew it Wall-E was the most frequently mentioned member of the team. I could not stop to chuckle when mails started to fly on whether "Wall-E completed project A" or if we could discuss "Wall-E's status next report-out". I am really happy we put in the effort with the whole team to properly deploy all functionality. Not only the project became a success, also the idea of associating frustrating activities with a beloved digital buddy landed well in our company. A colleagues already kickstarted 'project Doraemon', which is triggering a lot of fun content. Hope it may give you some inspiration, or at least motivate you to watch Wall-E!
PS: I have been enjoying the posts, valuable learnings and fun experiences for some time now. Decided to also share a bit from my side, here goes my first rant!3 -
So I was reviewing my old code. Refactoring and improving the documentation.
This is a production app that is being used 24/7/365.
I see myself using "bar = foo" and there's even an explanation of what it does.
Apparently I resolved a relatively difficult Date object issue and had to use temporary variables.
Didn't know how to call them and ended up with these jewels.3 -
Vendor: We are very professional and follow best practices, we know what we are doing. You should trust us.
Also Vendor 5 mins later: DB passwords, API keys and SSH keys in repo. AWS Access Keys shared in screenshots in email.
Me: 😭6 -
I seear man fucking shit php devs make it hard for people to appreciate the language.
To start, i don't think there is anything wrong with php. As a language I know damn near all of its pitfalls and have successfully deployed huge applications with minimal fuss.
The thing is...this shit seems to happen only when I AM THE MOTHERFUCKER THAT DOES IT
In any other scenario i am constantly cursing the original author under my fucking breath hoping that they choke on their own dicks. Fucking cunts.
Really man, some of the fucking code i have seen. This shit is dangerous as fuck and i can't believe that in 2019 motherfuckers would not have the decency to google for best fucking practices or learn it from a fucking book and shit.
Writing proper php code is not that fucking hard people, every fucking update to the language, every fucking tool that comes out is for the betterment of it.
Guess proper oop or functional paradigms are too complex for some dickheads. Hell, not even top to bottom procedural code.
Fuck me. Good thing is, boss is happy, the entire faculty is happy, the board is happy. Everyone is motherfucking happy.
Dez negroids better remember this shit cuz I just asked for a $20k raise.
I got a raise literally every time i ask for one so this one better make the cut.
Fuck shit php developers man. Y'all don't deserve the language, y'all make the language look bad, y'all make the community look bad.
Fuck you, die and eat a dick. Do all that shit in whatever order you prefer.16 -
Went to the ATM to get some cash.. entered an amount of 800 INR and to my surprise got an error saying "Your account does not have sufficient funds for this transaction" .. Instantly thought that my account has somehow been compromised.. checked the bank app and found out that I everything was normal..
As it turns out the ATM machine did not have 500 or 100 INR notes, thus it could not dispense my requested amount..
Now that's what we call a "Good" error handling..4 -
First day on my first job ever, the boss asks me what I want to do. I indicated that I had some experience with php and the yii framework (which was at some point very cool xD), so I wanted to start with something like that. And so it goes: after two days of watching laracasts (which is an awesome platform by the way! :O) I got assigned to a project.
Now the company I work at uses some kind of self built system that tracks how many hours are spent on which project, and compares that to how many hours was estimated implementing a feature would take. That's cool, but then I saw that for the project I was working on the time estimated was 5 work days. This was the estimate for both designing the interfaces and implementing both front and backend. I knew in advance that this was probably way to little time for me, but didn't want to come over as the new kid who can't do shit x)
Anyway, I started on the project and was having fun, but the biggest time consuming aspect of the project was not necessarily that I didn't have enough experience: it was that the developer who started this project and made most of the design choices had written some very messy code, without tests or apparently any refactoring. Also, everything was extremly inconsistent and not according to all the best practices I just watched in my laracasts spree.
So fastforward a little: we're way over the estimated hours. Yay. Now suddenly the boss comes by with an almost angry face that the client is becoming angry and we need to finish soon. He makes it entirely our (me and the front end guy) problem and I just decide to say nothing and try to work faster.
Now I'm stuck writing fugly code on top of more fugly code and when I mentioned to my front end guy that I was almost finished with feature but I only needed to finish up the tests, he said something like "oh just don't write tests, that'll take too long"... Is that really the mindset of this company?! No wonder the project I work on was in a very bad state.
Thanks to devrant I see now that I just need to say something if I know that I won't be able to complete something in a certain amount of time and that other people are just like me (thank god). :) I think I'll need to post more rants to vent my frustrations x)5 -
Today I decided that I will quit my internship.
So mamy things are mismanaged and my supervisor avoids helping me. I'm not gonna even rant about shitty coding practices, or rather, lack of them.
Now out of 10 ppl team I'm sitting alone in the office because everybody, apart from me, can work from home. When I asked why do I have stay in the office - this is to provide me the best placement experience (wtf). So I sit here, knowing that even if I send an email with a technical questions, I will not get an answer. Atm, can't even give a fuck about trying to be productive. I'm so tired with these fake smily faces that cannot manage a single intern but expect me to do everything without any help.5 -
I hired 2 fresh out of school junior devs to work with me on my old web app.
They were brilliant, knew a lot of things, and were motivated.
They started complaining about how the code was shit, the db was shit, there were no best practices, the technology was old, bug fixing was boring, no comments in code.
I felt bad, very bad during 3 years, because they were absolutely right. I tried to work with them through better coding practices, rewriting, documenting etc.
Now they both have left.
I'm alone maintaining and evolving the application.
And I start to come across the code THEY developed.
What a bunch of shit. SQL queries bringing down the server. Duplicate code, because they didn't want even read the old one. Useless comments.
Performance killing functions. Exceptions swallowed without mercy. I have to clean up they poop.
I feel somewhat better, though. The application is still growing and holding the ground after many years and generating at least 800K$ per year in revenues.
Maybe better, but sad. I really wanted to share the project with somebody else but I failed, and I'm left alone....12 -
oh, it got better!
One year ago I got fed up with my daily chores at work and decided to build a robot that does them, and does them better and with higher accuracy than I could ever do (or either of my teammates). So I did it. And since it was my personal initiative, I wasn't given any spare time to work on it. So that leaves gaps between my BAU tasks and personal time after working hours.
Regardless, I spent countless hours building the thing. It's not very large, ~50k LoC, but for a single person with very little time, it's quite a project to make.
The result is a pure-Java slack-bot and a REST API that's utilized by the bot. The bot knows how to parse natural language, how to reply responses in human-friendly format and how to shout out errors in human-friendly manner. Also supports conversation contexts (e.g. asks for additional details if needed before starting some task), and some other bells and whistles. It's a pretty cool automaton with a human-friendly human-like UI.
A year goes by. Management decides that another team should take this project over. Well okay, they are the client, the code is technically theirs.
The team asks me to do the knowledge transfer. Sounds reasonable. Okay.. I'll do it. It's my baby, you are taking it over - sure, I'll teach you how to have fun with it.
Then they announce they will want to port this codebase to use an excessive, completely rudimentary framework (in this project) and hog of resources - Spring. I was startled... They have a perfectly running lightweight pure-java solution, suitable for lambdas (starts up in 0.3sec), having complete control over all the parts of the machinery. And they want to turn it into a clunky, slow monster, riddled with Reflection, limited by the framework, allowing (and often encouraging) bad coding practices.
When I asked "what problem does this codebase have that Spring is going to solve" they replied me with "none, it's just that we're more used to maintaining Spring projects"
sure... why not... My baby is too pretty and too powerful for you - make it disgusting first thing in the morning! You own it anyway..
Then I am asked to consult them on how is it best to make the port. How to destroy my perfectly isolated handlers and merge them into monstrous @Controller classes with shared contexts and stuff. So you not only want to kill my baby - you want me to advise you on how to do it best.
sure... why not...
I did what I was asked until they ran into classloader conflicts (Spring context has its own classloaders). A few months later the port is not yet complete - the Spring version does not boot up. And they accidentally mention that a demo is coming. They'll be demoing that degenerate abomination to the VP.
The port was far from ready, so they were going to use my original version. And once again they asked me "what do you think we should show in the demo?"
You took my baby. You want to mutilate it. You want me to advise on how to do that best. And now you want me to advise on "which angle would it be best to look at it".
I wasn't invited to the demo, but my colleagues were. After the demo they told me mgmt asked those devs "why are you porting it to Spring?" and they answered with "because Spring will open us lots of possibilities for maintenance and extension of this project"
That hurts.
I can take a lot. But man, that hurts.
I wonder what else have they planned for me...rant slack idiocy project takeover automation hurts bot frameworks poor decision spring mutilation java11 -
Looking for job opportunities, one grabbed my attention and I decided to apply. First, I had to fill a form with 40 questions, explaining and justifying development processes, best practices and overall knowledge. Ok, no problem. Form submitted, and I see a step 2. Now I have to build a single page site from scratch, and send another form with code, link, and more justifications regarding development. After that, my application will be sent.
Then I found this observation, saying the position was for a freelancer, that will receive work occasionally. Not a full time position as I thought.
Sometimes cleaning bathrooms sounds a better option.1 -
I’m tired of all these profane “frontend developers” who do nothing but get cheap internet points by shitting on web technologies.
Bitch, NPM is just a package manager. That’s what it is. Anyone who ever used a package manager already knows how to use NPM.
Here on devrant, there at your workplace, people hear nothing but bitching when you open your mouth. You always need a “solid task description” and “best practices”. You always need somebody else to do your job for you. Frontend is the area where you have to constantly switch between heavy, performance-oriented coding, UX and graphic design while remaining in a dynamic environment that is called “web”, no wonder why you can’t do that. Instead of bitching, you could just present your own solution you designed with just a little bit of product-oriented thinking. But noooo, you fucking bother designers whenever you’re not sure about “how many pixels is that padding”.
You can only be barely productive (and only with a frozen spec) but can never take the lead just once.
In the 80s your kind of approaches were doubted, by the 90s they were dead. In 2020s they’re straight up laughable.
And don’t get me started on CSS. You have to be an absolute buffoon of a developer to not know how to use a DECLARATIVE tool that don’t even require real structural thinking.
No wonder why you praise php. You throw shit all over the place and tell everybody that you’re a “sociopath” and you don’t need that “stupid frontend” and “stupid users”. But you know what? Any real backend or embedded dev would’ve laughed at your face.
Because backend developers are respected.
You’re not.10 -
It's starting again. I can feel it.
You had a decent job, but you had to think otherwise. Then you had to go to that coffee shop tell some people you're the fucking bee's knees, didn't you?
Well, you know that's how the band plays.
Yeah, but now you'll have to live up to the hype, my friend. And you know pretty well that the pocketknife on your belt won't cut it anymore.
I can always learn as I go...
Sure you can. Except this time stakes are higher. They'll be expecting you to deliver on all your bloody greatness. They'll be relying on you. Not only them, but also the person who chose to be with you. And you know you're not enough, for neither of them. Now you'll fuck it up and let all those people down.
But I could build things little by little, lay out a solid groundwork and build up from that. Just like that other time when...
Of course you can. But can you make beautiful sparkly things? Can you make them sexy?
No... But I can make them resilient. I can follow best practices and intelligent design patterns.
Right. Cause design patterns win contests and prizes. Sure.
Well, it'll make things work better. And then when someone else comes along...
They'll say your work smells and let everybody know how it should've been done, because they need to prove themselves. You know that's what people do.
But that's just not fair! Solid work is solid work!
And a fraud is still a fraud. And that's what you are.5 -
When your home's infrastructure runs better and is more stable than some of the shit that's actually running enterprises because you actually do care about industry best practices and product quality.. it's a weird feeling. A very disappointing one, if anything.
Post-meritocracy, it very much seems to be a thing. And when you call people out for it because yes I do want to *be* the change that I want to see, they get all defensive and shun you. Yeah, let's make the world burn in inefficient, dysfunctional bullshit. That's a much better idea.
Are we humans really that far apart from the chimps that we descended from?
Worst part of it all, those incompetent bastards that can't possibly admit and work to improve their mistakes are the ones that are behind the companies' steering wheel. That too is such an excellent idea. I bet that half of them got employed only because they took the lowest wage and could (barely) turn on a computer. Fucking morons...11 -
The guy who became my manager just pushes to the prod branch.
On a repo where another team clearly set up development and production branches.
This guy has been pushing code like crazy and I always wanted to take my time setting things up properly in our team: TDD, CI/CD, etc.
Because he pushed so much he became my manager and I was seen as unproductive.
Data Science and software development best practices just dont coexist it seems.
Yeah yeah, it's up to me to start introducing good practices, but atm "getting it done" takes priority over the real based shit.4 -
When UserID is an int(3) in one table, and then text(10) in another. And then the monent you see that the Username field is stored in both tables ......🖕🖕🖕🖕
Who dafuq wrote this crap?!?!?!?5 -
Friend asked if I have ever built authentication using PHP and SQL...
Feel like sending links for them to research how instead of having me build it for them.
Teach a man to fish...?7 -
To all the data engineers in here: WTF is going on in your field?
I've worked closely with a dozen data engineers in the last 5 years (and talked to friends and internet strangers about this and get similiar responses), mine if them seem to know how to use a computer!
They don't understand git, ORMs, best practices, how to use a terminal, DAGs (important for using modern ETL scheduling tools like airflow and prefext), etc
Guys with 10 years of experience on their resume and they can't wrap a model into a flask app with 1 endpoint. They'll reference local files on their machine in w jupyter notebook and are shocked it won't work on other computers!17 -
It’s now day 4 into handing in my notice. Here's a recap of day 1&2. Here's the recap of day 0: https://www.devrant.io/rants/871145
I handed in my notice on Wednesday with a leaving date of 10/27/17:
> format_date('27/10/17', 'short', 'muurcan');
Thursday, I had an appointment outside of the office... I was called by a marketing guy at [popular graph database company] to try and wiggle his way into my org. I forget his name, so we'll call him Derek:
Derek: 'Hi James, it’s marketer at [graph co] here; I know you downloaded our free book two months ago and we reserved the right to call you constantly since. I just wanted to...'
Me: 'Hol up Derek! I don’t want to waste your time, thank you guys for the book.
I’d have happily paid to avoid these phone calls.
I’ve resigned from [company] before getting a chance to introduce [most popular graph database platform on google, for real, go check now].
Again thanks, but I’m no longer a useful lead.'
Life lesson learned: free doesn’t mean free, free books aren’t worth shit. Marketing people are lovely... but have an job to do so they’re also basically all cunts.
If you want to learn graph DB best practices from oreilly, pay the £7 and be done with it.
Don’t download that book! Derek will take your number and use it like you’re a young naive college girl with a golden pička.
Aside: I’ve met a new girl! I’ve rapidly learned Slovenian swear words. She’s a beautiful Slovenian girl and has the mouth of a sailor. Peace out to any of my eastern euro buddies on here. Privyet, serbus, stay frigging awesome.
I'll be following up on the tag 'jct resigns' for anyone interested.4 -
Expert: "The core problem with passwords is that they reside on a server."
I suppose that's true, but only if you're a complete moron. Store a hash of a password, and users can authenticate against it with a password that doesn't get logged. This is technology that's been around for over fifty years. If you're storing passwords on a server, you deserve whatever trouble you get.6 -
Overworked team spends 2 months hacking together a Codecademy clone in record time: avoiding best practices, conflating paradigms, throwing shit at the wall until it stuck.
But today I submit a small UI fix that used a table instead of `display: table`...1 -
So as all of you web developers know. If you are stepping into the world of web development you stepping into a world of unlimited possibilities, opportunities and adventure.
The flip side is that you step into a world of unlimited choices, tools, best practices, tutorials etc.
Since even for a veteran programmer, this is a little overwhelming, I'd like to take the opportunity to ask you guys for advice.
I know that 'there is no best' and that everything 'depends on what you want to achieve'. So how about just say the pro's and cons or when to use and when not to use. Or why you prefer one over another. Everything is allowed! :D
Maybe it will help others too. Start a nice, professional discussion:)
These are the parts I'd like advice about:
- frontend: what frameworks, libraries
- backend: language, framework, good practice
- server: OS, proxy (nginx, Apache, passenger), extra tips (like don't use root user)
- extras: git, GitHub, docker, anything
Thanks in advance everyone willing to help!:)
Also, if you only know frontend or backend. No worries, just tell me about your specialism!6 -
So, we’ve a small UK based dev team, we follow good practices and get good results. But ‘they’ want to deploy quicker (it was suggested we skip the test phases...) but don’t want to invest in more staff.
So their suggestion is to outsource development to Bangladesh and have us in-house devs work on discovery and innovation.
I’m uncomfortable with this as it feels they are thinking they can get quicker and cheaper dev done abroad (which I hate as it feels disrespectful to my fellow dev brothers n’ sisters).
Also disjointed as in my experience planning and dev’ing work best when you can talk face-to-face.
Thoughts?4 -
*Senior Dev:* Ah yes, we need to put try-catch in every function to handle errors and Logger.Log() at the beginning.
*Me:* Is not better to define a global error handler and use the stacktrace instead of doing all that?
*Senior Dev*: ...
*Senior Dev*: Is a rule here, do what I'm telling you.3 -
Static HTML pages are better than "web apps".
Static HTML pages are more lightweight and destroy "web apps" in performance, and also have superior compatibility. I see pretty much no benefit in a "web app" over a static HTML page. "Web apps" appear like an overhyped trend that is empty inside.
During my web browsing experience, static HTML pages have consistently loaded faster and more reliably, since the browser is immediately served with content useful for consumption, whereas on JavaScript-based web "apps", the useful content comes in **last**, after the browser has worked its way through a pile of script.
For example, an average-sized Wikipedia article (30 KB wikitext) appears on screen in roughly two seconds, since MediaWiki uses static HTML. Everipedia, in comparison, is a ReactJS app. Guess how long that one needs. Upwards of three times as long!
Making a page JavaScript-based also makes it fragile. If an exception occurs in the JavaScript, the user might end up with a blank page or an endless splash screen, whereas static HTML-based pages still show useful content.
The legacy (2014-2020) HTML-based Twitter.com loaded a user profile in under four seconds. The new react-based web app not only takes twice as long, but sometimes fails to load at all, showing the error "Oops something went wrong! But don't fret – it's not your fault." to be displayed. This could not happen on a static HTML page.
The new JavaScript-based "polymer" YouTube front end that is default since August 2017 also loads slower. While the earlier HTML-based one was already playing the video, the new one has just reached its oh-so-fancy skeleton screen.
It would once have been unthinkable to have a website that does not work at all without JavaScript, but now, pretty much all popular social media sites are JavaScript-dependent. The last time one could view Twitter without JavaScript and tweet from devices with non-sophisticated browsers like Nintendo 3DS was December 2020, when they got rid of the lightweight "M2" mobile website.
Sometimes, web developers break a site in older browser versions by using a JavaScript feature that they do not support, or using a dependency (like Plyr.js) that breaks the site. Static HTML is immune against this failure.
Static HTML pages also let users maximize speed and battery life by deactivating JavaScript. This obviously will disable more sophisticated site features, but the core part, the text, is ready for consumption.
Not to mention, single-page sites and fancy animations can be implemented with JavaScript on top of static HTML, as GitHub.com and the 2018 Reddit redesign do, and Twitter's 2014-2020 desktop front end did.
From the beginning, JavaScript was intended as a tool to complement, not to replace HTML and CSS. It appears to me that the sole "benefit" of having a "web app" is that it appears slightly more "modern" and distinguished from classic web sites due to use of splash screens and lack of the browser's loading animation when navigating, while having oh-so-fancy loading animations and skeleton screens inside the website. Sorry, I prefer seeing content quickly over the app-like appearance of fancy loading screens.
Arguably, another supposed benefit of "web apps" is that there is no blank page when navigating between pages, but in pretty much all major browsers of the last five years, the last page observably remains on screen until the next navigated page is rendered sufficiently for viewing. This is also known as "paint holding".
On any site, whenever I am greeted with content, I feel pleased. Whenever I am greeted with a loading animation, splash screen, or skeleton screen, be it ever so fancy (e.g. fading in an out, moving gradient waves), I think "do they really believe they make me like their site more due to their fancy loading screens?! I am not here for the loading screens!".
To make a page dependent on JavaScript and sacrifice lots of performance for a slight visual benefit does not seem worthed it.
Quote:
> "Yeah, but I'm building a webapp, not a website" - I hear this a lot and it isn't an excuse. I challenge you to define the difference between a webapp and a website that isn't just a vague list of best practices that "apps" are for some reason allowed to disregard. Jeremy Keith makes this point brilliantly.
>
> For example, is Wikipedia an app? What about when I edit an article? What about when I search for an article?
>
> Whether you label your web page as a "site", "app", "microsite", whatever, it doesn't make it exempt from accessibility, performance, browser support and so on.
>
> If you need to excuse yourself from progressive enhancement, you need a better excuse.
– Jake Archibald, 20139 -
> asks for better pay
> starts trying to evaluate the quality of our efforts
> complains about doing things that are not good in the long run
> spends time mastering best practices
> unemployed2 -
Vendor we('re forced to) work with, as we share a client. This is in their stylesheet. Fuck SEO best practices, amirite?! 😒5
-
Software development best practices: decouple your code
Apple, on applying a bold text style: Nah.5 -
(As a freelancer I was asked to do a couple of tasks on legacy code)
Let’s check this code, how bad can it be?
- all of the following: unreadable mess, no auto linting
- tests: some are there cause there’s not enough automation, others are poorly named
- frontend: somehow a genius made a react component for every variable in the store which only passes the variable to the child (wtf)
- backend: death by best practices
- ci/cd: “we have it but it’s broken”
Let’s fucking goooo 😎
Diagnosis: my therapist is getting rich
Chances to not cry tonight: close to zero
At least they pay well 🤷♂️5 -
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 -
I’ve been at this job 4 months and I feel like I’ve been here long enough to make an accurate opinion of it. From day one I have not felt welcomed. There is no communication within the team.. none of my questions are ever answered.. and when I do ask questions I get snarky answers. I don’t expect my hand to be held, but as someone who is new, I’d like you to give me guidance. Especially since the code is mostly legacy and no one else on the team seems to know anything about anything.
Oh and there are not daily stand ups, project managers, or direction in the tickets themselves.
I guess I should have expected this on the first day when I asked for a SIP or documentation on how to get my environment setup I was practically laughed out of the office and then had the nerve to ask me why it took me the entire day to get 5 environments up and running.. not giving me the custom mappings or the global UDFs.
Today was my last straw.. when I asked a question in three different forms of communication on multiple different channels and was never given an answer.. and then was asked why I did something the way I did instead of doing it the way they wanted me to.
I think the saddest thing is that I felt tricked into this. I was told this position was going to be one way but ended up being something else. I was excited to share my knowledge and best practices to the team. Instead, I’m an outcast and get only be negativity and excuses when I politely bring up suggestions.
I no longer have the will to code here.5 -
I don't seem to understand why so many developers nowadays are focused on learning newer frameworks rather than focusing on best practices and learning how to code better.
"Hey I learnt React today, we should totally switch to it because it's so amazing"
> mfw the same guy doesn't even know how to follow coding styles, write good code that scales or document his code.
I think some people need to take a step back and focus on the more vital tasks of writing good code to begin with rather than getting so excited about every new thing that surfaces. It's annoying as fuck to deal with some of these people who you have to work alongside and be able to read their loopy shit code and all they are doing in their time is refreshing hackernews.8 -
I'm so fed up of this shitty ultra-ortodox industry
I've worked on many different projects, been in many different teams. It's an ever changing industry, but, surprisingly, it's so orthodox. Dev industry nowadays have some rules, that everybody adopts them as "best practices". You have to work on pull requests, and several of your teammates have to review your shit (as if they have nothing better to do).
I'm sick of people using fucking DTOs in shitty frameworks like Laravel. Using DTOs in Laravel is like putting mustard in a fucking chocolate cake.
I'm so fed up of SPAs and node.js. I've yet so see a single SPA that handles jwt tokens correctly. I'm tired of spending hours and hours, days and days, struggling with thousandls of layers of abstractions instead of being productive and getting the shit done.
Because end customers don't give a shit about your "best practices": They have a problem and you are getting paid for it to be solved, not for spending hours and hours struggling with stupid Javascript and its crazy async nature and their crappy libraries.
Damnit. I say. Now. I now feel better. Thanks for listening :)14 -
<rant>
Don't fucking tell me to move business logic from the service to the controller. Don't fucking tell me it will enable an "event driven architecture." Don't fucking use Angular for this project if you're just gonna shit on best practices and write convoluted, messy, inconsistent code and force your coworkers to do the same!
</rant> -
What was your most disappointing moment as a software developer?
Mine was the realization that when you're working for someone, all they want to see is the final product. The people paying you don't give a shit whether you put your braces on a new line, your domain model doesn't call a database directly or if you're applying the best practices. Your teammates do, but the people paying you don't.
People hire you to get the job done, and that job is to solve a problem for someone. Not in the way that's best for you, but in the most effective way for them. Since I realized this, I lost some pride in my work.5 -
I've been been in consulting doing systems implementations for about a decade. I just started a new e-commerce project with perhaps the most agreeable client I've ever encountered - in fact they're extremely eager to make my job easier. Just today one of the stakeholders, completely seriously, uttered the phrase "maybe we don't need to care about IE".
After ten years living thru every client cliche imaginable over and over again I now find I don't know how to trust. Their acceptance of best practices and my recommendations is almost unnerving...3 -
I am driven by my love for this industry and wanting to do everything to the best of my ability.
Being a strong advocate for quality i am always on the look put for new practices and finding new ways to improve my code.
If you consider a project 'done' then you gave up on it.1 -
Does anyone get the feeling that as they become more senior, they care less about meeting "best practices" and more of just "good enough"?
Best practices being everything in those books about TDD, unit testing, design patterns, design artifacts.
Good enough: enough so it won't blow up in prod, some tests but not 80-90%, some docs. Basically not like those public docs, open source projects/frameworks where function is covered
When I first started professionally, I was all about efficiency, good design, reducing technical debt, clean code.
But now, I look at problems and instinctively I may make these decisions but I don't really think about it much. First goal is to just get something working, clean it up later... Maybe.6 -
So for almost all of my c++ assignments I've recieved various emails from the instructor about things like "incorrect header guard" and "library inclusions out of order".
The first being that I didn't include the namespace inside of the guard (I did "FILENAME_H" instead of "NAMESPACE_FILENAME_H")
The second is that I accidentally included header files from my project before any of the standard libraries. This one wasn't even intentional, it was caused by vscode when it formatted/prettified the file.
EX:
#include "test.h"
#include <iostream>
In my opinion these seem pretty nitpicky and, especially that first one, appear to be more like naming conventions or best practices than something to deduct marks for.
On the flip side though I did accidentally store a couple functions in the global namespace which I understand isn't particularly safe. I also made a couple one line conditional statements that simply never evaluate to true, but I didn't think this was a huge deal.
I don't normally code in any of the c languages outside of college so I'm not sure how important these are to actually follow. I've apparently been deducted an entire 10 percent off the assignment because of the head guard. I know that every professor has different criteria for deducting marks, but even this seemed rather unnecessary.
What does everyone think?11 -
I'll just start off with how I really feel. Fuck big corporations with their career robots and retarded practices!
Now for a story. So I work remotely for most of the time nowadays, since my company has as clients big corporations. Used to be embedded with said clients, but it became kind of painful to work with them all so I asked to be reassigned to a remote position.
Now for the retarded part: The fucking Klingons I'm working with have two tiers to their VPN, but won't let me have the full version because it would be too fucking expensive. I checked and it's fucking 50 bucks per year difference.
So for that the Klingons are making me code through a remote connection that has a "best effort" priority.
Fuck.
Anyway after 3 weeks of writing code at a 400-600ms latency I finally snap.
I try to use a proxy and it. I write one myself, gets balcklisted in 2 days.
After about another week of writing code through a fuck straw I start working on node socket with 2 clients and a server that encrypts the send data, and syncs 2 folders between my workstation and the remote one.
It's been a month now and it is still working. It's not perfect, but I can at least write code without lag.
Question for you peeps: What shenanigans have you pulled to bypass shit like this?3 -
!rant
if you're someone who grades code, fuck you, you probably suck. Turned in a final project for this gis software construction class as a part of my master's degree (this class was fuck all easy, I had two weeks for each project, each of them took me two days). We had to pick the last project, so I submitted final project proposal that performs a two-sample KS test on some point data. Not complex, but it sounds fancy, project accepted. Easy money.
I write the thing and finish it, it works, but it doesn't have a visualization and that makes the results seem pretty lame, even though its fully functional. SO I GO OUT OF MY FUCKING WAY to add a matplotlib chart of the distribution. To do that, at the very bottom of the workflow, I define a function to chart it out because it made the code way more readable. Reminder, I didn't have to do this, it was extra work to make my code more functional.
Then, this motherfucker takes points off because I didn't define the function at the very beginning of the code... THE FUCK, DUDE? But, noobrants, it's "considered best prac--" nope, fuck you, okay? This class was so shit, not once was code style addressed in a lesson or put on any rubric - they didn't give a shit what it looked like - in fact, the whole class only used arcpy (and the csv mod once), they didn't teach us shit about anything except how to write geoprocessing scripts (in other words, how to read arcGIS docs about arcpy) and encouraged us to write in fucking pythonwin. And now, when the class is fucking over, you decide to just randomly toss this shit in, like it was a specific expectation this whole time? AND you do this when someone has gone out of their way to add functionality? Why punish someone who does extra work because that extra work isn't perfect? Literally, my grade would have been better without the visualization.
I'm not even mad at my grade - it was fine - I just hate inconsistency in grading practices and the random raising and lowering of expectations depending on how some grader's coffee tasted that morning. I also hate punishing people for doing more - it's this kind of shit that makes people A) wanna rip their eyeballs out, and B) never do anything more than the basic minimum expectation to avoid extra unwanted attention. If you want your coders to step up and actually put work in to make things the best they can be, yell at a grader to reward extra work and not punish it.4 -
So about 3 weeks ago I was laid off from my dream job due to corporate bullshit. From the feedback received since then it is clear that the company made a mistake hiring a brand new React dev while they really needed an experienced one. Because the consultants who were supposed to be weren't. And the other in-house front end dev was an elitist asshole. And I never received proper feedback until it was too late. Actually I still don't have proper feedback save for some vague stuff which really sounds like the kind of feedback you'd give someone in the middle of their learning process. They even said eventually given more time I could have made it. But alas they felt they had to make a call in the best interest of the company.
Things moved fast since then, I took a week to recover and then I spent time updating my resume before getting back in touch with the recruiter who got me my last job. Great guy and he was happy to help me again. Applied to some positions, got some replies, first in person interview I go to they are immediately willing to take me on.
So now I'm supposed to start tomorrow but somehow I'm having my doubts. The company isn't an IT company but rather a fashion company. They believe in developing in house tools because past attempts with external companies resulted in them trying to push their vision through. Knowing who they worked with I agree, they tried to oversell all the time. But after talking with their developers I noticed they are behind on their knowledge. But so am I. So there was no tech interview which means I am getting an easy way in. And if they honour their word I'll be signing tomorrow for around my old wages.
So you'd think that sounds good right? And yet I'm worried it's going to be another shit show working on software without proper analysis or best practices. I mean the devs aren't total idiots, they are mediors like me and I think their heart is in the right place. They want to develop a good project but it will be just us 3 making a modern .net wpf application with the same functionality of the old Access based system currently in use. I was urged by the boss to draw on my experience and I think he wants me to help teach them too. But I'm painfully aware for my decade since graduating I'm a less than average .net dev who struggles with theory and never worked a job where I had someone more experienced to teach me. I coasted most of the time in underpaid jobs due to various reasons. But I'd always get mad over shitty code and practices. Which I realize is hypocritical for someone who couldn't explain what a singleton class is or who still fails at separation of concerns.
So yeah my question for the hivemind is what advice would you give a dev like me? I honestly dislike how poor I perform but it often feels like an insurmountable climb, and being over 30 makes it even more depressing. On the other hand I know I should feel blessed to find a workplace who seems to genuinely believe that people grow and develop and wishes to support me in this. Part of me thinks I should just go in, relax, but also learn till I'm there where I want to be and see if these people are open to improving with me. But part of me also feels I'm rushing into this, picking the first best offer, and it sure feels like a step backwards somehow. And that then makes me feel like an ugly ungrateful person who deserves her bad luck because she expects of others what she can't even do herself :(4 -
My man said "What should I return if the True/False field is left blank?"
WHY WOULD A BOOLEAN BE ANYTHING OTHER THAN TRUE OR FALSE???!!!
I'm gonna have an aneurysm. I shouldn't be educating people on best practices for something that's already been written about time and time again. RESTful philosophy has been documented so much, and all it takes is a quick google search, but noooo! I have to take time out of my day as if I'm a regular old stakeholder to explain that I want the exact thing that I sent in an email two weeks ago. Amazing.20 -
Data Disinformation: the Next Big Problem
Automatic code generation LLMs like ChatGPT are capable of producing SQL snippets. Regardless of quality, those are capable of retrieving data (from prepared datasets) based on user prompts.
That data may, however, be garbage. This will lead to garbage decisions by lowly literate stakeholders.
Like with network neutrality and pii/psi ownership, we must act now to avoid yet another calamity.
Imagine a scenario where a middle-manager level illiterate barks some prompts to the corporate AI and it writes and runs an SQL query in company databases.
The AI outputs some interactive charts that show that the average worker spends 92.4 minutes on lunch daily.
The middle manager gets furious and enacts an Orwellian policy of facial recognition punch clock in the office.
Two months and millions of dollars in contractors later, and the middle manager checks the same prompt again... and the average lunch time is now 107.2 minutes!
Finally the middle manager gets a literate person to check the data... and the piece of shit SQL behind the number is sourcing from the "off-site scheduled meetings" database.
Why? because the dataset that does have the data for lunch breaks is labeled "labour board compliance 3", and the LLM thought that the metadata for the wrong dataset better matched the user's prompt.
This, given the very real world scenario of mislabeled data and LLMs' inability to understand what they are saying or accessing, and the average manager's complete data illiteracy, we might have to wrangle some actions to prepare for this type of tomfoolery.
I don't think that access restriction will save our souls here, decision-flumberers usually have the authority to overrule RACI/ACL restrictions anyway.
Making "data analysis" an AI-GMO-Free zone is laughable, that is simply not how the tech market works. Auto tools are coming to make our jobs harder and less productive, tech people!
I thought about detecting new automation-enhanced data access and visualization, and enacting awareness policies. But it would be of poor help, after a shithead middle manager gets hooked on a surreal indicator value it is nigh impossible to yank them out of it.
Gotta get this snowball rolling, we must have some idea of future AI housetraining best practices if we are to avoid a complete social-media style meltdown of data-driven processes.
Someone cares to pitch in?15 -
browsed LinkedIn articles, saw one about "good qualities of WordPress Developer", first bullet point is "following coding best practices" is it just me or that is one of the main things wrong with WP
-
I didn’t turn down a dev freelance project when the client decided against going with best practices because the solution I offered was a well-established design pattern but created a need for a financial management change she didn’t like. I stupidly built what she asked for. It worked fine in the 3rd party vendor test environment but failed on production. After hours of analysis of code to ensure no changes happened to my source during test->prod deployment, and the vendor denying they had config differences between them, and the client refusing to pay, all I could do was abandon the project.2
-
Trying to be agile and employ modern best practices in a decades old traditional super-corp.
I feel like head butting a large nail1 -
!dev
EA can suck my inches. Fucking deprecated and greedy business practices. Now I'm fucking told me to play the game later, because "too many computers have accessed this accounts version of a shitty game that crashed my pc 3 times. Please try again later."
Stupid cunts, have you ever heard of a vpn? Or maybe listened to the people complaining about this issue since 2017. On top of that you apparently rendered geforce now useless with this error.
Good fucking lord, I haven't even mentioned origin, the big pile of shit, yet. The download functionality you praise like God's cum doesn't even hold out half an hour before it freezes, together while the whole UI. You cannot like your games with a steam account, so you'd have to pay for a game you already own.
...And a whole lot of other issues I probably haven't encountered yet.
It's more lucrative to sell this shitty account and then buy the fucking game I want to play on steam. I have a feeling that would be about the best option I have.
I'm tired of this shit, I just wanna play some games with friends. I did not play to be spit on my face by some corporate wankers2 -
i think formal education is the best, because it teaches good practices and all the whys of programming. it requires a lot of discipline and effort, but actually sitting down and studying theory is good for us13
-
Ok, here goes...
I was once asked to evaluate upgrade options for an online shop platform.
The thing was built on Zend 1, but that's not the problem.
The geniuses that worked on it before didn't have any clue about best practices, framework convention, modular thinking, testing, security issues...nothing!
There were some instances when querying was done using a rudimentary excuse for a model layer. Other times, they would just use raw queries and just ignore the previous method. Sometimes the database calls were made in strange function calls inside randomly loaded PHP files from different folders from all over the place. Sometimes they used JOINs to get the data from multiple tables, sometimes they would do a bunch of single table queries and just loop every data set to format it using multiple for loops.
And, best of all, there were some parts of the app that would just ignore any ideea of frameworks, conventions and all that and would be just a huge PHP file full of spagetti code just spalshed around, sometimes with no apparent logic to it. Queries, processing, HTML...everything crammed in one file...
The most amazing thing was that this code base somehow managed to function in production for more than 5 years and people actualy used it...
Imagine the reaction I got from the client the moment I said we should burn it to the ground and rebuild the whole thing from scratch...
Good thing my boss trusted me and backed me up (he is a great guy by the way) and we never had to go along with that Frankenstein monster... -
Anyone reading these emails we are sending?
I work at a small place. A few users are using an application at our place that I develop and maintain. We all work remotely.
I announce by email to these few users a new version release of said application because of low level changes in the database, send the timeline for the upgrade, I include the new executable, with an easy illustrated 2 minutes *howto* to update painlessly.
Yet, past the date of the upgrade, 100% of the application users emailed me because they were not able to use the software anymore.
----------------
Or I have this issue where we identified a vulnerability in our systems - and I send out an email asking (as soon as possible) for which client version users are using to access the database, so that I patch everything swiftly right. Else everything may crash. Like a clean summary, 2 lines. Easy. A 30 second thing.
A week pass, no answer, I send again.
Then a second week pass, one user answers, saying:
> well I am busy, I will have time to check this out in February.
----------------
Then I am asking myself:
* Why sending email at all in the first place?
* Who wrote these 'best practices textbooks about warning users on schedule/expected downtime?'
*How about I just patch and release first and then expect the emails from the users *after* because 'something is broken', right? Whatever I do, they don't read it.
Oh and before anyone suggest that I should talk to my boss about this behavior from the users, my boss is included in the aforementioned 'users'.
Catch-22 much ? Haha thanks for reading
/rant7 -
So technical interview today but woke up (6am) and started thinking about it and it led to this rant about algorithms. This is probably going into a Medium post if I ever get around to finishing it but sort of just wanted to share the rant that literally just went off in my mind.
*The problem with Algorithms Technical Interviews Is They don't test Real skills*
Real world problems are complex and often cross domain combining experience in multiple areas. Often the best way is not obvious unless you're a polymath and familiar with different areas, paradigms, designs. And intuitively can understand, reason, and combine them.
I don't think this is something a specific algorithm problem is designed to show. And the problem is the optimal solution to some of these and to algorithm design itself is that unless you train for it or are an algorithm designer (practice and experience), you can only brute force it in the amount of time given.
And quite frankly the algorithms I think we rely on daily weren't thought of in 30 minutes. The designers did this stuff for a living, thought about these problems for days and several iterations… at least. A lot were mathematicians. The matrix algorithm that had a Big O of 7N required a flash of insight that only someone constantly looking and thinking about the equations could see.
TBA
-system design
-clean readable coding practices
...
TLDR: I could probably go on and on about this stuff for hours jumping from item/example/area to the next and back again... But I don't think you can test these (~20) years of experience in a 1 hr technical interview focused on algorithms...8 -
Whelp. I started making a very simple website with a single-page design, which I intended to use for managing my own personal knowledge on a particular subject matter, with some basic categorization features and a simple rich text editor for entering data. Partly as an exercise in web development, and partly due to not being happy with existing options out there. All was going well...
...and then feature creep happened. Now I have implemented support for multiple users with different access levels; user profiles; encrypted login system (and encrypted cookies that contain no sensitive data lol) and session handling according to (perceived) best practices; secure password recovery; user-management interface for admins; public, private and group-based sections with multiple categories and posts in each category that can be sorted by sort order value or drag and drop; custom user-created groups where they can give other users access to their sections; notifications; context menus for everything; post & user flagging system, moderation queue and support system; post revisions with comparison between different revisions; support for mobile devices and touch/swipe gestures to open/close menus or navigate between posts; easily extendible css themes with two different dark themes and one ugly as heck light theme; lazy loading of images in posts that won't load until you actually open them; auto-saving of posts in case of browser crash or accidental navigation away from page; plus various other small stuff like syntax highlighting for code, internal post linking, favouriting of posts, free-text filter, no-javascript mode, invitation system, secure (yeah right) image uploading, post-locking...
On my TODO-list: Comment and/or upvote system, spoiler tag, GDPR compliance (if I ever launch it haha), data-limits, a simple user action log for admins/moderators, overall improved security measures, refactor various controllers, clean up the code...
It STILL uses a single-page design, and the amount of feature requests (and bugs) added to my Trello board increases exponentially with every passing week. No other living person has seen the website yet, and at the pace I'm going, humanity will have gone through at least one major extinction event before I consider it "done" enough to show anyone.
help4 -
I was in Singapore last week for a conference. The speaker, who I met a long time ago and was our contact at Meta/Facebook, was promoting FB/Instagram reels and even gave pointers on best practices when posting reels.
She was one of the 11,000 employees that Meta let go one week later. Ouch.3 -
PayPal = GayPal
PHASE 1
1. I create my personal gaypal account
2. I use my real data
3. Try to link my debit card, denied
4. Call gaypal support via international phone number
5. Guy asks me for my full name email phone number debit card street address, all confirmed and verified
6. Finally i can add my card
PAHSE 2
7. Now the account is temporarily limited and in review, for absolutely no fucking reason, need 3 days for it to be done
8. Five (5) days later still limited i cant deposit or withdraw money
9. Call gaypal support again via phone number, burn my phone bill
10. Guy tells me to wait for 3 days and he'll resolve it
PHASE 3
11. One (1) day later (and not 3), i wake up from a yellow account to a red account where my account is now permanently limited WITHOUT ANY FUCKING REASON WHY
12. They blocked my card and forever blocked my name from using gaypal
13. I contact them on twitter to tell me what their fucking problem is and they tell me this:
"Hi there, thank you for being so patient while your conversation was being escalated to me. I understand from your messages that your PayPal account has been permanently limited, I appreciate this can be concerning. Sometimes PayPal makes the decision to end a relationship with a customer if we believe there has been a violation of our terms of service or if a customer's business or business practices pose a high risk to PayPal or the PayPal community. This type of decision isn’t something we do lightly, and I can assure you that we fully review all factors of an account before making this type of decision. While I appreciate that you don’t agree with the outcome, this is something that would have been fully reviewed and we would be unable to change it. If there are funds on your balance, they can be held for up to 180 days from when you received your most recent payment. This is to reduce the impact of any disputes or chargebacks being filed against you. After this point, you will then receive an email with more information on accessing your balance.
As you can appreciate, I would not be able to share the exact reason why the account was permanently limited as I cannot provide any account-specific information on Twitter for security reasons. Also, we may not be able to share additional information with you as our reviews are based on confidential criteria, and we have no obligation to disclose the details of our risk management or security procedures or our confidential information to you. As you can no longer use our services, I recommend researching payment processors you can use going forward. I aplogise for any inconvenience caused."
PHASE 4
14. I see they basically replied in context of "fuck you and suck my fucking dick". So I reply aggressively:
"That seems like you're a fraudulent company robbing people. The fact that you can't tell me what exactly have i broken for your terms of service, means you're hiding something, because i haven't broken anything. I have NOT violated your terms of service. Prove to me that i have. Your words and confidentially means nothing. CALL MY NUMBER and talk to me privately and explain to me what the problem is. Go 1 on 1 with the account owner and lets talk
You have no right to block my financial statements for 180 days WITHOUT A REASON. I am NOT going to wait 6 months to get my money out
Had i done something wrong or violated your terms of service, I would admit it and not bother trying to get my account back. But knowing i did nothing wrong AND STILL GOT BLOCKED, i will not back down without getting my money out or a reason what the problem is.
Do you understand?"
15. They reply:
"I regret that we're unable to provide you with the answer you're looking for with this. As no additional information can be provided on this topic, any additional questions pertaining to this issue would yield no further responses. Thank you for your time, and I wish you the best of luck in utilizing another payment processor."
16. ARE YOU FUCKING KIDDING ME? I AM BLOCKED FOR NO FUCKING REASON, THEY TOOK MY MONEY AND DONT GIVE A FUCK TO ANSWER WHY THEY DID THAT?
HOW CAN I FILE A LAWSUIT AGAINST THIS FRAUDULENT CORPORATION?12 -
4 months into the journey at an ambitious streaming startup we, a team of 10 engineers (primarily full stack), sets up a tiny and performant express.js api setup.
We document plans for improving the maintainability, including outlining specific practices (not very different from general node best practices) that need to be followed for all new development.
Enter a new engineering manager (dedicated backend manager), henceforth referred to as S, with a rat face and brain that belongs in a rat hole.
Week 1:
S: let's push this new feature out asap
Dev: it'll need a couple of weeks to get done right
S: let's push out a functional version tomorrow, and revamp in the next iteration
Dev: ... (long pause) there's documented practices specifically directing against this
S: can you not do it by tomorrow
Dev: not if it needs to be done right
S: all you need to do is.. (simplifies changes spanning 5 modules into a 3 line summary)
Dev: yes, (outlines how each changes chains into the others, and how to keep the development maintainable for atleast a few months)
S: (interrupts every sentence saying "yes dev, I understand, yes yes")
Dev: could you please tell me how you expect me to connect (outlines two modules that would fail unless developed as standalone services)
S: Yes dev, I understand, yes yes. I don't have much experience with Node.js, so I can't tell you that.
Dev:
<_<
>_>
O_<
Our.. entire.. backend.. stack.. is.. Node. (Months of motivation, cultivated through hard work over late nights, dies inside)
I need a J and some sleep.6 -
Me: The dev agency didn’t follow best practices. They only implemented front end validation on the form. The form submits to a public endpoint, so bots don’t have to go through our site to submit the form. That’s why our database is still filled with $1 donation transactions. I honestly recommend telling this to the dev agency and request that you not be charged for the extra work needed to do this right.
Manager: They charge $95/hr and they’re billing for 8 hours already.
[Aside: The agency’s task was to implement a $10 minimum on the form, do some text changes, and deploy.]
Me: I would expect work to be done according to accepted best practices. It’s really a half done job.
Manager: But they were very helpful when we had that payment processing emergency. They stayed late to help us. We shouldn’t push this in case we need their help again. Can you do the backend validation? [We are in US and agency is in Lithuania.]
Me: 🤬😩😑🤐[To myself: This wouldn’t have happened if the fundraising team hadn’t panicked and would only wait until I came back from my one day of PTO.]1 -
Had a new co-worker I was responsible for training. I am several years his junior, but he is working with a new language/framework I'm fluent in. Day 4 into training, he walks into my cubicle, sidles up next to me, I look up at him, he farts loudly, then (without seeming to realize what he's done) he proceeds to launch into a long-winded question about coding best practices.
If this were an isolated incident, I'd have written it off, but the dude did it again when he came to my desk and asked me to open a jar of pickles for him, and many times over during casual conversation.1 -
isRant = true
Am I the only one who has to deal with an annoying coworker who has the urge to take every conversation into an argument to prove himself smarter than everyone in the team? A person who has to contradict every time with rest of the people just to prove himself smarter and different.
Gets so annoying sometimes that I stop answering him right away.
To add to this he is the person from our dev team who has to prove that he codes the fastest and want to get it deployed ASAP. Does not follows best practices and disregards and design patterns. Would argue for hours on his code with the peer reviewer.
Every one hates him for this and he things he is the dev rockstar2 -
MENTORS - MY STORY (Part III)
The next mentor is my former boss in the previous company I worked.
3.- Manager DJ.
Soon after I joined the company, Manager E.A. left and it was crushing. The next in line joined as a temporal replacement; he was no good.
Like a year later, they hired Manager DJ, a bit older than EA, huge experience with international companies and a a very smart person.
His most valuable characteristic? His ability to listen. He would let you speak and explain everything and he would be there, listening and learning from you.
That humility was impressive for me, because this guy had a lot of experience, yes, but he understood that he was the new guy and he needed to learn what was the current scenario before he could twist anything. Impressive.
We bonded because I was technical lead of one of the dev teams, and he trusted me which I value a lot. He'd ask me my opinion from time to time regarding important decisions. Even if he wouldn't take my advice, he valued the opinion of the developers and that made me trust him a lot.
From him I learned that, no matter how much experience you have in one field, you can always learn from others and if you're new, the best you can do is sit silently and listen, waiting for your moment to step up when necessary, and that could take weeks or months.
The other thing I learned from him was courage.
See, we were a company A formed of the join of three other companies (a, b, c) and we were part of a major group of companies (P)
(a, b and c) used the enterprise system we developed, but internally the system was a bit chaotic, lots of bad practices and very unstable. But it was like that because those were the rules set by company P.
DJ talked to me
- DJ: Hey, what do you think we should do to fix all the problems we have?
- Me: Well, if it were up to me, we'd apply a complete refactoring of the system. Re-engineering the core and reconstruct all modules using a modular structure. It's A LOT of work, A LOT, but it'd be the way.
- DJ: ...
- DJ: What about the guidelines of P?
- Me: Those guidelines are obsolete, and we'd probably go against them. I know it's crazy but you asked me.
Some time later, we talked about it again, and again, and again until one day.
- DJ: Let's do it. Take these 4 developers with you, I rented other office away from here so nobody will bother you with anything else, this will be a semi-secret project. Present me a methodology plan, and a rough estimation. Let's work with weekly advances, and if in three months we have something good, we continue that road, tear everything apart and implement the solution you guys develop.
- Me: Really? That's impressive! What about P?
- DJ: I'll handle them.
The guy would battle to defend us and our work. And we were extremely motivated. We did revolutionize the development processes we had. We reconstructed the entire system and the results were excellent.
I left the company when we were in the last quarter of the development but I'm proud because they're still using our solution and even P took our approach.
Having the courage of going against everyone in order to do the right thing and to do things right was an impressive demonstration of self confidence, intelligence and balls.
DJ and I talk every now and then. I appreciate him a lot.
Thank you DJ for your lessons and your trust.
Part I:
https://devrant.com/rants/1483428/...
Part II:
https://devrant.com/rants/1483875/...1 -
Working on codebase of a 20+ year old system that the company I work for bought five years ago and in that time there’s been no refactoring, no security updates, no attempt to create automated testing (there is none), new features have just been built on the codebase with no regard for quality and it’s just spun into the horror cesspool that it is today.
I joined one year ago and I’m slowly refactoring the codebase and updating it to get it to a more modern codebase, cleaner code, faster load times and creating a ton of dev documentation so the devs in India can start getting into best practices and start producing quality code.4 -
Back when I was still in school for comp sci we had an advanced software engineering and design class with c++. At this time, everyone was expected to be proficient enough with cpp to go ahead and properly work with whatever the instructor would throw at us. And pretty much everyone was since past classes included a lot of c++ development. Of course, efficient at least related to academic studies rather than actual real world development.
Our teacher would mix in a lot pf phyisics and mathematics into what we were doing, something that I greatly enjoyed, while at the same time putting real world value concerning cpp best practices to avoid common pitfalls in the development of said language. Since most bugs seemed to be memory based he would be particularly strict about that.
One classmate, good friend and an actual proper developer now a days would ALWAYS forget to free his resources...ALWAYS for whatever fucking reason he would just ignore that shit, regardless of how much the instructor would make a point on it.
At one point during class on a virtual lecture the dude literally addressed a couple of students but when he got to my boy in particular he said: "you are the reason why people are praying to Mozilla and Hoare to release Rust as fast as possible into a suitable alternative to high performant code in C++, WHY won't you pay attention to how you deal with memory management?"
And it stuck with me. I merely a recreational cpp dev, most of my profesional work is done on web development, so I cannot attest to all the additional unsafe code that people encounter in the wild when dealing with cpp on a professional level.
But in terms of them common criticisms of C and C++ for which memory is so important to work with, wouldn't you guys say that it comes more from the side of people just not knowing what they are doing rather than a fault on the language itself?
I see the merits and beauty of Rust, I truly do, it is a fantastic language, with a standardized build system and a lot of good design put into it. But I can't really fathom it being the cpp killer, if anything, the real cpp killers are bad devs that just don't know what they are doing or miss shit.
What do y'all ninjas think?8 -
I know its been quite a while since ive posted last but it is safe to say that i am back! And boy do i have some stuff to bitch about.
This semester, Im taking mobile app development as a class. I chose to take this class over the introductory c# class, so that i wouldn't need to work with Windows or really do anything else to touch Windows. Well the joke is on me. Here i was thinking that we would be using a bit of Java from time to time while only really learning best practices and concepts.
Never did i think that this class's curriculum would be entirely based off of Xamarin.
Seeing as I need either this class or the two c# classes to graduate, I had to bite the bullet and just accept that my semester would be full of irritation during this class.
Its been about seven weeks in, and i have turned in 8 assignments.
All 8 of those assignments have been Windows Form Applications doing simple shit like dividing two numbers.
We have not made anything for multiple devices. We have not made anything for even one mobile device. We have not even discussed how to do this in the class.
This wouldnt bother me so much since these are typically easy programs that take about 30 minutes to make and test and submit for grading. It does insanely bother me, however, that it takes Windows so FUCKING LONG to boot, or when it freezes every 2 minutes because i clicked into another program, or it just HANGS ON THE UPDATING SCREEN AT 36% FOR THREE DAYS, or when it took 4 different reinstallations of Visual Studio 2017 before i could actually open without an error code.
College, Ive learned, tests my patience way more than it has ever tested my knowledge.2 -
Am i whiny or is resilience so glorified in this field?
I am a junior developer. I was assigned with two projects together with a friend and a senior. My friend and I finished our assigned tasks way before the deadline. Fast forward, my senior got reassigned to a different project since we are lacking with manpower. Naturally, his transactions were assigned to me and my friend. And my goodness, his existing codes are a piece of shit! It's all over the place. His variable naming is shit, his codes are all around the place, his codes doesn't even follow our company's coding standards, no try catch, a lot of unsafe practices. In short, cleaning his code is a pain in the ass and my friend and I got really busy with cleaning his mess. The testing of our system is really near but I just thought that maybe he's really busy with the other project that's why the quality of his codes deteriorated.
He's not. One day, I saw his in discord that he's playing during work hours lol. And the worse part is that he is playing with our boss! YES. DURING WORK HOURS. I got mad but I couldn't say anything because he is really tight with the boss.
Later on that day, we had our meeting. I was surprised when my boss told me that she's expecting that the excel part of our system is already finished. A little background here, my boss asked me to study Excel VB. However, I didnt get to study that much because I was so busy fixing bugs and after that came the cleaning of our senior's shit codes.
So I tried to say these things to my boss but I was cut out by the same senior shouting "You can do it!" over and over again. No one listened to what I was trying to say! And to make it even worse, the boss had a very proud look on her face and she even had the audacity to tell me that I'm lucky I have such a good support system. I dont.
Now, the company is planning to put me in a very demanding project. I havent finished cleaning up my senior's codes, I havent started anything with the excel and the deadline is next week!
The boss told me that even if I enter the other project, that I will still be responsible for the Excel part of our system. So fucking shoot me in the face.They were telling me that I should have a good time management system, that I should be flexible, that I should adapt easily, yada yada yada. She just makes you feel bad about yourself if you're not as 'flexible' as her.
The thing is, even if I have the best time management techniques in the world, if you bombard me with a shitload of tasks, then I won't be able to do it properly! I don't even take breaks anymore! I work literally 8 hours a day, even more than that. And I dont understand, why the hell is she overworking me when her friend (the senior dev) is just playing during work hours?
Another funniest thing is that she told us that when we encounter technical problems, we should ask our senior dev. Oh boy, if only she knows how shitty his codes are.6 -
We were documenting a feature which has system wide affect. We’ll be delivering it to customer on Monday.
So we’ve asked the colleague who worked on it about how it works and asked few follow up questions that arise during the documenting. All were good.
Comes Friday when I had a question as some things didn’t add up and I checked the source. To my surprise the very core operation colleague explained us works in exact opposite way. I kid you not in %50 percent of the documentation we ramble about why it was implemented this way since it is faster/safer best practices bla bla.
Moreover we’ve already had some exchange with the customer and we informed(misinformed) them about this core operation...
Also changing the behavior will reduce the overall speed as it will cause extra branchings. Other option is to rewrite the documentation and inform(re-convince) the customer. If it was me I wouldn’t trust us anymore but we’ll see.
I really don’t know what to say about this fucker why would you say something if you’re not sure of it or why the fuck you didn’t confirm in the last 3 weeks....
Anyway we have a meeting on Monday morning to discuss how to proceed, that’s gonna be fun!1 -
ZNC shenanigans yesterday...
So, yesterday in the midst a massive heat wave I went ahead, booze in hand, to install myself an IRC bouncer called ZNC. All goes well, it gets its own little container, VPN connection, own user, yada yada yada.. a nice configuration system-wise.
But then comes ZNC. Installed it a few times actually, and failed a fair few times too. Apparently Chrome and Firefox block port 6697 for ZNC's web interface outright. Firefox allows you to override it manually, Chrome flat out refuses to do anything with it. Thank you for this amazing level of protection Google. I didn't notice a thing. Thank you so much for treating me like a goddamn user. You know Google, it felt a lot like those plastic nightmares in electronics, ultrasonic welding, gluing shit in (oh that reminds me of the Nexus 6P, but let's not go there).. Google, you are amazing. Best billion dollar company I've ever seen. Anyway.
So I installed ZNC, moved the client to bouncer connection to port 8080 eventually, and it somewhat worked. Though apparently ZNC in its infinite wisdom does both web interface and IRC itself on the same port. How they do it, no idea. But somehow they do.
And now comes the good part.. configuration of this complete and utter piece of shit, ZNC. So I added my Freenode username, password, yada yada yada.. turns out that ZNC in its infinite wisdom puts the password on the stdout. Reminded me a lot about my ISP sending me my password via postal mail. You know, it's one thing that your application knows the plaintext password, but it's something else entirely to openly share that you do. If anything it tells them that something is seriously wrong but fuck! You don't put passwords on the goddamn stdout!
But it doesn't end there. The default configuration it did for Freenode was a server password. Now, you can usually use 3 ways to authenticate, each with their advantages and disadvantages. These are server password, SASL and NickServ. SASL is widely regarded to be the best option and if it's supported by the IRC server, that's what everyone should use. Server password and NickServ are pretty much fallback.
So, plaintext password, default server password instead of SASL, what else.. oh, yeah. ZNC would be a server, right. Something that runs pretty much forever, 24/7. So you'd probably expect there to be a systemd unit for it... Except, nope, there isn't. The ZNC project recommends that you launch it from the crontab. Let that sink in for a moment.. the fucking crontab. For initializing services. My whole life as a sysadmin was a lie. Cron is now an init system.
Fortunately that's about all I recall to be wrong with this thing. But there's a few things that I really want to tell any greenhorn developers out there... Always look at best practices. Never take shortcuts. The right way is going to be the best way 99% of the time. That way you don't have to go back and fix it. Do your app modularly so that a fix can be done quickly and easily. Store passwords securely and if you can't, let the user know and offer alternatives. Don't put it on the stdout. Always assume that your users will go with default options when in doubt. I love tweaking but defaults should always be sane ones.
One more thing that's mostly a jab. The ZNC software is hosted on a .in domain, which would.. quite honestly.. explain a lot. Is India becoming the next Chinese manufacturers for software? Except that in India the internet access is not restricted despite their civilization perhaps not being fully ready for it yet. India, develop and develop properly. It will take a while but you'll get there. But please don't put atrocities like this into the world. Lastly, I know it's hard and I've been there with my own distribution project too. Accept feedback. It's rough, but it is valuable. Listen to the people that criticize your project.9 -
Hello and welcome, to a presentation in which I will tell you my thoughts on the shortcomings of modern day computers and programming practices.
Computers are based on a very fundamental and old idea, folders, and files, a file is basically a concrete amount of data, whereas a folder is a group of files, and it comes from the real life concept of files and folders, now it might be quite obvious already that using a concept invented in 1898 by a guy called Edwin G. Seibels, might not be the best way for computers to function in the year 2020, but alas, it is.
Unless of course, you step into the world of a programmer.
A programmer’s world is much different, they use this idea of a data structure, or in simpler terms, an object. An Object is just like what you would think of as an object in your head, something with different properties that you can think about in different ways, for example your mobile phone, it has a battery percentage, it has a screen size, it has free space available. Programmers use these data structures to analyse data very quickly, like finding all phones with a screen size bigger than a certain size for example.
The problem is that programmers still use files and folders to create the programs that use these objects.
Consider this example.
Let’s say you want to create a virtual version of a drink bottle, consider what properties it will have, colour, volume, height, width, depth, material, etc..
As a programmer, you can leverage programming features and change the properties of a drink bottle directly, if you wanted to change the colour, you just say, drink bottle “dot” colour, equals blue, or red.
But if the drink bottle was represented as a file, all the drink bottles data would be inside the one file, so you would have to open the whole file, find the line or section of the file that has the colour data of the drink bottle, and select it, highlight it, delete what’s there, and type in your new value.
One way to explain this better is to imagine a folder that now represents the drink bottle, imagine adding a new file into that folder that represents each property I described before, colour, volume, etc.., well now, you could just open that folder, find the file for colour, either by looking with your eyes or you could do a file search in the folder for a file called colour, open it, and edit the value inside. This way of editing objects is the one that more closely represents the way programmers and a program itself interacts with objects inside a running programming language.
But the thing is, programmers don’t use the folder/file way of creating objects and putting them into programs, because it would be too cumbersome, they just create 1 file for an object, or have lots of objects in a file, and create all the objects in 1 file, and then run the program which creates the objects, then when they stop the program, it deletes the objects. So there is no actual link between the object in a file and the object that the program creates by reading the data from that file, if you change the object in your program, it does not get saved to the file.
So programmers created databases to house these objects, but there is still a flaw in databases, they are hard to interface with, and mostly databases are just used to send data or retrieve data from, programmatically, you can’t really browse a database the way you can browse the files on your computer. You can, but database interfaces are not made to be easily navigated the way files and folders are.
As it stands, there is no way to store objects instead of files on your computer and interact with them in complex ways the way programmers can inside the programs they create.
If the idea of an object became standard the way a file and folder is standard, I think it would empower human’s a great deal to express things far more easily and fluidly than they can today.
Thanks for reading.8 -
During one of our 'pop-up' meetings last week.
Ralph: "The test code the developers are checking in is a mess. They don't know what they are doing."
ex.
var foo = SomeLibrary.GetFoo();
Assert.IsNotNull(foo);
Fred: "Ha ha..someone should talk to HR about our hiring practices. These people are literally driving the company backwards."
Me: "I think unit testing is complete waste of time."
- You could almost see the truck hit the wall and splatter watermelon everwhere..took Ralph and Fred a couple of seconds to respond
Fred: "Uh..unit testing is industry best practice. There is scientific evidence that prove testing reduces bugs and increases code quality"
Ralph: "Over 90% of our deployments are rolled back because of bugs. Unit testing will eliminate that."
Me: "Sorry, I disagree."
- Stepping on kittens wouldn't have gotten a worse look from Fred and Ralph
Fred: 'Pretty sure if you ask any professional developer, they'll tell you unit testing and code coverage reduces bugs.'
Me: "I'm not asking anyone else, I'm asking you. Find one failed deployment, just one, over the past 6 months that unit testing or code coverage would have prevented."
- good 3 seconds of awkward silence.
Ralph: "Well, those rollbacks are all mostly due to server mis-configurations. That's not a fair comparison."
Me: "I'm using your words. Unit tests reduces bugs and lack of good tests is the direct reason why we have so many failed deployments"
Boss: "Yea, Ralph...you and Fred kinda said that."
Fred: "No...we need to write good tests. Not this mess."
Me: "Like I said, show me one test you've written that would have prevented a rollback. Just one."
Ralph: "So, what? We do nothing?"
Me: "No, we have to stop worshiping this made up 80% code coverage idol. If not, developers are going to keep writing useless test code just to meet some percent. If we wrote device drivers or frameworks for other developers maybe, but we write CRUD apps. We execute a stored procedure or call a service. This 80% rule doesn't fit for code we write."
Fred: "If the developers took their head out of their ass.."
Me: "Hey!..uh..no, they are doing exactly what they are being told. Meet the 80% requirement, even if doesn't make sense."
Ralph: "Nobody told them to write *that* code."
Boss: "My gosh, what have you and Fred been complaining about for the past hour?"
- Ralph looks at his monitor and brilliantly changes the subject
Ralph: "Oh my f-king god...Trump said something stupid again ..."
At that point I put my headphones on went back to what I was doing. I'm pretty sure Fred and Ralph spent the rest of the day messaging back-n-forth, making fun of me or some random code I wrote 3 years ago (lots of typing and giggling). How can highly educated grown men (one has a masters in CS) get so petty and insecure?7 -
Just because you have no idea what you are doing does not make you an artist.
So can we please treat software development as engineering?
I get that in software there are a lot of unknowns and you won't always find best practices, especially if you want to be a pioneer on the bleeding edge.
Yet maybe that issue you were trying to solve with your hackish -- I mean artfully -- solution is a lack of understanding of the basic technology?
If you want to do art, try poetry.3 -
So, I've had a personal project going for a couple of years now. It's one of those "I think this could be the billion-dollar idea" things. But I suffer from the typical "it's not PERFECT, so let's start again!" mentality, and the "hmm, I'm not sure I like that technology choice, so let's start again!" mentality.
Or, at least, I DID until 3-4 months ago.
I made the decision that I was going to charge ahead with it even if I started having second thoughts along the way. But, at the same time, I made the decision that I was going to rely on as little external technology as possible. Simplicity was going to be the key guiding light and if I couldn't truly justify bringing a given technology into the mix, it'd stay out.
That means that when I built the front end, I would go with plain HTML/CSS/JS... you know, just like I did 20+ years ago... and when I built the back end, I'd minimize the libraries I used as much as possible (though I allowed myself a bit more flexibility on the back end because that seems to be where there's less issues generally). Similarly, any choice I made I wanted to have little to no additional tooling required.
So, given this is a webapp with a Node back-end, I had some decisions to make.
On the back end, I decided to go with Express. Previously, I had written all the server code myself from "first principles", so I effectively built my own version of Express in other words. And you know what? It worked fine! It wasn't particularly hard, the code wasn't especially bad, and it worked. So, I considered re-using that code from the previous iteration, but I ultimately decided that Express brings enough value - more specifically all the middleware available for it - to justify going with it. I also stuck with NeDB for my data storage needs since that was aces all along (though I did switch to nedb-promises instead of writing my own async/await wrapper around it as I had previously done).
What I DIDN'T do though is go with TypeScript. In previous versions, I had. And, hey, it worked fine. TS of course brings some value, but having to have a compile step in it goes against my "as little additional tooling as possible" mantra, and the value it brings I find to be dubious when there's just one developer. As it stands, my "tooling" amounts to a few very simple JS scripts run with NPM. It's very simple, and that was my big goal: simplicity.
On the front end, I of course had to choose a framework first. React is fine, Angular is horrid, Vue, Svelte, others are okay. But I didn't want to bother with any of that because I dislike the level of abstraction they bring. But I also didn't want to be building my own widget library. I've done that before and it takes a lot of time and effort to do it well. So, after looking at many different options, I settled on Webix. I'm a fan of that library because it has a JS-centric approach. There's no JSX-like intermediate format, no build step involved, it's just straight, simple JS, and it's powerful and looks pretty good. Perfect for my needs. For one specific capability I did allow myself to bring in AnimeJS and ThreeJS. That's it though, no other dependencies (well, at first, I was using Axios because it was comfortable, but I've since migrated to plain old fetch). And no Webpack, no bundling at all, in fact. I dynamically load resources, which effectively is code-splitting, and I have some NPM scripts to do minification for a production build, but otherwise the code that runs in the browser is what I actually wrote, unlike using a framework.
So, what's the point of this whole rant?
The point is that I've made more progress in these last few months than I did the previous several years, and the experience has been SO much better!
All the tools and dependencies we tend to use these days, by and large, I think get in the way. Oh, to be sure, they have their own benefits, I'm not denying that... but I'm not at all convinced those benefits outweighs the time lost configuring this tool or that, fixing breakages caused by dependency updates, dealing with obtuse errors spit out by code I didn't write, going from the code in the browser to the actual source code to get anywhere when debugging, parsing crappy documentation, and just generally having the project be so much more complex and difficult to reason about. It's cognitive overload.
I've been doing this professionaly for a LONG time, I've seen so many fads come and go. The one thing I think we've lost along the way is the idea that simplicity leads to the best outcomes, and simplicity doesn't automatically mean you write less code, doesn't mean you cede responsibility for various things to third parties. Those things aren't automatically bad, but they CAN be, and I think more than we realize. We get wrapped up in "what everyone else is doing", we don't stop to question the "best practices", we just blindly follow.
I'm done with that, and my project is better for it! -
When writing code that has to be evaluated by a college prof, redirect all the best practices to /dev/null2
-
We rewrote the whole thing, except for iFraming some old pages in. We had to, the system was fucking awful and couldn't cope with any of the new mission critical requirements.
Client didn't understand the scope. Our project leader somehow snuck it in and we worked on it for months. We were sure we'd be kicked off the whole project... Somehow things didn't crash and burn. How it didn't blow up defies rational thought and the laws of physics. The new system worked, the client was happy, and boss made a lot of money.
Lead dev worked weekends for what feels like an eternity, it really was his baby and no one else on our company could have done it. It's where I finally learned how to do things the proper way; DDD, unit testing and TDD, architecture, building strong components in front-end, you name it. Before that I had a great nose for code smells and how not to do stuff, but now I got to see a proper system for the first time. It was glorious.
Then lead dev left and the system degraded quite a bit because new team didn't keep to the architectural patterns or general best practices. But we had a good run.1 -
Comment on a code review:
How does this relate to the task?
Me:
Most of the changes have nothing to do with the task, but half of the code & build system was either wrong, broken or not following best practices. This particular change is because something was broken.3 -
I am preparing for my exam in a software engineering course, where we discuss best practices for programming, testing methodologies and project management.
One of the topics is CMMI, and basically it states that organizations with mature development processes can produce exceptional software even if the teams involved are average.
Do you really think an efficient process can make up for lack of brilliance/ingenuity among the devs?13 -
Sysadmin's nemesis: a DBA. Especially an oracle DBA. There's no other kind of tech worker I've seen who's more opposed to best practices.
How about for devs?4 -
I am usually lurking in here since I never really worked as a Software Developer, but until I start going to the University, I thought I might also find myself a job in Software Development.
Well... I don't know where to start.
Someone in here heard of JBoss? Me neither... we're using it... It is a Framework to deploy fortified Java Web Applications. My first day was very chaotic and was dedicated to get this fucking shit to work. I got JBoss 7.5 from my colleagues and started deploying the hello world program...
So. Many. Things. Gone. Wrong...
After like 5 hours of troubleshooting, I had to install/setup a new wrapper with my own batch scripts, install SPECIFICALLY jdk 1.7_17 (anything else won't work) and downgrade JBoss to 7.2.
Yeah that's the first thing. Let's continue about JBoss. Version 7.2 uh? What's the newest one though? Oh it's now known as WildFly... huh... FUCKING HELL, THE NEWEST ONE IS VERSION 10.1??? AND EVEN 10.1 IS 1 YEAR OLD? WHAT THE FUCKING FUCKK AAAAAAHH...
So yeah, after that, without any expectation, I had a look at our codebase. Unit tests huh? I couldn't find a single self written one to test the applications functions... I asked my fellow devs and they told me that "it is too time consuming and we have to focus on new features, the QM Team will just manually test the application". Ever heard this bullshit? A big fat ass codebase with shittons of customers and not a single unit test...
So last but not least, since it is a web application, it also got a site. Y'know RichFaces? The deprecated front end library for Java Webpages? Where you got like 150 Tables per page everyone with a random id everytime you reload? Yeah I don't think I have to explain that to you guys...
So now YOU tell me? Is this a place to be 😂😂😂6 -
I need guidance about my current situation.
I am perfectionist believing in OOP, preventing memory leak in advance, following clean code, best practices, constantly learning about new libraries to reduce custom implementation & improve efficiency.
So even a single bad variable name can trigger my nerves.
I am currently working in a half billion $ IT service company on a maintenance project of 8 year old Android app of security domain product of 1 of the top enterprise company of the world, which sold it to the many leading companies in the world in Govt service, banking, insurance sectors.
It's code quality is such a bad that I get panic attacks & nightmares daily.
Issues are like
- No apk obfuscation, source's everything is openbook, anybody can just unzip apk & open it in Android Studio to see the source.
- logs everywhere about method name invoked,
- static IV & salt for encryption.
- thousands of line code in God classes.
- Irrelevant method names compared to it's functionality.
- Even single item having list takes 2-3 seconds to load
- Lag in navigation between different features' screens.
- For even single thing like different dimension values for different density whole 100+ lines separate layout files for 6 types of densities are written.
- No modularized packages, every class is in single package & there are around 100+ classes.
Owner of the code, my team lead, is too terrified to change even single thing as he don't have coding maturity & no understanding of memory leak, clean code, OOP, in short typical IT 'service' company mentality.
Client is ill-informed or cost-cutting centric so no code review done by them in 8 years.
Feeling much frustrated as I can see it's like a bomb is waiting to blast anytime when some blackhat cracker will take advantage of this.
Need suggestions about this to tackle the situation.10 -
I do not think that GoTo is bad. It can lead to hellish code but if you don't misuse it - it can be extremely useful.6
-
The source engine is interesting, because it has reached that stage of life where it's old enough to be remarkable-- in the sense that it could be called 'legacy', a sort of milestone in development practices and thinking, both in software, and design.
That said, a better look at it might be from the lense of *uses today*.
A lot of former source engine (SE) devs are now going to unity or unreal, I don't blame them.
But it's interesting to examine examples of games that haven't.
One such game is the freeware "No More Room In Hell". A couple online play throughs shows a wealth of well designed maps (and an even greater horde of shovelware maps, but hey, you take the good with the bad).
The age of the engine itself shows. Even in games like Left 4 Dead the engine's age can be seen. This, in some respects has been a drag, but also a blessing. Where other games could rely on their effects, shaders, and other tech, modders, map makers, and designers have had to rely on wit and creativity.
Enter "situated environments."
In an age where many people desire to travel, to go places, and have grown up doing the exact OPPOSITE, there is a great desire for variety of locations in games: not merely 'environmental' in the shallow sense of a 'theme' such as 'lava', 'tundra', etc. But in the sense of setting in general.
We want places that are both out of reach and yet familiar. Fire-fights happen in city streets. Apocalypses happen in neighborhoods where the skyline is both broken and at once something we know by sight. Open air markets, grocery stores, neighborhoods, all of these provide the back drops of popular games and series such as COD, Battlefield, The Last of Us, and yes, the example game, NMRIH.
I call this idea of 'familiar but out-of-reach level design', "situated environments", because familiarity with them, but *lack of real life experience* with them, on a day to day basis, allows people's expectations to fill in the gaps.
No one for example would argue the layouts of 7 Days To Die are familiar, but most of us don't spend all day in a junkyard or a high rise hotel.
So they *feel* familiar. Likewise with Skyrim, the villages and towns, both iconic and strange, our expectations formed by cultural inheritance, hollywood films, television shows, stories, childrens books, and yes, other games.
In a way, familiarity-without-real-in-person-experience is a shortcut for designers, one that lets them play with the player's head-space, the players subconscious idea of how a space and setting *should* work, what to *expect* out of the area, how to *operate* within the area. And the more it conforms to expectations, the more surprising an overdesigned element appears to be, rather than immersion breaking. A real life example of this is people's idea of chernobyl. When they discover the amusement park and ferris wheel they're blown away by the juxtaposition of the wasteland that surrounds them and the associations ('nostalgia' as it were) that such a carnival ride carries for many of us. It simultaneously *doesn't belong* and is yet all at once *perfectly situated in the environment*.
It is to say 'surreal', which is adjacent to the idea of *being real*, in terms of our "perception of what is and isn't plausible, if not possible."
This is at the heart of suspension of disbelief, because in essence, virtual worlds are a lie, like fiction, and good fiction violates expectations in order to tell us truths about reality. As part of our ability to differentiate bullshit from reality, there is to say an element in our bullshit detectors (doubtless evolved over many 10's of thousands of years), that is designed to not merely detect what is absurd in our limited experience, but to incorporate absurdity into everyday experience. In that sense part of our rationality is the acceptance of irrational experiences, learning from it, and discovering 'a proper place for each thing' in the "models of the world" we all carry around in our heads. Eventually we normalize the absurd, it becomes the new reality, and what remains unassimilated becomes superstition (real or otherwise), a figment, or an anomaly.
One of the best examples I've encountered is The Last of Us: Left Behind, a good chunk of which is spent in a mall. And they nailed the environment perfectly I would say.
Or for those who don't own a PS4, a more accessible example is a map in NMRIH aptly called "the museum", and few words better do it justice than to go play it yourself--that is, if you really want to know what I mean by a 'situated environment'.
What better way, during this pandemic, to get out of the news cycle and into your own head? Sometimes the best way to escape isn't outside, it's within.3 -
For the people working on small startups:
How do you keep updated on best practices, engineering, and all that when you're 24/7 focused on the startup (implementing, testing, fixing stuff)?
I feel like I love doing things the best way, but we always go with the "do fast, break fast" and it always feels like a mess because the engineering is done after a really small MVP is done (and after a long time usually).
I was hoping to be able to at least do a really small engineering part *before* starting anything new, but CEO always wants stuff done *yesterday*. But for this I think I should be reading more, and playing around with new patterns and all that, so at least I know out of the box what would be a good thing to start with and not having to change the entire project/script from scratch.4 -
I love Android development, but I HATE make individual strings for each word in my apps. It's so tedious! There's gotta be a better way than telling myself, "Oh crap you better be a good boy and use Google's 'best practices' and not hardcode all your strings. Who knows you might make this app translatable in Portuguese someday and it'll be easy then!". I HATE it!!2
-
I feel like being a doctor is like being a contract dev. You're thrown into a bad situation, you know the stack but you don't know the project history, best practices aren't followed, and the only dev is also the primary stakeholder who learned everything he knows from w3schools.2
-
My senior colleague recently said "Don't go around asking for best practices, it's a waste of time! Just try stuff until it works and commit it".
We were talking about writing code in a new language.1 -
Does someone know a site where i can get professional level help/guides/tutorials with system architecture questions? Like best practices for implementing common features? (Something like stackoverflow but where u actually get an answer instead of insults)
Googling for tutorials gives very basic/demo level results that might not be great for scale/security in prod env7 -
So i informed my intent to leave the job in few months in pursuit of learning something new in tech. Boss is trying to convince me to not leave and said i should consider learning it after work hours. In fact, in his opinion, the best way to learn is just going ahead and learning it while doing it in the project ( which usually has impossible deadline and fugly code by colleagues who never thinks of good coding practices when typing their shit ).
Well guess what boss, I don't want to just live a life staring at monitor all day. I don't want to kill my eyes either.
Following his advise and not quitting would mean living a slave life.
I have other plans actually. Like being self employed and traveling the world which would be impossible if i follow the routine life.
Fun fact: he claimed he made an AI car back in 90s!
He also thinks I can't sense BS!😏2 -
Somebody asked me for help on their thesis, gave them advise, how they should do it, what are the best practices on implementing things...
I asked the today how are they doing? They answered, we paid someone to do it, we can't do it...
Damn are they even studying and doing their daily programming practice???4 -
I was once handed a very old PHP project that I had to make some changes to. I thought it would be a piece of cake. But the moment I looked at the code, I knew it wasn't going to be easy. It was so poorly written, it took me hours to figure out what was actually going on. Now these were the times when I was already quite disturbed mentally and emotionally, and this shitty PHP code only made it worse. At one point, I was like, fuck this shit I'm gonna quit this job.
Thankfully, the client soon emailed that the requested changes weren't needed anymore.
I personally have nothing against PHP. I have created some amazing stuff with it. But it's the programmers that don't follow the best practices that piss me off. I mean, how fucking hard can it be to write clean code. You might save your time today by taking shortcuts but you'll make life hell for the people who might have to maintain your code in the future. -
Just because it's popular, doesn't mean it's good.
An overengineered solution can usually be simplified without breaking anything important. An oversimplified solution can rarely be upgraded without major breaking changes.
Not everything needs to follow the "best practices" - if it's not a part of the core functionality, diminishing returns often kick in quite fast.2 -
First rant that I really want to get out of my chest!
Never hated a job as much as this one. Haven’t done any development/programming related work since I joined. I have been mostly configuring Linux systems for IoT devices. When I get stuck at an issue, it takes me many frustrating nights to figure it out because no one on the team wants to deal with Linux shit… they’d rather be doing real development work (someone actually stated this!). There’s no one else on the team that knows Linux. Even the manager that was supposedly a Linux fanatic can’t even answer some of my questions and if they do, it’s the wrong fucking answer. Joined the company because they sold it as startup team with big money backing. Was excited to learn new technologies, new best software engineering practices, add new programming languages to my resume. But nope, been stuck at configuring Linux systems. At one point I was just pumping out updated Linux images with our updated application for a month straight. I was so excited when a development task was assigned to me a couple weeks back, but guess what?! There were Linux configuration tasks that no one knows how to do or don’t want to look at it, so my one and only fucking development work was swapped out!
And the funny thing is, I barely had any Linux experience when I joined. Why the fuck was I hired?
Man, I even bought books related to Linux programming (application and kernel) before I joined. Those books barely have a crease in them. What a waste.
Now in my free time, I’ve been learning new technologies on my own. Doing my own projects. But damn, I lose a lot of family time. Sorry wifey, I haven’t been paying a lot of attention to you!
But who knows, maybe this experience will have a silver lining in the end.
Thanks for reading :)2 -
I had mentioned before I got offered a new role, with 50% increase.
I wasn’t expecting my current employer to counter, but they suddenly shat themselves and basically matched the salary, and offered promotion to software developer (sans junior). They acknowledge my role within the company is only increasing in responsibility and so far I have exceeded expectations. Its a nice response to have from them, although I do wonder how long it might have taken without the panic.
The new company have counter-countered, promising to raise salary by a further 20% of total, within the first 6 months, provided I learn React reasonably quickly (about a month), integrate with the team and start to take on my roles within the Agile set relatively independently (3-6 months). They also don’t bother with the junior role title at these pay bandings.
I currently get about half an hour a week with my lead dev on sticking issues. In this new team, I would be one of ten javascripters, working towards best practices, TDD etc. This is absolutely the realm I want to specialise in, at the first stage of my career.
I said I would stay with my current employer, before the counter counter move. Now I am full of doubt.
Has anyone landed in teams like this, only to find they didn’t offer increased learning at all? If that was a high risk for me, I wouldnt take it, despite the offer of more cash. I’d sooner get more skilled in the stuff I have been working in at my current role.
Pretty amazing how much amazing life experiences can cause anxiety. Never been in the middle of a bidding war before...13 -
Do, as many of you fellow developers, I have a social pressure to do something with my life over the weekends, instead of geeking out or reading new best practices ..
So I finally decided to go see the Irish Curragh regatta organized by the Irish in Barcelona association ..
Nice and sunny Barcelona, besides the sea ..
Came home after three hours with a sun stroke, lobster face, completely blind despite the sun glasses, and with a terrible dizziness .. on my bike!
And they wonder why we spend time with our computers at home ..1 -
How do you guys cope with being a junior dev and constantly receiving criticism about your work from your team leader?
I started working as a developer quite late: I did go to college in my early years but I was lazy at the time, so I didn't complete it. So I worked about ten years in a totally different industry, but I always wanted to go back to being a developer.
I've managed to do it when I was 34: I was a web developer in a small company and I was pretty much the only dev, except for an older dude who only knew Visual Basic 6 and kept programming things with it (in 2020ish!). In those years I always felt like a was way ahead of my colleague, and my efforts to apply best practices were not so welcome.
I eventually got tired of that situation, because I was feeling like wasting my time: I was already quite old and stuck in a jurassic environment
Then, I landed in a new company. Completely different environment: they use modern frameworks, TDD, static analysis, code reviews and stuff, and they do one to one meetings every two weeks. From the beginning, I felt like I was the dinosaur there: they were way ahead of me and I struggled to keep the pace. I immediately said that to my manager, but he was like "don't worry, it's just the start. I'm sure you will do great". Except I did not. I started collecting criticism about my work and I keep receiving it. When I tell my manager that constant criticism is not good for my self esteem, he replies "I can understand, but you have to manage it and I cannot avoid to correct you when you make mistakes". But it became really difficult for me to receive constant criticism, I very rarely have a compliment or a good word about what I do.
Is it just me? Should I finally grow up now that I am almost 40 and accept that working always sucks and you cannot be satisfied of what you do? Or am I simply a bad developer and should look for another job?
I am starting to get tired of this situation.18 -
Hey. Can I borrow your ears for 5 minutes?
Since I've been out of school, I've often felt that even though I've learned how to code, the education went into a totally direction than the one I want to go. Of course a school can't teach you everything perfectly, but having almost no experience in frontend (mind you we learned the BAREST basics) just makes me feel entirely empty in that regard stepping up to a company. I've been pretty loaded during school, since I was struggling with a lot of things so I couldn't really find myself pursueing the direction of coding frontend apps being fun. I needed the little time I had to blow off steam playing games etc.
So the few things I know are all self taught, but I was never given a hand been shown best practices or solid advice where to look. Sitting down now at my pc trying to learn ReactJS for example feels incredibly draining and difficult, since we've never done JS in school ONCE. All the C# experience barely helps, since with ES6 being rolled out parallel to "normal" JS it's even harder to me to connect the lego blocks that is frontend development. Since many best practices are applied to ES6, I can barely even tell what previous practice they are replacing, making the entire picture even more spongy. In one sentence it's very overwhelming.
I've thought I'd apply maybe as a UX/UI Designer since I've got a great visual sense (confirmed countlessly by many, friends and strangers alike) maybe contributing to the frontend part that way. But as I was applying I've noticed that chances are seemingly pretty low to get accepted since it seems you've got zero reputition if you don't have a degree in Design.
It breaks me apart. I could probably apply as a frontend developer, but I am not sure if I would be happy doing that on the long run. Since just fucking around in Photoshop creating things seems like no effort and brings me joy, as compared to coding out lines for example.
I wanted to make money after school, improve on myself and my quality of life since I've drained that entirely for the sake of my education. Not spiral into another couple years just to eventually maybe get in the direction I want to.
On the flipside going into frontend dev with 0 skills, 0 experience, but being expected to have 2 years of hands on experience with the newest frameworks makes me feel empty and worthless.
I often hand out advice to other people on devRant, but this is the one time where I need some. Desperately. I feel shattered inside, getting out of bed in the morning has no incentive to me since I'll just feel like shit all day, watching YouTube to cheer me up temporarily, only to feel immense remorse not spending the day learning or improving on myself. Barely anything brings me joy. I don't wanna call myself depressive, but maybe I am just dodging the term and I am exactly that.
Thanks If you've read through this monstrosity of a rant/story. I'd be glad if you'd be so kind to give me a different take on my situation or a new perspective.
I am stepping on the spot and I am slowly dying inside because of it.
It dreads me to say it, but I need help.12 -
I really need to get out of this clusterfuck of a mess I got into, A.K.A. our website projects. Now, it feels more and more like all these problems and issues we're having are all my fault.
Here's the thing: I had 0 experience on web development before I got this job. I started as an intern, expecting to learn all the right practices and techniques on building websites. Nope. What happened was I was thrown in this big project, responsible for almost every functionality that it was supposed to have.
A junior-level guy. Doing a huge project on his own. Hell, I'm probably even lower than a junior. But here I am, pigeonholed in this shittard. My boss even said to me, "you know more about the website than I do." Fucking hell. He's not even aware of the clusterfucks I've done on the codebase because, fuck, what did I know? I don't even get feedbacks about my code. I don't fucking know if I'm doing all of these shit right. I don't know if this function is supposed to be here, or if it's supposed to behave that way, and, shit, the concept of test-driven development is probably something my boss has never heard of before.
So right now, I'm a bit obsessed with web development best practices, and how to write clean, maintainable code. I would probably get more learning from going to meetups than I will ever have from this place.
This has been a very shitty start of my career. I hope a much better learning experience will be plentiful at my next job (if anyone's willing to hire me). It would be like starting all over again. Sorry for the long post. I would like to put this as a blog post, but it's probably not a good idea, specially since I'm looking for a new job. Thank God for devRant.2 -
Hi all! I am an iOS developer and I've been using Firebase as my 'online storage'. I want to be a more full stack dev and creating my own APIs. I want to start to learn Java or .NET APIs (uuh an iOS dev speaking about .NET :P). Anyone that can recommend good courses or tutorials and best practices? I have been learning Java and .NET in college, but that is about 4 years sgo.. Thanks in advance!11
-
What's the best hyperlocal weather app for Android?
https://techcrunch.com/2020/03/...
The one I use is disappearing... Thanks to Apple...
I own Apple and it's been a huge money maker but.... I use Android and now I think they should be sued for monopolistic practices....6 -
* Start maintaining/upgrading new project at work
* Read book on best practices for the framework
* quickly realise all the "don't do this" parts of the examples in the book is EXACTLY how everything in the project is done
* cry self to sleep -
Have a question about my career:
So far my career out of uni has been like this:
8 months in first place working as C# .NET dev, creating native desktop apps for windows. job was shitty, was not getting any best practices skills so I left.
12 months in 2nd place working as android dev in a startup. was working all alone and had to rebuilt my app up to 5-6 times to learn best practices. startup didnt care about android app at all so I left and now doing just some small freelance work for them.
3 months in new startup as android dev.Today I was told that its decided to focus on iOS and do all marketing (also uplift of new design) only on iOS. basically for next 3-4 months they don't plan to do much on android side. they saw that I showed some interest in backend and now they are asking me to talk with two other senior guys about starting with some small tasks for me on backend.
Our backend is mainly using python. Also backend guys will be pretty busy for next few months because they will have to deliver many new features in next few upcoming months. I've talked with one of them and he said that this is a bad idea to force frontend to start working on backend. However I feel that he's sort of gateekeping and probably just doesn't want to help me with getting up to speed.
In my defense, my knowledge doesn't end with C# .NET desktop apps and native mobile apps for android.
I have hobbie projects (gameservers) where I worked on websites (php,html,css,javascript,mysql) and also was taking care of a java based gameserver which is hosted in a linux vps.
Also I've had a small hosting "company" where with available tools I've managed to automate VPS(virtual private server) ordering, web hosting ordering and domain ordering. Basically I owned a dedicated server and did everything using whmcs, cpanel and proxmox virtualization.
I trust myself in learning this backend stuff and doing whats required, however I learned everything by myself and I won't follow all of these best practices.
Should I accept more responsibility on backend or should I continue focusing on android?7 -
I had this amazing boss. He had 25 years of experience in the sector covered by our software, an ERP. He knew how to be a programmer, a boss, a sales manager, a support person.
I learned most of the best practices from him: do not shout in the office, it makes impossible to work. Don't hide something to your coworkers, nobody was trusting him. Be clear with your clients, his subtle mind tricks pissed off a lot of clients. Your client needs to see an economic advantage in your offers, trying to sell gold priced shit is not a good way to stay in the market. The list could go on and on and on.
I learned what happens when you do everything in the wrong way, and I will never forget.3 -
So, we have a chat AIs that can do some basic code regurgitation and can assemble some really basic programs.
What are the chances that business rules and best practices are actually simpler in concept? Could we create an AI that can actually replace managers?
We have heard of people automating a lot of management tasks on this platform. The next step is replacing leads/managers.13 -
So we have a confluence page all about best practices (there’s not even a lot in it) but when you check the repository, most rules are not followed 😭4
-
Rant portion:
Fuck me, there's not a ton of great resources for Lua. I have the book, and it's actually fucking incredible, but as soon as I have a question which I would usually Google, either it's a SO question that almost hits the mark (but absolutely does not answer my initial question) or a mailing list that DOES answer my question but holy FUCK it's difficult to read!
I 100% recommend the Lua book, though. It's remarkably helpful and covers just about every little detail of the language and it's corresponding c API, and even some of how Lua works behind the scenes.
Non-rant portion:
Finished up the first version of my library and now I'm binding it to Lua and this time around I'm using all the best practices including setting and checking metatables so that Lua can't segfault. It's going great, I properly learned about the Lua stack, and I feel good. Cross-platform double-buffered command line via a scripting language... What a way to enter 2020. Everything went so smooth that I got to 3am before I realized what even happened.1 -
Questions/best practises for git?
For example:
- use present tense in commit messages. (why though?)
A friend of mine also starts his commit messages with either [Task] or [Cleanup]. Useful for finding Commits in Gitlab etc, because only the first line is shown from the message.
Also, one teacher recommended the usage of branches and the other didn't because of alot of potential merge conflicts when working in a Team or a larger Collaboration. What are your thoughts?
Sorry for the messy post, have a hangover4 -
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 -
me :: Musician a, Developer b => a -> b
This week I reached the end of a long journey and the start of the next one!
When I signed up here I shared a rant about where I was at the time:
https://devrant.com/rants/1279742/...
This week I accepted a decent salaried role as the leading Data Scientist in a well funded nonprofit organisation based close to my home! I’ll be the only technical professional in software development or analytics in the organisation and it’s a new role, so I imagine there’ll be a reasonable degree of flexibility in figuring things out and implementing them.
Have spent the last week (and will continue until my start date) building up a realistic collection of best practices while brushing up on tools they use (as well as tools and methodologies that I plan to bring with me).
After over a decade working as a self employed freelance, I’m looking forward to them change and to building out on different areas of my skillset!1 -
Today a senior developer and a colleague started looking into my code reviews and started commenting best practices that were never used in the team.
Got my chance back at the senior developer's code when he raised a code review, which had none of the best practices.
Gave back a good set of review comments to him :D
Karma is a boomerang :)2 -
I don't care about market cap. Stick your hype-driven business practices up your ass. Infinite growth doesn't exist. I won't read your fucking books and attend your fucking bootcamps and MBAs. You don't have a business model. Selling data is not a business model. Fuck your quick-flip venture capital schemes, and especially fuck your “ethics”.
I will be the first alt-tech CEO. I only care about revenue. The real money, not capitalization bubble vaporware. You don't need a huge fleet of engineers if you're smart about your technology, know how to do architecture, and you're not a feature creep. You don't need venture capital if you don't need a huge fleet of engineers. You don't need to sell data if you don't need venture capital. See? See the pattern here?
My experience allows me to build products on entirely my own. I am fully aware of the limitations of being alone, and they only inspire lean thinking and great architectural decisions. If you know throwing capacity at a problem is not an option, you start thinking differently. And if you don't need to hire anyone, it is very easy to turn a profit and make it sustainable.
If you don't follow the path of tech vaporware, you won't have the problems of tech vaporware, namely distrust of your user base, shitty updates that break everything, and of course “oops, they raised capital, time to leave before things go south”.
A friend of mine went the path I'm talking about, developed a product over the course of four years all alone, reached $10k MRR and sold for $0.8M. But I won't sell. I only care about revenue. If I get to $10k MRR, I will most likely stop doing new features and focus on fixing all the bugs there are and improving performance. This and security patches. Maybe an occasional facelift. That's it. Some products are valued because they don't change, like Sublime Text. The utility tool you can rely on. This is my scheme, this is what I want to do in life. A best-kept secret.
Imagine 100 million users that hate my product but use it because there are no alternatives, 100 people in data enrichment department alone, a billion dollars of evaluation (without being profitable), 10 million twitter followers, and ten VC firms telling me what to do and what data to sell.
Fuck that. I'd rather have one thousand loyal customers and $10k MRR. I'm different, some call it a mental illness, but the bottom line is, my goals are beyond their understanding. They call me crazy. I won't say it was never about the money, of course it was, but inflating your evaluation is not “money”. But the only thing they have is their terrible hustle culture lives and some VC street wisdom, meanwhile I HAVE products, it is on record on my PH. I have POTDs, I have a fucking Golden Kitty nomination on health and fitness for a product I made in one day. Fuck you.6 -
To the web devs here: What resources would you recommend for catching up a little to the web development state of the art? The last time I have designed anything HTML5/CSS3 were just being introduced. So my knowledge is pretty outdated, but I'm note starting from zero. I'm looking for some best practices and something framework-agnostic would be nice. Unless you say “Dude it's 2017, nobody even boils water without using *.js”, of course.9
-
I am not sure if this is the best place for it, but let's go:
I am 35 years old and I always worked in the localization industry. I really love to code and I always developed small tools and scripts to help me and others at work, but now the company is going bad and it has the chance to close.
I was reckon if it would be a good idea to give development a try, besides my age and the lack of experience in a real development place. I am not even sure if I use programming good practices, as I always developed by myself.
Do you have any opinion about it?
Thank you so much!4 -
I really like my position as the head of my department. But I am most definitely hitting walls(and in some way breaking them) concerning the way the CTO(my direct boss) deals with a lot of the things that his management team wants to do.
For example, the previous manager could only do so much in terms of directing a software team since she did not have a formal background in computer science or engineering, thus the developers that she had would tell her the different deals with many things and she would have to take their word for it. Nothing necessarily bad with this, but it just meant that a lot of things could have gone smoother had she the knowledge to fix said items. Whenever she would try to use resources(dev time or such) the CTO will resort to the all powerful manthra of "if it ain't broke don't fix it!".
but it was about more than fixing things that were breaking, our internal services and admin boards were built using all of the WRONG proper development practices, it feels as if they took the book of best practices.....and said fuck it and did whatever the fuck they wanted. It is the worst PHP/Java/JS code I have ever seen in my entire life and the reason why even though I do not concur with it I will always understand the dislike from other developers. Our services look like something that came out from the 90s, no style, no engineering concepts in place, no versioning no testing NADA zip(these are all web based services)
One in particular, it was an admin board used internally to let students evaluate their professors, the entire app is shit, and it was broken, for some UNGODLY reason, the original dev decided to use some weird external libraries he got from some blog somewhere and as such something that would take about 5 or 6 files is now a mess with over 200 php/js files all over the fucking place. The CTO insisted on fixing them, they were all broken, and I continuously told him that redesigning the application would be faster.
Mofo fought me on it, and in the end I did what I wanted and rebuilt the app.
It took me one afternoon. One fucking afternoon, over possibly 2 weeks of fixing it.
See, I am not one to just do whatever he pleases, but I am firm in my belief that if I know a better way I will do it and save precious time. The dude had to agree with me on this and promised to consider this shit on other items that will undoubtedly come up. He was lying out of his ass but oh well..........
W3 -
Anaconda. Quite fitting a name to something that fucks up python environments so thoroughly. Ironic too, given that it was meant to simplify. Anaconda doesn't give a shit about the python that came with the distro. And all packages installed with pip are only visible to anacondas python. Not a single note of caution during installation. Or a best practices guide for the newbie. Just chaos. Utter chaos. The price of being a noob had been paid.8
-
<<prev. #wk235 advices>>
~ Study the Error log deeply, Google each line if needed. Don't give up.
~ Learn by doing. Don't just read/watch.
~ Practice breaking down the problem statement first in different components and hierarchies. Don't jump into coding right away.
~ Write some, review some. Don't put off review for later.
~ Even if you don't exactly follow the best security practices - always ensure that your program is safe for use. Especially for user-inputs, etc, pay attention.
~ Never distribute code with passwords/keys written in it.
~ Don't hard code stuff, use Config file, environment variables, etc.
~ Try to automate repetitive stuff like build and deploy etc
~ Save and backup you code.
~ No one knows everything, also, today's knowledge gets outdated tomorrow. Continuous learning is synonymous with this field.
<<next #wk235 advices>>1 -
Hey, you, my new colleague, you are annoying. I have reviewed your PR and left about 50 comments on your mess. I even explained to you why half of your code is shit in a very polite way. I have explained why you have to rewrite that and even how to do that in the best way possible. Result? Half of the code is gone, it works as before but without the overhead.
Now you're annoying cuz I have to go again on conventions and best practices. I totally understand that you've been doing it differently and throwing buzz words at me won't help. Just stop and do it as it's needed in this project, don't reinvent the wheel only because you can.
You know what? Fuck it! I'll approve all your PRs, anyway I am leaving soon. There is no benefit for me to teach you stuff. You're one of those guys that I voted against in interviewing process. But guess what? My manager decided to hire you anyway! Ha! I rarely vote NO and you were a one of those...
Your confidence doesn't impress me. That works on people that have no clue on what you are doing. Your just average at best, not a superstar.
Fuck it, you're on your own now!1 -
I maintain two websites for my employer. The head of my department and my manager decided it’s best for me to focus my time on website A and website B should be replatformed to an out of the box solution. For website B, we’d work with our IT team to find something suitable.
I did some research and came up with a list of possible solutions. IT looked into solutions that would work with the org’s best practices for tech. A few sales pitches and demos were arranged with the top choices.
Stakeholder for website B is really digging in her heels. SH keeps badgering our Product Manager and IT about why can’t we just build in-house. The out of box solutions don’t do everything she wants.
PM tells SH that no solution will be perfect. PM also reminds SH that comparable institutions just use Google sheets/forms and do everything by hand. So choose an out of the box platform or use Google forms.
Plus, the list of improvements the SH wanted for website B would take at least a year if I did them on my own and there’s no budget to out source the labor. That’s not counting bring the code up to best practices or improving database efficiency.
I’m glad I don’t have to work with Stakeholder anymore. SH and her department were just a pain. They want a lot of custom tech solutions but they freak out at the smallest talk about tech issues. -
The senior engineer on my project is working with Kafka. Completely unaware of the possibility of rescheduling failed messages with a fixed delay he was trying to put a Thread.sleep somewhere in the consumer to emulate the feature.
Sometime i would like to burst out crying because I feel like I'm the only one who care about writing good code and using best practices.
The more in the industry the more I realise titles don't matters. Everything is shit, everything...5 -
Load tests:
I'm used to do load tests in Visual Studio where it gives which line is exactly your bottleneck. But now I'm using VS Code (visual studio requires enterprise license for load tests :\ no longer have one)
Anyways long story short, what are the best practices for load tests? For me what I'm testing is how much can a given hardware specs handle and when test fails I go back and check if code can be optimized, is this the correct way to do this?7 -
was developing a custom website for a friend, coz i primised him id do so.
but when i actually developed it i felt lazy midway so i made one table store json strings and used it for every type of data he has on his website.
everything works fine and fast, its nothing he would notice but...
am I going to hell?9 -
Every once in a while I start to question my development principles and start to read articles, especially software philosophical, and try to improve my practices, aswell as find several trade-offs between my own best practices.
-
Good friend, Jay. Helped level up my understanding over the years, JS patterns, using APIs, best practices, etc.
Also helped kill off anxiety about the community by proving we work together and share knowledge.
Many thanks and I hope everyone has a Jay in their life. -
Please be gentle, first rant. :)
Can you please provide me with literature recommendations:
1. Books about software architeccture, design patterns and best practices in general.
2. "Relaxation" books related to developer's life experiences, something like "The Phoenix Project" (https://amazon.com/Phoenix-Project-...). I really enjoyed that. :)
I am aware that this is not best use of rants, but I would really like to hear this community recommendations. Thanks in advance. :)9 -
"I would say my biggest pet peeve related to the industry would be people focusing on technology instead of design, standards instead of users, and validation rather than innovation. Web standards and best practices are noble goals, but all too often in our community people forget they are a means to an end, not the end itself." - Jeff Croft
-
Project is dammed, is broken, we complain about it for almost 3 months, daily, code is old and client is full of bad practices and is always searching for a way to blame us for his failure.
Administration decides that best solution is motivate meditation techniques on dev team1 -
Tasked with changing a couple of captions on a form. Literly as simple as 'Enter product' to 'Enter item' kind of change.
Reported in our morning stand up the changes where complete, tested and deployed (maybe 15 minutes worth of work including code check out/in, copying the file, etc)
DevA: "Ha ha...that's why you put those strings in resource files."
DevB: "No kidding. Not sure when we'll ever start doing best practices around here."
It was all I could do from saying "What the -bleep-!? That is the stupidest thing I've ever heard." -
I'm torn on dev bootcamps.
On one hand, I learn the most in hands-on direct tinkering and bootcamps tend to exude this with well-trained instructors following best practices.
On the other hand, the short timeline means corners are cut and an overwhelming amount of material is dropped all at once leading to a leaky retention vessel at the end.
I prefer ramping up learning over a period of time to gain experience than a fire hose approach.1 -
Co worker who makes the sliders/ banners for the site asks how to get his form input beside on the right side... asks all three people in his department... worker with "20 years experience" says they should use "!important"
😳Ahhh best practice says DO IT RIGHT!1 -
A reality that most people are not ready to accept, is that if you work too hard or work too smart as a freelancer, you're going to hurt yourself financially.
I have given my clients amazing code which runs fast, is optimised, and is readable to the point where you can hire a fresher to maintain it.
Doing that has resulted in stable systems but those clients walked away from me and have never come back, means no more money.
But some of the companies I have worked for, I have seen some retarded-ass devs barely able to make a system run and write code, have retained clients for years. They pretty much have a "submit ticket resolve ticket" kinda mechanism.
It's situations like these where it makes me question, what's the point of learning best practices if I'm gonna get hurt financially for it.5 -
ChatGPT is so much better than Google:
instead of wasting my time by linking to unhelpful / outdated / unrelated StackOverflow resources, it tells me to do the work by myself right away:
> To ensure consistent pseudo-element width across different browsers, including Safari, you can follow these steps: [...]
> (some basic HTML/CSS 101 seemingly quoted from a 2015 textbook)
>
> It's important to note that browser behavior might vary due to different rendering engines or versions. While following best practices helps achieve consistent results, you might still encounter small discrepancies. Cross-browser testing is always recommended to ensure your design looks consistent across different browsers, including Safari.
>
> For any specific issues you encounter in Safari, consider checking for known bugs or quirks that might affect pseudo-elements and their sizing. Online resources, developer forums, and documentation can provide valuable insights into Safari-specific behavior and workarounds.3 -
What are peoples thoughts on taking a sort of backwards step in their career in order to get more experience?
I took my current job as I thought it would be a stepping stone to go on and do more development work (it was my first dev role), but I’ve been here 4.5 years and I rarely do anything other than maybe fix a bug every now and then.
They mainly have me doing non-dev support type stuff, and they don’t use any best practices or anything like that, and I feel that I am falling behind where I should be experience wise.
I am doing a degree (distance learning with the Open University) so I am working on personal development but that’s not much help when I go to interviews.
Should I think about trying to go for junior jobs, rather than just developer jobs, and the pay cuts that may go with that, or should I just grind out leet code etc and keep booking interviews?6 -
I wanted some ideas on how to word an error message better, so I googled "error message best practices".
80% of the results were about form validation and not actual code breaking errors >:(
On the up-side, I now know that I must not say "No, Bad User!"3 -
Wish everyone could understand that it's not learning the programming language or the 'best practices' that makes you good it's understanding how things work together and how to mix them to create new things that do what you want is the real engineering2
-
How should you approach someone and tell them they have been an victim of social engineering without being mean?
I was at an security conference today and watched a lot of speaks, and I must say that the atmosphere and the people around made it even better.
Here is one takeaway:
Does the security of IT has to be this depressing most of the time, like there is so many IoT devices, services, websites and critical infrastructure that has security flaws and all we can do is watch for now and say we are all fucked. Then try to lead the industry to better practices, like owasp (duck it) . Stop accepting and using shitty answers from SO that has security flaws (why learn something a way that is wrong in the first place?).
We need more awareness about IT security overall, how can one developer know that certain technologies can have certain vulnerabilities such as XSS, XSRF and even SQL injection if there is no information about it in among all shitton tutorials, guides and SO answers in the first place?
Lighten up! Being sad and depressing about these issues is not the best way to approach this! We need to embrace all steps taken towards better security, even the smallest ones.
Check out OWASP if you are not familiar :
https://owasp.org/index.php/...
Thanks for reading. -
My first gig was with an MSP doing tech support and eventually some proper infrastructure design and mangement.
Regularly myself and colleagues would find reasons why we should be doing things 'this way' and how we're doing wrong by our customers by not following best practices. (Things like firmware upgrades on routers, switches, servers)
We regularly got shutdown, just told 'no, it's not to be touched if it isn't breaking'. This obviously got us pretty worked up and kinda devided us.
The thing is, It wasn't until my next gig that I sorta realised they were kinda right to shut us down. There was clearly a risk to reward equation we weren't thinking about as employees with no financial stake in the company.
In an enterprise setting, sure doing those kinds of upgrades is necessary, and normally you have a team full of experts and tools to help you do those tasks whilst also mitigating as much risk as possible.
So at the time it felt like a bad experience, but looking back now I realise that from a business perspective it wasn't practical for us to constantly risk breaking things just because 'i read somewhere that we should do this'.
I think to be successful as a developer, IT tech, systems engineer, it's really important to get to know the other departments of the business and how the work you do affects them.1 -
ok this may look like a lazy ass beginner crying out for spoon feeding( which it kinda is), but i want some real industrial training in non documented Android coding.
For last 2 years i have been reading tons of Android articles and documentation on "how to use this library", "how to add this feature", "what this function of this class does", but not much about how to use it efficiently, like the way its used in industry.
When I interned with a startup, all they wanted from me was to push new design changes, fix layout bugs and work as fastly as i could. I had no time to understand their core code, which had so many things that i could have learned : those mvp/mvvm design/architecture patterns, dependency injections, kotlin , coroutines, state management designs, data bindings, eventbuses and handling, and VIPER,RIBS (I mean, not everything was particularly in their code, i picked up a few keywords from here n there)... a lot of stuff that is used by many apps for their codebase.
I can read up these stuff by myself, but i always end up feeling bored coz frankly, i got no big/valuable project to implement it upon and feel excited about it. I feel that open source projects from OSS companies could be my window, but their chat spaces are also mostly empty to discuss/get some guidance.
I want some specific training about these. Can you guys provide any online/offline course/company training/books in this subject, the best practices?1 -
My face learning Android in class, when being answered with "I don't give a shit" after asking how to do the program with best practices.4
-
If there's one thing I hate about devs is definitely when they get too emotional about the reviews they receive.
Doing a thorough review always takes significant amount of time and energy. It's about ensuring high quality of code, about functionality and best practices, ... It's also about learning: I learn from the changes being reviewed while at the same time I also try to teach the author as much as possible, giving down to earth opinions.
It's never (or at least should never be) about attacking the author. There really is no reason why someone would spend all this time getting overly personal.
I used to start my responses with (lousy) apologies for being "harsh", but stopped doing this now that my team understands all of this. It also helped asking them to do the same with my changes. The look in their eyes when they find something is simply invaluable :).1 -
There is a fine line between idiomatic code and idiotic fucktard.
Don't use "best practices" as an excuse to write shitfuck code. -
What are the best practices, which helps you follow "Pomodoro technique" and avoid wasting your time in general?3
-
I once had to implement a program to process CSV files. One line would be one order, so I wrote a class with a static factory method (Java) instead of an ordinary constructor, because I needed to throw exceptions if something with the line was wrong (which now and then was the case: invalid product IDs, missing fields and the like). After I committed my changes (CVS was still common in those days), a coworker (let's call him Max) asked me what the hell I was doing there. He expected me to replace the code (perfectly working, by the way) with either an ordinary constructor or by implementing "the factory pattern properly". His rationale: "We don't have those kinds of things in our code base!" So I let him argue a bit, not finding any well substantiated reason for me to "fix" the code. So Max wanted to team up with another developer in our office (let's call him Rick), explained the "issue" to him. I just sat there and enjoyed, knowing that Rick would not really care. But as soon as Rick understood what I did, he walked over to the book shelf, picked "Effective Java" from it, opened the book at chapter 1 and said to Max: "Look, Josh Bloch suggests doing it exactly that way for the problem at hand!" Max kept on arguing for a while, because his "rationale" (see above) was not affected by the fact that the code was actually good. It just didn't appear in our code base before.
-
I swear these underclassmen are in a contest to see how many unique one letter variable names they can come up.1
-
How ofte are you guys absolutely sure that you've picked the right solution for a specific problem? As a novice programmer it bugs me to death that I sometimes don't know if I'm using a "best practice" solution4
-
Before I started working, I used to feel like I depended on documentation and the internet a little too much owing to ultra crappy long term memory. After spending some time at my internship going through code written by "professional developers" several years senior to me and trying to write unit tests for it (surprise: the code was in production without having underwent any sort of testing), I feel like the amount of time I spend online reading usage recommendations, alternates for optimisation, best practices for writing clean and descriptive code and all that is a lot more rewarding. Some bad things help you feel good about yourself.
-
!rant
TL;DR: Can anyone recommend or point at any resources which deal with best practices and software design for non-beginners?
I started out as a self-taught programmer 7 years ago when I was 15, now I'm computer science student at a university.
I'd consider myself pretty experienced when it comes to designing software as I already made lots of projects, from small things which can be done in a week, to a project which i worked on for more than a year. I don't have any problems with coming up with concepts for complex things. To give you an example I recently wrote a cache system for an android app I'm working on in my free time which can cache everything from REST responses to images on persistent storage combined with a memcache for even faster access to often accessed stuff all in a heavily multithreaded environment. I'd consider the system as solid. It uses a request pattern where everthing which needs to be done is represented by a CacheTask object which can be commited and all responses are packed into CacheResponse objects.
Now that you know what i mean by "non-beginner" lets get on to the problem:
In the last weeks I developed the feeling that I need to learn more. I need to learn more about designing and creating solid systems. The design phase is the most important part during development and I want to get it right for a lot bigger systems.
I already read a lot how other big systems are designed (android activity system and other things with the same scope) but I feel like I need to read something which deals with these things in a more general way.
Do you guys have any recommended readings on software design and best practices?3 -
I'm learning python for work and trying to see the best practices for python projects. Are there any open source projects of python that anyone can post?
-
!rant
Lately I've started caring more about code standards and best practices, but as I am self taught I have never really learned them.. could anybody here be as helpful as to offer some insight as to how I could get a nice intro to the subject?
My languages of focus at the moment: PHP, Java (android)2 -
Hey devRant! Long time no see
I recently landed a job as a java developer so that's amazing
Still getting my head around the company's codebase, and holy fuck its huge.
I was taught best oop practices and patterns in CS class, but seeing them implemented in such a huge project is kinda pisssing me off: every single thing in the code has dozens of classes that call and implement each other, I spend half my time spamming the "open declaration" shortcut in a futile attempt to understand how the pieces fit together.
Sometimes I wish they had stuck to implementing everything in a handful of files, instead of the jungle of nested packages and references I got :pensive:
Oh well at least most thing are documented :shrug:
I kinda get y some people despise java for being so verbose and forcing strict pop on the programmer XD4 -
I have been experimenting with Docker and reading articles on it. I was wondering what are best practices for building Docker images. Many articles have recommended that use Alpine base images because they're small and more secure.
Let us say that my application needed Postgre. What is the best approach?
1. Use the Alpine Dockerfile provided [here](https://github.com/docker-library/...) at Github. Download the file and go to where its located in my terminal and enter *"docker build"*
2. Creating a Dockerfile from scratch and using the command *"FROM postgre:10-alpine"*
3. Use the Alpine template file provided [here](https://github.com/docker-library/...)2 -
When Email and Time-sheet is everything in the workplace....
They literally don't care about your work or about successfully deploying project, if you don't have it in timesheet then you did nothing.
They want me to work on totally new things and expect to get the results within week and when I mention this is new and I can't even give estimates, they want that to be in an Email. Like WTF!! you even know this is fucking new thing that only I'm working on, there's no one to help me.
And I'm here learning,studying so I can solve these out of scope requirements with best practices.
And in the meantime they also want me to work one few other things .__.1 -
My dad used to write DbaseII programs for the Marines in the 80s (logistics officer, was moving the batallion’s local copy of maintenance records to digital in parallel with the mandatory file card system), then went on to manage enterprise-level software development programs as a government contractor when he got out, so he has a pretty good sense of what goes on in my small, 1-man web shop, and has even advised on best practices at times. Mom knows the basics from years of observation.
Recently my dad also became a business partner in a venture we’re working on launching, so for that particular project he has a *very*clear idea of what goes on and where things are at.2 -
I’m still waiting for Agile to just go away, it is the reason devs burn out and have miserable working lives. I started my career just before it got a hold and I remember those days being great - going to work was actually my hobby.
The worst places I’ve worked had strict Agile practices, the best has had the most loose.
Just go away already, Agile! You make so many devs lives miserable.10 -
Ok so Im doing a project about interpreters for college, and need people to answer questions for it.
If youve ever made an interpreter could you answer these, thanks!
1) how long have you been in the computing industry?
2) what got you into interpreters?
3) what do you think is the hardest part about creating an interpreter?
4) what do you think aare the best practices for creating an interpreter
5) do you think its best to create a language or create your own?9 -
I feel there aren't enough tutorials on "best practices" when it comes to combining server/client tooling in a monorepo.
Having done so this weekend, the tasks involved were:
* using graphql w/ express to serve requests and expose a "graphiql" ide instance
* differentiating build steps in prod vs. dev
* applying middleware in prod vs. dev
* working with a single heroku dyno
Still missing:
* hot reloading
* my general sense of direction -
It really grinds my gears when new hires just start adding themselves to every fucking slack channel and then start crapping up the channel history with irrelevant chatter.
Business Analysts and Project Managers do not need to be in #developers sending mock-ups to a UI/UX designer for one team, or posting an xkcd strip you found on the internet because you "got it" and you think you are proving that you are one of us by posting it there. This channel isn't a fucking club, its where ALL developers at this company across all teams share tools and practices for us to maintain consistency and best practices and to improve our craft, or to give a heads-up about vulnerabilities.
There is a specific channel for your role, and your project. You don't need to be everywhere and in every conversation. And for fuck's sake, PLEASE stop @someone adding people to these channels just because you think you saw something in there posted by someone else that they should see. You can just fucking share that message directly with that person, or in another channel.9 -
The 'suspended' state in UWP apps is a rather good UX implementation. Unfortunately most apps I came across don't use the best practices making the apps stutter coz no onlaunched or onsuspended was defined well. Windows never "shutting down" (unless restarted) means simple shutdown -> switched on doesn't terminate a lot of these apps and their background tasks never ended and everything goes yuck.
As much as I love Windows, they seriously need better Quality Control. -
Working full time as a "Protocol Engineer" for a big company, taking care of pretty much everything related to AS/NAS on the network layer (2G, 3G, 4G).
I hate it, but it pays really well.
On my free time, revising ML/DL stuff from Udacity's nano (finished it last year) while studying for the VR nano and keeping my coding skills fresh (basic to advanced structures, coding strategies, best practices and stuff).
Love it, but usually I pay a heavy price to keep my mind in place.
Sometimes I just wish to give everythin up and travel the world with my 2 bucks and just try to get some rest. :v
To all of you who go through this kind of stuff, how are you holding up?2 -
I've been wondering about renting a new VPS to get all my websites sorted out again. I am tired of shared hosting and I am able to manage it as I've been in the past.
With so many great people here, I was trying to put together some of the best practices and resources on how to handle the setup and configuration of a new machine, and I hope this post may help someone while trying to gather the best know-how in the comments. Don't be scared by the lengthy post, please.
The following tips are mainly from @Condor, @Noob, @Linuxxx and some other were gathered in the webz. Thanks for @Linux for recommending me Vultr VPS. I would appreciate further feedback from the community on how to improve this and/or change anything that may seem incorrect or should be done in better way.
1. Clean install CentOS 7 or Ubuntu (I am used to both, do you recommend more? Why?)
2. Install existing updates
3. Disable root login
4. Disable password for ssh
5. RSA key login with strong passwords/passphrases
6. Set correct locale and correct timezone (if different from default)
7. Close all ports
8. Disable and delete unneeded services
9. Install CSF
10. Install knockd (is it worth it at all? Isn't it security through obscurity?)
11. Install Fail2Ban (worth to install side by side with CSF? If not, why?)
12. Install ufw firewall (or keep with CSF/Fail2Ban? Why?)
13. Install rkhunter
14. Install anti-rootkit software (side by side with rkhunter?) (SELinux or AppArmor? Why?)
15. Enable Nginx/CSF rate limiting against SYN attacks
16. For a server to be public, is an IDS / IPS recommended? If so, which and why?
17. Log Injection Attacks in Application Layer - I should keep an eye on them. Is there any tool to help scanning?
If I want to have a server that serves multiple websites, would you add/change anything to the following?
18. Install Docker and manage separate instances with a Dockerfile powered base image with the following? Or should I keep all the servers in one main installation?
19. Install Nginx
20. Install PHP-FPM
21. Install PHP7
22. Install Memcached
23. Install MariaDB
24. Install phpMyAdmin (On specific port? Any recommendations here?)
I am sorry if this is somewhat lengthy, but I hope it may get better and be a good starting guide for a new server setup (eventually become a repo). Feel free to contribute in the comments.24 -
Just wondering on some agile best practices. Do you guys estimate efforts for defects? My PO is totally against it and says we deliver 5 to 7 pointers user stories + fix all the defects from previous sprint and current sprint, which I feel is over burdening the Dev team + in hurry to complete current sprint stories delivering poor quality work, which in turn become defects in the next sprint 😨 caught in this loop for a while now 😫4
-
What is the best way for an intermediate programmer to gain experience? The jobs I had before gave little to no feedback on my work other than was it done on time and does it work, I'm not confident enough in my knowledge to contribute to open source and I feel like I need guidance on best practices and such. Any suggestions are welcome.1
-
Does anyone know a good resource for learning how to use Git properly? I've learned piecemeal over the last year, but still run into stupid conflicts when transferring a project between machines that often requires me to redownload the repo and then download the changes from the dev server before starting again.
I'm an independent shop, so I don't have any senior devs or corporate policies to refer to for best practices.
Thanks in advance!2 -
Not sure if it's a rant but...
Less than a year as a professional software engineer and I'm at a small shop, like less than 10 of us.
I'm getting an overwhelming urge to break down these large methods we use into smaller more reasoned out methods we can just call.
Is this me being a n00b and trying to do things "right" or am I just trying to follow some best practices that have been overlooked?1 -
Javascript fatigue. Because the node scene is so new it doesn't have the established isms and methods of best practices so every few months the next best framework or library comes out promising to fix the problems we all face
-
I start a project that follows the best architecture, best practices, etc..
i suddenly stop working on it until 3 days pre-deadline. at which point I end up building the shittiest, hackiest, thing that works enough to give to the client on time -
Building a development department from the ground up is exhausting AF i mean all the research, trying to find best industrial standards to us, best practices, main tech stack to use, working on projects and trying not to get fired2
-
I am still in college and will be going for a job next year. I want to learn Java with all the best practices associated with it. What I would like to do is do a large enough project that would enable me to learn industry standards and use the best practices(effective java etc) in actual code.
So I would ask the devrant community to give some project ideas that would use these practices extensively. I don't know if I am making myself clear here, but any help would be appreciated.7 -
If got this code with the 20second sleep statement. And I am not really sure if it is a good idea to have it ...
def start_instance(self):
instance=self.ec2.Instance(self.iId)
instance.start()
while instance.state['Name'] != 'running':
sleep(5)
instance=self.ec2.Instance(self.iId)
sleep(20) #Let's sleep another 20 for the server to be really up
return instance.state
Can I have some advice regarding best practices?3 -
I was recently reading about memory leaks and profiling and found a really excellent article for people new to c# or best practices. It's a great article and well worth the read if you're still learning.
https://michaelscodingspot.com/find...6 -
When you saw the code of the whole product, and the best way to describe is the best example of a bad coding practices.
-
I find it insightful when people actually convert their rant into a knowledge bomb 💣💥😅 https://hackersandslackers.com/flas...
Finally getting to know clear advantages of "application factory" over how Flask apps are usually sugar-coated in scarce tutorials.
This article also points out one of the core problems with Flask documentation and, consequently, a public view on Flask's feature parity with Django.
Ever wondered why it's looked upon as not very strong rival to Django? That's documentation... again, we come to that 😔⌨️🗑 It stretches a lot of commentary and side notes, but forgets to mention best practices from community.rant overlooked patterns where are my blueprints monopoly of django poor documentation tutorial hell make factory great again flask python -
I get frustrated about the shitty work I'm forced to do to meet useless deadlines or follow meaningless ever changing consultant ideas.
I write a rant.
People in devrant suggest me best practices, solutions, tools, even technical steps.
I write this meta-devrant.
Devrant refuse to add more than 1 rant every 2 hours.
Fuck.1 -
UX and Game Design: "Keep It Simple" Is Stupid.
Presentation, Content, and Structure
Often when designing a UI, I stumble across blogs and articles that discuss it and focus far too much on the structure. Wordpress is terribly guilty of this and I see it fairly often in the game industry.
In web design you might use flexbox for a content-centric design and not worry too much about the layout, or css grid if structure seems important. But the broader question is why? Why is structure important and why is it wrong to focus on structure over content?
First, structure *comes* from content. Even where over many years, we've taken certain kinds of content, be they the various genres of games, or the sundry type of websites or apps, we've learned to take all the various patterns and categorize them, to extract the commonly repeating idioms into what we call structure.
But if you're experienced, and a fan of UI design in general, then I bet you that you can name a number of counter-examples, those that broke the mould, or broke the 'rules' of good design and still somehow worked. And that follows *because* structure is derived from content. This is the same reason idioms, patterns, and best practices change over time, as we codify exceptions into their "own" rules, new best practices emerge which mostly everyone follows, and then yet more exceptions break them. And so it goes.
So we see content before structure. But isn't there something to be said of style? Why yes, there is.
To read the full article, all 14k words of it, head over to medium for more:
https://swcs.medium.com/ux-and-game...5 -
PHP features the best of the wicked minds.
In this legacy but still used project just so to save the scourge opening tcp connection (I suppose) some guy wrapped js libs like jQuery, mootools in a script tag.. In individual php files. Then from a main.php include all those libraries. This produces a 2Mb file to send to the client and it's not even compressed. This guy never had any thought about maintenance.
This is one symptom of the problem with PHP that every company developed or have in-house undocumented unmaintained frameworks made by devs without any idea about testing, security and more.
Gosh in a previous work I've seen a PHP cron that used arguments passed to a switch case of 25 cases.
It took 19 years for the language to get a standard, meanwhile leaving the web landscape as a mess of bad coding practices, bad design practices, SQL injections, outdated tutorials and more. PHP is the example that it's not because it's used on almost all the web that it's good, it only means that's it's cheap! Cheap like asking a red neck to build you a car and he tows (deploy) it to your house with his own tow truck he built.
https://blog.codinghorror.com/codin... -
User: looking up anything in Google Help Center (support.google.com)
Google: (bunch of outdated or misleading answers)
Google: This question is locked and replying has been disabled.
To make it even worse: "Please note that this forum is run by volunteers known as Google Product Experts who are not Google employees and are merely advising on best practices and interpreting Google's policies based on their experience."
So Google uses the free work of volunteers dabbling workarounds for their bugs and misfeatures and, despite Google's reputation as a search engine, fails to present their end users helpful, up to date information.
Dear Google, why not just offer a paid version of your free service where users can actually expect quality of service? I remember the internet before Google and I can't wait for the internet after Google! Seriously!1 -
The guts, i mean WTF?
Tried learning client side storage and the lord of the best practices (google) were like "WebSQL deprecated,use Indexed DB instead".. said fine,im up for skill level-up
...
That was 2 years ago and WebSQL is fully supported upto Android 7.1 yet i dont see no buzz about indexedDB, user s i have to support are mostly on Android 5.0 (which has excellent support)...come on...pick a side and leave devs out of your batshit crazy politics. -
What's up with people being super cutthroat about best coding practices? In my experience it's not very well focused on in schools or especially for self taught devs, so what's with the critical attitude towards bad formatting or indenting, or perhaps less than par code organization? I get it's suboptimal but if someone doesn't know that it's wrong then what's with the fire and brimstone response? Not personal, just something I picked up on.3
-
I'm a python guy, and although I've worked with bash, there's always a discussion on which one is best for Linux automation.
When it comes to best security practices and clients being really concerned about it, is python that bad of a choice?27 -
What are the best practices when making a blogging website?
I'm creating an addition to my personal website to include a blog, and want to follow the best practices for it. Do I just save everything in a JSON? Or do I just make every entry a "page" in Gatsby/React? What have you all done? Would love to see some examples.4 -
Are there any best practices for binding C-librarys to a higher level language?
Like, regarding Concurrency-Safety, memory-safety, general fault-tolerance, glue-datastructures with low overhead?2 -
I was wondering - no one seems to be able to write good CSS, so what if we had tool to generate CSS visually.
E.g. imagine workflow of UI design tools inside chrome browser (while inspecting specific element) or your favourite editor.
Might actually build something like that. Would definitely help with problems I face. 🤷🏻
P.S. Best tools and practices for building extensions like this?35 -
Well guys I finally pulled trigger and got a new job, I start pretty soon. The thing is they want me to move across the country to carlsbad california. It's a sweet place to live and have seen it. I don't have to move for about 6 months though.
Does anyone know of some good best practices for moving across the country? Any reasonable companies that don't want 12000 dollars to do it? I have two cars and a 2 bedroom apartment.
Any suggestions on how to move the cars without driving across America and spending 3 days doing it?
Should I ship one car and make a vacation out of the destination travel?
Guess I should mention I'm moving from Houston
Thanks, any help is appreciated!2 -
I'm currently filled with equal parts of "curiosity" and "dread"..
About to go into a meeting arranged by Marketing to discuss the revamp of an old webapp. The terms "fresh new look" and "current day best practices" have been thrown around...
It's a Java 7 webapp deployed to Tomcat 7, with hard coded filesystem paths in JSP files.
Hmm.. maybe a little more "dread" than "curiosity", actually. 🤔5 -
I remember reading a book on HTML. I also remember reading about how to implement the towers of Hanoi, which I never attempted to this date. For a most of the time while I was learning I didn't have a computer, so I would still up in a friends room banging away at the keys. I have, however, implemented a lot of algorithms to date. I had to sit up countless nights trying to debug programs, I still do. I think programming is a life long learning situation. There are no off days. I have had situations where all I needed to do was add a missing colon or so. Greatest lesson learned know your syntax, APIs, frameworks etc. And above all follow best practices and move with the times.
-
Colleague is programming/scripting for over 5 years now (that I know of), even attended Udacity programming nano-degree.
Yet, he still writes code/scripts without a single function. How the hell can we start any programming best practices, clean code, or making steps towards TDD with this sort of mentality.
And it's not just him, it feels like a death by thousands cuts as the small things add up. I know we're Ops and not Devs and some other colleagues are trying really hard to get their work on the next level but I see no hope for the team as the whole.5 -
What are you supposed to do in an environment where your peers can't take criticism on the code and their approach to problem solving? They like to take shortcuts which end of making the software less maintainable. Is it worth to convince them to use best practices and be labeled as a bad guy who keeps on ranting about stuff they don't understand?2
-
Searching for simples game using canvas + vanilla ES6 and best practices.
Turn out it's very hard to find well-written javascript, so far most of the resources found are spaghetti code.
So if you know any good github page, blogs or tuto, feel free to share! Thanks :D2 -
Pretty sure my team isn't following best practices in terms of managing state with redux and react... We are already having to rewrite most of the project because they were mutating the state EVERYWHERE. Glad they got the css looking decent so they could hide behind that for a couple of months.7
-
Question about PR best practices.
I work for an analytics company and often have to implement new ETL steps. The data transformations in these steps can be complex and the major changes are usually 500+ lines up to around 2000 (the last one had 765 lines just for schemas).
What's the best way to split up the changes into multiple PRs, bearing in mind that it isnt guaranteed that a file won't change as the change is built up? -
Can anyone suggest any websites or resources for a breakdown of how to handle requests for features or handling bugs. Basically, I want some kind of background on best practices for managing the process of receiving a feature request/or bug report from a user to it reaching the dev team, to production/user acceptance testing.5
-
During my education there was this "Exception('Smoking hot girl')", and also very kind/sweet I used to help a lot, and tutor best practices on whatever project she would throw herself into.
(It should be noted that half of our teachers where incompetent, or flat out wrong, so we kinda had to use more than usual time helping other people)
But being a shy guy, and having the spine of a worm, I got stuck as a 'personal teacher' for a good period of time. Never had the guts to ask her out.
Not sure if it's selfish to focus your attention on one person because you liked the girl, that's a lot of time I could've used to help others. Or if I should be proud of what I did, I do believe she'd dropped out otherwise....
But nonetheless I did enjoy the time.1 -
Another Team: How do we do this thing? What aws role do we need?
Me: You do it like this, and I don't know the role by this guy does and all you have to do is ask him for the name of the role to assume.
AT: Ok, great.
AT: We're going to do it like this (wrong way, completely against best practices and completely against what the company architects dictate)
Me: No... thats the wrong way. Don't do it that way. That is bad, because (Reasons A, B, C). Do it the way I told you it should be done.
AT: Ok! I see thank you!
3 hrs later
AT schedules a meeting to go over options to do the thing ... including the WRONG WAY and they still haven't talked to That Guy to get the role name they need.1 -
What's your experience of SFDX ??? What are the issues which you faced ?? Any best practices or design patterns you created ??3
-
When you think you have a solid production build and your pride is brought to the ground after watching "best practices" videos...2
-
So turns out my manager wants me to do QA automation (not in Espresso btw) of my own items "because we're all in the same team". The weirdest thing is that she's obsessed with "best practices" about daily iteration work such as not starting to work on something until test planning is done (she gets CRAYZEEE about that). Violating one of the core development principles is out the window so I guess the question is am I in a good place to ask for a raise since I'm going to have dual roles?2
-
Don't have a manger/boss/mentor. Please give me an advice (coding/best practices, no 'life is to be lived' shit) which will help me in the long run.. Thank you..4
-
Got in a great company wherein I will be transformed from php to mean/mern stack. Improvise adapt overcome.
Will apply php best practices in the JS world.
After mean/mern, study react native or flutter. I like flutter but in my company there are only react native projects. Hhmm maybe because flutter is just new. Exciting future indeed 💪8 -
Trying to update and add to my skills. Let's try angular,. Visual Studio sucks for this. Hey look vs code, this looks great.... Install, add some recommended extensions... Cool. Add eslint, hey look at these errors awesome I'm getting somewhere. WTF dont use var use let.. Ok why... Hours later and one drink, okay that makes sense. Change code.....
Unexpected declaration wtf why. Switch to var... Dont use var..... Fuck me... Google, read, google, read...... Wtf why why why won't this fucking work... I just want to code something using best practices2 -
Mongoose: Callbacks VS Promises? Opinions and reasons please.
I'm trying to update array of data which involves couple queries.. Best practices?9 -
# ./symfony test:unit
Propel-Exception: Unable to execute DELTE ALL statement [...] Integrity constraint violation: 1451 Cannot delete or update a parent row: a foreign key constraint fails.
WHY ist a UNIT TEST reaching out to a REAL data base?
And who in their right mind would create a different data base schema for the tests?
This was with a clone of the real thing. Removing the FK results in double PK-errors...3 -
I guess these days I work with Golang, gRPC, and Kubernetes. I guess that's a dev stack. Or turning into one at the very least. The only thing that annoys me about this stack, is how different deployments for kubernetes are different for CSPs. The fact that setting up a kubernetes/Golang dev environment is take a lot of time and effort. And gRPC can be a pain in the ass to work with as well. Since it's fairly new in large scale enterprise use, finding best practices can be pretty hard, and everything is "feet in the fire" and "trial by error" when dealing with gRPC.
And Golang channels can get very hairy and complicated really really fast. As well as the context package in Golang. And Golang drama with package managers. I wish they would just settle on GoDeps or vgo and call it a day.
And for the love of God, ADD FUCKING GENERICS! Go code can be needlessly long and wordy. The alternative "struct function members" can be pretty clunky at times. -
Whenever I have to use anything new, I just follow the requirements - Googling through the whole way, rather than doing a course first. I get really insecure if someone asks whether 'Best Practices' has been used. Sometimes I wonder where would I be without Google and SO. I don't even wanna talk about Maths. I suck at that.1
-
Is there any sane front-end framework that I can choose to learn with this criteria:
- Good documentation(both for the setup abstract and practical guidance and framework hands-on)
- A lot of examples
- Description of best practices in it's context
- Currently maintained and developed
- Uses modern JS(if any) under the hood
- Covers well localization and globalization practices
Or am I dreaming? 🙄6 -
worst sin? 🤔
I guess not following any best practices, really bad formating, no comments, simply puting all code together just to make it work. I cry everytime I have to dig through my old codes 😫 such a shitty code, such a shitty programmer I was (am) 😔😓 -
{
-i won't follow logging practices
-i won't follow secure coding
-i won't leverage profiling n monitoring tools
-i won't reuse best practices
-i won't listen to thought leaders
-i will outsource writing UT
-i will outsource code quality checks
-i will outsource all testing
-i will ignore n overide CTO team
But I still want high stability, security n 4 9s availability. Just want it done. My team is best. Am a fast-track leadership program leader who never has or ever needs to cod. I just know ...
}
People I have to deal with every sprint. Site reliability is not easy ...
Teaching good code makes great products to morons, toughest ...
"Beginners mind needed"2 -
My best mentor was at my first tech job. I’m pretty sure he’s a big reason why I got the job. Not me specifically, but he advocated for hiring out of a bootcamp that represented minorities.
I was just out of bootcamp. I was very sure I was not prepared. No, this was imposter syndrome. As evidence, I was offered a lesser role than what I had interviewed for. I was pretty sure I was only hired because the company was trying to fill a diversity quota, they could get away with paying me less, and I would take training well.
He was assigned to be my mentor. He was very helpful with teaching me the team’s practices and overall tech practices. Mentoring is hard and he was great at it. He almost inspired me to mentor, but I know I’d be shit at it.
When I was job searching, he wrote my recommendation. He helped me in so many ways. -
It you are just starting to learn programming and you are telling everyone else where the best resources are... and what the best practices are... and just repeating everything you hear... and you have “imposter syndrome,” it’s because you are an imposter.
Just enjoy the learning process. It’s not going to end...
Stop being a liar - and you’ll stop feeling like people think you are lying.6 -
I started out self-taught and had little support or guidance in early positions, so I'd say being able to correctly understand what was being asked of me, or getting across my answers in a way that was easily understood.
I wouldn't know the right terminology, or wouldn't know the industry best practices. -
Any tips for onboarding a new joinee to a couple-month old Django back-end project and eventually take it over, as my tenure ends?
The newbie is from a theoretical CS background and only knows very basic Django.
It's gonna be fine, I know; I'm just not sure how to go about handing over the project since even with coding best practices and detailed comments and a README.md, there's still a lot of stuff happening in the background that I know only because I've worked with it daily.3 -
Do you guys have people in your office that just REFUSE to cooperate, or people who tell you they'll cooperate, but then they literally do anything except for cooperate?
I'm having trouble with the latter; I've been trying to get one of our less experienced members to work on our deployment. He's successfully configured at least 4 other deployments, and this one is the EXACT SAME as the other ones. The issue is that the person who is im control of this particular master console is someone higher up than me, but they don't know how to delegate. Thus everything that they touch becomes their own little pet project that no one else can dare touch, because they'll "mess it up" (not do it the right way according to his limited bible of best practices).
So now I'm stuck here, trying to convince HIS BOSS to get him access, but i even HE cant get him to do it! Now I'm sitting here waiting, getting more and more fed up with this guy, because like i said, it's his MO: im on two other projects with him, and they're all moving at a GLACIER'S pace.
Seriously, if you dont have the time for a project, but it on the backburner, dont start it and make your other projects suffer.6 -
I f**king hate you JS, I hate you.
I beg our vast developer community, please replace this sh*t, or else
to Microsoft, let the devs access GitHub copilot for free. I don't want my best coding practices to fade away bcuz of this sh*t.1 -
Approx. 24 hours ago I proceeded to use MEGA NZ to download a file It's something I've done before. I have an account with them.
This is part of the email I received from MEGA NZ following the dowload: "
zemenwambuis2015@gmail.com
YOUR MEGA ACCOUNT HAS BEEN LOCKED FOR YOUR SAFETY; WE SUSPECT THAT YOU ARE USING THE SAME PASSWORD FOR YOUR MEGA ACCOUNT AS FOR OTHER SERVICES, AND THAT AT LEAST ONE OF THESE OTHER SERVICES HAS SUFFERED A DATA BREACH.
While MEGA remains secure, many big players have suffered a data breach (e.g. yahoo.com, dropbox.com, linkedin.com, adobe.com, myspace.com, tumblr.com, last.fm, snapchat.com, ashleymadison.com - check haveibeenpwned.com/PwnedWebsites for details), exposing millions of users who have used the same password on multiple services to credential stuffers (https://en.wikipedia.org/wiki/...). Your password leaked and is now being used by bad actors to log into your accounts, including, but not limited to, your MEGA account.
To unlock your MEGA account, please follow the link below. You will be required to change your account password - please use a strong password that you have not used anywhere else. We also recommend you change the passwords you have used on other services to strong, unique passwords. Do not ever reuse a password.
Verify my email
Didn’t work? Copy the link below into your web browser:
https://mega.nz//...
To prevent this from happening in the future, use a strong and unique password. Please also make sure you do not lose your password, otherwise you will lose access to your data; MEGA strongly recommends the use of a password manager. For more info on best security practices see: https://mega.nz/security
Best regards,
— Team MEGA
Mega Limited 2020."
Who in their right mind is going to believe something like that that's worded so poorly.
Can anybody shed some light on this latest bit of MEGA's fuckery?
Thank you very much.4 -
My “seniors” have a limited understanding of exceptions and it’s driving me nuts, they try to tell me their half baked ideas about best practices when most of their code is just wrapped in a general exception with a log statement.
-
Want do you think about the idea that if the world of development does not develop best practices and standards that governments will see it as a threat and try to regulate standards? It is something Bob Martin talks about.
-
I hate working with Indians!!!! They are chaotic, their code is a pile of mess, and their mouth full of best practices! It's a nightmare!10
-
What's a good way to learn springboot development? I know the fundamentals of java as a language but never used springboot, and I recently got an internshIp that uses it.
Also, where would I go to learn more about proper best coding practices?
Thanks everyone!6 -
I got my first developer job three years ago. I’ve always had a great eye for detail, and getting things done while following best practices. I learned that a few years ago from typography, which I think is a fascinating subject, which has a lot of shared ideas with software development.
In my first job, I immediately took a lot more responsibility than what I was assigned to. This job was as a React Developer, but I quickly got into backend development and set up kubernetes clusters, CI/CD.
Looking back, this was to me quite an achievement, considering I had never done anything even remotely close to it.
I did however, work my ass off. 18 hours work days without telling my boss, so only getting paid for 8. Plus I worked weekends.
I did love it. After a while, I got promotes to Senior Developer, and got responsibility for everything technical. I tried asking for help, but everybody else was either a student, or working purely front-end or app-development. Meanwhile, I was Devops, API-design, backend, Ci/CD, handling remote installations (all our customers are Airgapped), customer support, front-end and occasionally app-development when the app-developers could not handle their shit. Basically, I was the goto-guy for every problem, every feature, every fix. I don’t say this to brag.
I recently quit my job, started working as a consultant, because I almost doubled my pay. However the new job is boring as shit. I’m now an overpaid React Developer. And I really hate React. Not because it is shit, but simply because it is boring.
I’m thinking of going back to my old job. It was a lot of work, but it was really interesting. However, after I quit, they have changed their whole stack. No more Golang, Containers, Kubernetes, webRTC and other fun new technologies. Now, it is just plain, PHP without any dependecies. It is both boring, and idiotic. So I’m thinking of just quitting. Either doing some personal projects like game-development. I dont know. -
In Website Penetration Testing , It's actually a war between Who knows best about the services and practices the other person has implemented.
-
There's no one correct way to get better. As with any skill, practice is one of the best ways to hone those skills. Various methods for that. Researching best practices, repetition, personal projects, professional development classes, online resources like codewars, codecademy, learn _ the hard way, etc