HNHacker News
TopNewBestAskShowJobs

Hawxy

709 karma · joined December 2, 2018

submissionscomments
Hawxy··on Does anyone else finds AWS and other Amazon services overly complicated?
> CDK is just another way of expressing the same things as terraform and cloudfront but using a framework which is opaque.

It also involves writing many, many less lines of code than Cloudformation/Terraform thanks to the excellent abstractions it bundles in. Your example of writing "2 days' worth of YAML" is less than 120 lines of Typescript in CDK. You could even skip that and just npm install the AWS solutions construct for this scenario if you have literally no idea what you're doing: https://docs.aws.amazon.com/solutions/latest/constructs/aws-...

Hawxy··on Ask HN: Examples of Top C# Code?
I'd argue this library design is fairly ancient in C# land. The reliance on static configuration values goes against modern DI-centric design + integration patterns. It also doesn't have a central entry-point for discoverability and instead expects each internal client to be used directly.
Hawxy··on React I love you, but you're bringing me down
Easily Vue 3, the dev tooling/xp + docs are much better over Vue 2.
Hawxy··on React I love you, but you're bringing me down
> Most of the other ones considered weren't quite there yet

From what I recall, quasar managed to update very quickly.

Vuetify is currently in Beta for Vue 3 as they went with a greenfield rewrite to deal with tech debt. I rolled it out to a production site recently and it works well.

BootstrapVue completely dropped the ball, despite the corporate sponsorships the original maintainers went missing for a whole year & bailed. It got new maintainers at the start of the year, but they've been delayed by current geopolitical events.

Hawxy··on Ask HN: Is there a developer laptop that does not suck and is not a Mac in 2022?
> Additionally, the Dell Precision line (the business workstation-replacement line) is exceptional for development

We got one of the first batches of 11th gen models of the Precision. The glue around the edge of my display wasn't done correctly and it was falling apart. The top layer of my keyboard has also popped off in various spots and is currently sitting warped on my desk. Can't say the QA is very good.

Hawxy··on Flight Simulator 2022: Ultra Realism on RTX 3090 with $100 Graphics Mods [video]
I think the texture issues are due to the underlying plane model being a port from PMDGs previous releases on older simulators. If you look at a greenfield plane built specifically for MSFS like the Fenix a320 the texture work is immaculate.
Hawxy··on .NET 6 is now in Ubuntu 22.04
> MS will put some arbitrary restrictions on .net or some part of its toolchain.

I doubt this. Microsoft's monetary strategy around .NET for a number is years has been "look at how easy you can deploy/run/monitor your .NET app on Azure!", I don't see that changing to anything else unless there's a massive change of priority and executive leadership at Microsoft.

Hawxy··on The Case for C# and .NET
> Sorry, but OmniSharp sucks

I agree. This appears more like an attempt to get the most value (integration of proprietary Visual Studio features that devs want) into the VSCode extension as quickly as possible.

Said proprietary libraries are likely not able to be easily open sourced for a variety of possible reasons, so a closed source LSP bridge was the compromise the teams came to.

Hawxy··on Tailscale ate my network (and I love it)
There's also a new port forwarding parameter on session manager so you can easily connect to a private RDS via a bastion host.

https://aws.amazon.com/about-aws/whats-new/2022/05/aws-syste... https://docs.aws.amazon.com/systems-manager/latest/userguide...

Hawxy··on WebAssembly in my browser desktop environment
> Which is why nobody runs Java, C#, Python, Elixir in WASM for anything other than a mockup experiment.

We run C# Blazor in production, as do a number of local firms. For the record it's very pleasant to work with.

Hawxy··on Updated Okta Statement on Lapsus$
Auth0 is run as an isolated subsidiary in its own infrastructure, with the old CEO still overseeing operations. Due to the massive difference in Okta & Auth0's implementations I don't see that changing anytime soon.
Hawxy··on .NET Myths Dispelled
Was this the first time using .NET for most of your devs?

> LINQ supports interleaving DB operations with not-db operations

This hasn't been the case since EF Core 3.0, it will throw an exception if something can't be translated to prevent this problem. Prior to this (EF Core 2.2), a warning would be spat out if an in-memory operation occurs. Due to this, I assume this project was a number of years ago.

> The logger would log the message and the affected class in different lines.

