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

The way he animated points with an increasing z value made it click for me. Now, when I look at the formula it makes sense. The larger the value of z, the smaller your projected x and y will be. This checks out because things get smaller as they move farther away. Something that’s twice as far away will seem half as big.

The rotation formula eludes me.


> The rotation formula eludes me.

Interestingly, in a way, rotation is less mystical than the perspective projection. The rotation is linear: x' = Rx, but the perspective projection is non-linear.

This is where things become fun. Next up are homogeneous coordinates or quaternions. Takes a few years of your life to actually enjoy this though :)


I get how quaternions beat Euler angles, but I still can't visualize the damn things 8-/


> I get how quaternions beat Euler angles, but I still can't visualize the damn things 8-/

And spin groups beat quaternions since they work in every (finite) dimension. :-)


I recently appreciated this vid explaining that 3D translation using the traditional 4x4 transform matrix is performing a shear operation in 4D.

https://youtu.be/x1F4eFN_cos


Nonsense. Open the console on l any mediocre webpage and you’ll see a stream of JavaScript errors. But it’s still working. One script crashes? Doesn’t matter to any other script. Unhandled exception? Rest of the app is still working fine. Hell, that button may work if you just click it again.

And CSS syntax error causing only that single line of code to be ignored while every other line of code works fine is the very definition of fault tolerance.

What else could you possibly want?


All that is very good. But as a back end guy dabbling in front end, it would be more welcoming if JS was a little intuitive. I'm very thankful for LLMs now helping with that a bit, but honestly even they seem to fail at JS more so than other languages, at least in my experience so far.


Much of the challenge in JS today is due to unnecessary packages, build systems, and workarounds found throughout blogs and forums which were reasonable 5-10 years ago but aren't really needed today. Unfortunately, LLMs tend to output old-fashioned JS.

With (almost) everyone using an up-to-date standards-compliant browser, you can sidestep most of the complexity and weirdness by just using the standard library and ES Modules (instead of frameworks, libraries, build systems etc.) and an IDE with good intellisense + inline documentation lookup.

MDN documentation is good and up to date overall, but I'm not sure there is a good overview/entry point resource that is up to date as of today... maybe I'll have to write it!


I don't know if my experience is any guide but for me, coming from C++, I hated JS (~2008 is when my job required it). I kept trying to use it as C++. Over time I learned to love it. I stopped trying to make it C++ (or Java/C#, etc...) and actually embraced it.

Now the tables have turned (to some degree). I can write programs in JS in 1-3 days that take weeks or months in C++/C#/Java

Some of this comes from the browser environment. I get portable 2d/3d/gpu graphics, portable audio, image loading, video playback, and complex text rendering and layout, portably and for free. Back in C++/C# land, every new project is a chore of setup and fighting with linkers and build options etc. I post some code in a github repo with github pages on, or in some JS playground like codepen, and instantly share it with all friends regardless of platform.

Another comes from the language itself. I can often generically wrap existing APIs in a few lines of codes, things that used to take days and/or large program refactors to do in C/C++.

And, the tools are pretty good, Chrome DevTools are as good or better than my experience in C/C++. Right now, when I try to debug in C++ in XCode, std::string shows nothing and containers are inscrutable. I'm sure that's fixable. The point is, I shouldn't have to fix basic stuff.

Now of course I'm using TypeScript for some projects and the types help but I'm often glad for the escape hatch for more generic code. It takes me 15 mins to write some generic system in JS and then 2-4hrs to figure out how to get TypeScript happy to type it. As an example, a function that creates a new TypedArray of the same type as some src array. Easy to write in JS. Harder to type in TS. That's effectively part of the same issues I have in C++, the part that stalls progress, that I don't have the escape hatch for generic solutions.

PS: Yes, it's not that hard to type a generic TypedArray function in TS. But it's certainly a learning curve, or was before LLMs, and I've had to type much more complex functions that required no typing in JS


I’m browsing around on this site and don’t see any indication that this is satire. I think your initial reaction is correct.


Congratulations! Beautiful design, very simple and appealing. The onboarding flow filled me with optimism, which I appreciated.

That said, I bounced off at the pricing. The $30 lifetime price isn’t something I find inherently too expensive, but I need to see if the app works for me before committing to it. It was weird that if I went forward with the free trial it would automatically put me on the exorbitant $3/week price. That option was repellent and got me worried about forgetting to either cancel or make the purchase. Compounding the issue was uncertainty about whether I even _could_ make the lifetime purchase after accepting the free trial.

