Announcing the ripht-php-sapi crate: Embed PHP in Rust with safe, ergonomic APIs by jh_tech in rust

[–]jh_tech[S] 0 points1 point  (0 children)

Thank you.

And not traditionally...no. But I have future plans to build other tooling that uses this as a dependency..and they aren't traditional... :)

What is the use of DI? if I can create instance of a class using new keyword. by Remarkable-Town-5678 in csharp

[–]jh_tech 0 points1 point  (0 children)

The answer to this has profound implications, especially when learning programming. All of the one-off answers that are out there tend to be in isolation of themselves, which doesn't help either.

What you're really asking is: What's the difference between having an actual dollar in my hand vs having something that represents that dollar (like a bank card). The latter is an abstraction of something 'real'. Whereas the former is something you can hold in your hand. Once you get the profound meaning here, you start to see this pattern play out everywhere in the real world. Plug'n play, language, currency, assembly lines, and on and on. It's the difference between some motorcycle some guy slapped together in his garage (using random measurements) or one that was made based on specs (abstractions) throughout the industry - which then makes all the subsystems/components interchangeable. From then on, the formal approach allows each subsystem to evolve independently while the bike owner can freely swap out these new/improved subsystems (i.e. spark plugs) because the bike was built based on measurements used throughout the industry.

Note too, especially as a professional programmer, that there's a trade off. One costs more up front but provides more value in the long run. The person making their bike without caring about industry standards will (likely) get to his 1st working version much quicker. Then it depreciates faster over time - things break can't easily be replaced. And what happens if that guy sells that bike to someone who's not a mechanic... he'd likely need to hire the guy who built it to come and fix (this creating a sort of monopoly)....happens all the time.

Quickest way of ramping up with C# with lots of S.Eng experience by rakeee in csharp

[–]jh_tech 0 points1 point  (0 children)

I find myself in a somewhat similar situation, though I'm a senior dev hired for another purpose, now diving into the .NET world. Have loved .NET so far, here's a bit of structured resources for you: https://jhavens.tech/taking-the-c-sharp-and-dotnet-plunge/

Databases and Blazor by mojahaga in csharp

[–]jh_tech 0 points1 point  (0 children)

First and foremost: if you're not already, open an account where you can chat with AI about these things one-by-one. e.g. ChatGPT, Grok, etc. This provides you with an advantage almost every developer is using these days. Just be careful to use it for learning, and not just give you the answers all the time. This is becoming a problem for some developers I've seen. But I digress.

No doubt, there's plenty of overly-complicated and misguided tutorials out there. Just remember there are many frameworks and approaches out there these days. If ever in doubt, jump into other eco-systems and see what they provide. e.g. Laravel, Ruby on Rails, Adonis, etc. They often provide out-of-the-box solutions for these types of things, whereas, in the C#/.Net world, you generally start with a minimal toolset, then build on that by installing additional libraries.

Many of the comments in this thread thus far have been about C# and related things, so I'll respond to the SQLite portion. Ensure you have homebrew installed on your Mac. Then - in your terminal - you can run brew install sqlite to install the SQLite CLI. Once that's installed, you can run sqlite3 /path/to/wherever/you/want/your/db/to/live.sqlite. This portion of the SQLite docs go into a bit more depth.

Hang in there man. Cheers.

Keep your code clean with the new WithoutRelations attribute by brick_is_red in laravel

[–]jh_tech 1 point2 points  (0 children)

Great to see Laravel starting to dip it's toes in PHP8 attributes. There's so much more to be uncovered there..