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 - "properties"
-
[Client]
We've noticed we gave you the wrong product prices for our new online shop.
[Dev]
Yeah, just login to the backend and fix them.
[Client]
But we don't want to use your fancy backend, we'll be using anyway soon - we want EXCEL!
Could you send us an EXCEL, so we can fix that?
How much will this cost?
[Dev]
Sure... here you are.
Not that much, takes about an hour.
[Client]
Great, you'll hear from us in a few days.
(a few months later...)
[Client]
We've finally managed to update the EXCEL. And btw, we've also added a bunch of columns with product pictures and new properties, highlighted products to delete red, inserted some comments with manual instructions and basically destroyed the entire data structure of this table.
Before I forget... also make sure to get this finished today, we have to go live ASAP. Our marketing campaign is already live.
[Dev]
Well, I'm sorry to say this, but this is not possible.
I'm currently working on another project and it will take me hours to clean up the data you sent me, before even starting to build an import tool for the new data you provided. Better stop the campaign and I'll do my best to get this done by the end of the week. Also it may be a bit costly.
(angry client calls immediately...)
(dev transfers to manager...)
(client transfers to client's boss...)
[Manager]
Ok Dev, I think I was able to explain it to them. However, it would be great if you spend day and night to get this thing out ASAP.
[Dev]
No problem...
I'll just do it by hand to get this out immediately.
(few days later; nearly done, exhausted)
[Client]
Hey Dev, here's another EXCEL.
We've just noticed there were a bunch of errors in the previous one. Please use this instead...13 -
When I was in the army I wasn't officially a dev. But one commander needed someone to develop a bunch of stuff and couldn't get a dev officially, so I ended up as his "assistant", which was an awesome job with about 60% time spent on software development.
Except I wasn't an official developer, so I wasn't afforded many of the privileges developers get, like a slightly more powerful machine, a copy of Visual Studio, or an internet connection. In this environment you couldn't even download files and transfer the to your computer without a long process, and I couldn't get development tools past that process anyway.
So I was stuck with whatever dev tools I had pre-installed with Windows. Thankfully, I had the brand new Windows XP, so I had the .Net framework installed, which comes with the command line compiler csc. I got to work with notepad and csc; my first order of business: write an editor that could open multiple files, and press F5 to compile and run my project.
Being a noob at the time, with almost no actual experience, and nobody supervising my work, I had a few brilliant ideas. For example, I one day realized I could map properties of an object to a field in a database table, and thus wrote a rudimentary OR/M. My database, I didn't mention, was Access, because that didn't need installation. I connected to it properly via ADO.NET, at least.
The most surprising thing though, in retrospect, is the stuff I wrote actually worked.14 -
Languages without a fully implemented type system.
Granted, it has been a fad for a quarter century, but everything points at one simple fact: Types matter in programming.
In dynamic languages, you tend to see that testing suites explode into thousands of tests, many of which wouldn't even be necessary if you had some type safety.
You see that languages like JS are forked into more typesafe dialects, like Typescript. Python got typehints since 3.6, and PHP added typehints for methods, then typehints for properties, and will soon even have compound types.
Maybe most languages will never reach the level of Haskell or Scala, and that's totally fine, but I think the direction languages are moving in is pretty much set in stone: No ambiguity, more safety. Code should fail before deploying, not after.32 -
🤣🤣🤣
Somehow, my boss got his son, 19, working in a team of developers last week.
Son: i got ton of money and i dont need to do this. i inherit lot of properties from my dad.(trying to sound funny, superior, and boasting of his inheritance knowledge he might have learned in school during java class probably.)
A guy in the team: No you dont. You are like us.😎😎😎
Son: minds his own business now.
Damn that line made my day.
🤗👏👏👏👏
++ for this dude for insulting morons like this at work.
I may have to remove it on boss request if he see it. But for now hit as many ++ to show that idiot no body likes people like him.rant boss eat your money knowledge is power respect your senior morons at work worship the job i love my work workplace8 -
20+ years of experience and I hate where this industry is headed. Sure, we have second year grads telling us that they're "Full Stack" developers - but, imo... that's a "Full Stack of Bullshit".
I started developing online properties in 1989, at the ripe age of 17. Bulletin Board Systems. I knew the user experience before it was tagged onto some fuckwad's wonder-filled LinkedIn profile.
When I say, "Don't use that" - it's not the result of a control freak mechanism that seems to be built into every Facebitch/Twatter/SnatchChat fool in existence.
I do so, because I care enough to guide team members in the proper direction so they aren't driving themselves and others off a goddamn cliff, drooling onto mobile device like it's God's penis.
So, of course they do the complete opposite. Fail miserably. Finger point like the typical douche bags. And, slowly destroy the income of everyone around them.
At this point, I'd rather be homeless than to deal with anymore toxic bullshit. So, I'm done. Set up an exit strategy, and walked away from the highest paying position I ever had.
Fuck them and the full stack of bullshit they rode in on. Onward and upwards, fucktards. Enjoy finger-pointing into the mirror.
Back to Earth, in... 3 - 2 - 1.
(Takes a sip of coffee.)
So, how's everyone doing this fine morning?20 -
A programmer once explained Nietzsche like this:
A long time ago, god created the world, but forgot to leave a developer documentation, thus the whole world was like legacy code...
And humans are like the end user of this world, and some among them spent time studying it, using the Moral API, hoping to get a result of "http 200 ok" from our world for the peace of mind. But the true operation of this world is still yet unknown...
As time passes, humans begin to find that in Moral API, good and evil are two base classes, and all the other moral properties (like ethic, justice and stuff) are just other classes based on those two classes through multiple inheritance.
One day, when programmer Nietzsche was observing the world's runtime behavior, he came up with a question:
"Did god really use good and evil as base classes? Could it be that they are actually derived classes?"
Most of the world is currently in the favor of mankind, and god must've wrote individual user cases for it's end users, he thought.
This made Nietzsche thinking: if end users are considered into two cases: the strong and the weak, how would the world be designed base on its user story?
Let's think about the strong, they can bully the weak as they please, and there's nothing the weak can do to stop them. In this case whether the Moral API exists or not doesn't fulfill the need of the strong.
But when it comes to the weak, Nietzsche thinks that because the weak cannot fight the strong, they need to belittle bullying and praise the strong for being nice. When the weak does this, it covers their powerless state to some extent, making them look somehow equal to the strong by being capable of commenting.
God might have coded the Moral API to fit the weak's requirement, also adding some public methods for the weak to comment on the strong. If the strong takes care of the weak, they call him nice and good, if the strong bullies people, they call him bad and evil.
That's when Nietzsche realized, that good and evil are both derived classes from the weak, and the base class should be the strong and the weak.
Then he started a series of studies about the Moral API, and got some thesis that persuaded lots of other end users...7 -
Pm: OK what you've got here?
Me: a bug, haven't tested yet
Pm: *grabs a phone* follow me we will do it
Me: mkay
Pm: *attaches it, goes to the DOM inspector, starts clicking random divs* OK where the fuck the canvas is?
Me: uhmm there in this tree
Pm: *inspects the canvas element for a few sec* what do you think?
Me: ... ... Well the bug was that it wouldn't resize properly after you change to landscape
Pm: *rotates the phone back and forth looking at the canvas properties*
Pm: gotcha, see? Width and height
Me: yes, those are the default html prope...
Pm: now see, there's another width and height. That's the malfunction right there. I'm telling you.
Me: no, this is css. It overrides the html properties there
Pm: well, say what, it doesn't
Me: no it does, that's how html works for decades already
Pm: but why does that not work properly then? Mm? *stares at me wide open*
Me: well I need to do some testing before I can sa...
Pm: then what do you think we are doing now?
Me: we jus...
Pm: *gets a phone call, stands up and walks away*4 -
I played a lot of Command & Conquer when I was younger, and I remember going through the files for C&C: Red Alert. I found one that had all the units names and properties, and wondered what happened if I changed a value. So I changed grenadiers attack speed to something ridiculously fast, and found that it actually changed it in the game!
The light bulb went off in my head, and I then created new units:
- Albert Einstein that shot electricity
- Attack dogs that launched missiles
Granted the animations didn't exist for these so it defaulted to playing their death animations when attacking, which was amusing.
That was the ah-ha moment for me that lead me to pursue programming. It was just so much fun!4 -
The gift that keeps on giving... the Custom CMS Of Doom™
I've finally seen enough evidence why PHP has such a bad reputation to the point where even recruiters recommended me to remove my years of PHP experience from the CV.
The completely custom CMS written by company <redacted>'s CEO and his slaves features the following:
- Open for SQL injection attacks
- Remote shell command execution through URL query params
- Page-specific strings in most core PHP files
- Constructors containing hundreds of lines of code (mostly used to initialize the hundreds of properties
- Class methods containing more than 1000 lines of code
- Completely free of namespaces or package managers (uber elite programmers use only the root namespace)
- Random includes in any place imaginable
- Methods containing 1 line: the include of the file which contains the method body
- SQL queries in literally every source file
- The entrypoint script is in the webroot folder where all the code resides
- Access to sensitive folders is "restricted" by robots.txt 🤣🤣🤣🤣
- The CMS has its own crawler which runs by CRONjob and requests ALL HTML links (yes, full content, including videos!) to fill a database of keywords (I found out because the server traffic was >500 GB/month for this small website)
- Hundreds of config settings are literally defined by "define(...)"
- LESS is transpiled into CSS by PHP on requests
- .......
I could go on, but yes, I've seen it all now.12 -
First day of work. I would think that the company would have prepared a bloody workstation for me but hey, didn't think much of it. Only spent about 15 fucking minutes finding the right computer to give me.
Next, I had to open visual studio 2013 to set up (I meditated the night before for this). It then gave the usual "This may take a few minutes" bullshit message. That message appeared at 0900. It is now 0930. 30 BLOODY FUCKING MINUTES!! At the 15th minute mark, I decided to check the computer's properties, wondering why it was taking its sweet ass time. I couldn't believe my bloody, fucking, god-given eyes. 4GB OF FUCKING RAM INSTALLED ON A FUCKING 32-BIT WIN7 OS! AND ONLY 2.99GB IS USABLE!! HOW DO THEY EXPECT ME TO DEVELOP WITH THAAAAAT???? CHROME TAKES UP LIKE ALL OF THAT!! &#;?@,×&@@&*×,×&;÷*÷, EID MWMALWMDNLWKSNSKSKDKKEMSKAKASLSMDBDNSNMSM
I SWEAR IF I DONT GET A CHANGE IN COMPUTERS, I WILL PUNCH A MOTHERFUCKING BITCH!11 -
The new w3c standard "CSS Houdini" gives you access to the css engine and let's you write your own css properties. That means no more polyfils, new exciting website designs and more possibilities and control on how the css is rendered on all browsers.7
-
My CTO in the 'good old times', when he still talked to me and shared his wisdom, once told me what I should know about oop and explained me the world of programming and what really matters:
CTO about oop and C#:
"I think this object orientated stuff is overrated and useless. You don't get finished. I write everything in one file. You should do that too. The fastest way is always the best one."
So, dear readers, you might think, he maybe understood, what oop means. I have to disappoint you. He is as FUCKING STUPID as he sounds.
He didn't understand the whole concept of the language C# or oop.
He doesn't use properties, every single method is static void and there is nothing like an object.
Since there is more from where that came from, this will be continued...7 -
Early in my database developer career, I started a new job at a mortgage company. I was poking around the code, just getting familiar with things.
One script identified properties in certain states/territories for special handling:
AND STATECD IN (‘PR’, ‘HI’, ‘AL’)
I thought “Puerto Rico, Hawaii, and ALABAMA?? One of these things is not like the other…”
Yeah, that was supposed to be Alaska (AK)… But they’ve been special-handling properties in Alabama for years. -
The biggest annoyance in Java for me is the absence of "real" properties. Writing getters and setters everywhere is ugly, you are generating them anyways.7
-
Is there an English (UK) option for writing CSS properties? I could never get used to writing "color" all the time 😧23
-
That would probably be implementing multithreading in shell scripts.
https://gitlab.com/netikras/bthread
The idea (though not the project itself) was born back when I still was a sysadmin. Maintaining 30k servers 24/7 was quite something for a team of merely ~14 people. That includes 1st line support as well.
So I built a script to automate most of my BAU chores. You could feed a list of servers - tens or hundreds or more - and execute the same action on each of them (actions could be custom or predefined in the list of templates). Neither Puppet nor Chef or Ansible or anything of sorts was consistently deployed in that zoo, not to mention the corp processes made use of those tools even a slower approach than the manual one, so I needed my own solution.
The problem was the timing. I needed all those commands to execute on all the servers. However, as you might expect, some servers could be frozen, others could be in DMZ, some could be long decommed (and not removed from the listings), etc. And these buggars would cause my solution to freeze for longer than I'd like. Not to mention that running something like `sar -q 1 10` on 200 servers is quite time-consuming itself :)
And how do I get that output neatly and consistently (not something you'd easily get with moving the task to a background with '&'. And even with that you would not know when are all the iterations complete!)?
So many challenges...
I started building the threading solution that would
- execute all the tasks in parallel
- do not write anything to disks
- assign a title to each of the tasks
- wait for all the tasks to complete in either
> the same sequence as started
> as soon as the task finishes
- keep track of each task's
> return code
> output
> command
> sequence ID
> title
- execute post-finish actions (e.g. print to the console) for each of the tasks -- all the tracked properties are to be accessible by the post-finish actions.
The biggest challenges were:
a) how do I collect all that output without trashing my filesystems?
b) how do I synchronize all those tasks
c) how do I make the inception possible (threads creating threads that create their own threads and so on).
Took me some time, but I finally got there and created the libbthread library. It utilizes file descriptors, subshells and some piping magic to concentrate the output while keeping track of all the tasks' properties. I now use it extensively in my new tools - the ones where I can't use already existing tools and can't use higher-level languages.4 -
Code review time:
Hey Rudy, can you approve my PR? ??? Shouldn't it be can you review my PR?(thought to myself)
Anyway, as a new practice, we(royal we) do not approve PRs with js files. If we touch one, we convert it to typescript as part of a ramp up to a migration that never seems to get here. But I digress.
I look at the laziest conversion in history.
Looked like
Import 'something';
Import 'somethingElse';
Import 'anotherSomething';
export class SomeClass {
public prop1: any;
public prop2: any;
public prop3: any;
public doWork(param: any){
let someValue = param;
// you get the idea
return someValue;
}
}
Anyway, I question if all the properties need to be visible outside of the class since everything was public.
Then if the dev could go and use type safety.
Then asked why not define the return type for the method since it would make it easier for others to consume.
Since parts of the app are still in js, I asked that they check that that the value passed in was valid(no compilation error, obviously).
Also to use = () => {} to make sure "this" is really this.
I also pointed out the import problem, but anyway.
I then see the his team leader approve the PR and then tell me that I'm being too hard on his devs. ????
Do we need to finish every PR comment with "pretty please" now?
These are grown men and women, and yet, it feels oddly like kindergarten.
I've written code in the past that wasn't pretty and I received "WTF?" as a PR comment. I then realized I ate sh*t on that line of code, corrected it and pushed the code. Then we went to Starbucks.
I'm not that old(35), but these young devs need to learn that COMPILERS DO NOT CARE ABOUT YOUR FEELINGS!!!!!
Ahhhhhh
Much better.
Thanks for the platform.8 -
Snippet of an overheard conversation today:
"LOL maths beyond basic arithmetic is so dumb. No-one needs pythagoras, trig, calculus or any of that crap unless they have some unholy desire to find the geometric properties of their sandwich."
"What do you want to do when you leave school then?"
"Something to do with AI. That stuff is really cool."
🤦♂️🤦♂️🤦♂️8 -
Let's install some Addons! Hmm where is that menu item... oh could it be called Extensions? No? Wait... maybe Plugins then?
Maybe it's inside of a Settings window. Oh there's nothing called settings in this endless menu I think. Or is it called Preferences? Options? Properties? Configuration? Ugh and should I look in the File or Edit or Extra menu in this App, Application and/or Program?
Maybe I can Search for it?
OH YOU FUCKING NAMED THAT FIND INSTEAD OF SEARCH, YOU PRESUMPTUOUS PRICK, I CAN'T FUCKING FIND ANYTHING IN YOUR BLOATED GOO OF A GUI.
*scrambles back into his bash-shell like a hermit crab, making soft defensive noises*8 -
I get handed an API spec that has no naming convention followed for any of the JSON properties. Different for both GET and POST. I request fixes and get a "no budget" answer.
-
math be like:
"Addition (often signified by the plus symbol "+") is one of the four basic operations of arithmetic; the others are subtraction, multiplication and division. The addition of two whole numbers is the total amount of those values combined. For example, in the adjacent picture, there is a combination of three apples and two apples together, making a total of five apples. This observation is equivalent to the mathematical expression "3 + 2 = 5" i.e., "3 add 2 is equal to 5".
Besides counting items, addition can also be defined on other types of numbers, such as integers, real numbers and complex numbers. This is part of arithmetic, a branch of mathematics. In algebra, another area of mathematics, addition can be performed on abstract objects such as vectors and matrices.
Addition has several important properties. It is commutative, meaning that order does not matter, and it is associative, meaning that when one adds more than two numbers, the order in which addition is performed does not matter (see Summation). Repeated addition of 1 is the same as counting; addition of 0 does not change a number. Addition also obeys predictable rules concerning related operations such as subtraction and multiplication.
Performing addition is one of the simplest numerical tasks. Addition of very small numbers is accessible to toddlers; the most basic task, 1 + 1, can be performed by infants as young as five months and even some members of other animal species. In primary education, students are taught to add numbers in the decimal system, starting with single digits and progressively tackling more difficult problems. Mechanical aids range from the ancient abacus to the modern computer, where research on the most efficient implementations of addition continues to this day."
And you think like .. easy, but then you turn the page:15 -
Last year, we had to do a big university project in randomly selected groups (5-6 students in every group).Three of the five guys were completely useless, I mean, both the other competent guy and me wrote around 20,000 lines of code each, the other ones wrote around 500 lines of code (combined).
After our first few meetings we quickly knew that we have to give them a small task which was so trivial that not even they can fuck it up. But we were wrong. Oh boy, so wrong.
They simply had to code the excel export of the data, which means they had to use two functions from a library and pass the correct data. But their solution was so bad, I lost faith in humanity and was fascinated by it at the same time.
For example, there was this simple class "Room", which had a few properties like size or number of seats and a few getter/setter etc. That was a core class and written by the other qualified guy. So how did the others fuck up the excel export? They somehow rewrote that class in German (although the other code was completely in English), implemented a function for each property that would write its value to a hardcoded cell in a hardcoded excel file.
And this was just the tip of the iceberg. Needlessly to say that I had to rewrite the whole export in the night before we had to present the project.5 -
Client wanted a website to offer rentals for her collection of student rental properties. She was adamant and stipulated that it had to be the Rightmove of student lets. I asked her if she had a £million plus budget for the marketing and then some for the infrastructure and mobile app development. She disapeared. Months later I checked the URL she had purchased and it had been done as a free site on wix.com and was a dreadful piece of shit. You just know instinctively that a client is going to be worthless.
-
So apparently I own land in dubai. Like three separate mortgages based on the email I received.
Your request (Mortgage Registration)
with request number xxxxx / 2024
has been completed
and you can print your issued certificate from this [link]
I've stripped out the numbers and link.
After confirming it was safe I followed through on a old spare cellphone, and yep, I own three mortgages for properties in dubai.
Except obviously I don't.
Someone used my name, an american, to register mortgages in dubai. *Nice* properties according to the pictures.
What started out as a scam email, or what looked like a scam email, went to an actual government of dubai website, with real mortgage registrations.
How in the fuck does that happen?
The only thing I can think of is someone committed identity fraud, and/or an alphabet agency went through the list of known political dissidents, set up a bullshit mortgage in a questionable territory, and are now using that as a pretext to monitor 'extremists with foreign ties.'
All that for some guy on the west coast that hasn't attended a political rally in his entire life.
Must have been that sign I held at sixteen years old by the side of the road that said "bush lied us into a war, and people died."
or maybe it was that time I told a really enthusiastic obama supporting police officer that it amazed me obama had time to win the nobel peace prize what with all the bombings he carried out against foreign civilians.7 -
While trying to integrate a third-party service:
Their Android SDK accepts almost anything as a UID, even floats and doubles. Which is odd, who uses those as UIDs? I pass an Integer instead. No errors. Seems like it's working. User shows up on their dashboard.
Next let's move onto using their data import API. Plug in everything just like I did on mobile. Whoa, got an error. "UIDs must be a string". What. Uh, but the SDK accepts everything with no error. Ok fine. Change both the SDK and API to return the UID as a string. No errors returned after changing the UIDs.
Check dashboard for user via UID. Uh, properties haven't been updating. Check search properties. Find out that UIDs can only be looked up as Integers. What? Why do you ask me to send it as a string via the API then? Contact support. Find out it created two distinct records with the UID, one as a string and the other as an Integer.
GFG.3 -
devRant competition - can you convince someone that you're hacking?
Requirements:
Windows (Linux is too easy)
You must use genuine windows command line and the following commands:
color 0a (if this isn't supported in your windows os, you can change it in properties)
cd C:\
tree
The point of this is to see how easily you can convince someone you're hacking/doing something malicious. No prize or anything, I just want to see how ignorant those muggles are.6 -
Update on my old rant: I started writing type definitions for our project (it's basically a chunk of separate files where you document the objects you use; typed languages have this out of the box, js doesn't and it may become useful depending on the size of the project). Our codebase is reasonably big -not complicated, but big- and I felt like I was losing track of all the properties\objects\usage\comments\whatever. So I iiterally wrote some ts interfaces: properties with name and types, that's it, so you know what you're passing around.
Proposal was denied, I'll have to delete the documentation; "keeping the doc updated is going to require more work".
Me: Ok, but what am I supposed to do when I need to interface with your code? Run the debugger and figure out what the fuck you guys are passing around?
Team leader: Yes 😊6 -
I miss old times rants...So i guess, here it goes mine:
Tomorrow is the day of the first demo to our client of a "forward-looking project" which is totally fucked up, because our "Technical Quality Assurance" - basically a developer from the '90-s, who gained the position by "he is a good guy from my last company where we worked together on sum old legacy project...".
He fucked up our marvellous, loose coupling, publish/subscribe microservice architecture, which was meant to replace an old, un-maintainable enormous monolitch app. Basically we have to replace some old-ass db stored functions.
Everyone was on our side, even the sysadmins were on our side, and he just walked in the conversation, and said: No, i don't like it, 'cause it's not clear how it would even work... Make it an RPC without loose coupling with the good-old common lib pattern, which made it now (it's the 4th 2 week/sprint, and it is a dependency hell). I could go on day and night about his "awesome ideas", and all the lovely e-mails and pull request comments... But back to business
So tomorrow is the demo. The client side project manager accidentally invited EVERYONE to this, even fucking CIO, legal department, all the designers... so yeah... pretty nice couple of swallowed company...
Today was a day, when my lead colleague just simply stayed home, to be more productive, our companys project manager had to work on other prjects, and can't help, and all the 3 other prject members were thinking it is important to interrupt me frequently...
I have to install our projects which is not even had a heart beat... not even on developer machines. Ok it is not a reeeeaaally big thing, but it is 6 MS from which 2 not even building because of tight coupling fucktard bitch..., But ok, i mean, i do my best, and make it work for the first time ever... I worked like 10 ours, just on the first fucking app to build, and deploy, run on the server, connect to db and rabbit mq... 10 FUCKING HOURS!!! (sorry, i mean) and it all was about 1, i mean ONE FUCKING LINE!
Let me explain: spring boot amqp with SSL was never tested before this time. I searched everything i could tought about, what could cause "Connection reset"... Yeah... not so helpful error message... I even have to "hack" into the demo server to test the keystore-truststore at localhost... and all the fucking configs, user names, urls, everything was correct... But one fucking line was missing...
EXCEPT ONE FUCKING LINE:
spring.rabbitmq.ssl.enabled=false # Whether to enable SSL support.
This little bitch took me 6 hours to figure out...so please guys, learn from my fault and check the spring boot appendix for default application properties, if everything is correct, but it is not working...
And of course, if you want SSL then ENABLE it...
spring.rabbitmq.ssl.enabled=true
BTW i really miss those old rants from angry devs, and i hope someone will smile on my fucking torturerant marshall_mathers worklife sugar-free_tateless_cake_decorant_figure_boss missolddays oldtimes_rants5 -
First story (not rant) :3
So I was asked to set problems for an online programming contest for my college (I'm a sophomore)
The participants were students from my college.
Teacher told me "make as hard as you can"
I gave it my all.
:|
1 person solved the first question. Nobody solved the other four. :|
Not sure if I should be proud or sad.
And if you're wondering - here was my first question -
Sam wants to invest in real estate. He's got X dollars to spend. He knows the expected value per square meter of a given property. He knows the coordinates of the vertices of the polygon shaped properties he's interested in.
(both the values and coordinates for each property are given in input)
Find the maximum return on investment he can get.
(answer is, basically you calculate the area of each polygonal house using half the vector cross product, multiply it with their expected value per square meter, and then apply a dynamic programming - knapsack approach)
;-; I really thought it was a nice question man. ;-; I put so much thought into others too. ;-;
Got ignored. ;-;6 -
My company con not find any other developer than me.
I could not understand.
We use only up to date libraries in our projects.
Please note the comment private properties...12 -
Everywhere you go, you find these memes where developers are skeptical of their work. Things like "It works. I don't know how. It doesn't work. I don't know how.". Don't you guys think this is a huge problem? And people say that their programming language is the best, because preference. But isn't this happening because our tools suck?
Yes the problems maybe inherently complex but at least we should be able to figure out the logic behind the snipper and reason about it.
Haven't really experienced it, but they say Haskell and the likes are great at this and it must be true because it's backed by mathematical properties and laws, not " experience".
So the rant here is, wish we had better tools in the mainstream that allowed us to enjoy absolute faith in at least what we have written, regardless of the fact that we understood the problem in the domain.11 -
In ESnext, private properties are marked with `#`.
Who thought that was a good idea? No really, who thought that was a good idea?
Why not just -- I don't know -- introduce keywords like ... let me think ... public, protected and private!?
Why this:
class MyClass {
a = 1; // .a is public
#b = 2; // .#b is private
static #c = 3;// .#c is private and static
incB() {
this.#b++;
}
}
If this becomes part of the language, no JavaScript developer may joke about php usage of `$` anymore.32 -
Holy fuck is learning new frameworks frustrating.
I'm trying to setup a simple fucking flutter app and all their tutorials are basic shit with no auth/complex routing.
Any feature of flutter that's not in a tutorial has absolute shit documentation with 0 examples on how to use it.
Material app has like 20 properties and if you click on something like on generate there is shit for knowing what the fuck it's expecting.
Stackoverflow has a ton a code but that's just it, code. I have absolutely no idea how they generate the code they have from the documentation on the site. They must have been following flutter from the start.
Ahhhhh! 😠13 -
2018 dev goal #1: ✔️
This week I learned Python 3, as in most of the syntax. Not yet any development, but that will come tomorrow onwards.
Oh, and I hate the funky type system, which is almost non existent and so flexible that I don't know if it's just bad or I simply don't see why I should want it this way.
Please enlighten me why you think Python is great or just plain snake crap.
Did I mention snake case being common practice? And that Python doesn't know real private properties, methods, etc.? How does that work?16 -
!rant
YES YES YES YES YES
GIMME SOME OF THOSE TYPED PROPERTIES <3
When I first started trying out Java I hated that I had to type every variable I declared, coming from a javascript and php background
nowadays I can't live without them, it feels so safe and secure <3 <3 <315 -
I just love how liferay keeps finding ways to surprise me...
Customer: need to fix this security issue
me: ok
me: fixed. Testing locally. Works 100%.
Me: testing on dev server. Works 100%
qa: testing on dev server. Works 100%
me: all good. Deploying to preprod
customer: it doesn't work
me: testing preprod - it doesn't work.
Me: scp whole app to local machine. App works 100%.
Me: preview loaded liferay properties in preprod via liferay adm panel. All props loaded ok.
Me: attach jdb to preprod's liferay to see what props are loaded. Only defaults are used [custom props not loaded according to jdb]
me: is there some quantum mechanics involved..? Liferay managed to both load and not to load props at the same time and the state only changes as it's observed...2 -
Bored waiting for a long running test cycle to complete, so...
Monopoly: Software Dev edition.
All properties are companies with apple and alphabet being the most expensive ones, course the online version plugs into stock tickers to accurately reflect the current share price.
All railroads are broadband providers.
You don't build houses or hotels, but patent portfolios and 'landing on another property' becomes 'infringing on a patent'.
Cards:
- Kickstarter refund, collect £200
- Hit by ransomware, pay 1bitcoin.
- You are sued in East Texas, go straight to jail, do not pass go, do not collect dividends.
- Get out of court free card.
Yeah, I'm that bored that I'm rewriting bloody monopoly...5 -
Seriously, wtf..
- Getting ready for the K.I.D.
- Will need a red LED light/lantern to see things around w/o waking the kiddo up
- Order a bunch of various models
- Receive some of them
- The another one arrives - it only has white and blueish-white modes
- Reach out to the seller, ask to send me what I've ordered
- Seller replies with:
> Hi, friend
> I am very sorry this light is out of stock now
WTF dude... I order a particular SKU of your products, I need it for its particular properties the other SKUs don't have and when you see you've got no more left you do what? Send me a random product? Seriously, WTF man?!? How about ping me with a message, explain that you've oversold the item and suggest a refund? naaah, too much work, right? Just grab whatever products you still have left on your shelf and send them to your customer instead. /s
WTF MAN?!?!2 -
Buckle up, it's a long one.
Let me tell you why "Tree Shaking" is stupidity incarnate and why Rich Harris needs to stop talking about things he doesn't understand.
For reference, this is a direct response to the 2015 article here: https://medium.com/@Rich_Harris/...
"Tree shaking", as Rich puts it, is NOT dead code removal apparently, but instead only picking the parts that are actually used.
However, Rich has never heard of a C compiler, apparently. In C (or any systems language with basic optimizations), public (visible) members exposed to library consumers must have that code available to them, obviously. However, all of the other cruft that you don't actually use is removed - hence, dead code removal.
How does the compiler do that? Well, it does what Rich calls "tree shaking" by evaluating all of the pieces of code that are used by any codepaths used by any of the exported symbols, not just the "main module" (which doesn't exist in systems libraries).
It's the SAME FUCKING THING, he's just not researched enough to fully fucking understand that. But sure, tell me how the javascript community apparently invented something ELSE that you REALLY just repackaged and made more bloated/downright wrong (React Hooks, webpack, WebAssembly, etc.)
Speaking of Javascript, "tree shaking" is impossible to do with any degree of confidence, unlike statically typed/well defined languages. This is because you can create artificial references to values at runtime using string functions - which means, with the right input, almost anything can be run depending on the input.
How do you figure out what can and can't be? You can't! Since there is a runtime-based codepath and decision tree, you run into properties of Turing's halting problem, which cannot be solved completely.
With stricter languages such as C (which is where "dead code removal" is used quite aggressively), you can make very strong assertions at compile time about the usage of code. This is simply how C is still thousands of times faster than Javascript.
So no, Rich Harris, dead code removal is not "silly". Your entire premise about "live code inclusion" is technical jargon and buzzwordy drivel. Empty words at best.
This sort of shit is annoying and only feeds into this cycle of the web community not being Special enough and having to reinvent every single fucking facet of operating systems in your shitty bloated spyware-like browser and brand it with flashy Matrix-esque imagery and prose.
Fuck all of it.20 -
Just came across a video telling how cloudflare fetches real random data for their generators: Lava lamps, radio active properties and a chaotic pendulum
https://youtube.com/watch/...8 -
Why is it that mediocre people are so loud mouthed.
some stupid wannabe fuck buys a sports car ranging around 100k, he will 3 stories of a week of that car.
Meanwhile the guy who has his own yatch and 12 properties doesn't say a word about it and appears lowkey
i find this fascinating af7 -
An uncle of mine, owns an NFT/Betting startup (early 30s, so no veteran and no doesn't know much coding).
Got 3-4m USD as investments.
It's an utter garbage "app" that he knows will die in an year, and he's drawing big salary and buying properties from the funding until he has the "runway" of funds remaining while app/company works in the background
What bugs me isn't that he's feasting on some random investors' petty change, but that such "ideas" get money thrown at them while ive seen 100s of more fun ideas/apps back in uni-days that died in obscurity when people graduated and retired them as projects, being talked about in 1 liner in their CVs.
This world ain't right :v9 -
Just found this absolute 5 head, galaxy brain implementation in a piece of code which is called in a loop by a background scheduler which has performance issues.
There are 20+ properties, some which are recursively calling other properties with the same implementation style in this class.
Constant out of memory errors have been reported for this software, I wonder why...15 -
I like what I do for a living.
I build software, mostly from scratch or early stage products. Those are different industries, different companies, different technologies, frameworks and languages. Systems that impact economy in a different way.
When I develop software I am picking different parts of same project and try to understand how companies earn money and what are advantages of their software. What are required regulations and requirements to sell the stuff.
How the money flows from client and what they’re changing for. I especially try to understand stuff from business perspective.
When I pay my debts and luckily be still alive but unemployed and with minimum income from stocks / properties rental I will have plenty of time to duplicate many of those businesses.
I picked programming cause it’s touching all parts of economy basically without any skill requirements and certifications. It’s young impactful industry that is luckily not yet regulated. You just need laptop, like to solve puzzles and have plenty of free time and you can create everything. Never forget about it.
Cloud corporations try to make people think differently but it’s just that simple.7 -
Saw this in a previous developer's code which is currently in production.
public bool reset;
public bool Reset
{
get{ return reset; }
}
This was done for most if not all the properties.2 -
!rant
So, Rust again.
When I learned that Rust doesn’t support inheritance, only traits (interfaces), I was shocked at first.
Then I tried to remember when the last time was that I have used inheritance in the code that I write (not the code that I use).
And I could remember an instance some months ago. But I also remember that I was very unsatisfied with that design and refactored it to use composition instead. And it was much better.
One of Rust’s properties is that many good practices in other programming languages are enforced rules in Rust.
And in case of inheritance, it seems like Rust decided that composition over inheritance is such a good practice that it should be a rule.
I’m not 100% convinced that there never will be cases where inheritance is better. But I still like this radical idea of forcing the devs to do it "the right way" in the majority of (if not all) cases.
I think many devs will disagree.
What do you think?11 -
When I started my current job I fucked up my first deploy ever so slightly but In the end managed to get it going with a quick hack (unpacking our war file modifying some properties and a jsp page before restarting the tomcat server )
One of the senior developers was having a really bad day and decided I was who he was going to take it out on, calling me a cowboy (in the Uk that’s a bad thing) blah blah, being really nasty and condescending to me.
I was about ready to shout at him as it was his dodgy configuration that caused the issue in the first place, but instead I took a deep breath and firmly (but calmly) told him never to speak to me like that again or we would have a problem.
5 years later he’s never spoken to me like that again and is actually a pretty decent guy.
Moral of the story people have bad days but also don’t let people take the piss. -
Trying to understand a complex, twenty-angular-module project. Discovers login module rules only CSS properties that hide the rest of the app...2
-
Dear providers of SDKs, when you claim to have a full documentation for your SDK, please at least provide the info about what unit (radians or degrees) the Angle properties are. Especially important when the iOS SDK is taking radians and the Android SDK is taking degrees, as I found out by experimenting. I don't even care so much about float on Android and double on iOS. Just make use of the fucking documentation and provide some actually useful info there. "Sets or gets the angle" is fucking NOT useful.3
-
Started to learn nodejs REST, with mongodb, either the service is too light (still only has login) or mongodb is too fast, I've never seen that speed in fetching a single user with 6 properties in its json response, it takes 15ms on my laptop when a dot net core service + MySQL takes at least 70ms6
-
(first post/rant on here)
So I recently started at a new company. I was kinda aware that the project I'm working on would be rather old school (to put it in a nice way :-)).
Part of my job is to 'industrialize' and update/clean up the existing code so there is less time spent on fixing bugs due to bad design.
One of the first things I had to do was to write a new interface to integrate with external software.
I already noticed some rather nasty habits, like prefixing every variable with m (don't know why), private fields for every property (all simple properties) and a whole lot of other stuff that either is obsolete or just bad practice.
Started writing clean code (simple classes with properties only, no m prefixing, making sure everything is single responsibility, unit tests, ...).
So I check in the code, don't hear much from it again besides the original dev/architect that started the project using my code to further work on that integration.
Now recently I started converting everything from TFVC to Git (which is the company standard but wasn't used by our team yet). And I quickly skimmed through my code to check if everything was there before pushing it to the remote repo.
To my surprise, all the code I had written was replaced by m prefixed private variables used in simple properties. BL classes were thrown in together, creating giant monstrosities that did everything. And last but not least, all unit tests were commented out.
Not sure what I got myself into ... but the facepalming has commenced.14 -
So I was trying to compare my local website CSS properties to the one deployed on production and realized that font/blocks were a little bit smaller than usual. Tried to debug which CSS changes caused this issue for half an hour only to realize that it was because the browser's zoom level was set to 90% locally 🤦🏽♂️
This happened with a guy who just finished 5 years of professional coding yesterday 😂2 -
The whole app was a shitshow...
- Cancel order as a post request (the same post request used to save the order).
I demoed the client how with a couple of lines of code I could change his "Cancel order" button to "Mark my order as payed" button....
- List orders method took an user id as input...
- Update profile did not care about wich properties you should be able to change as a non admin...
And so on...1 -
HTML & CSS.
To me they just feel wrong.
I have been working with them for a little over 20 years now, and it feels like very little has improved. Sure we learned to make things look a bit nicer, we got new tags and properties, but the syntax is still horrible.
The fact that both are replaced by other imperfect languages (haml, jade, less, sass, etc) is just a confirmation that their paradigms are about as fucked up and impossible to exterminate as cobol.
Which points at another problem: browsers, and how slow the web upgrade cycle is — adding native support for nested style definitions in css, or replacing html with a json document seems like a trivial problem, if it weren't for the dozens of browsers and the excruciating pace at which they can adopt standards.8 -
The scrum master for the project I'm working on decided to help out with changing some code (I'll add he's got a master's in software engineering and very proud about it..aka..big ego). It took him two days...yes two days to write the attached code.
I reviewed his code and sent back a response (code took about 15 seconds to write) including the link to the logging documentation explaining what fields were and were not necessary. Not sure how will look in devrant ...
var data = new InformationalDataPoint
{
Properties =
{
["RMANumber"] = rma,
["InvoiceID"] = invoiceId
}
};
Logger.Log(data);
He's stopped talking to me. Our next scrum meeting with the product owner should be ...um...awkward. -
Hey this is the first time i post here.
I just started working part-time for this company last week. What i have to do is to change some windows from Win32 to WPF. As i was reading the legacy code i just had to sigh man. They have like 100 projects in a single solution, from C++ to C#, everything acctached to each other, with almost NO comments or docs. Wtf man? I don't know how it actually works in the industry (this is my first dev job) but when you write fucking 20 classes with each one contains bunch of attributes, methods, properties, you can't just leave all the code's semantics in their names. And by the way the app is so fucking ugly i bet they have appointed part-time developers as UX engineers... Even i have little knowledge about UX/UI, i just can't bear with this kind of ugly and confusing and unintuitive production with a cost of a good photo editting software.
Ok there may be much more to rant in the future but let me try through this and tell you more. Have a good day. :)5 -
It was when I saw that he was writing CSS in one huge file (couple of thousands of lines)
And I needed to change one thing (ctrl+f it) and saw it was copied and pasted 4 times ..
And no, not just the CSS properties, the whole thing including class/id selectors...1 -
Just learned display css properties. Took me long enough to make a damned HTML template.
Me no likes front end :(5 -
I just wasted 2 hours trying to figure out why the properties of a destructured object returned undefined, even though everything was fine in JSON format. Tried to request data on the frontend from my server with a database attached. Tried accessing each object of my array separately, it worked. In a loop: dataArray[index].propertyX ... undefined??
Turns out I used the wrong property names to access the info inside each object.
🤦1 -
Guess I'll fuckin try again tomorrow.
Building a cross platform c program. On Linux side, just using a makefile. Today I tried using visual studios "clone" feature for git. It just downloads the files and makes them available to the editor, it doesn't make a project, obviously.
But this has some disadvantages. For one, you can't build, or run. Two, you don't get any project properties. My project needs to set the character encoding to Unicode. Can't do that without a project.
So I use their tool to create a project from existing code. It didn't really work. The build profiles were janky at best and I still couldn't set the character encoding.
Ended up just deleting the whole thing.4 -
Just a thought.
If your project has good coverage with tests, it should be possible to develop an algorithm that recreates your production code entirely from tests.
Just look at IntelliJ - its autosuggestions on missing properties/methods are 99% times correct - I only need to hit that ENTER button. Add some AI to recreate some algorithms and there you go - you can use your tests as both: code specs and a part of QA.
Any takers for the next AI project? :)4 -
Well I have a normal dream except I can see the people in it as an object with properties all over them. When they are in a bad mood I tried to debug them2
-
Who ever come to idea to put JavaScript as backend language is insane.
I am coming from Java and now I am doing some work on Node project and I am loosing my mind.
Everything is an object but you have no idea what are his properties. There are call back, async, sync and mix. I don't even want to try debugging. There is no classes only object and a lot of functions everywhere.
The whole story with Node versions and playing with NVM. Don't even let me talk about Node modules.
Frustration and long development.13 -
So I've created this account specifically for this rant. I usually just browse anonymously.
I've recently been hired in a big company that is one of the biggest Microsoft users in the world and my essentially revolves on making it easier for our collaborators to work with SharePoint (and other ms software)
Never in my life have I hit that much of a roadblock. So for the past week I've been trying to integrate what Ms calls webparts. And to modify the default webparts Ms provides you need to their properties (or Metadata). Except here's the big problem these are NOT documented anywhere (unless I failed to find it, if you do know where it is documented please HMU), so I've found myself trying to reverse engineer the js scripts that are served with SharePoint to figure out what the webpart properties are called and what type of data they are! I've been going through endless github repos using the CSOM nuget package (it's the library everyone uses to interact with SharePoint) and I finally found out about this other library called PnP which is a wrapper around CSOM that makes it easier to use. That wrapper has a way for me to load existing page and look at the properties of existing webparts. So here I thought it was the end of my suffering and I could finally get an idea of what it should be. Turns out this method doesn't work because one of the dependencies it has has had breaking changes and they still updated it even though it breaks their code! So for the past two days I've been trying random combinations of key values with different data types and json serialization methods.
Oh and yeah I've also looked at all the http calls via the chrome network tab, the metadata is not served as an individual file but is computed by Ms servers when they're serving you their html files.
So uh yeah run from CSOM if you can..3 -
Worked on an Android app that synchronized contacts. Didn't consider the contact id may change, leading to (rare) cases of properties being synchronized to the wrong contacts. Only found out later in production when one of my frequent contacts called - and my phone showed a wrong profile picture for him.
-
So we had this legacy Objective-C codebase for a mobile app that was actually pretty good: I'd inherited the codebase and spent the past several years gradually improving it and I was actually quite proud of the work I put into it. So of course management decides to scrap it (with NO consultation from the engineers) and outsource a complete rewrite of the app in C# for Windows Universal.
Let me tell you. That code was without a doubt and without exaggeration the *worst* code I've seen in my close to 30 years of experience as a developer. I mean they broke every rule in the book, I'm talking rookie mistakes. Copypasta everywhere, no consistent separation of concerns, and yet way too many layers. Unnecessary layers. Layers for the sake of layers. There was en entire abstraction layer complete with a replicated version of every single data class *just* to map properties in pascal case to the same property in camel case. Adding a new field to a payload in the API amounted to hours of work and about eight different files that needed to be modified. It was a complete nightmare. This was supposed to be a thin client, yet it had a complete client-side Sqlite database with its own custom schema (oh and of course a layer for that!) completely unrelated to the serverside schema, just for kicks. The project was broken up into about eight or nine different subprojects, each having their own specific dependencies on various of the other subprojects in such a tightly-knit way that it made gradual refactoring almost impossible. This architecture was so impressively bad, it was actually self-preserving!
Suffice it to say it was a complete nightmare, and was one of the main reasons I ended up leaving that company. So just sayin', legacy code isn't always bad. :) -
Story about my old boss:
I was doing a lot of work in an area that had a data property and a method to build an object. I noticed a reset method that iterated all that objects properties, found the matching data from the data object, passed that data through some logic to format it and then assigned that value to the object property.
As part of my PR I removed that method, since data wasn't changing, and simply called the create method again with data.
The result of tidying the code base and putting it up for review before a merge? I get told I have no respect for my boss's code, that I am undermining him, that I need to be more considerate and respectful of other people's work and that I am no longer allowed to change any code he has written in the code base (half the code base) without talking to him about it first, before it goes up for review. Also if he is working on an area I cannot change anything - not even 1 character (he is working on the core of the app).
Every day there I was so confused :D5 -
Me yesterday evening:
"Fuck java, fuck JVM, fuck everything about it, shit doesn't work for some reason, no runtime errors, no compiler errors, no syntax errors, nothing, *turns off computer*".
Me today morning(coffee = false), after comparing the documented example code provided by the API with one someone else made, I've noticed that the one provided by the API was messed up and couldn't work.
"Lemme change that one value in the properties...okay here we go"
Shit works out perfectly.
FUCK FALSELY DOCUMENTED CODE
FUCK DOCUMENTATIONS IN GENERAL2 -
As I already said on devrant, I'm a freelance web developer and I also often sell my services for teaching, loving that. Currently I'm teaching PHP with 30 students and it's going very well.
But yesterday, I received an offer for giving another course next month, this time on HTML and CSS, for a company I don't know yet. Almost every line of this email is wrong, outdated by 20 years, or just basically meaningless...
So I thought I could do my best to translate this as close as possible to the original, preserving the wrong formulations too, just for you devranters fellas.
"Hello,
I have an offer for a 2 days course for 5 people (level 1+ and/or 2), on HTML5 and CSS3. Below, the program :
1. XHTML AND CSS2 INTRODUCTION
Advantages and benefits of change
Understanding compatibility for different versions of browsers
HTML, XHTML, CSS edition tools : presentation of the different tools
The CSS language : different types of selectors : class of selector, identifier of selector, contextual selectors, grouped selectors
Blocks of text, boxes of text
The CSS1, CSSP, CSS2 properties
Relative and absolute measures units
2. LAYOUT TECHNIQUES
Full CSS, XHTML websites demo
Positioning with the position property, positioning with the float property
Columns creation
Layout for forms
Layout for data tables
Layout for menus
3. INTRODUCTION TO SVG (SCALABLE VECTOR GRAPHICS)
Role and importance of SVG
Using SVG on client side : basic shapes
SVG structure of document, tags examples
Using CSS styles with SVG
Different integration methods for SVG in a XHTML document
4. OPTIMISATION OF JAVASCRIPT CODE
Introduction to DOM and Javascript
Access to document objects : different access techniques, using this keyword, create elements dynamically
Positioning elements with the help of Javascript : positionning elements relatively to the mouse, move elements
Show/hide elements for creating hierarchical menus
Code optimisation techniques : using objects, objects litterals, loops optimisation
Can you please give me your availability ?"
Seriously...
CSS-fucking-1 ! Is it a course for dinosaurs ?
...And if only my rant was just about the program...
It's totally impossible to cover all these subjects in only 2 days with people of different levels and experience.
The guy exactly said to me : "don't worry about the program, it's an old text but they agreed to it anyway. They just want to learn HTML and CSS, some of them already know it but want to learn more, and the others are total beginers.".
And here is the meaning for the "(level 1+ and/or 2)" part in the email.
So... Surprizingly, I accepted the offer, but asked for at least a 3rd day. I'm waiting for their answer, but I'll do it anyway, adapting the course content to the actual students knowledge. I need the money, after all.
Wish me luck...
It's just sad that these formation companies are selling bullshit to clients that just want to learn something useful. It's too often like that, they sell shitty/useless programs and we have to catch up in real time with students that don't understand why they don't learn what was told to them.3 -
Working on a team to take functionality from the latest version of an old executable and put it into a new web-based app.
Coworker: I can't get the results to match so I'll just change the options I'm using in the original program until they match.
Me: That's not how this works. That's not how any of this works. Same options on both source and new app, and you should get identical results. Otherwise, there is a defect.
I walk over to look at what CW set up.
M: "Why do you have this box ticked? That option doesn't even exist in the new version."
CW: I don't know. It was there?
M: (trying not to lose my cool, sets up options the way they are supposed to be) This is actually a pretty simple program. It just queries the DB, so we have to make sure the queries and results are the same.
CW: (runs it) Still doesn't match.
M: What version of the source app are you using? Make sure it's the latest.
CW: I can't tell. There is no help/about menu.
At this point, I kinda want to quit and live in a cave.
M: You don't need that. Check the executable in Windows Explorer.
CW: What do you mean?
At this point, I'm sure I look like Anger from Inside Out. I show them how to do it (right click file, properties, etc), wondering how they got this far in their career without knowing how to do the simplest things.
M: (surprised and irritated) This... isn't the current version. It's two versions old.
CW: Well, I couldn't get the newest version to return the results that matched the test cases, so I used the version that did...
M: You can't do th... Why wou... How is that acc... (turns around and walks out to tell the manager he hired a moron)2 -
I always recite borg quotes in my head when my classes need to inherit properties. Your technological and biological distinctiveness with be added to our own. Resistant is futile.
-
When you spend more time renaming variables, class names, properties etc.. to achieve perfect code and patterns rather than actually solving the problem. I'm bored now...
-
Come on guys, use those JSON schemas properly. The number of times I see people going "err, few strings here, any other properties ok, no properties required, job done." Dahhh, that's pointless. Lock that bloody thing down as much as you possibly can.
I mean, the damn things can be used to fail fast whenever you misspell properties, miss required properties, format dates wrong - heck, even when you want to validate the set format of an array - and then libraries will throw back an error to your client (or logs if you're just on backend) and tell you *exactly what's wrong.* It's immensely powerful, and all you have to do is craft a decent schema to get it for free.
If I see one more person trying to validate their JSON manually in 500 lines of buggy code and throwing ambiguous error messages when it could have been trivially handled by a schema, I'm going to scream.16 -
My dev lead is a uniquely poor leader with an impressive ability to produce a large amount inflexible, temporarily functional code.
As we're in another pair programming session where I try to keep him from destroying over all type safety and architectural decisions to meet a self imposed demo deadline, he keeps trying to access properties of his state.
This state object is incorrectly typed with an anonymous type with incorrect properties.
Despite repeating calmly stating that the object is incorrectly typed, and that's why there are red underlines when he tries to access a property he knows is in there, he insists that that's not correct.
Finally, he knowingly says that he's figured it out and that he's been doing this for many years.
What was the solution you might ask? (state as any).myProperty;
Truly breathtaking mastery. -
This is my understanding of "Machine Learning" in general
There are two sets of data:
1. In first data set, all the properties are known
2. In the second set, some properties are not known.
The goal of the machine learning is to find the value of the unknown properties of the second data set.
We do this by finding (or training) a suitable machine learning model (mathematical, logical or any combination of), that in the first data set, computes the value of the properties, which are unknown in second data set, with minimum error since we already know the real value of those properties.
Now, use this model to predict the unknown properties from the second data set.3 -
I took a job with a software company to manage their product, which was a SaaS property maintenance system for real estate, social housing, etc.
There was no charge to real estate agents to use it but maintenance contractors had to use credits to take a job, which they pre-purchased. They recharged their credit costs back to the real estate agent on their invoice).
Whether this pricing model is good or not, that's what it was. So, in I came, and one of the first things management wanted me to deal with was a long-standing problem where nobody in the company ever considered a contractor's credits could go into the negative. That is, they bought some credits once, then kept taking jobs (and getting the real estate agent to pay for the credits), and went into negative credits, never paying another cent to this software company.
So, I worked with product and sales and finance and the developers to create a series of stories to help get contractors' back into positive credits with some incentives, and most certainly preventing anyone getting negative again.
The code was all tested, all was good, and this was the whole sprint. We released it ...
... and then suddenly real estate agents were complaining reminders to inspect properties were being missed and all sorts of other date-related events were screwed up.
I couldn't understand how this happened. I spoke with the software manager and he said he added a couple of other pieces of code into the release.
In particular, the year prior someone complained a date on a report was too squished and suggested a two-digit year be used. Some atrocious software developer worked on it who, quite seriously, didn't simply change the formatting of that one report. No, he modified the code everywhere to literally store two-digit years in the database. This code sat unreleased for a year and then .... for no perceivable reason, the moron software manager decided he'd throw it into this sprint without telling me or anybody else, or without it being tested.
I told him to rollback but he said he'd already had developers fixing the problems as they came up. He seemed to be confident they'd sort it out soon.
Yet, as the day went on more and more issues arose. I spoke to him with the rest of the management team and said we need to revert the code but he said they couldn't because they hadn't been making pull requests that were exclusive to specific tickets but instead contained lots of work all in one. He didn't think they could detangle it and said the only way to fix was "play whack-a-mole" when issues came up.
I only stayed in that company for three months; there was simply way too much shit to fix and to this day I still have no idea the reasoning that went on in the head of anyone involved with that piece of code.2 -
I was pretty upset at my loved one today. She asks me how to save a file into a PDF, so I explained how to print to PDF from chrome, pretty simple, good so far. Then...
-"Hey, the file has an 'e' for internet, will they need internet to open the file?"
-No, why would they?
-The file has an 'e'
-Did you name it 'e'?
-No, but it has an 'e' like internet
-... You mean the icon?
-Yes
-Right click, click on properties and change the default program to Adobe...
-Oh God, it's so complicated, I'll ask someone else to do it
-What? It's literally 2 clicks!
-Why does it need internet?
-It doesn't! It's just the default
-The what?
-Cheez! Doesnt matter, just go to properties and click on 'Change'
-Fine! Done now what?... Ooh...
-Now click on Adobe Acrobat
-Awesome! Thanks! Now it's fixed, I'm so glad because I'm about to send it on an email and I'm sure my boss would have thrown a fit if they weren't able to open it offline
-😒4 -
Spending the day sending emails back and forth with your client because they can't be bothered to prepare a single overview of what properties the endpoint expects, and instead expect you to piece it together from 6 PDFs of which at least 2 contain contradicting information, another is outdated, and the last one seems to have been exported from word and is missing half the content.
Fun times! -
Pretty much Python automation on steroids.
https://github.com/konradhalas/...
Dacite is an integral part in it, cause it makes most auto generated API wrappers like Cloudflare API "maintenable".
Getting dicts, converting via Dacite to defined data classes...
Then using TOML to define e.g. output parameters (e.g. list of classes / properties one needs)...
... To export them via Pandas to anything what one needs.
It's just so comfortable.
Definining data classes, sprinkle the API calls and dacite in it, some definition via TOML, done.
Yes, lots of dark vodoo / behind the scenes magic... But ... It removes all this annoying fucked up boilerplate writing that takes ages and makes it frustrating.
As long as the data wrapper (e.g. clousflare API) generates Dicts, its really minutes to get an export working.
If you know the pain of having to deal with multiple accounts, different formats (e.g. different companies)… hours of manual copy pasting to aggregate the data etc.
Then you can maybe understand why I love this so much.
Data classes and dacite makes painful confusing workflows so much nicer and self documenting, I get wet in my pants while writing this. :) -
Linux:
echo name > /etc/hostname
Windows:
This PC -> Properties -> Extended Settings -> Hostname -> OK.
The fuck windows?!
I'm changing a hostname, not taking out a loan.7 -
Hello and welcome, to a presentation in which I will tell you my thoughts on the shortcomings of modern day computers and programming practices.
Computers are based on a very fundamental and old idea, folders, and files, a file is basically a concrete amount of data, whereas a folder is a group of files, and it comes from the real life concept of files and folders, now it might be quite obvious already that using a concept invented in 1898 by a guy called Edwin G. Seibels, might not be the best way for computers to function in the year 2020, but alas, it is.
Unless of course, you step into the world of a programmer.
A programmer’s world is much different, they use this idea of a data structure, or in simpler terms, an object. An Object is just like what you would think of as an object in your head, something with different properties that you can think about in different ways, for example your mobile phone, it has a battery percentage, it has a screen size, it has free space available. Programmers use these data structures to analyse data very quickly, like finding all phones with a screen size bigger than a certain size for example.
The problem is that programmers still use files and folders to create the programs that use these objects.
Consider this example.
Let’s say you want to create a virtual version of a drink bottle, consider what properties it will have, colour, volume, height, width, depth, material, etc..
As a programmer, you can leverage programming features and change the properties of a drink bottle directly, if you wanted to change the colour, you just say, drink bottle “dot” colour, equals blue, or red.
But if the drink bottle was represented as a file, all the drink bottles data would be inside the one file, so you would have to open the whole file, find the line or section of the file that has the colour data of the drink bottle, and select it, highlight it, delete what’s there, and type in your new value.
One way to explain this better is to imagine a folder that now represents the drink bottle, imagine adding a new file into that folder that represents each property I described before, colour, volume, etc.., well now, you could just open that folder, find the file for colour, either by looking with your eyes or you could do a file search in the folder for a file called colour, open it, and edit the value inside. This way of editing objects is the one that more closely represents the way programmers and a program itself interacts with objects inside a running programming language.
But the thing is, programmers don’t use the folder/file way of creating objects and putting them into programs, because it would be too cumbersome, they just create 1 file for an object, or have lots of objects in a file, and create all the objects in 1 file, and then run the program which creates the objects, then when they stop the program, it deletes the objects. So there is no actual link between the object in a file and the object that the program creates by reading the data from that file, if you change the object in your program, it does not get saved to the file.
So programmers created databases to house these objects, but there is still a flaw in databases, they are hard to interface with, and mostly databases are just used to send data or retrieve data from, programmatically, you can’t really browse a database the way you can browse the files on your computer. You can, but database interfaces are not made to be easily navigated the way files and folders are.
As it stands, there is no way to store objects instead of files on your computer and interact with them in complex ways the way programmers can inside the programs they create.
If the idea of an object became standard the way a file and folder is standard, I think it would empower human’s a great deal to express things far more easily and fluidly than they can today.
Thanks for reading.8 -
PM tells me to merge (large feature) work that's heavily under WIP.
In that is a performance optimisation he instructed (with an aggressive DM) me to stop looking at even though it's a concern for larger clients that I had to fix before as it's "unnecessary" - thought whatever I'll leave the code as is then
I tell him him the PR is not ready yet, there is still a lot of clean up to and tests to write
Just do it
A ~week later "wow you write really selfish code like look at this"
Shows a wrapper class from the optimisation with 2 properties and getters and setters (and override some of super's properties). I explain to him why it's there, "that should have been a comment". I tell him I write detailed comments as part of my refinment process which he wanted me to stop.
This is after he tried to merge a release branch into main while sneaking in some "corrections" and I pointed out it breaks Dev.1 -
can we just get rid of floating points? or at least make it quite clear that they are almost certainly not to be used.
yes, they have some interesting properties that make them good for special tasks like raytracing and very special forms of math. but for most stuff, storing as much smaller increments and dividing at the end (ie. don't store money as 23.45. store as 2,345. the math is the same. implement display logic when showing it.) works for almost all tasks.
floating point math is broken! and most people who really, truely actually need it can explain why, which bits do what, and how to avoid rounding errors or why they are not significant to their task.
or better yet can we design a standard complex number system to handle repeating divisions and then it won't be an issue?
footnote: (I may not be perfectly accurate here. please correct if you know more)
much like 1/3 (0.3333333...) in base 10 repeats forever, that happens with 0.1 in base 2 because of how floats store things.
this, among other reasons, is why 0.1+0.2 returns 0.300000046 -
So today I asked my intern whom I have already asked to look and read about loggers and it's properties that what is the difference between log levels like INFO, WARN, etc and log.info() and log.warn() , etc?
I got a reply that first one is in uppperacse and second one is in lowercase.7 -
Shopping still keeps being an annoying task in the web age. The research for what i actually want is fine.
But it is a so damn timewasting and boring experience to sift through all that search results filtering out the non-results and overprized hippster shops first, then trying to find the best matching product on each remaining shop...
They all let you sort by price but not even one offers sorting by price per kilo and only a few offer some sort of product detail filter (which often omit relevant products because of insufficient tagging)...
The last part is rather easy though: compare properties of best matching offers and use the shop with the best offer.
P.S.:
I am fully aware of the fact, that part of the problem is my obsession in buying the correct thing combined with a cheapskate mentality.
So don't comment about just picking the first sorta-matching offer as that certainly would be way too easy (and cheaper because time is somehow money too).1 -
Keeping up the tradition!
https://devrant.com/rants/15030806/...
Now powered by the awesome Claude 4!!!! The latest bleeding edge gem in the LLM trend that by the bold claims of big tech and various youtubers is stunning and will replace programmers/insane/godsmacking
This time, I decided to post because I was on the verge of a mental breakdown and I had a firsthand experience and a bit of free time, so instead of waiting that the rage boils down, I just took the chance and so we have a fresh AI experience to proof my previous rants.
Problem:
I have an application that manages interactions between a Mediator pattern between Kafka, some http listeners and other stuff (Rabbitmq, Redis (redis= another shit) etc etc)
Kafka handling was already done, i needed to exacly replicate what was being done with kafka for http. I said, heck, we have AI, it's good to do bovine stupid work, why not let him copy the whole structure, they have also agents on copilot on vs code, and they pulled out Claude 4, let's give it faith again.
Big error.
Beside the havoc the fucking agentic AI not being able to fully copy an already existing pattern and scaffolding, it did half shit wrong.
One of the most frustrating parts, since today I have an example, was this (summarized version of the prompt because I was very much more specific also giving the AI files and pointers to the code and explaining it):
PROMPT:"I have to return fake http transports, just copy what exists for kafka and adapt it to a new transport type called "Http", this is the structure {json with the class}
AI: "I need to see the current ITransportsItemResponse interface first to understand the structure, then I'll modify ...... BLAH BLAH"
Of course I had to review the whole code.
PROMPT:"any valid reason why you dumb shithead didn't respect the IGetKafkaConnectionsItemResponse and generic IGetTransportsItemResponse format and you pulled out of your ass a full blown IGetHttpConnectionsItemResponse with extra properties when compared to IGetKafkaConnectionsItemResponse"
AI: "You're absolutely right, I fucked up. Looking at the IGetHttpConnectionsItemResponse interface, it has way more properties than the basic IGetTransportsItemResponse and IGetKafkaConnectionsItemResponse interfaces. BLAH BLAH wall of text reasoning"
Then it modified the api calls to suit the kafka objects and didn't update any class of the Http transports
PROMPT:"So you tought it was a good idea to leave the #sym:IGetHttpConnectionsItemResponse like it is respect to #sym:IGetKafkaConnectionsItemResponse ? Why? And answer the why don't apologize like a little wuss"
AI: "I left them different because they represent different domain concepts... BLAH BLAH EXPLANATIONS WALL OF TEXT"
Now ai tought it was good to do this and that but....
PROMPT: "In your fucking careful analysis didn't you reallize the "items" object are a basic representation and in the fuckin same folder there is also the object with the full set of properties?"
Literally it missed objects used in the same folder for different scopes and modified stuff without caring.
AI: "You're absolutely right. I missed that there are TWO different response types BLA BLAH"
I won't continue to not get too lenghty than it already is but the point is:
AI IS RETARDED.
People say it will replace programmers.
People says agents are the future.
Sad reality it's an overglorified broken ball of if/else that can't do shit well beside bovine work.
No amount of tutoring it with careful prompts, explainig the code and whatever else is going to fix it.
I've used gpt since gpt 3 and no model has been up to anything good, not even NLP. They suck also at the sole scope they were invented for.
I tried to ask GPT to make a curriculum based on another, I gave it the example curriculum and another one with the informations.
I carefully explained that it must not be a copy of the other, they are 2 different roles and to play by fantasy to make it look it was written by 2 different persons and to not copy stuff from the other.
Hope lost. It looked like the other curriculum was copied over and some words swapped, lol.
What a fucking joke, lmao, I am studying deep learning and machine learning to get on the bandwagon to make my professional figure more appealing, but I can already feel this is a waste of time.7 -
Just created a tiny (not yet stable) selector library that allows you to change properties on multiple elements just like you would do on a single one. It also has some more useful features. https://github.com/kosimst/kazel
Still in development, but prototype should work. What do you think?6 -
😡 When one of your hosting companies (inmotionhosting.com) decides to send you a we're going to freeze your service in 48 hours if you don't remove your site backups...
On a Friday...
The backups were made by their own support staff...
Time to move all properties to AWS! 👍7 -
NodeJS:
*Put image in Folder*
</>Import Image from "./images/image"
Xamarin
*Create Folder ONLY FROM VISUAL STUDIO*
*place image into folder*
*Properties: Build action: Embedded Resource*
THE FUCKING RECOURSEID DOESNT EVEN APPEAR WHAT THE FUCK XAMARIN2 -
In SQL Management Studio, why is the Identity Specification so low in the column properties list?! It's so annoying to scroll and find it.
Is this punishment for using the GUI?1 -
Trying to use authenticate a JWT token from an Azure service, which apparently needs to use Azure AD Identity services (Microsoft Entra ID, Azure AD B2C, pick your poison). I sent a request to our Azure admin. Two days later, I follow up, "Sorry, I forgot...here you go..."
Sends me a (small) screenshot of the some of the properties+GUIDs I need, hoping I don't mess up, still missing a few values.
Me: "I need the instance url, domain, and client secret."
<hour later>
T: "Sorry, I don't understand what those are."
Me: "The login URL. I assume it's the default, but I can't see what you see. Any shot you can give me at least read permissions so I can see the various properties without having to bother you?"
T: "I don't see any URLs, I'll send you the config json, the values you need should be in there."
<10 minutes later, I get a json file, nothing I needed>
<find screenshots of what I'm looking for, send em to T>
Me: "The Endpoints, what URLs do you see when you click Endpoints?"
<20 minutes later, sends me the list of endpoints, exactly what I'm looking for, but still not authenticating the JWT>
Me: "Still not working. Not getting an error, just that the authentication is failing. Don't know if it's the JWT, am I missing a slash, or what. Any way I can get at least read permissions so I don't have to keep bugging you to see certain values?"
T: "What do you need, exactly?"
Me: "I don't know. I don't know if I'm using the right secret key, I can't verify if I'm using the right client id. I feel like I'm guessing trying to make this work."
T: "What exactly are you trying to get working?"
<explain, again, what I'm trying to do>
T: "That's probably not going to work. We don't allow AD authentication from the outside world."
Me: "Yes we do. Microsoft Teams, Outlook, the remote access services. I can log into those services from home using my AD credentials."
T: "Oh yea, I guess we do. I meant what you are trying to do. Azure doesn't allow outside services to authenticate using a JWT. Sorry."
FRACK FRACK FRACK!!
Whew! Putting the flamethrower away.
Thanks devrant for letting me rant.3 -
Im in the process of developing a tool for small comunity of gamers.
That tool will help people in mod making.
Currently you have to use notepad++ in order to modify .json files that contain unit properties.
I downloaded grep for win to check for patterns in those .json files to understand how they work
I ran a simple search and...
Avast decided to frezze my pc for 20min to check 300 files because winGrep accesed them...
WHY THE FUCK DID YOU DECIDE TO SATURATE MY HDD IO YOU FUCKING PIECE OF SHIT? I HAVENT GOT ANY WIRUSES FOR 6 YEARS YOU ARE USELESS. I WILL UNINSTALL YOU BECAUSE YOU ARE JUST WASTING MY RESORUCES AND MY TIME.
I cant even reboot my laptop because i would lose my code!
Fuck AV's
Fuck slow hdd's
Fuck inefficient programs
Fuck people who thought that instaling a bunch of crap on win 10 is a good idea
Fuck people who will try to convince me to swich to linux
Fuck apple
Fuck M$
I love my C hashtag
I might swich to win10 ltsb7 -
Follow-up on https://devrant.com/rants/5001553/...
How the fuck are Jupyter notebooks so popular in research? Like some dude had an idea to take perfectly good markdown and python code, add a whole lot of transitional properties to make version control impossible, encode it as JSON on the assumption that a human could somehow look at it and make sense of countless escaped characters and base64 encoded data, create dedicated software people need to install in order to read what used to be simple plain text, and think "This. This is what 99% of data researchers will use from now on." And somehow, overwhelming majority of researchers agreed that this extremely inefficient data format is the best there is and they should develop all their tools around it.11 -
- The golden rule of CoffeeScript is: "It's just JavaScript".
- Nice!
- And provides a basic class structure that allows you to name your class, set the superclass, assign prototypal properties, and define the constructor, in a single assignable expression.
- No nO NO NO! -
Hey, can you generate a spreadsheet from this no-sql database with these specific properties for me?
6 months later:
Hey, the spread sheet in the new database, now use it, I messed with it for the past months, had some trouble with data but it sure is better than the db, right?
...
Just die...5 -
I have an idea
Imagine an objective social media platform
which is like a cms
everything you add to the platform can be anything you want it to be
depending on the properties of any given thing, the client will render it differently, and the blockchain will compute differently.
You go to site.com
you create some "thing"
you give that thing a name,
a facebook post
the platform looks up all the schema's used for thing's named "a facebook post", and suggests the most popular, which would be a "thing"/"object" with the properties comments, with the type list of other things, reactions, which is a list of reactions, reactions being likes, loves, laughs, etc.. a property called shares.. etc.. etc..
so the platform is a cms which can adapt, create, and display data based on what that thing is objectively depending on its properties. You could have tweets, reddit posts, youtube videos, all on the same platform.
If you get my drift, hit me up, ireply@myleisure.com.au,
first principles7