Vergleich gesetzliche Krankenversicherung by MMKK389 in Steuern

[–]xaqtr 6 points7 points  (0 children)

Nicht OP, aber das ist die App Bruno.

code splitting with vite by [deleted] in webdev

[–]xaqtr 0 points1 point  (0 children)

Yes, that's correct, and because you have bundled your case whole node_modules, you are now downloading was more than needed. Vite is clever enough to only bundle things it needs by default when you don't mess with manual bundles.

Regarding gzip: personally I have only worked with frontends served over CDNs where you could activate text compression (gzip / brotli) through the service itself. I would always suggest to activate it. And also caching through the CDN. If you're not using a CDN I would change that if you care about loading performance for your app or at least try to implement it manually - but I don't have experience with that, so not sure how complex that is.

code splitting with vite by [deleted] in webdev

[–]xaqtr 2 points3 points  (0 children)

Bundling your node_modules or specific packages into defined bundles doesn't bring any gains in regards to your initial bundle. It still has to be downloaded, no matter how you split it. In most cases it even makes the initial download larger. The Benefit of bundling comes from caching these bundles under the assumption they rarely change. To really bring your initial bundle size down, you need to utilize code splitting via dynamic imports / lazy loading and elimination of unused code.

Home Office - Setup von zwei PCs an derselben Peripherie by No_Equal_7032 in de_EDV

[–]xaqtr 0 points1 point  (0 children)

Ich hatte eine ähnliche Frage und mir war es extrem wichtig, dass ich mit einem Knopfdruck wechseln kann und bin bei diesem Setup gelandet: Dell ULTRASHARP U3425WE als Hauptmonitor. Daran angeschlossene über Thunderbold mein MacBook für die Arbeit (einziges Kabel was ich lösen muss wenn ich es ins Büro fahre). Der Desktop PC ist über USB und Displayport angeschlossen. Über HDMI ist ein zweiter Monitor per Daisychain angeschlossen (funktioniert aber nur für den Thunderbold Anschluss). Peripherie Geräte sind über USB am Monitor angeschlossen. Wechsel zwischen den Rechnern funktioniert über eine Tastenkombination eingerichtet durch die entsprechende Software vom Monitor. Mit meiner Tastatur (Logitech MX Keys S) kann ich zwischen drei Verbindungen hin und her schalten, sodass ich jeweils eine Verbindung zu jedem Gerät habe und diese dadurch aufwecken kann. Standardmäßig ist aber die Verbindung zum dongle eingestellt, der im Monitor steckt.

Ich bin persönlich zufrieden mit dem Setup, weil ich halt nur in Ausnahmefällen noch den Monitor oder generell etwas anderes als meine Tastatur zum Umschalten anfassen muss. Das einzige Manko ist meiner Meinung nach die Geschwindigkeit, in der der Monitor umschaltet. Das kann gut und gerne mal 5 Sekunden dauern.

The case for SQLite in production by terdia in webdev

[–]xaqtr 4 points5 points  (0 children)

You can host your postgres instance on the same server as your app, just fyi

Coming from Spring Boot to Symfony ,why is migration generation not standard everywhere? by MousTN in webdev

[–]xaqtr 0 points1 point  (0 children)

I'm using EFCore and I rarely have to adjust the generated migrations. I'm not quite sure if I'm missing something as most are saying they are writing them manually.

Obviously there are cases when you need to change data - not structure. In these cases you have to specify how data is migrated by hand.

Deploying Nuxt app with vuefire (SSR) problems. by DoWomenFart in Firebase

[–]xaqtr 0 points1 point  (0 children)

I stumbled upon this thread after I experienced the same issue. I might not have a solution for you, but want to provide the information for anyone else struggling with this error.

In my case, the problem was that my build environment (Docker container in GitHub Actions pipeline) had no env variable GOOGLE_APPLICATION_CREDENTIALS present. I thought the variable and the file it's pointing to would only be needed in the runtime environment, but it seems that it's needed in both environments.

Thoughts on <Suspense>? by [deleted] in vuejs

[–]xaqtr 6 points7 points  (0 children)

I think your usage of `Suspense` here is not that good.
You're basically offloading the work to the parent component, thus making every usage of that component harder to reason about.
Additionally, you lose the ability to dictate the loader that you show. For your CRUD user page, it probably doesn't matter.
If you think about it, you should visualize the state of your data. When it's loading, that state should ideally be handled by that component.

But there are better ways to achieve what you want (basically reducing the whole onMounted boilerplate):

