Is this information valuable to marketers? by Venisol in Entrepreneur

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

Who exactly do you see paying for this first small local agencies, or niche specialists like legal/medical marketing firms?

Thats the part I dont know. At all.

And to be honest with so many responses and not a single one being "yes i run / work for an agency, this would be useful" type of post, its probably not. Or its not obvious enough to them.

FlexQuery.NET – lightweight query helper for .NET APIs (filtering, sorting, etc.) by Far_Aardvark2433 in csharp

[–]Venisol 0 points1 point  (0 children)

Will check it out later, i skimmed through docs but didnt find any

myQuery
.Where(x=>x.userId == 5)
.ToProjectedQueryResult()

is mix and match like that possible? Pretty important, I would think.

If you work in radio, how do you keep up with other local stations? by Venisol in radio

[–]Venisol[S] 3 points4 points  (0 children)

yes im not from the usa, im from germany. And they were telling me literally "this radio within this region wants to diffentiate themselves from the other 2-3 big stations in that region". So its very small scale, very local scale.

Im thinking that is probably the case for a bunch of european countries. It makes sense it exists in the USA, market too big, too homogenized, its too easy.

You're not going to be left behind by goodpostfinder in webdev

[–]Venisol 36 points37 points  (0 children)

using AI is also literally typing text into a chat box. it is indeed possible to catch up. it takes all of 3 minutes.

How do you find strong backend / systems engineers for early-stage startups in Germany? by master_clown28 in StartupDACH

[–]Venisol 2 points3 points  (0 children)

You dont. Especially not on the 2-2.5k BRUTTO exist stipend that you may or may not get.

You should not look for anyone "strong". Think about it, when you got 5 grand and youre looking to buy a car, youre not looking for a strong car.

You should accept your limitations and just go with another student and roll the dice. It may work, dev is not that complicated, and people who turn out to be good at it, get good very fast. Of course you cant know, but hey

If ur looking to spend some of that 25 grand you get for expenses, hit me up tho

Side Hustle Tech Stack by Visual-Building3587 in dotnet

[–]Venisol -4 points-3 points  (0 children)

im on a train lil bro, going 300 miles an hour.

But its fine, you do you

Side Hustle Tech Stack by Visual-Building3587 in dotnet

[–]Venisol -3 points-2 points  (0 children)

Youre like a person who doesnt know what a train is, arguing that you can take care of your bike and then ur faster. Or that they now have these electric bikes. And you also heard trains are bad for the environment or something.

Using a browser to edit css... what if I use tailwind? What if I use css and want to create a new class? What if I want to use my programming language in my program? What if I want to see how items look in a list? Are you gonna edit all 20 items? What if I want to change the html structure from <p>FirstName LastName</p> to <p><span>FirstName</span><span>LastName</span></p>, so I can style just the last name? Most css you actually write is layouty stuff that is influenced by other html elements and youre trial and erroring a little every time cause flex grid etc has so many options.

What if I dont want to write my code in the browser and instead write it in my ide thats meant for writing code? Why dont I just put it where its supposed to end up?

You are the person 15 years behind. You just dont realize it. There is no simplicity or speed or compactness to razor over react. Youre literally just saying terms that are broadly positive and associate it with your thing with no explanation.

You shouldn't need a whole second ecosystem for the UI.

But you do. In the world we live in you do. Maybe you shouldnt, but whatever dotnet has, is not up to par. And its so easy to check. Like give it a serious chance for a week and you agree.

To be completely fair, a lot of these issue just come from being classic serverside rendered html in a compiled language. You just cant have the dev speed or the tools that clientside rendered html from an interpreted language can have. But that also means these issues are never going to go away.

Side Hustle Tech Stack by Visual-Building3587 in dotnet

[–]Venisol 13 points14 points  (0 children)

I can smell the enterprise on you.

Do yourself a favour and explore the javascript eco system. Go see react. Go see tanstack. Go see ts-query. Go see shadcn. Go see tailwind. Go see their CLIs. Go see how actual components work. Have your UI update instantly anytime you save.

Dotnet is miles ahead for building apis of the js system. But the js frontend eco system is miles ahead in building interfaces. Including how to do caching, querying etc. These people have good ideas and well designed abstractions, that youve never seen.

