Tuesday, January 7, 2020

We've been poisoned by free

Reading a bunch of articles about how apps, including supposedly-reputable weather apps, like Accuweather and Weather Channel, harvest location data and sell it to data aggregators, who then sell it to advertisers, it occurs to me that the trajectory of the Internet itself led us to this. I mean, normally we’d be very suspicious of free things, right? Somebody’s making money off of these things, and if you don’t know how, you might not like the means. And that is, indeed, how things are working. But the thing is, it didn’t start out this way. In the beginning, there was a lot of free stuff on the Internet, because people were hoping that the free services they were creating would lead to real jobs some day. After that, companies made neat free services for promotional purposes, to draw people to their sites, and then as loss leaders, to persuade people to buy other products if they released something useful for free. Plus, even before the Internet, there was freeware and shareware, with developers making things either genuinely out of the goodness of their hearts, for experience and exposure, or in the hope that enough people would pay to make it worthwhile. And then there was a lot of free stuff powered by ads. And don’t even get me started on Web browsers, which have never (with occasional exceptions) had any visible means of monetization, and yet have high development and marketing costs.


The point is that for a very long time, free things online were both ubiquitous and innocuous, so we all became conditioned to accept free stuff without questioning it. That tendency is now being exploited to, well, exploit us, to use our information in ways that could possibly damage us someday, without us ever knowing about it.


I don’t necessarily object to my information being used to provide me free stuff; I participate in store rewards plans, after all. And if I can get free services on the Internet by allowing my location data to be used in aggregate so that retailers can better cater to their customers, why do I care?


Well, the answer, as the articles linked above describe, is that it’s fairly trivial to use that “aggregate” data to determine exactly who is doing exactly what, and that’s a major problem. Anything that could be used to blackmail you, or as evidence in a criminal investigation against you, should at least be something you’re aware other people have.


I don’t have an easy answer to this, except that, as Adam Grossman notes, Apple should set clear policies for data collection, instead of relying on privacy policies that no one reads or understands, to force app developers to make clear to users just exactly what their data is being used for. I don’t agree with Adam that such collection should be banned, just that it should be put explicitly in the user’s control. If that means that the app doesn’t work if permissions aren’t granted, fine! That’s my choice.


I just thought it was interesting to note that this state of affairs wasn’t necessarily inevitable, but followed from how the culture of the Internet developed. Institutions, history, and expectations matter.

Wednesday, March 21, 2018

Create Your Own Personal VPN with Algo

(updated—Fixed links, updated instructions for macOS Mojave, and added instructions for Google Compute Engine)


I have known for some time that browsing on public Wi-Fi nets without using a VPN (Virtual Private Network) was a bad idea, because a hacker can easily sniff all unencrypted traffic, possibly compromising all manner of personal data. For this reason, I have had a free TunnelBear account for years. It was great, because it offered 500MB of free data per month (+1GB if you tweeted about them, which I often did), and I essentially never needed more. On those rare occasions I did, I switched to cellular, or just gave up and turned off the VPN.


The problem with this approach is that I had to manually connect to TunnelBear every time, which I often forgot to do, or even didn’t know was necessary, as the iPhone automatically connects to known Wi-Fi networks every time unless you specifically tell it not to. And even when I did remember, connecting manually leaves you open to security leaks. So I have for some time wanted a free or cheap way to make my iPhone auto-connect to a VPN whenever it connected to an untrusted (i.e. other than home or work) Wi-Fi network. Cloak VPN (now known as encrypt.me) would do it, but it was expensive, at $10/month (although I now see that they have a limited plan for $3/mo; not bad), for something I needed only occasionally. I used their free trial, then uninstalled it. Then I tried using Activator when my iPhone was jailbroken. This worked, but drained my battery life like crazy, so I gave up on it and went back to TunnelBear, which, though it was either always-on or manual-connect, had the advantages of being free, user-friendly, and gentle on my battery.


Still, I would occasionally get frustrated and Google around looking for a better solution. I did run across something, but it looked too technical to try using my iPhone alone, and of course I never thought of it when I was at my computer: custom profiles. Well, today I finally got fed up enough that I remembered to do it once I got home (well, alright, I ran across an iPhone browser tab that I had left open), and decided to give it a shot. In the process, though, I found an even better way than that article described: Algo (named after Al Gore). It’s not (nearly) as user-friendly to set up as TunnelBear, but it will automatically connect on untrusted networks, it’s free(ish), and it lets you set up your own VPN, so you don’t have to trust some faceless VPN company.


Edit: In the process of setting up Algo, I discovered that TunnelBear had added the ability to add trusted networks, which is what I had wanted all the time. So if you don’t plan to regularly use more than 1.5GB of data per month while connected to public Wi-Fi networks (or are willing to pay $10/mo for unlimited VPN data), and you trust TunnelBear not to misuse/sell/accidentally compromise your data, just use that. It’s free, easy, and works great (though be warned that, like any commercial VPN, TunnelBear is not without flaws).


However, if you’re interested in setting up your own, personal VPN for cheap, and aren’t averse to getting your hands a little dirty in Terminal, read on!


First, a warning: VPNs are not a panacea. They don’t make you completely anonymous (use Tor for that…though it comes with its own problems). They don’t protect agains the fact that just connecting to a Wi-Fi network can identify you. Heck, even having Wi-Fi on means that you can be tracked, and VPNs can’t do anything about that (although iPhones, at least, have been immune from this particular problem since iOS 8). What it can do is ensure that your data cannot be sniffed out by local hackers, and it can also prevent unscrupulous ISPs from seeing/modifying/selling your data. Note, however, that your VPN service can do all of those things, whether or not they choose to. That’s true to a degree even with Algo; whatever hosting service you’re using theoretically has access to all of the data you transfer over the VPN. However, Amazon (or whoever you use) probably doesn’t know (unless someone goes and checks) that you’re using a VPN on their service, so they have little incentive to snoop. Don’t expect any of this to protect you from a warrant from the FBI, however; that’s a whole ’nother level of security, that we won’t be dealing with here. Maybe if you set up Algo your own Ubuntu server on an encrypted disk on a computer you own, the FBI couldn’t easily find out what you had been doing with a warrant. Maybe. Just recognize that everything has tradeoffs, and there’s no perfect solution.


