Articles by Steve Armstrong

  1. Canadian backup solutions

    You've got a bunch of data on your computer (taxes, photos, the recipe for Aunt Maude's Ultimate Chocolate Tar). You could lose it to your hard drive dying, or to the increasingly aggressive cybercrime groups that will encode all your files and ask for $5,000 for the decode key …

  2. Camlistore

    So while looking into IPFS and maybe learning go, I stumbled onto Camlistore. It's a content-addressed file pile that scratches all my itches of backups, redundant storage, flexible indexable formats, etc. Watch Brad Fitzpatrick's talk for a great intro into the promise of the system.

    The documentation is a little …

  3. Solving the IPFS XSS problem

    I explored IPFS in a previous post, and think it offers a ton of promise. One open issue, however, is that all pages are served from the same origin (either ipfs.io, gateway.ipfs.io, or localhost), which means that all pages on IPFS share privileges (Javascript geolocation api), cookies …

  4. Signs, signs, everywhere a sign

    I'd like to talk about social conventions for web use, and what's allowed and not allowed. I've been meaning to write this post for a while. It's been on my list long enough that the legal saga I'm referencing has been done since April 2014.

    The basic topic is about …

  5. Proof of presence

    In my last post, I mentioned that EveryBit has suggested a proof-of-presence system to handle some of the problems that the proof-of-work system in Bitcoin solves. It is intriging, but either I'm missing something, or the whitepaper does not give a full description, so I'll explore it more here to …

  6. Inter-Planetary File System

    The Inter-Planetary File System (IPFS) is a project to make the web more resilient and decentralized. The shortest description is a distributed CDN based on a combination of git and bit-torrent. Basically, all data is content addressed (stored at the hash of its content, like git). This means everything is …

  7. The decentralized web mirage

    The idea of decentralizing the web has always been to me what a laser pointer is to cats. I'm very interested in the idea, and I really want to catch it so I can examine it closely, but it always gets away.

    Past projects

    I remember being interested in Diaspora …

  8. Taxing your intellectual property

    I was reminded of the software patent snarl again when I found a link to a Hacker News comment about a new idea. Basically, it suggested that every patent have a value attached by its owner. The patent is then taxed on that value, licence agreements are a set percentage …

  9. WHOIS stalking me?

    Dreamhost, my website hosting company of choice, posted about a debate ICANN is having on WHOIS accuracy. I'm glad they did, since I never would have noticed that in Section 1.3.3 of their Initial Report, they ask for comment on:

    “domains used for online financial transactions for commercial …
  10. Python import mechanics considered annoying

    This may be old knowledge for most python programmers, but I discovered what I consider to be a design flaw in python's import mechanics, which leads to tight coupling and strange side effects.

    I have 5 python files:

    ~/main.py:

    import a, b
    

    ~/a.py:

    import lib.c
    

    ~/b.py …

  11. Multiple ssh key quagmire

    On my work computer, I use my work GitHub account, and I use ssh agent forwarding like crazy. Being able to SSH into a machine and run git fetch from there with my local key, or scp some files to a second machine, is essential. And it works just fine …

  12. Failing to concat HDFS files

    At work I use Hadoop via Cascading. I wanted the final output of a multi-stage job to be a single file. This is more complicated that I'd hoped, and led me down some blind alleys where Google wasn't helping. Hopefully this article will help others hitting the same issue.

    Using …

  13. Http caching

    Squid (and really any caching proxy) is a fantastic idea. Put a server between the internet and your web server, set it up as a caching proxy, and it'll "protect" your server from the load of any duplicate requests. All your server needs to do is tell squid what's safe …

  14. Fixing the "too many open files" error

    If your service is dying from a "Too many open files" error, don't increase the nofile limit in /etc/security/limits.conf like most of the internet says. Instead, do what most of the internet does, and hard-code a ulimit -n 100000 line in your /etc/init.d/ script.

    Discovery …

  15. My heart bleeds for you

    Security nerds come out with some good names. BREACH, CRIME, and now Heartbleed.

    What is it?

    On March 14, 2012, OpenSSL 1.0.1 was released, which is used in many secure web sites (banks, e-mail servers, and online stores). A bug in this software allowed anyone who was watching …

  16. Initial rant on patents

    My take on patents is what you might call "evolving". You might also call it "random" or "wishy-washy", but that would be mean. I want to write this post so later I can refer to what I thought in the past to see if my viewpoint is at least converging …

  17. Disable your Java browser plugins

    I like Java. I enjoy programming in it. As a browser language, however, it's a security nightmare. With exploits like flashback, you should be careful about running Java in your browser.

    Test my browser

    If your browser is running Java, you're at risk. Go to a test page and compare …

  18. Saving the world through metrics

    I love charts. They explain things so well. I wish I could have a chart that tells me how long I spend walking every day, or how many calories I eat averaged out by hour and compared to my energy level. In Star Trek, they've got amazing medicine because they're …

  19. Staging blog posts

    So obviously I haven't done much posting since my last update. I may have 'upgraded' the way I write the blog, but it didn't change how much time I have or how often I have a post I want to write. So it goes.

    I'm working on making the process …

  20. Reclaiming my blog

    Well, I'm trying to launch a new blog. I barely ever used the ready-to-go free-of-charge Blogger, so I'm learning my lesson and attempting to use a mostly abandoned open source static site generator. I'm sure this will result in a more steady update schedule.

    I'm using Blogofile, which is a …

  21. My Linux hippie reaction to the iPad

    So the iPad was announced yesterday. It's just a big iPhone, not a small Mac, but it's also one of the sleekest pieces of hardware I've seen in a while.

    I've worried for a while about the iPhone and AppStore problem. The iPhone is amazing, there's no arguing against it …

  22. Another rabbit hole

    In the interest of making a post (I haven't for a long time), here's another debugging wild goose chase, and how making assumptions was the wrong thing to do (a lesson I should have learned earlier.

    We make a physical product at work (among other things). It has a PPC …

  23. How big is your problem domain?

    When you're programming, debugging is just fixing what went wrong. It's pretty easy to start assuming, right or wrong, where the problem came from. One of the things you gain with greater experience (general experience, and more importantly experience with the relevant technologies) is better accuracy on these assumptions. It's …

  24. Information Overload

    People today have lots to do, and lots to remember. Some have a system to keep all of this organized. I don't. I have 3 or 4 half-assed systems.

    The first problem is "What data am I talking about" as there's a bunch of different types:

    • Do this tonight - These …
  25. Code highlighting on Blogger

    This blog is no londer hosted on Blogger, so while this information is likely still correct, the syntax highlighting shown is not using the method described.

    If I'm going to write about computers and programming, I'm going to be posting code snippets, and syntax highlighting is essential for reading code …

  26. Always wanting to know more

    I'm starting this blog to write. I'll be focusing technology, mostly on computers, mostly mostly on programming, and probably on whatever type of programming my current projects are in.

    In general, I never have enough time (as I'm sure most people feel). There's always more I want to learn and …