Does anyone has experience with AWS CodeCommit? It might not be what OP is looking for but since we're talking about moving away from GitHub. Personally I already pay for GitHub so I don't mind paying for something else. Just wondering if anyone has experience to share.
I think GP is referring to EGA which also used address 0xA0000 but you had to program it in it a planer mode of 16 colors out of a palette of 64. VGA provided backward compatibility with this but introduced the 256 color modes with mode 13h being the linear addressable 320x200 res mode, however this mode sacrificed 3/4 of the video memory. This mode was also referred to as "chained" mode as it chained all 4 bitplanes together for convenient linear addressing. There was also unchained mode, sometimes referred to as mode-x which allowed you to access all 256kb of video memory, resize the virtual screen, page flipping, etc. at the cost of compute overhead. Lots of tradeoffs to be made in those days. Some amazing looking 16 colors VGA games were produced in the early 90s, one that comes to mind is Gods by Bitmap Brothers.
It's certainly the most rudimentary. Small optimisation on the inner-loop would be to pre-calculate the scanline offset before going into the pixel loop:
int s = y*screenRect.w;
for (int x = 0; x < screenRect.w; x++) {
pixels[s + x] = argb(255, frame>>3, y+frame, x+frame);
}
Certainly check the assembly, but loop invariant code motion and strength reduction are basic optimizations. C compilers tend to be good at optimizing indexing patterns even at -O1.
Take a look, GCC and Clang go further than these suggestions by adding screenRect.w to the pointer each iteration to avoid the multiplication: https://godbolt.org/z/YfroqK7T6
Writing anything but pixels[y*screenRect.w + x] in an attempt to be faster, without checking the assembly first, is obfuscation.
(For what it's worth, you can beat the compiler by using *pixels++. I didn't profile the code to check it actually was faster in practice however.)
Signals are a privative data structure in Angular, hence core. Signal-based forms are part of the Forms module. You aren't using forms, you don't get the overhead.
I don't know? It's an agent, an automated contractor, a black box that produces work. When you pay someone to help write your app, you don't call that an "abstraction."
I think the reasonable way to look at LLMs is similar to how you'd work with junior developers. They can churn out code, but do need constant guidance. Of course, (some of the) real juniors will eventually become seniors. It remains to be seen if LLMs will.
Backwards indeed.
reply