This is Raul Miller's Typepad Profile.
Join Typepad and start following Raul Miller's activity
Join Now!
Already a member? Sign In
Raul Miller
Recent Activity
The issue which strikes me about this kind of hypothetical problem is how little attention is typically paid to the actual decision making process. Here we have some obvious alternatives (get the people off of the track, use the brakes in the trolley) and the typical excuse for disallowing those alternatives is "not enough time" or maybe "the brakes are malfunctioning". So that must mean we have very little time to make the observations about this situation and then act on them. But that kind of limitation should introduce a new issue: how can we be so sure? If we have almost no time to act, how can we be sure that our observations are accurate and complete? If we are talking about a military approach -- we accept that things are bad and we are trying deal with that (we are trying to to minimize destruction in a bad situation) -- then we do not question the premises, we accept them at face value and go for the smallest immediate body count. However, if we are talking about a civilian approach -- this is part of a larger situation, which needs to be dealt with -- then it's not at all clear that the situation being proposed is the situation which needs to be addressed. And, I like the cases presented on this page, because they hint at the scope of these issues. But really it goes way beyond this: That trolley should never have been allowed to get into this situation in the first place, and neither should the people. In other words, this could be an example of what can happen when you are taking action long after you should have gotten involved, or it could be an example of what you might think is happening when you think you know more than you really know.
Toggle Commented Jun 17, 2012 on Trolley Problems at Tomkow.com
1 reply
You can learn to code without learning Java. I imagine that you can learn Java without learning to code. (Or, that's the impression I get after seeing some java programs...) Anyways, we have far too many people right now who are satisfied with getting at their data only via a UI tailored to that particular data store, rather than by manipulating the data using simple "generic" tools. Even people that "know how to code" seem to not care that they are only capable of using toy systems, and are not capable of aggregate operations until someone else does their thinking for them. Do I expect that the New York "learn to code" initiative will fix this? No... In a sense, it's not "learn to code" that's needed it's "learn to work with data". And, before we can teach people that we need to learn how to do that properly, ourselves. Put differently, maybe people need to "learn how to get rid of code". But to do a good job of that, they are still going to have to learn to code. Such is life.
Toggle Commented May 15, 2012 on Please Don't Learn to Code at Coding Horror
First off, from my point of view, lazy sequences are the moral equivalent, in data structures, of i/o. While in one sense, they are "pure", they have an inherently time-dependent nature and an external dependency which you need to eliminate before they can be completely valid: Hypothetically speaking, if you evaluate [1..] it's going to stop sooner or later. It will never reach infinity -- you'll get a machine failure before then if you let it run long enough. The valuable part of this expression, then, is not the generator that counts up indefinitely, it's the (contained) function which maps generator state to values. So, anyways, this dichotomy between what I see as the useful parts of a lazy system and what I see as the parts that are i/o related make talking about the relationship between OO and FP a bit stilted for me. That said: it has been my general experience that pushing regular, simple computations into my computational "leaf nodes" and bringing irregular "application specific" computations up to towards my computational "root nodes" tends to result in a simple to understand and maintain system and a system that performs well. But, also: in my experience, the "information hiding" aspect of "encapsulation" tends to result in sub-optimal modularity. If nothing else, it's hard to debug hidden information. But sometimes "optimal modularity" is not a worthwhile goal. For example, when work involves "independent administrative entities" you need clear agreements on how they work together, and you need well defined interfaces and standards. And, OO can be a really good model for how to design these interfaces. If you can make FP fit the problem, it can be an even better model (simpler to work with, and simpler to understand), but that depends on the people you are working with and the nature of the problem -- it's not always practical to completely specify all of the relevant information that the system depends on. Anyways, ultimately the "goodness" of a system is a people issue as much as it's an architectural issue.
Raul Miller is now following The Typepad Team
Mar 21, 2012