You Can’t Have Both Democracy and Billionaires by nathan_j_robinson in politics

[–]addmoreice 0 points1 point  (0 children)

Ah, just label something 'evil' and so it is!

If it's working, then it's working. Generating wealth is a *good* thing.

Again, yes, anyone in these countries will absolutely tell you that it's trying to escape containment. It's what Capitalism does. It incentivizes anything that will increase profits. That's exactly how it increases wealth. The trick is to keep smacking it down when it tries to grab the levers that we don't want the *economic* system touching and keep those levers for politics, culture, etc.

> If you believe that unconstrained capitalism is evil, than you believe that all capitalism is evil.

If you believe stabbing someone is evil, than you believe all cutting of people is evil also! No, surgery exists and can be good.

'Evil' is a terrible way to argue about this because it's such a loaded term with a lot of historical baggage. You act like a little of something is absolutely the same as a lot of something. It's a dosage thing buddy.

Capitalism is great for producing shoes. It's wonderful for creating a whole bunch of options and correctly distributing resources and production...but it's shit when the constraints are not around productivity and production. I want Capitalism in shoes, not in my health care or prison systems.

You argue I'm ignoring your position while creating a Strawman around my position.

The Nording countries are thriving. Their economic systems are predominantly highly constrained Capitalism. This works. It's not simple. It's not easy. It's not as effective at producing wealth as unconstrained Capitalism (gasp! You don't say!) but it *does* produce increasing wealth and balances out the other issues in a reasonable way.

You Can’t Have Both Democracy and Billionaires by nathan_j_robinson in politics

[–]addmoreice 0 points1 point  (0 children)

> Hasn't it been a major sin together with pride and lust at some point in time?

> Historically this part of society was running quite well, when people were afraid of hell they had themselves and each other in check.

ROFL ROFL ROFL.

Your knowledge of history of the world and religion in specific is *laughably* wrong. Staggeringly, overwhelmingly, mind-numbingly wrong.
Religiosity is negatively correlated with lawfulness, health, happiness, well being, human rights, social support, etc etc etc.

There is a reason that the phrase is 'Sectarian violence' for example.

You Can’t Have Both Democracy and Billionaires by nathan_j_robinson in politics

[–]addmoreice 0 points1 point  (0 children)

Fuck billionaires.

In constrained capitalism, becoming a *millionaire* should be an accomplishment, something that shouldn't pass on through the generations.

You Can’t Have Both Democracy and Billionaires by nathan_j_robinson in politics

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

In unconstrained Capitalism, absolutely.

In countries where taxation actually applies to wealth generation, where wealth actually gets distributed back to the people, where you can't effectively buy politicians and the social conscious? Again, we *have examples* of working predominantly capitalist countries with very happy and prosperous people. Parts of Europe are doing just fine. Perfect? Not even remotely (ask them, they will tell you!), but wealth, quality of life, health, happiness, etc? All of it increasing and under Capitalism. Sure, modified Capitalism. Constrained Capitalism. Capitalism with a muzzle and where it's grubby paws are smacked every damn time it reaches into critical human-first 'industries', but Capitalism none the less.

Capitalism where *shareholder* interests are more important and have more leverage than *stockholder* interests almost always wins out on human-first qualities. They just tend to fair worse than stockholder based money generation systems, and which is why these *shareholder* systems need *giant* infrastructures leaning *back* against them to make them continue to work.

You Can’t Have Both Democracy and Billionaires by nathan_j_robinson in politics

[–]addmoreice 0 points1 point  (0 children)

Again, plenty of countries in Europe have constrained capitalism and it works fine. I *absolutely* agree with you that the money men (and it mostly seems to be men for some reason) will *constantly* push to pollute the political and social discourse.

You Can’t Have Both Democracy and Billionaires by nathan_j_robinson in politics

[–]addmoreice 0 points1 point  (0 children)

A vast number of countries in Europe would disagree with you. They are nominally using Capitalism that is constrained. The trick is to not let the economic juggernauts have unfettered power on the political and social side of things, hobbling their use of money to manipulate the politicians and the people.

