What I Learned Writing a Dropbox Clone - Part 1 - Introduction
Nearly four years ago, I made the above commit on a new project I'd just started. I had been using Dropbox for a little bit, and I liked the idea, but I favor free software solutions for services, particularly when my personal data (like files) are concerned. I looked around to see if anyone had written an FOSS Dropbox clone, and the offerings in that space were very meager (just SparkleShare, and I think maybe a nascent version of OwnCloud ). I had some misgivings about some of SparkleShare's design, and OwnCloud didn't offer the same features I needed, so I decided to go ahead and write my own. Because the project was an effort to distance myself from cloud products, I decided to call it Sahara Sync (the Sahara desert having few clouds). I actually bought the domain names for both saharasync.net and saharasuite.net; the latter was intended for other personal cloud tools I thought about writing that would compliment Sahara Sync. I had the idea of turning it into a company as well. I actually bought the domain names for both saharasync.net and saharasuite.net; the latter was intended for other personal cloud tools I thought about writing that would compliment Sahara Sync. I had the idea of turning it into a company as well.
Read More...Posted on 2015-01-24
English: A Weakly Typed Language
Two of my hobbies are programming and languages, and I often think about how much the two of them have in common. A short while ago, I was asking my friend Maxim some questions about the distinction between perfective/imperfective aspect in the Russian language. This distinction is unlike how we distinguish tense/aspect in English, so it's often a pain point for native English speakers learning the Russian language. For example, in English, we make the following distinctions when talking about a past event:
Read More...Posted on 2015-01-10
System Sleuthing - Using ptrace to Print Backtraces
strace
is one of my all time favorite command line utilities; not a day goes
by when I don't reach for it for something. It's an extremely versatile tool;
you can use it to inspect what a program's doing, how a program is doing something,
or get an idea of the kinds of things a program is doing to explain why it's running as slowly as it
is. I could go on and on about strace, but fortunately I don't have to; Julia Evans has written a
number of lovely posts about it if you'd like to learn more.
Posted on 2014-06-18
Favorite Vim Options: directory
I was thinking about Vim configuration recently, and I wanted to point out one of my favorite Vim options. Have you ever
been working in a Git repository and run a git status
, only to encounter a series of swap files in the output? How about having
an automated deploy refuse to run because it found an unstaged file in the working directory (you guessed it; a Vim swap file)?
In a response to this annoyance, I've had colleagues recommend disabling Vim's swap file feature entirely! I'd like to propose an
alternative: my friend, the directory
option.
Posted on 2014-06-03
Oh My Glob
My recent posts on the inner workings of perl have made me reflect on some of the more advanced, lesser-known parts of the Perl language. One of these features that I'd like to talk about today is the typeglob.
Read More...Posted on 2013-11-18
Newer Entries Older Entries