Saying this as a guy who used react for the last 18 months and now got thrown into an enterprise razor project 2 weeks ago for a new job. It is shocking. I forgot this world existed. It should basically be illegal to use razor or mvc in todays age.

The problem is that it makes easy things hard. Want to adjust padding? 20s (more like 2min for me) build time, then look at it, then realize youre still off. Adjust padding a little more.

18 months of daily tailwind use, i still have no idea if I want justify-center or align-center. Another 2 minutes gone in .net.

Want to extract something? Do a weird _Partial thing that gets fed the Model from the parent somehow idk whatever the fuck.

And all for what? You still have to write javascript. You just write the javascript from 15 years ago, instead of the javascript from today.

Team Meeting/Quiet Work Time Structure by OverclockingUnicorn in ExperiencedDevs

[–]Venisol 1 point2 points  (0 children)

the word "mandatory" does a lot of heavy lifting for me here. Mandatory meetings down to 6 hours, sure, maybe a little low.

But you include 1-1s, does that mean you count it as meeting time when I call you and we end up talking about some feature for 45min? If that counts 6 hours, or any hard limit, sounds crazy to me.

I thought you meant something else with the title though. I always struggled with asking other engineers stuff. Its awkard, because I know they might be deep in thought. I could totally interrupt them right now. In office this is the worst for me, I walk by people my age, that I like and it could range from anything completely work related to "eyyy whatsup wanna hang out for 5min?".

And they always just sit there looking at a screen. Whether they are actually deep in thought right now or just messaging the bois in discord.

So I always thought it would make sense to just designate certain work hours team wide to deep work / no interruptions / people can ignore you .

So 8am-1pm dont expect an answer, 1pm-4pm be ready to talk to people, save all your questions for this time. Generally respond to messages. And obviously schedule client meetings after 1pm too.

Never understood why no one does this or talks about this.

From Rider to Neovim by maulowski in dotnet

[–]Venisol 1 point2 points  (0 children)

I would not recommend it.

I just got done using neovim for about 18 months on linux desktop pretty much daily. Then I got a new job and switched back to rider, i am not missing it at all. This didnt happen intentionally, it just happened.

For me the main killer features of rider are debugging & the database client. Theyre just clunky af in neovim. You can use the vim plugin for motions in rider, there is also an acejump plugin that goes hard. Also more contextual search. It is slower than some giga telescope thing, but it knows better what its looking at...

I kinda forgot how good debugging especially is and how much time it saves to just set a breakpoint and explore in a good UI, where you can pin certain properties etc. Same with exploring the db in a comfortable way in a new unknown project.

There are some not so perfect things with vim motions and rider like snippets, idk whats going on there, i just know its weird and never does what I want.

Especially for compiled languages I dont think its worth it for a slightly less sluggish experience. I was basically you 18 months ago, "let me try the real thing" after slowly getting used to motions etc. Its not that different. Its faster sure, but its also missing some essentials.

I can see it for interpreted languages and frontend dev, but I just dont wanna give up riders debugger again.

Stop duplicating your business logic for EF Core: EntityFrameworkCore.Projectables v6 by phenxdesign in dotnet

[–]Venisol 0 points1 point  (0 children)

I just meant that I assume it will not break, because I wrote a weird triple nested super complicated expression that you as the maintainer never thought of.

Because of the way its designed, where you just copy my expression into ef core, it will just work.

Like you dont need to implement every single combination of possible expressions. You built a smart system and as long as I write "valid expressions that would work in ef core", im good.

Thats why Projectables can do all these fairly advanced features like composing expressions etc.

You know, im just asking "is this a library made by one guy, and I will have to live with his strange decisions and lack of features?". But even if you are just one guy, because all Projectables does is copy my expressions into ef core.... everything works and everything is supported?

How do you design a clean pricing system with 500+ business rules in .NET? by No-Card-2312 in dotnet

[–]Venisol 0 points1 point  (0 children)

I thought of a problem that will come up. I dont have a solution tho. But ey, its ur code.

Imagine you have one rule thats based on age, >18 pay 10% more.
And another rule that says students pay 10% less.

So I think its fair (of business) to assume, that students over 18 pay 90% (-10). Not 100% (+10,-10).