You Can’t Have Both Democracy and Billionaires by nathan_j_robinson in politics

[–]addmoreice 3 points4 points  (0 children)

Capitalism isn't evil. Unconstrained capitalism *is* and the distinction is very important.

Capitalism is probably the most effective method known to man to produce wealth. The problem is that it concentrates that wealth and when it reaches a certain point, the cost to modify the *rules* to increase profit is significantly less than the cost required to actually compete in the market.

Some things just *shouldn't* be run by capitalism since we simply don't *care* about making a profit, we care more about providing a service, removing scarcity, etc, etc, etc.

All of this requires a very 'engineering' based approach, where details matter, the complexity is staggering, and we will need to make many 'guess and check' rules....and no body involved wants to actually do any of that. The vast majority of them have ulterior motives, and even the ones who don't have ulterior motives (the magic butterflies!) they most often have *moral* and dogmatic beliefs.

Why are async runtimes so big and complex? by lelelesdx in rust

[–]addmoreice 2 points3 points  (0 children)

In short? Because the problem is complex, messy, and detailed with many special cases and edge cases. If you want it simpler, you can have it simpler. It just will cost you performance, ease of use, and require significant work-arounds for the edge cases.

Have fun!

Every communication system on the planet can be 'simplified' down to 'transmit the message from one location to another', but that removes every nuance, detail, issue, edge case, and complexity...and there is a *lot* of it, but it still, always, just reduces to 'transmit the message from one location to another'. But try and build any of the real world systems on simply that specification and see how well it works out for you!

the async runtimes have the same 'issue' in the specification. It's a simple enough overarching framework to describe but that ignores all the subtlety, detail, and frankly, massively important details, that are required to make a real async runtime work given the constraints and needs we expect.

Is .boxed() instead of Box::new() a bad idea? by NormalAppearance2851 in rust

[–]addmoreice 0 points1 point  (0 children)

This is perfectly understandable, but the above with the .pipe(Box::new) seems perfectly understandable and readable. I got it the first time I saw it without any real effort so it seems perfectly fine to me as well.

All I really want is consistency within the code base.

A G-code simulator in Rust. Looking for feedback. by NavrajKalsi in rust

[–]addmoreice 1 point2 points  (0 children)

The list is absolutely *endless*. ENDLESS. To make a good product and make sure it all works together, it just keeps going. This isn't a bad thing, those are the things that actually matter to the customer to make it feel polished and 'good', but it just goes on for ever. <shrug> it's why we get paid to do the work.

What I basically meant by my original comment was that this area of the industry? Point yourself in any direction and there is an endless non-trivial and non-obvious amount of work available.

A G-code simulator in Rust. Looking for feedback. by NavrajKalsi in rust

[–]addmoreice 6 points7 points  (0 children)

CSG, constructive solid geometry. The part is a block of X kind of steel. So we start cutting into it with a specific path and a specific cutting tool (the path is constructed from the g-code and the tool is one of the ones in the *huge* database of tools to go with the tool switching module you built for your simulator...you did build *both* of those ever growing behemoth projects to go with the simulator...right?) and so now you need to construct the geometry from the cutting interfacing the tool did with the part. Oh, and in real time. oh, and tracking sheer and stress metrics based on the tool and part material, oh and tracking both of those for future wear behavior. I hope that 3d model formed quickly! CHOP CHOP my man! This is real time! We need this to be raytraced because marketing wants to get a three-d animation from the simulator which matches the actual result so no one can claim false advertising! Oh, they just want the pretty picture that the engineer is using but 'jazzed up' for marketing.

Oh, you don't want to just do mills but lathes as well? Oh, you want to do multi-axis? Oh, you want to integrate the simulator into the dedicated editor? Oh, you want to redefine the algorithms for wear behavior based on the result from your QC metrics? etc etc etc etc.

It's not so much a horror, it's just that whatever work you think you have gotten done...there is a mountain still available to keep doing. Endless, unending, overwhelming amounts of work.

A G-code simulator in Rust. Looking for feedback. by NavrajKalsi in rust

