• Says It All, Really

    McConnell, the most disciplined communicator in Washington, D.C., was able to keep it together when asked whether he had concerns about Trump’s ability to manage classified information. He was silent for a couple of seconds, giggled to himself, and finally said, in a very soft voice, “no.”


  • Locker Room Talk

    No, not that kind. I was just observing the shower room at the glitzy-as-hell Airbnb building.

    I’m still working for Hipmunk, but we moved into a nook in the Airbnb building, 888 Brannan a couple of months ago. It’s got a lovely courtyard, and the space that Airbnb inhabits is probably also quite gorgeous.

    I suspect that giant fluffy white piece of art is 'The Cloud'.
    I suspect that giant fluffy white piece of art is ‘The Cloud’.


    The office that we share with Tripit is unglamorous, and the HVAC is ridiculously noisy during the day, and hilariously so after 6: there’s a spot where it literally sounds like someone is vacuuming the floor, with a very loud vacuum. And the floor is very uneven, in places enough that I have tripped on it.

    But it’s certainly better than our old spot, where the floor and ceiling were flat concrete and everything echoed. A little carpeting goes a very long way.

    This is the new office (Tripit and Hipmunk, in the Airbnb building.)

    But the really weird thing is the shower room. (Well, rooms: I assume the women’s is probably the same as the men’s.) These are things that the designers of this building thought were a good idea:

    • Creating a dedicated shower/locker room, with three showers, plenty for a building this size.
    • Leaving room for only a total of 26 lockers, probably a factor of five fewer than necessary for a building this size. This forces building management to disallow anyone leaving anything in lockers overnight, which in turn means that nobody uses the lockers for anything, more or less. I note that part of the broad, sweeping entryway that has literally no purpose except to be broad and sweeping could have been shaved down by about 4 feet and it would have given plenty of room for plenty of lockers in both restrooms.
    • Having there be no place to hang towels except inside lockers, where they do not dry.
    • Deciding that a shower room should be ventilated, and conscientiously put an exhaust fan in the ceiling. Quite a powerful one, actually
    • Deciding that a shower room should not leak humid air into the bathroom that it opens onto, and thus putting a door that seals fairly tightly when closed.
    • Neglecting to include an input air vent that is even close to big enough to keep up with the vent fan.
    • Having a floor which has been carefully leveled in the shower room. You don’t have level floors in rooms where you expect water, you have slopes so the water runs off. But in this case it doesn’t matter, because of another thing they also thought was a good idea:
    • Having no drain in the shower room floor. Really? Also,
    • Having little changing nooks outside each shower. Great! With no shelf, seat, or anything else to put your clothes to change into. Not great! And with a shower curtain on the outside of the nook, but no shower curtain between the nook and the shower, just a tiny little 1/2″ tall lip on the bottom of the shower. So half of the water from the shower sprays out into the nook and onto the floor.

    The upshot of all of this is that the floor of the shower room always has a lake on it, and often the room is about half lake. And there’s nowhere to leave your work shoes or even your shampoo overnight. And the entire room whistles. All. the. time.

    This is what happens when a company wants to look like they’re Apple, but does not have any of Apple’s attention to detail: you have a really nice-looking product that is excruciating to actually use.

  • Initial Thoughts on Econ 101

    One of the things that my professor said yesterday stuck with me. “If an economy does not produce enough capital goods, it will not be able to grow.”  So, he said, you always want your economy to be producing as much as you possibly can, aka you want it to be ‘on the Production Possibility Curve’, but you don’t want the balance of what you produce to be weighted too much towards consumer goods, and not enough towards capital goods (and training and whatever). And you also want to be producing those things with as few resources as you can. (It’s murky whether ‘money’ counts as a resource here. Economists seem to randomly flip-flop between counting it as one and not counting it as one, and they never ever tell you until you’ve already misunderstood them, when it’s too late. I think many of them get a kick out of this.)

    So. Sure, some of this is obviously true. If you don’t have the equipment you need to do your job (we’re assuming a closed economy here) and your equipment is slowly breaking down, all other things being equal, your economy is shrinking, not growing. And what’s the point of not producing everything you can? Sure, you don’t want to be polluting too much, but if we want to pollute less, we can produce more jazz dance classes and solar panel research facilities instead of more cars. However, entirely absent from the conversation so far, and from my textbook so far, is another concept which seems to fit right here, and which seems every bit as important as the capital goods/consumer goods balance. And that is that if you want your economy to grow in the future, in addition to that balance, you can’t be producing things with the fewest possible resources, at least if you count money as one of those resources. Because if you pay your workers starvation wages, then they won’t be able to buy anything tomorrow. (And won’t be willing to work anyway. I would make some kind of snide remark about the American South having solved that one, but… oops, I just did.)

    Now, I’m not saying anything new here. Practically everybody knows the quote from Ford about paying his workers enough to buy his cars, and too many of them trot it out proudly when given the least opportunity. But I find it quite telling that it is simply not part of the Econ 101 conversation at this stage, where you’re talking about how you grow the economy in the future, and where it would fit perfectly into the discussion. Why isn’t it here?

    Also missing is the subtler point that the relationship between producing capital goods and consumer goods has to be a curve, with an optimum point. Why? Well, assuming a closed economy, if you produce zero capital goods your machines all fall apart and you can produce much fewer goods next year. If you produce zero consumer goods, though, your workers all die and you can produce zero goods next year. If you produce few capital goods, your equipment is crappy and/or badly maintained and you produce fewer goods than you might. If you produce few consumer goods, then your workers may well all be fed but their morale will be crappy, and as little as Americans (workers or employers) like to admit it, morale has a huge impact on the productivity of a worker.

    Instead, the textbook, and the teacher, painted this as competing interests: more production next year if you make more capital goods, a higher standard of living this year if you make more consumer goods. That’s true at some places on the curve, and just completely false on others. The Soviet Union, an example he trotted out of a place sacrificing consumer goods to make capital goods, is a beautiful example of what I’m saying too: their productivity was horrible. Some employees were literally negative inputs, sabotaging the things they were working on as they were making them, destroying the value that other people had already added. A major reason that the Soviets were so unhappy was because they were so poor. (The brutal repression may have been another reason, or it may well have simply been the reaction to the unrest caused by that extreme poverty.)

    You don’t have to go into this now, I guess. But if you don’t, then why go into the ‘an economy can’t just make consumer goods’ argument? It seems like you should be making both or neither.

    I don’t know. What I’m learning so far seems woefully incomplete… not just in the ‘this is only a 101-level course’ way, but in the ‘welcome to class, here are your blinders, they are required wearing anytime you are thinking about economics for the rest of your life’ sort of way. And isn’t it funny exactly who those particular blinders just happen to benefit?

  • Econ 101: The Economing

    I have finally decided to take economics 101. Well, that’s actually a lie… I decided to take it about twenty years ago. But this time I actually registered to take it, and then I actually started attending it. It’s 8 AM to 9:30 AM every morning, and it’s directly on my jog to work, so I was pretty sure I wasn’t going to find a better opportunity barring suddenly becoming wealthy enough to retire and travel around the world on my own private yacht with an econ tutor. Which probably wouldn’t be an efficient allocation of resources anyway, so.

    The nice thing about this is that when I make a pronouncement about economics, it will probably be at least a tiny bit more informed than it was when my only source of knowledge is some desperate attempts to understand Brad DeLong (who once posted a picture from my other blog, The Dogs of San Francisco, although he took it down before I even noticed!), Paul Krugman, and the inimitable Mark Thoma and everyone he links to, without any more background than 30 seconds on Wikipedia can provide. The not as nice thing about this is that I am probably more likely to make pronouncements about economics in the future. Oh well, you win some, you die alone and unloved in a tarpaper shack up to your ankles in sewage, which incidentally is the name of my new punk band.

    So anyway. I am going to post some observations about Econ 101 as I take it. I say this knowing that I might be implicitly lying here, because it might well be that the only set of observations I actually post about Econ 101 will be the one I post tonight. But hey, I’m going to try.

  • Your (Non-) Daily (Non-) Zen

    On my way to work Monday morning, heading South on 4th Street from Market, I heard three men in suits be unforgivably rude to a female jogger, possibly loud enough for her to hear, and I said, out loud, “Oh, goodie, must be a stock-brokers’ or bankers’ convention in town.”

    The person next to me said, “Oracle, actually.” Which, upon reflection, wasn’t that surprising after all.

  • I’m Still Alive

    Just a quick update: Hipmunk has me very busy, especially in combination with the absolutely wonderful bout of insomnia (apparently at least partly apnea-related, whee) that I’ve been having almost constantly for the last month. I think I’ve got it figured out, though, and so I might have a little more time to post here occasionally.

    I’ve started a post on the GPL which is sure to earn me the lasting enmity of a third of my peers, so that’s something to look forward to, hopefully in the next day or two.

  • Personal News: New Job!

    So, for those of you wondering where I’ve disappeared to, whether I’ve been neglecting you on Facebook, on this blog, in person, or via some other means of interpersonal neglect — at which I naturally excel in any case — here’s the answer: I’ve been interviewing for, getting ready for, starting, and running around frantically trying to understand, a new job.

    The company is called Hipmunk, and we (I have to get used to calling Hipmunk ‘we’ now!) run a travel meta-search site: a site for searching for plane tickets and hotel rooms across many providers and web sites.. If you haven’t heard of us, perhaps you’ve heard of our largest competitor, which is named something very similar to ‘canoe.com’. (Hey, I’m not going to send any business their way!) If you’re planning on traveling anytime soon, go and check us out… you can often find quite inexpensive plane tickets and hotel rooms that way. And they have an adorable mascot, which anyone who knows me would know is a major draw for someone like me.

    The new job brings new challenges: Hipmunk runs almost entirely on python on the back end, a language I’ve never played with before. Their data storage is in PostgreSQL, which I haven’t played with in five years, and which I never got terribly expert on. And they interface with a whole bunch of different companies, in a whole bunch of ways, each one completely different from every other, and we somehow have to extract the same information from each one . It’s a lot to learn, and trying to hit the ground running is turning out to take a whole lot of work. I’m kind of exhausted when I get home in the evenings, and not inclined to do anything terribly strenuous. Like type a sentence. Or pick up the phone. Sorry about that.

    Fortunately, what the new job doesn’t bring is a longer commute. In fact, Hipmunk is around two and a half blocks away from Cloudmark. So I expect to be having frequent lunches with ex-coworkers.

    I promise to be more attentive to the rest of my life as things settle down. And things will settle down at least somewhat in the next few weeks, as I get to know enough of the language and infrastructure that figuring out the rest doesn’t seem like quite such a daunting task.

    They’d better settle down. Or I will explode.

    Finally, the image above is a picture of the Bay Bridge, western span, taken from the Embarcadero one morning on my way to work. The clouds sure do act funny here in San Francisco.

  • Zen of the Day

    Sorry, I haven’t posted here in a while. Contrast that with my near-daily posts to the dog blog, which are more time-consuming than posting to a blog where I don’t have to do any photo-editing if I don’t want to. But life has been really busy and complicated for the last few weeks. I’ll get back to posting regularly here when things settle down. Maybe by then I can figure out how to drive some traffic to this blog, so someone will actually be reading it.

    For today, though, I ran into this while wandering the city. I went to the web site that sells them and/or posts them and I’m still not sure what it is, besides funny.

    Cash for your Warhol Sign
    I suspect the population of people who own a Warhol is larger in San Francisco than in most places, but even so…

  • Want Privacy Protection or Ad Blocking on the iPhone? Too Bad

    I’m an iPhone user, and I love it, I have to admit. I’ve had a fair amount of experience with Android devices, and I am not nearly as fond of them. But that doesn’t mean I am not occasionally envious of a feature of Android phones. Like, for example, browser plugins.

    On the Mac, I use three browser plugins on a regular basis: 1Password and Ghostery more or less everywhere, and AdBlock rather selectively. (I try not to deprive web sites of ad revenues unless their ad layout is horrible, their page takes forever to load, or one of their ads does something egregious, at which point I turn on AdBlock for that page. I try not to be a bad person, but I am definitely not a font of patience.)

    On the iPhone, I can use the built-in password storage on Safari, which works for maybe 75% of the web sites I browse to, and task-switch to the 1Password App to grab a password (which is amazingly irritating, but if I only have to do it once in a while I can live with it. But for the other two, there’s just nothing you can do to make Safari do what you want, short of jailbreaking your phone, which is too much of a hassle for too little payoff for me.

    There are, however, two alternate browsers for iOS. Neither of them purports to solve both problems: you can choose, Ghostery’s privacy protection in an iOS browser, or AdBlock’s ad protection on iOS.

    Alas, whatever their benefits, as far as execution is concerned they’re both awful. I couldn’t possibly use either one as my main browser on iOS.


    Ghostery promises to protect your privacy, by blocking all of the web bugs and similar items that usually track you wherever you go on the internet. It does this by knowing what parts of any given web page that you visit are being used to track you, and simply not loading those bits. It works very nicely as a browser plugin. As an app, it’s buggy and has serious usability issues. And this is in version 1.4.3, of an app that has been around for three years. If they haven’t been fixed by now, it’s hard to believe that the experience is going to get a lot better anytime soon.

    First things first: it does work. It is, of course, using the standard built-in browser, so the way it loads pages and displays and runs javascript and such isn’t much different from the standard Safari browser. Which is fine by me: I find that Safari does fine for me for most purposes on iOS. If Ghostery were to just work like Safari, except blocking the web bugs, I would be recommending it far and wide.

    Alas, it doesn’t. It has serious interface issues, and serious bugs. First, the interface:

    • Ghostry uses tabbed browsing on the iPhone. With real tabs. The screen is far too small to make this practical, so most of the time you won’t be able to tell what is in each one, and you may or may not be able to actually select the right one without accidentally closing it.
    • There is a button bar across the bottom of the screen, a la Safari, and it vanishes when you scroll down, also like Safari. But Safari’s reappears when you scroll up a little bit, and stays there until you scroll down again. A very elegant choice: you can get it out of the way, and it stays out of the way when you’re reading downward, but you can also see it when you want it, without even picking up your finger. Ghostery’s reappears when you scroll up and then immediately starts to fade. It fades fast enough that it is literally impossible for me to press a button on it, in fact, so the only way I can use the button bar is to scroll all the way to the top of the page, where it pops on and stays on. Infuriating. You can see it, momentarily, but not touch it. (Perhaps this is a bug, but if so, it’s hard to imagine that it hasn’t been noticed.)
    • Ghostery has a regular URL bar, and it is accessible just as Safari’s is. But it doesn’t auto-complete things in your bookmarks, or in your recent history. I’ve written autocomplete code before, the entire thing is less than 20 lines long.
    • Ghostery has no way to view your own browser history. What? Really?
    • Ghostery has a bookmark menu, but there is no way to add a bookmark from it. Instead you add it from a different menu.
    • When you click a link, the browser scrolls all the way to the top of the page you’re on, and then loads the new page. And then if you hit the ‘back’ button you end up at the top of the page, instead of scrolled to where you were already. So you can’t read a long article, check out a link in it halfway through, and then go back to the article, without spending a minute or so scrolling down and trying to find the spot you’d left off at.

    And then there are the bugs:

    • Ghostery’s cancel button only works intermittently. Even worse, the ‘back’ button is disabled when a new page is being loaded. So if a page takes a while to load, you’re often stuck waiting for it, unless you close the tab. And lose your history. That isn’t available any other way. What? Really?
    • There are several pages that Ghostery simply will never load. They start loading, but they never finish. And these are pages that load just fine in Safari on the Mac with the Ghostery extension installed, and the extension the presence of zero trackers. And they load just fine in Safari on iOS. But Ghostery will simply never load them at all, no matter how long you wait. Which means that you lose the history for that tab, since there is no way to cancel. One such web site is the Girl Genius web comic, a long-time favorite of mine.
    • The browser itself works fine in landscape mode, but the bookmark list is stuck in portrait.
    • When you hold your finger down on a link, a menu comes up, just like Safari. Except unlike Safari, around 50 percent of the time, the menu won’t come up no matter how long you hold your finger down or how many times you try. It doesn’t seem to be a factor of the link itself. It just seems like sometimes a loaded page doesn’t get the click-and-hold functionality.
    • When you hold your finger down on a link and the menu does come up, if the browser is in landscape mode, the buttons are out of whack: each button performs the function of the one above it, rather than its own. So if you click ‘Open Link in New Tab’, it instead opens the link in that tab. If you click ‘Copy Link’ it opens in a new tab. And so forth. This has been the case for at least two versions now. Hard to imagine that it didn’t get noticed, and fixing it would be either a one-line code change or a change in interface builder.
    • On many pages, changing the phone’s orientation changes the spot you’re looking at. If you change back, it does not move back to where you were before, it moves you to yet another spot in the page. Not only is this frustrating when you change orientation intentionally, it is maddening when you do so accidentally, and then change back.
    • If Ghostery is shut, and you open another program or two, sometimes your iPhone will run out of memory and shut down background apps, including Ghostery. What Safari does if it gets shut down is saves the current page and the history for each ‘tab’, then reloads the current page when it gets relaunched. What Ghostery does is just saves the current page. So your history is lost. You know, the history that you can’t view?
    • Sometimes when Ghostery gets shut down, as above, it doesn’t even save your current pages. Instead, you get (say) five tabs containing the “duck duck go” search engine, instead of the tabs that had been there before. For no identifiable reason.
    • If Ghostery crashes, the same things happen. (I will say, though, that at least on an iPhone 5s, Ghostery rarely crashes.)

    Also, a special shout-out to Ghostery’s “WiFi Connection Protection”. The idea is that you can use Ghostery’s protection in other browsers besides the Ghostery browser itself, by using a proxy that does the blocking for you. But it only works on WiFi, and it “has performance issues” (read as ‘is unusable’) if you try to use it with Safari. So if you want to use it, they recommend you use it with the Ghostery browser (which… WHY?) or the Chrome browser. Perhaps I’ll try that sometime, although I’ve heard it comes with its own data collection, so I’m not sure why I’d want to use a browser that sends data back to Google in order to avoid having data collected about me by other companies.

    Next time I’ll talk about AdBlocker.