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 - "cast"
-
Toilets and race conditions!
A co-worker asked me what issues multi-threading and shared memory can have. So I explained him that stuff with the lock. He wasn't quite sure whether he got it.
Me: imagine you go to the toilet. You check whether there's enough toilet paper in the stall, and it is. BUT now someone else comes in, does business and uses up all paper. CPUs can do shit very fast, can't they? Yeah and now you're sitting on the bowl, and BAMM out of paper. This wouldn't have happened if you had locked the stall, right?
Him: yeah. And with a single thread?
Me: well if you're alone at home in your appartment, there's no reason to lock the door because there's nobody to interfere.
Him: ah, I see. And if I have two threads, but no shared memory, then it is as if my wife and me are at home with each a toilet of our own, then we don't need to lock either.
Me: exactly!12 -
When I finished my studies, I was looking for a job and had an interview at a smallish company.
Boss: can you do C?
Me: yes, I have already done some stuff in C.
Boss: I mean, are you really good in C?
Me, growing suspicious: well yes I already have been using it - but anyway, there's also the project documentation for looking up, right?
Boss: uhm, the code IS the documentation.
I envisioned myself being drowned in undocumented spaghetti code and wasn't really keen on that job anymore, but my following question pretty much ended the interview:
Me: oh, I see. Do you have any roadmap for getting your development to a more professional base?
His looks, priceless! He was just shocked when he realised that he had failed my interview, and that I was a fresher made it even harder to digest for him.30 -
Last year, my company sent me to India to coordinate stuff.
Me, to my wife: "They've chosen me because they trust my social skills."
Her: "OMG, what is the rest of the company like?!"
LOL.. :-)3 -
I want to stop charging my e-scooter at around 85% because this will increase the battery life. To avoid always having to pull the plug at the right level, I made a stop circuit that goes between charging brick and e-scooter.
There's no processor involved, just a CMOS 555 used as inverting Schmitt Trigger which controls a power mosfet. Also two status LEDs and a start switch. The poti adjusts the cut-off level. Worked on first try, with only manual voltage and tolerance calculations beforehand!27 -
Math: the imaginary unit is i.
Electrical engineering: no, it's j.
C hacker: hands off my loop variables!12 -
So I have implemented all the features required for the current release. Carefully reviewed my code several times, but no testing.
Tester: everything passed green. Not sure whether you're a good dev or I'm a bad tester.
Me: let's call it a draw.10 -
Me, in the zone, staring at the code. Co-worker enters.
Co: hey, can you...
Me (not really listening): no.
Co: it's just...
Me: no.
Co: later?
Me: no.
Co: but...
Me: no.
Co: (leaving)13 -
Just finished writing a script with all the classes and variables named after the characters from Sherlock Holmes. I regret nothing.7
-
Trying to concentrate. Co-worker from another room standing there, BLA BLA BLA, and she's fucking LOUD. But she hates coldness, and it's below 0 °C outside.
So I open two windows, and guess who instantly leaves! Now it's cold, but SILENT. HAR HAR!6 -
Fuck those useless calls!
PM: customer X wants a call in an hour.
Me: they didn't send emails before. No questions, no prep, no call.
PM: yeah but they want to talk.
Me: these unprepared calls are pointless. I'll be sitting there, noting down the questions and telling them I'll have to look up the details.
PM: shall I tell them that you don't want to talk to them?
Me: I don't care, it's your call, do whatever you want.
PM: that's not professional.
Me: oh you're calling it professional to sit there with a pencil, writing down crap or what?
PM: what's the problem?!
Me: I've had this shit for the last two fucking calls, and they were so unprepared that they wasted half of the call just reading up, and I'm fed up with this shit!
PM: but they are the customers, and they aren't that happy.
Me: yeah, and do you know why? Because our schedule is completely fucked up and our management has been ignoring ANY warning from engineering for WEEKS! That's why they are unhappy and not because I'm not holding their fucking hands!
PM: hey, but you can't tell me what I have to do!
Me: and you can't tell me either! [he's my PM, but technically not my superior.]
PM: so no call or what?
Me: you're free to have your call. I'll sort out the shit that they're concerned about, putting that down in a proper email, and then we have at least some basis for discussion!
PM: (left for his call)
Btw., my cursing was the same in the live conversation with him.9 -
Me: You're looking rested - the vacation does you good, it seems.
Co-worker: I didn't have vacation?!
Me: but our PM does.
Co-worker: ...2 -
Manager: Hey how come you left so many comments on my PR?
Dev: Well you’ve just recently learned how to code so there’s going to be a lot of things to learn beyond what you’ve picked up in your online coding tutorials. Don’t worry it’s only minor things like you put everything all in one function, left outdated comments in the code, have if statements 4 levels deep, have a console.log after every line of code some of which log .env variables, skipped error handling, cast to “any” a bunch instead of using more specific types, didn’t write any tests and some unrelated tests are now failing due to a circular dependancy.
Manager: THAT IS SO DISRESPECTFUL!!APPROVE MY PR IMMEDIATELY. IT WASN’T EVEN EASY FOR ME TO CREATE THE PR, NOW I HAVE TO MAKE AN UPDATE!? YOU’RE THE DEV, YOU SHOULD FIX IT NOT ME!! NEVER COMMENT ON ANY OF MY PRS AGAIN.10 -
Attack is the best defence! I read my emails in the morning and figure out whether there's some action for me. When I go and get my second coffee, I drop by the PM's office and have a short chat with him.
Where I am in the projects, whether there's stuff from other tasks or unexpected actions, how long that might take, whether schedules are still OK, whether I need him to take care of some customer communication, these things. Usually less than 5 minutes.
The kicker is that he mostly doesn't interrupt me because I instead interrupt him - unless he is highly busy, in which case he just says "sorry, later", same as I would do.
It's a win-win because I can schedule the interruptions while he enjoys that he doesn't have to ask around.5 -
Meeting with American customers in Germany. One of them fetched a bottle of water with crown cap, but the opener was missing. She asked whether someone had an opener, so I got out a lighter and opened the bottle. Surprised looks.
My (Indian) PM: "That's a German thing, opening bottles with everything except bottle openers. Even with other bottles."
Customers were like, WTF?!13 -
The bad thing today: I killed my laptop with coffee.
The good thing today: it was my company laptop, not my private one.17 -
Code review, here the simplified version. What the fuck has to be wrong with someone who seriously codes the first variant in production code?!19
-
Friday, I got a mail from my PM shortly before I wanted to leave. Basically it was, hey can you check out whether this issue [which I hadn't even heard about] is somehow related to our system? Meeting is in one hour.
My answer: I guess not, otherwise I'd have been in the loop much earlier than one hour before the meeting.
I shut down the PC like a boss and went into weekend.8 -
Linux: the weather applet in the panel displays the weather. When I open it, it displays more weather details.
Windows: the weather applet in the task bar displays the weather. When I open it, it displays random news and stock prices.
Microsoft can't even do a fucking weather applet right. Everything has to be an incoherent mess.34 -
Stupid shitheads among the web designers, fucking listen up. Your fucking design is not the point of websites - the content is. You are not supposed to shove the content away to have your moron design shine in its purest debility.
Yeah I know, white space minimalism yadda yadda, clean interface - and you dumbasses just remove functionality to simulate a clean interface, to the point of using hamburger fuckups on desktop. Pull your heads out of your asses, that's not how to design an interface! Not to mention that you idiots still guzzle through the megabytes and dozens of domain lookups for your chickenshit minimalism.
While we're at it, not everyone is 20 years old like you youngsters - you won't believe it, but there is life beyond 40, and while such age is unthinkable to you because you are so dumb that you will hardly reach that age anyway, others on this planet have managed to get there. No 20/20 laser sight, you know.
Fuck you with your light grey thin fonts on white background because it looks "clean", it just SUCKS you wankers. Fuck you with your stupid ghost buttons that don't even look like a button. You know how to operate the shit you made, but reality check here, users spend most of their time on fucking other websites than on the abomination you have designed!
Get that into the shit bubble that you call your brain and read WCAG 2.1! That's not only for disabled people, but everyone will be able to use that shit better!8 -
Office prank time! It was some years ago when the horror movie "The Grudge" came out, with that creepy Japanese dead girl who made that horrible "aaahhhhhh" sound. A coworker, who was just as shocked by the movie as I was, would occasionally send me emails with sceenshots from that movie.
One day, I upped it. I knew he was the first in the office in the morning, so I arrived even before him. It was still dark. I put a walkie-talkie under his desk, set it to "no beep", switched off the lights again and hid two rooms away.
Sure enough, he arrived. I waited for about 10 minutes to be sure he was sitting at his desk. Then I used my walkie-talkie and "aahhhhh".
WOAH, his scream was loud even two rooms away!3 -
Have you always been missing ads in CLI applications? Have you been wondering how to bring such modern browsing experience to CLI? NPM has solved this problem, it has CLI ads now!
https://github.com/standard/...
However, the are already people who spoil this great new experience with CLI ad blockers:
https://github.com/kethinov/...26 -
How do you make a job offer so that only real 1337 haxx0rs will apply? Well https://automattic.com/ has found a way I guess.4
-
For fucks sake, corporate IT has locked a database application for new entries because it will be phased out by the end of the year. However, the new application is not yet working.
The interim solution? An excel sheet on a shared network drive. In fucking 2020! Unbe-fucking-lievable!12 -
Holy shit, I'm really impressed with the high tech park my dentist has. She takes pictures of a tooth, a computer makes a 3D model out of that, then she grinds down the tooth as necessary and takes pictures again.
From the difference, the computer generates the data for the tooth crown, including warning spots where it could be too thin so that a bit more grinding is needed.
Then she corrects some spots manually and sends it over to the CNC machine in the next room that cuts the thing from a ceramics block with correct colour. Some heat treatment later, and the tooth crown fits perfectly.
Gone are the days with dental imprints, provisional crown and not quite fitting final crown.2 -
Fuck you idiots at medium.com for your sheer impudence. Not only that you track me, which I havn't agreed to, you think it's a good idea to nag around and gather even more data!
You stinking farts label your stalking as "let's make things official"! Who shit in your head?
I've seen other places way more often, and guess what, no coffee bar has ever had the idea to ask for my ID card just because I bought my second or third coffee there.
But just because it's the internet you think it's OK to be intrusive wankers, yeah?! Fuck off.4 -
WTF - I discovered that wasps listen to me!
Earlier when one came in, I tried to catch it with a glass and release it, or kill it if that wasn't feasible. This year, I tried pointing to the window and ordering "get out!" just because I was too lazy to take action. Of course, I didn't expect it to work, but it did. I thought it was only a coincidence, so I kept trying it. It works every single time!
Crazy shit!13 -
Me at QA, talking about a nasty bug I found in legacy code.
QA: what was the root cause?
Me: pos code.
QA: pos?!
Me: piece o' shit.
QA: ...1 -
I did it: I built up another PC identical to my machine (https://devrant.com/rants/2923002/...) for my SO and installed Linux Mint for her, too. That had been my primary motive for an easy and stable distro in the first place.
Now that didn't come out of the blue. We were discussing the end of Win 7 already two years ago where I brought up my concerns with Win 10 - mainly the forced, lousy updates and the integrated spyware, and that I was considering Linux as way out.
I had expected quite some pushback because she had been exclusively on Windows since the 90s. However, I didn't sell Linux as upgrade. It's just that Win 7 is over, progress under Windows as well, and we're in damage control mode. Went down pretty well.
Fast forward three weeks - remember, first time Linux user and no IT-geek:
- it just works, including web, videos, and music.
- she likes Cinnamon.
- nice desktop themes.
- Redshift is as good as f.lux.
- software installation is just like an app store.
- updates work via an easy tray icon.
- quote: "Linux is great!"
- given this alternative, she doesn't understand why people willingly put up with Win 10.
- no drive letters: already forgotten.
- popcorn for upcoming Win 10 disaster stories.
- why do Windows updates take that long?
- why does Windows need to reboot for every update?
- why does Windows hang in that update boot screen for so long?
I'm impressed that Linux has come so far that it's suitable for end users. Next in line is her father who wants to try Linux, but that will be a story for tomorrow.22 -
Continuation of the story with Linux Mint 20 Cinnamon on the old Core2 Duo with 2 GB RAM and HDD. The guy has had that PC under Linux for 1.5 months now, had never had Linux before, has no IT background, and is over 70.
Upon visit, I checked how the machine was doing. OK, he had forgotten to apply the updates, so I highlighted paying attention to the red icon in the tray. Launched the updates, all ran through.
Otherwise, he had managed to install Skype all by himself (network effect because of his family...) and had bought a webcam plus a microphone. Linux had just recognised everything without any fuzz. Even his Skype buddies were impressed, he said.
On top of that, he likes how much faster that PC is compared to his much more current Win 10 laptop and actually uses the old Linux PC more than the laptop.
He also enjoys that Linux doesn't do weird things all by itself all the time. That's not his experience with Win 10.12 -
Damn, credit cards are so fucking secure these days that you hardly can BUY shit with them!
I need some special electronics that I only can get from a vendor in the US, which is overseas. Click click, buy, done. Well no, credit card refused. WTF? Click retry link. No, still refused. FUCK.
Called up the 24/7 hotline of my CC company. Oh yeah, that got blocked by the security system, somehow. We disable that for 20 minutes, just retry. Clicked retry link at the vendor. No failure mail. Hmmm, too good to be true?! Called up the electronics vendor. Yeah should work, stuff is in the warehouse stage. 40 minutes later: credit card declined. FUCK.
Called up the CC company again. Ok, disable blocker for one hour. Nice advice from them, tell the vendor it's only 45 minutes so that there's some buffer. Clicked retry link at the vendor and called them up to make sure that they retry before the time runs out.
LO AND BEHOLD, I could finally pay the shit!!8 -
So we are a development company, we have some remote coders.
This one is very good coding BUT
Sometimes he disappears and then comes back with an history, the other day he said his grandpa was about to die of cancer so he had to go to see him.
Three days ago, he had to finish a landing page manager, in React. just a form and unzip (nodejs server side) the files... It was not so difficult.
He said was going to finish later that day.
Then he disappeared, for 3 days!
And i got a message from him on facebook saying he got robbed and he was going to rent a laptop to continue working.
Then i asked if he had any progress on the code before that happened. and he started sending
me screenshots of the code , but in one screenshot i was able to see a part of the desktop background. Checked on the history of files @ Slack and that was his background lol.
Please guys , don't do these kind of things.
If he had told me that he needed to study or something i would have understood him
Now i feel i cant trust him anymore.
Moral: Lies/attitudes like these one can have a big negative effect on your life and you will miss some big opportunities!10 -
I'm now typing clean code. [1]
And it shows - the code really looks better. [2]
.
.
.
.
[1] I cleaned my keyboard by removing every single key and wiping it with alcohol.
[2] After I bought a new monitor, that is.1 -
I'm doing code review. Unsure about the deadline, I ask my co-worker:
Me: "Guess I'm half through, when do I have to be done?"
Co-worker: "Well if you're half through, you are already half done."
Me: "No shit, Sherlock."
LOL -
Intel: our new 12th gen CPU beats Ryzen in gaming!
Also Intel: benchmarks on a buggy version of Windows 11 that takes a big performance hit on Ryzen.
Yeah, Intel... you and your benchmarks. It's just so ridiculous.10 -
No one:
Absolutely no one:
Microsoft: "What about if our camera app stops recording as soon as its window is minimized because there is no such thing as people filming themselves reading from screen?"
You have to be impressed by the ability of these fucking morons to make common use cases artificially hard to do with their software.3 -
At a festival where I was with my GF from back then, I asked her whether it was OK if I drank some more, which she was fine with, but she didn't get the implication.
Later in the tent, when I was totally drunken, she turned me around and wanted some action. The sudden movement didn't go well, I was just able to open the tent, vomited out of the tent, and turned around to continue sleeping.6 -
The Windows 11 keynote was such a load of bullshit. All the emo yadda yadda. You know, when I work on Windows, what I feel is irritation, anger, and despise for the amateur shitshow that Microsoft delivers.
In particular, but not limited to the fucking update reboots where Windows sits there uselessly and shells fucking prawns in its own ass!
Oh we now have semi-transparent shit. That's progress! It's so great! Only that it's not because already Windows Vista had Aero Glass, and Windows 8 removed it.
But we we have fucking rounded corners now! Crazy shit, some intern at Microsoft discovered border-radius, or did they dig out some fucking Windows XP copy? That also had rounded corners way before Apple even invented them!
To top it off, Microsoft even failed to deliver the livestream seamlessly and recommended watching it at Twitter. Yeah, that's the fucking "Windows experience" as we know it, you clowns!
My favourite BS quote from Nadella himself: "the web itself was born and grew up on Windows." That guy is so full of shit that an unmaintained latrine in rural India would be envious!8 -
Apple you drove of delusional suckers! When will your retarded fashion devices finally support WEBP?!
A gallery page with images, and thanks to WEBP, it's 408 kB. Because Google made WEBP and handed out a well documented CLI FOSS compression tool that even can convert the source PNGs to lossy WEBP with bloody transparency. Well done, Google!
Except that Apple's shitty management can't take it that Google actually made something nice, so no WEBP. Instead, JPEG-2000 that enjoys nearly no fucking tool support. The free tools that even can deal with that mostly don't support transparency, and the encoder sucks donkeys so that JPEG still fucks JPEG-2000 big time.
So it's JPEG with matching background for iOS. Fine, but since JPEG's blocky artifacts are much more visible, the compression can't be that high, and it's 769 kB. That's 88% more image data for Shittari than for non-retarded browsers and even Edge! EDGE!!
Oh and if the user changes light/dark system mode according to surrounding light conditions, guess what happens? Yep, since JPEG doesn't support transparency, now it's different JPEGs with dark background via the media query in the "picture" element, and it's another 754 kB download. Bloody 1523 kB instead of 408 kB, that's a factor of 3.7!
Fuck your ass Crapple, with an electric eel!19 -
When I learnt programming, sugar was still made out of salt and hence not used in coffee.
Also, we didn't have source level debuggers, only the "print" method. However, compiling was also slow. It was faster and more convenient to go through the program and execute the statements in one's head. This helped understanding what code is doing just by reading it. It also kept people from trial and error programming, something that some people fall for when they resort to single step debugging in order to understand what their own code is even doing.
Compiling was slow because computers in general were slow, like single digit MHz. That enforced programming efficient code. It's also why we learnt about big Oh notation already at school. Starting with manual resource management helped to get a feeling for what's going on under the hood.20 -
Xmas party, held at an external location. After some drinks, a co-worker whom I was friends with started flirting up one of the waitresses. Now, he was tall, well-trained, and quite attractive for women. It was just that he also was married and had a child.
I quietly sought out that waitress and told her about that, asking her to turn him down because nothing good would come out of that. She appreciated it and stayed out of his way.
Felt kind of back-stabbing him, but at the same time, also saving his ass from himself.12 -
Oh, nice. Now Windows 11 doesn't just fuck up AMD CPUs with lack of performance, but also SSDs. NTFS at its finest, but see the tags.17
-
Ah well, it's double out of fashion because smoking is on the black list of the health maniacs, and nobody smokes pipes anyway. BUT! filling a pipe and smoking it for easily half an hour is quite some pleasure!73
-
This morning in the office:
- bumblebee grounded
- diagnosed low fuel level
- refueled bumblebee with sugar water
- system check pass, airworthiness restored
- bumblebee asked tower for take-off
- tower opened flight window
- super-clean take-off
- bumblebee left control area
:-)3 -
On an afternoon the day before delivery, we discovered a crashing bug. At around 2 AM, we had found the cause and fixed it. A short sleep at home, then back to office at 8 AM because the delivery was 200 devices containing that software, and they had to be updated manually because production had put in the old image.
We seized all available computers, even those from marketing who were... surprised. Half-way in the update, we calculated that we wouldn't have enough time until the freight service would show up.
So we asked the secretary that she should be a bit flirty to the parcel guy, invite him to a coffee and chat around to buy us more time. We closed the last parcel just when he figured that he had to continue with his tour.5 -
Google: hey website owner, use link rel preload for images loaded by CSS to reduce roundtrip delays. Chrome supports that, Safari also, and even Edge does.
Mozilla: we had some bug with preload back in FF 57 and our solution since has just been to disable preload per default. Done. Who would care about loading speed?
Also Mozilla: we have no idea why our market share has been plunging. Google is evil.8 -
My CPU temperature under sustained full load has reached 46°C where it used to be 43°C. That leaves two conclusions: either the thermal paste has gone bad, or summer has started.32
-
Apple vs. Microsoft: who sucks more?
At first glance, it's obvious that Apple sucks more. Their overpriced products are so bad that they rely heavily on vendor lock-in and cult-like brainwashing.
Then again, Apple's vendor lock-in also acts as buyer lock-out so that it's easy to avoid Apple. Basically, Apple sucking more also means they suck less. Think different indeed.
Microsoft on the other hand sucks more because their crap is so ubiquitous that it's difficult to avoid Microsoft.
That looks like a draw - but here's the tie breaker: Microsoft tries to ape Apple, BUT! Microsoft even sucks at copying Apple's suck.
So here's the final verdict: Microsoft sucks more.38 -
I got two lines of code done today, and they were just changing numeric defines. Time to do that: 2 seconds.
Time for analysing the measurement data of various runs in order to know which numbers will work out: the rest of the day.6 -
Google cripples ad and tracking blockers: In January, Chromium will switch to Manifest V3 which removes an essential API in favour of an inferior one. As usually, Google is being deceitful and touts security concerns as pretext.
That hits all Chromium based browser, such as my beloved Vivaldi. The team argues with their own browser internal blocker, but that's far worse than uBlock Origin. One of Vivaldi's core promises was privacy, and that will go out of the window. The team simply doesn't react to people pointing that out. They're fucked, and they know it.
So what now? Well, going back to Firefox because that will include the crippled new API for extension compatibility, but also keep the powerful old one specifically so that ad and tracking blockers will keep working. Google has just handed Mozilla a major unique selling point, and miraculously, Mozilla didn't fuck it up.26 -
The best part about home office isn't that you can fart without co-workers getting annoyed. It's that you can even use a lighter on the fart to see whether it will burn.4
-
Interesting bug hunt!
Got called in because a co-team had a strange bug and couldn't make sense of it. After a compiler update, things had stopped working.
They had already hunted down the bug to something equivalent to the screenshot and put a breakpoint on the if-statement. The memory window showed the memory content, and it was indeed 42. However, the debugger would still jump over do_stuff(), both in single step and when setting a breakpoint on the function call. Very unusual, but the rest worked.
Looking closer, I noticed that the pointer's content was an odd number, but was supposed to be of type uint32_t *. So I dug out the controller's manual and looked up the instruction set what it would do with a 32 bit load from an unaligned address: the most braindead thing possible, it would just ignore the lowest two address bits. So the actual load happened from a different address, that's why the comparison failed.
I think the debugger fetched the memory content bytewise because that would work for any kind of data structure with only one code path, that's how it bypassed the alignment issue. Nice pitfall!
Investigating further why the pointer was off, it turned out that it pointed into an underlying array of type char. The offset into the array was correctly divisible by 4, but the beginning had no alignment, and a char array doesn't need one. I checked the mapfiles and indeed, the old compiler had put the array to a 4 byte boundary and the new one didn't.
Sure enough, after giving the array a 4 byte alignment directive, the code worked as intended.8 -
I did it - I went outside! Felt strange, like Y2K and Maya doomsday would have been together. Of course I went out only during daylight because THEY hide in the dark. Infrastructure was mostly still intact, I've even seen some houses. Occasionally, survivors scrambling the area.
GPS didn't work so I used my magnetic compass. OK, it was because I forgot my mobile at home, but anyway. Should I take petrol with me so that I could burn my clothing upon return? Or would this attract THEM? Occasional gunfire in the distance. Might also be some pneumatic hammer, that's what the media would try to tell me.
The local supermarket had still trolleys outside. I took note because I might need them to bar the stairwell, along with the land mines that I still have left over from New Year's Eve.
Deserted cars standing around. Looked like neatly parked, but that doesn't mean anything. When Germans turn into zombies, their last human action is to park their cars. That's so genetically hardwired that no virus can override it.
Dusk set in. I better returned home.17 -
Just found out why people don't use windows. It's because they think it does not work.
In my school we have apple TV's in every room and we use airplay to cast to the projector. And because apple are fucktards and hate cross platform anything they make it impossible for windows machines to connects reliabily. So now if a teacher has a windows computer they can't connect so they think it's windows fault but it is actually fucking apple. This is what pisses me off about apple so much.10 -
So, today for my SO's father who is already over 70 and wants to try Linux. However, he doesn't want Linux on his main PC for now, rather on the old one so that he can take his time to get familiar, which is a reasonable plan.
But holy crap, what a machine! Intel Core2 Duo 4400, 2 GB DDR2(!) RAM, 250 GB IDE(!) HDD, DVD RW drive. Graphics, sound and LAN integrated on the mobo chipset. It's half a miracle that it doesn't run on steam. The machine had been delivered with Vista and has always been painfully slow.
It doesn't even support booting from USB, but I had prepared a DVD just in case. Surprise: it booted from DVD without issues and with full HW support!
Partitioned and installed, deleted Vista in the process (felt good). I went with the full blown Mint 20 Cinnamon edition because XFCE isn't as beautiful. Also, having XFCE now and then Cinnamon looking different on the other PC would be confusing.
Installation took some time, but worked. Cinnamon's RAM usage is at 750 MB idle, and at 1.1 GB with Firefox started. Once the PC is booted, it runs pretty OK with reduced swappiness and noatime on all file systems, plus unnecessary startup applications disabled. Updates took long, but ran through successfully. Installed LibreOffice and some small games, Firefox got uBlock Origin, Youtube worked OOTB.
That PC somehow had escaped disposal several times - and now has a proper OS for the first time in its miserable existence. It runs so much better than it ever has. Just wow, a "big" Linux desktop from 2020 blows a contemporary Vista out of the water on such an old machine!16 -
Customer call.
Customer: what's the status of the software?
Me: it's a bit of wood work.
Customer: wood work?!
Me: yes, I think it would work.
Customer: ...
Me: ...6 -
Amdy's story.
Amdy didn't have it easy. He's just a little APU and was already outdated when he was manufactured. But it got even worse! He didn't do anything wrong, but upon assembly, they lasered a different part number on him.
He didn't think much about it, but then they denied him all the goodies his brothers got: a nice printed box, a cooler, a leaflet, and a sticker.
Amdy didn't get any of that and wasn't welcome in the boxed camp. Instead, they stuffed him into a shoddy tray cardboard box with just some ESD foam for the pins.
Amdy was disappointed. That was just not fair! He was capable like his brothers. To add insult to injury, not even the manufacturer wanted to give warranty on the poor ugly duckling. They didn't listen to his complaints and shipped him to an unknown fate.
Then our roads crossed because Amdy was 10 EUR cheaper than the boxed ones at that point. Little Amdy breathed heavily when he finally got out of the mini box and seemed a bit disoriented. Poor little sod, what did they do to you?
Then he spotted the cooler. He had never seen anything like this before, so much better than the coolers his boxed brothers had received! And even top of the line thermal paste!
Amdy decided to be as good and fast a processor as a small Zen+ APU could possibly be. What was that software stuff? Didn't look like Windows. Ooohhh - Amdy rejoiced when he figured out that he was supposed to run Linux!
And that's how a despaired and unhappy APU finally found a life full of goodness.6 -
Talk with a co-worker who has a bit of a motivational problem.
Him: if I had more fun, I would be more productive.
Me: you're not here for fun, that's why they pay us.
Him: how are you motivated?
Me: by money.
...
A bit later.
Him: do you plan for retirement some day?
Me: no. By then, there won't be retirement anymore. We will eat fried rats in the street.
He starts understanding why I'm wearing black metal shirts.10 -
I wanted to play Pirates under DOS back then, but it didn't have the left-handed mouse button switch like Windows.
So I opened the mouse, scratched the PCB button lines away, soldered wires cross-over, and had a left-handed mouse also under DOS.3 -
Funniest meeting ever!
Some years ago, there was the regular department meeting where useless news from upper management were handed down. The team I was in was also there: team lead, co-worker and me. The team lead had a new girl and was daydreaming of their nights, my co-worker wasn't quite back from the football match on the weekend, and I was playing chess on my mobile.
Department lead was blah blah blah and when can we do this on your rig? We looked at each other and instantly realised that none had been paying attention.
My co-worker was the fastest to recover and straight-facedly turned to me: "Well Fast-Nop, that's your domain."
I picked the ball up before team lead could say something: "Sure, but schedule appointment is for our lead."
Our lead couldn't contradict us and then had to negotiate a schedule while trying to find out what it was about. *LOL*2 -
Uh-oh shit went wrong with umpteen thousand jobs in a pointer heavy, multi-threaded application in raw C. Fuck, some pointer gone wild?!
30 minutes later, after trying to find out how many jobs it takes to start failing. Noticed that it's about the default settings. Wait what? That's where the realloc'ing should kick in, check that.
Aahhhh. Maybe I shouldn't zero the whole buffer after realloc, just the new part. D'uh! -
WHY AM I SO FUCKING AWKWARD OH MY LORD! LITERALLY ALL I HAD TO DO WAS WATCH A SCHOOL PLAY AND THEN GET A PICTURE WITH A CAST MEMBER AND IT WAS PROBABLY ONE OF THE FEELINGS I'VE HAD IN THE PAST WEEK! GOD FUCKING DAMMIT I AM SO DONE WITH THIS! I'M TIRED OF BEING SO AWKWARD AND ANXIOUS! I DON'T GET HOW PEOPLE CAN DO ANYTHING LIKE THAT WITHOUT FEELING UNCOMFORTABLE. THIS HAS LITERALLY RUINED MY FUCKING LIFE AND I'M SO TIRED OF IT. I KNOW PEOPLE LIKE ME BUT I JUST CAN'T GET MYSELF TO TALK TO ANYONE! THE SIMPLEST THINGS TAKE SO MUCH OUT OF ME AND I'M SICK OF IT! I'M JUST TIRED OF IT! I'm just, tired.8
-
I'm astonished again. Linux isn't designed as GUI OS - where Windows has dynamic thread priorities for freshly woken up threads as to increase GUI snappiness.
Now, my CPU has four physical and eight logical cores for SMT. I'm running eight worker threads of some parallel testing stuff, and I'm glad that I chose the AMD 3400G over the 3200G. The CPU load is 100%. On top of that, MP3 audio, the browser, and I'm dd'ing an external USB3 HDD.
Holy shit, the browser is just as smooth as if the CPU were idle. No perceivable lag. I hadn't expected desktop Linux to be that great.
I'm also surprised that the CPU temperature doesn't exceed 44°C despite full load at 21°C ambient, and the cooling is inaudible. Sure, my cooler is massively over-dimensioned to achieve exactly that, but it's still amazing.
It's what I would have wanted ten years ago and only could approach somewhat, but now the tech is actually there.18 -
LOL Have I Been Pwned has pwned itself, cost-wise. Here the steps:
1) Go all in on cloud shit like Azure
2) Think you're a smartass
3) Trick the cost side with even more cloud, this time Cloudflare
4) Be not quite as smart as you think
5) Enjoy your 7000 EUR bill
6) Make some tweaks and continue with step 2.
Source: https://troyhunt.com/how-i-got-pwne...
Bonus laughter: he's a "Microsoft Most Valuable Professional", though not an actual employee.22 -
In my master equivalent thesis, I was supposed to build upon a year of work from my predecessors. However, I argued that it had no actual foundation and would never work properly, so I threw it away and started from scratch.
The prof was astonished and commented "well it's your thesis", insinuating that the risk was on me. Turned out I had been right.2 -
Just been browsing Awwwards about websites: https://www.awwwards.com/websites/
All of that is unusable crap and achieves "clean" design mostly by not having functionality. The trick seems to be a useless fat image and tucking away functionality as small as possible. This is design wankery.6 -
So you're sitting on your crappy Win 10 and whine about that piece of shit, huh? You had five fucking years to come up with a plan, but noooo. Instead, you put your thumb up your asshole and hoped MS would change ways. Only that they didn't, and that's because they bet on people like YOU, and now you have to suck your dirty thumb.30
-
C has too much undefined behaviour because the standards comittee was being lazy and slapped that on a lot of issues that ought to have been implementation defined instead.
The most ridiculous example for UB: An unmatched ' or " character is encountered on a logical source line during tokenization.
Like WTF, that should be a compile time error, and it's easy to detect.21 -
Hmmm... the GNOME paradox: make a desktop that is total shit without extensions and themes. Provide no stable API for them. Break them upon every release.
Top it off claiming that themes are bad anyway because if not all Gnome installations look alike, that hurts your "brand recognition". WTF?!26 -
The seventh fishcake.
Usually, I buy six fishcakes in the weekly shopping. Today, the seller accidentally put on seven, wanted to put back the seventh, but it fell into the egg salad. She took the fishcake and was about to throw it away because no customer would buy a fish cake with egg salad sauce on it. I intervened in time and bought it to avoid throwing food away.
Afterwards, I thought about how sick and decadent it actually is that it would have been perfectly normal to throw food away just because food was sticking on the food.10 -
Oh yes, today was a fugly nice day.
Fuck you my dear boss.
Your mindless way of taking a dump onto my code, moving my classes (CSS) away and adding new classes to refuck my unfucked fuckery clearly shows how much brain is left in your hollow skull of nothingness.
It took me only 2.5 hours of my precious time to unfuck your refucked fuckery and implement the fix you wanted me to do because you fucked up my code.
Go eat a bag of segfaults and get cast to void* (void pointer).
I am also very thankful having spent the whole day today to fix cross browser fuckups, hacks and #!&$+@.
Normally I really like my boss. He is a cool guy and an innovative and mostly intelligent person.
BUT FUCK HIS CODE.16 -
I love GDB on CLI!
I'm using an OSS tool for multi-threaded testing stuff, and it's nice but segfaulted after 30 minutes.
I was too lazy to set up an IDE project and click through tons of stupid shit, so I just compiled the tool with debug symbols, fired up GDB on CLI, let it run until a crash, got a strack trace and quickly found the problem.
I sent a bug analysis to the author, plus a patch which got accepted, done.5 -
I ordered a reduction sieve for my espresso cooker from Amazon, but got this instead (Euro coin for size comparison). They'll resend the correct article, but WTF is this shit even?! Crazy crap!23
-
Today in the office, a co-worker and me had a synchronised rant. Both sitting at each our desks, and independently of each other, he suddenly cursed "I hate text fields" while I burst out "network, piece of shit!"
-
In C# you are not able to do bitwise operations on generic enums so you have to cast them to an integer via object... 😐 Apart from that, this awesome code shows what C# can do 😊7
-
Had a customer call - the guy's name was "Kevin", which in Germany isn't even a name, but rather a diagnosis for stupidity. However, he was really competent and into the stuff. So what now, readjust my prejudice? Nah, he had an Asian family name, so I instead learnt that being of Asian ancestry trumps "Kevin" as given name.2
-
Wanna know why Windows sucks so much? It's because of the Windows users. No, really!
Windows user: But but but I can't switch away from Windows because MIMIMI!
Microsoft: Ah, is that so? Then why should we even try to make (and pay for) an effort?5 -
Haha - whoever says Azure is totally fine unless people are too stupid to configure it might want to think again. Apparently, that shit is so difficult to configure securely that even Microsoft fails to do it: https://msrc-blog.microsoft.com/202...9
-
From Sarah Connor Chronicles, 2008: "They used to think that 12 nanometer scale was impossible. The circuits are so tiny, you're all but in the quantum realm. It's the most sophisticated processor on earth. If you could take your memories, your consciousness, everything that makes you a person, turn it into pure data, and download it onto a machine, that chip could run it."
I'm watching the DVD on a quadcore Ryzen APU that is built in 12nm, and it was already outdated when I bought it last year. I guess I better download myself to my laptop because that's a 7nm Ryzen.14 -
I had a delivery deadline on the same day when an urgent support request came in. My boss was a stupid sucker who was afraid of taking responsibility, and that's a vice I absolutely hate with bosses.
We had quite a heated argument where he just wanted me to give priority to both things, which I declined because I had no idea how much time the support research would take me.
Finally, he decided that I should work on the support item immediately, but only for up to one hour. He was totally surprised when I accepted that without further argument. I told him that all I had wanted from him had been a priority decision, and that was one.
Felt like explaining to my boss what his fucking job was.4 -
Was interviewing someone for a role, asked them a basic question in Python (before anyone gets on my case about interview coding questions, it's removing duplicates and the answer is to just cast to set, I'm just checking that they actually know Python). Perusing Stack Overflow while I wait for their answer (it's a remote call and I give them a bit of time to calmly deliberate). The exact prompt I gave them pops up as a question, the asker is registered to their profile.
Not only did they not get the job, but I downvoted the question and marked it as duplicate. Rejection and unemployment can be temporary, but StackOverflow reputation is FOREVER. -
So I've kicked off the motorcycle season for this year! Scanned some nice roads for speed control traps or road dirt, then the same route with more WABROOOOOO.
That machine is whopping 19 years old, and I still like it as much as on the first day when I bought it as new. Plus that it doesn't have software nonsense, not even injection. Means, it fucking works.8 -
Empty your memory,
with a free(),
like a pointer.
If you cast a pointer to an integer,
it becomes the integer.
If you cast a pointer to a struct,
it becomes the struct.
The pointer can crash and can overflow.
Be a pointer my friend.1 -
I'm starting to like the crisis. Not only that I have home office, I'm also in for reduced working time. 3.5 days per week from next month on, and the state will fund 60% of the pay loss. Yeah!17
-
IBM decided to change the EOL of CentOS 8 from 2029 to 2021, then continue CentOS as useless RR testbed. What a nice attempt at forcing users into the paid RedHat version.
That's a risky move because Rocky Linux is already gearing up to replace CentOS, and the whole RedHat ecosystem could bleed out to Ubuntu, Suse, and Debian LTS. Well done, suits.16 -
Bit rot under scientific research: using a very high-end microscope, I was able to take a picture of bit rot in action. It's microtrolls eating the bits!2
-
- booting Linux
- starting Clonezilla
- kernel panic after some time
- WTF, this used to work
- look at sensor values
- CPU is really hot
- CPU fan doesn't work
- BIOS warning disabled because the lowest regular fan level is 0 RPM
Luckily, I still had some cheap 120mm fan which is a bit louder, but works. What's astonishing is that in normal operation, i.e. without full load, the case fans alone provided enough air stream for the CPU cooler.8 -
Dialogue when I entered the room of a co-worker, and it wasn't an individual office.
Me: YO MAMA her son bitching 'bout compiler licence?
Him: Kiss my ass!
Me: Could cram a wet roll of toilet paper down your pants.
Him: Yeah that'd come pretty close.
Other co-workers: WTF?12 -
Nvidia might stop being a douchebag about Linux: https://developer.nvidia.com/blog/... Right now, that doesn't change much yet, but it opens a possible road.18
-
PyTorch.
2018: uh, what happens when someone uses a same name attack? - No big deal. https://github.com/pypa/pip/...
2020: I think that's a security issue. - Nanana, it's not. https://github.com/pypa/pip/...
2022: malicious package extracts sensitive user data on nightly. https://bleepingcomputer.com/news/...
You had years to react, you clowns.6 -
Not CS degree, but EE, and totally worth the effort. Not only that without degree, I wouldn't get jobs in many companies, but I actually learnt a lot. Laplace and Fourier will be as valid in a 100 years as they were 200 years ago.
Yeah, it was fucking hard. Math was rather OK, only 50% of the students failed the first exam. EE was harder, 90% failed at the first try. That wasn't regarded as problem - on the contrary, the exams were designed to weed out. After two semesters, we already had 50% student loss.
I remember what the EE prof told us in the first semester: we would learn a lot of things, but most importantly, to think like an engineer. Didn't make sense right away, but 5 years later, I knew what he had been talking about.3 -
For decades, the computer industry has been talking about replacing silicon in future chips.
AMD finally did it - all of their more recent chips are made of military grade unobtanium!7 -
Today, I found this gem here in the codebase I've taken over:
#define BYTE unsigned char
FFS, use typedef, it's there for a reason. Solving the puzzle in the first comment.6 -
Downloaded Manjaro ISO to have a look and check hardware compatibility.
Rebooted and selected USB stick to start.
Piece of shit didn't boot.
Booted back into Mint.
Opened USB stick in Nemo - empty.
Ooops. I had forgotten to write the ISO to the USB stick.
Did that, worked wonders, Manjaro booted successfully.6 -
Meeting with a co-worker who is supposed to do a code analysis on a large legacy project. Actually, HER project - she inherited it already years ago, and the original devs aren't in the company anymore.
Her: customer is asking this and that analysis.
Me: easily two weeks.
Her: but who will do that?
Me: you of course.
Her: but I don't know most of the code.
Me: me neither.
Her: and I don't know the protocols.
Me: google them. I'd have to do the same.
Really, I told her to google shit, which I consider as quite a slap for a co-worker. Basically, she tried to offload a complex analysis because she just wants the low effort parts of the job.
Won't happen. DO YOUR FUCKING JOB!12 -
Wow, I still remember some math after decades. Today, I needed some parameter calculation in an interval with smooth transition at both ends (i.e. continuously differentiable). So I used a 3rd degree polynomial where the values and derivations gave a 4x4 linear equation system. I lazily hacked that into WolframAlpha, and it works nicely.1
-
Code fuckup day or what?! After two weeks where I wasn't on my project and a co-worker handled it, I came back to my project and reviewed what he had done so far.
Me: "I don't understand how this new code part here can work?"
Him: "Uhm, actually, it doesn't, somehow."
Me: "..."
Then he had checked in his stuff with spaces while the whole project is with tabs. And variables that were used in a different way, but still under the old name, now completely misleading. Bypassing existing infrastructure and defines with "just for this case" hacks. But the best was tracking higher level state by peeking into lower level data buffers, even pulling out their data definitions into global header files - instead of using proper states in the higher layer itself.
NOT! IN! MY! FUCKING! PROJECT!!!
So I spent the day cleaning up the shit to fight off software rot right in the beginning.4 -
Shaving with an old-style safety razor just rocks - that metal thing consisting of three pieces where a slotted, double edged razor blade fits in. With the good Russian Astra Platinum blades at 10 cent per piece where a hundred piece pack lasts for years. The whole thing can be fully dismantled and cleaned.
I can't understand why people use this modern overpriced Gillette shit at 2 EUR per piece that you can't even clean, with debris stuck in-between that starts to rot if you use the blade block more than once. Must be brainwashing by ads. Even worse for women who pay 50% extra for the pink version of that unhygienic shit.
Oh, and real shaving soap with a real shaving brush and not the canned aerosol garbage that doesn't really work anyway.8 -
One of our juniors was adding a feature and made a small mistake in one of their (copy-pasted) unit tests by forgetting to cast a return value of a mock
So he spent a ton of time changing the main code to do type checks, try/catching and error handling.
Poor soul realized the mistake in code review one day later2 -
I'm starting to hate 2020. Back pain because of muscle strain, ongoing middle ear inflammation, and now a tooth crown has broken off. Fuck this shit.8
-
Oldie but goldie.. after my studies, I was looking for my first job and did interviews. In one of the companies, they asked me whether I knew C. Well yes, I had been programming in C. Ah no, that wasn't enough - they asked whether I was really good in C. I got suspicious and argued that there was the project documentation anyway, right? Turned out, no. The code was the documentation, as I had suspected.
Then my question - as freshman, mind you: "Do you have any plans to get to a more professional way of developing?"
The interview was pretty much over at that point, the boss got actually angry. Well, interviews work both ways, and he had failed. I surely dodged a bullet.2 -
*LOL* The animal rights organisation PETA criticises the use of donkeys in the traditional Passion play in Oberammergau, Bavaria, Germany. PETA claims that Jesus would ride into Jerusalem on an e-scooter.
https://dw.com/en/...11 -
So there is a WP plugin for GDPR conformity. True to form of the shitty WP plugin ecosystem, it has a major security hole that allows taking over the WP installation:
https://wordfence.com/blog/2018/...4 -
So I'm writing some multithreaded shit in C that is supposed to work cross-platform. MingW has Posix threads for Windows, so that saved already half of the platform dependency. The other half was that these threads need to run external programs.
Well, there's system(), right? Uhm yes, but it sucks. It's incredibly slow on Windows, and it looks like you can have only one system() call ongoing at the same time. Which kinda defeats the multithreaded driver. Ok, but there's CreateProcessA(), and that doesn't suck.
Fine, now for Linux. The fork/exec hack is quite ugly, but it works and is even fast. Just never use fork() without immediate exec(). First try under Cygwin... crap I fork bombed my system! What is this shit? Ah I fucked up the path names so that the external executable couldn't be run.
Lesson learnt: put an exit() right after the exec() in the path for child process. Should never be reached, but if it goes there, the exit() at least prevents a fork bomb.
Well yeah, sort of works under Cygwin, but only with up to 3 threads. Beyond that, it seems like fork() at some point gives two processes the same PID, and then shit hangs.
Even slapping a mutex around the fork and releasing it only in the parent process didn't help. Fork in Cygwin is like a fork in the ass. posix_spawn() should work better because it can be mapped more easily to the Windows model, but still no dice.
OK, testing under real Linux. Yeah, no issues with that one! But instead, I get some obscure "free(): invalid size" abort. What the fuck would that even mean?! Checking my free() calls: all fine.
Time to fire up GDB in the terminal! Put a catch on the abort signal, mh got just hex data. Shit I forgot to compile with -O0 and -g. Next try. Backtrace shows the full call trace, back to the originating line in my program - which is fclose() on a file.
Ahhh I remember! Under Linux, fclosing a file that is already closed makes the program crash. So probably I was closing it twice. Checking back.. yeah that's where it was.
Shit runs fast on several cores now!8 -
Installing a GPU is easy - except if it doesn't fit in the case. I had to saw off 3cm of the upper, 5.25" bay. Just removing the bay cage entirely was not an option because I still need that for my DVD drive.
My bow saw wouldn't have enough space, and the cage is riveted. So despite terrible ergonomics, I used the metal saw of a fucking Swiss Army knife for 24cm of cut length through 1mm steel. Then I filed off the cuts so that I won't injure myself later.
However, I was too lazy to take out the mobo and shit, so I protected it professionally against potential metal dust - with a towel.21 -
Yeaaahhh that moment when the program flawlessly crunches through ten thousands of files, only limited by the slowish HDD! :-)
In full multi-threading, tons of dynamic buffer resizing, pointer shit left and right, also two star programming, and everything written in raw C!14 -
NOT saving the world in 2019. I already did that in 2012 when the Maya calendar ended and wasn't being thanked - on the contrary, people said "haha look, nothing happened".2
-
LOL that's why I love C!
The function pointer cast for strcmp because qsort expects a compare function with two const void * pointers instead of two const char * pointers, that's just beautiful.
Not to mention the hack to abuse strcmp on a struct - which just works because the first struct member is a string and the rest just gets swapped with memcpy as opaque data.
I guess that wouldn't pass a code review at work. :-)6 -
My wife was done with exercises on her electronic 88 keys piano.
Me: I also know something nice.
Her: oh so?
Me: (repeatedly typing key #3)
Her: (thinking)
Her: C hacking?!5 -
Making backwards compatible websites for IE8 and back honestly feels like releasing the new blockbuster in VHS..2
-
So, Terminator : Dark Fate was in the cinema. Not as good as I had expected, and Hollywood's contemporary in-your-face leftist propaganda made it even weaker.15
-
And just when you like Linux a little too much, it bites you in the ass to remind you why the year of the Linux desktop never happened.
Wifi printer is installed, CUPS test page works, even scanning works. But printing anything else results in the printer spitting out raw postscript with a few random lines per page.
Great. Looks like I'll have to print to PDF, then go to a copy shop and print because printing under Linux is still an unsolved issue.
And yes, that would have worked even with Windows 10. Fuck.24 -
My GPU blocks the airflow from the lower front intake fan to the CPU, so I wanted to have a fan in the 5.25" drive bay directly targeting the CPU.
While that bay fits a 140mm fan nicely, there was no mounting point. I ended up making four fan struts out of the metal covers for the 5.25" inserts, the ones that you wiggle out. Drilled holes into the case, a bit of foam above and below the fan to seal the larger gaps, and done.
The trick is ofc that the 5.25" case covers are meshed and hence act both as air intake and dust filter. The CPU runs a few K cooler under load.14 -
Arrrrrry new year, you bloody pirates!
For those few of us still running fully static sites: remember to update the year constant, re-compile and upload.4 -
Nvidia at it again. After receiving backlash for trying to pass off a 4070 as 4080/12GB, und "unlaunching" it, they did the same shit again.
This time with a 3060/8GB. Yes, as RTX 3060, a well established product with a lot of reviews, intentionally misleading the customers who think that a 3060 is always the regular 12GB model. And the new shit isn't even cheaper.
The main issue isn't the reduced amount of VRAM, it's cutting down the memory bus from 192 to 128 bits, that costs quite some performance.
So if you see a 3060 and think it might be a bargain, watch out that you don't accidentally end up with the "bait and switch" 8GB model.
Or even better, consider a 6650 XT that is both faster and cheaper than a 3060, and RT is lackluster on the small RTX cards anyway.7 -
So that's where the W3C ivory tower clique ended up this year, as rubberstamping secretary for the WHATWG: https://w3.org/blog/2019/...
Well at least, the W3C got the grounding they clearly were lacking over many years!
Recap: the W3C went totally out of touch with reality and wanted an HTML incompatible successor that neither browser vendors nor web authors were interested in. They wasted years on XHTML and drafted specs into the void.
15 years ago, Mozilla and Opera said "fuck this shit" and founded the WHATWG which would work on HTML5. Apple and Google joined in later.
And now the W3C does ground-breaking work like providing the recommendation texts in different formatting, LOL!10 -
There's an interesting species out there, the skiplings. They are small, furry beasts, and usually go unseen because they live underground. When there's trembling action however, they leave their burrows to check out what's going on, typically while sitting up.
The rarest breed has the distinct habit of appearing quickly, and once things are observed to be calm, slowly return underground. They are mildly social in that several of them can inhabitate an area, but each has its own little den for sleeping.
Unfortunately, skiplings are a rare species so that they are protected under WCAG 2.1 section 2.4.1 at maximum criticality level A.3 -
My setup: AMD Phenom-2 1100T with fat cooler for silent PC, 16 GB ECC RAM, AMD Radeon HD-6850 passively cooled, WD Blue 1 TB HDD. One 22 inch monitor with 1650 x 1050.
The mouse is a bit broken because the click switch under the mouse wheel doesn't work anymore. The empty bottle in front of the PC is necessary for lying on the room light switch, or else it won't work. And the black/yellow tape is a fix for the worn out seat cover.
But the best, under the monitor, is the little green troll that serves as rubber duck. -
How lawyers fuck up technology!
I rented a car today, given that I don't want to go by train currently. That was some VW Golf, and it had a lane assist which can't decide whether to be helpful or obnoxious:
Either I kept the steering wheel and still steered myself, in which case the lane assist's actions made the steering feel somewhat wobbly. Initially, I suspected a worn out control arm bearing, but that's a long term damage in aging cars, not in new ones.
Or I just rested my hands on my upper legs, as I usually do (palms facing upwards and holding the wheel lightly), then the lane assist worked by itself. It was even smart enough to deactivate itself upon blinking before changing lanes.
However, it complained after about 15 seconds that I didn't steer. I said, shut up and do your job. The warning intensified, and I said, fuck you. Then it initiated some stutter braking to wake me up. Annoying like a reincarnation of Clippy.
I ended up giving the steering wheel a slight tip to the right every 15, 20 seconds just to let the lane assist know I was still there, relying on the lane assist to correct it again. On a long trip, I would have had to deactivate that crap.
Obviously, the VW engineers did their job, but the legal department feared law suits should anything go wrong and ruined the feature!
What was also annoying is that there is no real hand brake anymore in many modern cars. Sucks when pulling off against a hill. Plus that at red traffic lights, I usually put the gear out (manual transmission) and pull the hand brake instead of keeping my foot on the clutch. That's not the same with this pseudo hand brake!
(In case you wonder why anyone would do that:
it's an anachronism that avoids lengthening the clutch wires, decades after cars switched to hydraulics.)12 -
You think jQuery would finally have died after the IE era? Or that it would only be used to still pander to IE users?
Well... nope: https://w3techs.com/technologies/... says jQuery 3 has overtaken jQuery 1, which was the only version to even polyfill IE.
WTF is wrong with web devs, just WHY?! jQuery's use cases are shit that would be simpler and with less code without jQuery, shit that should be done in CSS instead, or shit that doesn't belong on websites to begin with.42 -
I noped out of the coffee communism in my company. It's always the same assholes who just take the last cup out of the thermos jug and don't set up a new one. I'm fed up with this shit, and the company coffee itself is also cheap. I'm with my French Press and custom coffee now.8
-
Got my new PC up and running!
CPU: AMD Ryzen 5 3400G (APU)
Cooler: Scythe Mugen 5
Mobo: Asus B450-F Gaming ROG Strix
RAM: Crucial Ballistix 2x16GB
SSD: Samsung 2TB M2 Evo 860
DVD: Plextor PX-891SAF
PSU: Bequiet Straight Power 11 550W
Case: Lancool PC-K58 (10 years old)
Case fans: Bequiet Silentwings 3 140mm (front), Silentwings 2 120mm (back)
The cooler is massively oversized for the CPU, but perfect for a silent PC.
OS: Linux Mint 20 Cinnamon
As much as I loved Win 7, but it's over, and Win 10 just isn't acceptable.18 -
The good: use the hardware watchdog in your application control flow.
The bad: don't use a watchdog.
The ugly: trigger the watchdog from a fucking timer interrupt.3 -
Win 10 on ARM will not make it. Here's why:
- The devices are ridiculously overpriced.
- Performance is abysmal with emulation.
- Native ports are rare because nobody buys the devices.
- MS doesn't get it.
Instead of addressing the chicken and egg problem, MS even fucks up more: Win 10 S, which is usually pre-installed, can only run shit from the app store. Yeah MS, you think just because Apple gets away with this crap, so can you? Newsflash, Windows isn't iOS, and you aren't Apple.
Even VS 2019 doesn't install the ARM toolchains by default. Because, why would MS entice devs to address ARM64 as conveniently as possible?
MS will just keep gawking at Apple like a pig at a clockwork, and Win 10 on ARM will go down like Windows Phone.31 -
Everyone: Parcel delivery sucks because the couriers often don't even ring and just claim nobody was there.
Me: Can't confirm - giving these (poorly paid!) people 2 EUR tips works like a charm because they do remember that.7 -
I came around the corner in the corridor where a senior PM talked with an engineer.
PM: ... and that's why a good team is so important and we also need sensitive people.
Me: do we have some here?
PM: oh yes, I'm highly sensitive.
Me: one learns something new every day. :-)1 -
Both GCC and Clang can switch off the braindead type-based aliasing rules through the "-fno-strict-aliasing" compiler option so that everything can alias everything.
On the other hand, C offers the "restrict" qualifier for pointers where you promise that nothing will alias this memory area, not even same type pointers.
What happens if you use "restrict", but compile with "-fno-strict-aliasing"? Will the "restrict" be obeyed or disregarded?
Answer in the comments.8 -
A server application pulled off some sort of listings as table. Problem was, it crashed with some thousand data files after one and a half hours. I looked into that, and couldn't stop WTFing.
A stupid server side script fetched the data in XML (WTF!) and then inserted shit node-wise (WTF!!), which was O(n^2) - in PHP and on XML! Then it converted the whole shebang into HTML for browser display although users would finally copy/paste the result into Excel anyway.
The original developer even had written a note on the application page that pulling the data "could take long". Yeah because it's so fucking STUPID that Clippy is an Einstein in comparison, that's why!
So I pulled the raw data via batch file without XML wrapping and wrote a little C program for merging the dumped stuff client-side in O(n), spitting out a final CSV for Excel import.
Instead of fucking the server for 1.5 hours and then crashing, shit is done after 7 seconds, out of which the actual data processing takes 40 bloody milliseconds!4 -
SPDX. Actually a cool idea, you slap one line of comment in your source files that gives the licence. Easy to understand at a glance, and grep friendly. Also no more "huh what exactly does this licence here say, is that MIT, BSD with or without shit or what".
But once you have something simple, you can bet some design committee tries to "improve" it and cover everything imaginable.
The result looks like this (see also screenshot): https://wiki.spdx.org/view/...
Holy shit. What was that about? Simplifying crap? Yeah sure that's totally what it looks like.3 -
PCs are a clusterfuck these days. Microsoft has abandoned the niceness of Win-7 and opted for Win-10 - with spyware, untested forced updates and forced online licence checks to make sure you have to get the shit. Macs are total crap, and Apple doesn't care because they instead prefer to milk customers with overpriced iShit. Linux sucks and looks like a Soviet tractor, but at least, it doesn't fuck up itself just by switching it on.
I had Linux as only OS from 2001 to 2010, and while I obviously can deal with it, I finally hated it enough to switch over to Win-7. From 2020 on, it looks like I will be back because Microsoft has managed to fuck up Windows even worse (and then these suckers wonder why Github users don't trust them). Maybe I'll buy a Tux when I install Linux so that I can punch it in the face.
Progress was yesterday - today it's about damage control. Welcome to a world where the brightest CS guys are thinking about how not only to shove up even more ads into peoples' asses, but how to also transmit lab data of the poo.7 -
Fuck you Mozilla. You have killed the major unique selling point of FF, that being the add-ons, and replaced them with web extensions that will never even come close. Not enough with that, now you're killing the add-on servers to also kick FF forks into their balls. You stupid bunch of wankers have a history of pretending to know better what your users want, and your plummeting market share shows how much you suck at it.
https://blog.mozilla.org/addons/...19 -
The tons of undefined behaviour in C that ought to have been implementation defined instead, and increasingly sadistic compiler writers on the other side.
Like signed integer overflow that should just do what the underlying machine does, i.e. in practice, wrap around two's complement.
But the wierdest UB is when a C source code line has a non-matching ' or ". WTF, this should have been a compile time error!2 -
I bring you all another gem from my computer science course, this time from my OOP class.
The first assignment we made for this class was a simple CLI shop, where you would have basically three main classes:
- A Product class that you extend to create different types of products.
- A Cart class that manages a list of products (basically an ArrayList<Product>) and has some useful methods
- A CLI class to display a simple interface to the user and call methods on a Cart.
Basic OOP stuff, so far so good.
Then for our second assignment the teacher asked us to make Cart a generic class, where you would say Cart<Bagel> and you would only be able to put bagels in it. This makes absolutely no fucking sense, this is not a good use case for generic types since
1) you would never limit your customer's cart to one type of product at compile time.
2) in Cart, you have to cast the generic type to Product to extract any information from the product, like when getting product prices to calculate the total price, so might as well use a fucking ArrayList<Product>
I'm just saying what he's asking us to do has (to our fictional shop's business logic) absolutely no advantage over subtyping.
Also, why the fuck teach generic constraints when you can just tell your students "just cast T to Product", right?
Like fucking hell, couldn't you spend like 10min to come up with a decent assignment that actually teaches generic types the right way? ffs
And just so no one can say "but wut simple assignment would you give to teach students generic types?", here's a simple and much, much better alternative: implementing your own ArrayList. Done. Can't get much better than that, it's a legit use case and teaches you the basics.
Sorry man, you're a great person, you really are, but you suck as a teacher.3 -
Office Ninja!
Today, my PM dropped by in the morning and mentioned she had some customer feedback on some item in a project where I'm the holiday replacement for someone else. I already had work to do, so that kind of interruption wasn't welcome.
"Well yeah, just forward it to me, I'll see what I can do", I told her. She agreed. Half an hour later, still no email from her. Hey, that looked promising!
For the rest of the day, I didn't talk to her, avoided speaking at all when she was near and even sneaked by her room (open doors) in silent mode lest I drew her attention and she might have remembered the email.
Until afternoon when I went home, still no email. Success! :-)5 -
Interesting: how to hack websites right upon installation. Basically, monitoring issued TLS certificates and trying to access e.g. WordPress installations before the user was able to configure a password.
That relies on a sloppy deployment process, of course - like making a live installation that is online immediately.
Source: https://portswigger.net/daily-swig/...10 -
Friday afternoon, the week's work is finished, and I'm ahead of schedule.
An email arrives for another project.. "URGENT yaddayadda". The dickheads where it came from have taken weeks to react, and now it's urgent. Yeah, fuck you assholes, ideally with a smoothing iron.
On the upside, I'm not addressed directly, and that project isn't my task. But boss could make it mine in no time, and I think he would.
I don't even open the email, nobody has seen it anyway yet, AND I GO HOME! :-)3 -
My boss drives me crazy. He hired me for working on his SDK which is game related. So I am responsible for basically everything, including an ingame UI (menu etc.) and to predict the future path of a game object (unit, minion, ..) when a certain spell is casted on it. For that task I divided the prediction into firstly getting the predicted path of the unit without a spell being casted and then a class that would cast the spell on that path and estimate the units reaction to that cast. Simplified, but that way you get a pretty okayish result. Now he thinks that is too complicated. "Can we not put everything into one class, if someone wants to replace the prediction he needs to read documentation for hours". WHAT THE FUCK DID YOU EXPECT, THAT IT'S GONNA BE SOME ONE CLASS 3K LINES MAGIC??
Same for the GUI. We only have DirectX and don't want to use a framework. Guess what, it's more than one class if you want to seperate view, model, controller or whatever fucking "design pattern" thing you use.
And then Git... he seriously said let's not use branches till release, I feel like they slow down things.. before I was there they did every operation on master.
And if it was just that..
/rant
I put much work into this, time to leave?1 -
Some days I feel like I really know what I am doing and today was not one of these days...
Working on a game engine using Vala and now using Raylib in the backend for rendering and input.
Wrote a VAPI for Raylib and when I was doing the 'Rectangle' struct... I made it's members integers when they are floats...
So this whole time; when using a camera everything would jitter like crazy.... because I was taking the transform which is all floats... rounding it then casting to an int only for the int to be cast into a float again....
Lo and behold; changing the members to floats and removing the rounding and casting makes everything silky smooth...
I have been debugging every bit of my current render loop trying to work this out when it was 100% unrelated.... I hate myself sometimes1 -
the coolest project was mine: a dynamic DNS like dyndns, wrote in scala, an API layer in ruby and a lot of sysadmin stuff like ospf any cast. A big technical success, a total financial failure... but I enjoyed and I learned a lot!
-
!rant
Last Week I wrote a english Test ( im German ) In the Test I was asked to translate (cast) "gips" into english. I didnt remember the Word so I thought to myself "I wish i could just CAST the german Word into english"
Now I know the Word...3 -
Google: we want to crack down on adblockers in Chrome and remove APIs. If we threw out Chrome store extensions that use the old ad blocking APIs, Chromium forks would be hit as well, haha!
Vivaldi: we've integrated DuckDuckGo based ad and tracker blocking right into our Chromium based browser. Also for Android now, haha!9 -
So, this is 2023, a year with a prime number, Windows updates will be fast, the Linux desktop will have a breakthrough, and AMD will have 25% dGPU market share.5
-
I need new mobile hardware because my old netbook from 2010 just doesn't cut it anymore.
I've ordered this fellow here: https://tuxedocomputers.com/en/...
AMD 4700U (TDP 15 W), iGPU only, 2x16 GB 3200 RAM, 2 TB Evo 860. Delivery in November because APU-only laptops are totally hot RN.
Maybe I can install Mint on that if I go for a 5.8 mainline kernel. At least it has Intel wifi, not Broadcom.12 -
Me to QA: I need an urgent signature.
QA: That costs a cake.
Me: If we baked cake at our company, that would have too much sugar, and we would use more salt as workaround.4 -
The Tale of Mouse and Watch
Once upon a time, a mouse wanted to know what time it was. So it asked the first guy who came along, but it didn't understand Suaheli. Anyway, he just had mumbled, gotta kick the cat in its lazy ass.
So the mouse moved on and nearly got it when it met another mouse who bad been sewn to a dead elephant's ear exactly 27 years ago - but unfortunately, it had forgotten the time of day when that had happened.
The seeking mouse came up with the idea of doing something with the sun, but since it was only dumb mouse, it looked right into the sun and was blinded.
Now pretty desperate, it tumbled through the gutters that were full of trash. Accidentally, it fell over a dumped watch, and the mouse broke its nose.
The lesson: sometimes, even a blind mouse may find a broken watch!5 -
Asus announced their AM5 board X670E Extreme. The E already stands for Extreme, which makes it an Extreme Extreme.
My feeling is that AM5 will be extremely - expensive!
That's because the AM5 LGA socket moves cost from the CPU (formerly PGA) to the mobo, but AMD certainly won't drop CPU prices, rather the opposite, and then there's also DDR5 as cost driver, not to mention tons of PCIe 5.0 where we don't even have AIBs.
On the upside, that would finally end the days of GPUs causing a disproportionately large share of the system cost - if only because the rest gets more expensive.6 -
What a coincidence. JQuery gets an update to 3.4.0 - and I removed the JQuery dependency that a mid-sized widget (15 kB minified) needed.
Rewriting the selector, css and trim stuff was easy. Each, children, append, empty, remove and extend were not too hard. Animations gave me more headache, but in the end, JS triggered CSS transitions worked nicely.
I was able to shave off the usual 30 kB over the wire for JQuery, and the whole thing seems snappier. Finally, I'm at vanilla everything!
Of course, it's largely due to JQuery's merits that vanilla JS is where it is today. So, thank you JQuery, and farewell.3 -
Curiosity killed Ben the cat.
I work in Android Dev. I use scrcpy to control devices remotely. I realized some phones have chrome remote desktop on them...I thought, what if... I open my computer screen on the devices while these devices cast their screen to my computer. Classic mirror loop effect, align to the pixel, staring down the abyss of infinity mirroring... until i took off my earphones to go check this effect on one of the devices.... my computer audio was being played on all devices running chrome remote. :( I feel so stupid1 -
MarSecOps: "Marketing Security Operations, the idea is that security is not just the realm of website developers or the IT department anymore, but rather the marketing department has an equal if not greater interest in, and even responsibility to security."
Source: https://strattic.com/5-predictions-...
WHAT THE FUCKING FUCK? The marketing dimwits responsible for security? Whose IT competence ends at Powerpoint drivel?!
I LOLed so hard that I could have shat a cactus!8 -
Testing had some issues with system integration. I asked them what their setup was.
Answer: "Almost similar to the real hardware."
LMAO!2 -
Best: learned to code, started writing smart-home scripts for home automation and developed biologic and quantitative data analysis scripts in Python and R.
Worst: didn't get paid to develop them and haven't got enough experience for it to be more than a hobby. -
Just to help out folks who find this week's group rant topic just as confusing as I did:
https://en.wikipedia.org/wiki/...1 -
Uh-oh I fucked up.
Not at work, but with my website where I had an email forwarder to an external address. The forwarding was everything so that I could do the spam filtering and occasional check in one place. Unfortunately, that triggered the spam detection at the external address (after some years!), and my provider ended up on a blacklist.
That got me a pretty angry mail from my hosting provider who had already disabled the forwarding and wanted to make sure that I understood the issue and would not put it in again.
I thought about whether they had fucked up because it was even possible to do that, or whether I had fucked up because I should have known. Hm yeah I opted for the latter and apologised.
The support guy seemed happy that I didn't try to argue (possibly like other customers...), and advised that I just should add another account in my email client. Sure, at least that will prevent this shit from happening again.
He also mentioned that every single blacklist issue they had experienced in this year was accidental due to external forwarding issues and that they would consider just disabling it altogether.
Which is probably a smart move, just as hint for these ranters here who work at hosting companies. Or at least only enable external forwarding if spam assassin or so is in place.3 -
Why is fucking Chrome still not able to auto-hyphenate on Windows desktop?! Yeah I know the dictionaries, OS integration yadda yadda, BUT:
1) TeX did this 40 years ago, this is a solved problem in CS!
2) Firefox is a 3rd party application in Windows, just like Chrome, and can auto-hyphenate!2 -
Telecon about new requirements. I brought up concerns that while the customer's new approach would fix some problems, it would also fuck up something else.
Customer panicked because he didn't have an answer. I calmed him down that this telecon wasn't about finding answers, only for ensuring that we were on the same page with the questions. Customer relieved.
I actually explained the purpose of the telecon to the customer who had scheduled it. WTF.2 -
Yesterday you made fun of my code and told me to discard it, today you want to use it for project deployment?
N I C E
#intern_life1 -
What's wrong with Mozilla?!
Savvy webdevs use link preloading to break up dependency chains for late discovered resources, and users like the faster loading as result. Firefox 56 started supporting that two and a half years ago. Turned out they had screwed up and it didn't work with non-cacheable resources. So Mozilla "fixed" that by disabling the feature altogether behind some config flag.
And they left it at that - still not supported. They even had patches, but decided not to merge them and instead try something different, some day.
Is Firefox becoming the new IE or what?6 -
Everyone wants faster programs, so doing more optimisations with GCC at -O3 instead of -O2 makes the program quite a bit larger, but... SLOWER. Makes sense, right? Why do you even have -O3 if it generates larger AND slower binaries than -O2?
Ah IC, it's because you use that level only on individual hot functions, not on the full program. How do I do that? Function attribute for optimisation. Cool. Uhm, what is the exact syntax? The fucking GCC documentation doesn't say that. When will devs finally learn to give bloody EXAMPLES?!
Googling around. Ah, with quotes, but without the leading hyphen it seems. Copy/paste. Compile again, tadaa: it's only a little bit but still FUCKING SLOWER than -O2!
GCC's -O3 is like that stupid kid at McD that ate like a damn horse, had to vomit afterwards and was even more hungry than before!13 -
A coworker asked me about a specific tool because he "had heard" that I had some experience with it, whether that tool would allow a certain use case, and whether there was some documentation.
Wait, in which project was that? None of mine anyway, hmmm... ah that one, from a few years ago. Who wrote the reports back then? Can you guess?
THAT MODDAFOKKA!1 -
Same procedure as last year? Same procedure as every year for the last truly static website holdouts: change the year in the template, re-compile, upload.2
-
Fucking customer industrial machine doesn't work properly because the dumbass who designed the control algo failed to consider basic physics how this shit is even supposed to work. Just to be sure, he also included some race condition in the measurement part of the software.
-
I made a bash script for my website that anonymises the visitor IPs in the Awstats logs by replacing the last octet with 0. It can either process all logfiles except the one of the current month, or only the one of the previous month. The latter mode is how I put it in a cron job to be called on the first day of each month.
Everything worked flawlessly with test data, but on the server, some visitor IPs were not anonymised. I noticed that all of them were from the last day of the previous month. Looking at the time stamp of the logfile, it was indeed from the first of the current month, but not from 00:21 where my cron job runs - instead, it was modified around 14:30.
Then I realised that the Awstats engine seems to be configured to batch add the log entries once per day at 14:30 so that when my cron job ran, the visitor data from between 14:30 and 00:00 were not yet in the file!
Solution: batch process all previous logfiles once to clean them up, and schedule the cron job on the 2nd of each month at 00:21.2 -
Getting a new laptop tomorrow, and was planing the process of setting it up.
Steps for new windows computer
1. Delete all included software... all of it.. call an exorcist if needed. Cast out the demons. Seriously, fuck you norton, and fuck you mcafee.
2.Use Edge to download ANY other browser.
3.edit system files to disable Edge, because fuck Edge.
4.install linux subsystem.
5.intall linux software like git, and use git to restore rc files.
6.party all night (code)7 -
Debugging an elusive database query problem. Attached to server process about 10 steps into the call stack trying to figure out why a a column value is not being properly cast. In comes Windows. You picked the most inappropriate time to restart for updates without asking me. Restart VM, authenticate with VPN, wait for 2FA, start up Visual Studio, enter credentials for the millionth time to authenticate with version control since the remember me checkbox doesn't work, open solution. Now where was I? Then Windows pops up a notification to inform me the updates couldn't be installed. The following comic strip comes to mind.
-
Friday 13th. Superstition.
0655, got WFH laptop going. 0700, VPN'ed in. Bluescreen, first in ages. Yes, Windows, the hatred is mutual. Rebooted. Windows claimed memory fault, offered check, 40 minutes. Noped out. Started machine. VPN'ed in. Some strange script error that I'd never seen before. Rebooted. Script error again. Shut down machine, then rebooted, same problem. 0715, fuck, still wearing sweaters, my e-scooter not charged, and an important Teams call at 0800.
Got dressed, stuffed laptop into backpack, hurried up by foot. Took the bus. Fuck, the next connection on the change station just had gone off. Took a taxi to make it. Arrived at the company, plugged in the laptop, started with no issues. Had the important call.
Took the laptop to IT. Tested it with external network connection and VPN. Worked with no script error. Had it checked for RAM issues. No issue. WTF had happened in the morning?!6 -
Just been watching some police soap on YT with "real police officers in action". Haha, yeah.
Huh, what's that outside, flashing blue light? Oh, a police car. No, two. Three. Actually, four. All of the guys rush into the neighbour house, WTF. Real police officers in action. -
Some time ago at work, I verified a system design by running the whole thing in my head, bombarding it with various fault conditions in all phases in order to check whether I had forgotten anything. I had my eyes closed, and my PC was not even switched on. Right in that moment, the boss of my department came in.
He: what are you doing?
Me, without opening the eyes: thinking.
He: don't you want to code?
Me, eyes still closed: no.
He: (leaving)1 -
WFH and I got up to get a mouse for my laptop. Five minutes later, I sit back down with a plate of fish. Dammit, brain, wrong animal.
-
Today, I got some crap on my desk with possible bug reports from the field. They have been lingering somewhere for fucking MONTHS, and suddenly, an immediate answer was due. I was the unlucky one who was the least clueless about the product involved. SHIT.
OK, sifted through the reports. Some of them were duplicate, others obviously not our problem. No idea where to even start for the rest. FUCK, it's Friday!
But here comes "senior dev secret knowledge"(tm). Instead of saying WTF-IDK, I proposed an "action plan"(tm) (that BS term alone...) detailing the steps that we would need to take, and since I had no idea how long we would need, I just added enough steps in the "action plan"(tm) to make two weeks of investigation believable.
PM was very happy and just took that as direct customer reply. Now it's weekend anyway. :-) -
WTH. My TV, with a plugged in chromecast, just turned itself on and played music that definetely was not mine.
First thought was, that someone got into my network and was jerking around. A little later I figured out, that my mom started the playlist on her phone and somehow it triggered my cast und turned the TV on.
Seriously WTF4 -
I specified a requirement where certain bits in a certain message shall be evaluated for certain items. The tester came up to me and talked some BS about how to guesstimate these bits by totally different bits. I said, look up the interface definition, the bits are there. Got an email, same BS. Tester was just too lazy to look it up. So I answered that message ID X has bits 60-63 for the four relevant items.
However, I carefully avoided telling him which bit was for which item so that he knew what it was, but I still forced him to look up the inter fucking face definition. -
I know that if something looks stupid but it works, it ain't stupid... but this is just plain borderline.
Basically, a cast from int to String to int to String from some legacy code I'm working with7 -
Back when I was doing my uni final year project. i was given the choice of either writing codes or writing documentation (graphs, requirement and a whole lot of other madeup bullshit)
I deicide go with coding, sign up with laracast. watch a whole lot of screen cast. and BOOM, coding is easy - I was literally quoting bombastic technical terms like many-to-many relationship to my group mates after 2 videos. (didn't even know what was bootstrap at that time) Thats was when I decide I wanna code for a living. Laravel made me a developer.1 -
Wasted a day as Shitlock Holmes with the build chain.
It would not reproduce the firmware hexfile that had been checked in. Reverse engineering that along with the mapfile to find out the cause, it was a const string that was guarded by an ifdef from another file that was auto-generated as prebuild step via a script that fetched some version control info.
Or, it would have been if the installation instructions had been correct and someone had described that no spaces in the absolute path name of the project are allowed. Otherwise, that shit just failed silently.
I then had to reverse engineer the intended workflow from the commit history in the version control to figure out that the last dev obviously hadn't quite understood the project specific workflow and how the version control interacts with these build scripts.
At least, I finally did get a matching hexfile.1 -
Fuck you, Nvidia. Uhm no, this time not from Torvalds, but EVGA: they're fed up with Nvidia's antics towards their AIB partners. No 4000 series EVGA GPUs anymore.
Source: https://forums.evga.com/Official-Me...9 -
Oh thank god!
Had an error in my COSMOS project and had no clue what was happening, so apparently cosmos allows you to cast using an interface when declaring variables and comparing yet it doesn't let you cast with an interface when trying to execute a function... The fuck?4 -
Got some new coffee, Trung Nguyên from Vietnam. Now that's some in-your-face coffee! Strong and interesting taste, slight cocoa aftertaste. Only recommended for hardcore devs.6
-
Has anyone tried the "Connect app" on windows? To be able to screen cast for example android screen to windows.
What in the fucking fuck are those guys in Microsoft smoking? It fucking hijacks your mouse and keyboard with no way to control your PC. Only thing that works to go back to your PC is ctrl+alt+delete. Wanna close it? Alt+F4. No fucking UI except some broken pseudo setting. Srsly it seems like some intern did it. WHAT THE SHIT??1 -
I had six items that I wanted to centre horizontally via CSS. Problem was that depending on the viewport width, the items could either take one, two, three or six lines. But the items broke to the next line like text so that e.g. the top line had five items and the second only one. What I wanted was three items each in this case.
Finally, I came up with a hack of media queries to make the parent container just so wide that six, three, two or one item would fit horizontally, and then centre the parent container with margin left/right auto.1 -
I've been dreaming about an eat() method in, I guess, Javascript. It would accept a string as parameter and set the cursor position further by the width of that string in the current font and size without displaying the string. A bit like a span with FG == BG.
But the best was the debug mode: the characters would be printed, but a yellow duck would appear from the left and eat them in Pacman style.1 -
The tale of mouse and clock
Once upon a time, there was a mouse that wanted to know what time it was. So it asked the first best man, but unfortunately, it didn't understand Suaheli. Anyway, the man just mumbled "gotta kick the cat in the ass".
So the mouse went on and nearly would have got it when another mouse came into play that had been sewed onto an elephant's ear for 27 years - but it had forgotten the exact time it had gotten sewed on.
So the searching mouse came up with doing something about the sun, but since it was just a dumb mouse, it looked into the sun and was blinded for a time.
Somewhat desperately, it staggered through the gutter where there was quite some garbage. Just by chance, it fell over a dumped wristwatch and broke its nose.
Moral of the story: even a blind mouse sometimes can find a broken clock.2 -
Somehow, a continue instead of break in a switch-case looks weird. Although it makes perfectly sense with regard to the outer for loop.8
-
Going to go old school D&D. The more I learn in school, plus messing with code to improve my job at work, the more I feel like one of the Magi. The more I level up the more I can interpret the spell books. I may not be able to cast an amazing spell yet, but I can at least know when it is a good time to duck behind something because I fireball is coming my way.7
-
Alarm clock Pi that reads news headlines and weather cast to me in the morning.
Not impressive but it’s the project I enjoyed most.. -
Yeah, my new e-scooter arrived today! I just have to get the insurance sticker that is legally required here; I'll do that on Monday.3
-
Casting Netflix on the latest Chromecast devices forces you to re-log in to your account on the TV every time you click that Cast button on your mobile. A minor problem for people with a small family and no friends. A big pain for those who cast from different accounts.
And a massive problem for me and one of our hardware solutions which remotely streams mutliple chromecast devices via a UDP directly in to different rooms in a hotel.
F*ck you Google TV, you insistent piece of crap, I'm going back to Chromecast Ultra.3 -
Yeah so I quickly hacked stuff together. Why make it beautiful before I know whether it will actually do? Hack now, refactor later!
Yeah and then that moment in refactoring where main() gets under 700 lines and I don't know whether what I'm feeling is joy or despair. Gaaaahhhh!
At least I have also written automatic tests so that I can see when something breaks.2 -
Super brilliant idea for Windows: when logging on with a password that is only slightly mistyped, or with the consecutively appended number from the previous month, it should still be accepted. So much more usability - Microsoft just cannot reject that!8
-
Gna gna gna Chrome you stupid sucker!
I have some objects that I animate using JS triggered CSS translate with a transition duration. Why on earth would Chrome think it's a good idea to apply that duration also after the animation when I zoom the whole page?!
OK, slap a transition end handler on the object and reset the transition duration when the animation is done. But FF doesn't have that problem in the first place, and even IE works as intended!5 -
The WordPress Gutenberg editor is now starting to hit unsuspecting users who havn't been following up with the preview phase. They mostly hate it, and the arrogance from the WP pricks is stunning.
My favourite quote from WP.org admin Otto: "This is the future editor in WordPress. It is happening. There's no stopping that train now. People thinking that they can somehow stop the train are people who are standing in front of a train. That never really ends well."
Yeah you little dipshit, do you know what did end FUCKING well? Not having put myself on your bloody track in the first place so that I can sit back and enjoy my popcorn! :-)13 -
Fuck it. Two big releases plus all the minor shit raining down on our team with only three active devs. A new team member who's unfortunately more of a burden and nuisance while the whole ship burns so beautifully....
And stupid me? I fucking break my arm, is in a cast now for four weeks. So I can mostly watch, while everything sinks.4 -
Gamers Nexus has a really unique benchmark for the new AMD GPUs where AMD actually manages to pull ahead of Nvidia:14
-
Trained model with L2 regularisation. Didn't really see much of a difference to L1. Checked everything again... turned out I had re-run the L1 setup instead of the L2. *facepalm*1
-
Finally got few cables and now I can connect my laptop and even my cubietruck (device llike rasp) to the crt TV which was lying waste. Thinking to provide cast service to use it to watch movies. I know the resolution will be poor up but still with a try ☺️2
-
I wish I were a super hero who's special powers were development related. Like being able to change a person's pointer to point to null or being able to cast a Queue as a Stack so I can go first.
-
Ah I love that movie.. Hero, from 2002. I've seen it in the cinema three times. It's a real marvel, especially the scene where the forest turns red right after Snow killed Moon.
I also like how the quotes are adaptable:
Martial arts and programming are quite different, but they are based on the same principle: striving for highest perfection.
The essence of programming reveals itself through study and meditation.
(The latter one is also one of my favourite lines at work when being asked how come I know some esoteric stuff: it revealed itself through study and meditation.)5 -
There was a big hairy ball of SW mud from another project that a poor coworker had to "reuse". Only that it was impossible because there was no documentation, shit was partly auto-generated with mysterious Excel tables, and the actual code was just as bad. No APIs and nothing, just hacking shit into globals, several nested state machines that were overriding each other's states, and with global side effects. WTF.
Two devs took a look at it - minimum 8 weeks. Schedule was some days, and PM insisted that it was "already working". But the worst thing was that the dev in charge had been looking for another job anyway and quit, so the whole clusterfuck suddenly was on my desk.
The code was so awful that I could only bear it with both eyes closed, so I instead read the spec of this project closely. Turned out that it didn't actually demand this feature, only a small subset of what the ball of mud was supposed to achieve - which I was able to implement from scratch within a day, plus another one for documentation. Phew. -
Generic arguments can't be cast. List<Dog> can't be cast to List<Animal>, because any methods that take Dog as an argument would suddenly have to work with an Animal (same works the other way round with return values).
But there are many situations where this would be okay. For instance, a Date can be cast to a String, so if we know that no method directly or indirectly accessible from a ListView<T> (including accessible property and field setters) will ever take an argument of type T, then ListView<Date> can be cast to a ListView<String>. Conversely, if we know that methods of StreamWriter will only ever take arguments of the generic type and interact in ways that don't change the object, then we can safely cast a StreamWriter<String> to a StreamWriter<Date>.
There could be a pair of generic constraints signifying that the type only crosses the interface boundary in one direction. I think this would be an interesting feature, but I don't know any strict type system that allows it. What do you think?25 -
Today I learned.
In php if you cast a string to array you get an array with one value: the string.20 -
Don't people learn the basics of how things work anymore ?!
I am cleaning this project, where some juniors have implemente a lot of the code.
Apparently, the way of deleting an entity from the database is:
1) SELECT the entire row and cast it to a model class
2) CONVERT that model class to a DTO class
3) READ the Id property from the DTO class
4) SELECT the entire row, again, and this time cast it to a DTO class
5) CONVERT that DTO class to a model class
6) Use you pancy-pants ORM delete method using the entire model class as input argument..
FUCK YOU !
inb4 what about reference checks ?
- Nope. That is done separately using only the Id
inb4 what about checking if someone else has altered it before deleting
- Nope, the entire entity is not used for that either.3 -
I've just used https://gtmetrix.com to see how devRant fares. Pretty well actually, with one major gotcha that should be easy to fix. There are a lot of static resources without browser cache expiration date.
A little image optimisation could also be done, see the PageSpeed tab. And scaling down images in CSS could also be replaced by proper scaling of the image itself.
The YSlow tab shows that a little JS minification is missing, and maybe 4 external scripts could be combined into one.1 -
I've been typed cast as a VB.NET WebForms developer. Don't let it happen to you!!!
Off to an Angular code meetup where I'll pretend I use it in my career.1 -
One more reason to "LOVE" Liferay...
Caused by: java.lang.ClassCastException: com.project.x.portlets.CurrentUser cannot be cast to com.project.x.portlets.CurrentUser1 -
So the tests for the AMD RX 7000 GPUs are out. Business as usual: superb for non-RT gaming given the price, crap at everything else - including energy efficiency in FPS/W.
Pro tip to the AMD marketing: you don't highlight features like energy where you suck relative to the competition. You point out your strong points. Admittedly, you don't have much to work with here.3 -
Not quite sure what to rant about, but it sucks:
- Why the FUCK is Windows taking bloody TWO MINUTES to delete Android NDK?
- Why the FUCK does it take ANOTHER two braindead minutes to delete that from the waste bin?
- Why the FUCK is Android NDK so bloated to begin with?
- Why the FUCK have I still not come around to equip my 8 year old PC with an SSD?1 -
Upvoting your on post in rant.
inspect element check for class vote-state-novote and replace it with vote-state-unvoted and then cast your vote :D
Later you will come to know what happens :P2 -
Got recruiter spam from a "devs only" super-hip recruiting company. As they announced in the mail, they develop themselves and know the difference between Java and Javascript. On their blog where the last post is from more than one year ago, they have hints how to pimp up one's resume. Amongst other useful things: don't use Comic Sans.
WHAT THE FUCKING FUCK?!5 -
Yeah Statler and Waldorf are my new role models. A code review in S&W style should be quite a killer, haha.
- I've never seen anything like this before.
.
.
.
- And I hope I'll never see anything like this again!8 -
get a high priority bug , look at code changes, a variable name getting refactored apparently created a class cast exception
something about this hypothesis doesn't seem right
i hate my job, welcome back from vacation2 -
Got an invitation for a telecon this afternoon. Just "some quick questions"(tm).
You stupid smurf dick, write them fucking down so that I can fucking prepare useful answers and probably eliminate the whole dumb telecon at all.
I declined the telecon, problem solved. No fucking questions means no fucking telecon. I won't burn through the project budget for ventilating your dick, you can hire a hooker for that one on your own cost centre. -
PC-Lint is such a useless piece of shit! Tons of warnings with no actual benefit. The obvious motivation behind this crap was to throw as many warnings as this cheap sucker can even generate with no effort to minimise false positives. Typical snakeoil shit, reminds me of ZoneAlarm back then which reported every ping as "attack" just to fool the clueless into buying. Meanwhile, the actual bugs that sophisticated tools can find pass unnoticed through PC-Lint.
-
UNOFFICIAL DEVRANT CLONE JAM - LAST VOTING DAY
4 people have cast their votes on devRant clones with 19 points for @retoor and 3 for @SidTheITGuy. It's a huge rift, which will be hard to clamp by 12:00 UTC!
Finnegan (by @retoor): https://devrant.com/rants/9946268
ragedev (by @SidTheITGuy): https://devrant.com/rants/9946238
Despite the obviousness and overall weirdness of the end product chosen for this hackathon, I want you to give your feedback to others who want to see the best of devRant, but somewhere else. What do you think a serious devRant alternative should have and what are expectations for the design?
I'm sure all these topics will keep reappearing, so maybe this rant can be used to gather all the thoughts in one place before spreading them around.1 -
So dynamic typing means you can just add members to objs on the fly?
But why hadn't I noticed that before giving a long lecture about classes being "molds that we cast objects in"?
Ah, yeah. That's because I'm just learning it at the same time.33 -
To be a Java (or other business popular language) developer
* Java 6, 8 and features up to 14
* SQL + nosql
* Caching
* Logging eg log4j2,
* Searching eg elastic stack
* Reactive
* Framework (at least 1, but hey, knowing 1 is lame..)
* Networking or at least base http knowledge
* Tomcat, jboss or other shit
* Aws, heroku, GCE or other SAAS/paas
* Rest, RPC, soap
* Business Hello World example
* Hexagonal Architecture
* TDD
* Ddd
* Cqrs
* 12 app factor
* Solid
* Patterns
* docket
* Kubernetes
* Microservices
* Security, oauth2
* concurrency
* AMPQ
* Cloud
* Eureka or consul as service Discovery
* Config server
* Hazel cast
*
*
* Endless story ...
Then we can start hello word app2 -
Mozilla you stinking kangaroo pouches!
When you set an object's CSS translation via JS like so:
obj.style.transform="translate(0px,0px)";
and then read it back, every browser including FF until 66 gives this, with additional space:
"translate(0px, 0px)"
However, bloody FF 67 returns "translate(0px)". Because it's always a good idea to just introduce external changes nilly-willy, right?
That screwed up my crappy string slicing because it relied on the presence of the comma. It was a quick and dirty solution, but with additional future proof if/else logic, it wouldn't even be quick anymore.
Besides, the whole string slicing looked like yo-yo code anyway so that I instead added shadow integer variables to the objects. That solution not only works, but is even faster.10 -
Fuck, the gas spring in my ergo knee stool at home has given up. Now it's in the lowest position, not that ergo anymore, which also tore the rubber gaiter on the spring piston. On top of that, the seat cover is so worn out that I had to duct tape it so that the filling doesn't crumble out too much.
That thing is 20 years old, and the manufacturer discontinued the product years ago. Buy a new one? Noooo. Modern quality would be worse. So I ordered a generic gas spring, let's see whether I can install it, plus a moped fork gaiter. And then hire some professional upholsterer to finally get a luxury leather cover.
That will likely still be cheaper than buying the closest modern product that is even in a similar class.6 -
Python..... please cast my integers and such to string for me. I don't want to have to keep typing str().... pretty please?4
-
wow....what a great way of representation.. your screen is doing something else and screen cast something else...1
-
I spent three days looking for an error that caused my app to not displaying the layout (the app still was running but it was a black screen). On the third day, i discovered that when I register a SensorEventListener I have to cast the listener to SensorEventListener, otherwise it wont load, or even show errors on the logcat.
-
I was taught Perl and Java in just under 3 months during my Master's in Computational Biology which fueled a dislike towards these, so I self-taught myself Python and JavaScript in my free time and loving life now!1
-
SonarQube is obnoxious in it's moronic ideas that demonstrate lack of understanding of the languages it's analyzing.
In C# there exists a special kind of switch-case statement where the switch is on an object instance and the cases are types the instance could polymorphically be, along with a name to refer to that cast instance throughout the case. Pattern matching, basically.
SonarQube will bitch about short switch-case statements done in this way, saying if-else statements should be used instead. Which would absolutely be right if this was the basic switch-case statement.
This is a language with excellent OOP features. Why are your tests not aware of this?
I can't realistically ignore the pattern because that would also ignore actually cases where it's right. And ignoring the issue doesn't sit right with me. How does it look when a project ignores tons of issues instead of fixing them? -
So I thought I had a basic, high level understanding of C++ STL strings, pointers, copy constructors and stuff. In comes a dirname, a -D_GLIBCXX_USE_CXX11_ABI=0 and... Toto, I've a feeling we're not in Kansas anymore.
So what is happening? I copy a string expecting a deep copy, but then I do the dirname or manipulation on the copy and it messes up *both* strings. gcc/C++ I know you're a beast, but what's going on there? Thing is only possible if I cast away const from c_str - which of course is a doubtful operation - but there also seems to be some strange copy on write logic that the data pointers initially point to same memory location and only with first manipulation on the copy they start to point to different addresses.
I had no clue. And still don't have.4 -
Is it better for login page button and text and links when you're about to login to say Login or Sign In?
Same for registration. Register or Sign Up?
Its the same shit different label. Im afraid people are too dumb to understand Sign In = Login and Sign Up = Register.
Some sites use Login some use Sign In.
Thoughts?
Cast ur votes and explain why
✅ Login / Register
✅ Sign In / Sign Up17 -
!rant
I'm really excited with the 2018 World Championship, and I guess I'll leave work earlier to watch the games live.
.
.
.
.
.
.
.
What do you think, who will win? Carlsen or Caruana?2 -
i've been banned from SO again because too many people hit downvote on my shit without telling me why, so i'll ask in short here:
How the fuck are u64* and u64 different, why can't I cast between them or between them and a double and why the fuck is C gay?
Now, again but longer:
https://stackoverflow.com/questions...32 -
So. is it possible you fucking freaks could NOT mess up national geographic like you did the history channel ? in fact can we just murder anyone who watches ancient aliens or ever produced a single episode of forged in fire ? or any of this other stupid uninformative bullshit where they use sound effects and cast ruined creatures pretending to be normal and/or decent people ? thanks. this is why we're stuck you know. because you people can't be allowed to completely replace a culture with your bullshit or the world will never recover. civilization will in fact end.16
-
Help with C code
int main()
{
int x =10;
void *p = &x;
printf("%d", ((int*)p)* );
return 0;
}
I'm trying to cast p to and int, for dereferencing it and printing the value of x, but Im getting an "expected expression before ) token" in the line for printf.8 -
!dev
Since Robert Patterson will be the next Batman, why not cast Taylor Lautner as Jason Todd, Kristen Stewart as Barbara Gordon and Billy Burke as Jim Gordon.
If you do this, you better go the whole nine yards.2 -
The half-abandoned town of Chrysler, Arkansas (population of 3), was swiftly decommissioned as I noticed a characteristic bright yellow birthmark on her hand. “You have to choose” — I said, “unavoidable and painful death, or decommissioning and relocation. You live in a charred shed anyway.”
Prince The Elephant caught steelpox in 1937. It was alone in its compartment, locked out, as the evil fungus was slowly and painfully turning its body into cast iron. Rusty but ornate, 19th century metal throne was there too. The Throne was talking to Prince. When it spoke, it could put its words into your head as commands, as if there were your own thoughts. It did it so authoritatively that it seemed like the language itself was different, but it wasn’t.
The throne was coercing Prince into fusing together, cast iron to cast iron. Every day we heard Prince’s screams as steelpox was mutilating its body, as well as awful banging as Prince was stomping on The Throne, trying to silence it. The Throne didn’t budge. It just kept talking. Over the course of four months, it won Prince over.
Prince’s final agony was unbearable. As its throat and eyes were ironified, [dream fragment lost].
French public was largely empathetic. Throne-Prince was definitely still alive, although differently.
The American public, however, nicknamed it The Iron Freak. -
Why does live streaming to mobile need a cable subscription when I can get the same channel with a HD antenna for free?
Was trying to watch the Thanksgiving parade at my parents. Didn't know they had a working HD antenna so spent an hour trying to cast and find a streaming source...
Then Dad said we do... I just needed to rescan the channels...3 -
Sometimes I just can't be arsed to write static_cast<> () and go crazy and use a c cast. What a risk taker I am.1
-
When does a developer life turn into a nightmare?
I’m still an intern, senior in school.
All the work I had to do so far was easy, I would get a task to work on for a week and finish it in a day.
When does work really get challenging ?9 -
So the views result counter global field in Drupal 8 doesn't like to be bothered with mathematic expressions in TWIG. FUCK FUKC FUCK FUCK FUCK FUCK.
It will render it's own value and seems to be cast as a string like other fields in the view but as soon as you try to increment it or multiply something by it, IT TURNS INTO ZERO!
😡 😡 😡 😡 😡 😡 😡 😡 😡 😡 😡 😡 😡 😡 😡 😡 😡 😡 😡 😡 😡 😡 😡 😡 😡 😡 😡 😡 😡 😡 😡 😡 😡 😡 -
Last nite, one of my projects started crashing with a ClassCastException because it couldn't cast a string to a boolean, inside an if. This is Java. You can't even run a project if you evaluate a string inside an if. Has anyone seen such a thing before? I'm running BBQLinux which at least for me it has a lot of permissions issues and somehow things got so f'd up that it even messed up the Android image to a point that the compiler couldn't find a method to set a string into a TextView. I'm not kidding.1
-
What's the best way to deal with constant dread? I deployed code after following every procedure, got every kind of thumbs up from QA and now it's my fault our 2012 admin site borked. Should I point out all the obvious flaws (again), or should I give up on our stagnant-ass developers and systems?
The fear of showing off anything new is crippling. I wrote up a Pyton API to hook into our current pipeline over lunch breaks but am worried if I even raise it as an option it'll just be cast aside and lost to time, regardless of business value. -
I'm running a small promo for my Android app 'Cast Controller', if you'd like a Promocode too, leave a comment here or on Reddit ☺️
https://reddit.com/r/androidapps/... -
java.util.Optional.or, orElse and orElseGet should really have their signatures changed so they can widen the type. For example, `Optional<T> or(Supplier<? extends Optional<? extends T>> supplier)` should really be `<U, S super T & U> Optional<S> or(Supplier<? extends Optional<? extends U>> supplier)`
Then we could eliminate the following unchecked cast:
```
public static double getOrNan(Optional<? extends Number> optionalNumber) {
return ((Optional<Number>)optional).getOrElse(Double.NaN).doubleValue();
}
```2 -
big heaping dose of fuck apple !
They don’t seem to allow vnc
Because their apps can decide whether you can cast your screen to something like uxplay to keep you from displaying your own screen to your computer !!10 -
Did you know that theres no real long in php (if so, please tell me how to cast..)?
And did you know that mongodb decides what it puts into it's collection?
I have no idea how to force it to set an int64 instead of int32..5 -
Prediction:
1. Broadcast (free) TV will consist 100% of live programming
2. All series will be bought and available on streaming services like Amazon, Netflix, Disney+
3. Cable channels or TV episodes can be bought individually (iTunes, Google Videos, etc), basically they will be their own streaming service (it actually that already exists, IPTV? just not in the US?)
Why:
Everyone will use DVRs to record TV shows so can skip all advertisements
Therefore only way to get viewers eyeballs for ads is live programming where you need to cast votes which affect the outcomes (supposedly)
Streaming services obviously don't have this problem and don't need to run ads since there's a monthly subscription fee that more then covers cost.2 -
I love how we spend 5 minutes to go about work, and use the remaining 55 minutes to chitchat at daily meetings.2