HN user

exsf0859

227 karma
Posts0
Comments42
View on HN
No posts found.

That particular code is idiomatic to anyone who worked with 2D bitmap graphics in that era.

pt == point, r == rect, h, v == horizontal, vertical, BSR(...,1) is a fast integer divide by 2, ORD4 promotes an expression to an unsigned 4 byte integer

The algorithms are extremely common for 2D graphics programming. The first is to find the center of a 2D rectangle, the second offsets a point by half the size, the third clips a point to be in the range of a rectangle, and so on.

Converting the idiomatic math into non-idiomatic words would not be an improvement in clarity in this case.

(Mac Pascal didn't have macros or inline expressions, so inline expressions like this were the way to go for performance.)

It's like using i,j,k for loop indexes, or x,y,z for graphics axis.

Cool hack! Also interesting that the performance is no better, presumably due to the lack of cache.

The first answer on this forum post has what is probably the correct explanation for why the 8088 was chosen:

It was available, had a second source, and was not owned by a competitor.

https://retrocomputing.stackexchange.com/questions/16912/did...

Although ease-of-translation from 8080-based CP/M code was a benefit of choosing the 8086, this was just a nice-to-have, not a deciding factor.

Fun fact: The PowerMac G5 CPU cooling fan controllers have a failsafe mode: If the OS doesn't communicate with the fan controller, the fan controller assumes the worst: that the CPU is switched into the most power-hungry mode possible. To prevent potential damage to the CPU, after about 30 seconds, the cooling fans are cranked up to extraordinarily loud levels.

Apple didn't document how to control the fans. It took Microsoft a while to reverse-engineer the fan controllers. During that time period, using the G5s as Xbox dev kits required putting up with extraordinarily loud fans.

I'll add that initial dev kits are typically released 18 months before the console launch, that means they are built using technology that is one generation behind the hardware that the actual console will use. In the old days before Moore's Law ended, that meant that the console had to have a much more expensive CPU and GPU, to try to match the expected performance of the console hardware. These days, with only marginal improvements in CPU and GPU from generation to generation, this is much less of an issue.

There were tons of alternative hypertext systems before the world wide web.

Major reasons WWW succeeded:

1) Open standard, no license required. (My understanding is that TB-L worked hard to make this happen.)

2) A forgiving text-based format that was trivial to author, serve, and display. And evolve with forward/backwards compatibility.

3) One-way links. (Many other HyperText projects were hung up on bi-directional links.)

4) URLs didn't require any centralized authority other than already-existing DNS.

He's covered the decline of BBBY many times in his newsletter, explaining the financial details and shaking his head each time.

His Monday April 24th, 2023 newsletter, titled "Bed Bath Moves Beyond", covers the situation once again. It ends:

"Bed Bath saw that its retail shareholders wanted to throw their money away, and that its sophisticated lenders wanted to get their money back, and realized that there was a trade to be done that would make everyone, temporarily, happy. So it did the trade. It’s amazing. The lawsuits are gonna be great."

Besides animation and games, Flash was also used for streaming video and video conferencing.

iPhone customers were so desirable that, over time, the video streaming sites had to support Apple's video streaming format. They would have also supported Apple's video conferencing app, but I think Apple was unable to open-source the protocols for the video conferencing format, due to patent issues.

I also felt Tim was tempting fate when he said "You can import directly from a self published URL. Of course it's the responsibility of the publisher to never change the semantics of that code in an incompatible way."

I just can't imagine that working at scale. I bet they add semantic versioning support pretty quickly.

Thanks for this link, very helpful in understanding the Verse language!

Verse-as-a-scripting-language-for-a-game-engine is an interesting experiment. The million script writers who use it are not going to have any understanding of the functional language underpinnings. They're going to copy-and-paste until things work. There's going to be a lot of superstition and cargo cults.

I guess Tim Sweeney has a long history of successfully using exotic custom scripting languages in game engines, from ZZT to various generations of UnrealScript. So he probably knows what he's doing.

In my opinion Draw Things is the best stable diffusion app currently available for macOS/iOS. It's free, it is available in the App Store, it manages downloading models and weights, it supports a wide selection of popular models as well as custom weights, and it supports inpainting, text2image, and image2image.

It has some oddities: it uses a sqlite database to store generated images rather than the more traditional files, and the UI is idiosyncratic. You have to follow the author's twitter feed to learn how to use the advanced features.

That's shortsightedly frugal accounting.

Developing a working Starship is worth a lot to SpaceX. They could go deeply into debt on the first six launches, and make it up later.

Those quotes are entirely compatible with "not really".

Chris is talking about the Sooner: https://www.androidcentral.com/look-back-google-sooner-first.... It was called Sooner because it was going to come to market "sooner" than the other, more advanced, Dream prototype. After the iPhone announcement Sooner was canceled, in favor of the "Dream" prototype, which eventually shipped in a modified form as the G1.

The _software_ difference between non-touch Sooner and the touch-capable G1 were relatively minor. Same OS, same view system, same application framework.

As I recall, Chris's role at the time was as a UX focused engineer, so perhaps from his POV it was a massive redesign. But if you consider Android as a whole, relatively little changed. I recall the apps being pretty easy to port over to support touch. (Moving to a bigger screen helped offset the problem of having to make the buttons way larger.)

It's easy to write an app that displays arbitrary graphics at 1600 nits on the MacBook Pro. You just have to use the Metal API, an "extended" color space, and a Float colorPixelFormat.

I'm not sure that this blog post author is trying to accomplish, possibly they are trying to use some other API besides Metal?

I think MS went open plan starting in '07 with the "The Commons" campus. Some parts like Bungie were open plan much earlier. (The Bungie team demanded it, they felt it improved collaboration.)

But before that, regular MS engineers were often "temporarily" doubled up or tripled up in their offices, so going open plan wasn't as much of a difference as it might have been.

In the old days people's computers and monitors were physically much larger, you needed multiple computers to multi-task, and you needed lots of paper documentation. One reason we're open-plan now is that people can be very productive with a chair, laptop, and 24" monitor.

Back in the day, I saw VCS game developers use two techniques:

1) they would start with a working kernel from an existing game, and incrementally modify it to create a new kernel for a new game.

2) they would code 2-dimensionally on large sheets of graph paper, where each cell corresponded to both a 6507 CPU cycle and a portion of the horizontal scan line.

By writing out the instructions this way, they could visually check that the code would execute at the correct time.

AoC won't teach you anything about OOP.

The problems are designed to be solved in Python with less than 100 lines of code, by taking advantage of Python's extensive library of data structures and algorithms.

South Bay homelessness has adapted to car culture. A lot of South Bay homeless live in cars or campers permanently parked on city streets adjacent to parks, school fields, and/or business parks. I think most South Bay cities have a "you have to move a vehicle that's parked on the street every 3 days" law intended to discourage this, but it doesn't seem to be enforced.