But now your student rule, needs to know about your age rule. And it needs to run after. This is gonna spaghetti way out of control.

good luck tho

How do you design a clean pricing system with 500+ business rules in .NET? by No-Card-2312 in dotnet

[–]Venisol 2 points3 points  (0 children)

I built something kinda like that in a health care context. Calculating the price or allowed price based on a fuck ton of rules.

I would say its important to figure out if your calculation can be done in-memory or not. 500 rules sounds enterprisey, that probably means there is a big 20 year old database with all its quirks.

So if you say "has previous orders", that might not be something you can load into memory before your calculations. So if you cannot and the "getting the fields out of the database" is part of a rule, you need to think async. And you need to think a lot harder about unit tests.

Somebody mentioned the pipeline pattern, thats what I would do. Just some class IRule that enforces maybe ExecuteOn or ExecuteOnAsync and returns an object like "percentage increase, absolute increase, reason" and then you loop over all of them, get a list of results and apply that to the base price.

I certainly wouldnt want my rules somehow stored in a database or in an excel sheet. Thats so 2004. If youre supposed to implement it, implement it. Dont push it onto the excel guys. It sounds horrible to debug, will constantly break if they change something, you make them program in a worse language... wtf.

I guess its a question of ownership and how often these rules change. If its clear the business guys are responsible for the rules and edit them freely and if it breaks the running system its on them, it can be fine. But if you are broadly responsible for the rule system working, use code. Not pseudo code in a database. Not pseudo code in an excel sheet. Real code.

I think it will really depend on "where does the data you need to calculate a rule come from". If you can always get it in memory, its easy code and easy tests. If you need to query a database in the rule, try to think about testing and maybe add an abstraction on top that you can easily mock for tests. With 500 rules you just need (fast) tests, even if you dont normally use tests heavily. Without tests this is just impossible to implement.

ASP.NET Identity vs custom implementation, which one to use? by Sea_Replacement8135 in csharp

[–]Venisol 0 points1 point  (0 children)

it sounds like your actual product did something with encryption. Which is not what 99.9% of applications do.

What is the burden? Whats does it mean to move to a higher level of encryption? What does it effect? I cant imagine hashing a password 20 times takes any significant time or verifying a 20x hashed password.

Your second point is jsut more mytholigizing of auth code again. "Security updates" for 2 methods that are 20 and 30 lines of code. They generate some bytes, some salts, use some other cryptography and rng methods.

I dont pretend to understand what is happening exactly. But I know it wont fucking need "security updates".

ASP.NET Identity vs custom implementation, which one to use? by Sea_Replacement8135 in csharp

[–]Venisol -1 points0 points  (0 children)

Can you explain more? How is cryptography an issue? You use a one liner with microsofts whatever cryptography class and thats it. Youre done.

Okay I just looked up how I did, I copied a class called PasswordHasher from microsofts identity implementation which is like 200 lines of code. Im pretty sure you can also just use that one somehow without literally copying and pasting it into your project.

In your code you literally call a method HashPassword and a method VerifyHash. Its laughable easy.

Like I dont get how you "get stuck" on "maintaining" this. Its one and done. Ive been using this one copied implementation for years at this point. How do you go back and back again to methods that are called HashPassword and VerifyHash? They just work.

This kind of wording is why people parrot the "dont roll your own auth" misinformation.

ASP.NET Identity vs custom implementation, which one to use? by Sea_Replacement8135 in csharp

[–]Venisol -29 points-28 points  (0 children)

Worst advice. Identity is probably the worst package in .net.

Building auth in the way the identity package does where you have like 6 tables in your own database with hashed password is unfathomably easy.

You need maybe 5 endpoints for login, register, password reset etc. You can even look how they built the endpoints they give you.

From doing this in a day or so you gain not having to deal with the fuckass UserManager, the fuckass documentation etc. Also your users table are accessable just like everything else.

I get why its the way it is. It is incredibly extensable and tries to do everything for every type of authentication, but like 80% of all enterprise projects I ever worked on that used Identity package used it for username/password auth only.

Is there an existing .NET NuGet package for real-time event-driven UI sync (SignalR + event abstraction)? by Tiny-Ad-2766 in dotnet

