Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple APILearn More
Search - "clocks"
We called it "Project Hindenburg".
A huge planning and logistics app with hundreds of screens and dozens of interwoven subfunctions, suddenly needed to be able to support multiple time zones. Our project was to retrofit every area that touched on dates or times, to allow the user to specify, and work in, any time zone.
At this point in the story I can tell whether you have had to work with time zones in code. People who haven't are butting in with something that begins, "that should be fairly simple, you just need to..." followed by some irrelevant noise that betrays their ignorance.
People who have worked with time zones are nodding in shared pain, like fellow attendees of a survivors meeting.
You see, programmers tend to think of time zones as arithmetic; in reality, they are confusing, ambiguous, chaotic, and individual. You can't translate everything into a central time zone (eg UTC) because you lose the user's intent. For example, if you schedule a meeting for 3pm and then move it to the next day, you want it at 3pm even if the clocks have changed.
Project Hindenburg ended up using the entire development staff of the company for well over a year. It smashed our release projections to rubble, made an already tangled code base completely unmaintainable, introduced mind-bending edge case bugs that reduced staff across the company to tears (literally), and led to most of the mid-level and senior developers eventually quitting (including me).
I am @fuckfuckityfuck, and that was the story of Project Hindenburg.11
Hands up, who actually uses this shit?
Seriously, this is one of the most innovative apps I've used in the past year. The developer must be having fun torturing hundreds of people every day. But fuck this shit, it works (and most alarm clocks didn't work for me)37
Just disassembled 2 €5 desk fans because they were shit.. and so is their design apparently.
What I found inside was actually surprisingly simple.. a toddler could build it. It's just a DC motor, a 3PDT switch, DC barrel connector, some wires and screws to hold stuff in place. Oh and the plastic thingie with the fan blades, as well as the USB cable of course.
5 fucking euros. The combined cost of the components would be less than 3, certified motherfuckturers. Time to build it, injection moulding, transportation, sure.. but still.
And if you think that being salty about €5 is cheap shittalk, expand that to every fucking piece of electronics that doesn't cost a small fortune.. at all price ranges. Could be radios, alarm clocks, heck even phones. Shit's way too expensive for what it's worth. Perhaps because so many people in the industry are just here for a quick buck.. motherfuckers 😒
Anyway, back to the design.. the hole in the fan blade thingie is supposed to get the motor's shaft shafted in, to turn the blades. I'd use glue there.. but not these designers. They just shove it in and hope that friction takes care of everything. And one of the fan blade modules' hole was so wide that inserting the motor is like throwing a sausage down the hallway. No contact at all! Make it tight already like the Chinese designer's glory-...
Nah let's not get into Chinese tightness just yet.
Oh and also a resistor for slow mode. Consumes just as much power except the fan turns slower. Because fuck efficiency, right?
Goddammit, next time I'm just gonna build my own again.. at least that wouldn't be a certified piece of shit 😑7
Not my own bug, but at our sister company there is a PHP developer who almost gets fired twice a year, once when the clocks go forward and once when they go back again. He can't program dates well, or use stack overflow apparently.3
I could bitch about XSLT again, as that was certainly painful, but that’s less about learning a skill and more about understanding someone else’s mental diarrhea, so let me pick something else.
My most painful learning experience was probably pointers, but not pointers in the usual sense of `char *ptr` in C and how they’re totally confusing at first. I mean, it was that too, but in addition it was how I had absolutely none of the background needed to understand them, not having any learning material (nor guidance), nor even a typical compiler to tell me what i was doing wrong — and on top of all of that, only being able to run code on a device that would crash/halt/freak out whenever i made a mistake. It was an absolute nightmare.
Here’s the story:
Someone gave me the game RACE for my TI-83 calculator, but it turned out to be an unlocked version, which means I could edit it and see the code. I discovered this later on by accident while trying to play it during class, and when I looked at it, all I saw was incomprehensible garbage. I closed it, and the game no longer worked. Looking back I must have changed something, but then I thought it was just magic. It took me a long time to get curious enough to look at it again.
But in the meantime, I ended up played with these “programs” a little, and made some really simple ones, and later some somewhat complex ones. So the next time I opened RACE again I kind of understood what it was doing.
Moving on, I spent a year learning TI-Basic, and eventually reached the limit of what it could do. Along the way, I learned that all of the really amazing games/utilities that were incredibly fast, had greyscale graphics, lowercase text, no runtime indicator, etc. were written in “Assembly,” so naturally I wanted to use that, too.
I had no idea what it was, but it was the obvious next step for me, so I started teaching myself. It was z80 Assembly, and there was practically no documents, resources, nothing helpful online.
I found the specs, and a few terrible docs and other sources, but with only one year of programming experience, I didn’t really understand what they were telling me. This was before stackoverflow, etc., too, so what little help I found was mostly from forum posts, IRC (mostly got ignored or made fun of), and reading other people’s source when I could find it. And usually that was less than clear.
And here’s where we dive into the specifics. Starting with so little experience, and in TI-Basic of all things, meant I had zero understanding of pointers, memory and addresses, the stack, heap, data structures, interrupts, clocks, etc. I had mastered everything TI-Basic offered, which astoundingly included arrays and matrices (six of each), but it hid everything else except basic logic and flow control. (No, there weren’t even functions; it has labels and goto.) It has 27 numeric variables (A-Z and theta, can store either float or complex numbers), 8 Lists (numeric arrays), 6 matricies (2d numeric arrays), 10 strings, and a few other things like “equations” and literal bitmap pictures.
Soo… I went from knowing only that to learning pointers. And pointer math. And data structures. And pointers to pointers, and the stack, and function calls, and all that goodness. And remember, I was learning and writing all of this in plain Assembly, in notepad (or on paper at school), not in C or C++ with a teacher, a textbook, SO, and an intelligent compiler with its incredibly helpful type checking and warnings. Just raw trial and error. I learned what I could from whatever cryptic sources I could find (and understand) online, and applied it.
But actually using what I learned? If a pointer was wrong, it resulted in unexpected behavior, memory corruption, freezes, etc. I didn’t have a debugger, an emulator, etc. I had notepad, the barebones compiler, and my calculator.
Also, iterating meant changing my code, recompiling, factory resetting my calculator (removing the battery for 30+ sec) because bugs usually froze it or corrupted something, then transferring the new program over, and finally running it. It was soo slowwwww. But I made steady progress.
Painful learning experience? Check.
Pointer hell? Absolutely.4
//Proper Haxk20 tech rant
So uhmmm this is interesting.
Apparently Acer decided to not make proper vBIOS for Nitro 5 RX560X and they left some stuff well just empty or to stock.
For example they set the maximum OC clocks to stock so even if you want to overclock you cant exactly on Linux.
OK but why can we OC on windows ?
Well to no ones suprise windows stuff doesnt exactly follow specs published and well they just ignore some stuff so if you want you can OC on windows even past the max OC clocks because oh safety on windows isnt a fucking thing.
OK so how do we fix it on Linux ?
Well we have 2 ways.
1. Is to dump vBIOS. Edit it to contain the proper max limit and load it on startup because flashing it isnt great to do on laptop.
This will get you OC support but takes ages because again this isnt normal GPU. Its desktop GPU in laptop and Acer had to do something to it because oh well. So you will get lot of shit in the way.
Second way you can OC is to lets just say disable the security feature on Linux.
Hmmmm but AMDGPU driver doesnt exactly support that.
What do we do ?
Well if you look at AMDGPU code there is code for overdrive which is basically driver for overclocking support. When you look at the code for it you will be blown away first at what you are looking at but then Oh boom. variables for max clock on memory and core. Bingo.
OK set it to the values and boot the patched kernel. Hmmmmmm why is it so slow ?
Why is it running at minimum clocks ?
Look at the code again and you forgot that drivers use Hz instead of MHz. Yeahhhhhh. OK multiply the value to match Hz and its at stock. But no worries. Now when i tell the GPU to run at clocks past its limit it wont yell at me that i cant do that.
OK now comes a little weird part. I didnt find docs about boot parameters in linux and i didnt find a way to implement them. So if anybody has a way of implementing them please comment here a link to it. I will possibly even make this a patch and send it to kernel since well manual patching is shit.2
How ryzen 5 2500U works:
CPU: I want power because im running at full speed.
GPU: But i need power too because im running fucking GNOME.
*/Fight starts and GPU always wins and CPU clocks down to 2.90Ghz./*
So dear Acer maybe next time do some fucking tests running CPU at full speed because as i see it 15W isnt enough for both of them.
Increasing TDP to 25W takes it to god level.
CPU has no issue running at 3.07Ghz at GPU usage.
So please check you fucking shit.
As its kind of sketchy solution to increase the TDP and while AMD states that running it at 25W is normal as some OEMs use it normally at 25W it isnt the best to edit ACPI tables to make it like that.
Im waiting for ASUS to release their FX505 or what ever the laptop is named with Ryzen 5 3550H and RX560X.
Im gonna most likely sell this one and buy the other one as that 30W TDP makes much much more sense.20
*/Fucking angry rant about ACER comming/*
SOooooo dear ACER. You fucking stupid idiots who cant write a proper BIOS even.
You sell a gaming laptop that has Ryzen 5 2500U and limit the clocks to 1.6Ghz without AC power ?
OK for battery life but damn give me the option to disable it.
Ohhhh yeah you deny you have advanced menu in BIOS that is locked away from users. For some fucking reason.
Oh yeah they also say its for battery life which is idiotic reason because they dont limit Intel CPUs at all and they can run at max clocks even on battery.
Sooooo dear ACER. Dont expect me buying next laptop from you because i will better buy it from some other OEM like Dell that does a proper job on BIOS and they at least wrote a proper IOMMU groups and not like you fucking idiots so that we have to debug the kernel and make workarounds in linux because of your laziness. I don want to see the source code of windows drivers because im sure that its bug on bug on bug and wrote totally terrible.
ACER YOU ARE TOTAL IDIOTS. (Except few people there who actually know something and are willing to fix it but they cant because Boss doesnt allow it)7
I wonder how many timers, clocks, hello world's and random number generators have been created.
Hmmmmmmm interesting i maybe finally found out why my dedicated GPU was running like a shit. I mean it was exacly as powerful as my integrated VEGA 8. Problem is the GPU clocks. They seem to be stuck at 400mhz and memory at 989mhz. This is why im getting such low FPS in games that i should just crush on highest settings.
Anybody knows about this issue ?
So I tell my coworker how ticking noises of clocks can annoy me really bad. It is an OCD thing where I will not notice a clock, then I notice the ticking and it annoys the hell out of me.
He leaves the room after a while after turning on a fucking youtube video with 11 hours of ticking clock.
I am like, "You fucker..."
Then another guy we work with comes into the office and pretends like he is wondering what the ticking noise is.
I said, "Yeah right, he sent you in here to ask about didn't he?!" He was like "maybe..."
Anyway, that must mean I am part of the team now. They are screwing with me. All in good fun.2
AMD you have done amazing fucking job. 4.20 and gnome lagged a little sometimes.
4.21 mostly smooth as butter and when updating to GNOME 3.32 its just perfection. AMAZING.
Not only they did FreeSync and other amazing shit in kernel and mesa but now my Raven GPU can clock up to normal speeds as it wants and not only beign stuck at 400mhz core and 933mhz memory. Core is at 400mhz but its not used too much and memory clocks helps a fucking lot. When i hit it with load it goes up to normal clocks normally. AMAZING.
So my country's president just decided that Turkey is too cool to set clocks back for an hour and it fucked all of my device's times up. And I'm not even sure how to convert time zones anymore.. And some devices (un) update time back to summer time so logs and notifications go crazy.
This is just a stupid idea that doesn't make the single bit of sense, are they that unoccupied to change time on their whim ?! You are the government first find a fucking proper solution for all the immigrants from neighboring countries and our unbalanced ass economy.. I'm so fucking pissed this isn't the first time our president plays with the country like this.
Uugh I just want to renounce my citizenship and reside somewhere else that isn't as fucked up as Turkey.. I'm sorry my ancestors that shed blood for this country. It's crumbling because of ignorant masses that follow a dictator blindly.1
A very nice restaurant in a Vegas casino at 3am.
A friend and I were working on a project after defcon, and we got hungry. It's Vegas, so we have no clue what time it is except for our laptop clocks. And who cares anyways. Time is irrelevant in Vegas. So we got a table at a steak place at Caesars palace. And just dropped our laptops on the table and kept coding.4
I'm watching a basketball game (NBA) and they had an issue with one of the clocks at the arena.
They of course fixed it by turning it off and turning it back on.11
Sitting in a bus on 19 hour ride with my class to England a few things to rant about came to my mind:
Why the fuck do you have to blast shitty german rap music out of your fucking JBL boxes and why do you have to turn up the volume so much that I can still hear it although I am wearing headphones, listening to music and sitting 5 fucking rows in front of you.
Also why the fuck do clocks in buses never display the right time? How hard can it be to make the clock display the right fucking time?
Another thing: why does this bus which is especially made for long rides not have a fucking trash can?! Seriously wtf?
Rants aside I am really looking forward to staying in England for a week although I won't have a computer for the next week :(
Another thing: why the fuck is the coffee you get at pull-ins so fucking disgusting ?
Like srsly, it is made by a machine and still tastes like thrown-up.
And why the fuck does everyone look weirdly at you when you buy a can of red bull but everything is fine when someone my age drinks 3+ liters of beer and then throws up? What the fuck? People look at me weirdly when I tell them that I don't drink any alcohol, heck I am actually not even allowed to do so because I am 15 and not 16 (beer is allowed in Germany if you are 16+ but nobody really cares about that). Heck where I am from they even encourage you to drink beer? What the fuck??!!
Anyway looking forward to England and also sorry about the long non-dev related rant. Just had to rant about some people and society.
P.S. do you know any (preferably free) Android apps / games where you have to code or just solve problems with logic?14
Before anyone jumps into comments. Yes Haxk20 overclocking the shit out of GPU again.
So the new Acer nitro 5 AN515-43 has the same GPU as me. At start i was wondering how are they getting so much better performance then me.
Then i looked at the clocks. HOLY SHIT mine is 1450 on memory and that model is running 1750.
Thats 300Mhz boost on there.
OK so after fixing OverDrive on Linux. Better say hardcoding the limit because VBIOS doesnt have it.
I got near the same performace as he did on my old model. Ouuuu yeah thats what im talking about.
From 30FPS to near 42. Thats HUGE.
And thats only on 1700Mhz and im experiencing no issues at all.
So IDK but it seems that the GPU in those newer models is overclocked out of the box to i suppose make it better because its not the best GPU in the world. And that performance boost is indeed NICE.4
So, the last days I saw a few posts here about binary clocks. Somehow I wasn't able to read them, until I read a comment they had to be read horizontally.
As far as I know binary clocks are supposed to be read vertically. Am I missing something? 🤔5
Ohhhhh so now this was what has been wrong. The gpu clocks were always low.
On high i can play doom on ultra settings at 45 fps. Ouuuuuu yes.
Skyrim wait for me. We will turn up those settings.2
Tat! Tat! Tat!
Yepp.. Everybody got some free fidget-swag from the BuildStuff conf :) now the whole office sounds like a clocks' shop3
This weeks question fits me well, as I am still unsure about the full details of how the fuck this all came together and was about to just rant about it anyway.
Ever since this companies network equipment and cabling has been updated, a lot of vital tools went down and bug out every now and then, at seemingly random times.
The codebase is a horrible mess to begin with and random things execute at random times and at random places spread all over different resources that get random hooks from random physical values etc.
Turns out (or at least what it so far seems like) all of them somehow sync their clock and other variables based on how many (valid-?) requests it gets per measured time and similar oddities, so when the network equipment got updated, that meant that multiple processes now could reach each other much faster and therefore threw off thousands of values and internal clocks.
There's a total of like 600 systems that are all "separate" from each other but all need to communicate in-sync for the production chain to properly work. Thankfully I didn't sign anything yet, so might actually just redirect them to somebody else, I am not ready to age 20 years, even for the amount that would pay.1
My favourite time of the year, the clocks have changed and fucked every one of our legacy systems up1
Installed on my 2x 980 TI SLI the newest Nvidia Driver 384.76.
Played games on it and some Video Editing. Noticed that I have bad laggs and checked clocks.
Wow clocks were locked at half the max Output. Checked if I can do anything to increase it, nope it's locked at half the Performance.
Tried to install previous Driver, install failed. Went 2 Drivers back and installed the 382.33.
Everything worked again.
WTF are the guys at NVIDIA coding while being drunk?? How the fuck can you lock the powertarget of the GPU at half the Performance and after 4 days not releasing a hotfix? Are they testing this shit even or forcing it into production?
Currently NVIDIA has really crappy drivers and with every update it gets even worse.
And the only option you got is GPU's from NVIDIA and AMD. And Vega is not even released yet.
Hope that AMD will beat the shit out of NVIDIA...5
This morning I woke up to my two alarm clocks being very noisy and annoying, so I put them in two separate tabs
I went to the bathroom, after my brain started to wake up I realize that these two items are similar functionality and should be put in the same tab
A few seconds later…
I put my alarm clocks in tabs?
What did I actually do?
Maxi-Rant, rest in the first comment!
Yay, I've caught up with my "watch later" list on YouTube! Next thing: Just quickly go through my subscribed channels and add old videos that I haven't seen yet to the watch later list so that I have more stuff to watch the next months. The easiest way to do that is to go to the "all uploads" playlist of the channel (that is luckily always linked now, it used to be hidden sometimes) and use "add all to" to get them on my playlist. Then sort out the stuff that I've already seen and turn on automatic sorting by date, easy. Yeah...
Firstly, in the new design there's no "add all to", I have to go to the old design. For my own playlists, there's a handy "edit" button to do that, but on other pages I have to do it manually. Luckily I have set Ctrl+Shift+1 as a shortcut for "&disable_polymer=true" long ago.
Next surprise: On "all uploads" playlists, there is no "add all to" button. It's on every single other playlist on YouTube, including "liked", "watch later", "favourites" and so on, just not there.
Fine, I'll just abuse my subscription playlist script that I already have by making a copy of it, putting the channel IDs in it and setting the last execution date to 1.1.2001. Little problem with that: Google apps scripts can run for at most 5 minutes and the YouTube API restricts it to add one video per second. So it doesn't work for more than 300 videos. I could now try to split it up by dates, but I didn't write the script myself and I don't know how it sorts the videos to add, so I'll just google for another solution instead.
But whatever, I'll just use "add all to" from there to add it to my creatively named "WL" list. If that thing is restricted by the same rate limit of 1 video per second, it should be done in about 1½ hours. A bit long, but hey, I'm dealing with 5000 videos. Waiting 2 hours... Waiting 3 hours... Nothing happens. It would be nice if it at least added them one by one, but no, it waits an eternity and then adds all at once. At least in theory, right now it does absolutely nothing.
Shortly considered running it for more hours or even days on my Raspberry Pi, but that thing already struggles when using Chromium normally, I shouldn't bother it with anything that has to do with 5000 videos.
Ok, what else can I do then? Googling, trying out different things, mainly external services that have their own concept of "playlists" and can then add them to an arbitrary playlist later...
Even tried writing my own Java program with the YouTube API, but after about an hour not even the example program in the YouTube API tutorial worked (50 errors and even more open questions, woohoo), so I discarded that idea.
Then I discovered "DiskYT". Everything looked like it would work and I'm still convinced that I can do it with that little pile of shit. Why is it a pile of shit? Well, for example the site reloads itself after a while, so it can at most add 700 videos to a playlist. Also I can't just paste the channel link (even though it recognises those links, but just to show an error message that it can't copy from channels). I can't enter/paste URLs, I have to drag them. The site saves absolutely nothing (should in theory work, but in practise it doesn't), so I have to re-drag everything on every try. In one network, the "authorise YouTube" button (that I have to press again on every computer) does absolutely nothing ("inspect" reveals that there isn't even any action bound to the button), in another network the page mostly doesn't work at all or the button to copy from playlists is suddenly gone or other weird stuff. Luckily I have the WiFi at home, there it works in theory. But just on my desktop PC, no other device, wow. I tried to run it on my new laptop, but it's so new that it still has the preinstalled OS and there I can't deactivate going to standby when closing the laptop, so while I expected it to add 5000 videos, it instead added 4 and went to standby. But doesn't matter, because it would have failed at about 700 anyway. Every time I try to use this website, I get new problems, but it seems to still be the best option, because everything else just doesn't do anything. This page at least got to 700 before.
Continuing in first comment!4
Meant to post this a couple of days ago:
I always find it quaint when people worry about putting their clocks forward or back.4
Inherited a legacy system from a developer and it's a freaking nightmare! The majority of the system uses timestamps and not record ID's to handle data. When the clocks change (daylight savings) none of the records can be seen in the system because the freaking timestamps don't match up!! Arrghh this is going to take me ages to fix!!2
Make the analog clocks at work run faster. Might be able to do this with changing the timing crystal. Depends upon the clock I guess.10
!rant I actually like developing for fitbit versa. Mainly because I like the nodejs workflow. studio fitbit online IDE is such a unique way to quickly start developing apps / clocks for fitbit.1
I have this fixation with minmaxing core clocks, voltages and their respective curves (P states, basically). I'm still not sure how much it actually improves my experience, but I'll be damned if it isn't fun and interesting to mess around with these numbers and see them climb higher but remain stable.
Currently messing around with a Vega 64. They come in severely overvolted, and I'm trying to get it to retain its performance with less voltage aka less heat. I don't even need to turn on central heating if I'm running stress tests, the bloody thing runs at 80°C! So I guess you can see why undervolting the card is of interest
Not really an impressive one, but I think it's blasphemous enough to be mentioned:
Creating an embedded application, it was not supported to print a float using optimized libraries (understandable since they're not really supposed to be used anyways), but I was too lazy to convert clocks to a time unit by hand while running benchmarks. So I just printed the float as two integers, splitting it to one for the whole and one for the thousands.