rleisti
rleisti on Hacker News
It probably doesn't help when you insult the entire .Net community and imply that anyone unwilling to work ridiculous hours is lazy.
One of the things that a 'dynamic' type system (or as the author would see it, a restriction to a single type) imposes on its creators is the need to make that single type as useful as possible. This includes things like being able to easily lookup an object's class, documentation, methods, properties, uses (is it a sequence? is it a map?, etc.). As a result, I find the design of the core libraries of dynamic languages like Clojure more well thought-out than say something like .NET. It's simple things like being able to treat a string as a sequence (Haskell, a statically-typed language, does this), an 'object' as a map, a map as a sequence, etc. I wonder if it has to do with a sort of de-centralization of control; being dynamic seems to make a language more malleable and open to experimentation. Accomplishing the same things in a statically-typed language requires more planning (which means that after it ships, its too late).
I really appreciate a well-thought out static language like Haskell, but it still has some way to go for the common programmer. For now, I don't think that the practical outcome of this article is for programmers to abandon dynamic languages.
I got 21. I have a feeling that if I took this test a bunch of times (with different faces) that I'd probably get better at it.
At the beginning of April, I picked up a book called "The New Rules of Lifting". I like it, because it explains how to do a variety of exercises of six kinds: squat, deadlift, lunge, push, pull, twist. Also, it describes a few programs, which I find very good for motivation as it gives you specific things to do on a regular basis.
When I started, I acquired a barbell, two dumbells, a swiss ball and about 80 pounds or so of plates. I quickly got a squat rack (just something simple; you can only lift so much up to your shoulders and drop it back down safely), but I only recently got a bench. I now have over 200 pounds of plates, which I got at a used-equipment store. I've found that you need a lot of weight for a) squats and b) so you can move from one exercise to another quickly without having to move plates from the bar to the dumbells.
I also got a "power gym": the pull-up device that hangs in a door frame. With slight modification to one of my door frames in the basement, I found it works pretty well.
Step 2: Don't follow random advice that doesn't take into account the particulars of your situation.
I wonder if this would change the popular morality of suicide? What if you're 800 years old, and you truly feel that you've had enough? Should you be forced to keep on going, potentially indefinitely?
Or even just knowing when to step aside and let the next (evolved) generation take over? (or will that still naturally just happen, via accidental death or death by lack of resources to live)
Problem: board members want to pretend the problem doesn't exist.
Solution: install token software and pretend that the problem is solved.
An invention market for software is complete BS. All the effort involved in producing a software patent can be summarized as a small amount for the idea, and most for wordsmithing. The real value comes from the implementation, which is only loosely connected to the patent; just as the relationship of any software to its initial specification.
It would mean that if you port windows to a large endian machine, then you can't share registry files (ie. as in roaming profiles). It's not as much about the file format as it is about the implementation (simply dumping C structures to disk). I think what the author is saying is that it's just a crappy implementation.
It isn't really the same. Anyone that needs access to something in /etc can get what they're looking for without having the first pierce a difficult binary format. Deciphering what they get back is another issue, but typically it's just a text file, so you can generally figure out how to parse it if you need to.
You could create a library to read the setting, and everyone could just use the library.
I like the Unix way better myself, as it's more about building up functionality through composition, rather than setting out to create grand unified architecture. Speaking (possibly too) generally, I find large architectures tend to be harder to fix.
'Fair' is tied to a moral context, as in "morally pure, unblemished" (from
http://www.etymonline.com/index.php?term=fair). So an argument about what's 'fair' is an argument about what is morally "pure" (or good). Then that depends on your beliefs about morality.
In a more general sense, increased productivity means more value is created per unit cost. This could mean the same value with less jobs; it could also mean the same amount of jobs with more value.
A growing pool of displaced labour is also a growing un-tapped resource (or a growing revolution, depending on how well society manages it).
Furthermore, I do it myself to prevent complications down the road. I've found that it's all to easy for one piece of misinformation slipped into a conversation to snowball into something much bigger, and based on a false premise.
You can hope that they encrypt your password; but never trust that they do. Use your own password database.
Are you saying Turing didn't invent the hourglass notation? j/k
It seems to me that a central part of this argument is having "...suddenly had to allocate a bunch of resources to customer support and bug fixes...".
Building the smallest possible marketable product doesn't mean building a low quality product.
Doh!
It would have made more sense if I had some other piece of information to inject in, like if you had a database reference that needed to be passed in to the Delete() method.
Then:
AddButton("Delete " + obj.ToString(), () => obj.Delete(db));
Vs.
var d = new DeleteHandler(obj, db);
AddButton("Delete " + obj.ToString(), d.DoDelete);
EDIT: fixed
You could try an example showing what a closure does 'under the hood' by showing an equivalent non-closure example, like:
With Closure:
foreach (var obj in objects) {
AddButton("Delete " + obj.ToString(), () => obj.Delete());
}
Without closure:
class DeleteHandler {
public DeleteHandler(TYPE obj) {
_obj = obj;
}
private TYPE obj;
public void DoDelete() {
obj.delete();
}
}
...
foreach(var obj in objects) {
var deleteHandler = new DeleteHandler(obj);
AddButton("Delete " + obj.ToString(), deleteHandler.DoDelete);
}
Agreed. But the amount of value you get out of the product vs network is subjective to the user and to the product. It depends on how independent you are as a product user, and how easy the product itself is to use.
Take Microsoft Windows for example. Regardless of its own intrinsic value, I think that a lot of people would chose it over, say, a Mac (or Linux) purely based on their own social network, due to the ease of which they might be able to get help and share experiences. The opposite is also probably true (if everyone you know uses a Mac, you'd be more inclined to use one yourself).
For those that like what some other OS has to offer, and they aren't afraid of figuring things out for themselves, then they would go with that regardless of any network effect, because they're more interested in the value of the product itself.
The network affect of a bug tracker is that having a larger user-base means:
(a) more people have run into the same problems as you, and have either posted their own solutions or pressured the company into fixing them
(b) more people may have built extensions on the product
(c) more people may have written helpful tutorials on the product
(d) more people will know what you're talking about when you speak in the product's language.
I think there needs to be more 'marketing' around the idea of simple software that's easy to use and doesn't screw up. Not enough people really appreciate these things in the quest for more features.
Ruby does have libraries for dealing with real numbers with an arbitrary precision.
Maybe some sort of namespacing on tags would fix that; ie. so that your 'conf' tag for a software project doesn't conflict with the system 'conf' tag, which may have a different set of permissions.
CouchDB is ACID compliant
I've seen some people suggest hitting the ctrl key with the 'side' of your hand instead of your pinky. I've found that using the bone directly below your pinky (towards your palm) also works (at least in my case), and is fairly comfortable.
I was inspired to do this by Aikido, where one of the techniques is a pressure-point application using the bones on the inside of your hand to apply specific pressure while holding someone's wrist in a grip.
What I'd really like, is a way to express xml in xml, so I can be super-productive all day long recursively writing a single xml document.