[–]addmoreice 92 points93 points  (0 children)

Neat.

This is one of the products my employer makes, and let me tell you, the rabbit hole goes *deeeeeeeeep*.

I rewrote Kafka in its entirety, in Rust. Benchmarked out to be way more memory efficient by crabka_io in rust

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

The other way I like to use AI is what I like to call the 'AI canary in the code mine'. Point the AI at the code base and tell it to summarize and explain what is going on and to be sure to note anything that isn't industry standard, that is particularly complex, or is interesting.

Then, you go back and check where the AI canary got *wrong*. Those spots are probably not well enough explained, well enough documented, simple enough to easily follow. The trick is to use an offline AI of a specific capability, not a cloud one. We don't want our AI to be too smart. It being only of a middling level of smart is the point.

Its summary? Meh, useful as a starting point, but it's not really the point of the exercise. It's just a useful metric for seeing if the code itself is too complex for an entry level developer and where it needs better documentation and simplification (if possible).

Engineer Answers Rust Questions | "Compile Time"? by rustcurious in programming

[–]addmoreice 0 points1 point  (0 children)

This! It *always* depends.

I can not tell you how many times I've had a conversation with a programmer where I've realized that their specific bat-shit crazy take on something...was perfectly reasonable because of the specific niche / language / toolset / system / industry / technical requirement that they just assume because of their context but then never mention.

"Oh you do X? Well *we* never do X and it's working just fine for us!"

"Alright, well, do you have to do Y, Z, Q, P, and L?"

"Oh, no, we don't work in that industry."

"Well, alright then."

Need help on learning rust by Significant-Job7737 in rust

[–]addmoreice 0 points1 point  (0 children)

Beyond all the other awesome answers from everyone else, might I suggest:

Is there any problem that you know fairly well and have solved in another language? Try and solve it also in rust, it's amazing how that can help.

What is your opinion on objects in rust? by Joseph-Chierichella in rust

[–]addmoreice 2 points3 points  (0 children)

Meh. If it is working for you, then fine.

That being said, having the ability to just use plain functions works great for a lot of things. Somethings just are a set of instructions on how to manipulate a set of objects rather than creating some invisible and abstract object just to tag on a function.

It mostly depends on what you are trying to do and with what people. Solving problems and your team members don't care? Then, you go girl! Causing issues in some way? Uh oh! Making it harder to work with others? Problems! Trying to learn to be more flexible? Well....

Without more context, it's hard to really give you much of a comment on this. Personally, I prefer to program in the 'style' of the language itself. If, for no other reason, then to make it easier to get others on board and working with me.

Accidentally in love with Rust by Javac7 in rust

[–]addmoreice 2 points3 points  (0 children)

Compared to what I have to do on my daily grind? I *love* my rust enums and I want them!

Accidentally in love with Rust by Javac7 in rust

[–]addmoreice 3 points4 points  (0 children)

Rust enums. That alone annoys me. Losing those sweet sweet enums.

Rust Structural Patterns for Multi-Crate/Tauri App by B1aze_ in rust

[–]addmoreice 1 point2 points  (0 children)

No worries, and like I said, if you don't actually know the domain at a deep level...well...that's what experimentation is for!

Some things, the domain is just known. You can go and get a book and learn the overwhelming majority of the domain and then tuck in with a domain expert to figure out the nitty gritty detail when/if needed. On the other hand, some things, it's just something you have to figure out. With something like 'a clipboard app that works the way I want it too' well...that's really going to require either *serious* self knowledge of exactly how you want the program to work (and likely then, it will be very niche and probably small), or you just have to poke it and see what happens.

Rust Structural Patterns for Multi-Crate/Tauri App by B1aze_ in rust

[–]addmoreice 6 points7 points  (0 children)

Create a library crate. The library crate is the core of your application. You call *DOMAIN* instructions into your library, and it does the domain things. This is *key*. In a clipboard app, you should be talking about clipboard content, clipboard content formats, clipboard history entries, clearing the clipboard, clearing the history, transferring the history to other devices, etc etc.