Then I lost momentum and started thinking about how I was about to drop $30 on an app that’s just some HN poster’s 4-month project, and I have no clue how crippled it will be if (when) you decide to shut down the API.

If you’re confident the app itself is habit-forming, I’d recommend just letting people use it for a couple weeks and then hitting them with the paywall. And when you’re asking for that kind of money and using the word “lifetime”, I’d describe how you’re going to guarantee that to the user, even if they’re the only person who ended up buying your app.

Edit: Now I’m stuck on the payment options screen with no way to delete my account. Not happy about that.


I actually got stuck with a bug in the flow. "What drives you" I couldn't seem to move on from this step, no button visible (maybe my old device for factor (iPhone mini 12)

But I also would have bounced on the "free trial, auto payment after" I understand the thinking around them, but for me it's just not a pattern im ever going to opt into. It feel predatory, you will probably forget and then ill get some amount of "months" off you. Like gym memberships.


FWIW I have a few app ideas that are about lifestyle / personal system. and i've thought about pricing strategies etc, specifically to balance "the Ick" with what I know are proven industry standards that Do maximise conversions & profit, and what I think is more personally palatable. (no real word experience though)

I would be much more likely to convert if the "trail" as months maybe years instead of days or weeks (this is a lifestyle thing after all, if customers find it genuinely useful and buy into the system for months then $30 a year is nothing)

OR

free-trial followed by locked out. No "automatically start billing"


Thank you for a thorough review. It's very helpful honestly. You raise some valid concerns I will make the following changes.

- I will add an option for the user to delete their account upon hitting the paywall if they don't want to continue. - I didn't want the app to be free to begin with as it doesn't attract serious users and also because I'm an indie maker and free users is not something that I can ultimately afford at this current stage. - You're right, I should have a way for the user to trial the app and then pay once instead of the trial being on the weekly subscription only.

As for guaranteeing lifetime access, a lot of web based products offer lifetime access and I guess it's just a matter of trusting the maker if they will support it. For my particular app I know that I've been involved in the productivity space for quite some years and only now making an app that suits my needs. I imagine myself using this for all the years to come and if I stop using it, it's self hosted on a server I own and I will keep it live forever. If the user doesn't trust that then that's completely fair and fine. No issues with that.

Lots of useful feedback, thanks again for the write up! Still building and learning and trying to be as genuine as possible.


I don’t know about that. Flying under bridges has got to be one of the most popular simple joys available in a flight sim.


Which is why KSP was updated to include a skyway near the launch site. But if you are flying under bridges, you are probably busy looking elsewhere to notice the less-than-photorealistic textures under the road deck.


I made a simple web game using Rapier that takes advantage of the deterministic physics to prevent cheating by running physics and computing win/loss states on the server (though I stupidly haven’t implemented the high score board yet).

It’s an homage to the old Taito electric arcade game “Ice Cold Beer”

https://beerbubble.xyz


Nobody would pay to supply to the grid. If it came to that, panels would have an automatic shutoff, or some device that burns off excess electricity by doing pointless work.


It is called negative prices and it is actual problem

https://www.euractiv.com/section/energy/news/eu-must-address...


No, you misunderstood the interface. While they certainly encourage you to use the weird biometric scanner it's in no way required. However you do have to have the Amazon app installed on your phone. When you open the app there's an option to reveal a QR code which you scan at the turnstiles.


I did not. Had the app open, and QR code on my screen as I had previously done so many times before at Whole Foods. There was literally no device resembling a barcode scanner on the turnstile.

PS I also have a ton of experience with barcode printing and reading. As a matter of fact, software I have written has printed over 30M unique QR Codes for track and trace purposes.


The QR scanner should be on the turnstile itself.

It’s that little white thing next to the palm reader. It even has an Amazon app icon.

https://www-ocregister-com.cdn.ampproject.org/i/s/www.ocregi...


Thanks for posting the photo. To my recollection there was only the palm scanner, no white box to the right of the palm scanner at this store. Maybe they were running an A/B test. I went back outside to read the instructions on the signs and they did not align with the reality inside.


Sounds like Amazon deliberately made a confusing interface to trick people into revealing more biometric data than necessary. I wouldn't say that's any better than just making it a requirement.


Try using the thermal limiting feature in the right-hand battery menu. Any game I’m playing, I bring it down as far as I can without unacceptable impact to performance. Often I find that I can set it to 7-9 and the fan goes nearly silent without any major performance impact.


NvChad is excellent. I recently finished converting my older .vimrc-based configuration to an entirely lua-based one on top of the base NvChad setup and it‘s just perfect.


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

Search: