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 - "removal"
-
Sister was getting a new phone (she likes iphones but the jackplug removal made her go towards android as well as the prices) and there was this Deezer family deal. So she Signal'd me asking if I'd like to join the deezer family and I was like 'yeah sure but just remember that there's a big chance of me moving to another country after my study, is that okay with this subscription?'
Sales guy: It's limited to the country the official subscriber is in.
Sister: 'Oh but my brother is a smart IT guy, he can probably setup a VPN server here so that he can still use the app.'
She told that the face of the sales guys was like 'what the actual fuck just happened'.
She called me afterwards telling the story and also 'even though I thought I'd never learn about this stuff (I always told stuff at the dinner table), appearantly you taught me more than I realized!;.
Yeah, that was a very proud brother moment =).6 -
New phone rom doesn't allow bloatware app removal, even at root level.
Root file manager -> /system/app -> remove whole 'uninstallable app's' whole fucking folder -> reboot -> device still works well.
Problem solved.26 -
Watching the Dutch government trying to get through the public procurement process for a "corona app" is equal parts hilarious and terrifying.
7 large IT firms screaming that they're going to make the perfect app.
Presentations with happy guitar strumming advertisement videos about how everyone will feel healthy, picnicking on green sunny meadows with laughing families, if only their app is installed on every citizen's phone.
Luckily, also plenty of security and privacy experts completely body-bagging these firms.
"It will connect people to fight this disease together" -- "BUT HOW" -- "The magic of Bluetooth. And maybe... machine learning. Oh! And blockchain!" -- "BUT HOW" -- "Shut up give us money, we promise, our app is going to cure the planet"
You got salesmen, promising their app will be ready in 2 weeks, although they can't even show any screenshots yet.
You got politicians mispronouncing technical terminology, trying hard to look as informed as possible.
You got TV presenters polling population support for "The App" by interviewing the most digitally oblivious people.
One of the app development firms (using some blockchain-based crap) promised transparency about their source code for auditing.... so they committed their source, including a backup file from one of their other apps, containing 200 emails/passwords to Github.
It's kind of entertaining... in the same way as a surgery documentary about the removal of glass shards from a sexually adventurous guy's butthole.
Imma keep watching out of morbid fascination.... from a very safe distance, far away from the blood and shit that's splattering against the walls.
And my phone -- keep your filthy infected bytes away from my sweet baby.
I'll stick with social distancing, regular hand washing, working from home and limited supermarket trips, thank you very much.26 -
Brought two laptops: Linux and windows
Forgot charger for windows.
Graphics not working properly in linux
Three hours of package installation, documentation diving, package removal, driver fuckery and other assorted fun
I can now play Minecraft.4 -
I've seen this image a couple of times, and now people even have it as their desktop background. Have fun with your corrupted file systems :')19
-
!rant
"I should be in charge," said the brain , "Because I run all the body's systems, so without me nothing would happen."
"I should be in charge," said the blood , "Because I circulate oxygen all over so without me you'd waste away."
"I should be in charge," said the stomach," Because I process food and give all of you energy."
"I should be in charge," said the legs, "because I carry the body wherever it needs to go."
"I should be in charge," said the eyes, "Because I allow the body to see where it goes."
"I should be in charge," said the rectum, "Because Im responsible for waste removal."
All the other body parts laughed at the rectum And insulted him, so in a huff, he shut down tight. Within a few days, the brain had a terrible headache, the stomach was bloated, the legs got wobbly, the eyes got watery, and the blood Was toxic. They all decided that the rectum should be the boss
The Moral of the story? Even though the others do all the work.... The ass hole is usually in charge4 -
Simplicity is a prerequisite for reliability.
I put those words on the wall in giant vinyl letters, and I point to them every time someone asks me "can you add a frontend button which checks this external API and stores the correlation between the amount of rain and the sales numbers of purple buttplugs inside the user profiles?"
People always ask for one more column in a table, one more paragraph under an image — they never ask for replacement or removal of items.
So I force them. Want a feature? Fine, if you point at something of equal or greater complexity to delete.2 -
A few hours ago I got notified that youtube-dl had been subjected to a DMCA takedown from the RIAA (https://github.com/github/dmca/...). I was instantly asked to mirror a known copy of the repository, but was too late to do it.. the other mirror had already been taken down as well. Coincidentally I also had to deal with an attack from 2 email spamhausen at the same time (still ongoing too, but things have settled down). As we frantically started searching for other mirrors we did find another one at https://gitea.eponym.info/Mirrors/.... I've now also mirrored both youtube-dl and NewPipe to https://git.ghnou.su/mir/youtube-dl and https://git.ghnou.su/mir/newpipe respectively.
The reason for it in the DMCA takedown is ridiculous though... There were 3 links to copyrighted videos in the readme file. Yeah.. 3 links, that's what a whole project got taken down for. Sending an email to one of the maintainers or opening an issue was clearly too much work.
If you want to participate in the mirroring process, feel free to use my mirror as a source. I find takedowns like this unacceptable and this software should remain available on the internet, until the youtube-dl developers can appeal for takedown removal or move their project elsewhere. Together we can do it!22 -
So our method of complying with user removal requests for GDPR is:
audit.record("user {user.name} removed their account", serialize(user));
user.delete();
🤦8 -
Recently I've played around with the Seam Carving algorithm for the content-aware image resizing.
It turned out that the algorithm is pretty powerful, elegant but yet simple. One of the interesting parts was that it might be optimized with the Dynamic Progrming approach. Also, it may perform a simple object removal from the image without even modern ML algorithms.
I've tried to describe my experience here in the interactive article:
https://trekhleb.dev/blog/2021/...5 -
“ThAnK YeW 4 KallIng MicraroSoFt TekNicAll SuppUrt, mY nAmE iS JaKe. YoUR KomputeR HaS VirUs ThaT NeEds ReMoVal.”
Go float yourself you sack of shit, your mother should have swallowed.6 -
Fuckity fuck.
It's weekend.
To all you abusive, micromanaging arseholes… Light a magnesium torch up in your arse and make us smile.
To all you motherfucking dumb cunts who can play 8 hours instead of working, but are unable to cope with the simple task of documentation:
Resign and stay away from civilization as far as you can. Alternative: Self castration and removal from the gene pool
To all the narcisstic workaholics who think everyone must be available everytime... Hop into a meat grinder, it's nice and cozy - I've been told.
It's weekend and I've finished everything. First time in half a year that I can return to a normal weekend schedule.
Dobby is free. And Dobby will stuff a sock so far up your arse that you can lick it clean if you disturb dobby.
:) *happy smile*7 -
Really linkedin!? I am trying to get an entry level software developer position and my connections/search history should reflect that, but no what their system reflects is "Bird removal technician" wtf!!! Looks like I found my true calling card guys XD6
-
I've just noticed an app review that I've given and would fit right into the wk123 (that's the insult one, right?).
"Biggest pile of junk that I've ever seen. You have one job! To register the fucking phone number (which you could get with Phone permission) and verify it (which you can do with the SMS permission) and you should either have the user do that once upon installation or you automate it entirely so that it can run in the background! You can fully automate this, and it's not that complicated that it needs 10 whole seconds of loading time in between! Heck, this pile of crap can't even continue into the main view after entering the verification code! You haven't published the source code (and maybe that's for the best) but if it was, I'd probably immediately get cancer by viewing your crappy spaghetti code. Dear developer, please take a step back and (re)join the PC tech support guys. You have no place in the development world."
To top it all off, that app currently only needs phone permission to verify my number (at least they've done that much). So I figured, I've already gone through that authentication flow so let's remove that permission to abide by the principle of least privilege.
Except that the fucking crapp just goes through the "requires phone permission" shit again whenever that permission removal happens. Fucking piece of garbage!!! That such spaghetti code fuckers even have a job, it boggles my mind.4 -
```We discovered that your app contains hidden features. Attempting to hide features, functionality or content in your app is considered egregious behavior and can lead to removal from the Apple Developer Program.```
- Apple App Store Publishing Team
.
ARE U FU KINV KIDDING ME
THAT IS THE COMPLETE REASON WHY YOU REJECTED MY APP?
THE SAME GODDAMN BUILD THAT WAS SUBMITTED ON GOOGLE PLAY FOR ANDROID GOT APPROVED IN 10 MINUTES
IS THE SAME BUILD VERSION THAT GOT REJECTED 3 DAYS AFTER REVIEW ON THE APP STORE
BECAUSE "THEY THINK" I HAVE HIDDEN FEATURES LOL WHAT ARE FU🤡🤡KING INSANE🤡 YO😂😂🤡🤡
THIS REJECTION REASON IS LIKE A SHITTY USER REVIEW
"omg baby girl this app is best" *1 star"
OR
"I have a crash pls fix its not work this app cz crashs n not fixes fck u developers fix it these prblms !!!!🍆🍆🍆👅👅👅💦💦💦💨🌬🌬🌬" *1 star*
AND GET THIS RN !!!!
RN !!!!!!
THEY EVEN *THREAT ME* TO BAN MY APPLE DEVELOPER PROGRAM ACCOUNT WHICH I. P A I D. F O R. $ 100 USD
BECAUSE MY APP HaS 'HIDDEN FEATURES'
THERE ARE NOOO9OO FI KING HIDDEN FEATURES U MTHHHFRRFKERSS I WILL CUMBLAST ALL OF UR APPLE HOLES INTO UR ASSHOLES AND GIVE BIRTH TO THE MAGGOTS🤡GROWING FROM WITHIN🤡UR FKIG ASSHOLE CZ ALL OF YALL R FKIN ASSHOLES🤡ANYWAY🤡THEN MY FKIG HOT CUM🤡WILL EXPLODE💦OUT OF YOUR🤡ASS AND U WILL BE CLOWNS FOREBER🤡I WORKED WAY TOO HARD TO DESERVE AN UNNECESSARY REJECTION THAT HAS A VAGUE REASON OF WHY IT WAS REJSCTED🤡🤡🤡
juuuuuuu
🤡hehe11 -
Biggest challenge I overcame as dev? One of many.
Avoiding a life sentence when the 'powers that be' targeted one of my libraries for the root cause of system performance issues and I didn't correct that accusation with a flame thrower.
What the accusation? What I named the library. Yep. The *name* was causing every single problem in the system.
Panorama (very, very expensive APM system at the time) identified my library in it's analysis, the calls to/from SQLServer was the bottleneck
We had one of Panorama's engineers on-site and he asked what (not the actual name) MyLibrary was and (I'll preface I did not know or involved in any of the so-called 'research') a crack team of developers+managers researched the system thoroughly and found MyLibrary was used in just about every project. I wrote the .Net 1.1 MyLibrary as a mini-ORM to simplify the execution of database code (stored procs, etc) and gracefully handle+log database exceptions (auto-logged details such as the target db, stored procedure name, parameter values, etc, everything you'd need to troubleshoot database errors). This was before Dapper and the other fancy tools used by kids these days.
By the time the news got to me, there was a team cobbled together who's only focus was to remove any/every trace of MyLibrary from the code base. Using Waterfall, they calculated it would take at least a year to remove+replace MyLibrary with the equivalent ADO.Net plumbing.
In a department wide meeting:
DeptMgr: "This day forward, no one is to use MyLibrary to access the database! It's slow, unprofessionally named, and the root cause of all the database issues."
Me: "What about MyLibrary is slow? It's excecuting standard the ADO.Net code. Only extra bit of code is the exception handling to capture the details when the exception is logged."
DeptMgr: "We've spent the last 6 weeks with the Panorama engineer and he's identified MyLibrary as the cause. Company has spent over $100,000 on this software and we have to make fact based decisions. Look at this slide ... "
<DeptMgr shows a histogram of the stacktrace, showing MyLibrary as the slowest>
Me: "You do realize that the execution time is the database call itself, not the code. In that example, the invoice call, it's the stored procedure that taking 5 seconds, not MyLibrary."
<at this point, DeptMgr is getting red-face mad>
AreaMgr: "Yes...yes...but if we stopped using MyLibrary, removing the unnecessary layers, will make the code run faster."
<typical headknodd-ers knod their heads in agreement>
Dev01: "The loading of MyLibrary takes CPU cycles away from code that supports our customers. Every CPU cycle counts."
<headknod-ding continues>
Me: "I'm really confused. Maybe I'm looking at the data wrong. On the slide where you highlighted all the bottlenecks, the histogram shows the latency is the database, I mean...it's right there, in red. Am I looking at it wrong?"
<this was meeting with 20+ other devs, mgrs, a VP, the Panorama engineer>
DeptMgr: "Yes you are! I know MyLibrary is your baby. You need to check your ego at the door and face the facts. Your MyLibrary is a failed experiment and needs to be exterminated from this system!"
Fast forward 9 months, maybe 50% of the projects updated, come across the documentation left from the Panorama. Even after the removal of MyLibrary, there was zero increases in performance. The engineer recommended DBAs start optimizing their indexes and other N+1 problems discovered. I decide to ask the developer who lead the re-write.
Me: "I see that removing MyLibrary did nothing to improve performance."
Dev: "Yes, DeptMgr was pissed. He was ready to throw the Panorama engineer out a window when he said the problems were in the database all along. Didn't you say that?"
Me: "Um, so is this re-write project dead?"
Dev: "No. Removing MyLibrary introduced all kinds of bugs. All the boilerplate ADO.Net code caused a lot of unhandled exceptions, then we had to go back and write exception handling code."
Me: "What a failure. What dipshit would think writing more code leads to less bugs?"
Dev: "I know, I know. We're so far behind schedule. We had to come up with something. I ended up writing a library to make replacing MyLibrary easier. I called it KnightRider. Like the TV show. Everyone is excited to speed up their code with KnightRider. Same method names, same exception handling. All we have to do is replace MyLibrary with KnightRider and we're done."
Me: "Won't the bottlenecks then point to KnightRider?"
Dev: "Meh, not my problem. Panorama meets primarily with the DBAs and the networking team now. I doubt we ever use Panorama to look at our C# code."
Needless to say, I was (still) pissed that they had used MyLibrary as dirty word and a scapegoat for months when they *knew* where the problems were. Pissed enough for a flamethrower? Maybe.6 -
Debian team removed a package "weboob" due to anti-harassment policies. Quick, bring the popcorn!
https://phoronix.com/scan.php/...30 -
My Sunday Morning until afternoon. FML. So I was experiencing nightly reboots of my home server for three days now. Always at 3:12am strange thing. Sunday morning (10am ca) I thought I'd investigate because the reboots affected my backups as well. All the logs and the security mails said was that some processes received signal 11. Strange. Checked the periodics tasks and executed every task manually. Nothing special. Strange. Checked smart status for all disks. Two disks where having CRC errors. Not many but a couple. Oh well. Changing sata cables again 🙄. But those CRC errors cannot be the reason for the reboots at precisely the same time each night. I noticed that all my zpools got scrubbed except my root-pool which hasn't been scrubbed since the error first occured. Well, let's do it by hand: zpool scrub zroot....Freeze. dafuq. Walked over to the server and resetted. Waited 10 minutes. System not up yet. Fuuu...that was when I first guessed that Sunday won't be that sunny after all. Connected monitor. Reset. Black screen?!?! Disconnected all disks aso. Reset. Black screen. Oh c'moooon! CMOS reset. Black screen. Sigh. CMOS reset with a 5 minute battery removal. And new sata cable just in cable. Yes, boots again. Mood lightened... Now the system segfaults when importing zroot. Good damnit. Pulled out the FreeBSD bootstick. zpool import -R /tmp zroot...segfault. reboot. Read-only zroot import. Manually triggering checksum test with the zdb command. "Invalid blckptr type". Deep breath now. Destroyed pool, recreated it. Zfs send/recv from backup. Some more config. Reboot. Boots yeah ... Doesn't find files??? Reboot. Other error? Undefined symbols???? Now I need another coffee. Maybe I did something wrong during recovery? Not very likely but let's do it again...recover-recover. different but same horrible errors. What in the name...? Pulled out a really old disk. Put it in, boots fine. So it must be the disks. Walked around the house and searched for some new disks for a new 2 disk zfs root mirror to replace the obviously broken disks. Found some new ones even. Recovery boot, minimal FreeBSD Install for bootloader aso. Deleted and recreated zroot, zfs send/recv from backup. Set bootfs attribute, reboot........
It works again. Fuckit, now it is 6pm, I still haven't showered. Put both disks through extensive tests and checked every single block. These disks aren't faulty. But for some reason they froze my system in a way so that I had to reset my BIOS and they had really low level data errors....? I Wonder if those disks have a firmware problem? So that was most of my Sunday. Nice, isn't it? But hey: calm sea won't make a good sailor, right?3 -
Lets create a library.
Lets use that library in a project.
Lets wrap the library call in a wrapper functione to remove duplicate code.
Lets add an overloaded wrapper call that wraps the wrapper call that calls the library to partially undo the duplicate code removal.
Lets add another overloaded wrapper call that wraps the wrapper call that wraps the wrapper call that calls the library to partially undo the duplicate code removal.
How I love it. Not.
Sometimes redundancy makes sense, especially when it are two lines which make it obvious whats going on vs a single line that leads to a fuckton of overloaded wrapper functions.
Sheeesh.
Today in "code monkeys deserve divine punishment".
Another funny thing is creating a Helper class for Junit 5 tests, making it instantiable and adding to it all kinds of shit like testcontainer creation, applications instantiation, mocks, ....
... Then " crying " why the tests are so slow.
Yeah. Logic. Isolation of concerns, each test should be a stand alone complex.
But that would lead to redundancy... Oh no.
Better to create a global state god object.
Some devs... Really amaze me, especially when they argument in ways that makes one really wonder whether they are serious or just brain dead.14 -
Wisdom teeth removal tomorrow morning. They're stuck up in there so they're putting me to sleep and really yanking on em. Gonna be out of action for a few days. Merry Christmas everyone!
I wish they gave me Xanax for a couple days in advance, not one hour in advance.9 -
I know folks do their best, but come on Apple, this can't be that hard. Bought an IPhone at an estate sale (elderly individual died suddenly, so no one had knowledge of the apple id, passwords, etc) and I've been trying to convince apple to clear the activation lock. (AS = Apple Support)
<after explaining the situation>
AS: "Have you tried putting the phone in recovery mode? That should clear the lock"
Me: "I've already done that. It prompts for the apple id and password, which I don't have"
AS: "You need to talk to the owner and get the information"
Me: "As I explained, I purchased the phone at an estate sale of someone who died. I have the bill of sale, serial number, the box, obituary. What else do you need?"
AS: "Have you tried contacting a family member? They might have have that information."
Me: "The family members at the sale told us this is all they had. This kind of thing has to happen. I can't believe Apple can't clear the activation lock."
AS: "Yes, we can, but I'm very sorry we take security seriously."
Me: "I understand, what do I do now?"
AS: "Did you log out of the phone? Go to settings ..."
Me: "Yes, I tried all those steps before calling. It prompts for the AppleID and password."
AS: "Did you try entering the password?"
Me: "No, I don't have it. I already explained there is no way to know"
AS: "Yes..yes...sorry...I'm just reading the information in front of me. I found something, have you tried submitting a activation lock removal request?"
Me: "Yes, it was denied, didn't tell me why, which is why I'm calling. What about taking this phone to an Apple store? I have all the paperwork."
AS: "Sure, you can try. You might need the death certificate. The family or the coroner will have a copy."
Me: "What!? Apple requires a death certificate to unlock a phone!? I'm pretty sure not even the family is going to give a total stranger a death certificate"
AS: "Sorry sir, I'm just reading what is in front of me. Without that certificate, there is no way to prove the person died. You can try the Apple store, but they will likely require it."
Me: "That's a lot of drama for unlocking a phone. A *phone*"
AS: "Yes sir, I understand. If there anything else we can do let us know and thank you for being an a apple customer."
Next stop, the Apple Store.12 -
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 -
Apple fanboys justify the removal of audio jack as simplification of design. How the fuck am i supposed to find those damn pods if i misplace them. and what uf your bluetooth pods are shit and i want a different one. Fucking idiots.4
-
Just had a talk with my manager who wanted to know why I removed a feature from an application we had. This removal had been discussed WITH THE MANAGER several months prior, but apparently they hadn't written a little note or anything down about it.
I told them we had discussed it earlier. They didn't believe me. They checked the project technical specifications that said it _should still be there_. I told them we talked about it previously. They told me to prove it, so I go looking through the commit history.
Lo and behold:
- Commit <hash> authored 4 months ago.
- Update to specifications, asked for by <manager>
Eat it.2 -
"Non-devs never call Steven Spielberg to have their TVs fixed."
But sure they MUST call a dev to update their Android, iPhone, Windows, installation of Anti-virus, data recovery, malware removal, to shortlist 20 laptops from market, ask for what printer to buy, why is there a weird animation in Android sometimes, come borrow my WiFi, have their phones and computers fixed, RIP old audio CDs (yes!), fix Bluray, fix anything electronic, repair their bike, teach them science, politics...
This While True loop never escape.1 -
I usually start on stuff but get about 90-95% done and find that last 5-10% requires as much (time|energy) as the rest of the project.
Bloatware removal script in powershell for factory imaged systems currently.
Nearing completion now but always a few more features and testing rounds to go...
Working gui now but getting good UX takes time with winforms.3 -
"Longest you worked without rest + why?"
46hrs
2 x 14h shifts from 0400h on.
No breaks, toilet, drinks or food.
Intercepted by a removal and all the getting ready, getting there, preparing food and such stuff.
Quite common the 10-14hrs shifts these days. Logistics companies take pride on how they don't give a remote fuck about their employees. .. And! Regularly fucking up everything with their out of this world expectations and assumptions. Only thing stopping such madness? The reality of sailing the edge of bankruptcy.
Seconded by a university event that everybody fucked up and had to be pulled out of the mud with 44hrs straight.
Well. Intercepted by some booze.
Best part? My then time partner decided to throw an episode in my only free time. God I still hate that daemon. She must have committed a series of crimes against humanity by now. Easily could be responsible for the downfall of civilisation.5 -
From the Chromium mailing list:
TL;DR - 32 bit is no more (?)
Hi, chromium devs,
TL:DR;
I will remove following 4 builders next week.
Linux Builder (dbg)(32)
Linux Tests (dbg)(1)(32)
linux_chromium_compile_dbg_32_ng
linux_chromium_dbg_32_ng
More explanation:
For now, chromium does not support 32 bit Linux
https://support.google.com/chrome/...
and all 32 bit x86 devices for chromeos is EOL too.
https://chromium.org/chromium-os/...
Considering that, I was not able to find any reason we have builders for not supported platform now.
If you have any comments about this builder removal, please let me know.
I will start removing process of the builders next week if there is no concern from you.
Note: This removal does not include 32 bit android/windows/libfuzzer or other than chromium builders.
Thanks,
Takuto
--
Takuto Ikuta
Software Engineer in Tokyo
Chrome Ops (goma team)8 -
!rant
Small refactor. Which resulted in the confident removal of a comment that said:
// will this fail?
Ah. Like a breath of fresh air. -
Farewell flash - you will be missed in the nostalgic archives.
You know your software is over when Microsoft pull the plug - now awaiting the IE removal 🤷♂️
https://catalog.update.microsoft.com/...2 -
We at www.PinkiesForCash.com will buy your old pinkies and give cash in hours.
Don't miss out on this twice in a lifetime offer and sell your pinkies today!
All sales are final, our pinkie removalists are the best in the industry with quick and painless removal techniques, you'll never know you had a pinky before!
That's www.pinkiesforcash.com don't miss out!!joke/meme most cash much wow cash on hours such pinky best doctors special price for stuxnet 👀 show me the money pinkiesforcash5 -
After deleting an AskUbuntu question due to peer pressure pointing out that it is "off-topic because parts are off-topic, and parts are written as a rant in disguise", I decided that DevRant is where to repost this instead:
As a user, how can I make sure to keep my applications as a user without keeping obsolete software packages?
Upgrading to Ubuntu 22.04 LTS (Jammy Jellifish) using the Software Updater GUI removes a working installation of the zoom video meeting application, without installing any upgrade, during the "cleanup" step.
Unfortunately, we can only choose either to remove or keep all suggested removals. While every other removal seemed fine and had a good explanation (either an outdated version number or the move to update Firefox via snap packages in the future), only zoom, at the end of the list, was scheduled for removal without any replacement.
After proceeding with the removals and restarting my computer, as expected, zoom is gone.
I am posting this to inform others before the upgrade, but also trying to help solve the problem, so that either there should be an option to select which packages to keep or remove (maybe there is when using the command line instead of the GUI?) or not to suggest to remove zoom at all. If it had been removed as an outdated third-party source without official 22.04 support, it would have been helpful to communicate that more explicitly.
As the latest zoom version, 5.12.2 (4816) deb (for Ubuntu 16.04+), obviously supports everything from 16.04, there should be no reason at all to remove zoom when upgrading an Ubuntu distribution.
https://askubuntu.com/questions/...4 -
¡rant|rant
Nice to do some refactoring of the whole data access layer of our core logistics software, let me tell an story.
The project is around 80k lines of code, with a lot of integrations with an ERP system and an sql database.
The ERP system is old, shitty api for it also, only static methods through an wrapper to an c++ library
imagine an order table.
To access an order, you would first need to open the database by calling Api.Open(...file paths) (yes, it's an fucking flat file type database)
Now the database is open, now you would open the orders table with method Api.Table(int tableId) and in return you would get an integer value, the pointer.
Now for the actual order. first you need to search for it by setting the search parameter to the column ID of the order number while checking all calls for some BS error code
Api.SetInt(int pointer, int column, int query Value)
Then call the find method.
Api.Find(int pointer)
Then to top this shitcake of an api of: if it doesn't find your shit it will use the "close enough" method of search.
And now to read a singe string 😑
First you will look in the outdated and incorrect documentation given to you from the devil himself and look for the column ID to find the length of the column.
Then you create a string variable with ALL FUCKING SPACES.
Now you call the Api.GetStr(int pointer, int column, ref string emptyString, int length)
Now you have passed your poor string to the api's demon orgy by reference.
Then some more BS error code checking.
Now you have read an string value 😀
Now keep in mind to repeat these steps for all 300+ columns in the order table.
News from the creators: SQL server? yes, sql is good so everything will be better?
Now imagine the poor developers that got tasked to convert this shitcake to use a MS SQL server, that they did.
Now I can honestly say that I found the best SQL server benchmark tool. This sucker creams out just above ~105K sql statements per second on peak and ~15K per second for 1.5 second to read an order. 1.5 second to read less than 4 fucking kilobytes!
Right at that moment I released that our software would grind to an fucking halt before even thinking about starting it. And that me & myself and I would be tasked to fix it.
4 months later and two weeks until functional beta, here I am. We created our own api with the SQL server 😀
And the outcome of all this...
Fixes bugs older than a year, Forces rewriting part of code base. Forces removal of dirty fixes. allows proper unit and integration testing and even database testing with snapshot feature.
The whole ERP system could be replaced with ~10 lines of code (provided same relational structure) on the application while adding it to our own API library.
Best part is probably the performance improvements 😀. Up to 4500 times faster and 60 times less memory usage also with only managed memory.3 -
*revving chainsaw noises*
Today I started nuking leftover project code.
At the end, some projects shrunk by roughly up to 40 % .
Can anyone explain to me why programmers have such an awful hoarding syndrome?
Why do you keep shit that might unleash complete havoc cause it hasn't been touched since years and noone knows id it still works?
It's like having a leg with gangrene and keeping it cause "it doesn't look that bad".
For fucks sake. Clean up and remove shit when it's not necessary anymore.
Reason why I did a bloody gore massacre in nearly a dozen projects... After all the rework of networking, it's finally evident which projects have a bad / nasty behaviour of "fucked up" connection handling (HTTP 1.1).
And when my gory massacre removal goes life, I think 25-35 % of persistent connections on the loadbalancers will vanish. Maybe even more, since some very nasty stuff was in some projects.
Like "let's implement monitoring without having any clue about how monitoring works and even less clues about how TCP/ HTTP works."
*Bangs devs heads on table*
Stop. Doing. Stupid. Things.
For fucks sake.
:@ :@12 -
I embrace the removal of the audio jack on smartphones, and I like listening to music via my Bluetooth headset.
Yet why, for fuck's sake, is a double tap on the headset's play button mapped to Call Redial?
I have lost count how often I called someone by mistake. How is such on action a meaningful default? What were they thinking, were they thinking at all?
Everytime I turn on the goddamn headset, I take extra care to ensure that I don't doubletap yet it still often happens by mistake.
I rarely call people anyways on my smartphone anyways.17 -
So we started a new Unity video game project for mobile in June 2021. Hooray!
Being a mobile project, one of the earliest things we think about is scaling the interface across all sorts of device screen resolutions and aspect ratios, right? Well, to preemptively solve this problem early on, I decided to letterbox the game view - just choose one aspect ratio for the game and pad black bars to the sides of the screen. Simple, solves the game's world space problem without trying too hard, and it automatically adapts to Android's split-screen mode.
I showed the early builds to management as well as game design team and they gave me some general nods. Sounds like green light ahead. I spent the next few months building the game logic and scale the UI around a consistent letterboxed game view. If you had experience scaling Unity UI to a letterboxed area, you should already knew that it takes a whole paradigm of its own that's kinda hard to break out of, but the fact that it stays consistent across all screen aspect ratios is so worth it. Regardless, the biggeer benefit of letterboxing is simpler world space setup. You don't worry about whether this particular area will be overflowed horizontally or vertically in a particular device or not. You have a 9:16 window to view the world through, nothing needs to move at runtime and that's about it.
Fast-forward to early September 2021 and 40+ builds later, the GD started having concern that the playing area is not filling up his phone screen and that the letterboxes are bothering him. He wants to get rid of the letterboxes and wants the game world as well as UI to fill up his screen.
Yes. After 40+ builds, for all of which the letterbox was present, nobody in the project raised a concern about the letterbox. It's only NOW that they all of the sudden side with the GD and demand the removal of the letterbox. I feel like almost half of my effort on this game has been wasted. These clueless guys didn't spend one second looking at the early builds thinking of the possibility that the black bars at the top and bottom of their phone screens (which I repeat: has been around since the very first build) is gonna bother them? Somebody must be playing a cruel joke at this company. They had all the chances to bring this up as a potential issue and TODAY is the first time I hear of it.
See, designers. You waste our time and your time by doing this kind of thing. Please raise your issues early. Complain to us ASAP. If you wait for so long before raising an issue that has been in-your-face the whole time, I can't fault any developer for assuming you're trying to play a long prank. I can tell designers right now: it's not funny.1 -
I messed up . My testicle problem isn't going anywhere soon, and one ultrasound report already says could be a tumor. 2nd test will be done in 10 days, but if its a cancer, then my life just got officially reduced by 20 years and practically reduced to this year, coz fuck this life if I can't be normal.
I already
- haven't ever got love or chance to kiss a loved one,
-have a super beta personality and never got enough respect from anyone
- am not having any friends at current stage
- shifted from my native location and living in a new isolated place
- got ugly ass looks, height and weight to never feel happy
and now with a probable tumor coming which would lead to hair lossing chemo sesssions, ball removal surgery and followed by lifelong of infertility, I would prefer death over a meaningless loveless life
I am so devastated as to why i got into this state. nothing has been going good for lalst 2 years.
- i left my previous company which had a great culture, less work but asked for relocation . i joined this current company with horrible work culture, 3 days working and overload of stress
- I had fights with my friends and don't have any friends anymore
- i broke my arm this year.
- i caught terrible cough last year which took time but got better
- there have been constant bickering and fights among parents for 100s of reason . no more than 2 days goes by when any 2/3 people of our nucleolus family is not fighting
- and countless more shitty stuff
I was on a path to become a mediocre okayish guy. i was having a decent salary , learning new stuff everyday, fighting new task battles, becoming a beeter dev amd aiming to go for senior dev/TL role, buying car l, new home and planning for marriage, ...
but nope. God has some other plans.. some ugly and cruel plans, for the guys who don't even had the chance to live a villionous life.
I wonder how that guy from my scchool who used to date so many girls is doing now. God must be very angry with his Casanova behaviour. Oh wait, that asshole is earning 160k and married her gf from last 8 years!
i wonder how that gu from my homies is doing who used to hookup with random girls every weekend. Oh wait, he got promoted to TL and bought a new home!
I wonder how my friend who smokes 4 cigs a day and drinks beer every night is doing. Oh, he's going on international trips every month , earning 600k and have a clean medical record!
yepp such a great decision maker that guy on the top is . Let me connect with him soon and ask these questions , will let you know what he says. :/7 -
Tabs, or No Tabs? I did the same as this commentor 2 years ago. I can code so quick now because of this simple switch. Here's why:
(source, Laracasts.com)
Ben Smith
"I think the most beneficial tip was to do away with tabs. Although it took a while to get used to and on many occasions in the first few days I almost switched them back on, it has done wonders for my workflow.
I find it keeps my brain more engaged with the task at hand due to keeping the editor (and my mind) clutter free. Before when I had to refer to a class, I would have opened it in a new tab and then I might have left it open to make it easier to get to again. This would quickly result in a bar full of tabs and navigation around the editor would become slow and my brain would get bogged down keeping track of what was open and which tab it was in. With the removal of the tab bar I'm now able to keep only the key information in my mind and with the ability to quickly switch between recently opened files, I find I haven't lost any of the speed which I initially thought I might.
In fact this is something I have noticed in all areas of writing code, the more proficient I have become with an editor the better the code I have been writing. Any time spent actually writing your code is time in which your brain is disconnected from the problem you are trying to solve. The quicker you are able to implement your ideas in code, the smaller the disconnect becomes. For example, I have recently been learning how to do unit testing and to do so I have been rewriting an old project with tests included. The ability to so quickly refactor has meant that whereas before I might have taken 30 seconds shuffling code around, now I can spend maybe 5 seconds allowing my mind to focus much better on how best to refactor, not on the actual process of doing so."
jeff_way Mod
"Yeah - it takes a little while to get used to the idea of having no tabs. But, I wouldn't go back at this point. It's all about forcing yourself into a faster workflow. If you keep the tabs and the sidebar open, you won't use the keyboard."2 -
Plugged in a type c hard drive.
Changed the drive letter from another internal hard drive.
Type c hard drive is locked from safe removal. Process "System" accesses .\$RmMetadata
Seriously? Microsoft?2 -
Virgin Powerbeats™ pro:
- can’t even fit into your pocket, you have to buy special iPants™ with bigger pockets, that would be $1499, thank you
- have buttons so finicky and annoying that you’re really better off with a touch area
- silicone tips deteriorate and are prone to stay inside your ears. Uh oh, anyone but certified iOtholaryngologists™ aren’t authorized to remove them or else they would be put to Apple Jail™. The removal would be $499 per ear, thank you
- you have to be a PhD topologist to figure out how to put them back into their case
- uh oh, one bud just randomly stopped working because of a design flaw in our case, that’s User Error™, would you like to pay for a replacement with your Apple Card™?
- a feel of greasy deteriorating clamshell
Chad Jabra Elite
- a feel of a brass zippo, magnets are just perfect
- firm, real buttons. Improve then just one level and you got the feel of IBM Model M
- you press a button and you hear whatever mics are picking, no need to ever pull them out
- most comfortable buds I’ve ever tried
- small case fits into pockets of my tight booty shorts just fine
- waterproof
- sounds better than anything Noble Audio have ever done
Beats suck i guess 🤷6 -
I am already tired before even looking at this code.
Looking at your code makes me cry.
I can insult myself whole day but it won’t be enough to survive looking at your coding style.
If cpu could talk it would ask for heater removal because your code depresses it so much.
Looking at your code makes my monitor burn out.
Downloading your code makes my hard drive stop.
And my favorite:
You’re already good developer so now stop writing and appoint as manager / tester. -
Soo insyde BIOS got a big bug via 17.10 ubuntu iso
- Settings not getting saved in bios
- USB booting is a no-go.
- suspend never wakes up without battery removal
Infected systems mostly include acer, LENoVO and hp mainly
I am surprised it took them this long to notice the bug.8 -
My lead: Here's an epic to remove a framework from all our projects. I want you to write every planning step in a document before you make any tickets or do any work.
Me: Okay cool. Before I do that, I'm just gonna finish the removal from the project we're 99% done with so we can remove that from the planning stages. I already did it locally with no issues so we know it's a 1 pointer. That takes us from two dependency graphs down to one which will help immensely in planning.
Lead: No. Don't make any tickets, this is a spike. Just put it in the document so management will know how long we expect the whole thing to take. And make sure you pull in this engineer from a completely different team who has his own tickets and doesn't even know I'm doing this. Make sure you include him on everything.4 -
Worst exp. with manager/higher-up?
Manager once directed the re-write and removal of all SQL Server user-defined functions based solely on a tech article's headline (which he didn't bother to read the article)
https://youtube.com/watch/... -
Bug from Win2k still affects Win10. ...hooray...
"max limit of 10 midi drivers? sure, okay. Except they don't disappear after removal, updating drivers and replugging a device into a different USB port both eat up another slot too."
fix: just go fuck with the registry and trim out the driver entries, you'll be fiiiiiiiine
fuck you too MicroPeni$ -
God I hate slow burn in projects.
Trying to do something with a feature that's still in beta for the language. No docs so I asked for this.
Seems like a cycle of days where I'd be trying random ass solutions to no avail when suddenly one time I mistype the Google search and it brings me to this obscure ass blog with a potential solution that raises some new issue all over again.
It's been modification/addition/removal of over 10000 lines in different local branches and commits and only 200 of them actually are going to make it into the final code.1 -
How do you restore partial data from a mysql backup? Don't worry, nothing is wrong, I'm just thinking about how would I restore something if shit hits the fan.
Our current strategy for database backups is to just run mysqldump during the night, using a cronjob (feel freue to suggest a better way ;))
1) Restoring the full db: just read that sql file into the mysql command.
2) Restoring just one (or some) tables: open the file in an IDE, just select the lines you're after, copy them to a new file, read that one (possible issues: let's say we have a table B to which entries of table A are related and we just want to restore table A. We can't nuke table B too, as also table C is refering to it, so we have to do some orphant removal in B afterwards)
3) Restoring selected entries in specific tables: setup a new db, read the full backup in there, dump these entries to a new file and read that into the real db
How do you so it? Any better aproaches/tools?8 -
So I am debugging a connector library for an api that users curl.
I am fighting my ass off with errors and a lack of debug, testing or thought for CI
Take a poke around this set of classes only to find.
Postman token in the opts. and a removal of ssl check. What you straight copied from postman.
Like seriously clean up your fucking code if you are gonna put something out as production ready to your team.
Console.log('fuck'); -
In the early 2010s, at select locations, Nokia Oro phone was offered bundled with a portable IPL hair removal device. Its enclosure was made entirely of leather, layers upon layers of compacted leather of different kinds. It gave you access to Queer Mode™ — engage it and have sex with any of your thoughts. Your mind was your oyster, but it was in fact being turned into a two-bedroom all-white apartment designed by Karim Rashid.
As the tech was getting older, the only way to source capacitors was syncing your Alienware table clock with the root node using a non-laptop that had shapeshifting black goo for keyboard.
Small puppy that ran Windows 8 was always smothered in shit. The white non-kitten ran Nokia’s version of QNX.9 -
Python 3.9:
Cool New Features for You to Try
String Prefix and Suffix.
Type Hint Lists and Dictionaries Directly.
Topological Sort.
Greatest Common Divisor (GCD) and Least Common Multiple (LCM)
New HTTP Status Codes.
Removal of Deprecated Compatibility Code.2 -
I was just thinking.
at one point someone under dosed me on antibiotics necessitating the removal of one of my teeth which the consistent exposure to lack of dental care made worse for awhile, and then after pulling it they put another dead tooth in.
i was just thinking how if this time I 'warn' the person what will happen if another tooth ends up in my head.. well we'll leave it at that.5 -
If you ever added your credit card just to test the Azure Free Trial Subscription in hopes of removing it when the trial is over. I'm sorry man, you're fucked! Like right in the ass!3
-
Does anybody have any good analogies for explaining the difference between frontend and backend?
I have been thinking about a possible keyboard analogy since a keyboard is very well understood these days. This only really works for membrane keyboards, but that's fine.
We can all guess where this is going. If you remove the keycaps from a membrane keyboard, you pretty much cannot use it unless you poke into the membrane with something else. So the keycaps are the frontend. They are generally labeled so you know what they do, they are organized into some form of layout which can vary even on a country-by-country basis, they may have pretty colors and they make it easier to interface with the backend. The backend is the rest and the users don't really have to know how it works, its just supposed to work.
For mechanicals, obviously, the removal of the keycaps means it becomes a shitty frontend that is not easy to use, but does have great potential.5 -
Don't you love it when somebody commits the removal of unnecessary files and gets it merged to master but doesn't test beforehand??1
-
Dry On Time
Dry On Time specializes in providing quality water damage extraction and restoration for both residential and commercial applications throughout New Jersey. We will dry out your home and or office, clean and remove damage and restore and repair damage with attention to detail.
506 19th Street,Union City, NJ 07087
http://www.dryontime.com/ -
It's these individually tiny annoyances in products and software that together form a huge annoyance.
For example, it's 2022 and Chromium-based web browsers still interrupt an upload when hitting CTRL+S. This is why competition is important. If there was no Firefox, the only major web browsers would, without exception, have this annoyance, since they're all based on Chrmoium.
I remember Chromium for mobile formerly locking scrolling and zooming of the currently viewed page while the next page was loading. Thankfully, this annoyance was removed.
In 2016, the Samsung camera software was updated to show a "camera has been opened via quick launch" pop-up window when both front and rear sensors of the smartphone were covered while the camera was launched by pressing the home button twice, on the camera software Samsung bundled with their custom version of Android 6. What's more, if that pointless pop-up was closed by tapping the background instead of the tiny "OK" button or not responded to within five seconds, the camera software would exit itself. Needless to say, this defeats the purpose of a quick launch. It denies quick-launching while the phone is in the pocket, and the time necessary to get the phone out could cause moments to be missed.
Another bad camera behaviour Samsung introduced with the camera software bundled with their customized Android 6 was that if it was launched again shortly after exiting or switching to stand-by mode, it would also exit itself again within a few seconds. It could be that the camera app was initially designed around Android 5.0 in 2015 and then not properly adapted to Android 6.0, and some process management behaviour of Android 6.0 causes this behaviour. But whatever causes it, it is annoying and results in moments to not be captured.
Another such annoyance is that some home screen software for smartphones only allows access to its settings by holding a blank spot not occupied by a shortcut. However, if all home screen pages are full, one either needs to create a new page if allowed by the app, or temporarily remove a shortcut to be able to access the settings.
More examples are: Forced smartphone restart when replacing the SIM card, the minimum window size being far too large in some smartphones with multi-windowing functionality, accidental triggering of burst shot mode that can't be deactivated in the camera software, only showing the estimated number of remaining photos if less than 300 and thus a late warning, transition animations that are too slow, screenshots only being captured when holding a button combination for a second rather than immediately, the terminal emulator being inaccessible for the first three minutes after the smartphone has booted, and the sound from an online advertisement video causing pain from being much louder than the playing video.
Any of these annoyances might appear minor individually, but together, they form a major burden on everyday use. Therefore, developers should eliminate annoyances, no matter how minor they might seem.
The same also applies for missing features. The individual removal of a feature might not seem like a big of a deal, but removing dozens of small features accumulates to a significant lack of functionality, undermining the sense of being able to get work done with that product or software when that feature is unexpectedly needed. Examples for a products that pruned lots of functionality from its predecessor is the Samsung Galaxy S6, and newer laptops featuring very few USB ports. Web browsers have removed lots of features as well. Some features can be retrofitted with extensions, but they rely on a third-party developer maintaining compatibility. If many minor-seeming features are removed, users will repeatedly hit "sorry, this product/software can not do that anymore" moments. -
Mantaray Trailer Hire Mackay offers trailer rental services. We have trailers of all sizes, from small to large, capable of carrying payloads from 400 kg up to 1300 kg. Hire a trailer for rubbish removal, furniture transportation, or car transportation. A trailer ramp is available with the caged trailer. Hand winch available for flatbed car trailers. For those looking for a reliable trailer rental service provider, Mantaray Trailer Hire Mackay is a one-stop shop for all your needs. We are committed to providing quality and reliable trailer rental services. We guarantee that our trailers are well maintained and in good condition. Now in two convenient locations. Simple online click and collect.
-
9 Ways to Improve Your Website in 2020
Online customers are very picky these days. Plenty of quality sites and services tend to spoil them. Without leaving their homes, they can carefully probe your company and only then decide whether to deal with you or not. The first thing customers will look at is your website, so everything should be ideal there.
Not everyone succeeds in doing things perfectly well from the first try. For websites, this fact is particularly true. Besides, it is never too late to improve something and make it even better.
In this article, you will find the best recommendations on how to get a great website and win the hearts of online visitors.
Take care of security
It is unacceptable if customers who are looking for information or a product on your site find themselves infected with malware. Take measures to protect your site and visitors from new viruses, data breaches, and spam.
Take care of the SSL certificate. It should be monitored and updated if necessary.
Be sure to install all security updates for your CMS. A lot of sites get hacked through vulnerable plugins. Try to reduce their number and update regularly too.
Ride it quick
Webpage loading speed is what the visitor will notice right from the start. The war for milliseconds just begins. Speeding up a site is not so difficult. The first thing you can do is apply the old proven image compression. If that is not enough, work on caching or simplify your JavaScript and CSS code. Using CDN is another good advice.
Choose a quality hosting provider
In many respects, both the security and the speed of the website depend on your hosting provider. Do not get lost selecting the hosting provider. Other users share their experience with different providers on numerous discussion boards.
Content is king
Content is everything for the site. Content is blood, heart, brain, and soul of the website and it should be useful, interesting and concise. Selling texts are good, but do not chase only the number of clicks. An interesting article or useful instruction will increase customer loyalty, even if such content does not call to action.
Communication
Broadcasting should not be one-way. Make a convenient feedback form where your visitors do not have to fill out a million fields before sending a message. Do not forget about the phone, and what is even better, add online chat with a chatbot and\or live support reps.
Refrain from unpleasant surprises
Please mind, self-starting videos, especially with sound may irritate a lot of visitors and increase the bounce rate. The same is true about popups and sliders.
Next, do not be afraid of white space. Often site owners are literally obsessed with the desire to fill all the free space on the page with menus, banners and other stuff. Experiments with colors and fonts are rarely justified. Successful designs are usually brilliantly simple: white background + black text.
Mobile first
With such a dynamic pace of life, it is important to always keep up with trends, and the future belongs to mobile devices. We have already passed that line and mobile devices generate more traffic than desktop computers. This tendency will only increase, so adapt the layout and mind the mobile first and progressive advancement concepts.
Site navigation
Your visitors should be your priority. Use human-oriented terms and concepts to build navigation instead of search engine oriented phrases.
Do not let your visitors get stuck on your site. Always provide access to other pages, but be sure to mention which particular page will be opened so that the visitor understands exactly where and why he goes.
Technical audit
The site can be compared to a house - you always need to monitor the performance of all systems, and there is always a need to fix or improve something. Therefore, a technical audit of any project should be carried out regularly. It is always better if you are the first to notice the problem, and not your visitors or search engines.
As part of the audit, an analysis is carried out on such items as:
● Checking robots.txt / sitemap.xml files
● Checking duplicates and technical pages
● Checking the use of canonical URLs
● Monitoring 404 error page and redirects
There are many tools that help you monitor your website performance and run regular audits.
Conclusion
I hope these tips will help your site become even better. If you have questions or want to share useful lifehacks, feel free to comment below.
Resources:
https://networkworld.com/article/...
https://webopedia.com/TERM/C/...
https://searchenginewatch.com/2019/...
https://macsecurity.net/view/...