The default logging format is unfortunate, although it can be made a single line in .NET 5 onwards. This issue would've been easily solved by using Serilog, swapping out the built-in logging with a few lines of code. I don't know the last time I encountered a .NET dev that wasn't at least aware of Serilog as an alternative.

Hawxy··on 20 Years of .NET
> as there’s also no definitive resource for a newcomer on what has changed that would make older documentation inaccurate.

The two pages you want are: https://docs.microsoft.com/en-us/aspnet/core/migration/50-to... and https://docs.microsoft.com/en-us/aspnet/core/migration/50-to...

Both should cover the majority of scenarios. The main takeaway is that everything you usually configure in `ConfigureServices` now hangs off `builder.Services`, and everything you'd configure in the middleware pipeline `Configure(IApplicationBuilder app)` is available after you call `var app = builder.Build();`.

I'll note that the change to the Minimal API was only in the project templates, so the old model does continue to work without any breaking changes.

Hawxy··on Vue 3 as the New Default
> including officially supported libs like the Vue-Router/Vuex was ready

FYI this part isn't true, both vue-router and vuex were updated in parallel and were ready for Vue 3's release.

Hawxy··on Vue 3 as the New Default
Same. Vuetify v3 sadly got delayed yet again to Feb Beta/May GA.
Hawxy··on Microsoft Edge GA on Linux
That neocities site isn't exactly an authoritative source. They consider a company holding any kind of information about you (even for legitimate business purposes) as "spyware". It's the tech version of paranoia and should be taken with a grain of salt.
Hawxy··on .NET Hot Reload Support via CLI
> even newest .net 5 is much more cumbersome compared to eg. golang (important for startups).

FYI .NET 6 + C# 10 has a ton of work invested into removing the "enterprise boilerplate" experience and making the language and frameworks more akin to node or go in terms of effort/LoC required to spit out a program:

https://docs.microsoft.com/en-us/dotnet/core/tutorials/top-l...

There's also a few epics that are specifically focusing on .NET as a compelling cloud framework: https://github.com/dotnet/core/issues/5397

Hawxy··on Tinyprinter.club
> privacy policy of a closed-source product that will be collecting and selling your data

I know this the general HN opinion of free & closed software, but I think this is one scenario where it doesn't ring true. On top of Discord's privacy policy explicitly disallowing/negating data selling, the CEO, CTO and CFO have all made public statements that they have no interest in the monetization of user data. The CTO has suggested that they're at least breaking even with Nitro subscriptions, and they've shrugged off acquisition attempts, instead wishing to go public at some point.

The risk of Discord performing commercial suicide via a data selling scandal appears exceptionally unlikely.

Hawxy··on How the .NET Foundation kerfuffle became a brouhaha
I think the only time I've found people this far off the main track is users that only know C#/mono coming from Unity Engine.

> targeting mono under nginx on linux...no support for monodevelop on windows

Because you should have never been anywhere near mono.

Even a year ago, if you followed the main .NET documentation it would have directed you to install the .NET 3.1 or 5 SDK on to your linux environment and get setup with VSCode. It's the first step in the hello world tutorial: https://dotnet.microsoft.com/learn/dotnet/hello-world-tutori...

> no clear guidance around using DAPR without paying microsoft (which i guess is fair, but being vendor locked before I even start is a rough look)

Dapr is not a Microsoft product. Microsoft does not offer commercial support for it. There's docs for the .NET library on the Dapr website, along with various community support channels available.

> I've found bootstrapping python microservice development on windows to be quite well supported. I didn't find that with .net.

Bootstrapping a worker service or ASP.NET Core on windows is either a few clicks in VS, or a one line command via the dotnet CLI.

Hawxy··on Terraform vs. AWS CloudFormation
I recently did a comparison of Pulumi and CDK. Pulumi's AWS abstractions are sadly nowhere near as good as CDK patterns, resulting in far more code needing to be written for the same result. I've also noticed that Pulumi seems to have a hard time accurately tracking state for AWS resources.

Pulumi does work very well in the Azure space as Azure resources are already well abstracted.

Hawxy··on Asynchronous Programming in C#
> most .NET programmers who I knew, would just hammer at things to make it work.

I hope the examples you listed are facetious or from the very early days of async/await in C#, otherwise I'd seriously question the skillset of the supposed .NET programmers.