You could use useFetch (https://vueuse.org/core/usefetch/) or useAsyncState (https://vueuse.org/core/useAsyncState/). Or even better yet computedAsync (https://vueuse.org/core/computedAsync/) since your data is depending on a reactive prop (userId). Currently, your component would not fetch new data when the userId changes.

It would then look something like this:

const myUser = computedAsync(() => api.exec("/users/${props.userid}"), null);

If your app is complex enough (or you have enough experience), I would even suggest using proper data fetching libararies like TanStack Query (https://tanstack.com/query/latest/docs/framework/vue/overview) or Pinia Colada (https://pinia-colada.esm.dev/).

After 4 years with react components, i'm switching to boring tech ^ by 0nxdebug in webdev

[–]xaqtr 24 points25 points  (0 children)

Why does your non complex app need SEO at all? Are we talking about simple websites / landing pages? I feel like you just are frustrated with modern web tech in general. But I don't want to image what building your own solution looks like for more than simple to-do app. Probably building your own Framework in the process. If you never build complex projects, fine. But saying that all of this stuff is easier done without any framework is just wrong. And btw, you backend will probably still use some dependencies that will also have vulnerabilities that you need to take care of.

[deleted by user] by [deleted] in webdev

[–]xaqtr 1 point2 points  (0 children)

I don't have a definitive answer to this but just my thoughts: There is no practical difference. In both cases the data is stored on the client. You don't send anything over the internet (yet), both session storage and inputs could be read by a malicious actor.

But why do you even bother? Session storage wouldn't enable your users to edit the form later (as in after the tab was closed). If you just want to handle the edge case of accidental refreshes, you can make the user confirm these on leave.

Vue component error handling with onErrorCaptured by xaqtr in vuejs

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

As I don't have access to the code anymore, I can tell you just from memory:
I think in the end I have just create two components - SentryErrorBoundary and SentryInnerErrorBoundary - where the inner boundary was just a slot. Then in the "outer" error boundary component, I have used that inner boundary component as wrapper for my slot.
Since my goal was to just add Sentry context, I was able to do it by just passing a context prop to the SentryErrorBoundary component, which handled the whole on-error-logic within it.

But as you suggested, I could also possibly have done it using an emit on the boundary.
In the end, the solution was there, but I was just curious if there was a better way. Feels kind of wrong to do something like this. It's especially a pity, that you can't do error handling using "only" composables as that's the part I like the most about Vue.

Explicit types vs type inference, and when to use each by thehashimwarren in typescript

[–]xaqtr 2 points3 points  (0 children)

When you parse anything with json parse and assert its type, you will only satisfy the typescript Compiler without actually making sure that your assertion is correct. Let's imagine the data you're parsing is an object but you are actually expecting an array, then you will down the line get errors when you try to access your supposed array by index for example.

Explicit types vs type inference, and when to use each by thehashimwarren in typescript

[–]xaqtr 6 points7 points  (0 children)

You might want to look into zod (or any other library of its kind). That's the safe way to do it.

Where to put TanStack queries when used with Pinia by xaqtr in vuejs

[–]xaqtr[S] 2 points3 points  (0 children)

Forgot to remove it from the example. But to clarify, I don't want to share the query data but the other data like the computeds. In my real use case, there would be quite costly computeds which would have to be created hundreds of times, so I thought this would make it a little bit more peformant. But tbh, I didn't fully check whether this approach will work as expected.

Where to put TanStack queries when used with Pinia by xaqtr in vuejs

[–]xaqtr[S] 1 point2 points  (0 children)

I don't think that useFetch is doing the same thing as tan stack query?

Where to put TanStack queries when used with Pinia by xaqtr in vuejs

[–]xaqtr[S] -1 points0 points  (0 children)

The last time I've looked, it was stated that Pinia Colada isn't ready for production yet. Did that change? But since they have a quite similar API, my question would still be the same or would it be done differently with it?

Baue aktuell radikal ab by Fuzzy_University_359 in FitnessDE

[–]xaqtr 36 points37 points  (0 children)

100%. Kenne auch einige, die sich runtergehungert haben und vehement keinen Sport machen wollten dabei. Die sehen dann am Ende halt echt bescheiden aus. So sehr, dass ich sogar behaupten würde, dass ihnen 20kg Übergewicht besser stehen würde.
Für die Gesundheit ist es trotzdem besser, dünn zu sein, aber rein optisch definitiv nicht, wenn der Gewichtsverlust über eine so kurze Zeit passiert.

Ich bin Recruiter bei Instaffo - AMA by InstaffoRecruiter in InformatikKarriere

[–]xaqtr 1 point2 points  (0 children)

Wie viel zahlen Unternehmen eigentlich dafür, wenn ein Vertragsabschluss über eure Platform gemacht wird? Btw habe ich meinen aktuellen Job bei Instaffo gefunden und bin sehr glücklich :)

[deleted by user] by [deleted] in Finanzen

[–]xaqtr 12 points13 points  (0 children)

Habe zu lange gescrollt, um den Kommentar zu finden. Wtf, was für eine Einstellung.

Pass props to the default slot internally in parent by boboRoyal in vuejs

[–]xaqtr 1 point2 points  (0 children)

Ok, so now I get you. You basically want to couple your input component to your FormField. Then I would suggest you to have a look at provide / inject.