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.
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.
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.).
git co master (switch to main 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 (apply remote changes)
git co scraper-abstraction (back to my branch)
git rebase master (apply pulled changes to my branch)
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.
The Git fast version control system—of course I knew of it, but hadn't ever used it. It has some great features, although its model takes a bit of getting used to. The best is being able to make branches and commits locally, without a repository (effectively a private repository). I was working on some code for the XBMC media center—scraper abstraction toward a goal of being able to use Python and other non-XML scrapers, since the XML scraper system is painful—and I was using the Subversion repository, and had a lot of changes stacked up locally which I bundled into a diff. Then I thought that I'd prefer to be able to commit these changes and move on to further modifications, but Subversion didn't do this, or at least not well; Git did. It also made it easy to split up my current changes into multiple branches and commits, and even to modify past commits (forgot to add a file… thought git commit -a would pick it up).
The Mediainfo command-line utility and library—I was using file to try to compare two different movie files' bitrate and dimensions, but one was MP4 and it only said "ISO Media, MPEG v4 system, version 1" (which really isn't bad for a utility that is supposed to identify file types and not be too concerned about content). I searched around and found Mediainfo, and found what I needed to know.
I've already mentioned symlink trees, but I found another use for them, not a new one by any means: shadow source trees. cp -sfr with an absolute path can probably create them, but I built a new pH.file.lncopy function in Python (using my pH.file.find) and had it run from a lnfix program with the paths in it. My lnfix utility is superior to cp since it will do incremental updates, and skip version control directories. The build tree points to the git repository, which keeps generated files (object files etc.) out of the repository and allows use of the Gentoo build directory and tools with my local modifications, and makes it proof against random cleaning.
The Visual Studio (2010) development environment. Now, working at Microsoft you'd think I'd use it at work, but I only use it as a debugger; I use Source Insight as editor and Office has its own build system using perl, build.exe, and nmake. I was looking for an IDE instead of my usual Vim in GNU Screen over PuTTY. I tried a few free ones, such as Komodo Edit, and found them lacking (e.g., Komodo Edit liked to randomly screw with my project's files), so I decided to try VS for XBMC (over a share). Fortunately there was a VS solution and projects in the tree already, and it scanned things in reasonably quickly. I did run into a bug where it wasn't finding includes (and hence definitions in them) in relative paths—"go to definition" didn't work, but oddly the code definition window did—but I added in some absolute paths and it sorted itself out.
I was forgetting to set "expandtab" (Vim setting to use spaces rather than tab characters) when editing XBMC sources; but I found a recommendation on StackOverflow.com (a site where more and more answers to my technical web searches tend to be located) for the local_vimrc Vim plugin, which searches up the directory tree for an applicable settings file (with some security checks).