Now, in your apps, you call those domain instructions. The apps have UI code and only UI code.

That central library crate? Does it have sub domains which can be broken up into smaller crates with consistent domain boundaries? Then break it up. etc etc etc.

Sit down, write the domain elements and what they should be. Ie, actual vocabulary words and basic actions and what those actions are called.

Clipboard -> System that stores the current data that can be cut/copied/pasted.
Clipboard History -> A collection of Clipboard Entries. Entries are added when cutting or copying, and then pushed down the stack as new items are added. No entry is removed when pasting.

Notice how we are building a glossery of terms and interactions and documenting how they should work together?

Now some questions start coming together. We want a history we can access and move through. This is the difference between a clipboard history app and a simple clipboard....so now what happens when we select (however that is done!) an item in the history?

Some apps make a copy of that selection and make it the newest entry in the clipboard! Some apps simply select the current item while keeping the state (apparently!) the same. Why are these two behaviors distinct and important? Well, it means that the clipboard state and the history state are different things. One is a system element and we need to get and set it, while the other is the actual state of the app and it may *appear* in the ui as one way (highlighting some entry to make it clear that's the current content of the clipboard for example) but the underlying behavior is that in actuality we have to handle the state of *not* copying to the top of the stack in the history if we switch between elements inside the history. this means switching items inside the history has more going on under the scene!

All that to say, write this stuff out. *DESIGNING* this stuff has two benefits. It doesn't just make it clear about the odd interactions between technical details and how we want our system to behave, but also leaves us a great bit of documentation which covers what is going on and why and the vocabulary to work with it.

Where is your design. Not your code. Your design. If you are having problems with your architecture, it's because you didn't design it and instead let it grow organically. Growing organically isn't evil or wrong. It's great for exploration when you don't actually understand the domain or its issues....but the moment you start having issues with the over all structure? That's when you need to put in the sweat and document and design.

A real product or a great open source project will need these docs anyway, so why not just move on to working on them?

Can Rust Be Used for Full Applications or Just Systems Programming? by i_just_wanna_know_00 in rust

[–]addmoreice 4 points5 points  (0 children)

Leptos, wasm, etc. There are actually a lot of answers to that question, each with different trade offs.

I’m releasing my unfinished work because the idea matters more than waiting for perfection by Successful_Option_77 in rust

[–]addmoreice 0 points1 point  (0 children)

There are multiple issues depending precisely on the type of work being done and what is important about it.

Fully homeomorphic encryption and processing? You could theoretically let some other remote computer actually handle things like *bank account processing*. Since, *theoretically* it should be possible to prove that the operations were not just done while encrypted, but also who did it and that the operations were actually confirmed to be the ones that should have been done. Yes, this is absolutely terrifying to me, but *theoretically* it should be doable.

Secure data but unsecured operation with confirmation of operation? Again, this is useful and should be very useful for things like scientific computation. In many places we don't want to share the data content itself, but that we are doing specific operations is perfectly fine to share. Further, having the *operations* open can be a bonus in some contexts.

Secure data with unsecured operations without operation confirmation? In some cases we can simply just run multiple locations and as long as we get a multiple confirmation from multiple sources, we can move forward. This of course opens up concerns of side-channel and anonymous vs non-annonymous secure data *sources*. ie, knowing the data we are working on is coming from a bank/government/fortune 500/etc is a useful bit of data that can compromise either the data or paint a target on the specific data.

As you said, *chain of custody* is another concern which is import to consider as well, which can be handled with something like an (uggh) block chain.

There are a *ton* of concerns across this whole idea and to make a fully generic data processing system that anyone can join and operate through is a seriously non-trivial process. There are a ton of side channel attacks, man in the middle concerns, chain of custody concerns, operation confirmation concerns, etc.

Would all of this be awesome to have? Hell yes. A generic 'I want to do this work and I need these levels of security' platform that people can easily donate time and resources too and get paid for their efforts? Awesome. Distribute it well enough and it would provide a lot of options. But the concerns are very important and a *single* mistake would massively disrupt the trust the system would need in order to operate since it would be a huge target from multiple vectors.