Visual Studio is fairly good at handling incorrect use of async/await, and in all of the examples you listed, the actual solution should've been "read the IDE error, hit the bulb and apply the automatically suggested fix", not "ignore the IDE error and smash keyboard until it works".

ConfigureAwait usage is also not something you'll usually see outside of library code in modern C#.

Hawxy··on Minimal APIs at a glance in .NET 6
I've recently started using the new .NET 6 templates and honestly I don't miss the OOP boilerplate. Yes it's a bit of a shock at first, but you quickly realize that having your ASP.NET Core startup code split into two files and three functions has no real-world benefit.

I'll still be using traditional controllers for my endpoints, however the syntactic sugar in C# 10 does improve the experience by reducing nesting and noise in general (file-scoped namespaces & implicit global usings).

Overall I'm pretty happy with it.

Hawxy··on Performance Improvements in .NET 6
> An often-asked question is how to synchronously wait on an async method. The usual answer is "don't do it" like it solves anything. But async methods return a Task and the official examples for tasks tell you explicitly to use Wait() method to wait on a task.

This is mostly the fault of the TPL documentation being written eons ago. I'd recommend David Fowler's async guidance for a modern take: https://github.com/davidfowl/AspNetCoreDiagnosticScenarios/b...

`.GetAwaiter().GetResult()` is generally considered the best way to do it if you must do sync over async, but in modern code it should almost never be required.

> I tried to convert a project to NRTs and gave up, reverted everything. I haven't seen a NRE in years :p NRTs introduce a lot of edge cases, with a lot of syntactic noise to cover them and still guarantees nothing (unlike a proper Optional type would).

I've been working on updating a number of libraries to support NRTs with success. I find it's a good for developer ergonomics so you know what can return/be null and what cannot without needing it laid out within xml comments or documentation. ASP.NET Core 5+ will also automatically validate request payloads depending on a type being nullable or not. NRTs will be enabled in project templates by default with .NET 6.

Hawxy··on Stop using Zoom, Hamburg’s data protection agency warns state government
WebView2 has been out for ages, it released with the new edge browser. You can launch what you like in it from your own application.
Hawxy··on Kaspersky Password Manager: All your passwords are belong to us
Wouldn't be a HN password manager thread without someone randomly plugging Bitwarden when it has nothing to do with the actual topic :)
Hawxy··on Stripe Identity
> have realized that the term "bot" is being used in a very nonstandard manner.

For some additional context, Discord bots aren't that far off from IRC bots.

You invite a bot to your server, you give the permissions and channel access you want it to have, and it receives various events over the web gateway such as "Message Received" of which the bot developer can use to build elaborate command systems and various other features.

Prior to the must-be-verified limit of 100 guilds, Discord had a serious issue with scam bots that would mass-message users promising free bitcoin or "insert free thing here", and usually one the "steps" was adding the bot to an additional guild. This resulted in the bot quickly cascading past 100 guilds within a matter of hours before Discord support had even noticed the problem.

Once joined to the additional guild, it would scrape as much of the server content as it could and usually dump it on some sort of "discord user tracker" platform.

On top of preventing joins past 100 guilds, verification is also required for some sensitive capabilities such as querying the entire member list.

Hawxy··on Playwright for .NET is now stable
> such as multi-domains aren't supported

Thankfully this is being actively worked on: https://github.com/cypress-io/cypress/issues/944#issuecommen...

Hawxy··on Terraform 1.0
FYI this has been supported in CDK for a few months now. See the CrossAccountZoneDelegation at the end of this section: https://docs.aws.amazon.com/cdk/api/latest/docs/aws-route53-...
Hawxy··on .NET for Beginners (2020)
Just a note that this isn't true anymore. All the official C# tutorials default to VSCode + dotnet CLI. The Web framework tutorials also let you switch instructions depending on what editor you're using.
Hawxy··on .NET for Beginners (2020)
> However this sentence made me inadvertently laugh, because it captures every bit of confusion I had

Haha, for further context, .NET 5 is the SDK + runtime. ASP.NET Core is the default Web framework that includes a ton of out of the box functionality.

I'd highly recommend taking a read of https://docs.microsoft.com/en-us/aspnet/core/introduction-to..., which links to the relevant tutorials for your scenario.

← PreviousPage 3 of 5Next →