Friday, August 5, 2011

S&P downgrades America's credit rating

Regarding the S&P downgrade of America's credit rating...

Understandable: blame the politicians
Predictable: blame the republicans
Adolescent: blame the messanger (S&P)
Ultimately: blame ourselves

Are we looking at the failure of democracy, where we vote ourselves unsustainable largesse until the system crashes?

Quoting FT Alphaville...

Indeed, the Federal Reserve announced late on Friday that risk weightings would not be affected. Not much surprise there.

It’s all about the collateral, and the deposit crisis, remember.

The US is still, of course, rated AAA by Fitch and Moody’s — the good and the bad to S&P’s ugly. A split rating should mean fewer knock-on impacts. And as Martin Wolf always tells us — and anyone within earshot — credit rating agencies provide absolutely zero new information about US treasuries. It’s the linkages and the contagion (the horror! the horror!) that matter.

Therefore, we guarantee some European-style political bloviation, especially given the palaver over the maths, but the tangible impact remains unclear.

Still, feels like a big deal, no?

Wednesday, August 3, 2011

Link: Drones, and the future of war

Link: The DIY Terminator: Private Robot Armies And The Algorithm-Run Future Of War

[...] as the tech becomes more democratized and more deadly, what happens when anyone can assemble an army of killing machines?

Text, in an emergency

Headline: Durham 911 now accepting text messages

That's great news. I've long thought that emergency officials, Red Cross and other disaster responders should educate people to text rather than voice call, in emergencies. Whenever an emergency strikes, the first thing everybody does is overload the phone lines and cel towers with traffic; a disaster in NYC means the entire world places a call to NYC at the same time.

Make reliable short messaging a priority, when voice traffic far exceeds capacity, and far more people will be able to contact emergency services or loved ones, during a crisis.

Monday, July 25, 2011

Norway killer is not a Christian

(reposted from G+ comment)
The "fundamentalist Christian" claim is just simply not supported by Anders Breivik's own writings. "As a non-religious person, but still one that acknowledges and respects the impact of Judeo-Christian thinking on Western culture, [...]"

Breivik actively indicates he does not practice religion, and writes essays complaining about "evangelist, fundamentalist churches"

The first ~600 pages is devoted to alternately describing how Muslims are awful because of the nasty things they did to medieval Christians, and lauding medieval Christians for anti-Muslim violence, and Crusading against Muslims.

What Breivik does not do is claim any sort of Biblical or holy justification, or indicate that some higher power is guiding his hand or thinking. He never feels nor says he is acting as a Christian -- just the opposite, in fact.

It seems like standard "race war" agitprop, that attempts to draw from history examples of glory for, and crimes against, white people. Historically speaking that means Christians and Jews (which he does mention).

Yuck. I just feel nasty, having waded through that white supremacist crap.

Friday, July 22, 2011

Contents of our "go bag"

As promised, the following is our current "go bag" packing list.  All these supplies can usually be obtained from the camping section of your local Wal-Mart.  Inspiration was drawn from this list and instapundit (during Katrina), among others.

Standard advice is that you should be able to survive 72 hours (3 days) without any assistance from 9-1-1 and the local authorities. The biggest threat in eastern NC, where I live, is hurricanes.  However, I've had to weather Pitt County tornadoes (20+ funnels, 50+ killed) and ice storms (power out 3-4 days), where some of these items became vitally necessary.  I generally do not actually go anywhere with this stuff, so "go bag" is really just a handy place to keep disaster gear.

  • pencils
  • permanent markers (sharpies)
  • memo pad / small notebook
  • multi tool
  • whistle + compass + thermometer (all-in-one gadget, but the whistle and compass are the most important items, separate or together)
  • light sticks / chem lights
  • zip loc bags
  • trash bags
  • fishing line
  • duct tape
  • camp soap
  • water purification
  • first aid kit
  • rain poncho
  • Space blanket
  • 50' nylon / parachute cord
  • work gloves
  • Hand-cranked flashlight + radio
  • Filtering water bottle
  • 1-litre waterskin
The list is definitely incomplete, and needs updating.  Most notable things that are missing, and should probably be added:
  • Important documents, emergency contact and medical information
  • Copies of I.D. cards
  • Color photos of all family members
  • Cash, small denominations

Wednesday, June 8, 2011

Response to Adam Cohen, re bitcoin

Adam Cohen's post Is the cryptocurrency Bitcoin a good idea? (his answer: no) is getting linked in a bunch of places. It seems worth going through it point by point.

 

1a. Seeding initial wealth

He seems to be complaining that — oh no! — there is no central bank to dole out money in a "proper" fashion. I can think of worse ways to distribute new currency than rewarding early participants who took risks.

This is rather the point of a decentralized currency. The people creating new currency are performing very useful work of making the network secure.

1b. Mining is unscalable

Big hand-waving assertion with zero evidence. The proofs-of-work require zero network traffic to generate, and the profitability of mining will reach a natural equilibrium.

His assertion "It is a nonsensical system for a real currency, not to mention being obviously unscalable (what happens when everyone tries to mine bitcoins all day long?)" has already been disproven:

