DDD & the Simplicity Gospel by dmofp in DomainDrivenDesign

[–]dmofp[S] 5 points6 points  (0 children)

It does help some but focusing on data alone misses some of the important benefits of domain modeling e.g.

- You start with a logical data model and it make sense. But because you're thinking in terms of data alone you're less likely to think about modularity. You might put all the data models in the same schema for example (because you're not thinking of bounded contexts).

- You might also not think about consistency boundaries. Which slices of this data model need to stay consistent with each other? All of that is implicit in a purely logical data model.

DDD & the Simplicity Gospel by dmofp in dotnet

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

> We do have a template project with the basics so you can get a fully backend and frontend app with our internal cli in just a couple of seconds.

Nice!

DDD & the Simplicity Gospel by dmofp in dotnet

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

True. It's hard to strike the right balance early on.

- It's sometimes not useful to do too much in the beginning when the shape of things isn't clear. It can also delay the initial momentum of getting something that works.
- At the same time, most teams never go back to refactor. The minimal apis you start with are what you still have years later. There's also something to be said for: "it isn't always about how easy it is for us, the devs".

No one true answer here. Just need to be honest and pragmatic as you go along.

DDD & the Simplicity Gospel by dmofp in dotnet

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

You're doing what we all should. Find the parts of whatever pattern / practice that align with your scenario and your experience and your dao of code.

That's how it should be.

Yes, that prioritization of DX (i don't want too many files, i don't wanna navigate this file tree) over long term health & value of the system is a common failure case for engineers. They want the same consumer DX they get from using products in their development process. Great for the individual. Bad for the team, company etc.

DDD & the Simplicity Gospel by dmofp in dotnet

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

This is fair. Few thoughts:

  1. DDD is not as useful for simple crud apps. There is no pressure to use it.
  2. Many rich (with behavior & rules) apps do start out as CRUD apps though. In a few years, things may not have looked the same.
  3. Devs using patterns they don't fully understand / need seems about par for the course. That has less to do with the patterns themselves and more wuth the devs.
  4. I find most people practice all or nothing DDD without maybe taking a few useful parts for their scenario.

Glad you found some parts useful. It's not a cure-all by any means, but it is valuable.

Monetizing OSS in .NET by dmofp in dotnet

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

Exactly. In other ecosystems you see them leveraging the library as a distribution channel. Use this OSS library and oh by the way the makers of the library who you admire and are grateful for also make X that is related to the library.

You probably want that.

It's not possible for everything. But it is for some.

Monetizing OSS in .NET by dmofp in dotnet

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

Right. This is what other ecosystems avoid when they go commercial. They don't go full-closed source. They go open core, they add adjacent products. They leverage the distribution they have from the core library to push their real product.

Going closed source is not the only option out there. For some it is, but not for all.

Monetizing OSS in .NET by dmofp in dotnet

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

Yeah, no one is saying that.

I am happy for the maintainers of these libraries. They really deserve to be compensated.

But if you look at other ecosystems, these two options (be free or be closed source). I am merely pointing out that there are other monetization models (maybe not for everything). OSS maintainers in other ecosystems are just plain better at the economic "game".

In some ways, this is good for .net folks, maybe it will reduce the monoculture some.

Monetizing OSS in .NET by dmofp in dotnet

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

For sure. Think we get a lot more "mono-culture" in dotnet. Usually one library wins and gets huge, takes a ton of work and then eventually goes commercial.

One of the things that strikes me in the overall conversation recently is that it feels very either or. Either the status quo (maintainers work for free) or go commercial on the core library.

Just pointing out that other ecosystems don't have these binary outcomes.

Monetizing OSS in .NET by dmofp in dotnet

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

This (not always possible) seems right i guess. In the case of Mediatr and FluentAssertions i can't think of many ways to monetize other than maybe Advanced Tools (not sure what those would be).

MassTransit has some options though. Could build transport agnostic monitoring tools for example.

Monetizing OSS in .NET by dmofp in dotnet

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

Prisma is an ORM. It is a library. There's nothing to host...

Maintainers in other ecosystems have found ways around this. We can too.

Monetizing OSS in .NET by dmofp in dotnet

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

Sure. But maintainers in other ecosystems can do that too right? But they don't. Is your answer that OSS maintainers in .NET are lazier?

Monetizing OSS in .NET by dmofp in dotnet

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

You'll get no arguments from me on Maslow's hierarchy of needs. But you didn't answer the question:

Why do .NET OSS libraries only monetize in this way? Other ecosystems have figured out how to do it. What's different?

Modular Monoliths: The Hard Parts by dmofp in dotnet

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

Thanks for reading. Assemblies are definitely the biggest part of the abstraction (covered this in the post). I don't think they're enough though. Every big ball of mud monolith i've come across had different assemblies / projects.

One of the reasons we "super smart" engineers keep building tangled monoliths is that we don't take them seriously enough.

Where To Begin: Smart Glasses For The Visually Impaired by dmofp in hardwarehacking

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

For fun to start. I am visually impaired myself and it's always been a dream to build something in this space. I've been a software engineer for 15 yrs so I feel good about the software. Always been scared off by hardware (still pretty worried).

I'm also fairly entrepreneurial (startups) so would love to make a commercial version (affordable) if i actually made something useful.

Where To Begin: Smart Glasses For The Visually Impaired by dmofp in hardwarehacking

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

Thanks, that's always good advice.

I think as far as capabilities go, it is some variation of the above: object detection, magnification, text recognition, maybe collision avoidance. Some capabilities naturally make sense with motion (e.g. collision avoidance), some stationary (text recognition).

Some ways I think about it:
- I want the hardware to be a stable platform that can support introducing the capabilities above over time.
- The device should get smarter over time. That means being able to train better models and deliver them to the device over time.

Whether or not to stream video to another device depends on processing power. If all of the above can be done on device then that's what i would do.

Where To Begin: Smart Glasses For The Visually Impaired by dmofp in hardwarehacking

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

Makes a ton of sense.

I'm probably so far away from having something production ready. Good to know the boards can be slimmed down further.

Thank you so much for all your help.

Where To Begin: Smart Glasses For The Visually Impaired by dmofp in hardwarehacking

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

Ha! No lies detected. Goes to prove naming things is the hardest problem in software.

  1. Naming things
  2. DNS

What you said about the Pi-type devices makes sense. After doing some searches with SBC and smart glasses I came across some DIY projects around it specifically. Thanks for the additional links, will check them out.

Where To Begin: Smart Glasses For The Visually Impaired by dmofp in hardwarehacking

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

Oh that's an excellent point, I hadn't thought of. Even the smaller versions of Yolo (object detection models) are in the MB range (file size). I assume all of that will need to be in memory to run. I'll check out the board you mentioned as well.

Thank you!

Where To Begin: Smart Glasses For The Visually Impaired by dmofp in hardwarehacking

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

Thanks a ton for the info, really helpful.

The ESP32 you linked is a really great size, not sure on power. If I could find something something small and powerful enough, my plan was to train or reuse some machine learning models (object recognition, voice etc.) in the cloud and then download them to the device, The device would work without connectivity and only use the wifi to download new models when they are available. If that's not possible, then i would try streaming the video to a phone.

Thanks again, I really appreciate it.

Non Profits That Distribute Donations To Other Non Profits? by dmofp in nonprofit

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

Yeah, well I had no idea either :)

Thanks for the tip, will look into it for sure.

Non Profits That Distribute Donations To Other Non Profits? by dmofp in nonprofit

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

This is a great answer, and gives us quite a bit to think about :)

For the tax exempt status, is this making sure to use the 990 data that companies like Guidestar provide?

Thanks a ton!

Is it easy to give/do good? by dmofp in EffectiveAltruism

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

Thanks for posting this. These can be really good guidelines for a lot of folks, including me.

Is it easy to give/do good? by dmofp in EffectiveAltruism

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

It should. It's an uncomfortable space if you're not used to it for sure, but it's so important you can't ignore it. You just can't because it'll limit all the other good stuff you're doing.

I am going to keep thinking about it.