Making the pool finite to begin with is an ugly way out of the dilemma, but it gives you an economic system whose properties are predictable. I believe this is why Bitcoin was designed the way it was. (More or less the whole reason for centralisation in traditional currencies is that the federal bank can exert control over inflation directly. That has great abuse potential, unfortunately, but it’s also a feature.)
We know that by far the best way to avoid bugs and security holes is to avoid writing code in the first place. This is no different.
Bottom line… any suggestion to “please build inflation into the currency” is all well and good, but there are devilishly tricky issues to tackle before such suggestions can go anywhere beyond wishful thinking.
]]>Given that I went to college to be an economist and stopped taking economics classes in a community college with an excellent economics program because I took all of them, I feel I should weigh in here just a bit.
Economics is actually an excellent tool. There are, however, several issues with it that aren’t well understood by the general public.
Combine all three of those issues and you’re guaranteed to get economic systems which are fantastic. On paper.
The problem is that the real world is complicated and many economists like neat theories which don’t always fit the real world (witness how most free-trade arguments deal with simple math and hypothetical examples and ignore the the failure modes of free trade).
So don’t dismiss a valuable field of endeavor. Rather, I would suggest that rational economists create models which are goal-driven but extremely flexible and decentralized (a perfect example of failure: the USSR’s five-year plans could not possibly have worked in the long run for reasons cited above and they usually didn’t work in the short run, either).
]]>Google Wave was great but everyone complained that there was a lack of people using it. Once Google opened it up, it was too late… Everyone who had been using it had already moved on.
]]>We’ll see if this iteration of Google’s social attempt will succeed. Facebook needs a competitor, and I can’t understand why the big guys like Google/Yahoo/Microsoft so far fail in this arena.
]]>http://kriswrites.com/category/business/
gizmo
]]>As with music, I’m only interested in DRM-free solutions when it comes to buying.
]]>--porcelain
option to git status
as that is guaranteed not to change between versions of git
Also, it is unnecessary to use grep x | awk
as awk is designed to do the line filtering itself.
So something along the lines of:
git status --porcelain | awk '/^.M/ {print substr($0,4)}' | xargs git add
The problem with this code is that it doesn’t handle the renamed form (X -> Y) of file names git status
might output. Also, xargs
does correctly handle space-containing file names on my system, but I don’t know if that is universal.
I think what you’re trying to do is avoid the need for this parameter and just have a default value. But I think in that case you want to use option, and empty is then just None (which is literally empty).
Basically, I’d separate out the idea of state from the idea of state + default values. If you start messing with transformers, you can actually express this compositionally. Then in the composed module, you’ll probably define some runDefault function based on
val default : 'a -> 'a option -> 'a
In the case of int
above, you’re defaulting to 0.
Or, we could go more abstract (but we might just be getting silly now), and say that this defaulting is based on structure with a zero element (of which option is just one example, and int is another), and we always take the 0 as the default. This is what you end up doing with the writer monad, which you can see in my library:
https://github.com/Chattered/ocaml-monad
The dependency on the structure with the zero gets captured in a functor.
]]>So here’s a question: what happens when we want to allow the state to be uninitialised? In most languages, the answer is obvious: we just set the variable to null.
But, of course, in Ocaml, we don’t like null. So instead, if we want a state which can be uninitialised, we want an option.
]]>It’s written by a guy who does Perl. :-) Which is what this site is about: people who do Perl.
]]>