candied_orange

Mar 27 09:54
Do your clarifying in the answer. Not the comments.
Mar 27 09:54
It's more coherent than "Bludgeoned to death with a square" or "a circle" which are 2D concepts. A square circle in 3D looks like this. Stop assuming it has to make sense to you to be real. That's a lie.
Mar 27 09:54
@NotThatGuy you claim “ Existence outside of space and time is incoherent. It's asserting that it has something and then saying it doesn't have it. It's self-contradictory” I’m saying that’s wrong. It assumes facts not in evidence. That seems related.
Mar 27 09:54
@NotThatGuy that unknowable things exist is knowable. It’s obvious simply by admitting that the universe doesn’t care what you think. Doesn’t mean you know what they are. Just that they’re there. But I’ll admit that’s a justification.
Mar 27 09:54
@Syed You've never heard of carrot shaped cats? Conceptualizing it is easy. That's not what we're wrestling with. How unknowable things came about is just as mysterious as how knowable things came about. What I'm arguing against is the idea that the limits of existence have anything to do with the limits of our perceptions. If those limits line up in any way at all it's an astounding coincidence. You were supposed to have realized that back when you developed object permanence.
Mar 27 09:54
@Syed you call it speculation, others call it theorizing. It was proven with grains of pollen. Occam's razor is never a basis. It puts an ordering to competing theories. That ordering is based on usefulness. Theories lead to models. "All models are wrong, but some are useful". While it was proven, it wasn't proven to be true. It was proven to be better than its competing theories. While it has been proven to be wrong it's still better than the theories that it had competed with back then. We've since developed better theories.
Mar 27 09:54
Thinking that existence can only be in a form we can experience is arrogance. Like a puddle marveling that the pothole it's sitting in fits it's shape so perfectly. Yes the universe that you experience is limited to what you can experience. But that isn't the limit of the universe. That's just you. I can easily claim that there is more than that simply because I don't think you're that special.
Mar 27 09:54
@NotThatGuy no it is a lie. It never has been truth. Occam's razor has given us one disproven theory after another. Occam's razon gave us the theory of atoms. Which was a lie. Atoms are not the smallest form of mater. But that's what Occam led us to. But without it we would still be wondering what mater even was. It's not truth. It will never be truth. It's only a useful direction to point our imperfect understanding towards. What makes science great isn't truth. It's that we're willing to admit we're wrong.
Mar 27 09:54
@Syed I’ll take that bet. The more I learn the more I realize how much I don’t know. And how much we’ll never know. Remember, we don’t use Occam’s razor because it’s true. We use it because it’s useful. It often ends up being wrong. It’s a a useful lie.
Mar 27 09:54
@syed “There are more things in heaven and earth, Horatio, Than are dreamt of in our philosophy.”
Mar 27 09:54
Space is an aspect of existence that we can perceive. So is time. Foo is not an aspect of existence that we can perceive. Since we can't perceive it we have no business concluding that nothing exists that only has foo aspects. We simply don't know. The meaning of existing outside of space and time is simply to find some other way to exist than those. Whatever imperceivable thing that may be.
 
Nov 22, 2024 18:47
Makes sense.
Nov 22, 2024 18:46
One concern, if you crowd source these boundaries are you protected from liability? Posts that violate copyright are a bit different than those that could starve a brick and mortar store or run people into a ditch.
Nov 22, 2024 18:43
Huh, never experienced that
Nov 22, 2024 18:42
Would need some curating to make crowd sourcing work.
Nov 22, 2024 18:41
My solution was to just throw an internal data entry team at it. Never even thought about crowd sourcing the boundaries of area 51.
 
