Hacker Newsnew | past | comments | ask | show | jobs | submit | pan69's commentslogin

"We're not competitor obsessed, we're customer obsessed. We start with the customer and work backwards." - Jeff Bezos

Backwards indeed.


The dropshippers are the customers of Amazon’s platform, in a way…

Not super familiar with Azure, but didn't they already have Cosmos DB? Or is that just MongoDB under the hood?

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.

https://aws.amazon.com/codecommit/


I don't have much confidence in it. I moved away after this.

https://aws.amazon.com/blogs/devops/aws-codecommit-returns-t...

The branch view and PR UI is terrible last I used.


Ah, right. I never knew it went away (sott of) then then came back. That is kinda worrying indeed.

Great write up. Reminds me of Cosmodoc, which is similar source but analyzes Cosmo’s Cosmic Adventure instead of Commander Keen.

https://cosmodoc.org


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.


Yes, and if you want to go program for some other platform? The limitations and complications are completely different.


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);
    }


I'd be surprised if the compiler didn't make that optimisation on its own.


Possibly, but always check the assembly.

The even faster version, opts aside, would be to initialize the pointer at y*screenRect.w and ++ at every loop to avoid the addressing arithmetic.


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.)


I suppose the argument being made is more about the meaning of human made rather than GenAI.


Israel?


   import {signal} from "@angular/core"
   import {form} from "@angular/forms/signals"
So, signal comes out of core and form comes out of forms/signals. This must be a terminology thing I don't get.

Other than that. Looking forward to try Angular again after a decade of absence. I think it looks pretty good.


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.


primitive


There are a lot of ways to do Forms in Angular. I assume that's importing the new "Signals" based form.


If not an abstraction, how would you describe it then?


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."


AI isn’t someone. And sure instead of building X I can of course bring in Y that abstracts away X.


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.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: