::::: : the wood : davidrobins.net

My name is David Robins: Christian, lead developer (resume), writer, photographer, runner, libertarian (voluntaryist), and student.

This is also my son David Geoffrey Robins' site.

Taxation = robbery: an exploration

Political, Law, Economics ·Thursday December 30, 2010 @ 21:59 EST (link)

In For A New Liberty, Murray Rothbard asks: "What distinguishes the edicts of the State from the commands of a bandit gang? Indeed, it would be a useful exercise for nonlibertarians to ponder this question: How can you define taxation in a way which makes it different from robbery?"

I thought this might be an interesting question to pose to Facebook's question feature; and so I did, using the question exactly as worded: How can you define taxation in a way which makes it different from robbery?

I stipulated: Please, no "social contract" type myths or other religious arguments and magic implied contracts, and try to abstain from fallacies—reason and logic are preferred.

And here is "A Summary and Categorization of Answers Proffered":
  1. The Irrelevant. These answer entirely different questions and do not have relevance to the particular question being asked. For example, people mention, as if it answered the question in the negative:
    1. How the proceeds of taxation are used differs from other robbery and can sometimes help the victim. But this occurs after the act of taking and is not relevant to it. (A question to encourage discussion of this might be “Are you happy with how your taxes are used?” or similar.) And charity should be voluntary.
    2. Their own or even a few others’ happiness with their tax level. A few people’s happiness with the system does not change the act.
    3. The ability to vote to change it. Again, this is outside of the scope of the question (and it is not moral to infringe on the rights of an individual because you outnumber them). A slight variant which also relies on majorities is the purported ability to revolt to change it.
    4. How will the roads be maintained (the poor be educated, society not collapse into chaos) without taxes? Entirely irrelevant to the act of taking (and the answer is: privately, the same way shoes are sold and skyscrapers are built and maintained without taxes).
    5. If you don’t like taxation, move elsewhere. Also irrelevant to the issue of the extortion being offered; the story of a woman being raped in her own house, told “If you don’t like it, leave” and responding “But this is my house!” is a good parallel.
    6. Any questions about a society without a government that can tax (e.g., Objectivist minarchist government funded by contributions, or stateless society). These are interesting things to think about but not directly relevant to the Question. If anyone wants to create such questions I’d be happy to continue discussion there.

  2. The bizarre.
    1. Magic contracts that, without signatories, acceptance, or terms, somehow bind people living on their own (or rented) property and trading voluntarily with others; “social contract”, “you consent by not leaving”, and so on.
    2. The government owns everything. Ridiculous indeed: private property owners own their property, everything else is really unowned under the fiction of “public” property, and can be homesteaded (practically, only if you have enough military power to fight off the state; but still, might is not right).
    3. A variant of the “magic contract” idea is the “payment for services” idea. But no other entity can force you to pay at arbitrary rates for services you don’t want, or could get much cheaper in a competitive market; the force part makes it robbery.
    4. Since you know you will be made to pay on entering a particular region, you have consented by entering. The problem is of course that only consent is consent – knowing harm will be done to you does not make the harm moral, just known. This is similar but not identical to (a).

  3. The technical.
    1. Robbery is defined as “illegal” theft. Some definitions include that; some don’t; but this is effectively a special pleading fallacy (the entity doing the taking also defines “legal”). I’m happy to modify my question to say “without special pleading or treatment for the state” (i.e., judge the act, not who does it).
    2. Robbery requires the taking to be in the immediate presence of the victim. Some definitions do, indeed; I’d be happy to expand the question to any sort of wrongful taking of property: extortion, theft, and so on.
Something I think I'd like to explore a little more is property rights in general. I appreciate Locke's homesteading definition, and Rothbard's acquisition by voluntary trade (Nozick and Rand follow similar paths); but an out for statists today is to claim that the state is just a private entity that is demanding arbitrary rent (1(b), above). Now, the obvious counter to that is that they never claim such a thing, don't operate at all like a business, didn't homestead the land, use force against peaceful people, and so on. However the concern (among those of a socialist bent, including some self-described anarchists that still want a redistributing state) is that in a free society a corporation could theoretically legitimately acquire all the land in an area—it's highly unlikely in practice; when they were seen to be attempting it people would step in to counter or increase their prices a great deal—and act like a state. So I'll think about it and write up something soon; in the meantime, take a look at the discussions on the Facebook question asking What is the basis for private property as a human right?.

Books finished: Defending the Undefendable, Wizard's First Rule, Dragonflight, The End of Religion, For a New Liberty.

Python: WSGI, templating engines, and the C API

News, Technical, Photography ·Sunday December 19, 2010 @ 00:55 EST (link)

I set up WSGI on my web server (Apache, with mod_wsgi). I believe the last time I checked the WSGI specification hadn't even been updated for Python 3 (due to the Unicode changes). The major web frameworks (such as Pylons, CherryPy, Django, and Twisted) don't have stable ports yet, but most have a branch or some initial work, tests passing, etc. I set up .py files to be handled by WSGI and installed Mako and Jinja2 as templating engines but settled on Mako as it's a little more powerful than Jinja2. That also means it lets you do perhaps more than a templating engine should, but it's easier to self-restrict when using a more powerful engine than extend a limited one. Perl's Template Toolkit, which I used with mod_perl elsewhere on the site, is just the right level of power for templating; supposedly it was an inspiration for Mako (which replaced the now obsolete Myghty).

I ported my pH parser from Perl (XS and C++) to Python's C API. This was my first use of the Python C API, and it went quite well. The Python/C API Reference Manual and Extending and Embedding the Python Interpreter were my primary sources, and a vast array of web searches (many of which ended up at Stack Overflow, a great merit-based programming Q&A community). One problem I had was instantiating a Python (non-C) object that I used to represent elements in the parse tree. I started with PyObject_New and added PyObject_Init, and found very little help online but some examples did lead me to try calling PyObject_CallObject on the PyTypeObject, which did the right thing—constructed the object (invoking the standard __call__ implementation for classes no doubt).

I also got to use distutils, which I'd avoided so far by having my Python modules in separate tree added to the module path; but C modules need a proper build and install. It was, fortunately, quite easy to do, even with __init.py__ and a combination of Python and C modules in the pH.parser package.

