LNX-BBC
We made a release of LNX-BBC 2.1 on Friday, but we're still writing the announcement. I'll write more here once the announcement is finished and posted. (If you're very impatient, just go to the home page and download.)
We made a release of LNX-BBC 2.1 on Friday, but we're still writing the announcement. I'll write more here once the announcement is finished and posted. (If you're very impatient, just go to the home page and download.)
Dan Bricklin on shoplifting vs. illicit copying.
Bricklin makes a memorable comparison:
Pirating works online is really more like kids watching a baseball game through a hole in the outfield wall, or listening to a concert just outside the gate.
In fact the desire to capture all positive externalities resulting from one's labor or property is so pervasive that the Chicago Cubs sued owners of buildings surrounding Wrigley Field because the building owners made money operating rooftop bars with views into the baseball stadium. (Do a Google search for "Wrigley Field rooftop lawsuit" or similar.) Bricklin assumes that people will feel that it is legitimate to derive enjoyment from being nearby a concert or game without paying -- but not all stadium owners agree!
It seems to be an awfully appealing strategy to make money by taxing other people for the use of positive externalities resulting from your activity, while trying to avoid incurring costs for the negative externalities. (Some people, like entertainers' managers and publishers, may focus on capturing more positive externalities, while others, like polluters, may focus on avoiding paying for the negative externalities.)
If we can find examples of traditional activities which produce benefits for others (sic vos non vobis!) and where there has not yet been a successful lobbying effort to create property rights in those benefits, these might turn out to be interesting sources of metaphors for the copyright debates.
The interesting fact is that there is probably no absolutely consistent single obvious moral principle about externalities -- but lots of people feel as if there is one.
My friend David Alpert visited. I hadn't seen him for about nine years, and he's working for Google now, living in New York, etc. It was a nice visit, and David accidentally did me a huge favor by finding the place in Sam Loyd's Cyclopedia of 5,000 Puzzles, Tricks and Conundrums where Loyd attempts to answer Lewis Carroll's question "Why is a raven like a writing-desk?".
[T]here is no absolute certainty of any answer having been intended, as Lewis Carroll never vouchsafed any replies to the curious problem pertaining to Alice's trip through Wonderland; nevertheless, my acquaintance with Carroll and his peculiar traits, convinced me that it was not altogether a haphazard query. My own guess, following the alliterative style which characterizes the entire work, would be "that the notes for which they are noted are not noted for being musical notes"; nevertheless, there is considerable scope for ingenuity and cleverness, as other answers, equally as good or better, might be suggested, like "because Poe wrote on both," "Bills and tales are among their characteristics," "Because they stand on their legs," "Because they conceal their steels" or "Ought to be made to shut up," etc., etc.
We also got to climb up Bernal Hill.
Make BitTorrent accept torrent filenames and URLs on the command-line as the final (or only) argument without --url and --responsefile, so that you can just say "btdownloadcurses foo.torrent" or "btdownloadcurses https://www.example.net/bar.torrent":
--- BitTorrent-3.2.1b/BitTorrent/download.py.orig 2003-05-03 23:50:30.000000000 -0700
+++ BitTorrent-3.2.1b/BitTorrent/download.py 2003-05-04 13:16:31.000000000 -0700
@@ -2,7 +2,7 @@
# see LICENSE.txt for license information
from zurllib import urlopen
-from urlparse import urljoin
+from urlparse import urljoin, urlparse
from btformats import check_message
from Choker import Choker
from Storage import Storage
@@ -89,10 +89,13 @@
if len(params) == 0:
errorfunc('arguments are -\n' + formatDefinitions(defaults, cols))
return
- if len(params) == 1:
- params = ['--responsefile'] + params
try:
- config, garbage = parseargs(params, defaults, 0, 0)
+ config, garbage = parseargs(params, defaults, 0, 1)
+ if garbage:
+ if urlparse(garbage[0])[0] in ( 'http', 'https', 'ftp', 'file' ):
+ config['url'] = garbage[0]
+ else:
+ config['responsefile'] = garbage[0]
if (config['responsefile'] == '') == (config['url'] == ''):
raise ValueError, 'need responsefile or url'
except ValueError, e:
Contact: Seth David Schoen