He must have been waiting for me to buy a copy.
He must have been waiting for me to buy a copy.
Oh right, duh. Thanks.
I believe the optimization came because the denominator was a power of two. In my memory, the function counted up all of the bytes being sent and checked to see that the sum was a multiple of 16 (I think 16 bytes made a single USB endpoint or something; I still don’t fully understand USB).
For starters, you can split up a larger modulo into smaller ones:
X = (A + B); X % n = (A % n + B % n) % n
So our 16 bit number X can be split into an upper and lower byte:
X = (X & 0xFF) + (X >> 8)
so
X % 16 = ((X & 0xFF) % 16 + (X >>8) % 16) % 16
This is probably what the compiler was doing in the background anyway, but the real magic came from this neat trick:
x % 2^n = x & (2^n - 1).
so
x % 16 = x & 15
So a 16 bit modulo just became three bitwise ANDs.
Edit: and before anybody thinks I’m good a math, I’m pretty sure I found a forum post where someone was solving exactly my problem, and I just copy/pasted it in.
Edit2: I’m pretty sure I left it here, but I think you can further optimize by just ignoring the upper byte entirely. Again, only because 16 is a power of 2 and works nicely with bitwise arithmatic.
Lol, no, but in the summers we were allowed to wear t-shirts on Friday.
Thanks!
And it was. They told me to take the rest of the day off which at the age of 22 was unheard of.
Thank you! But this was 12 years ago lol. Think they’ve moved on.
Whoops. Formatting got lost in the transfer. Fixed now.
Well most of the suggestions in this thread constitute malice.
I think it’d be pretty easy to argue that something is fishy when the phone that’s supposed to be tracking your driving wasn’t with you on the date of your accident and hasn’t moved since you started your policy.
Let me rephrase: “good luck having your accident claim accepted when they’ve been billing you for the zero miles you’ve allegedly been driving.”
Yeah, but good luck filing a claim when you haven’t logged in for months.
I think these companies enforce compliance by hiding behind the fact that insurance fraud is a felony most places.
Don’t worry. The next paragraph provided an email address where you can send reports of inaccuracies for them to review.
What’s funny is that’s how it started. Apple sold movies as early as 2007 before Netflix or Amazon video or whatever and expected you to host the files locally either on your computer or your AppleTV (which had a hard disk drive at the time) and stream it locally over iTunes. If you lost the file, that was supposed to be it.
Of course, you still had to authenticate your files with the DRM service, and eventually they moved libraries online and gave you streaming access to any files you had purchased.
Yeah, but we always run them in native formats, so it’s not a big load on the processor. We only watch the 4K stuff at home where it’s got a hardwired gigabit ethernet connection.
If you saw my other comment, I’m kind of talking myself out of this upgrade since I managed to get qsv working on my current rig.
That shouldn’t be the case. I’d look into getting this fixed properly before spending a ton of money for new hardware that you may not actually need. It smells like to me that encode or decode part aren’t actually being done in hardware here.
Right you are!
Dug into it a little more. There were some ffmpeg flags that weren’t being enabled by the latest release of Photoprism. Had to move to the test build. https://github.com/photoprism/photoprism/discussions/4093
While it’s faster than real time now, Photoprism still won’t start streaming until the preview is fully generated, so longer video clips can take a minute or two to start playing. It only has to happen once per file, but it’s still annoying. There’s a feature to pre-transcode video, but it’s only to get in to a streamable format. It doesn’t check bitrate/size until you actually start to play.
I might write a script to pre-generate the preview files, but either way, I don’t think I need to upgrade the server quite yet.
Not yet! But I do have a bunch of different apps running, and I’ve always had to baby it. Looking forward to having more room for activities.
That’s interesting. I’m running a software raid since I’ve been warned of dying raid controllers making your data irretrievable unless you buy an exact replacement. I guess the enterprise folks have that figured out.
Having a little trouble finding details online. Do those two cables going off to the right split off into a bunch of SATA connections?
Yeah, I have an offline backup I do every year in a fireproof safe in my basement. Might open a safe deposit box at some point, but I feel reasonably safe.
Good call on power efficiency. I’ll have to keep that in mind. I think I’m currently drawing around 100W which is mostly the hard drives (the CPU doesn’t even need a fan). I assume that might go up a bit in a new build, but I think the benefits will be worth it.
At my last job, every time they added or removed someone’s key card access, the system would reboot and everyone would be locked out for like two minutes.
We also had two floors that were connected by a fire stairwell, so you needed a card to re-enter the next floor.
At least twice my card stopped working in the middle of the word day while I was standing in the stairwell and I assumed that they just fired me and assumed I’d see my own way out.
Survived three layoffs at that company.