Today's miners, absent the odd crowd of kids and overclockers who own GPUs, are rapidly becoming very professional operations with datacenters worth of number crunchers.

Mining ("free money!") is already so difficult that the costs exceed the income for all but the most powerful ATI GPUs. People who want bitcoins have taken the obvious route: they buy them on the open market.

 

2. Deflation is evil

Economics is a social science, and this is an honest and on-going debate among economists. See e.g.

http://mises.org/daily/1241
http://blog.mises.org/3362/inflation-or-deflation/
http://mises.org/daily/4623

This is an argument between two theories of economics, not bitcoin. At best bitcoin could be thought of as a modern experiment in deflation.

But keep in mind that bitcoin is quite different from the foundations of much deflation study, which often includes an assumption that deflation is related to the -debt- practices within a currency. Issuance of bitcoins has nothing to do with debt.

 

3. Lack of convertability

"because Bitcoin is completely decentralized, no one is completely invested in the long-term success of the system."

Completely nonsensical. Everybody holding bitcoins is collectively invested in the success of the system.

For a startup currency that did not exist 24 months ago, the existence of multiple, liquid, -legal- (registered with govt) bitcoin exchanges trading USD/EUR/JPY/... is pretty good progress. As more people become invested in the system, greater convertability appears.

 

4. Something might go wrong, somewhere, sometime

Amusingly, you can apply the author's same argument to the current state of affairs in Zimbabwe. Something might go wrong. People might panic and bitcoin value might plummet.

Sure. But everyone invested in the system has an incentive to fix the problem.

 

5. In conclusion

The author does not fully understand all the incentives built into bitcoins, nor the current ways that bitcoin is scaling up to meet increased demand.

But as a startup currency, like any startup business, standard disclaimer applies: it is a highly risky experiment, but I would push back towards any claims of "scam."  There are a great many valid economic and technical criticisms of bitcoin; Mr. Cohen managed to miss nearly every one.

My own personal opinion is that the world has plenty of inflationary currencies, and it's a fun experiment to see how a global, decentralized currency with predictability behaves. A mix of styles is always healthy for an ecosystem.

Saturday, April 9, 2011

Python critique, from a new fan

Sometimes I can be stubborn. Since the early 90's, my preferred script language was Perl. Need something parsed, munged, extracted, or CGI-ified? It was done in Perl. My regular expression skills rivaled those of Chuck Norris.

My employer, however, leans quite heavily towards python. All experienced programmers wind up knowing bits of "many" of the popular programming languages; but with python, I avoided it. Every time I looked at python code written by others, it annoyed me and was a bit difficult to understand.

Now, after writing a few server programs in python, I've become a fan. My preference for script writing is now python, not Perl. Python code tends to be more "dense." I accomplish some tasks in fewer lines of code than in Perl (or C). This dense code tends to be of the "core algorithm" variety, with a lot of boilerplate argument and error checking elsewhere. After becoming experienced in python, I find my own code easier to review, because I have fewer LOC to review for a particular task.

Python is also very JSON-friendly, making JSON output of python data structures trivial. JSON has become the new XML on the web, because it is so compact and easy to read. Compared to perl, in python there is no separate $, %, or & required to distinguish between a value, an array (list) and a dictionary (key/value map). Python's handling of 'None' feels more consistent than Perl's undef behavior.

That said, I would like to highlight some core python problems that I feel marginalize it in key areas, or give it "less than professional" behavior:

  1. Global Interpreter Lock (GIL). Modern multi-core, hyper-threaded processors are very thread efficient, and modern programming languages have followed suit. It is therefore inexcusable that the primary implementation of python remains constrained by a global lock. From a technology standpoint, it is understandable: you are executing a bytecode engine which is executing your program, unlike C or C++ where your program is directly executing on the hardware. Understandable, but nonetheless a major blemish.
  2. Long tracebacks, at the drop of a hat. In my experience, a great many python programs dump a long, user-unfriendly traceback when they encounter some error. Often this is intentional, as tracebacks provide helpful debugging information. But python programmers, in my experience, often rely on this as their method of reporting problems to the user, e.g. relying on python's OSError traceback output to tell a user "file does not exist." Python programs can handle this gracefully, reporting a user-friendly error message, but many do not.
  3. Fragility in exception handling. Related to the previous item. While python-the-language's exception handling seems well defined and predictable, my subjective experience is that many python programs omit, intentionally or accidentally, exceptions that occur less frequently (but do occur in the field). Sometimes it is not obvious at all which exceptions may be produced by a line of code, and you can see an abundance of"oh, we need to handle this [exception] too" commits in git and svn repositories all over the world. Sure, this problem may occur in a C/C++ program, but python just feels more susceptible to this problem than C/C++/Perl.
  4. Lacks an always-sorted data structure. The B-tree was invented in 1972, yet in 2011, python still lacks a standard library key/value data structure with an always-sorted attribute. The closest python comes is with an OrderedDict, a data structure that must be manually re-sorted in its entirety, after new items are added, or heapq with its destructive traversal.

Regardless, python provides enough of a productivity boost that it is my new favorite script language. And that says a lot, from a formerly self-styled Perl bigot.