Following is a step-by-step list of instructions to get Algo installed on Mac and iOS devices. These instructions can be easily adapted for other systems, but I’m focusing on Apple boxes. None of this is my own invention; I drew from various instruction sets around the Internet, particularly MacObserver’s and, of course, Algo’s. For simplicity, these instructions assume you’re doing this on a Mac running macOS Mojave (though the instructions will likely apply to any proximate version of macOS) and using Amazon EC2 as a host. Amazon EC2 is free for a year (if you stay within Amazon’s rather expansive limits). I’ll try revisit this with more info after that year expires; I don’t mind paying a small amount for on-demand VPN, but I’d really rather not pay $10/month for something I use only occasionally.


Update: My Free Tier has expired; for the first month since, my bill was $9.10. This stacks up well with other services like Tunnelbear. If it’s that much every month, signing up for a Tunnelbear annual plan would be cheaper; we’ll have to see if that’s the case. || Eep! Looking more closely at my bill, I see that most ($8.20) of that bill is for 720 hours of computing time—in other words, continuously, whether I’m actively using the VPN or not. So no, this isn’t cheaper than an annual plan from Tunnelbear. DigitalOcean, another Algo-compatible host, is only $5/mo, so that could be a better option than Amazon EC2. However, I’ve heard that Google’s cloud platform, GCP, doesn’t charge for computing hours for VPNs the way that Amazon and DigitalOcean do, so that could be a nearly free option (and Google Cloud also has a 1-year free trial, so at least I can get another free year). I’ll include instructions for GCP below.


The reason I’m doing this is that the instructions I’ve seen are not clear or detailed enough; I had trouble figuring out what I should do at several points and had to research it, so I’m transmitting the benefit of that to you. The settings I chose are for securing public Wi-Fi connections, not your home network, though making a different choice is a matter of not setting one option. As noted above, these instructions are for Amazon EC2 or Google GCE; if you want to use another host, instructions can be found elsewhere, including in the previously-mentioned MacObserver article.


How to set up Algo using macOS