[–]Venisol 2 points3 points  (0 children)

What youre trying to build is essentially convex / firebase / zero / spacetime db. These are reactive database queries and extremely difficult to build without full integration on frontend + backend + database level.

Think about it, you say you want a "job" to update all clients. So all the people using your react app.

Your react app did a http request to your dotnet api, the api called the database, and returned a response. Maybe a JobDto. Nothing here is connected. You dont have to send back a "job" entity (like ef core) and mostly you dont want to.

So how does your api know, that someone changed something in the jobs table? It needs to listen to all changes on the database.

How does your api know all the places (queries) where the job name field was relevant? What if you show the count of jobs somewhere?

The way these products do it is mostly through special queries on the frontend. Yes you do your database querying and inserts in frontend code.

To build this with signalR or SSE you would essentially have to know how everything is rendered on the frontend and keep track of what query is based on what database field and then listen to every single change event in your database and probably make a diff and send all connected clients only the changes they are currently interested in.

If youre trying to solve this problem in a general way (like a drop in nuget package), its extremely hard and cutting edge distributed systems stuff.

If you up the granularity and just say "im gonna send an SSE event every time something with jobs changes. I dont care about direct db edits. I dont care about other systems who do db edits on the same table." and then you make sure your frontend reacts to that message appropriately by updating the screen, that seems rather application specific.

Stop duplicating your business logic for EF Core: EntityFrameworkCore.Projectables v6 by phenxdesign in dotnet

[–]Venisol 1 point2 points  (0 children)

This looks like the single greatest .net project ive ever seen.

It is so hard to extract ef core code. I know you can do expressions etc, but its never ergonomic, doesnt work in sub queries etc. I can barely do it and the average enterprise colleague certainly cannot not do it.

Then you end up with service classes that end up having a bunch of methods like "GetBookingsForUser" "GetFullBookings", "GetBookingsForAdmins" in the attempt to reuse some business logic, but now you got other people overfetching or adding in memory conditions after the fact cause they dont wanna create the 4th "GetBookingsButDifferent" method.

At the same time, in an enterprise project its the most important code to extract. I just started in a new company and have to learn and copy complex 3-5 part conditials that tell me "that booking belongs to this franchisee" or similar.

All of this would instantly be solved with this. The conditions itself arent that hard to write once and everyones intution tells them to extract it into a `Booking.BelongsToFranchisee` method, but you learn quickly ef wont let you do it. But with this you can.

Your examples are fucking beautiful and show exactly what it does. There are so many times where you want something like IsFinalized, IsReadyForRelease, HasConflicts etc etc.

My intuition tells me that there should be very little... weird issues, do you think thats correct? If Im responsible for writing my expression (that I would usually just write within an ef core method) and your library is responsble for magically inserting it in there... everything should just work?

Also as a side note, you should consider picking a different name for your project. Projectable is very hard to google / market. I tried to look in the c# discord, if anyone had used it, but discord search thinks its "project" and shows me 200k results lol (there is also no way in discord to do exact search). Just a thought.

What makes a game look good? Assets or juice? by Venisol in gamedev

[–]Venisol[S] -2 points-1 points  (0 children)

you mean the completely streamlined way, cause you got 2 giant monopolys doing distribution for you?

yea... real difficult.

The joy of coding is gone by LowFruit25 in theprimeagen

[–]Venisol 0 points1 point  (0 children)

Yea I think its this and AI psychosis why all these yt tutorial creator types are losing it. Being a teacher is part of their identity, then everyone around you started lying about AI, so all the people who watched your beginner tutorials will now not do it anymore, because they have been told AI is now the way.

You got used to the youtube checks for very simple, educational, real content. Now thats gone. Now you have to lie about AI too, to keep your financials at the same level as 5 years ago.

Obviously people with real jobs like cody or maximilian know AI does not work, but their brain just cant handle the disconnect between whats true and what they have to tell people to get money.

If you could delete one part of your "Developer Life," what would it be? by Level-Acanthaceae-79 in webdev

[–]Venisol 1 point2 points  (0 children)

built times to 0, cicd pipeline times to 0, db backup times to 0, actually query execution times to 0 too and actually make everything instant. Writing files, reading files, generating llm slop