Sep 17, 2024 21:35
@Basilevs null object is meant to be swapped in for something that does have observable post-conditions. It's simply a special case where the observable post-condition is a whole lot of nothing.
Sep 17, 2024 21:35
@Basilevs why is it a contract for logging can silently do nothing when so configured but nothing else can unless you put "try" in its name?
Sep 17, 2024 21:35
@Basilevs yes but configuration can replace contract. The null object pattern is proof. Yes client A needs service A to follow contract A. But then someone changes everything to be B’s that use the same interface with a different contract.
Sep 17, 2024 21:35
@Basilevs well hang on. Natural language certainly can promise something. I definitely would prefer names that did that over methods named after Simpsons characters. But reality and configuration can break that promise, even silently. That silence can be required. Communicating the promise well is a good thing. The problem is thinking you can rely on the promise despite everything else. No promise is that strong. When you understand that the "try" prefix feels redundant. Are we still at an impasse?
Sep 17, 2024 21:35
@steve insisting on knowing every detail of what’s going on all at the same level of abstraction is a procedural programming habit. Pushing details behind abstractions where you don’t have to think about them is more object oriented. It’s also less coupled. It is entirely possible to get the details the caller deals with down to simply “do it now”. No returns. No exceptions. Just do it now and leave me alone. The name for that level of coupling is “event”.
Sep 17, 2024 21:35
@Steve random speaks to nondeterministic behavior which can be a very bad thing. But unknown behavior from the callers point of view can absolutely be a requirement. Stop insisting on knowing everything. Let something else deal with it.
Sep 17, 2024 21:35
@Steve when I type x = ""; x.print(); I absolutely insist that the computer ignore me.
Sep 17, 2024 21:35
@SergeyZolotarev oh sure, ever rule has an exception. But ignoring the rule comes at a cost. Be sure you want to pay it rather than think of something better.
 
Sep 16, 2024 16:29
k. l8r.
Sep 16, 2024 16:29
Just not sure how to sneak that past the API.
Sep 16, 2024 16:28
But really, all you need is to extract the ID. You don't care about the rest.
Sep 16, 2024 16:28
I already mentioned making the entity spit out a value object that represents its current state. You can also shove it into a wrapper that makes all the setters disappear. Also something called the "freeze/thaw" pattern where you just flip a switch to make it immutable.
Sep 16, 2024 16:26
There are several patterns that deal with this issue. Problem is I'm not sure which we can cram them into this fixed API you're dealing with.
Sep 16, 2024 16:25
BookCopy is mutable. But its identity is not.
Sep 16, 2024 16:22
What does that mean if we're returning a mutable entity with an immutable identity?
Sep 16, 2024 16:19
"mutable fields return defensive copies" Huh? Fields don't return.
Sep 16, 2024 16:18
are you ever forced to change the condition state outside the library?
Sep 16, 2024 16:17
I've not been in your class but I suspect this issue we're kicking around speaks to this "rep exposure argument" that you're supposed to make.
Sep 16, 2024 16:15
"typically". Ouch. That also implies "not always" Ugg.
Sep 16, 2024 16:14
shared mutable state can be a very bad thing. So I'd like to start by nailing down who is suposed to be changing this things state.
Sep 16, 2024 16:13
right but they wont let you change the API
Sep 16, 2024 16:13
Now soon as you check it out is it really that weird for the client to be setting it to damaged? Whose responsibility is that really?
Sep 16, 2024 16:11
Problem is, you have no way to build a new BookCopy from an existing ID. No API that accepts IDs. So it really feels like you're stuck holding the mutable in the client.
Sep 16, 2024 16:09
Thing is, once you were required to return a libraries bookcopy to the client you were stuck with an exposed mutable class. What you can do is have the client make a defensive copy of it. All the client needs is the ID (#1234) but you're stuck with the API the assignment gave you.
Sep 16, 2024 16:04
But your assignment imposes many constraints. I don't think you need to do that here. Just trying to show you how your very correct impulse to protect your mutable book copy might play out in the real world.
Sep 16, 2024 16:02
you can scoop up all of an entities values and cram them in an immutable value object that represents the state it had then. Not now. Then.
Sep 16, 2024 16:01
Defensive copies usually come in the form of values, not entities for exactly this reason.
Sep 16, 2024 16:00
however, if you're honest about its identity and give it a new one, well now you can't check it out.
Sep 16, 2024 15:59
that's a confusing situation because you can set it to damaged thinking you've been honest about what you've done to the book only to find out you didn't change squat because this copy lied to you about who it was.
Sep 16, 2024 15:57
Right. So we hand them a defensive copy that they can read, but can't write, but we need the identity to be the same so that we can check out.
Sep 16, 2024 15:56
what exactly does the client really need it for?
Sep 16, 2024 15:55
If we don't want clients doing anything with the BookCopy why are we returning it?
Sep 16, 2024 15:54
Exactly why is that a bad thing?
Sep 16, 2024 15:52
now what happens to defensiveBookCopy?