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 - "dates"
-
I fucking hate it when developers don’t respect user locale. My phone language is UK English, my Discord app language is UK English and my region is UK.
Then why the fuck is Discord showing me MM/DD/YYYY date format? How hard is it to pass locale when parsing time?20 -
I don't know if I'm being pranked or not, but I work with my boss and he has the strangest way of doing things.
- Only use PHP
- Keep error_reporting off (for development), Site cannot function if they are on.
- 20,000 lines of functions in a single file, 50% of which was unused, mostly repeated code that could have been reduced massively.
- Zero Code Comments
- Inconsistent variable names, function names, file names -- I was literally project searching for months to find things.
- There is nothing close to a normalized SQL Database, column ID names can't even stay consistent.
- Every query is done with a mysqli wrapper to use legacy mysql functions.
- Most used function is to escape stirngs
- Type-hinting is too strict for the code.
- Most files packed with Inline CSS, JavaScript and PHP - we don't want to use an external file otherwise we'd have to open two of them.
- Do not use a package manger composer because he doesn't have it installed.. Though I told him it's easy on any platform and I'll explain it.
- He downloads a few composer packages he likes and drag/drop them into random folder.
- Uses $_GET to set values and pass them around like a message contianer.
- One file is 6000 lines which is a giant if statement with somewhere close to 7 levels deep of recursion.
- Never removes his old code that bloats things.
- Has functions from a decade ago he would like to save to use some day. Just regular, plain old, PHP functions.
- Always wants to build things from scratch, and re-using a lot of his code that is honestly a weird way of doing almost everything.
- Using CodeIntel, Mess Detectors, Error Detectors is not good or useful.
- Would not deploy to production through any tool I setup, though I was told to. Instead he wrote bash scripts that still make me nervous.
- Often tells me to make something modern/great (reinventing a wheel) and then ends up saying, "I think I'd do it this way... Referes to his code 5 years ago".
- Using isset() breaks things.
- Tens of thousands of undefined variables exist because arrays are creates like $this[][][] = 5;
- Understanding the naming of functions required me to write several documents.
- I had to use #region tags to find places in the code quicker since a router was about 2000 lines of if else statements.
- I used Todo Bookmark extensions in VSCode to mark and flag everything that's a bug.
- Gets upset if I add anything to .gitignore; I tried to tell him it ignores files we don't want, he is though it deleted them for a while.
- He would rather explain every line of code in a mammoth project that follows no human known patterns, includes files that overwrite global scope variables and wants has me do the documentation.
- Open to ideas but when I bring them up such as - This is what most standards suggest, here's a literal example of exactly what you want but easier - He will passively decide against it and end up working on tedious things not very necessary for project release dates.
- On another project I try to write code but he wants to go over every single nook and cranny and stay on the phone the entire day as I watch his screen and Im trying to code.
I would like us all to do well but I do not consider him a programmer but a script-whippersnapper. I find myself trying to to debate the most basic of things (you shouldnt 777 every file), and I need all kinds of evidence before he will do something about it. We need "security" and all kinds of buzz words but I'm scared to death of this code. After several months its a nice place to work but I am convinced I'm being pranked or my boss has very little idea what he's doing. I've worked in a lot of disasters but nothing like this.
We are building an API, I could use something open source to help with anything from validations, routing, ACL but he ends up reinventing the wheel. I have never worked so slow, hindered and baffled at how I am supposed to build anything - nothing is stable, tested, and rarely logical. I suggested many things but he would rather have small talk and reason his way into using things he made.
I could fhave this project 50% done i a Node API i two weeks, pretty fast in a PHP or Python one, but we for reasons I have no idea would rather go slow and literally "build a framework". Two knuckleheads are going to build a PHP REST framework and compete with tested, tried and true open source tools by tens of millions?
I just wanted to rant because this drives me crazy. I have so much stress my neck and shoulder seems like a nerve is pinched. I don't understand what any of this means. I've never met someone who was wrong about so many things but believed they were right. I just don't know what to say so often on call I just say, 'uhh..'. It's like nothing anyone or any authority says matters, I don't know why he asks anything he's going to do things one way, a hard way, only that he can decipher. He's an owner, he's not worried about job security.13 -
MTP is utter garbage and belongs to the technological hall of shame.
MTP (media transfer protocol, or, more accurately, MOST TERRIBLE PROTOCOL) sometimes spontaneously stops responding, causing Windows Explorer to show its green placebo progress bar inside the file path bar which never reaches the end, and sometimes to whiningly show "(not responding)" with that white layer of mist fading in. Sometimes lists files' dates as 1970-01-01 (which is the Unix epoch), sometimes shows former names of folders prior to being renamed, even after refreshing. I refer to them as "ghost folders". As well known, large directories load extremely slowly in MTP. A directory listing with one thousand files could take well over a minute to load. On mass storage and FTP? Three seconds at most. Sometimes, new files are not even listed until rebooting the smartphone!
Arguably, MTP "has" no bugs. It IS a bug. There is so much more wrong with it that it does not even fit into one post. Therefore it has to be expanded into the comments.
When moving files within an MTP device, MTP does not directly move the selected files, but creates a copy and then deletes the source file, causing both needless wear on the mobile device' flash memory and the loss of files' original date and time attribute. Sometimes, the simple act of renaming a file causes Windows Explorer to stop responding until unplugging the MTP device. It actually once unfreezed after more than half an hour where I did something else in the meantime, but come on, who likes to wait that long? Thankfully, this has not happened to me on Linux file managers such as Nemo yet.
When moving files out using MTP, Windows Explorer does not move and delete each selected file individually, but only deletes the whole selection after finishing the transfer. This means that if the process crashes, no space has been freed on the MTP device (usually a smartphone), and one will have to carefully sort out a mess of duplicates. Linux file managers thankfully delete the source files individually.
Also, for each file transferred from an MTP device onto a mass storage device, Windows has the strange behaviour of briefly creating a file on the target device with the size of the entire selection. It does not actually write that amount of data for each file, since it couldn't do so in this short time, but the current file is listed with that size in Windows Explorer. You can test this by refreshing the target directory shortly after starting a file transfer of multiple selected files originating from an MTP device. For example, when copying or moving out 01.MP4 to 10.MP4, while 01.MP4 is being written, it is listed with the file size of all 01.MP4 to 10.MP4 combined, on the target device, and the file actually exists with that size on the file system for a brief moment. The same happens with each file of the selection. This means that the target device needs almost twice the free space as the selection of files on the source MTP device to be able to accept the incoming files, since the last file, 10.MP4 in this example, temporarily has the total size of 01.MP4 to 10.MP4. This strange behaviour has been on Windows since at least Windows 7, presumably since Microsoft implemented MTP, and has still not been changed. Perhaps the goal is to reserve space on the target device? However, it reserves far too much space.
When transfering from MTP to a UDF file system, sometimes it fails to transfer ZIP files, and only copies the first few bytes. 208 or 74 bytes in my testing.
When transfering several thousand files, Windows Explorer also sometimes decides to quit and restart in midst of the transfer. Also, I sometimes move files out by loading a part of the directory listing in Windows Explorer and then hitting "Esc" because it would take too long to load the entire directory listing. It actually once assigned the wrong file names, which I noticed since file naming conflicts would occur where the source and target files with the same names would have different sizes and time stamps. Both files were intact, but the target file had the name of a different file. You'd think they would figure something like this out after two decades, but no. On Linux, the MTP directory listing is only shown after it is loaded in entirety. However, if the directory has too many files, it fails with an "libmtp: couldn't get object handles" error without listing anything.
Sometimes, a folder appears empty until refreshing one more time. Sometimes, copying a folder out causes a blank folder to be copied to the target. This is why on MTP, only a selection of files and never folders should be moved out, due to the risk of the folder being deleted without everything having been transferred completely.
(continued below)29 -
There are so many weird hacks in the quite legacy app I work with I could write a book about all them hacks…
But I must admit, the worst of them all is internal time. Yes, so some blockhead thought it’s a good idea to represent time in a manner completely removed from Datetime objects or timestamps or even string representations. Instead we deal with them as intervals represented by integers - and because this is not fucked up enough by itself, the internal time doesn’t start at midnight, yet the integer representations do. It’s a bloody mess. No wonder most of the bugs we face have to do with dates and time…5 -
Whoever creates blog platforms that do not display publication dates should get 20 years of labor in paper mache mines. Introducing version 4.0.0 of anotherFuckingLibrary.js! When did we do that? Was it 2 days ago and nobody had time to catch on? Has it been a year and now it's an industry standard that you haven't heard about because you're living under the rock? Or was it in 1987? Wouldn't you want to know, naughty boy?2
-
Just had a discussion with a coworker. I noticed he was storing dates as string in mongodb, saying it was better for comparison and because he stored them in UTC. WTH, mongo already stores all dates in UTC and a string date is imposible to compare. I wasted 8 hours finding that last part out.6
-
Every year, the worst dev experience comes right at the holidays, when website owners with big egos want to launch right on (U.S.) Thanksgiving Day, Christmas Eve, or New Year’s Eve/Day because they think they’re that popular and important. It never occurs to them that this is the WORST time because any third party support you need for hosting, APIs, plugins, etc. is either backlogged or out of office. And because NOBODY is eagerly awaiting the redesign of ANY website on those particular dates since they are stuffing their faces and getting s&&&faced at bars and parties. Nobody will even notice that your website has changed until January 15th at the earliest.1
-
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.18 -
contemplating making this really simple regex stop matching dates after year 2999 just cause I think it might be funny and ruin someone's day for a few minutes long after I'm dead.16
-
Who the FUCK thought "let's completely redesign the Doodle mobile app and make it as unusable as possible!"?
The app RESETS every selected option EVERY time you switch to another app and back. Like yea, you don't need to use the calendar app to check at what dates you're available.
Fucking morons! What. a. shit. piece. of. software. How can any PM approve of this? I bet even ChatGPT could do a better job. Fucking hell. "Let's save money with developing hybrid apps! We have no clue how to do it right but: we spend less money, yay!" Fuck. You.
(First rant. Don't know if I did this right but I had to let this out.)2 -
Somehow they felt like the first day of a month isn't always n°1 (and last day might be smaller than 10)8
-
This was initially a reply to a rant about politics ruining the industry. Most of it is subjective, but this is how I see the situation.
It's not gonna ruin the industry. It's gonna corrupt it completely and fatally, and it will continue developing as a toxic sticky goo of selfishness and a mandatory lack of security until it chokes itself.
Because if something can get corrupted, it will get corrupted. The only way for us as a species to make IT into a worthy industry is to screw it up countless times over the course of a hundred years until it's as stable and reliable as it can possibly be and there are as many paradigms and individually reasonable standards as there can possibly be.
Look around, see the ridiculus amount of stupid javascript frameworks, most of which is just shitcode upon vulnerabilities upon untested dependencies. Does this look to you like an uncorrupted industry?
The entire tech is rotting from the hundreds of thousands of lines of proprietary firmware and drivers through the overgrown startup scene to fucking Node.js, and how technologies created just a few decades ago are unacceptable from a security standpoint. Check your drivers and firmware if you can, I bet you can't even see the build dates of most firmware you run. You can't even know if it was built after any vulnerability regarding that specific microcontroller or whatever.
Would something like this work in chemical engineering? Hell no! This is how fucking garage meth labs work, not factories or research labs. You don't fucking sell people things without mandatory independent testing. That's how a proper industry works. Not today's IT.
Of course it's gonna go down in flames. Greed had corrupted the industry, and there's nothing to be done about it now but working as much as we can, because the faster we move the sooner we'll get stuck and the sooner we can start over on a more reasonable foundation.
Or rely on layers of abstraction and expect our code to be compilable on anything the future holds for us.2 -
story of a release
v2.1.0 major changes went live : new features, bug fixes, optimisations. also included releases for 2 associated libraries
release process tasks:
- do code
- update test cases
- test sample app
- test on another sample app
- get code reviewed and approved by senior ( who takes his own sweet time to review and never approves on first try)
- get code reviewed again
- merge to develop after 20 mins( coz CICD pipeline won't finish and allow merging before that)
- merge to master after 20 mins( coz CICD again)
- realise that you forgot to update dates in markdown files as you thought the release will be on 10th sept and release is happennig on 12th sept coz of sweet senior's code fucking/reviewing time
- again raise a branch to develop
- again get it a review approval by sr (who hopefully gives a merge approval in less time now)
- again get it merged to develop after waiting for 20 mins
- again get it merged to master after waiting for 20 mins
- create a clean build aar file
- publish to sonatype staging
- publish to sonatype release
- wait for 30 mins to show while having your brain fucked with tension
- create a release doc with all the changes
- update the documentation on a wyswig based crappy docs website
- send a message to slack channels
- done
===========
why am i telling you this? coz i just found a bug in a code that i shipped in that release which still got in after all the above shitty processes. its a change of a 3 lines of code, but i will need to do all the steps again. even though i am going through the same shitty steps for another library version upgrade that depends on this library 😭😭
AND I AM THE ONE WHO CAUGHT IT. it went unnoticed because both of those shitty samples did not tested this case. now i can keep mum about it and release another buggy build that depends on it and let the chaos do its work, or i can get the blame and ship a rectification asap. i won't get any reward or good impression for the 2nd, and a time bomb like situation will get created if i go with 1st :/
FML :/6 -
Update on my devRant client SwiftUIRant:
I’m experimenting with some UI changes compared to the official app.
* vote buttons are laid out horizontally and placed above the rant to not waste space on the left side.
* comments count shows 0 comments instead of disappearing.
* rants are not cut off but visible in full length (I plan to add a toggle setting for that)
* creation date/time is present in the feed
* date/time formatter uses the current system region and the language english. So no more awkward American dates for non American users.
What do you think?17 -
Python async is a total, unapologetic shitshow. It’s as if the design goal was explicitly to invalidate the maximum number of thoughtful stackoverflow QAs possible. Pro tip: make you sure to memorize the release dates of every minor version of python from 3.5-3.10, so that you know which stackoverflow answers are not relevant in any way to your codebase.2
-
All my resolutions:
- Finish my fully FOSS gamedev workflow and start working on my game by March, have a concept demo by May when my matura exams come round.
- Do good on said exams and get into a good university.
- Do some political or social activism
- Learn the guitar to a campfire level
- Drink til I pass out if trump wins again.
- Make close friends with at least 10 new people
- Go on at least 6 dates2 -
Difference between 2023-01-01 00:00:00 and 2023-12-31 23:59:59 is 11 months, 29 days, 23 hours, 59 minutes, 59 seconds ; so almost a year (by one second)
Difference between 2023-01-01 00:00:00 and 2023-01-31 23:59:59 is the same, almost a month by 1 second.
Same for february (even with 28 being the last day).
But then, 2023-03-01 00:00:00 and 2023-03-31 23:59:59 gives me :
1 month, 2 days, 23 hours, 59 minutes, 59 seconds.
WHY, are there fucking 34 days in March ? Is this a bug ? Is it confused with February being the previous month ?
Why would PHP do this to me ?
Why the hell is it always so painful to work with dates, it's not even like I'm stretching the standard library or using raw timestamps to hack things together
I used the diff method of PHP 7.4 DateTime, is someone wants to try it22 -
Now I'm a bit impressed by auto complete of VS2022.
The full text in grey is auto complete proposition.
Back story :
I have a table where datetime is stored as nvarchar(max).
I'm trying to convert that shit into a proper datetime2 column
But there are dates in ISO format, there are in MM/dd/yyyy, dd/MM/yyyy and there are some with hours/minutes parts.
So i'm making a little script to clean of all that up.
Ofc, not a perfect result, like 01/02/2022 will be considered as dd/MM/yyyy (98% of values are. But still cleaner than before1 -
Microsoft: Do you know dateadd from SQL?
Devs: Yes of course.
Microsoft: Well you can also do that in our brilliant DAX language.
Devs: Ohhhhhh.
Microsoft: It only works with a special date table, though, and it doesn't work with a non-continuous set of dates, so please don't filter too much.
Devs: Please what??? 🤯😵
Why Microsoft, why? -
My previous employer was an e-commerce company. Most of our customers had use it or lose it funds that had to be spent by December 31 each year. So every year, the devs had to stay online until midnight on New Year’s Eve just in case there was a website issue. I didn’t witness any issue during my time there, or at least I was never contacted for support when I was on NYE duty.
They compensated by giving an extra PTO day for future use. Pre 2020, they’d allow us to leave work two hours early on NYE since the office was in NYC and getting home would be a nightmare. But you’d have to work from home to work the NYE support.
It was “optional”, but we know as a dev it’s not really optional unless you have a life and death reason not to. My first few weeks working there, my grandma had passed away. The funeral was NYE weekend so I was excused from doing the NYE support my first year because I was on bereavement leave.
The last two weeks of December were considered blackout dates for PTO, so everyone (including non devs) was not allowed to take any vacation time during those two weeks. Some people might have a problem with that if they’re into holiday celebrations and family and friend get togethers. They did observe Christmas, so that was the only day off most folks got during those two weeks. Though, the period from Thanksgiving through the end of December was stressful.2 -
I wrote a book about dealing with dates in data pipelines.
https://williamsbk.gumroad.com/l/...
I hope to write another one early next year. -
Ok, So I am just fed up with these project delivery dates. These are the most irritating aspect of any project.
My current project is already delayed 3 times, because of the optimistic biases of the team lead.
Developers were forced to work over weekends. The QA cycle is taking more time than the dev cycle itself, and it's very irritating waking up with a new bug in the JIRA notifications.
Everytime we reach the delivery dates, there will be multiple bug items on each and everyone's plate that you just can't release the product.
I want to know if anyone feels the same ? How does your management takes care of these delivery dates ?1 -
Unix Epoch should have started in 2000, not 1970.
Those selfish people in the 1970 who made up the Unix epoch had little regard for the future. Thanks to their selfishness, the Unix date range is 1902 to 2038 with a 2³² integer. Honestly, who needs dates from 1902 to 1970 these days? Or even to 1990? Perhaps some ancient CD-ROMs have 1990s file name dates, but after that?
Now we have an impending year 2038 problem that could have been delayed by 30 years.
If it started on 2000-01-01, Unix epoch would be the number of seconds past since the century and millennium.13 -
For some reason I always have a hard time mentally mapping "asc/desc" to dates. I think of stairs and mentally map the dates to unicode timestamps. Am I the only one? Sort descending by date is newest first, btw6
-
People are like programming environments, in basics all people are the same like all programming environments are the same, every programming language have a loop and conditions, numbers, strings and dates. The problem starts with syntax to write code or can you call it communicate with person. There are syntax errors, someone use functions and classes and that’s ok but someone is writing everything in one file and then it’s hard to communicate or change something. But the real problem are libraries or you can call it believes. Everyone is believing something but when you start using it and want some advanced functions there’s always something missing. When you want to contribute to fix that stuff you often can’t cause it’s closed source or maintainers are pricks. You end up writing wrappers and decorators, ignore malfunctions to somehow live with that problem. That’s called social skills.
We’re just programming environments. That’s all.1 -
The Future is long in the past and it happened. Don't try to steal it any longer and listen to the truth and match it to whatever the real dates are. Far too much yet to arrive
Stop trying to shape everything into a loopty loo web of idiocy with a decade or more of pre filmed television and movies thanks much
Doesn't look like any of it was being withheld but seems like some of it was filmed far past the supposed date it was released or filmed heh3