My current project, after these segues, is to develop a decent Javascript embedded image slider/viewer. I may use it to improve the new (internal, probably won't be public) "photo manager", which I'll use to improve tagging and organization that I was hacking on sporadically. For example, it now uses a new window to pop up image details; that's very '90s; something like Lightbox, using a Javascript layer, would be far more appropriate.

There are several I'm looking at for inspiration: popSlides for great popups and transitions (probably inspired by the older Lightbox), but it has no thumbnail navigation; popeye 2.0 due to the neat trick of growing from thumbnail to detail view in place, although horrible choice of placement of controls (mid-image) and darkening the image; GalleryView is a very basic filmstrip gallery, as is jMyCarousel; Smooth Div Scroll for the, well, smooth scroll, autoscroll, and nice edge controls via mouse-over (and speedup if you press the button); ImageFlow has a neat effect of showing central items larger and having others recede, like the Mac dock, but has horrible navigation; and AD Gallery is quite smooth and adds good-looking captions but shows the larger image inline, where I want a popup. These are all jQuery-based (some use jQuery UI); I settled on jQuery, although I also use Prototype/Scriptaculous.

A synthesis of the best features of all of these (for my purposes) will be developed, and I'll embedded it in these entries as appropriate rather than using the present static thumbnail system. It should also make it faster for me to put up entries with photos, since I won't need to worry about layout any more: I'll automate it, and just pick the photos I want to use and let my new engine handle the presentation.

Books finished: Heidegger and a Hippo Walk Through Those Pearly Gates, Basic Economics.

Word on WoA/SoC/ARM

News, Work ·Friday December 10, 2010 @ 17:02 EST (link)

We got Word running (after my porting work) on the ARM architecture (aka "SoC", System on a Chip, or WoA, standing for something else (Windows on ARM?), which will likely be running on a tablet; none of which we can bruit about in the halls). But I wanted to privately log it as a milestone.

(Since it was mentioned at CES in January 2011, I think it's safe to publish now! Note: entry date is correct but it wasn't made public until April 29, 2011.)

Books finished: Forge of the Elders.

The answer to statist "like it or leave" fallacies

Political ·Sunday November 21, 2010 @ 01:50 EST (link)

From a comment on The Stranger's blog, the Slog, on entry Why The Stranger is Wrong About Everything, by intern Matt Luby. The comment's author is only given as "cubbybear" and I don't know if there's an original source beyond that.
To everyone that says "if you don't like the violence inherent in the system then leave", I have a short story:

You are a woman and throw a party. Late that night, a man at the party tries to rape you. You scream at him to stop, but as he pins you down he whispers in your ear, "if you don't want to get raped then you should just leave."

"But this is my house," you respond.

Strangely, most of your fellow party goers side with the rapist.

Books finished: The Road To Serfdom, The Pig That Wants To Be Eaten.

Reassembling the Ruger

Guns ·Saturday November 6, 2010 @ 20:54 EDT (link)

I finally got around to finishing cleaning the Ruger 10/22; it had been sitting on the other couch disassembled, waiting for my brass hammer and punch set to arrive, but they arrived a few weeks ago and that excuse no longer worked. While Honey rested after getting back from watching Disney on Ice with her friend, I finished cleaning the Ruger—took out the bolt since I hadn't yet, and cleaned the spring too. This page and this video were helpful.

A few tricky points: getting the bolt back in (pushing the spring back by levering a screwdriver and then holding the cocking handle left the part that needed to line up with the bolt canted a little, so getting the bolt to seat properly proved tricky. After that it was mostly easy—the trigger assembly attachment pins were nowhere near as easy to put in as the video showed (he just pushed them in; I had to use my brass hammer). A pin near the trigger—one I hadn't touched—had worked its way out a little and stopped the assembly from fitting into the stock, but a few whacks from the brass hammer fixed that too (when all you have is a hammer… fortunately I had plenty of other tools).

Anarcho-capitalist meetup

News, Political ·Friday November 5, 2010 @ 22:47 EDT (link)

We attended our first meetup with the Seattle Anarcho-Capitalists, picking up a few other Microsofties too. We met Elliott at building 36 @ 1820, then drove to Bellevue to pick up Eric at a Microsoft building on 112th. Took longer than we expected to get there—traffic was bad. It was actually less bad going to Seattle; we parked in a lot near Jeremy (the host)'s apartment. Had a good time eating and drinking and socializing with the an-caps; met Matt, the intern at The Stranger who wrote Why The Stranger is Wrong About Everything on their blog ("the Slog"), and talked with him and various others for a while. Bitcoins were a frequent topic of conversation, thanks to Elliott. We headed out around 2200; Eric had gotten a ride to another Seattle venue with his girlfriend, and we took Elliott back to building 36 to pick up his car—and me mine. I was almost out of gas, so Honey followed me to the nearest gas station; we'd taken her car into Seattle since it was full and was a four-door.

Books finished: Nullification, Knife of Dreams, The Truth About Muhammad, The Politically Incorrect Guide To American History.

Cases in Constitutional Law #5: The death of federalism

Law ·Saturday September 18, 2010 @ 21:25 EDT (link)

It has been almost nine months since the last part in this series, covering the cases in Chapter 2, The Legislative Branch. My views may have become more voluntaryist since then (if possible), I don't generally disagree with any of my previous conclusions in the series (1 2 3 4). But going forward you will find two types of argument: one in the context of the Constitution as a binding document and state (general sense) power as legitimate, and another following the pure voluntaryist rationality of Spooner's "No Treason: The Constitution of No Authority". While the second frame is fact, and moral, the first is the one we are, by main force, required to live in, so some examination of it seemed profitable to me at the time; but see below.

We resume with Chapter 3, The Executive Branch.

[] Ex Parte Milligan (1866): (Ex parte, Latin, from one party.) Milligan, a civilian, was arrested in the "military district" of Indiana by order of district commander General Hovey, and was tried in October 1864 by a military commission, found guilty of initiating insurrection and of various treasonous and disloyal practices, and was sentenced to death on May 19, 1865. On May 10, he sued for a writ of habeas corpus due to the unconstitutional character of the proceedings against him and claiming right of trial by jury. The supreme court (correctly) found that the president and congress did not have power to set up military tribunals except in an actual war zone where civil courts were not functioning; sadly, some of the justices thought that such tribunals could be set up by congress, albeit not by the president alone. From the majority opinion written by Justice Davis:
The Constitution of the United States is a law for rulers and people, equally in war and peace, and covers with the shield of its protection all classes of men, at all times, and under all circumstances. No doctrine, involving more pernicious consequences, was ever invented by the wit of man than that any of its provisions can be suspended during any of the great exigencies of government. Such a theory leads directly to anarchy or despotism, but the theory of necessity on which it is based is false; for the government, within the Constitution, has all the powers, has all the powers granted to it which are necessary to preserve its existence, as has been happily proved by the result of the great effort to throw off its just authority.
This starts well, although of course it and any opinions of the court must argue within the frame of the Constitution as mentioned above, and it makes the common error of assuming the Constitution binds the people, who have made no contract to adhere to it, when it only binds the state, which has made such agreement: politicians and soldiers swear to uphold it. (Thus it can give no power over individuals, even, as the justice claimed, to preserve the existence of the state, but it does restrict the violence of the state, which is an immoral dominion in any case.) Note also the final hat-tip to "might makes right" in the matter of secession, a principle that the supreme court would generally not uphold except in this area where their very existence requires that they operate with blinders on. It is also sad to see the unlimited powers they ascribe to a commander of a military district so long as actual opposition is present—certainly the principles of the Revolution where the rights of free men to choose their own leaders are dashed (again, disregarding the error of majorities imposing their will on the rest for the present frame)—and the only sop thrown our way is that, "Martial law cannot arise from a threatened invasion" (emphasis mine) and "Martial rule can never exist where the courts are open, and in the proper and unobstructed exercise of their jurisdiction." In a free society, it can never exist at all; but even its use in the War for Southern Independence was to assault the principle of federalism upon which the myth of the United States was built.

[] In re Neagle (1890): (In re, Latin, in the matter of, i.e., without adverse parties.) Supreme court justice Field, after deciding a matter against a Mrs. Terry, represented by her husband, was threatened with death by Mr. Terry should he return to California. Deputy marshal Neagle was detailed as a bodyguard for the judge. Terry tried to kill the judge in a railroad restaurant, but was shot by Neagle when he pulled out his knife (knife to a gunfight; really?) Local authorities arrested Neagle for murder, but he was released from their custody upon receipt of a writ of habeas corpus from the federal circuit court. The appointment of the Marshall was not through an act of congress but an executive order under authority of the president (i.e., through a federal department). The myth used to allow the release from state custody was that the marshal was acting in pursuance of the "law of the united states". The decision itself admitted that such would be taken into consideration in the murder case. This decision goes to increase the power of a national rather than federal government and gives federal actors unjustified immunity from the states that created them.

[] Youngstown Sheet & Tube Company v. Sawyer (1952):

This will be the end of this series. I have tried to re-engage with reading and writing about these cases, but with little success, and in a flash of clarity the reason came to me today (December 23) while I was wrapping some of my wife's Christmas gifts: the cases aren't important to me any more. My priorities, my viewpoints, have changed, and while the Constitution was a good start (as originally conceived, not as presently ignored), as a voluntaryist, examining the historical cases is still of some interest to me, as is the study of any history, but eventually it is just the rearrangement of deck chairs on the Titanic. The Constitution is a document that creates the federal government as an agent of the several states; it is ultimately an apparatus of state, i.e., initiation of force against peaceful people, and as such the study of its failures and the encroachments of the state—or the occasional bone that the ruling apparatus throws in liberty's direction—is unhelpful to one concerned with freedom, although I reserve the right to make some limited and selective future commentary on cases if I feel I can gain from the examination. For further reading I would highly recommend all of Andrew Napolitano's books, which do an excellent job of examining the erosion of American liberties through abuse of the Constitution, as well as Mark Levin's book Men in Black. Some cases went well; some poorly; but in all they were decisions enforced by violence, and deep consideration to write in-depth commentary is unprofitable when compared to advocacy of freedom in pure form.

Many cheerful facts about the classes of SQLAlchemy

Technical ·Sunday September 12, 2010 @ 01:52 EDT (link)

Stashing some SQLAlchemy (Python database toolkit, the only decent one I found that was compatible with Python 3) / Elixir (declarative improvements library) declarative object details I learned from scouring the 'net and perusing the source in this space… may they prove useful for others. Some of this is better documented than others—check the PyDoc: sometimes I'm just pointing out useful things to check among a large set of methods or attributes.

Entity class inherits from Elixir's Entity class; entity object is instance of same. Its database-related attributes contain regular types (e.g., strings); nothing special. .table is a Table object, .mapper is a Mapper object. Table.columns (and .primary_key.columns) are iterable ColumnCollection objects (which inherit from util.OrderedProperties and can be manipulated as collections, cast to list, etc.), and contain Columns.

For introspection, examine the object's .__class__; declared fields and relationships appear as InstrumentedAttribute properties, whose .property (hence .p) attributes can be (at least) sa.orm.properties.ColumnProperty or .RelationshipProperty. Both have .key, matching the attribute name, and CPs have a .columns list (most have one item, a Column object, but composites are possible).

RPs have some more interesting properties: .table, the foreign Table object (or .target, or .argument for the entity class), .local_side and .remote_side, OrderedSets of Column objects (from each side of the relationship); .local_remote_pairs (.l_r_p), a list of tuples, with our Column object first; ..synchronize_pairs (.s_p), like previous as above, but with the "primary" ("one" in "one to many") Column object first and the foreign ("many") second:
Path.files.p.l_r_p == Path.files.p.s_p == File.path.p.s_p, distinct from File.path.p.l_r_p.
This allows some useful entity introspection, like finding linked tables. The debugger trick of import pdb; pdb.set_trace() is useful for examination (view __dict__, etc.).

Later note: to get a useful properties list, unfortunately one has to go to private attributes (their fault): the object has a hidden, private (by convention, because of the initial _) attribute _descriptor which is an (Elixir) EntityDescriptor with some interesting properties, the most useful of which seems to be .builders which is a list of (Elixir) Property objects (Field, Relationship). All have .name which is the attribute name and .entity which is the entity class. Fields have .colname (string) and .column (Column). Relationships (e.g. elixir.relationships.ManyToOne) have .property as the(SQLAlchemy) property object (ColumnProperty, RelationshipProperty, etc.), ._target, the foreign entity class, .colname (a list of strings), and .foreign_key (a list of Column objects in our table). It only includes user-added properties, unlike .mapper.iterate_properties which contains a hodge-podge of properties and columns (i.e., both when columns have been renamed).

Even later note: gave up on Elixir. It may work for very tiny toy projects, especially where nobody understands metaprogramming, but it's not robust or well-documented enough. Pure SQLAlchemy is better documented and better able to provide the required facilities.

First XBMC patches committed

News, Technical, Media ·Saturday September 11, 2010 @ 16:58 EDT (link)

I've had some patches committed to XBMC, although the main change, a refactoring of the scraper architecture with a view to adding the ability to use Python (and other) scrapers, is still being reviewed. Breaking up the initial single patch was my reason for learning git, which makes it easy to break up changes and also allows for local commits without pushing to the remote repository. It also makes it easy to sync remote changes "under" mine. (Curious: there's a routing problem somewhere in the depths of the 'net which makes accessing xbmc.org and subdomains very slow, so I've been accessing the forums and bug database from a remote server.)

The next part of the change is to actually implement a Python scraper interface. The easy way is to declare the media access methods in CScraper virtual and create CXmlScraper and CPythonScraper, and create the objects appropriately when the add-on data is read (it uses C-Pluff), interfacing with the internal Python objects to load and run the code. The better way that I'm considering—in part because I want to use Python 3 and not be restricted in the modules I can use—is to make a more general module interface, or rather, collaborate with jmarsmall on one he's been designing. Difficulty: the internal embedded Python has its hooks very deep. I hope to persist with this, and eventually, through making useful contributions, get commit access and possibly join Team-XBMC.

PS: I checked back on an old fix I'd made to rtorrent (a great console BitTorrent client, flexible and easy to automate), and found it had (finally!) been committed. (Five months ago… fix was 11 months ago… I hadn't checked for a while, since I have a local patch for my Gentoo ebuild, so it wasn't bothering me any more, but I'd hoped the contributed fix would help others.) That was just a fix for a crash; nothing so complicated as I'm trying to do with XBMC. Being able to fix bugs and contribute back is a great win.

Rebasing a branch (remote sync)

Technical ·Friday September 10, 2010 @ 23:00 EDT (link)

While there may be better ways to do this, the way I have found to do a remote sync and ensure that the unpushed changes in my local branch of my git repository are kept around is:
git co master (switch to main branch)
git pull --rebase (apply remote changes)
git co scraper-abstraction (back to my branch)
git rebase master (apply pulled changes to my branch)
Some of these may be unnecessary or extra steps, e.g. because some of the commands take a branch, so co (which I have aliased to checkout) may be unnecessary. I may be able to just do a pull into my branch, something like (on scraper-abstraction):
git pull --rebase <remote repository URL?>
and now that I think of it it probably makes no sense to rebase master; since master is "remote-tracking" (which is the reason I don't need to tell it the remote URL?), a plain git pull (merge) should suffice, followed by, as before, a switch back to my branch and a rebase from master.

After the git rebase, my (local) commits that had been committed to the remote repository disappeared, which was as expected (of course, they exist at the point they were committed to master).

Still trying to figure all this out, so help from experts is welcome.

<Previous 10 entries>