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 - "time complexity"
-
Conversation today...
Guy: "Hey I need a real quick script to pull some values out of an XML document...is that possible?"
Me: "Uh...yeah that's pretty simple if that's all it has to do."
Guy: "Ok excellent I'll send you some files and documentation."
Me: "Ok so is this like a one time use thing or do you need to parse multiple of these?"
Guy: "Actually it needs to run all the time, on this specific PC, watch directories for any files that are added, then generate a XLSX files of the values, and also log information to a database. Etc"
Me: "Oh that adds quite a bit of complexity from what you originally said. It's going to take more time."
Guy: "But you said it was easy."
Well fuck you...12 -
Not mine, found this on Reddit, still a good read
========
I work in IT as a lead developer, as in I run the department. One of my team leads is female, let's call her Ripley. She is young, smart, and a great dev.
Today she met with a new customer to discuss a big project. Project management sent a male project manager (Hicks).
It started perfectly with Customer asking Ripley for coffee. He's informed about her status and mutters something like an apology. He is visibly unhappy.
He then proceeds to ask Hicks technical questions despite having been told that Ripley will answer all the technical stuff. Ripley tries to answer questions. Customer ignores Ripley and continues talking to Hicks.
Hicks tells him politely that Ripley is the one to talk to, since he is not a dev and unable to help him. Ripley tries again to explain stuff.
Customer gets angry and demands another developer, since Ripley is "obviously far too young for a project of this complexity". Ripley rolls her eyes and leaves. Not the first time this happens.
Hicks smoothes the waves and tells the customer that the senior lead developer will personally answer all his questions. Customer is satisfied.
I walk in and calmly introduce myself.
The customer - now far less satisfied - was forced to discuss all his questions with yours truly, the 47 year old female IT nerd. I was very professional, friendly, and businesslike, he was visibly uncomfortable and irritated by the situation.
It's petty and stupid, but man, it felt great watching his face fall when I entered. I've been in Ripley's shoes far too often and today I heard 23 old me cheering me on.
Ripley loved it as well. She made sure to smile extra brightly at customer when she walked past the meeting room on her way to the coffee machine.
======
https://reddit.com/r/...18 -
Team Lead: Anyone has any concern on their tasks? I'll see what I can do to help.
Me: Yeah I'm afraid I would not be able to finish my task on time because of its complexity.
Team Lead: Try harder.
What's the point of asking?11 -
So i've been a dev manager for a little while now. Thought i'd take some time to disambiguate some job titles to let everyone know what they might be in for when joining / moving around a big org.
Title: Senior Software Engineer
Background:
- Technical
- Clever
- Typically has years experience building what management are trying to build
Responsibilities:
- Building new features
- Writing code
- Code review
- Offering advice to product manag......OH NO YOU DON'T CODE MONKEY, BACK TO WORK!
Title: Dev Manager
Background:
- Technical
- Former/current programmer
- knows his/her way around a codebase.
Responsibilities:
- Recruiting / interviewing new staff
- Keeping the team focused and delivering tasks
- Architecture decisions
- Lying about complexity of architecture decisions to ensure team gets the actual time they need
- Lying about feature estimations to ensure team gets to work on critical technical improvements that were cancelled / de-prioritised
- Explaining to hire-ups why we can't "Just do it quicker"
- Explaining to senior engineers why the product manager declined their meeting request
Title: Product / Product Manager
Background:
- Nothing relevant to the industry or product line what so ever
- Found the correct building on the day of the interview
- Has once opened an Excel spreadsheet and successfully saved it to a desktop
Responsibilities:
- Making every key decision about every feature available in the app
- Learning to ignore that inner voice we like to call "Common sense"
- Making sure to not accidentally take some advice from technical staff
- Raising the blood pressure of everyone below them / working with them
Title: Program Lead / Product Owner
Background:
- Capable of speech
- Aware of what a computer is (optional)
Responsibilities:
- Sitting down
- Talking
- Clicking random buttons on Jira
- Making bullet point lists
Title: Director of Software Engineering
Background:
- Allegedly attended college/university to study computer science
- Similar to a technical product manager (technical optional)
Responsibilities:
- Reports directly to VP
- Fixes problems by creating a different problem somewhere else as a distraction
- Claiming to understand and green light technical decisions, while having already agreed with product that it will never happenrant program lead practisesafehexs-new-life-as-a-manager management explanation product product owner9 -
In a user-interface design meeting over a regulatory compliance implementation:
User: “We’ll need to input a city.”
Dev: “Should we validate that city against the state, zip code, and country?”
User: “You are going to make me enter all that data? Ugh…then make it a drop-down. I select the city and the state, zip code auto-fill. I don’t want to make a mistake typing any of that data in.”
Me: “I don’t think a drop-down of every city in the US is feasible.”
Manage: “Why? There cannot be that many. Drop-down is fine. What about the button? We have a few icons to choose from…”
Me: “Uh..yea…there are thousands of cities in the US. Way too much data to for anyone to realistically scroll through”
Dev: “They won’t have to scroll, I’ll filter the list when they start typing.”
Me: “That’s not really the issue and if they are typing the city anyway, just let them type it in.”
User: “What if I mistype Ch1cago? We could inadvertently be out of compliance. The system should never open the company up for federal lawsuits”
Me: “If we’re hiring individuals responsible for legal compliance who can’t spell Chicago, we should be sued by the federal government. We should validate the data the best we can, but it is ultimately your department’s responsibility for data accuracy.”
Manager: “Now now…it’s all our responsibility. What is wrong with a few thousand item drop-down?”
Me: “Um, memory, network bandwidth, database storage, who maintains this list of cities? A lot of time and resources could be saved by simply paying attention.”
Manager: “Memory? Well, memory is cheap. If the workstation needs more memory, we’ll add more”
Dev: “Creating a drop-down is easy and selecting thousands of rows from the database should be fast enough. If the selection is slow, I’ll put it in a thread.”
DBA: “Table won’t be that big and won’t take up much disk space. We’ll need to setup stored procedures, and data import jobs from somewhere to maintain the data. New cities, name changes, ect. ”
Manager: “And if the network starts becoming too slow, we’ll have the Networking dept. open up the valves.”
Me: “Am I the only one seeing all the moving parts we’re introducing just to keep someone from misspelling ‘Chicago’? I’ll admit I’m wrong or maybe I’m not looking at the problem correctly. The point of redesigning the compliance system is to make it simpler, not more complex.”
Manager: “I’m missing the point to why we’re still talking about this. Decision has been made. Drop-down of all cities in the US. Moving on to the button’s icon ..”
Me: “Where is the list of cities going to come from?”
<few seconds of silence>
Dev: “Post office I guess.”
Me: “You guess?…OK…Who is going to manage this list of cities? The manager responsible for regulations?”
User: “Thousands of cities? Oh no …no one is our area has time for that. The system should do it”
Me: “OK, the system. That falls on the DBA. Are you going to be responsible for keeping the data accurate? What is going to audit the cities to make sure the names are properly named and associated with the correct state?”
DBA: “Uh..I don’t know…um…I can set up a job to run every night”
Me: “A job to do what? Validate the data against what?”
Manager: “Do you have a point? No one said it would be easy and all of those details can be answered later.”
Me: “Almost done, and this should be easy. How many cities do we currently have to maintain compliance?”
User: “Maybe 4 or 5. Not many. Regulations are mostly on a state level.”
Me: “When was the last time we created a new city compliance?”
User: “Maybe, 8 years ago. It was before I started.”
Me: “So we’re creating all this complexity for data that, realistically, probably won’t ever change?”
User: “Oh crap, you’re right. What the hell was I thinking…Scratch the drop-down idea. I doubt we’re have a new city regulation anytime soon and how hard is it to type in a city?”
Manager: “OK, are we done wasting everyone’s time on this? No drop-down of cities...next …Let’s get back to the button’s icon …”
Simplicity 1, complexity 0.16 -
(Interview for sde-3 position)
(continuation of https://devrant.com/rants/2132431/... )
Interviewer - *opens laptop. Gives a question.* solve this.
Me - *a bit surprised that such questions were being asked on a sde-3 level*
this is the 4th or 5th question from geeksforgeeks, isn't it? I know the answer to this. Do u still want me to solve it?
Interviewer - *not believing me* Yes
Me - okay. Well this *writing down the original solution mentioned on the site* is the verbatim code mentioned on the website, with complexity O(n^2).
However I feel this is not the optimal solution. Let me write a better solution.
*I provide a better solution*
This has a complexity of O(n log n) . What do you think?
Interviewer - Nope. This could be a lot better.
Me - okay. Let me see. Did some minor changes, added some caching (obviously this will have no effect on the base algorithm) etc
How about now?
Interviewer - nope. Still not good.
Me - okay. Can you tell me how to improve it?
Interviewer - no we are not allowed to solve problems for you. It is not our interview, it is yours.
Me - that makes no sense. Interviews are a two way street. I'd very much like to know the optimal answer to this.
Interviewer - okay
*copies down the answer from geeksforgeeks*
This is good
Me - *at first I thought this was a prank or something. *
I just mentioned this answer here.
Then I spent the next 10 minutes providing a BETTER solution.
May I know how yours is better?
Interviewer - this solution has 2-3 loops. Yours has a function calling itself.
Me - that's called divide and conquer using recursion mf!
Anyways let's take an example and do a dry run.
Interviewer - okay
*we do dry run*
Interviewer - oh yes. Yours ran faster. But it will run fast only sometimes.
Me - yes. Each time the algorithm rolls a dice to decide if it should run fast or slow. You have one goddamn awesome weed dealer man.
I got to go. Thank you for meeting me.14 -
I'm trying to sign up for insurance benefits at work.
Step 1: Trying to find the website link -- it's non-existent. I don't know where I found it, but I saved it in keepassxc so I wouldn't have to search again. Time wasted: 30 minutes.
Step 2: Trying to log in. Ostensibly, this uses my work account. It does not. Time wasted: 10 minutes.
Step 3: Creating an account. Username and Password requirements are stupid, and the page doesn't show all of them. The username must be /[A-Za-z0-9]{8,60}/. The maximum password length is VARCHAR(20), and must include upper/lower case, number, special symbol, etc. and cannot include "password", repeated charcters, your username, etc. There is also a (required!) hint with /[A-Za-z0-9 ]{8,60}/ validation. Want to type a sentence? better not use any punctuation!
I find it hilarious that both my username and password hint can be three times longer than my actual password -- and can contain the password. Such brilliant security.
My typical username is less than 8 characters. All of my typical password formats are >25 characters. Trying to figure out memorable credentials and figuring out the hidden complexity/validation requirements for all of these and the hint... Time wasted: 30 minutes.
Step 4: Post-login. The website, post-login, does not work in firefox. I assumed it was one of my many ad/tracker/header/etc. blockers, and systematically disabled every one of them. After enabling ad and tracker networks, more and more of the site loaded, but it always failed. After disabling bloody everything, the site still refused to work. Why? It was fetching deeply-nested markup, plus styling and javascript, encoded in xml, via api. And that xml wasn't valid xml (missing root element). The failure wasn't due to blocking a vitally-important ad or tracker (as apparently they're all vital and the site chain-loads them off one another before loading content), it's due to shoddy development and lack of testing. Matches the rest of the site perfectly. Anyway, I eventually managed to get the site to load in Safari, of all browsers, on a different computer. Time wasted: 40 minutes.
Step 5: Contact info. After getting the site to work, I clicked the [Enroll] button. "Please allow about 10 minutes to enroll," it says. I'm up to an hour and 50 minutes by now. The first thing it asks for is contact info, such as email, phone, address, etc. It gives me a warning next to phone, saying I'm not set up for notifications yet. I think that's great. I select "change" next to the email, and try to give it my work email. There are two "preferred" radio buttons, one next to "Work email," one next to "Personal email" -- but there is only one textbox. Fine, I select the "Work" preferred button, sign up for a faux-personal tutanota email for work, and type it in. The site complains that I selected "Work" but only entered a personal email. Seriously serious. Out of curiosity, I select the "change" next to the phone number, and see that it gives me four options (home, work, cell, personal?), but only one set of inputs -- next to personal. Yep. That's amazing. Time spent: 10 minutes.
Step 6: Ranting. I started going through the benefits, realized it would take an hour+ to add dependents, research the various options, pick which benefits I want, etc. I'm already up to two hours by now, so instead I decided to stop and rant about how ridiculous this entire thing is. While typing this up, the site (unsurprisingly) automatically logged me out. Fine, I'll just log in again... and get an error saying my credentials are invalid. Okay... I very carefully type them in again. error: invalid credentials. sajfkasdjf.
Step 7 is going to be: Try to figure out how to log in again. Ugh.
"Please allow about 10 minutes" it said. Where's that facepalm emoji?
But like, seriously. How does someone even build a website THIS bad?rant pages seriously load in 10+ seconds slower than wordpress too do i want insurance this badly? 10 trackers 4 ad networks elbonian devs website probably cost $1million or more too root gets insurance stop reading my tags and read the rant more bugs than you can shake a stick at the 54 steps to insanity more bugs than master of orion 313 -
Story time. My first story ever on devRant.
To my ex-company that I bear for a long time... I joined my ex-company 3 years ago. My ex-company assigned me and one girl teammate to start working on a brand new big web project (big one - two members - really?)
My teammate quitted later, I have to work alone after then. I asked if someone can join this project, but manager said other people are busy. Yea, they are fucking busy reading MANGA shit everyday... Oops, I saw it because whenever I about to leave my damn chair, they begin chanting some hotkey magic and begin doing "poker face" like "I'm doing some serious shit right here".. FUCK MY CO-WORKERS!
My manager didn't know shit about software development, and keep barking about Agile, Waterfall and AI shit... He didn't even fucking know what this project should look like, he keep searching the internet for similar functions and gave me screenshots, or sometimes they even hold a meeting of a bunch of random non-related guys who even not working on the project, to discuss about requirements, which last for endless hours... FUCK MY MANAGER!
I was the one in charge for everything. I design the architecture, database, then I fucking implement my own designed architect myself, and I fucking test functions that I fucking implemented myself based on my fucking design. I was so tried, I don't know what the fuck I am working on. Requirement changes everyday. My beautiful architecture began to falling off. I was so tired and began use hack fixes here and there many places in the project. I knew it's bad, but I just don't have time to carefully reconsider it. My test case began becoming useless as requirements changed. My manager's boss push him to finish this project. He began to test, he start complaining about bug here and there, blaming me about why functions are broken, and why it not work as he expected (which he didn't even tell my how he expected). ... I'm not junior developer, but this one-man project is so overwhelmed for me... FUCK MY JOB!
At this time, I have already work this project for almost 2.5 years. I felt very upset. I also feel disappointed about myself, although I know that is not all my entire faults. The feeling that you was given a job, but you can not get it done, I feel like a fucking LOSER. I really wanted to quit and run away from this shithole. But on the other hand I also want to finish this project before I quit. My mind mixed. I'm a hard-worker. I keep pushing myself, but the workplace is so toxic, I can feel it eating up my motivation everyday. I start questioning myself: "Is the job I am doing important?", "If this is really important project, didn't they should assign more members?", I feel so lonely at work... MY MIND IS FUCKED UP!
Finally, after a couple months of stress. I made up my mind that no way this project is gonna end within my lifespan. I decide to quit. Although my contract pointed that I only need to tell one month in advance. I gave my manager 3 months to find new members for project. I did handle over what I know, documents, and my fucked up ultra complexity source code with many small sub-systems which I did all by myself.
Well, I am with a new employer right now. They are good company. At least, my new manager do know how to manage things. My co-workers are energy and hard-working. I am put to fight on the frontline as usual (because of my "Senior position"). But I can feel my team, they got my back. My loneliness is now gone. Job is still hard, but I know for sure that I'm doing things on purpose, I am doing something useful. And to me that is the greatest rewards and keep me motivative! From now, will be the beginning for first page of my new story...
Thanks for reading ...12 -
"Your resumé looks really good. We would really like to hire you. But you need to do this completly job unrelated test/coding challenge first."
----
"Is the test Android related?"
"Yes"
*Opens Test* -> "what ist the complexity of this function (written in c)"
*Scrolls*
"Implement algorithm xyz in Go lang"
*Closes test and breaks something*
----
"You will need to Code on a small Android projekt so we can see how you work"
"OK, how much time will i need to plan for it?"
"Our lead dev decided to make it small so its only 4-5 days."
----
What is it with all this stupid hiring test these days? And what do these recruiter think?8 -
Simplicity is a prerequisite for reliability.
I put those words on the wall in giant vinyl letters, and I point to them every time someone asks me "can you add a frontend button which checks this external API and stores the correlation between the amount of rain and the sales numbers of purple buttplugs inside the user profiles?"
People always ask for one more column in a table, one more paragraph under an image — they never ask for replacement or removal of items.
So I force them. Want a feature? Fine, if you point at something of equal or greater complexity to delete.2 -
One day at a doctor who started a small conversation:
Doc: What is your job?
Me: I am a software developer, I write computer programs basically.
Doc: Interesting. How does it work?
Me: Oversimplified you have special languages to tell the computer what to do and then this is converted into a program you can start on your PC. The languages are a bit like basic english (thought of Pascal at this moment).
Doc: So then it is a pretty simple job.
Me thinking: OMFG yes that's why I studied it 6 years, because it's soo easy.
Me thinking at home: Next time tell them that you are a computer scientist and that it is applied mathematics basically. Maybe then they will get a clue of the complexity. 🤔14 -
I swear I work with mentally deranged lunatics.
Dev is/was using TFS's web api to read some config stuff..
Ralph: "Ugh..this is driving me crazy. I've spent all day trying to read this string from TFS and it is not working"
Me: "Um, reading a string from an web api is pretty easy, what's the problem?"
Ralph: "I'm executing the call in a 'using' statement and cannot return the stream."
Me: "Why do you need to return a stream? Return the object you are looking for."
Ralph: "Its not that easy. You can return anything from TFS. All you get back is a stream. Could be XML, JSON, text file, image, anything."
Me: "What are you trying to return?"
Ralph: "XML config. If I use XDoc, the stream works fine, but when I step into each byte from the stream, I the first three bytes have weird characters. I shouldn't have to skip the first three bytes to get the data. I spent maybe 5 hours yesterday digging around the .Net stream readers used in XDoc trying to figure out how it skips the first few bytes."
Me: "Wow...I would have used XDoc and been done and not worried about that other junk."
Ralph: "But I don't know the stream is XML. That's what I need to figure out."
Me: "What is there to figure out? You do know. Its your request. You are requesting a XML config."
Ralph: "No, the request can be anything. What if Sam requests an image? XDoc isn't going to work."
Me: "Is that a use-case? Sam requesting an image?"
Ralph: "Uh..I don't know...he could"
Me: "Sounds like your spending a lot of time doing premature optimization. You know what your accessing TFS for, if it's XML, return XML. If it's an image, return an image. Something new comes along, modify the code to handle it. Eazy peezy."
<boss walks in from a meeting>
Boss: "Whats up guys?"
Ralph: "You know the problem with TFS and not being able to stream the data I had all day yesterday? I finally figured it out. I need to keep this TFS reader simple. I'll start with the XML configs and if we more readers later, we can add them."
Boss: "Oh yea, always start simple and add complexity only when you need it."
Frack...Frack..Frack...you played some victim complaining to anyone who would listen yesterday (which I mostly ignored) about reading data from TFS was this monumental problem no one could solve, then you start complaining to me, I don't fall for the BS, then tell the boss the solution was your idea?
Lunatic or genius? Wally would be proud.4 -
I think I figured out why so many companies jumped on board the Agile approach. Companies heard Productivity Bonus and Put Stuff into a List Of Things to Do, and left out all the rest of their responsibilities. One of my past companies was like "We're going to take an Agile approach to everything! Except, we're not going to shield developers from everyone who has stuff in the backlog, and we're going to have other meetings during the day on top of the scrum meetings to check on your progress, and we're going to measure points in time instead of complexity".
I feel like the creators of the Agile Manifesto would be really upset at all of the poorly implemented processes. Because all of us developers are pretty upset.6 -
WASM was a mistake. I just wanted to learn C++ and have fast code on the web. Everyone praised it. No one mentioned that it would double or quadruple my development time. That it would cause me to curse repeatedly at the screen until I wanted to harm myself.
The problem was never C++, which was a respectable if long-winded language. No no no. The problem was the lack of support for 'objects' or 'arrays' as parameters or return types. Anything of any complexity lives on one giant Float32Array which must surely bring a look of disgust from every programmer on this muddy rock. That is, one single array variable that you re-use for EVERYTHING.
Have a color? Throw it on the array. 10 floats in an object? Push it on the array - and split off the two bools via dependency injection (why do I have 3-4 line function parameter lists?!). Have an image with 1,000,000 floats? Drop it in the array. Want to return an array? Provide a malloc ptr into the code and write to it, then read from that location in JS after running the function, modifying the array as a side effect.
My- hahaha, my web worker has two images it's working with, calculations for all the planets, sun and moon in the solar system, and bunch of other calculations I wanted offloaded from the main thread... they all live in ONE GIANT ARRAY. LMFAO.If I want to find an element? I have to know exactly where to look or else, good luck finding it among the millions of numbers on that thing.
And of course, if you work with these, you put them in loops. Then you can have the joys of off-by-one errors that not only result in bad results in the returned array, but inexplicable errors in which code you haven't even touched suddenly has bad values. I've had entire functions suddenly explode with random errors because I accidentally overwrote the wrong section of that float array. Not like, the variable the function was using was wrong. No. WASM acted like the function didn't even exist and it didn't know why. Because, somehow, the function ALSO lived on that Float32Array.
And because you're using WASM to be fast, you're typically trying to overwrite things that do O(N) operations or more. NO ONE is going to use this return a + b. One off functions just aren't worth programming in WASM. Worst of all, debugging this is often a matter of writing print and console.log statements everywhere, to try and 'eat' the whole array at once to find out what portion got corrupted or is broke. Or comment out your code line by line to see what in forsaken 9 circles of coding hell caused your problem. It's like debugging blind in a strange and overgrown forest of code that you don't even recognize because most of it is there to satisfy the needs of WASM.
And because it takes so long to debug, it takes a massively long time to create things, and by the time you're done, the dependent package you're building for has 'moved on' and find you suddenly need to update a bunch of crap when you're not even finished. All of this, purely because of a horribly designed technology.
And do they have sympathy for you for forcing you to update all this stuff? No. They don't owe you sympathy, and god forbid they give you any. You are a developer and so it is your duty to suffer - for some kind of karma.
I wanted to love WASM, but screw that thing, it's horrible errors and most of all, the WASM heap32.7 -
Today the CEO asked us to create KPIs to follow a junior tasks, daily.
The problem it's he wants KPIs to foretell problems or delays in his tasks.
The junior is analyzing 14 years old C++ code, made by an electrical engineer who had all worsts practices possible when coding.
We explained that we couldn't make real, true KPI that would foretell the advancement due to complexity of the legacy and the fact that the junior had NEVER USED C++.
SO.... He asked to know how many code lines he made daily and an estimate of how many lines he'll have to do to complete the task.... So he could foretell advancement.
....
....
It was the 5th time in less than 60 days, that the CEO bypass totally the CTO to ask some stupid useless shit. So now all developpers have resign, complaining about the CEO actions/stupidity.2 -
It was when I ditched React. I replaced it with raw JavaScript, with frontend being built with Gulp and Twig (just because HTML has no includes). Here are the results:
1. Previously, a production frontend build took 1.5 minutes. Build time became so fast that after I push the code, the build was done before me going to Netlify to check build status. I go there, and it’s almost always already done.
2. In a gallery with a lot of cards, with every card opening a modal, the number of listeners was reduced from N to one. With React, I needed 1000 listeners for 1000 cards. With raw JavaScript, I needed just one click listener with checking event target to handle all of the cards.
3. Page load time and time-to-interactive was reduced from seconds to milliseconds.
4. Lighthouse rating became 100 for desktop and 93 for mobile.
But there is one more thing that is way better than all of the above: cognitive complexity.
Tasks that took days now take hours. Tasks that took hours now take minutes.
Tasks that took thousands of lines now take hundreds. Tasks that took hundreds of lines now take tens.
In real business apps, it is common to build features and then realize it’s not needed and should be discarded. Business is volatile, just because the real world is volatile too. With this kind of cost reduction per feature, it became way less painful to discard them. Throwing out something you spent time and emotional resource on doesn’t feel good. But with features taking minutes to build, it became easier.25 -
Back in the day, I joined a little agency in Cape Town, small team small office with big projects, projects they weren’t really supposed to take on but hey when the owner of a tech business is not a tech person they do weird things.
A month had passed and it was all good, then came a project from Europe, Poland to be specific. The manager introduced me to the project, it was a big brand - a segment of Lego, built on Umbraco (they should change the name to slowbraco or uhmmm..braco somewhere there) the manager was like so this one is gonna be quite a challenge and I remember you said you are keen on that, I was like hell yeah bring it on (genuinely I got excited) now the challenge was not even about complexity of the problem or code or algorithms etc you get my point… the challenge was that the fucking site was in polish - face palm 1 - so I am like okay code is code, its just content, and I already speak/familiar with 13 human languages so I can’t fail here ill get around it somehow. So I spin up IIS, do the things and boom dev environment is ready for some kick ass McCoding. I start to run through the project to dig into the previous dev’s soul. I could not relate, I could not understand. I could not read, I could not, I could not. - face palm 2 - This dude straight up coded this project in polish variable names in polish, class names in polish, comments in freaking polish. Look, I have no beef with the initial guy, its his language so why not right? sure. But not hey this is my life and now I should learn polish, so screw it, new tab - google translate, new notes, I create a dictionary of variables and class etc 3 days go by and I am fucking polish bro. Come at me. I get to read the previous devs soul through his comments, what a cool dude, his code wasn’t shit either - huge relief. So I rock on and make the required changes and further functionality. The project manager is like really, you did it? I am like yeah dude, there it is. Then I realise I wasn’t the first on this, this dude done tried others and it didn’t go down well, they refused. - face palm 3 -
Anyway, now I am a rock star in the office, and to project managers this win means okay throw him in the deep - they move me to huge project that is already late of course and apparently since I am able to use google translate, I can now defeat time, let the travelling begin. - face palm 4 - I start on the project and they love me on it as they can see major progress however poland was knocking on the door again, they need a whole chunk of work done. I can’t leave the bigger project, so it was decided that the new guy on Monday will start his polish lessons - he has no idea, probably excited to start a new job, meanwhile a shit storm is being prepared for him.
Monday comes, hello x - meet the team, team meets x
Manager - please join our meeting.
I join the meeting, the manager tells me to assist the new dev to get set up.
Me: Sure, did you tell him about he site?
Manager: Yes, I told him you knocked it out the park and now we just need to keep going
Me: in my head (hmm… that’s not what I was asking but cool I guess he will see soon enough -internal face palm 5 - ) New dev is setup, he looks at the project, I am ask him if he is good after like an hour he is like yeah all good. But his face is pink so I figured, no brother man is not okay. But I let him be and give him space.
Lunch time comes, he heads out for lunch. 1hr 15mins later, project manager is like, is the new dude still at lunch.
We are all like yeah probably. 2hrs pass 3hrs pass Now we are like okay maybe something happened to him, hit by a car? Emergency? Something… So I am legit worried now, I ask the manager to maybe give him a ring. Manager tries to call. NOTHING, no response. nada.
Next day, 8am, 9am, 10am no sign of the dude. I go to the manager, ask him what’s up. Manager: he is okay. However he said he is not coming back.7 -
➡️You Are Not A Software Developer⬅️
When I became a developer, I thought that my job is to write software. When my customer had a problem, I was ready to write software that solves that problem. I was taught to write software.
But what customers need is not software. They need a solution to their problem. Your job is to find the most cost-effective solution, what software often is not.
According to the universal law of software development, more code leads to more bugs:
e = mc²
Or
errors = (more code)²
The number of bugs grows with the amount of code. You have to prioritize, reproduce and fix bugs.
The more code you write, the more your team and the team after it has to maintain. Even if you split the system into micro services, the complexity remains.
Writing well-tested, clean code takes a lot of time. When you’re writing code, other important work is idle. The work that prevents your company from becoming rich.
A for-profit company wants to make money and reduce expenses. Then the company hires you to solve problems that prevent it from becoming rich. Confused by your job title, you take their money and turn it into expensive software.
But business has nothing to do about software. Even software business is not about software. Business is about making money.
Your job is to understand how the company is making money, help make more money and reduce expenses. Once you know that, you will become the most valuable asset in the company.
Stop viewing yourself as a software developer. You are a money maker.
Think about how to save and make money for your customers.
Find the most annoying problem and fix it:
▶️Is adding a new feature too costly? Solve the problem manually.
▶️Is testing slow? Become a tester.
▶️Is hiring not going well? Speak at a meetup and advertise your company.
▶️Is your team not productive enough? Bring them coffee.
Your job title doesn’t matter. Ego doesn’t matter either.
Titles and roles are distracting us from what matters to our customers – money.💸
You are a money maker. Thinking as a money maker can help choose the next skill for development. For example:
Serverless: pay only for resources you consume, spend less time on capacity planning = 💰
Machine Learning: get rid of manual decision-making = 💰
TDD: shorter feedback cycle, fewer bugs = 💰
Soft Skills: inspire teammates, so they are more productive and happy = 💰
If you don’t know what to learn next — answer a simple question:
What skills can help my company make more money and reduce expenses?
Very unlikely it’s another web framework written in JavaScript.
Article by Eduards Sizovs
Sizovs.net18 -
Craziest bug, not so much in the sense of what it was (although it was itself wacky too), but in what I went through to fix it.
The year was 1986. I was finishing up coding on a C64 demo that I had promised would be out on a specific weekend. I had invented a new demo effect for it, which was pretty much the thing we all tried to do back then because it would guarantee a modicum of "fame", and we were all hyper-ego driven back then :) So, I knew I wanted to have it perfect when people saw it, to maximize impressiveness!
The problem was that I had this ONE little pixel in the corner of the screen that would cycle through colors as the effect proceeded. A pixel totally apart from the effect itself. A pixel that should have been totally inactive the entire time as part of a black background.
A pixel that REALLY pissed me off because it ruined the utter perfection otherwise on display, and I just couldn't have that!
Now, back then, all demos were coded in straight Assembly. If you've ever done anything of even mild complexity in Assembly, then you know how much of a PITA it can be to find bugs sometimes.
This one was no exception.
This happened on a Friday, and like I said, I promised it for the weekend. Thus began my 53 hours of hell, which to this day is still the single longest stretch of time straight that I've stayed awake.
Yes, I spent literally over 2+ days, sitting in front of my computer, really only ever taking bio breaks and getting snacks (pretty sure I didn't even shower)... all to get one damn pixel to obey me. I would conquer that f'ing pixel even if it killed me in the process!
And, eventually, I did fix it. The problem?
An 'i' instead of an 'l'. I shit you not!
After all these years I really don't remember the details, except for the big one that sticks in my mind, that I had an 'i' character in some line of code where an 'l' should have been. I just kept missing it, over and over and over again. I mean, I kinda understand after many hours, your brain turns to mush. and you make more mistakes, so I get missing it after a while... but missing it early on when I was still fresh just blows my mind.
As I recall, I finally uploaded the demo to the distro sight at around 11:30pm, so at least I made my deadline before practically dropping dead in bed (and then having to get up for school the next morning- D'oh!). And it WAS a pretty impressive demo... though I never did get the fame I expected from it (most likely because it didn't get distributed far and wide enough).
And that's the story of what I'd say was my craziest bug ever, the one that probably came closest to killing me :)5 -
i'm feeling so sick right now.
PM invited team for today to present his "vision": "<name of our component>: what it is and what it is not".
but it didn't make sense and showed that he hadn't understood the problem at all. the whole architecture made no sense given the problems that shall be solved. his architecture diagrams missed some essential parts that were actually the giant weak points of his concept. his pseudocode, that should exemplify interactions between components, didn't address the complexity of required interactions at all. it's like he expects some magic to happen and has no fucking clue about the requirements (but acts like it), even though he is the manager of this software project.
and when devs ask really interesting questions that fundamentally question his concept, discussions lead to nowhere and questions are not answered. at some point he literally said "there is no such thing as <name of our component>, i still have to find this out"
really!? after one and a half year, since you sold the idea for this component to upper management, and after half a year of development, you still can't tell what it is what we actually want to build? are you fucking serious?!
at some point in discussion he said that these questions need to be answered but that "there's no time left", and he ended the meeting. although there was still half an hour of meeting time left.
i'm so fucking sick of this, i hate everything right now. i can't listen to this bullshit any longer. in discussions, he contradicts himself all the time, it is so fucking surreal i'm starting to feel like i'm insane.
it makes me really sad and tired. i don't want to care about this shit any longer.14 -
Ever heard of event-based programming? Nope? Well, here we are.
This is a software design pattern that revolves around controlling and defining state and behaviour. It has a temporal component (the code can rewind to a previous point in time), and is perfectly suited for writing state machines.
I think I could use some peer-review on this idea.
Here's the original spec for a full language: https://gist.github.com/voodooattac...
(which I found to be completely unnecessary, since I just implemented this pattern in plain TypeScript with no extra dependencies. See attached image for how TS code looks like).
The fact that it transcends language barriers if implemented as a library instead of a full language means less complexity in the face of adaptation.
Moving on, I was reviewing the idea again today when I discovered an amazing fact: because this is based on gene expression, and since DNA is recombinant, any state machine code built using this pattern is also recombinant[1]. Meaning you can mix and match condition bodies (as you would mix complete genes) in any program and it would exhibit the functionality you picked or added.
You can literally add behaviour from a program (for example, an NPC) to another by copying and pasting new code from a file to another. Assuming there aren't any conflicts in variable names between the two, and that the variables (for example `state.health` and `state.mood`) mean the same thing to both programs.
If you combine two unrelated programs (a server and a desktop application, for example) then assuming there are no variables clashing, your new program will work as a desktop application and as a server at the same time.
I plan to publish the TypeScript reference implementation/library to npm and GitHub once it has all basic functionality, along with an article describing this and how it all works.
I wish I had a good academic background now, because I think this is worthy of a spec/research paper. Unfortunately, I don't have any connections in academia. (If you're interested in writing a paper about this, please let me know)
Edit: here's the current preliminary code: https://gist.github.com/voodooattac...
***
[1] https://en.wikipedia.org/wiki/...29 -
I was reading the post made by another ranter in which he was basically asked to lower the complexity of an automation script he wrote in place of something everyone else could understand. Another dev commented that more than likely it had to do with the company being worried that ranter_1 would leave and there would be no one capable of maintaining the code.
I understood this completely from both perspectives. It makes me worry how real this sometimes is. We don't get to implement X tech stack because people are worried that no one would be able to maintain Y project in the event of someone leaving. But fuck man, sometimes one wants to expand more and do things differently.
At work I came to find out that the main reason why the entirety of our stack is built in PHP is because the first dev hired into the web tech department(which is only about 12 years old in my institution) only knew PHP. The other part that deals with Java is due to some extensions to some third party applications that we have, Java knowledge (more specifically Spring and Grails) is used for those, the rest is mostly PHP. And while I LOVE PHP and don't really have anything against the language I really wonder what would it be of the institution had we've had a developer with a more....esoteric taste. Clojure, Elixir, Haskell, F# and many others. These are languages and tech stacks that bring such a forward way of thinking into the way we build things.
On the other hand, I understand if the talent pool for each of these stacks is somewhat hard to come up with, but if we don't push for certain items then they will never grow.
The other week I got scolded by the lead dev from the web tech department for using Clojure to create the demo of an application. He said that the project will most likely fall into his hands and he does not know the stack. I calmly mentioned that I would gladly take care of it if given the opportunity as well as to explain to him how the code works and provide training to everyone for it :D I also (in all of my greatness) built the same program for him in PHP. Now, I outrank him :P so the scold bounced out of the window, plus he is a friend, but the fact remains that we reached the situation in which the performance as well as the benefits of one stack were shadowed by the fact that it holds a more esoteric place in the development community.
In the end I am happy to provide the PHP codebase to him. The head of the department + my boss were already impressed with the fact that I was able to build the product in a small amount of time using a potent tech stack, they know where my abilities are and what I can do. That to me was all that matters, even if the project gets shelved, the fact that I was able to use it at work for something means a lot to me.
That and I got permission to use it for the things that will happen with my new department + the collective interest of everyone in paying me to give support even if I ever leave the institution.
Win.13 -
NEW 6 Programming Language 2k16
1. Go
Golang Programming Language from Google
Let's start a list of six best new programming language and with Go or also known by the name of Golang, Go is an open source programming language and developed by three employees of Google and the launch in 2009, very cool just 3 people.
Go originated and developed from the popular programming languages such as C and Java, which offers the advantages of compact notation and aims to keep the code simple and easy to read / understand. Go language designers, Robert Griesemer, Rob Pike and Ken Thompson, revealed that the complexity of C ++ into their main motivation.
This simple programming language that we successfully completed the most tasks simply by librariesstandar luggage. Combining the speed of pemrogramandinamis languages such as Python and to handalan of C / C ++, Go be the best tools for building 'High Volume of distributed systems'.
You need to know also know, as expressed by the CTO Tokopedia namely Mas Leon, Tokopedia will switch to GO-lang as the main foundation of his system. Horrified not?
eh not watch? try deh see in the video below:
[Embedyt] http://youtube.com/watch/...]
2. Swift
Swift Programming Language from Apple
Apple launched a programming language Swift ago at WWDC 2014 as a successor to the Objective-C. Designed to be simple as it is, Swift focus on speed and security.
Furthermore, in December 2015, Swift Apple became open source under the Apache license. Since its launch, Swift won eye and the community is growing well and has become one of the programming languages 'hottest' in the world.
Learning Swift make sure you get a brighter future and provide the ability to develop applications for the iOS ecosystem Apple is so vast.
Also Read: What to do to become a full-stack Developer?
3. Rust
Rust Programming Language from Mozilla
Developed by Mozilla in 2014 and then, and in StackOverflow's 2016 survey to the developer, Rust was selected as the most preferred programming language.
Rust was developed as an alternative to C ++ for Mozilla itself, which is referred to as a programming language that focus on "performance, parallelisation, and memory safety".
Rust was created from scratch and implement a modern programming language design. Its own programming language supported very well by many developers out there and libraries.
4. Julia
Julia Programming Language
Julia programming language designed to help mathematicians and data scientist. Called "a complete high-level and dynamic programming solution for technical computing".
Julia is slowly but surely increasing in terms of users and the average growth doubles every nine months. In the future, she will be seen as one of the "most expensive skill" in the finance industry.
5. Hack
Hack Programming Language from Facebook
Hack is another programming language developed by Facebook in 2014.
Social networking giant Facebook Hack develop and gaungkan as the best of their success. Facebook even migrate the entire system developed with PHP to Hack
Facebook also released an open source version of the programming language as part of HHVM runtime platform.
6. Scala
Scala Programming Language
Scala programming termasukbahasa actually relatively long compared to other languages in our list now. While one view of this programming language is relatively difficult to learn, but from the time you invest to learn Scala will not end up sad and disappointing.
The features are so complex gives you the ability to perform better code structure and oriented performance. Based programming language OOP (Object oriented programming) and functional providing the ability to write code that is capable of evolving. Created with the goal to design a "better Java", Scala became one behasa programming that is so needed in large enterprises.3 -
I fucking hate chained methods. Ok, not all of them. Query things like array.where.first... that stuff is ok.
Specially if it's part of the std lib of a lang, which would be probably written by a very competent coder and under scrutiny.
But if you're not that person, chances are you'll produce VASTLY inferior code.
I'm talking about things like:
expect(n).to.be(x).and.not(y)
And the reason I don't like it is because it's all fine and dandy at first.
But once you get to the corner cases, jesus christ, prepare to read some docpages.
You end up reading their entire fucking docs (which are suboptimal sometimes) trying to figure if this fucking dsl can do what you need.
Then you give up and ask in a github issue. And the dev first condescends you and then tells you that the beautiful eden of code he created doesn't let you do what you want.
The corner cases usually involve nesting or some very specific condition, albeit reasonable.
This kind of design is usually present in testing or validation js libraries. And I hate all of those for it.
If you want a modern js testing lib that doesn't suck ass, check avajs. It's as simple as testing should be.
No magic globals, no chaining, zero config. Fuck globals forced by libs.
But my favorite thing about it that is I can put a breakpoint wherever the fuck I want and the debugger stops right fucking there.
Code is basically lines of statements, that's it, and by overusing chaining, by encouraging the grouping of dozens of statements into one, you are preventing me from controlling these statements on MY code.
As an end dev, I only expect complexity increases to come from the problems themselves rather than from needlessly "beautified" apis.
When people create their own shitty dsl, an image comes to my mind of an incoherent rambling man that likes poetry a lot and creates his own martial art, which looks pretty but will get your ass kicked against the most basic styles of fighting.
I fucking hate esoteric code.
Even if I had to execute a list of functions, I'd rather send them in an array instead of being able to chain them because:
a) tree shaking would spare from all the functions i didn't import
b) that's what fucking arrays are for, to contain several things.
This bad style of coding is a result of how low the barrier to code in higher level langs are.
As a language or library gets easier to use you might think that's a positive thing. But at the same time it breeds laziness.
Js has such a low learning curve that it attacts the wrong kind of devs, the lazy, the uninspired, the medium.com reader, the "i just care about my paycheck" ones.
Someone might think that by bashing bad js devs I'm trying to elevate myself.
That'd be extremely stupid. That's like beating a retarded blind man in a game and then saying "look, I'm way better than this retarded blind man".
I'm not on a risky point of view, just take a stroll down npmjs.com. That place is a landfill. Not really npm's fault, in fact their search algorithm is good.
It's just the community.
Every lang has a ratio of competence. Of competent to incompetent devs.
You have the lang devs and most intelligent lib devs at the top. At the bottom you have the bottom.
Well js has a horrible ratio. I wouldn't be shocked to find out that most js devs still consider using import or await the future.
You could say that js improved a lot, that it was way worse beforr. But I hate chaining now, and i hated back then!
On top of this, you have these blog web companies, sucking the "js tutorial" business tit dry, pumping out the most obscenely unprofessional and bar lowering tutorials you can imagine, further capping the average intelligence of most js devs.
And abusing SEO while they're at it, littering the entire web with copy paste content.2 -
I am a firmware developer with 4 years experience. C and sometimes assembly is my bread and butter.
Like 2 years ago, I was really interested to make a switch to application development. Got referred by my friend to her startup.
But I was a bit rusty with my data structures, high level languages and interpersonal skills.
The first question was to find the number of occurences for each word in a paragraph. The language choice was Java. But I was allowed to use C++ since it was the closest relative to Java that I knew.
And I started implementing a binary search tree from scratch and started inserting each tokenised word into it, wrote a traversal algorithm.
The interviewer, luckily, was a patient guy. After I completed my whole mess, he asked is it possible to do this in a slightly better way with constant time access without traversal.
I said yes, we can with a hash table but I dont know how to implement one. He replied I dont expect you to implement the hash table but see you use it. I asked him if I am allowed to used the standard library, for which he said ofcourse.
*facepalm*.
Finally I understood his expectation, referred cppreference.com and used an unordered_map.
Later there were some quesion on databases for which I tried my best to answer. And I frankly replied that I am not comfortable with JS frameworks as of now. Got rejected.
So the mistake is I never asked basic questions like what is the time complexity expects, if I was allowed to use standard library, didnt spend some extra time on studying stuffs needed for the domain switch and most importantly I panicked.7 -
So, the uni hires a new CS lecturer. He is teaching 230, the second CS class in the CS major. Two weeks into the semester, he walks in and proceeds to do his usual fumbling around on the computer (with the projector on).
Then, he goes to his Google Drive, which is empty mostly, and tells us that he accidentally wrote a program that erased his entire hard drive and his internet storage drives (Google, box, etc.)...
I mean, way to build credibility, guy... Then he tells us that he has a backup of everything 500 miles away, where he moved from. He also says that he only knows C (we only had formally learned Java so far), but hasn't actually coded (correction: typed!) in 20+ years, because he had someone do that for him and he has been learning Java over the past two weeks.
The rest of the semester followed as expected: he never had any lecture material and would ramble for an hour. Every class, he would pull up a new .java file and type code that rarely ran and he had no debugging skills. We would spend 15 minutes trying to help him with syntax issues—namely (), ;— to get his program running and then there would be a logic issue, in data structures.
He knew nothing of our sequence and what we knew up until this point and would lecture about how we will be terrible programmers because we did not do something the way he wanted—though he failed to give us expectations or spend the five minutes to teach us basic things (run-time complexity, binary, pseudocode etc). His assignments were not related to the material and if they were, they were a couple of weeks off. Also, he never knew which class we were and would ask if we were 230 or 330 at the end of a lecture...
I learned relatively nothing from him (though I ended up with a B+) but thankful to be taking advanced data structures from someone who knows their stuff. He was awful. It was strange. Also, why did the uni not tell him what he needed to be teaching?
End rant.undefined worst teacher worst professor awful communication awful code worst cs teacher disorganization1 -
I previously worked as a Linux/unix sysadmin. There was one app team owning like 4 servers accessible in a very speciffic way.
* logon to main jumpbox
* ssh to elevated-privileges jumpbox
* logon to regional jumpbox using custom-made ssh alternative [call it fkup]
* try to fkup to the app server to confirm that fkup daemon is dead
* logon to server's mgmt node [aix frame]
* ssh to server directly to find confirm sshd is dead too
* access server's console
* place root pswd request in passwords vault, chase 2 mangers via phone for approvals [to login to the vault, find my request and aprove it]
* use root pw to login to server's console, bounce sshd and fkupd
* logout from the console
* fkup into the server to get shell.
That's not the worst part... Aix'es are stable enough to run for years w/o needing any maintenance, do all this complexity could be bearable.
However, the app team used to log a change request asking to copy a new pdf file into that server every week and drop it to app directory, chown it to app user. Why can't they do that themselves you ask? Bcuz they 'only need this pdf to get there, that's all, and we're not wasting our time to raise access requests and chase for approvals just for a pdf...'
oh, and all these steps must be repeated each time a sysadmin tties to implement the change request as all the movements and decisions must be logged and justified.
Each server access takes roughly half an hour. 4 servers -> 2hrs.
So yeah.. Surely getting your accesses sorted out once is so much more time consuming and less efficient than logging a change request for sysadmins every week and wasting 2 frickin hours of my time to just copy a simple pdf for you.. Not to mention that threr's only a small team of sysadmins maintaining tens of thousands of servers and every minute we have we spend working. Lunch time takes 10-15 minutes or so.. Almost no time for coffee or restroom. And these guys are saying sparing a few hours to get their own accesses is 'a waste of their time'...
That was the time I discovered skrillex.3 -
As if my head couldn’t get any bigger... today we had the guys from the static analysis tool come in to show us how to use the tool and all that... the guys tell us don’t be alarmed, everyone who runs the tool for the first time has thousands and thousands of errors... my co worker did his as a “demo” and had 44 thousand MISRA errors. And a McCabe Complexity score of 700 in main().. I laughed ... and he and the guys from the tool laughed and said well fine then let’s see yours... so they set mine up to run, the room was silent, as I just smiled... only 2 MISRA mandatory errors.. and a few dozen required MISRA errors. My main McCabe score was 13.... understand both software project are working, and do very similar functions, only difference is different generation of product and who programmed it...
My boss walked in the room ... and says sooo how bad was Chris’ code as a joke... and the static analysis tool guys (who literally check people’s code for a living!) says ugh no sir, you have a very talented software engineer on your hands... we’ve never seen someone run the tool and have that few of issues... my co worker was very jealous to say the least... -
I might lose my job this week
I'm part of a team of 2 tech people
We were hired as programmers. But over these past 10 months we've done everything from helpdesk to fixing network infrastructure, i setup a backup server for the company, started properly managing the companies passwords,and a host of other things not in my contract.
But my boss is changing the deadline again and she refuses to listen to anyone's concerns, she doesn't understand the complexity of what she wants and since the best we've done so far can be considered at best a prototype in my opinion shes going to be disappointed
So at the next meeting me and my coworker are going to politely list our grivences point out all shes had us do at the same time and the impossible deadlines.
I've seen herpitch a fit for less so I'm fully prepared to be fired in rage in which case I'll compile the documentation and information on what we've done to email her.
But I'm pretty sure she won't find anything long term for the 40k salary shes expecting. Especially with how slow she is to do work herself. I was supposed to be on company health insurance since October 2020
In a way I'm kinda relieved at the potential of being fired.3 -
That I am not good enough for this shit.
Recently left my job because anxiety, a lot of it.
Tbh, I should not burntout myself, because:
- salary was a shit
- the scrum was a lie, there was no end of the sprint, so no retrospective meeting ever done.
- They change the """sprint""" task pile at any moment, usually adding more tasks for the same sprint.
- previous project manager was an idiot who said "yes" at EVERYTHING the client asked, even if the request was outside tje scope of the project.
The project was heavily delayed, and I was the only developer left on the most hideous backend you can imagine (the code was just tje very definition of "what not to do"). NO UNIT TESTING at all.
My task: clean the mess so we have a """stable""" release (with the tests), add the new features and re-do the backend again, but this time properly.
8 months of develop for this shit and they wanted the stable-shit-backend in a month and the new backend in other month "because everithing was already done in the shitty one". Do not forget the new features too.
So, I was doing the imposible to try to do tje task, overdoing hours and reading the docs of the project (because I was new in it), but it take me.a lot of effort to simply correct bugs because of complexity of the code and not understanding fully some parts of the project.
Then the comments like "why this is not finished yet?" Or "I do not understand why this is taking so long"
So, I had poor sleep, I was anxious because my inhability to do the imposible and in the end, a feeling kind of defeated because I quit.
So... that.
Sorry if something is wrong typed or so, english is not my native language.5 -
Clients that barely can turn on their computer that have opinions on how much complexity and time is involved developing X feature. I'm no rage-o-holic, but that is one of those rare things that make me want to stab someone in the face.
-
what's the thing that reminds you, that you are a developer?
I said "the time complexity of finding my car in this parking lot is n factorial".11 -
!rant
I bitch a lot about the complexity of Rust. But every time I do it I go ahead and applaud just how fucking good the compiler messages are.
A fucking thing of beauty.2 -
daily.
me: i looked into the customer dev's project and even though it's C#, i can use it as a source of inspiration for my own C++ library.
PM: okay, maybe we can even still use it, so that you use a C# dll with your C++ code.
me: ...
other colleague: that's a bad idea. it can already be a challenge to use unmanaged c++ in dotnet, but the other way round it's even more difficult. C# and C++ are languages that behave quite differently and it will be hard to implement a correctly working interface.
PM: okay. well... then please analyze this project's complexity in terms of LOC and create a class diagram, so we get an idea of how complex it is.
me: sure.
PM: hmm... maybe we should split this topic. since dev x will also rely on your library, analyze this project together with him, each of you look at another part of the classes.
me: that's.... i think that's a bad idea. implementing this functionality in this library is my job, not of dev X. he won't be involved in implementing any of the funcionalities and for him, it shouldn't matter how this works.
PM: yeah, but since we are prototyping, maybe we should just violate the "separation of concerns" rule.
me (internally): (ノಠ益ಠ)ノ彡┻━┻
in the end i could convince him to do it my way, but for fuck's sake... when was the last time he actually succesfully implemented something? 🤦♀️ -
Alright lads here is the thing, have not been posting anything other than replies to things cuz I have been busy being miserable at school and dealing with work stuff.
Our manager left us back in February. Because she was leaving I decided that I wanted to try a different path and went on to become a programmer analyst for my institution, if anything I knew that it was going to be pretty boring work, but it came with nice monetary compensation and a foot in the door for other data science related jobs in the future. Thing is, the department head asked me to stay in the web technologies department because we had a lack of people there and hiring is hard as shit, we do not do remote jobs since our work usually requires a level of discretion and security. Thus I have been working in the web tech department since she left albeit with a different title since I aced the interview for the analyst position and the team there were more than happy to have me. I have done very few things for them, some reports here and there and mostly working directly with the DBA in some projects. One migration project would have costed my institution a total of 58k and we managed to save the cost by building the migration software ourselves.....honestly it was a fucking cake walk, if you had any doubts about the shaddyness of enterprise level applications regarding selling overpriced shit with different levels of complexity, keep them, enterprise is shaddy af indeed. But I digress.
I wrote the specification for the manager position along the previous manager, we had decided that the next candidate needed to be strong with development knowledge as well as other things as to properly understand and manage a software team, we made the academic requirement(fuck you, yes we did ask for academic requirements) to be either in the Computer Science/software engineering area or at least on the Business Administration side. We were willing to consider BA holders in exchange for having knowledge of the development process of different products and a complete understanding of what developers go through. NOT ONE SINGLE motherfucker was able to satisfy this, some of them were idiots that I knew from before that had ABSOLUTELY no business even considering applying to the position, the courage it took for some of these assholes to apply would have hurt their mothers, their God if they had one, and their country, they were just that fucking bad in their jobs as well as being overall shit people.
Then we had 1 candidate actually fall through the cracks enough to get an interview. My dude here was lying out of his ass through the interview process. According to him he had "lots of Laravel experience and experience managing Laravel projects" and mentioned repeatedly how it would be a technology that we should consider for our products. I was to interview him alongside the vice president of our institution due to the head of my department and the rest of the managers for I.T being on vacation leave all at the same bloody time.
Backstory before the interview:
Whilst I was going over the interview questions with the vice president literally offered me the job instead. I replied with honesty, reflecting how I did not originally wanted him but feeling that our institution was ready to settle on any candidate due to the lack of potentials. He was happy to do it since apparently both him and the HOD were expecting me to step up sooner or later. I was floored.
Regardless, out of kindness he wanted to go through the interview.
So, going back to the interview. As soon as the person in question referenced the framework I started to ask him about it, just simple questions, the first was "what are your thoughts on the Eloquent ORM? I am not too fond of it and want to know what you as a full time laravel dev think of it"
his reply: "I am sorry I am not too familiar with it, I don't know what that is" <--- I appreciated his honesty in this but thought it funny that someone would say that he was a Laravel developer whilst not knowing what an ORM was since you can't really get away from using it on the initial stages of learning about Laravel, maybe if one wanted to go through the hurdle of switching to something like doctrine...but even then, it was....odd.
So I met with the hod when he came back, he was stoked at the prospect of having me become the manager and I happily accepted the position. It will be hell, but I don't even need to hit the ground running since I have been the face of the department since ages. My team were ecstatic about it since we are all close friends and they have been following my directions without complaints(but the ocational eat a dick puto) for some time, we work well together and we are happy to finally have someone to stop the constant barrage that comes from people taking advantage of a missing manager.
Its gonna get good, its gonna get fun, and i am getting to see how shit goes.7 -
I’ve come to the conclusion that developers who like react have never used it for anything even remotely complicated.
Because here’s reacts dirty little secret; it doesn’t scale. Not even a little. It’s flexible, but that leads to every developer writing their code in a different way.
It’s simple and easy for simple side projects, but as soon as you have to pass state to a child component, you’re fucked. And god help you if you’re modifying the state in said child component. You can try using redux, but that’s a bandaid solution to the real issue.
There are better alternatives, namely Vue. There’s no need to write unintelligible code that’s a mutated hybrid of html css and js. We as web developers realized mixing these technologies was a bad idea a long time ago.
React simply doesn’t scale. It’s flexibility, complexity, and the awful code quality it leads to makes it a nightmare for large projects with multiple developers
Some of its concepts are interesting and useful though. It’s functional concepts allow for easy code reuse, among the other benefits associated with functional programming
I sincerely hope that the hype around react dies out, and a new framework emerges that takes the best from react and fixes the glaring issues it currently has23 -
Got an assignment in school to make an easy project in c for embedded real time processors with a free complexity level (it was really early in the course and many had never been programming before).
Since I've been working a few years in development I decided to create an own transmitter and receiver for an own protocol between processors (we had just spent a week to understand how to use existing protocols, but I made my own).
The protocol used only 1 line to communicate with half-duplex and we're self adjusting the syncing frequency during the transmission. I managed to transmit data up to 1 kbps after tweaking it a bit (the only holdback was the processors clock frequency).
Then I got the feedback from our teacher, which basically said:
"Your protocol looks like any other protocol out there. Have you considered using an UART?"
Like yeah, I see the car you built there looks like any other car out there, have you considered using a Volvo instead?1 -
I think I might change my middle name to "I told you so"
Couple of weeks ago I proposed integrating a daily process job into an existing WPF application (details of what+why would be too long to explain) and the manager suggested I make the changes
Me: "I can do it, but Jay has the most experience with that application. I don't have his WPF skills"
Mgr: "How hard can WPF be? If it uses the MVVM pattern, it should be a snap."
Me: "Its nearly an 8 year old WPF project with several chefs in that kitchen. I pretty sure I could figure it out, but that is a difference between 2 weeks and 2 days. Integration is pretty straight forward, Jay could probably do it in a day."
DevA: "WPF is easy. MVVM makes it even easier. I worked on the shipping app."
Me: "That's was a brand new, single page app, but yea, it should be easy."
DevB: "WPF has been around a long time and the tools have really matured. I don't understand what is so difficult."
Me: "I didn't say anything would be difficult, I know with that application, there is going to be complexity we need to figure out."
DevB: "It uses the MVVM, so all we need is the user control, a view model, controller, and its done."
DevA: "Sounds easy to me."
Mgr: "If you need more time to work on the vendor project, I'll have DevB work on the integration."
<yesterday>
Me: "How is the integration going?"
DevB: "This app is a mess. I have no idea how they got the control collections to work. If I hard-code everything, I can get it to work. This dynamic stuff is so confusing. Then there is the styling. Its uses dark mode, but no matter what I do, my controls show up in light mode."
Me: "The app uses Prism, so the control configuration is in, or around, the startup code."
DevB: "That makes sense. Will it fix the styling too?"
Me: "I have no idea. When I looked at it, some controls loaded the styles from the main resource, other's have it hard-coded. Different chefs in the kitchen, I guess. How far have you got?"
DevB: "I've created invoice button. That is as far as I got"
Me: "I'm finished with the vendor project and I'll be wrapping up the documentation today. I can try to help next week."
DevB: "Thanks. I think we might have to get Jay to help if we can't figure this out."
Me: "Good idea"
Two weeks and only a button. A button? I miss Delphi.3 -
I just came across this piece of recursive code, as much as I can guess this should be an infinite recursion but somehow it executes and does terminate. Can anybody tell me how this happens and what will be it's time complexity ?15
-
uSE AnY pRogrAmMinG L@ngu@g3 yOu liKe.
1nTervi3weRs Do N0t CarE aBouT tHe L@nGuAge.
Fuck you. Stop asking time complexity or space complexity of functional code. No one fucking knows.19 -
"Ralph" has been working on a process that updates a field in a SharePoint list and bellying aching for almost a month. Couldn't use the C# client, too hard...tried to use the SharePoint REST entry point, using C# too complex...Javascript also was overly complex. Tried to use PowerShell, that worked but could only run on the SharePoint Server and it didn't have access to the 3rd party system.
In our stand up this morning, again, he was belly aching he is still not done because of the complexity of SharePoint.
I thought "Good lord...what the frack is the problem? Surely other devs in the world aren't having this much of a problem."
Fire up google...search for an example...copy the MSDN C# example...run it...tada...updated the SharePoint list just fine. Maybe 15 minutes of effort (< 20 lines of mostly copy+pasted code).
Next stand up, I'm contemplating calling him out on the BS, but I suspect he had working code for a while. Wouldn't be the first time he has dragged his ass working on a project until folks get fed up waiting and he has an "intellectual breakthrough" and brags how all his effort was worth the time. Similar to the firefighter who starts fires just so he can 'be the hero'.1 -
VIM! ViM! vim! Vi Improved! Emacs (Wait ignore that one). What’s this mysterious VIM? Some believe mastering this beast will provide them with untold mastery over the forces of command line editing. Others would just like to know, how you exit the bloody thing. But in essence VIM is essentially a command line text editor at heart and it’s learning curve is so high it’s a circle.
There’s a lot of posts on the inter-webs detailing how to use that cruel mistress that is VIM. But rather then focus on how to be super productive in VIM (because honestly I’ve still not got a clue). This focus on my personal journey, my numerous attempts to use VIM in my day to day work. To eventually being able to call myself a novice.
My VIM journey started in 2010 around the same time I was transiting some of my hobby projects from SVN to GIT. It was around that time, that I attempted to run “git commit” in order to commit some files into one of my repositories.
Notice I didn’t specify the “-m” flag to provide a message. So what happened next. A wild command line editor opened in order for me to specify my message, foolish me assumed this command editor was just like similar editors such as Nano. So much CTRL + C’ing CTRL + Z’ing, CTRL + X’ing and a good measure of Google, I was finally able to exit the thing. Yeah…exit it. At this moment the measure of the complexity of this thing should be kicking in already, but it’s unfair to judge it based on today’s standards of user friendly-ness. It was born in a much simpler time. Before even the mouse graced the realms of the personal computing world.
But anyhow I’ll cut to the chase, for all of you who skipped most of the post to get to this point, it’s “:q!”. That’s the keyboard command to quit…well kinda this will quit the program. But…You know what just go here: The Manual. In-fact that’s probably not going to help either, I recommend reading on :p
My curiosity was peaked. So I went off in search of a way to understand this: VIM thing. It seemed to be pretty awesome, looking at some video’s on YouTube, I could do pretty much what Sublime text could but from the terminal. Imagine ssh’ing into a server and being able to make code edits, with full autocomplete et al. That was the dream, the practice…was something different. So I decided to make the commitment and use VIM for editing one of my existing projects.
So fired the program up and watched the world burn behind me. Ahhh…why can’t I type anything, no matter what I typed nothing seemed to appear on screen. Surely I must be missing something right? Right! After firing up the old Google machine, again it would appear there is this concept known as modes. When VIm starts up it defaults to a mode called “Normal” mode, hitting keys in this mode executes commands. But “Insert” entered by hitting the “i” key allows one to insert text.
Finally I thought I think I understand how this VIM thing works, I can just use “insert” mode to insert text and the arrow keys to move around. Then when I want to execute a command, I just press “Esc” and the command such as the one for saving the file. So there I was happily editing my code using “Insert” mode and the arrow keys, but little did I know that my happiness would be short lived, the arrow keys were soon to be a thorn in my VIM journey.
Join me for part two of this rant in which we learn the untold truth about arrow keys, touch typing and vimrc created from scratch. Until next time..
:q!4 -
I want honest opinions. Do you think the following is a good or not so good interview question. Why or why not? Defend your argument.
Define a function where the input is a list of integers. It should find and return all the unique sets of three within the list that sum to x.
For example, given the list [1, 3, 2, 5, 6, 8, 10, 13, 15] and with x = 16, the function would return [(10,5,1), (13,2,1)]
If the candidate presents the trivial solution with time complexity of o(n^3), ask if can be done in o(n^2) or better.8 -
fuck time zones and time changes, why the fuck we don’t have one time on the planet and one date that is just day.
No month, no years - all the complexity would be gone, day wouldn’t have 24 hours but it would be something more precise, there won’t be a second
time that earth goes around sun is
365,25964 days
31558432896 milliseconds
we should start count time differently so it’s not relative in space time continuum, what should be relative is the mass38 -
Programming contest assignments, first level:
1. "...if you don't know how to return values from a function, you can just print them"
2. "...if you don't know how to read files, you can assume data is in global variables"
3. Required recursion
4. "...and estimate its time complexity.", "You may pre-process the data, but use at most o(n^3)", "your algorithm must use under n^3 operations"
That escalated quickly!1 -
Interesting..
From the book Effective Java, third edition:
"1997, when Java was new, James Gosling (the father of Java), described it as a
“blue collar language” that was “pretty simple” [Gosling97]. At about the same time,
Bjarne Stroustrup (the father of C++) described C++ as a “multi-paradigm language”
that “deliberately differs from languages designed to support a single way of writing
programs” [Stroustrup95]. Stroustrup warned:"
"Much of the relative simplicity of Java is—like for most new languages—
partly an illusion and partly a function of its incompleteness. As time passes,
Java will grow significantly in size and complexity. It will double or triple in
size and grow implementation-dependent extensions or libraries."
Bjarne Stroustrup (the father of C++)6 -
Hey guys! lambda is amazing! Docker containers! They said the whole amazing point with containers is that they run the same everywhere! Except not really, because lambda 'containers' are an abomination of *nix standards with arbitrary rules that really don't make sense! That's ok though, you can push your shit to fargate, then it will work more like those docker containers you know and love and can run locally! Oh wait! fargate is a pain in the ass x 2 just to setup! You want to expose your REST api running on a container to the world? well ha, you'd better be ready to spend literally 2 weeks to configure every fucking piece of technology that every existed just to do that!!!! it's great, AWS, i love it, i'm so fucking big brained smart!!!
give me a break.... back in my day you'd set up an nginx instance, put your REST / websocket / graphQL service whatever behind it, and call it a day!!!!!!!
even with tools like pulumi or terraform this is a pain in the ass and a half, i mean what are we really doing here folks
way too complicated, the whole AWS infrastructure is setup for companies who need such a level of granularity because they have 1 billion users daily... too bad there are like 5 companies on the planet who need this level of complexity!!!!!!!
oh, and if your ego is bashed because of this post, maybe reread it and realize you're the 🤡
i'm unhappy because i was lied to. docker containers are docker containers, until they aren't. *nix standards are *nix standards, until they aren't
bed time.12 -
Small company, sole engineer. Non-tech management. Increasingly fancy job titles despite working alone most of the time, with the promise of hiring someone (again) I can actually manage soon.
Backlog of projects/tasks is truly a mindfuck, with new things being added each week. This backlog will never ever get done, and nothing matters anyway because the next idea is "the future", all the time.
While I have influence on some aspects of decision making, it usually ends up being what the boss wants. Actively opposed a project because it's just too big of an undertaking, it was forced through anyway. I'm trying to keep the scope manageable as I'm building it now, and it's hard.
"It's the future, we absolutely have to do this. It will be the biggest thing we've ever done."
Boss's excitement then quickly faded since it's actually in development, now nobody really seems to want to know where it's at, or how it will all work. I need to scope it out, with the knowledge that many decisions boss signed off will be questioned when he actually looks at it. We now have even more "exciting" ideas of utter grandeur. Stuff that I can't even begin to comprehend the complexity of, while struggling to keep a self imposed deadline on the current one.
Every single morning we sit on Zoom for a "valuable" "catch-up". This is absolutely perfect for one thing: Completely destroying whatever drive and focus I have going into the day. Unrelated topics, marketing conversations, even more ideas, ideas for ideas sake, small problems blown out of proportion, the list goes on. I recently argued in detail why it should be scrapped or at least be optional to attend. No luck, it's "valuable".
Today a new idea was announced, and we absolutely have to do it ASAP because it can only be better than the current solution. I raise my concerns, saying it's not as easy as you make it out to be, we should properly think about it. Nope! We'll botch something to prove that it works... So you'll base your decision whether it's good on some half ass botch job that nobody really has the mental capacity to actually pay attention to. What a reliable way to measure!
"Our analytics data isn't useful enough to tell us the impact of things we do. We (you) have to fix this." Over the last 2 or so years, I've been pushing for an overhaul and expansion of our data analysis capabilities for exactly this reason. Integrating different data sources into a unified solution so we can easily see what we're doing, etc. Nope, never happened.
The new project idea which is based on wild assumptions is ALWAYS more important than the groundwork.
Now when I mentioned that this is what I wanted to do all along, it got brushed aside. "We don't need to do anything complicated, just fix this, add that, and it's done. It should be an easy thing to do. This is very important for our decision making." Fine, have it your way.
I'm officially burned out. It's so fucking hard to get myself to focus on my work for more than an hour or two. I started a side project, and even that effort is falling victim to my day-job-induced apathy.
I'm tempted to hand in my resignation without another offer on the table. I just need time to rediscover my passion, and go job hunting from that position, instead of the utter desperation of right now.
If you've read through all this rambling, kudos to you!8 -
A /thread.
I have to say something important. As the story progresses, the rage will keep fueling up and get more spicy. You should also feel your blood boil more. If not, that's because you're happy to be a slave.
This is a clusterfuck story. I'll come back and forth to some paragraphs to talk about more details and why everything, INCLUDING OUR DEVELOPER JOBS ARE A SCAM. we're getting USED as SLAVES because it's standardized AS NORMAL. IT IS EVERYTHING *BUT* NORMAL.
START:
As im watching the 2022 world cup i noticed something that has enraged me as a software engineer.
The camera has pointed to the crowd where there were old football players such as Rondinho, Kaka, old (fat) Ronaldo and other assholes i dont give a shit about.
These men are old (old for football) and therefore they dont play sports anymore.
These men don't do SHIT in their lives. They have retired at like 39 years old with MULTI MILLIONS OF DOLLARS IN THEIR BANK ACCOUNT.
And thats not all. despite of them not doing anything in life anymore, THEY ARE STILL EARNING MILLIONS AND MILLIONS OF DOLLARS PER MONTH. FOR WHAT?????
While i as a backend software engineer get used as a slave to do extreme and hard as SHIT jobs for slave salary.
500-600$ MAX PER MONTH is for junior BACKEND engineers! By the law of my country software businesses are not allowed to pay less than $500 for IT jobs. If thats for backend, imagine how much lower is for frontend? I'll tell you cause i used to be a frontend dev in 2016: $200-400 PER MONTH IS FOR FRONTEND DEVELOPERS.
A BACKEND SOFTWARE ENGINEER with at least 7-9 years of professional experience, is allowed to have $1000-2000 PER MONTH
In my country, if you want to have a salary of MORE THAN $3000/Month as SOFTWARE ENGINEER, you have to have a minimum of Master's Degree and in some cases a required PhD!!!!!!
Are you fucking kidding me?
Also. (Btw i have a BSc comp. sci. Degree from a valuable university) I have taken a SHIT ton of interviews. NOT ONE OF THEM HAVE ASKED ME IF I HAVE A DEGREE. NO ONE. All HRs and lead Devs have asked me about myself, what i want to learn and about my past dev experience, projects i worked on etc so they can approximate my knowledge complexity.
EVEN TOPTAL! Their HR NEVER asked me about my fycking degree because no one gives a SHIT about your fucking degree. Do you know how can you tell if someone has a degree? THEY'LL FUCKING TELL YOU THEY HAVE A DEGREE! LMAO! It was all a Fucking scam designed by the Matrix to enslave you and mentally break you. Besides wasting your Fucking time.
This means that companies put degree requirement in job post just to follow formal procedures, but in reality NO ONE GIVES A SHIT ABOUT IT. NOOBOODYYY.
ALSO: I GRADUATED AND I STILL DID NOT RECEIVE MY DEGREE PAPER BECAUSE THEY NEED AT LEAST 6 MONTHS TO MAKE IT. SOME PEOPLE EVEN WAITED 2 YEARS. A FRIEND OF MINE WHO GRADUATED IN FEBRUARY 2022, STILL DIDNT RECEIVE HIS DEGREE TODAY IN DECEMBER 2022. ALL THEY CAN DO IS PRINT YOU A PAPER TO CONFIRM THAT I DO HAVE A DEGREE AS PROOF TO COMPANIES WHO HIRE ME. WHAT THE FUCK ARE THEY MAKING FOR SO LONG, DIAMONDS???
are you fucking kidding me? You fucking bitch. The sole paper i can use to wipe my asshole with that they call a DEGREE, at the end I CANT EVEN HAVE IT???
Fuck You.
This system that values how much BULLSHIT you can memorize for short term, is called "EDUCATION", NOT "MEMORIZATION" System.
Think about it. Don't believe be? Are you one of those nerds with A+ grades who loves school and defends this education system? Here I'll fuck you with a single question: if i gave you a task to solve from linear algebra, or math analysis, probabilistics and statistics, physics, or theory, or a task to write ASM code, would you know how to do it? No you won't. Because you "learned" that months or years ago. You don't know shit. CHECK MATE. You can answer those questions by googling. Even the most experienced software engineers still use google. ALL of friends with A+ grades always answered "i dont know" or "i dont remember". HOW IF YOU PASSED IT WITH A+ 6 DAYS AGO? If so, WHY THE FUCK ARE WE WASTING YEARS OF AN ALREADY SHORT HUMAN LIFE TO TEMPORARILY MEMORIZE GARBAGE? WHY DONT WE LEARN THAT PROCESS THROUGH WORKING ON PRACTICAL PROJECTS??? WOULDNT YOU AGREE THATS A BETTER SOLUTION, YOU MOTHERFUCKER BITCH ASS SLAVE SUCKA???
Im can't even afford to buy my First fuckinf Car with this slave salary. Inflation is up so much that 1 bag of BASIC groceries from Walmart costs $100. IF BASIC GROCERIES ARE $100, HOW DO I LIVE WITH $500-600/MONTH IF I HAVE OTHER EXPENSES?
Now, back to slavery. Here's what i learned.
1800s: slaves are directly forced to work in exchange for food to survive.
2000s: slaves are indirectly forced to work in exchange for money as a MIDDLEMAN that can be used to buy food to survive.
????
This means: slavery has not gone anywhere. Slavery has just evolved. And you're fine with it.
Will post part 2 later.8 -
An intern approached me for help in one of their past exam questions. They said they had already turned in the exam but just wanted to know the answer. The question was not that hard and I had a bit of time to kill so I helped them.
Me: So, to make it O(n), you have to make it a double linked list, and keep a tail.
Them: But the problem requires us to solve it with a single liked list.
Me: You can just iterate it at the end to make it single-linked again. That costs O(n), so the solution is still O(n).
Them: Oh yeah right. I don't think we even need a tail though, we could just have a variable pointing to the last link.
Me: ...which is called a tail.2 -
Been hacking frontend for a while, know most of the perks and tricks of css and html, have implemented countless of projects with angularjs, have even created jquery plugins and gulp packages, have won hackatons in UX design.... Still, a SFO company turned me down for a front end dev position cause I could not find the K most frequent words in an array in O(n) time complexity...3
-
Hey fastlane!
Great tool and all, but your documentation is at 🤡 levels, I need to read 20+ pages to get a full overview and understanding. So far I've had to read a dozen plus blogs and stackoverflow posts to find hidden flows (authentication first to do this, etc. etc. etc.)
Don't market your tool as "reducing complexity & saving time" and showing one-liners in the docs when in reality there are lots of hidden steps and NOT one-liners!!!!!!
This is why everyone complains it takes 1-2 days to just get a freaking pipeline working!!!!🤡 -
When I interview a super cocky candidate:
"Write a merge sort algorithm that works in linear time complexity."5 -
i am a weak developer, i dont know that much of what im doing, unexpected things come up, i dont like time estimates (estimating time is harder than complexity estimates), some school of thoughts dont like estimates https://youtube.com/watch/...
my manager posed a thought exercise to me, imagine im a contractor (im not, clearly not skilled enough to be) , contractors can estimate how much time precisely a task will take to do their work, get jobs, etc
is it possible to learn this power? how does one git so gud, walk in learn how existing code base works, change, edit , build on top of it, ideally doing quality work9 -
My job environment is either fucked up or am too young to understand what a job life is.
I was hired to intern for a startup having 2 main bosses/founders . one of them is mostly administrative and comes to office daily. He sets some tasks and i have to complete them, as soon as possible or sometimes till a deadline. He has little knowledge about the complexity of wotk so usually he says "just complete it as soon as possible so we could release it" but we haven't pushed any updates since i joined (of course i have completed some tasks, but they are just not pushed to the release version)
The other one , as i ranted previously is a completely different story.I think he is an elder bro or senior of the other boss,but he is just a superman: dealing with the distributers, commanding the hardware ppl, discussing with the othr boss, handling the server and most importantly the guy who wrote all the code i am working on. So he comes extremely rarely(1 or 2 days / week) , tries to communicate with me , but is immediately diverted by some other call/person and goes away.
The problem is : am feeling a little helpless. They give me tasks and i start working on them with excitement .( I don't believe myself to be a terrible beginner: i have been learning/working on android development for past 1 year, i know my things. And even if i don't, i know how to search/debug and produce results) . So as usual, i start and try to apply my skills / search for things i don't / try to understand his large,overwhelming and confusing codebase and at the end am stuck at some point where i don't understand what to do next. Sometimes its a bug which doesn't seems to fix, sometimes its a thing thats in the codebase but i couldn't find or sometimes it's just something i couldn't seem to understand why isn't it working. At that time, I only wish that boss to be here and look at what and how i have done, if its a correct approch and how can we together take it to completion (or simply wtf am i doing wrong, see my shit and tell me) .
But again, the tech boss is busy or wouldn't have time to understand my problem in our short , incomplete meetings. But he or the nontech boss will definitely have the time to ask the sttus of project and pressurise for the "deadline" .
Like today, i was so stuck at this fucking one line error that i couldn't detect that i just messaged him that am leaving for home 3 hours early. He came running and for the first time in history gave me a complete undisturbed time. It was such a small mistake, but i wasn't able to catch on my own. But when i told him, he immediately caught , changed a single line and the code started to work.
I am feeling irritated. Is this all a correct environment?2 -
// O(n²) complexity
for(x;y;z){
for(a;b;c){
}
}
Dev's argument: "We use this everywhere, as long as it gets the job done! Time is money!" How ironic..
So you would rather make your processing speed suffer for the sake of saving time? No, clean code doesn't matter. No, we should not waste time spending even a mere microsecond thinking about writing better code or at least consider it. No, we should just vomit out bad code at top speed. Good idea, guys. Idiots everywhere..6 -
Today I finally experienced the power of something I learned in university: propositional and predicate logic.
Many developers I know think that such education is useless. Well, today I have proven that it is very useful. On a day to day basis, working on banking software, complexity in purely logic is very low. However, we have a screen that must show or hide elements based on some input values and conditions associated with certain elements. How hard can that be, right? Well, there are many variables to take into account and as such it's absolutely not trivial.
This screen didn't work properly and maintaining the code is hard as there is a lot of logic to show/hide, enable/disable things and so on. After quite some time and attempts by fellow developers, I decided to refactor the whole thing. I'm responsible for the quality of the software and it was quite degrading, so I had to do something.
In order to get things working properly, I defined collections of constants (ui elements) and predicates. Then, I defined for which element what predicates must be true, in order to hide/show, disable/enable etc. I then translated these predicates into code. And guess what? It works! Of course it works. It's logic. But I'm very pleased I finally could actually use some of all the math I studied!5 -
I definitely made a channel in the dev Slack I'm in for algo practice with the description bigOHNOtation.3
-
Sometimes I feel guilty when someone has worked on some unquoted bit of work that they've invested some time in and everyone gives a low quote in poker planning - tend to give a little extra complexity points for them, gotcha back bro 👍1
-
The amount of energy spent to just write ‘Hi’ and click a send button is so big that we should consider banning of sending hi messages.
Instead of just saying “Hi!” we are now using analog to digital preprocessors that convert it to bunch of 0 and 1 to send it over communication layer and deliver it to other human being that will convert it from digital to analog by reading it but that is simple.
By sending message using phone we also:
- save it to local phone
- convert it to couple protocols
- transmit it over air so make connection to internet provider services that would generate logs on this provider as well as whole routing table before it gets to the target person
- save it on messaging provider disk
- probably be processed by filters by provider, sometimes be reviewed or listened by third parties and also processed in bulk by artificial intelligence algorithms
- finally delivered to target phone and saved there where that person would just change this text to their inner voice and save it
- sometimes encrypted and decrypted
- sometimes saved on provider
- sometimes saved on phone manufacturer cloud backup
- don’t get me started on people involved to keep this infrastructure in place for you just to say hi
There are also some indirect infinite possibilities of actions for example:
- emit sound and light that can lead to walking from one room to other
- the floor in your house is destroyed cause of it so you need to renovate your floor
- sound can expose your position and kill you if you’re hiding from attacker
- sound can wake you up so you wake up in different hours
- it can stop you from having sex or even lead to divorce as a result simple hi can destroy your life
- can get you fired
- can prevent from suicide and as a result you can make technology to destroy humans
and I can write about sound and light all day but that’s not the point, the point is that every invention makes life more complicated, maybe it saves time but does it really matter ?
I can say that every invention we made didn’t make world simpler. The world is growing with complexity instead.
It’s just because most of those inventions lead to computer that didn’t make our world simpler but made it more complicated.1 -
they say everything "old" is better, but in programming, dependencies in C was a mess. Shut up. Sometimes C is a cult enforced by those who don't even write in C. Now I build my projects with Parcel in less than a second with no configuration. It uses a full-blown AST for everything. If I want more performance with similar DX, I use fastpack, bringing build time down to tens of milliseconds.
art? charli xcx, sophie xeon, death grips, just to name a few. they made things that weren't imaginable before, ultimately pushing music forward. Hendrix is good but they're just incomparable in terms of beauty, complexity and sophistication.
literature? every old book I read feature same conflicts. they are so similar it's almost boring to read them. meanwhile, Erlend Loe delivers a complex idea without using a conflict (!) and without any character changes. that's insane.
"older is better" is getting old. it's time for you to seek for some other reusable gibberish to insult what other people create.
finally, let me remind you that you, my friend, create nothing.46 -
Today I want to put an age-old question to rest. What is art and what is not? What's the difference? In art world, there is actually a consensus that was reached in the second half of 20th century.
First, the audience has no merit to decide what's art and what's not, as art has inherent characteristics. So whether a piece is art or not is left for the artist to decide.
But the artist too cannot just call anything they make art. There is just one criterion — if only the art piece itself is enough to justify its making, and the artist sees it as the only award they need for making it, it's art. Otherwise, it's not.
"But wait, that's not entirely correct, this is incomplete", you say. Well, it's in fact complete, but because our society progressed way faster than our languages, we're having a hard time to describe novel complex things with words. Language can't keep up with rising complexity.
We use "horseless carriages" instead of "cars" when we describe anything complex enough. The good explanation of how language works and why do we act like this is outlined beautifully in Benjamin Bratton's "The New Normal". A small book of forty-something pages, but I never spent that much time on every page in my life. The best book investment for me after "The Code Complete".22 -
at one point in time, i had to work with a really junior backend team, they used javascript and neo4j as the database for an in-house developed community forum because "graph databases made sense" in the eyes of their tech lead
turns out that the team struggled quite a bit with it, and had some "unexpected complexity" problems when i asked them to add filters and sorting on the post endpoints
in the end, the "solution" they gave me was an endpoint that spewed ALL the posts so i could sort it in the front end
had they kept the same relational database they were using for the rest of the whole project, i'm quite sure it wouldn't take much to implement that (and their architecture was really performatic)
as a side project i rebuilt the whole forum in a weekend, but using postgresql as database, and it worked nicely, i even added some unit tests just for fun
gave myself a really big slap in the face after that, though1 -
Reminded again why every professional developer should at least read and understand basic algorithms...
Colleague: I don't understand why this agregation query is so slow, the counting is on the DB.
This function used to work fine... Now it sometimes hangs.
Me thinking: why does everyone assume db has unlimited resources and computing power so everything should be quick (no time or space complexity)...
Maybe if everyone understood this stuff our code base wouldn't be so shitty from the start...8 -
2 years back when I was onshore, we were in the bad situation due to the size and complexity of handling big webserivces simulators. A single change makes the build red hence the face of other developers too.
These simulators were created using J2EE and VM templates 5 years back. With the time, application and data size grown. We were supposed to maintain consistensy in dummy data accross the applications. But some programmers made a copy of these simulators to finish their applications fast and made the situation worst.
Finally one of the team member dare to use stubby4j to solve this problem. Choosing the stubby4j was a good decision as it was the specialized tool written to create simulators only. But as the stubby4j was not having all the features a simulator need, he customized it's build for our simulators. All the team members were happy.
After few weeks, I picked a story to transform other simulators using stubby4j. The story was previously closed as it was hard to implement in stubby4j. I ingonred the comment and started working on. I spent 2 weeks but couldn't solve the problem. I read the comment in between but It was very late to take the step back. I was not able to give proper status update in the daily standup. Other team members (working from offshore) were thinking that I'm just passing the time. However my manager handled the situation very well and asked if I need some help.
This was friday, I took the leave as it was my wife's birthday. We couldn't go out due to the bad weather. I was thinking about the code all the time. Hence I started to write a new utility to handle all the requirement a webseervice simulator need. I took 2.5 days to complete it. On Tuesday, I demoed it to the whole team. And published it as an opensource application "STUBMATIC". In few weeks I received the good response from other teams as well.
I'm a full time open source developer now. -
>Be me, humble physicist turned quantitative developer
>Big physics nerd, but code for the cash
>Working on some quantitative finance software, all about risk measures
>Girl comes over one day, cute as a quark
>Think to myself, "This is it, time to make a move"
>Instead, brain decides it's time to explain my work
>Start rambling about refactoring, polymorphism, and data encapsulation
>She's looking at me like I've started speaking in binary
>She tries to steer the conversation back to normal stuff, but I'm stuck in a recursion loop
>Keep going on about my project, can't seem to stop myself
>She tries to stay longer, even tries to show interest in my work
>But the more I talk about algorithms and time complexity, the more her eyes glaze over
>Eventually, she gives up, says she has to leave
>She leaves, probably thinks I'm more interested in my code than her
>mfw I realize I've chosen code over companionship
>Why am I like this?10 -
Does anyone else find it strange that the stupidest people in the company are making all the decisions.
In order to be able to engineer software you have to understand everything that the product owner knows, the business analyst knows, the product manager knows + how to actually make the system both work in a reasonable time frame and be maintainable long-term.
But we're not the one making the decisions. The irony of it is something that I can't get beyond.
And when I do go out on a limb to point out a logical inconsistency to UX or product... They don't thank me for it they hate me for it and then 3 days later figure out that they should be doing it and quietly follow my suggestions.
Seriously is the goal here to create good software or to avoid stepping on everyone else's toes in the company who is overwhelmed by the complexity of the project.
I think companies based on a hierarchy of non-technical people controlling technical people, in the creation of software products are a dying breed.
When it comes to creating software products everyone in the hierarchy should be technically minded.
I've seriously been trying to come up with an alternative perspective here.
The executives of the company are completely out of touch and the only thing which looks like progress to them in a sprint review is something visual on the front end.
The technical architect, the product owner and the product manager all seem to be engaged in keeping the executives happy and managing their expectations. By means of obscuring the truth.
Imagine how much more cost-effective building a software product would be if the executives were engineers themselves.
I'm keen to do an experiment and build a company comprised of engineers only.
Obviously they need to have insight into the other roles. But none of these other roles are as complex as implementation itself.
So why exactly are we the slaves of these well-meaning under thinkers?7 -
The Odyssey of the Tenacious Tester:
Once upon a time in the digital kingdom of Binaryburg, there lived a diligent software tester named Alice. Alice was on a mission to ensure the flawless functionality of the kingdom's latest creation – the Grand Software Citadel.
The Grand Software Citadel was a marvel, built by the brilliant developers of Binaryburg to serve as the backbone of all digital endeavors. However, with great complexity came an even greater need for meticulous testing.
Alice, armed with her trusty testing toolkit, embarked on a journey through the intricate corridors of the Citadel. Her first challenge was the Maze of Edge Cases, where unexpected scenarios lurked at every turn. With a keen eye and a knack for uncovering hidden bugs, Alice navigated the maze, leaving no corner untested.
As she progressed, Alice encountered the Chamber of Compatibility, a place where the Citadel's code had to dance harmoniously with various browsers and devices. With each compatibility test, she waltzed through the intricacies of cross-browser compatibility, ensuring that the Citadel would shine on every screen.
But the true test awaited Alice in the Abyss of Load and Performance. Here, the Citadel's resilience was put to the test under the weight of simulated user hordes. Alice, undeterred by the mounting pressure, unleashed her army of virtual users upon the software, monitoring performance metrics like a hawk.
In the end, after days and nights of relentless testing, Alice emerged victorious. The Grand Software Citadel stood strong, its code fortified against the perils of bugs and glitches.
To honor her dedication, the software gods bestowed upon Alice the coveted title of Bug Slayer and a badge of distinction for her testing prowess. The testing community of Binaryburg celebrated her success, and her story became a legend shared around digital campfires.
And so, dear software testers, let the tale of Alice inspire you in your testing quests. May your test cases be thorough, your bug reports clear, and your software resilient against the challenges of the digital realm.
In the world of software testing, every diligent tester is a hero in their own right, ensuring that the digital kingdoms stand tall and bug-free. -
I found out the importance of time complexity. It might not seem like a big difference between O(1) and O(2). But there's a big difference hardcoding 500 lines and 1000 lines of data.
I made a navigation app for school using dijkstra's algo. However it had no data available so I had to hardcode it. Long story short, there was a ton of hardcoding. Always try to improve the time complexity of the code you write.2 -
Tips on getting promoted on work:
1. Collect a list of all improvements and achievements that u did during your time in that workplace
2. Compare your output with your colleagues output, check their MR's, their complexity and compare with yours.
3. Talk with your manager about a raise. Tell him about your achievements, like maybe you are working on a wider scope than others. Maybe you are mentoring junior devs. Or maybe you deal with a bigger workload than others but still deliver on time. Maybe your communication is good or maybe you document stuff very well and in that way you make your team more efficient and increase team output. Whatever. Pitch and sell yourself. Also provide some personal reasons why you need a raise, like maybe u have kids or maybe your rent doubled. Inflation and so on. Selling point is that u are a human not a greedy bastard.
At the end of that talk the manager most likely will say that he needs to speak higher ups, he needs to gather feedback from your colleagues and so on. Give him a week or two if possible, no more.
He will probably get back to you with an offer. If there is none start applying, get an offer and put in your notice. In my case I waited 3 months for my raise to go through. I put in my notice, had a stressed call from manager, showed him my offer and my raise was arranged the next day. -
Do you know why my mom likes me so much?
Because my mom asked me to heat up all the food. And I did it in O(1).2 -
Dev boy to Dev girl: "What's the time complexity on you loving me, baby?"
Dev girl: while(iExist){
Int n = Random.Next(1, 100);
for(int i =1; i < n^4; i++){
Console.Write("..."); } }
Dev boy: Assert.Fail(); -
Production goes down because there's a memory leak due to scale.
When you say it in one sentence, it sounds too easy. Being developers we know how it all goes. It starts with an alert ping, then one server instance goes down, then the next. First you start debugging from your code, then the application servers, then the web servers and by that time, you're already on the tips of your toes. Then you realize that the application and application servers have been gradually losing memory over a period of time. If the application is one that don't get re-deployed ever so often, the complexity grows faster. No anomaly / change detection monitor can detect a gradual decrease of memory over a period of months.2 -
Note to devs here. Please don't choose a framework for the hype at your work. Use it on your own time or company hackaton/learning time.
I'm looking at you angular.
Production ready doesn't mean sanity ready.
Now because some dev choose such technology for arbitrary reasons. (hype, latest acronym on CV). I spend more time debugging and understanding than I would if some simpler technology was chosen. Look at all the options then choose the simplest one that has and seems to have active maintenance. Zen of python is the best thing to happen in programming and I think everyone, even if you don't like Python should follow it. Save you and your colleagues brain time and ask for advice.
Also IMO react is probably third or second best option, higher if one requirement is to be react native. Angular is even lower because it's complexity is unforgivable when a dev has not enough front-end experience.8 -
I may have accidentally found a legit factorization method that converts factoring to a combinatorics problem over a graph, with a time complexity that is the factorial of the logarithm of the semi prime being factored.
I don't know if this is supposed to be good or not, and I don't want to post it prematurely like I almost always do. Not at least until I study its properties better, but it's still a pretty interesting find I think.11 -
Data scientists unite!
I am working on a face recognition solution to identify and tag different faces in real time and currently using chinese whispers algorithm for clustring. The more I think about it the more inadequate it sounds (number of faces encoded increase over time thus the complexity). I've heard about YOLO but cant really decide. Please enlighten me!7 -
At an interview, interviewer keep on hitting me with theoretical questions, why python don't have switch cases, what is default sorting in java etc... I told him I don't bother about theory, then this conversation happened.
I(Interviewer)
I: do you know time complexities?
me: Yes
I: okay, tell me a few sorting or searching algorithms which have logarithmic complexity?
me: binary search (with loud and confident voice)
I: he told, in worst case it will have O(n) tell me any other
me: *thinking*
I: what are you thinking? what is time complexity of merge sort
me: O(nlogn)
i: it's logarithmic.... -
Oh my freaking gosh! Okay so im "lead tech" on the robotics team. Ive come up with several ways we can improve our system. I had it all planed out and calculated but when i run it by the teacher running the team, EVERY SINGLE FRICKING TIME they shoot it down and they say "that just adds another layer of complexity" and I just want to yell because sure its a bit more complicated but so the fuck what?!?!? It works (theoritically according to math) efficiently and more efficiently than what their doing which is almost unknown to me because why the fuck not?! And omg i sware my entire team has the attentionspan of an ant because any time i need them to explain something, they get dustracted with whatever the hell they get distracted with and they NEVER SHUT THE FUCK UP. Any who other than that being super annoying thats not the point. Point is, the fucking teacher is afraid of making things a bit more complicated for no good reason and ever idea i have they shoot it down so (even as lead tech, and main programmer) i feel extra useless and im not gonna be here next year, so idk what the fuck there gonna do when i leave. (Like seriousally, im not even being conceded, ive been programming for several years. The other programmers have no idea what there doing) but if they dont learn that complexity isnt bad this team will NEVER get higher in the competition.4
-
What do you guys think of code review? It was supposed to find potential mistakes in your code base, and share your knowledge with your co-workers, right?
In fact I have very bad experiences with code review, not just with 1 company, but quite a few. Code review process always comes to something like this:
Reviewer: Hey, I don't like your solution A because of disadvantages A1. You should implement solution B, because of advantage B1 blah blah...
Me: Yes, it's true that solution B provides advantage B1, but at the same time introduces much more complexity to the code base than necessary, and has disadvantage B2. I am aware that solution A has disadvantage A1 but it is justifiable and easier to overcome than B2 imo. In fact, solution A also provides advantage A2 that you might not know...
Reviewer: No, you HAVE TO implement B because of advantage B1 blah blah *repeating why B1 is awesome again*
I feel like it's just people trying to shove their preferences down my throat. Either code review is useless, or the companies I work for do something very very wrong in code review. Anyway, it's really discouraging me fron participating in team discussions.5 -
"Delete all code!" That should be the mantra!
Was watching some stuff from destroyallsoftware.com. Not entirely convinced. So I should cook up my own shit.
So here is how the argument goes:
There's quite some negativity in the term "legacy" software. Partly it may be the envy to software that runs on actual machines and is not that phantasm, that perfect first lines on a greenfield project until it gets messed up as it has to put up with all the real world messiness. But the negativity it deserves is actually for the code that we cannot get rid of. This ugly class or function that soaked all the complexity and functionality so it defies any positive change. And always when it appears on your screen, it irks you, enrages you, makes you punch the screen, because you can almost feel the distaste physically. - *That* is the definition of "legacy" in its true negativity. No software should be like that. On the contrary. Every line should be replaceable, dispensable, disposable. At the verge to deletable. Because you know: the best code is no code.
This is where my hatred of code could get productive: Delete all the wretched, loathsome stuff and replace it, with something that just sucks less and can be thrown away any time. Don't expect beauty or perfect design. It'll never finish.3 -
So I have question about my resume.
During my college time, I have done two projects related to politics:
One is to analyze the bias of media. What I did is scrape news covers for Trump and Hillary during election year and get sentiment analysis. The result is not surprising that among NY Times, NBC, Fox, Eashington Post, and CNN, Fox news is clearly favoring Trump, since Fox news is a republican news site.
The other project I did was to analyze the speech complexity and sentiment of the election. One of the observation we made was that Hillary and Trump are almost at the same level regarding speech complexity. However, Trump has a more positive sentiment in the speech, which is true consider how much he loves to say make America great again.
Now the question is, when I gave my advisor my resume, she said that I'd better not put those two projects on my resume since they are related to politics.
But, I am applying for a data science master degree. Seriously, I was just collecting the data and the data speaks for himself, why should I take those projects off my resume? I'm very proud of those projects I did as a matter of fact.
So here is the question. Shall I take off those two projects on my resume because they were political or I should leave it thereawarreally need some professional views. Please.1 -
Very Long, random and pretentiously philosphical, beware:
Imagine you have an all-powerful computer, a lot of spare time and infinite curiosity.
You decide to develop an evolutionary simulation, out of pure interest and to see where things will go. You start writing your foundation, basic rules for your own "universe" which each and every thing of this simulation has to obey. You implement all kinds of object, with different attributes and behaviour, but without any clear goal. To make things more interesting you give this newly created world a spoonful of coincidence, which can randomely alter objects at any given time, at least to some degree. To speed things up you tell some of these objects to form bonds and define an end goal for these bonds:
Make as many copies of yourself as possible.
Unlike the normal objects, these bonds now have purpose and can actively use and alter their enviroment. Since these bonds can change randomely, their variety is kept high enough to not end in a single type multiplying endlessly. After setting up all these rules, you hit run, sit back in your comfy chair and watch.
You see your creation struggle, a lot of the formed bonds die and desintegrate into their individual parts. Others seem to do fine. They adapt to the rules imposed on them by your universe, they consume the inanimate objects around them, as well as the leftovers of bonds which didn't make it. They grow, split and create dublicates of themselves. Content, you watch your simulation develop. Everything seems stable for now, your newly created life won't collapse anytime soon, so you speed up the time and get yourself a cup of coffee.
A few minutes later you check back in and are happy with the results. The bonds are thriving, much more active than before and some of them even joined together, creating even larger bonds. These new bonds, let's just call them animals (because that's obviously where we're going), consist of multiple different types of bonds, sometimes even dozens, which work together, help each other and seem to grow as a whole. Intrigued what will happen in the future, you speed the simulation up again and binge-watch the entire Lord of the Rings trilogy.
Nine hours passed and your world became a truly mesmerizing place. The animals grew to an insane size, consisting of millions and billions of bonds, their original makeup became opaque and confusing. Apparently the rules you set up for this universe encourage working together more than fighting each other, although fights between animals do happen.
The initial tools you created to observe this world are no longer sufficiant to study the inner workings of these animals. They have become a blackbox to you, but that's not a problem; One of the species has caught your attention. They behave unlike any other animal. While most of the species adapt their behaviour to fit their enviroment, or travel to another enviroment which fits their behaviour, these special animals started to alter the existing enviroment to help their survival. They even began to use other animals in such a way that benefits themselves, which was different from the usual bonds, since this newly created symbiosis was not permanent. You watch these strange, yet fascinating animals develop, without even changing the general composition of their bonds, and are amazed at the complexity of the changes they made to their enviroment and their behaviour towards each other.
As you observe them build unique structures to protect them from their enviroment and listen to their complex way of communication (at least compared to other animals in your simulation), you start to wonder:
This might be a pretty basic simulation, these "animals" are nothing more than a few blobs on a screen, obeying to their programming and sometimes getting lucky. All this complexity you created is actually nothing compared to a single insect in the real world, but at what point do you draw the line? At what point does a program become an organism?
At what point is it morally wrong to pull the plug?15 -
Folks, it's happening!
Look at this shit: they managed to create a web editor / infrastructure technology which enables you to write backends blazingly fast. No deploy time, no git (versioning with feature flags).
Sadly, this comes with the worst vendor lock-in ever. But it is still a great idea to take the approach to drastically remove complexity out of today's software.
https://darklang.com/
I am torn. But I would prefer if it was OSS of course (to be able to self-host it).7 -
How to deduce the time complexity of any algorithm faster?
And is there any software that calculates it and suggest another optimal algorithm instead?1 -
Area: oil & gas
Full time job: SCADA apps, network comms, real time database;
Part time job: drilling app for geologist engineers, real time data acquisition, lots of math calculations and simulations;
I'm loving both jobs, because of working with external acquisition devices, because of freedom of work and complexity of the field. -
Time estimation of software development should be a product of observation of historical evidence, and many factors that come with it, like:
- What was the language used?
- How many developers worked on it
- How many years each developer has in experience in programming?
- IQ of each developer
- How many kids they have
- The weather
- ...etc
Analyzed by data scientist.
TL;DR
Not something you get by asking developers and interrupting their work, because many are people with superior complexity who often overestimate their capability of solving given problems.
Don't trust them to estimate!4 -
I earned the title of "sql king" due to the complexity of the sql I write (not proud of that because it makes maintainability hell) . It's pretty cool except sometime I feel like I can write shit code and ship it to production just because none can review my code properly or rather spend enough time understanding it,
basically I am not challenged enough...
What do you guys do if you are not challenged or bored ?
Never contributed to an open source but it might be the solution4 -
So, our lab professor in university for data structures was evaluating my friend's group assignment next to me and my colleague.
Professor: So, what does this method do?
Friend: I feel it would be best to explain our structure first and then how our methods work.
P: No, no. It's okay, I'm seeing it here in my laptop. *Looking at their report which included nothing about the structure of the assignment since she asked specifically only to place the methods and their complexity analysis due to not having time to look and evaluate a full report for each group*
F: Okay, *proceeds to explain*.
P: Okay, and why is your code commented?
F: Because it's good practice and we learned in subject x last semester.
P: Impossible! I teach that subject and I did not teach that in my classes.
F: Okay, but our professor did.
P: *Says nothing*.
They got a 3.25/5 as a grade for it and got really pissed off. I mean, they spent a lot of time making the assignment's structure perfect, optimizing their code and the professor did not care for the structure, just the methods, on the data structures subject.
FYI, they are workaholic, dedicate a lot of time improving their skills and their normal grades are usually >= 4.25.2 -
serious question: in what FUCKING case would i need to use DevOps engineering and custom backend custom frontend AWS azure gcp cloud providers etc if all that bullshit can be avoided and the same performant software can be crafted in 1 single framework -- nextjs?????
all of that bullshit looks like WAY overengineered, marketing-bloated BULLSHIT so bozos can buy more yachts off ur fucking dumbass cloud provider usage.
how is nextjs so powerful that u dont need any of those shits?
beyond me
the only time i see all of this overengineered shit makes sense is if u work on a large corporation software such as bank
then sure.
but chances are if u freelance or build ur own side project
ur NOT gonna fucking need to overengineer all of that cowshit
i literally had to take a step back for several weeks to unbrainwash myself by jeff bozos megacorp
and realize all these megacorps lure u into bullshit
keep it fucking simple you fucking fags and stop feeding the money hungry corps
u dont need a fucking gigazillion complexity software7 -
in this takehome challenge: let's see how much we can over-fucking-complicate every single thing. You want one selectors (that could just be one-liners) stacked on top of MORE one liner selectors? you got it!
you want sagas with fucking wierd ass syntax that can be replaced with i don't know, BUILT IN JAVASCRIPT??!!? you got it!
oh yeah, and with all this complexity, not a single line is written with TypeScript...
...i can't remember the last time i fucking had to write the characters 'propTypes' on a react project
what the hell is this, 2015?
it's absolutely mind exploding mind boggling how these orgs operate
double the work, double the time, double the cost
but what do i know? i'm just a 🤡 -
I'm an iOS developer and I cringe when I read job specs that require TDD or excessive unit testing. By excessive I mean demanding that unit tests need to written almost everywhere and using line coverage as a measure of success. I have many years of experience developing iOS apps in agencies and startups where I needed to be extremely time efficient while also keeping the code maintainable. And what I've learned is the importance of DRY, YAGNI and KISS over excessive unit testing. Sadly our industry has become obsessed with unit tests. I'm of the opinion that unit tests have their place, but integration and e2e tests have more value and should be prioritised, reserving unit tests for algorithmic code. Pushing for unit tests everywhere in my view is a ginormous waste of time that can't ever be repaid in quality, bug free code. Why? Because leads to making code testable through dependency injection and 'humble object' indirection layers, which increases the LoC and fragments code that would be easier to read over different classes. Add mocks, and together with the tests your LoC and complexity have tripled. 200% code size takes 200% the time to maintain. This time needs to be repaid - all this unit testing needs to save us 200% time in debugging or manual testing, which it doesn't unless you are an absolute rookie who writes the most terrible and buggy code imaginable, but if you're this terrible writing your production code, why should your tests be any better? It seems that especially big corporate shops love unit tests. Maybe they have enough money and resources to pay for all these hours wasted on unit tests. Maybe the developers can point their 10,000 unit tests when something goes wrong and say 'at least we tried'? Or maybe most developers don't know how to think and reason about their code before they type, and unit tests force them to do that?12
-
Disclaimer: the project I'm about to mention contains the first lines of Go I have ever written.
Still, I'm quite proud of how quickly I got it working considering it's also my first time working with GTK.
This project that I've been working on the past few days is finally done. But it's %50 percent spaghetti, so refactoring time. I decided to have a look at my cyclomatic complexity numbers, and my biggest function (not main()) had it at 7.
As it was quite large, I split it up into to parts: the preparation and the actual timer loop. As I appear to need to use a goroutine, by the time I'm done passing channels and all hell to handle them, my loop function now has a score of 9 for cyclomatic complexity.
So fix one bug, leaves two in its place?
But I still need to better learn Go, anyone have a good (relatively painless, informative, quick-ish) course they can recommend? I've been thinking of trying out codecademy's one...6 -
Isn’t it delightful when you come in to a large project to discover that they have a large underlying core that no one wants to touch but everyone relies on.
Quickly perusing the code you realize that the base was clearly created by someone who found their first tutorials for Java, but were previously a c developer.
It’s funny cause this code is of course from ~20 years ago and in different sections you can tell they were a C developer, a business admin, a Db admin, a junior conforming to pressures from others.
I recently looked at the deep rooted abuses of Java beans, and this entire internally created state management engine that serves no purpose but to create contrived complexity.
The use of propriety tools, that they paid lots for that perform incredibly simple tasks that have long since been solved by the open source community. Many of which are long defunct.
And the constant focus is on monkey patching the engine to solve small issues, which bloat the time to deal with issues. Since everything needs to be tested by their methodologies.
The inability to understand that the underlying structure is the issue and that tackling that, rather than just shifting the entire solution to new languages will suddenly solve the problems(or other underlying systems).
It’s just sad.1 -
I want to understand Linux services better. Most of the time if I want to run a process in the background, I just use nohup and &
And put the commands in either init.d or crontab.
But lately I've seen some more complex scripts where it's called like logstash start/stop which does a free things including recording the PID somewhere?
In Linux terms it seems to be called starting a daemon. But what's the difference, benefit to all this complexity?8 -
One of my Computer Science modules this year revolved around completing a team project, and one person in the team basically fucked it up for all of us in the last minute.
We had to create a simple task management app for a fictional company, the university did not care about how the program looked and all that mattered was if the app is functional or not. The app relied heavily on a database, so all we basically had to do was get, modify, and add data from a database. Now this person did his part of the programming, but with an outdated database model and did not even test his code as he said MySQL wasn't working on his home computer.
2 days before the final deadline is when we decided to merge everything together in the git repo (as that's when the rest of us finished our tasks), and that's when we found out none of his code worked. We then spent the next 48 hours with little sleep to try our best to fix everything, but unfortunately due to his tasks carrying a majority of the complexity of the program we couldn't fix it all in time and we ended up losing roughly 50% of the marks.
This all probably could have been avoided if one person in the team did look at his git branch properly, but this person was the programming lead of the project and didn't ask for any help at any point until the last moment when we merged everything together. Oh well though, at least I've learnt better for the next team project that I do2 -
*looks drowsy* Ugh my head..
You know what, guys? If you can freshly and directly remember how to do this:
- calculate the time complexity for each type of loop and code structure
- knowing how to write the following regex:
"A 15-digit number starting with a possibility of a group of 1-2 digit numbers, segregated into three 5-digit numbers tuples with three different separator characters, evaluated ahead"
- mentally work out how to reverse an array's indexes (swapping algorithm) without writing anything down
- know how to optimize a binary search in your head
then kudos to you. lmao
I'm rusty. It took me a while..7 -
Long time frustration
My close friend wanted to focus on machine learning and AI. in summer he did some research and figured out it is difficult to get those jobs. Now he is learning Angular 2. And applying for web development.
I am tired of people getting into web just because everything else seems difficult to them.
I just don't like people who think web is easy. And take it for granted.
I know comparing to machine learning Web does have an easy entry level barrier. But tired of devs, undermining web development complexity.
I think world thinks
Web is so easy that you can do it even if you hate it.5 -
!rant
Experienced devs please tell help me.
Learning software development has been a challenge. Many times it's frustrating.
I also learn languages and I find them to share one trait with software development, which is complexity.
At first I looked at languages the way I'm currently doing with software. I'd look in a new language and after decided it's cool to learn it, I would stare at it for a few weeks trying to realize what the heck I was going to do. I wouldn't even know how to get started.
Eventually this stage goes away and I think that is about to happen with me with software.
But then a new challenge would come, which is me not making progress as I wanted. That's sort of happening with me by learning software as well, bit in language I now know how to deal with it.
That's because I work full time with something that isn't in my interests and when I arrive home Im tired and want to relax. So I decided my language learning had to go slower as long as I have this job, meaning no hours spent in front of books or a pc studying - that's what I could do with English, I was a teenager and had 12 hours a day to do whatever I wanted.
So I usually spent 5 minutes here and there learning something in my target language when I can, no frustration needed, my only rule is: practice everyday, even if I don't learn anything new.
With software, that doesn't apply though.
So, what I mean by tracing a parallel between these to fields is that I have a strong conviction is that once you get the principles on how a certain kind of learning works, you can apply it everywhere in the field. But with software it's been harder.
Anyways, I see that are some principles that apply, cause trying to learn software is changinge and teaching a lot of things like:
*you have to read a lot (of documentation) . At first I thought all documentation was painful to read and understand, but I found out some software are well documented and one can use those only to get used with it.
*immersion / discipline are important. I'm not very disciplined, I'm better with immersion but both are important if you need to acquire complex subjects/skills
*how to deal with complexity. I installed Arch Linux a few days ago. Just to install it I ended up reading more than 20 pages of documentation (install guide, Wpa supplicant, systemd, networkd, xorg, etc etc). Gradually I'm realizing that when you have to install/tweak something in that distro you necessarily spend a bunch of time trying to understand how it works, otherwise you don't get too far like in Ubuntu or Debian.
*and lastly the one that bothers me. Constantly getting frustrated and feeling crap about my poor skills. No matter how much I progress, it still seems like I'm stuck.
(that's when I ask your help/opinion :) )4 -
In reply to this:
https://devrant.com/rants/260590/...
As a senior dev for over 13 years, I will break you point by point in the most realistic way, so you don't get in troubles for following internet boring paternal advices.
1) False. Being go-ahead, pro active and prone to learn is a good thing in most places.
This doesn't mean being an entitled asshole, but standing for yourself (don't get put down and used to do shit for others, or it will become the routine) and show good learning and exploration skills will definitely put you under a good light.
2)False. 2 things to check:
a) if the guy over you is an entitled asshole who thinkg you're going to steal his job and will try to sabotage you or not answer acting annoyed, or if it's a cool guy.
Choose wisely your questions and put them all togheter. Don't be that guy that fires questions in crumbles, one every 2 minutes.
Put them togheter and try to work out the obvious and what can be done through google or chatgpt by yourself. Then collect the hard ones for the experienced guy and ask them all at once. He's been put over you to help you.
3) Idiotic. NO.
Working code = good code. It's always been like this.
If you follow this idiotic advice you will annoy everyone.
The thing about renaming variables and crap it's called a standard. Most company will have a document with one if there is a need to follow it.
What remains are common programming conventions that everyone mostly follows.
Else you'll end up getting crazy at all the rules and small conventions and will start to do messy hot spaghetti code filled with syntactic sugar that no one likes, included yourself.
4)LMAO.
This mostly never happens (seniors send to juniors) in real life.
But it happens on the other side (junior code gets reviewed).
He must either be a crap programmer or stopped learning years ago(?)
5) This is absolutely true.
Programming is not a forgiving job if you're not honest.
Covering up mess in programming is mostly impossible, expecially when git and all that stuff with your name on it came out.
Be honest, admit your faults, ask if not sure.
Code is code, if it's wrong it won't work magically and sooner or later it will fire back.
6)Somewhat true, but it all depends on the deadline you're given and the complexity of the logic to be implemented.
If very complex you have to divide an conquer (usually)
7)LMAO, this one might be true for multi billionaire companies with thousand of employees.
Normal companies rarely do that because it's a waste of time. They pass knowledge by word or with concise documentation that later gets explained by seniors or TL's to the devs.
Try following this and as a junior:
1) you will have written shit docs and wasted time
2) you will come up to the devs at the deadline with half of the code done and them saying wtf who told you to do that
8) See? What an oxymoron ahahah
Look at point 3 of this guy than re-read this.
This alone should prove you that I'm right for everything else.
9) Half true.
Watch your ass. You need to understand what you're going to put yourself into.
If it's some unknown deep sea shit, with no documentations whatsoever you will end up with a sore ass and pulling your hair finding crumbles of code that make that unknown thing work.
Believe me and not him.
I have been there. To say one, I've been doing some high level project for using powerful RFID reading antennas for doing large warehouse inventory with high speed (instead of counting manually or scanning pieces, the put rfid tags inside the boxes and pass a scanner between shelves, reading all the inventory).
I had to deal with all the RFID protocol, the math behind radio waves (yes, knowing it will let you configure them more efficently and avoid conflicts), know a whole new SDK from them I've never used again (useless knowledge = time wasted and no resume worthy material for your next job) and so on.
It was a grueling, hair pulling, horrible experience that brought me nothing in return execpt the skill of accepting and embracing the pain of such experiences.
And I can go on with other stories. Horror Stories.
If it's something that is doable but it's complex, hard or just interesting, go for it. Expecially if the tech involved is something marketable.
10) Yes, and you can't stop learning, expecially now that AI will start to cover more and more of our work.4 -
C- let's See
C is a procedurally developed language follows sequential method of solving a problem.
Example
If a teacher of an Institute teaching various subjects, Maths, English, Science and History.
Case1.One student comes and asks teacher to teach English
and next student to teach Maths,
And the other to teach History.
Case2.Next students comes for English
Case3.Other one for History.
So what I understood regarding C is procedural language is
It completes first case1,next case2, and then case3. (Task after task)
Here English is taught 2 times seperate
And History too 2 times separately making time and process complexity.
C is a platform based high level language support only desired platform. If I program in windows with i3 processor , it runs only on the same OS and Processor, if code is run in other computers.
Single threaded, if a code is interrupted in between, stops there and doesn't allow other part of the code to run.
Java
In this if the same above cases encountered then and tell
Computer to create a Class of English and tell all the students to attend the class(time saving, No complexity and not repetitive)
Same way Creating History class and make all students attend the class at once.
Students may be the objects created.
Multi threaded language, if a task is interrupted following code cannot be stopped. Allows other part of thecode to run.
JVM- Java virtual machine allows Java code into signs that can be understood by computer. Where as C converts into binary code.
A class concept added to C language become C++rant support rant learning to code want to code jvm newbie asking high level languages are cool discussions java c mistakes3 -
Ugh, I can't even begin to express my frustration right now. So, picture this: I'm just minding my own business, trying to navigate through the chaos of my workload, when out of nowhere, I get a ping in a group chat with my manager. And who's the culprit? None other than my teammate who decided to take a casual day off.
But oh no, he didn't just leave it at that. No, instead, he decides it's the perfect time to swoop in with this sudden POC for testing MY project. MY project, people! And get this, he's blabbering on about how this POC should've been done ages ago. Like, excuse me? Do you even understand the complexity of what I'm working on here? Testing two measly APIs does not equate to the 50+ APIs I'm dealing with!
But wait, it gets better. Not only is he shoving this unwanted POC down my throat, but he's also suggesting that it should magically transform into a full-blown testing suite by the end of the sprint. And when's that? Oh, just in time for the next big release due next month. Because apparently, I have nothing better to do with my time than to cater to his whims while he's sunbathing on his leave.
And let's not even get started on the insultingly small bump in salary we received. I mean, seriously? We're busting our backs here, and what do we get? A pat on the back and a few extra pennies in our paycheck. But oh no, Mr. Vacation decides to waltz in, uninvited, and steal the spotlight with his flashy POC demo.
It's like he has zero respect for boundaries or common decency. I'm this close to losing my mind over here. Just when I thought things couldn't get any more frustrating, leave it to him to prove me wrong. Ugh, I need a break -
Re-instantiating the interesting bits from the other thing:
Time complexity of unsorted array equality operations. Go!23 -
So I got accepted into a Master’s programme for CS - which is kinda cool but hardly unexpected. Guess I should feel elated about it, but honestly, I don’t know how I feel about it. Really it only adds additional complexity into the next few years of my life: I feel a little gutted that I have to switch over to my plan B regarding the sporting side of my life (there’s no way I can work full-time, study AND train for IM simultaneously - there’s just not enough hours in a day…), but that’s okay. At least I had a plan B knowing I might get accepted to these studies now.
What it really complicates is decisionmaking regarding this: https://devrant.com/rants/5571843/...
At my current workplace, I have officially 2hrs each week + an additional full work day a month to use for studying during work hours (in reality I tend to use more than that because I can, whenever there are no pressing matters need doing), and my gut is saying that’s unlikely to be possible in a consultancy position in a startup. Maybe it is, I don’t know. Need to ask.
In life, very few things are ever straightforward, aren’t they? But hey, at least I get to do my Master’s and I get to do it in a quality university! -
A majority of the bosses/PMs/supervisors tend to be soo stupid and lack the knowledge of the actual problem's complexity so they expect you to hit keys and voila, project done.. It gets on my nerves big time.
-
By filling out their tracking tools in a language they can understand prior to their deadline of needing the data, being honest in their meetings, and being right about the time/complexity of the effort.
-
I'm going to have test on monday about this one subj and today was the last theory class before the test. When the teacher asks about the time complexity of an algorithm in the best case some people reply "when n is 1". I can hear the teacher facepalming already LoL
-
I usually try to break down what they are asking for into smaller parts. The tricky part is scoping them without granular details of how it will actually get done and thinking only about complexity. Then add up time and give the total a bucket size. 1-5 hrs 6-15, 16-30, 30+ etc. Turn around time is another matter but that's never predictable. By the time clients approve the quote availability is totally different.
-
"Her complexity is a glorious fire that consumes, while her simplicity goes unapproachable. But if one takes time to understand her, there is something beautiful to find, something simple to be loved. But she goes unloved, for being misunderstood." - Anthony Liccione
-
There needs to be a new (MOOC) class for people like me.
Hi, I'm William. I can't get my head around designing systems. I've read GoF and a few breakdowns of it as well. I find some patterns obvious for my field of interest (game dev, woot!) while I'm reading through the stuff, but have a pretty hard time retaining much of it. I'm aware of the danger of over using patterns, so I don't worry that much about it. I'll look something up when I'm sure I need it.
Still, I'm tired of the tutorial blues. I can watch a few different people write entire games, usually not in the language of choice, but that only helps me so much.
How do I fight scope creep? In the meantime, how can I make things extensible? Scope does need to creep some, after all.
People joke about starting with (visual) BASIC ruining you forever. I don't believe in that crap, but is this just denial? Am I too dumb for this? Not that I'd ever seriously blame a language for that.
I've been a hobbyist for well over 10 years, please don't make me count exactly how long I've been unsuccessful.
I'm baffled by Löve. I think it's the coolest shit I've seen, maybe ever (unless we're counting IPFS).
I think what really prompted this rant, apart from the obvious degradation of my mental health, was my search for an entity component system for Löve/Lua. Hold your replies. I know there's a few of them, and I'm positive that they're fantastic. I'd roll my own, but that requires actual Lua specific knowledge that I just haven't dug all that deep into yet. I can't wrap my head around the ones that exist, even though I can tell their complexity is next to none really.
I have severe tool anxiety, I'm shocked that I've stuck with ZeroBrane Studio as long as I have. It feels good though.
Sorry to use this as "Devs Anonymous", but I think that's how this community helps (me) best.
I feel like I should stop now and just say: Advice? before this gets much deeper/less readable. -
How should you override Equals in Java?
We have model classes with lots of fields and the we override the details equals to compare all the fields. I guess like doing a deep comparison.
And in all these classes SONAR is complaining about lots of ifs, complexity, etc.
And it's killing the analysis time... Old issue never fixed because whoever setup sonar was too incompetent to bother asking, researching, or fixing...
Is there a better way to override the equals to get the same result but without triggering SONAR issues?
Pretty sure this is a solved problem. And well if the top of my head, is just create a Util method that uses reflection like
Boolean equals( Object a, b, Class class)
foreach (String f: class, getFields()) {if !compare(class.getField(f,a),class.getField(f,b)) return false; }
return true5 -
Okay. Here's the ONLY two scenarios where automated testing is justified:
- An outsourcing company who is given the task of bug elimination in legacy code with a really short timeframe. Then yes, writing tests is like waging war on bugs, securing more and more land inch after inch.
- A company located in an area where hiring ten junior developers is cheaper than hiring one principal developer. Then yes, the business advantage is very real.
That's it. That's the only two scenarios where automated testing is justified. Other such scenarios doesn't exist.
Why? Because any robust testing system (not just "adding some tests here and there") is a _declarative_ one. On top of already being declarative (opposed to the imperative environment where the actual code exists), if you go further and implement TDD, your tests suddenly begins to describe your domain area, turning into a declarative DSL.
Such transformations are inevitable. You can't catch bugs in the first place if your tests are ignorant of entities your code is working with.
That being said, any TDD-driven project consists of two things:
- Imperative code that implements business logic
- Declarative DSL made of automated tests that also describes the same business logic
Can't you see that this system is _wet_? The tests set alone in a TDD-driven project are enough to trivially derive the actual, complete code from it.
It's almost like it's easier to just write in a declarative language in the first place, in the same way tests are written in TDD project, and scrap the imperative part altogether.
In imperative languages, absence of errors can be mathematically guaranteed. In imperative languages, the best performance (e.g. the lowest algorithmic complexity) can also be mathematically guaranteed. There is a perfectly real point after which Haskell rips C apart in terms of performance, and that point happens earlier on than you think.
If you transitioned from a junior who doesn't get why tests are needed to a competent engineer who sees value in TDD, that's amazing. But like with any professional development, it's better to remember that it's always possible to go further. After the two milestones I described, the third exists — the complete shift into the declarative world.
For a human brain, it's natural to blindly and aggressively reject whatever information leads to the need of exiting the comfort zone. Hence the usual shitstorm that happens every time I say something about automated testing. I understand you, and more than that, I forgive you.
The only advice I would allow myself to give you is just for fun, on a weekend, open a tutorial to a language you never tried before, and spend 20 minutes messing around with it. Maybe you'll laugh at me, but that's the exact way I got from earning $200 to earning $3500 back when I was hired as a CTO for the first time.
Good luck!6 -
Once a React aficionado, twice the frustration we endure,
In the realm of libraries, React's problems seem impure.
With Svelte's elegance and grace in our sight,
Let's vent about React, as day turns into night.
Boilerplate Overload, a monotonous affair,
Classes, constructors, lifecycle steps we declare.
In Svelte's simplicity, we find a breath of fresh air,
Just markup and magic – a coder's love affair.
Complex State Management, React's Achilles' heel,
Redux, Mobx, and their massive code appeal.
Svelte's state handling is a cinch, for real,
No more tangled webs of logic to conceal.
Unnecessary Re-Renders, React's performance woe,
Countless updates, like a never-ending show.
Svelte updates what's needed, like a pro,
Efficiency and speed, in its radiant glow.
Verbose Syntax, JSX's verbosity on display,
HTML in JavaScript, causing dismay.
Svelte's concise template syntax lights our way,
No more endless tags, just code that's here to stay.
Lack of Truly Reactive Behavior, React's hurdle high,
Hooks to wrangle, state to satisfy.
Svelte's reactivity, no need to question why,
It just works, oh my, oh my.
Ecosystem Complexity, React's sprawling sprawl,
Choices galore, making us bawl.
In Svelte's world, simplicity is the call,
A coherent ecosystem, it has it all.
Learning Curve, React's mountain to climb,
Classes, hooks, context, a hill of time.
Svelte's gentle curve feels sublime,
A smoother path to code, so fine.
Tooling Overkill, React's complex array,
Build tools, linters, configs in disarray.
Svelte's streamlined setup leads the way,
No more intergalactic code buffet.
Debugging Headaches, React's mysterious realm,
Complex state, intricate components overwhelm.
Svelte's predictable model, a soothing helm,
Debugging becomes a peaceful realm.
In the end, React, a complex labyrinth we explore,
Svelte's elegance and simplicity we adore.
If only React could learn, its problems to deplore,
A brighter future, for React we'd implore.3 -
I never finished it, but before I was working in the industry, I was coding through a book called Build Your Own AngularJS. My intent was to have piecemeal instruction/example in TDD and code way above the level of complexity I was used to. You essentially build the core of AngularJS in about 900 unit tests with total coverage. 1000pages long, its no walk in the park.
I gave it up when my time was short, and focused on higher level concepts: building apps, learning tools of the trade.
Now that I am getting plenty of exposure to that level, I am thinking my free learning hours may be better spent going down into the complex worlds shown in this book. A couple of things I found there really stayed with me and shaped how I think about problems. It was also very illuminating to see how complex algorithms work “in the wild”. I cant stand learning algorithms in isolation, generally speaking.
Has anyone seen this book? I know the framework itself is older now, but I don’t think that is much relevant for this learning use case.
I only know of one student who completed this. Took him a few months. He is an absolute machine. -
Do dev or engineer needs to know how the program works?. I mean that should they know about time and space complexity?
Till now my answer is yes, they should know. But i have met more than triple Dev's with absolutely no knowledge of complexity and they all are behind code quality.6 -
Time complexity doubt
How can you say T(n) ≤ 3T(floor(n/4)) + cn²
Given that T(n) =3T(floor(n/4)) +Θ(n²)
Won't it imply Θ(n²) ≤ cn², which seems incorrect (or am i wrong to think its incorrect?)4 -
Visualize the entire complexity of the content within the project so that you know what data users will need to access, and compartmentalize those in to separate modules that you can build on over time. Think about any limitations with accessing that data (does the user have that role, what if the data is accessed simulateously, how to handle the same user accessing from different devices etc).
Think about the devices being used - is it going to be a website, an app, both? How best then to access the data? Direct access to a database, or an API system?
Then think about the front-end design and how to simplify the view right down as much as you can. Again, break it down in to modules.
Then decide on the technology you want to use, and what libraries would help simplify things.
These days I like to use JSON API's to access DB content because app and web technologies change quite often but the API will be accessible to whatever I use to build it.
For websites I love using Laravel, which simplifies the back-end tasks, and mdbootstrap which simplifies the front-end tasks and looks "appy". -
"Her complexity is a glorious fire that consumes, while her simplicity goes unapproachable. But if one takes time to understand her, there is something beautiful to find, something simple to be loved. But she goes unloved, for being misunderstood." - Anthony Liccione
-
Okay... Complexity Theory.
Polynomial time
Nondeterministic Polynomial time
If not now, when you first learned of P and NP, it's time for you to share what you thought P and NP were acronyms for.2 -
For years now I've been "dreaming in code" but in the stupid way, which is only appropiate.
I try to explain it to myself and *I* can't understand it.
One, by some oniric enchantment, is capable of communicating signals through use of some symbolic language; and any time one speaks, they are affecting all that follows.
So a sequence of these, of any size, corresponds to some kind of program, and the self is some sort of collection of mutable structures being affected by them. And new symbols arise from within the self, corresponding to sequences of previously spoken symbols.
This process in itself can be satisfying, for the mere challenge of engaging with it's bottomless complexity, but it also suffers from a complete lack of purpose.
What does it mean? It's all undefined, yet doing something, so it must *mean* something. But what is it doing? One simply cannot grasp it!
I go to bed at night and traverse my tree, I recognize it, I've been working on it for years. Time is different there, you can just keep infinitely building shit, it never ends. Then I wake up and everything makes sense, for a little while.
But what I see isn't quantifiable; I can't turn it into a representation that works outside of a dream. Does it give me some vague ideas for the "actual" code I'm working on, yes of course. Yet it's all so... elusive, I can never put it into words. How exactly I could think of this? Well, it's in my tree, I know it because I wrote it as I slept. But how?
Fucking brains, maan.1 -
Today I'm starting interviewcamp.io. I graduated from a 4-year university in California with a degree in computer engineering and have almost 3 years of work experience, but my god I am terrible at algorithms.
Big O (time and space complexity), recursion, Binary Search Trees, reversing a fucking linked list, etc. I need the boost and I hope the $250 a year for the material will help me get at least a $5k increase in salary when jumping to another company after the whole pandemic (or get a raise at my current job).
If anyone has any experience with them let me know. So far I'm 2 hours in and it is nice so far.3