Note: Any text in fixed-width font is intended to be entered into Terminal.app. You should be able to triple-click on the listed command, choose Copy, switch to Terminal, and choose Paste. Done right, that will even press Return for you! Or, you can just type them as displayed.

  1. Set up a Cloud Services account.
    • Amazon EC2:
      • Create a free account at Amazon Web Services. They’ll ask you for a credit or debit card number (that has at least $1 on it) to verify your identity and charge you if you actually spend any money; that’s fine. If you stay within Amazon’s limits, this account is free for a year, and likely cheap thereafter. (I had trouble logging in after I created my account using Safari, so I used Google Chrome.)
      • From your Amazon Web Services Console page, choose IAM from the Services menu.
      • Select the Users tab.
      • Click “Add User.”
      • Enter your desired user name, then choose “Programmatic Access” below. Click “Next.”
      • Select “Attach existing policies directly.”
      • Choose “AdministratorAccess” in the list below. Click “Next.”
      • Review your choices, then click “Create User.”
      • Click “Download .csv.”
        • In Safari, this brought up a tab with the information in it, instead of downloading a .csv file. If this happens, Select All, Copy, Paste it into your text editor of choice, then Save it (as plain text) as credentials.csv.
      • Click “Close.”
    • Google GCE:
      • Install gcloud:
        • Make sure that Python 2.7 is installed on your system. Launch Terminal.app and type:
          python -V
          and press Return.
        • Download the 64-bit installer from the gcloud Quickstart page.
        • Expand the archive by double-clicking on it. You may need to install an expander such as The Unarchiver first.
        • Move the resulting “google-cloud-sdk”folder into your Home folder.
        • In Terminal, type
          and press Return. It will ask you a few questions.
          • Whether you want to send data back to Google is up to you.
          • When it asks if you want to continue, hit Return.
          • When it asks you to enter a path, hit Return.
        • Close that Terminal window.
        • Open another Terminal window.
        • Type
          gcloud init
          and press Return.
        • Accept the option to log in using your Google user account. This will open Chrome and allow you to log into your Google account and authorize Google Cloud.
        • Choose No when it asks you if you would like to create a project.
      • Log into Google Cloud and accept the license agreement.
  2. Download Algo. Unzip the resulting archive if Safari hasn’t done that for you already. You should have a folder in your Downloads folder called “algo-master.”
  3. Open the Terminal app.
  4. Type cd and then drag the “algo-master” folder into the Terminal. Its directory path should show up after “cd.” Hit Return.
  5. Now we enter a few commands in Terminal. If you receive any errors in this process, I’ve found that closing the Terminal window, making a new one, and starting from Step 4 usually works.
  6. Type
    python -m ensurepip --user
    and press Return.
  7. Type
    python -m pip install --user --upgrade virtualenv
    and press Return.
  8. Type
    python -m virtualenv --python=`which python2` env &&
    source env/bin/activate &&
    python -m pip install -U pip virtualenv &&
    python -m pip install -r requirements.txt
    and press Return.
  9. If you’ve never installed the cc command line tools, you’ll be prompted to do that. Go ahead and agree, it’s perfectly safe and required to move forward.
  10. After everything completes, type
    sudo nano config.cfg
    and press Return. You’ll be asked for your administrative password, and then a text editor will open. Under the section called Users in the file, replace the existing user names with whatever usernames you wish to use (you’ll have to use the arrow keys instead of the mouse to navigate around the screen). These are the people who will have access to your VPN. Once you’ve added your users, press Control-X to save your changes and exit the text editor.
  11. Now we install Algo itself.
    • If you’re using Amazon EC2:
      • Stay in Terminal, and type
        and press Return.
      • Algo will ask you what provider you’re going to use. We’re using Amazon EC2, so choose “3” (and press Return of course; I’m not going to mention that for every option).
      • Now it asks for the aws_access_key. Go back to your Downloads folder and open the “credentials.csv” file you downloaded earlier. Copy the Access Key ID and paste it into the Terminal. Press Return.
      • Do the same for the Secret access key.
    • If you’re using Google GCE:
  12. Name your server. You can name it whatever you like, though I presume there are some limits on what characters you can use and how long it can be. I just hit Return to accept the default option in brackets (“algo”).
  13. Choose a Region. It’s likely better to choose the one nearest where you’ll usually be, for speed reasons (this question may come after the others if you’re using GCE).
  14. It asks “Do you want macOS/iOS clients to enable "VPN On Demand" when connected to cellular networks?” For our purposes, choose No. Choose Yes if you want your VPN to protect your cellular connection as well.
  15. It asks “Do you want macOS/iOS clients to enable "VPN On Demand" when connected to Wi-Fi?” Choose Yes.
  16. Look up the exact name of any trusted Wi-Fi networks (all of your remembered Wi-Fi networks will be in System Preferences→Network→Advanced… Sadly, you can’t Copy from there, but you can carefully type them into Terminal, separated by commas but not spaces (there can be spaces in the network names, though). Only select those networks you personally trust; i.e. not Starbucks! These are usually your home and work Wi-Fi networks. If you want always-on VPN, don’t add any networks here.
  17. Whether you want your personal VPN to block ads is up to you; I prefer the more fine-grained control of an ad-blocker.
  18. SSH tunneling is for tricking firewalls and such, and so isn’t useful for our purposes. Choose No.
  19. I only intend to use this VPN for macOS and iOS clients, so I chose No to Windows 10 and Linux Desktop compatibility.
  20. It says that doing so would create an insecurity, so I said no to retaining the CA key. Note that this means that you can’t create more users later without starting all over from Step 3 (which isn’t that hard).
  21. Now go grab a sandwich or something, while Algo installs itself to your Amazon EC2 or Google GCE instance.
  22. The confirmation screen gives some valuable info. I would recommend copying and pasting the final screen into a text file for future reference. At the very minimum, you absolutely need the password it shows after “The p12 and SSH keys password for new users is”. Save that in a safe place, like a password manager.
  23. Now we get to configure the your Macs and iOS devices to use your brand-new VPN service. First off, uninstall any existing VPNs. We don’t want any conflicts. This involves deleting VPN apps from Mac and iOS devices, and checking System Preferences→Profiles on the Mac, and Settings→General→Profiles in iOS for VPN profiles (including old Algo profiles) and deleting them.
    • Note: I am not including instructions for using Wireguard, because I’m using older Macs, and because I want to pre-configure the Wi-Fi exceptions, and because frankly it’s simpler not to use Wireguard on all-Apple installations. If you want to use Wireguard, see the "Apple devices" section of the official instructions.
  24. Go back to your downloads folder in the Finder, and open the “algo-master” folder. Inside it is a “configs” folder (~/Downloads/algo-master/configs), and inside that is a folder named for your server’s IP address, and inside that is a folder named “Apple.” Open the “Apple” folder, and you’ll see files named .mobileconfig.
  25. Open the .mobileconfig file that corresponds with the correct user on any Mac you want to use your newly created VPN on (just double-click it).
  26. Choose “Continue.”
  27. If using Amazon EC2:
      • Choose “Continue” again.
      • Enter the password you hopefully saved from the Algo confirmation screen in Terminal. If not, it should still be there in the Terminal window.
  28. Click Install, and enter an administrator username and password for this Mac.
  29. If you included your current Wi-Fi network in the list of trusted Wi-Fi networks in Step 28 above, you won’t have any way immediately to test your install. Connect to an untrusted network (perhaps go to Starbucks; you deserve a coffee after all this work. Or just enable the Guest network on your router), and go to https://whoer.net/ to see if you did everything right. If you did, Mr. Whoer should report your ISP as “Amazon.com" or “Google Cloud,” depending on which cloud service you’re using. If it doesn’t, try going to System Preferences→Profiles, deleting the profile you installed earlier, and starting again from Step 24.
  30. If it worked, congrats! Send the file via secure means (Airdrop for instance, or iMessage) to any other Macs you wish to secure, and go through Steps 23–28 again. Then Airdrop (or use some other secure means) that file to every iOS device you want to VPN with. If you specified different users in step 10, make sure to send the right files to the right devices.
  31. Open the file on your iOS device (whether by tapping it in Messages, receiving the Airdrop file, or whatever)
  32. Tap Install, then enter your device password.
  33. If using Amazon EC2:
    • Tap Install again, then a third time.
    • Enter the password you saved in Step 22. Tap Next.
  34. Tap Done. That’s it! It should be working. Again, connect to an untrusted network and visit https://whoer.net. The IP address should be the one in your profile.
  35. Now you can delete the “algo-master” file from your Downloads folder. You may wish to keep the “configs” folder, or at least the .mobileconfig files, along with the “credentials.csv” file, the “config.cfg” file, and the Algo confirmation details, somewhere safe. You may be tempted to hold on to the entire algo-master folder, and that’s not a terrible idea, but remember that they will probably make improvements in the future, so remember to download a new copy if you want to start over sometime.

Now, you may want to change things in the future, such as the list of users, or the trusted networks (perhaps you decide you like this VPN thing so much you want to use it all the time).

  • If you chose to save the CA key in Step 20 above (and you held on to the “algo-master" folder), changing the user list is fairly simple. If not, you’ll have to destroy your instance (see below) and start over (from Step 2), which is not really that much work.
  • To change the list of trusted networks, open the .mobileconfig file in a text editor (PlistEdit Pro is an excellent tool for this task), navigate to your current list of trusted networks (under SSIDMatch), and add or remove networks as you please. Make sure you keep the exact formatting as shown for any new or changed lines. Then redistribute the file according to Steps 26–37.
  • To destroy the instance you created,:
    • For Amazon EC2: Log into Amazon Web Services, select EC2 (under “Compute”) from the Services menu, choose Instances, and click on Actions→Instance State→Terminate. That will allow you to start over from Step 2.
    • For Google GCE: Log into the GCE console, select Compute Engine in the sidebar, then select VM instances (it’s probably already selected). Click the three dots to the right of your “algo” VM instance, then select “Delete.” That will allow you to start over from Step 2.

Enjoy your new, personal VPN! Let me know how it goes, or any difficulties you have with these instructions, in the comments below!

Thursday, January 21, 2016

Review: Isaac Asimov Presents the Great Science Fiction 2

Isaac Asimov Presents the Great Science Fiction 2 Isaac Asimov Presents the Great Science Fiction 2 by Isaac Asimov
My rating: 3 of 5 stars

I didn’t actually read this book; I read it as part of a combined volume: Isaac Asimov Presents the Golden Years of Science Fiction: 36 Stories and Novellas. But there wasn’t enough space in my review there for all my comments on the individual stories, so I’m posting them here (there wasn't enough space here either, even just for Volume 2. I had to cut significant portions. Sigh). Refer to my review of that book for my thoughts on the book as a whole.

Below is a short description and review/discussion of every included story, as well as some random thoughts I had while reading. This is as much for my reference as it is for the benefit of prospective readers of this book (I wish there was a Goodreads for short stories!). Spoilers are included, but are marked off with Spoiler tags. I did not include star ratings for the stories. I can, if anyone would find that helpful.

“Requiem”: Does anything need to be said? It’s a Heinlein classic, if a little sloppily written (for him). Actually it was interesting to learn that this was written before “The Man Who Sold the Moon.” In The Past Through Tomorrow, it appears afterwards, of course, so I never realized it was a ‘prequel.’ So this story of D.D. Harriman’s trip to the Moon is more poignant in some ways than before.

“The Dwindling Sphere,” by Willard Hawkins, is a good story about the invention of a device that will convert any mass to any useful substance (at the cost of some of the mass), and the consequences of this development. I love stories that take a single concept to its logical conclusion (Asimov’s “The Last Question” is the archetype of this genre), and this one does it well. Of course, the conclusions are all crap.
  Asimov expresses his surprise that he had never seen this story before; it amuses me that I had, which is not true of any other story thus far except the Heinleins and the Asimov. I must have read it before I studied Economics, though, because I recall thinking that the conclusion presented was plausible and interesting. Interesting yes; plausible no.
  (view spoiler)
  Don’t think that my extensive criticism means that I don’t like the story. I do, a lot. It’s quite enjoyable, and even though I disagree with many of the particulars, the general moral—that we should be careful to mind the long-term consequences of our actions—is one I agree with wholeheartedly.

“The Automatic Pistol,” by Fritz Leiber, is good enough as fantasy horror, I guess, but, again, I don’t expect to see fantasy in a science fiction anthology.
  (view spoiler)

I don’t care for time-travel stories, so Jack Williamson’s “Hindsight” didn’t appeal to me very much. Technically it’s a time-manipulation story instead of a time-travel story, but my annoyance is similar. Why do ‘history,’ or ‘time,’ or “world lines” care about big events but not small ones?
  Also, though Greenberg (the editor) claims that this story shows rare (for the Golden Age) character development, I don’t think a time-manipulated drastic change in personality counts. The story was well-written and somewhat exciting, though, so if you don’t mind time-travel stories, you’ll probably like it.

“Postpaid to Paradise” is a fascinating and well-done fantasy by Robert Arthur involving some magical stamps. The story and background are involved enough that I don’t especially mind that it’s fantasy; indeed it only qualifies as fantasy because no explanation for the fantastic effects was given or attempted.
  Two things struck me about the story: One, that a story involving grown men obsessing over a painting of a naked sixteen-year-old girl would likely not pass muster nowadays; and Two, that this story and its sequels must certainly have inspired Asimov’s Azazel stories; they’re similar in many ways, most especially in tone (a tone that Asimov’s other stories do not have).
  It’s interesting (and encouraging, knowing that they didn’t just pop out of his head full-formed) to see that Asimov got many of his ideas from these old stories. For instance, Murchison Morks, the main character in this story, is clearly an inspiration for George from the Azazel stories, who instantly has to one-up anything anyone says.

“Coventry,” by Robert A. Heinlein, is excellent. It’s head and shoulders above any of the previous stories in this volume, including the other two by Heinlein. At that, it’s not Heinlein’s best from this period; that honor goes to “If This Goes On…”, not included in this collection. This story of a man sent to Coventry (think Australia in the 18th century) is superb, and contains an actual character arc, unlike the faux character development Greenberg praised in “Hindsight.”
  (Reading Asimov’s preface:) Wow. I’ve long presumed that Asimov felt this way, but I’ve never seen him say so openly. It just goes to show how incredibly wrong geniuses can be. He equates small government with no government, and presumes that a government that does not meddle with every aspect of our lives will not prevent others from doing so. It’s a strange view, but an oddly common one. “I’m also suspicious of those who equate liberty with ‘small government,’” he says, “meaning less interference from Washington over the details of our life. I don’t believe there can be less interference; just a change of interference. If Washington bows out, then it is the local bully on the block who will take over, and I’d rather have Washington. Every once in a while through history, places have tried ‘small government’ and replaced a tyrannical central power with local ‘self-help.’ It’s called ‘feudalism’ and it’s also called ‘dark ages’ and I don’t want it. —But I must say Bob preaches his point of view charmingly.” It’s so odd. It’s like the first hundred or so years of the United States never happened for him.
  I mean, I really don’t get it. “Covenant” begins with:
  “‘Have you anything to say before sentence is pronounced on you?’ The mild eyes of the Senior Judge studied the face of the accused. His question was answered by a sullen silence.
  ‘Very well—the jury has determined that you have violated a basic custom agreed to under the Covenant, and that through this act did damage another free citizen. It is the opinion of the jury and of the court that you did so knowingly, and aware of the probability of damage to a free citizen. Therefore, you are sentenced to choose between the Two Alternatives.’”
  It is later revealed that this guy’s crime is punching someone in the face that probably deserved it. Is this the kind of small government that Asimov thinks will allow feudalism and dark ages? Seriously?
“Into the Darkness” by Ross Rocklynne is an amazing story. This is what science fiction does at its best: Fills you with wonder and speculation and imaginings. Note that I didn’t say that this is what science fiction is; it doesn’t have to be a story about giant amorphous space beings, or anything like it. But great SF expands your mind and makes you think things and ask things you never imagined before.

Unsurprisingly, Lester del Rey doesn’t disappoint; “Dark Mission” is a gripping story. It’s a mystery of sorts, about a crashed rocketship pilot with amnesia. Who is he? How did he get there? What is the purpose of these strange urges he feels? The story drags you along to the end, to a mostly-satisfying conclusion. “Mostly” because it left me wanting more; the story is very detailed, and yet unfinished in a way. I would have preferred a novel-length version.

Theodore Sturgeon’s “IT” is a horror about a plant muck-creature that inspired Man-Thing and Swamp Thing. It’s interesting, and readable, but not remotely as horrifying as the introduction implies. Perhaps it was when first published, but the influence it had has dulled its effect on me through unconscious familiarity. It reminds me somewhat of “The Rag Thing” by Donald A. Wollheim which had the sort of impact on me that this story had on others. I think part of the reason that this story didn’t affect me is that there’s really no origin story for the monster. I don’t need it to be a scientifically-plausible, hard-SF explanation, but not having one at all leaves the story hanging without context, which is less involving and scary. It’s a pretty cool story regardless, just not as scary or horrifying to me as others apparently found it.

“Vault of the Beast” by  A. E. van Vogt is…odd. It’s in essence a mathematical story, involving prime numbers and different types of mathematics (negative, infinitesimal, imaginary). It’s frustrating because van Vogt repeats the common error of believing that infinitesimal mathematics—the math we learned in school, with an infinite number of numbers between any two whole numbers—is fundamentally correct, and “natural number” mathematics is wrong. But that’s the wrong way to look at it. These are simply different models, different ways of looking at problems. Some problems can be more easily solved with one system, others with another. There’s no inherently “correct” mathematics, any more than there’s a “correct” hammer or chainsaw. And actually, I’m not even sure that the math in this story passes muster in our modern schema. Also, there’s supposedly a “robot” in this story, but calling it a robot doesn’t explain it, and it doesn’t act more robot-like than living-thing-like. Perhaps van Vogt meant “construct” instead of “robot.” In all, there are enough new and interesting ideas presented in this story that it would take a long novel to explore them. This short story doesn’t do them justice.
  Still, it’s a fascinating tale, involving a construct that has moral sentiments and can morph into anything, mathematical theory, extradimensional brings, and ancient civilizations on Mars. Even when van Vogt doesn’t hit it out of the park, his work is still brilliant.

Amusingly, this is the second story in this collection that Asimov says he had not read or does not recall from the era, and the second story (besides those by Asimov and Heinlein) that I had read before. “The Impossible Highway” by Oscar J. Friend  is just the sort of story that fascinates me. It could be called a “concept” story, I suppose. It introduces a new, perplexing idea, and then leaves the reader to figure out what to do with it. It involves two scientists, lost in the jungle, who happen upon a highway that has no business being there, with strange biological displays on its route.

“Quietus” by Ross Rocklynne is kind of a typical science fiction story. Not stereotypical—it doesn’t involve humans in rocketships firing ray-guns at bug-eyed green aliens (though it does, in its way, involve spaceships, ray-guns and aliens)—but typical, in that it tries to surprise or disturb us by turning standard expectations on their heads. In this case it interestingly explores what it means to seem intelligent. It’s about two members of a spacefaring bird-species who tries to save the last survivors of a planetwide cataclysm.

“Blowups Happen”: Perhaps it’s that I’ve read this story several times, but reading it now, Heinlein’s utter genius as a science fiction writer is apparent. The story combines psychology, the process of experimentation and innovation, business, mathematics, engineering, philosophy, quite plausible (though ultimately inaccurate) extrapolation from very recent scientific discovery, and brilliant alternate explanations of known facts (a trope I’m deeply fond of) into a meaningful, suspenseful, and engrossing whole. Is there any wonder at his popularity, or why he’s one of my favorite authors? This story, for copyright reasons, is not included in the book. The book suggests reading it in The Past Through Tomorrow, but it’s better, for this purpose, to use the original version, published in Expanded Universe.

“Strange Playfellow,” by Isaac Asimov: I wasn’t looking forward to reading this story (about a little girl and her pet robot) again; I’ve read it (under the title “Robbie”) many times. But this is the original, unpolished version, and it’s interesting to see the changes he made when he republished it, and how those minor changes vastly improve the quality and tone of the story.

“The Warrior Race,” by L. Sprague de Camp: I feel like I’ve read another story with the exact same premise: A warrior race, oppressing a conquered population, (view spoiler), on the model of Sparta. Perhaps it was by Asimov, emulating this one. Regardless, the story is a little sparse, and says “Read your history” a bit too often. It feels more like a proof-of-concept than an actual story. A novelette or better would have been more appropriate.
  However, I was struck by the Aristotle quote at the end of the story: ‘Militaristic states are apt to survive only so long as they remain at war, while they go to ruin as soon as they have finished making their conquests. Peace causes their metal to decay; and the fault lies with a social system which does not teach its soldiers what to make of their lives when they off duty.’”
  The bit that struck me was the last clause. Do we do that even today? It seems that we don’t have a very good conception, as a society, as to what off-duty soldiers are supposed to do with themselves. Reservists do not have this problem.

“Farewell to the Master” (Harry Bates) is a pretty good story, about a benevolent space traveler, or time traveler, or dimensional traveler (it was never quite explained) and robot who visit Earth. I can’t talk about it without spoiling it, so read it before reading further. (view spoiler) Oh well. It’s still a great, classic story, on which the movies The Day the Earth Stood Still were based.

“Butyl and the Breather” by Theodore Sturgeon is not, as the editor’s preface indicates, as good as the previous story, “Ether Breather.” But heck, that one wasn’t that good either. Like that one, this story is entertaining and has some interesting and original ideas, and that’s good enough, I guess.

I’m not quite sure why “The Exalted,” by L. Sprague de Camp is called that, unless “exalted” is used in an unusual way. I guess it’s referring to the elevated state of the professor who takes his own smart pills, with amusing results. Nominally this story is about a bear who had been given these smart pills, but it’s really about what happens (view spoiler) I find it interesting that what de Camp thinks would happen is that the person would (view spoiler) I’ve come to much the same sort of conclusion, though I’m having a devil of a time trying to actually live by it.

P. Schuyler Miller’s “Old Man Mulligan” is the final story in this collection, and a good one, about the adventures (well, one adventure) involving the titular character, who is either a thousands-of-years-old Neanderthal, or a very capable liar. It’s science fiction more by virtue of it being set on Venus than this fact, because Mulligan is not really explained, just presented. A well-done story though.

View all my reviews

Review: Isaac Asimov Presents the Great Science Fiction 2

Isaac Asimov Presents the Great Science Fiction 2 Isaac Asimov Presents the Great Science Fiction 2 by Isaac Asimov
My rating: 3 of 5 stars

View all my reviews

Review: Isaac Asimov Presents The Great SF Stories 1: 1939

Isaac Asimov Presents The Great SF Stories 1: 1939 Isaac Asimov Presents The Great SF Stories 1: 1939 by Isaac Asimov
My rating: 3 of 5 stars

I didn’t actually read this book; I read it as part of a combined volume:Isaac Asimov Presents the Golden Years of Science Fiction: 36 Stories and Novellas. But there wasn’t enough space in my review there for all my comments on the individual stories, so I’m posting them here. Refer to my review of that book for my thoughts on the book as a whole.

Below is a short description and review/discussion of every included story, as well as some random thoughts I had while reading. This is as much for my reference as it is for the benefit of prospective readers of this book (I wish there was a Goodreads for short stories!). Spoilers are included, but are marked off with Spoiler tags. I did not include star ratings for the stories. I can, if anyone would find that helpful.

“I, Robot,” by Eando Binder: Holy crap, that’s a wonderful story. No wonder Asimov was inspired by it to write “Robbie.” I can’t believe I’ve never read it before. I’m not saying it’s among the best ever, but it’s quite good: thoughtful, insightful, surprising, and with a minimum of scientific error. No, computers will not develop drives and emotions without being programmed to do so, but the story specifically claims otherwise, so fine. It’s told from the point of view of Adam Link, an intelligent, feeling robot who is considered a monster by the public.

“The Strange Flight of Richard Clayton,” by Robert Bloch, is about a man trapped in a spaceship traveling to Mars with a broken instrument panel and no way to communicate. It’s cute, maybe, but completely implausible, and I found it ridiculous. Asimov says that it was better than “Marooned Off Vesta.” I deeply disagree. Apparently people in the 1930’s didn’t believe in testing machines before trusting their lives to them. At least that’s what you’d glean from much science fiction from the era.

“Trouble with Water,” by H. L. Gold: I’m not sure how this story made it into this collection. It’s pure fantasy, not science fiction, and not very good at that, especially in the actual writing. (view spoiler) Even within the conceit of the story, I thought that the way it was handled was silly.  

“Cloak of Aesir” by Don A. Stewart (a.k.a. John Campbell) is surprisingly good. Surprisingly because it starts out very oddly and obtusely, with a strange and obscure writing style. And yet, if you stick with it, it begins to clarify; the obscure is made clear, the obtuse is explained, and the seemingly irrelevant becomes worthwhile. I don’t know if I would say that Campbell is a truly brilliant writer, but perhaps he could have been. “Cloak of Aesir” is at root a novella of resistance to occupation and oppression involving a Cloak with wondrous powers, but there is much more to the story than that. Asimov is right to say of Campbell, “There was no way in which we could have given up the Editor and yet now and then we mourn the Writer and what we might have had.”

“The Day is Done,” by Lester del Rey: What a wonderful story, about an aging Neanderthal (view spoiler). As Greenberg’s preface says, is very hard to do good prehistoric science fiction, and del Rey does it masterfully. A wonderful illustration of the fact that science fiction doesn’t have to be space ships or laser guns; Anthropology is a science too.

“The Ultimate Catalyst,” by John Taine: This is a silly story about a biologist and his daughter who are “guests” of a trapped/exiled dictator. It’s sad that it’s silly, because the actual writing—the scripting—is pretty good. I was liking the story until I figured out what was going on. It’s like he plugged a bunch of unnecessary science into the plot, when much simpler methods would have done. I would really have much preferred a sociological story exploring why and how the world came to reject dictatorship.

Sprague de Camp, unsurprisingly, lives up to his reputation. “The Gnarly Man,” about a Neanderthal who lived to modern times, is an excellent story. Not superb, but interesting and well worth reading.

“Black Destroyer,” by A. E. van Vogt: Wow what a good story, about an alien predator on a dying world. Excellent. The idea of a predator that cunning, that able…chilling. The ending isn’t top-notch, but the rest of the story is. And this was his first published story! I should read some more van Vogt.

“Trends” is quite an insightful story from a 19-year-old Asimov. The writing quality isn’t quite up to his later work, of course, but the ideas are. A story of a spaceship launch attempt in a world consumed by religionism and anti-science fervor (which apparently was a new thing in science fiction, though Asimov eschews credit for the novelty because he got the idea from elsewhere), the phrase in the story that the title is drawn from is poignant: “Trends are things of centuries and millenniums, not years or decades. For five hundred years we have been moving toward science. You can’t reverse that in thirty years.”

“The Blue Giraffe”: Fascinating. Surprisingly good, for a story with what seems to be a silly premise, namely the discovery of blue giraffes and other impossible creatures in an African preserve. Or perhaps not so surprisingly, given that the author is L. Sprague de Camp. This story is not only scientifically plausible and gripping, but has an excellent and unexpected ending. (Mind you, I foresaw the problem, but the way it was resolved surprised me.)
Favorite quote: “He made a resolve never to speak harshly to anybody he couldn’t see.”

“The Misguided Halo,” by Henry Kuttner: A silly and pointless fantasy about a man who is mistakenly made a saint. I don’t mind fantasy, but I don’t like pointless fantasy, and anyway this is supposed to be a science fiction collection.

“Heavy Planet,” by Milton A. Rothman: I don’t understand. Is this an excerpt? It’s not bad, but it feels like a chapter of a larger work. It’s a pretty good hard SF story about life on a very large planet with intense gravity, but it ends too abruptly and leaves far too many questions unanswered.

“Life-Line,” by Robert A. Heinlein: I’ve read this story several times before, although in a slightly different edit. It is, of course, pretty good. Not as good as some of Heinlein’s later stuff, but a fine first story, about a man who can predict when you’ll die through scientific means. All I’ve got to say is, in answer to the implied question at the end of the story: Hell yes I’d want to know when I’m going to die. I’m not sure that was always my answer, but it certainly is now. I’ve got plans to make.
  I have another comment, though, regarding this quote from Greenberg’s preface to the story: “Although [Heinlein’s] political and social views have generated much controversy in the last twenty years, his emphasis on order, individualism, and discipline aroused little comment early in his career, with America in a struggle against an illegal, disorderly, and undisciplined fascism.” I’m sorry, what? Am I missing something? How was fascism/Nazism any of those things?

“Ether Breather” is an interesting story by Theodore Sturgeon (view spoiler). It’s a bit dissatisfying—nothing’s really explained—but a fascinating concept.

“Pilgrimage,” by Nelson Bond: Wonderful! An engrossing story about a matriarchal culture and a girl who wants to be a priestess, but has some surprising things to learn. Very enjoyable and well done. The only problem is the implausible breeding arrangements, but that’s a pet peeve of mine.

“Rust,” by Joseph E. Kelleam is a somewhat oversimplistic story. It’s a pathetic (in the literal sense) tale about killer robots who have destroyed humanity and are now dying out themselves.

“The Four-Sided Triangle,” by William F. Temple has promise, but that promise is not fulfilled. Three people—two men and a woman—invent a perfect duplicator. Great! But the author does not then go on to show us the possible consequences of such a device, as it is put to relatively mundane purposes. Then (view spoiler) Heartbreak and tragedy ensue. But the story only skims over the interesting issues, and instead focuses on contrived dilemmas that really shouldn’t be dilemmas. It’s sad. Apparently there was a book and film based on the story, but although the premise is interesting enough, unless the ideas are greatly expanded, I don’t think I’d like to see them.
  However, “The Four-Sided Triangle” does semi-accurately portray the trials and frustrations involved in the scientific process, which is a surprisingly rare thing in science fiction.

“Star Bright” starts with a fascinating premise—what if wishing on a star actually worked, at least once?—and turned it into something rather silly and disappointing, especially from Jack Williamson. There’s no real moral here, no upshot, no point. It’s not even really science fiction, because although the mechanism for his abilities is (somewhat) explained, how he got them is not.

“Misfit,” about a young man who joins the “Cosmic Construction Corps” and is discovered to have extraordinary abilities, is great. Of course it is; it’s Heinlein. That doesn’t mean that Heinlein stories are axiomatically good, but he seems to grasp the concept of story, of narrative, far better than most of his compatriots. His stories have dramatic tension, they make sense, they are entertaining, and they have moral lessons buried in them. These moral lessons aren’t blatant, or preachy (the few stories where he attempts this fall flat); they’re just implied statements of value, which, whether you agree or disagree with them, enhance the enjoyability of the story as you subconsciously evaluate those moral lessons. Perhaps most importantly, the science-fictional elements of the story, while certainly present, are not the point. The point is the people, and the story. “Life-Line” was largely about the “gimmick,” the science-fictional element, and therefore was not as good as most of his later stories. Don’t get me wrong—I love stories that explore the consequences of a given development or idea. But even when Heinlein does that, he focuses on the people and the story, and drags us along in fascination.

View all my reviews

Review: Isaac Asimov Presents the Golden Years of Science Fiction: 36 Stories and Novellas

Isaac Asimov Presents the Golden Years of Science Fiction: 36 Stories and Novellas Isaac Asimov Presents the Golden Years of Science Fiction: 36 Stories and Novellas by Isaac Asimov
My rating: 3 of 5 stars

This book is just what it says: an anthology of the outstanding science fiction short stories from 1939 and 1940, chosen by Martin Greenberg and Isaac Asimov. Actually that’s not quite right; it includes some fantasy stories as well, which I think is a mistake; not only is it in contradiction with the title, the fantasy stories conflict with the tone of the book.

Regardless, there are some great stories in here. Not all are excellent, but they are still worth reading if you’re interested in the history of science fiction (in English, anyway).

I read this as a kind of sequel to Before the Golden Age, and I miss the autobiographical aspect Asimov brought to that book, with little personal vignettes before and after each story. But that stuff is covered in The Early Asimov for this period anyway, so I shouldn’t complain. Both Greenberg and Asimov preface every story (except those by Asimov, which are prefaced by Asimov alone) with interesting tidbits, and each volume (of the two included in this book) is preceded by a little historical background regarding what was going on both in and outside of the world of science fiction at the time. It’s nice to get a little of the feel of what it might have been like to read these when they were published, but I would have liked more of the same. In particular, since John Campbell was such an instrumental figure in the Golden Age—indeed the instrumental figure by all accounts—I would have liked more discussion of his practices and how these stories differed from those published previously.

So if you’re interested in getting a feel for the kinds of stories that were being published in the early days of the Golden Age of Science Fiction, this is an essential read. If you only want to read the true “classics” of the era, perhaps another anthology would serve you better—there are timeless classics here, but they are interspersed among more forgettable stories. And if you’re looking for information on why the Golden Age was the Golden Age, I’d advise you look elsewhere (and if you find such a book, let me know); information on that topic is sparse in this work.

A couple of administrative notes:
  First, this volume is a combination of two previous works: Isaac Asimov Presents The Great SF Stories 1, 1939 and Isaac Asimov Presents The Great SF Stories 2, 1940. It is the first volume in its own series, Isaac Asimov Presents the Golden Years of Science Fiction. The second book in the series is Isaac Asimov Presents the Golden Years of Science Fiction, Second Series, covering 1941 and 1942. I mention this because I was confused, and thought others might be as well. This book contains Volume 1 and Volume 2, and further books are labeled with “Series.” I wasn’t sure if the next book was Series Three, or what, especially when I couldn’t seem to find Series Two. But no, the next book is Series Two, and this is Series One, even though not labeled as such.
  Second, the Forward to the combined volume is signed “JHR.” Does anyone have an idea of who that might be?

I was going to include a short description and review/discussion of every included story, as well as some random thoughts I had while reading, as much for my reference as it is for the benefit of prospective readers of this book (I wish there was a Goodreads for short stories!). But I ran out of space, so I posted them under the individual volumes: Isaac Asimov Presents The Great SF Stories 1, 1939 and Isaac Asimov Presents The Great SF Stories 2, 1940.

View all my reviews

Monday, October 21, 2013

Bathtub analogy

A good way to understand inflation is through the bathtub analogy. Think of a bathtub as the economy. The size of the bathtub is the size of the economy. The water is money. The current water level is the price level. This analogy is fairly precise, as long as you imagine that the bathtub can grow or shrink. If the bathtub gets bigger, i.e. the economy enlarges, the water level (prices) obviously will decrease. If you add more water (money), the water level will increase. If you add more water at the same rate as the bathtub gets bigger, the water level won’t change. And it doesn’t matter where you add the water; the overall water level will rise. However, it won’t necessarily rise all at once. If you turn on the shower and distribute the new water more-or-less evenly, the water level will rise all at once. But if you turn on the tap and put all the new water into one end of the tub, that end of the tub will rise first, and the other end of the tub will rise last. In that time, where one end of the tub has more water than the other, those at that end have an advantage: They have the new money, and can buy goods at the old prices. Near the end of the process, when everywhere but the far end of the tub has evened out, those at the far end are facing the new prices, but don’t have the new money yet, so they are at a disadvantage.

It’s important to note that inflation will occur regardless of where or how money (water) is added. Regardless of whether the Fed prints money and hands it to the banks, or whether Congress prints money and spends it, or whether everyone owns their own printing press and prints money for themselves, the water level will rise based on how much water is added to the tub, not how it got there.

Under our current system, the Fed is the faucet, and the wealthy, in particular the banks, are at the front of the tub. They receive the new money first, before the economy is able to adjust, and can buy things at artificially low prices. The poor and those living on fixed incomes or solely on interest (such as retirees) are at the back of the tub. They get the new money last, so they are facing artificially high prices.

Thursday, September 26, 2013

OpenPGP key transition statement

Hash: SHA512

Hash: RIPEMD160

Date: October 16, 2013

For a number of reasons[0], I’ve recently set up a new OpenPGP key, and will be transitioning away from my old one.

The old key will continue to be valid for some time, but I prefer all future correspondence to come to the new one. I would also like this new key to be re-integrated into the web of trust. This message is signed by both keys to certify the transition.

The old key was:

pub 1024D/BB9EC476E934D755 1998-09-22
Key fingerprint = CD29 354E 5C51 E528 0E0E 19DF BB9E C476 E934 D755

And the new key is:

pub 4096R/BEB8C013FCC700F3 2013-10-16
Key fingerprint = 0AA7 230B 8C3C 2C2E 12E9 525D BEB8 C013 FCC7 00F3

To fetch the full key from a public key server, you can simply do:

gpg --keyserver hkps.pool.sks-keyservers.net --recv-key BEB8C013FCC700F3

or if you’re using GPGTools for Mac[1], choose “Retrieve from Keyserver…” from the Key menu in GPG Keychain Access and paste BEB8C013FCC700F3 into the “Key ID” field.

If you already know my old key, you can now verify that the new key is signed by the old one:

gpg --check-sigs BEB8C013FCC700F3

or with GPGTools, choose “Show Info” from the Key menu in GPG Keychain Access when the key is selected, choose the “User IDs” tab, and review the Signatures field.

If you don't already know my old key, or you just want to be double extra paranoid, you can check the fingerprint against the one above:

gpg --fingerprint BEB8C013FCC700F3

or view the fingerprint in the Key tab of the Key Inspector in GPG Keychain Access.

If you are satisfied that you've got the right key, and the UIDs match what you expect, I'd appreciate it if you would sign my key. You can do that by issuing the following command:

NOTE: if you have previously signed my key but did a local-only signature (lsign), you will not want to issue the following, instead you will want to use --lsign-key, and not send the signatures to the keyserver

gpg --sign-key BEB8C013FCC700F3

or choose “Sign…” from the Key menu in GPG Keychain Access while my new key is selected.

I'd like to receive your signatures on my key. Once you’ve signed it, please upload the signed key to a public key server:

gpg --keyserver hkps.pool.sks-keyservers.net --send-key <my email address> [sorry, I don’t post my email online to avoid spam]

or choose “send public key to Keyserver” in the Key menu of GPG Keychain Access when my key is selected after you’ve signed it.

Additionally, I highly recommend that you implement a mechanism to keep your key material up-to-date so that you obtain the latest revocations and other updates in a timely manner. You can do regular key updates by using parcimonie[2] to refresh your keyring. Parcimonie is a daemon that slowly refreshes your keyring from a keyserver over Tor. It uses a randomized sleep, and fresh tor circuits for each key. The purpose is to make it hard for an attacker to correlate the key updates with your keyring.

I also highly recommend checking out the excellent Riseup GPG best practices doc, from which I stole most of the text for this transition message ;-)


Please let me know if you have any questions, or problems, and sorry for any inconvenience.

Jim Syler

0. https://www.debian-administration.org/users/dkg/weblog/48
1. https://gpgtools.org/
2. https://gaffer.ptitcanardnoir.org/intrigeri/code/parcimonie/
Comment: GPGTools - http://gpgtools.org

Comment: GPGTools - http://gpgtools.org


Thursday, January 17, 2008


  • I’ve revamped how Labels work on Journal Entries; they were getting out of hand. Now there are just a few Categories; every post will have one (and, hopefully, only one) of these. Beneath the Categories in the sidebar of Journal Entries (not Current Thoughts, where this is posted; Categories have yet to get out of hand here) are various Labels; a post may have none, one, or more than one of these. Note that as I’m using Blogger’s Labels for both my Categories and Labels, they will be mixed up together at the bottom of individual posts, in alphabetical order. But the Categories links are useful for making sure you see all the posts in Journal Entries, anyway, without having to navigate through the somewhat cumbersome Archives links, as all posts with a given Category, regardless of date, will show up when you click on that Category’s link either in the sidebar or at the bottom of a post, and all posts have a Category.

  • Book Notes with multiple entries for one book also are Labeled with the book title to make it easier to see all the posts on that book at once; these book-title Labels do not appear in the sidebar, so they are only found on the relevant posts. I will also include an author label when I post about multiple books from one author.

  • I’ve also changed the links for all the little book graphics (and most other book links) to Google Books rather than Amazon.com. Google Books has lots of neat features, including internal previews of many books, and a link to reserve a copy at your local library. If you’re having trouble understanding a Book Note and want to see if you can find the context, Google Books might help. If not, there’s an Amazon link on every page; they often have previews too.

  • On another note, because of the way I’ve structured this blog, it’s quite likely that entries in the compendium are outdated and have been updated and improved in their Department blog. Click on the link at the bottom of each post in the compendium to see the latest and greatest version of that post.

  • Although I’m not entirely sure why I’m going to all this work; I seem to currently have a grand total of one verified email subscription (the widget in the sidebar in the compendium says two, but one of them is me) to this blog. Is no one reading this? Or are they just not using the email subscription feature? I do hope somebody’s reading this, or else I’m doing a whole lot of work for nothing; I looked yesterday and noticed that, even with all of the journal entries I’ve posted, I’ve only gotten through something like a fifth of my first journal so far, so there’s lots more coming…

  • That reminds me: since entries in Journal Entries are posted by their original creation date (years ago in most cases), it is likely that newly posted entries will not appear at the top of the blog. This means that if you’re watching Journal Entries to see if there are new posts, you’re going to miss them. Either subscribe to Journal Entries via email or subscribe to or watch the compendium, or you’re going to miss the new journal entries. Yeah, it sucks, but I can’t think of a better way; I’ll be posting stuff from several journals written at different times, and I think it’s worthwhile to keep the entries in chronological order.