(cons 'hack *life*)

my commit log as a blog

Carefree Git and Hg

| Comments

I was at an Appsterdam lunch meetup today, and before the presentation I was talking with some people about source control. They worked for Atlassian, and so of course bitbucket v. github came up. (It didn’t help that I was wearing a GitHub shirt. Atlassian - I want to give you money to get a bitbucket shirt but I don’t see any for sale. Why?) Regardless of why I typically use github more, or what my usage profiles are for the two, they were interested to hear my solution to a problem I had: how to simplify working in various source control systems, particularly in both mercurial and git.

Analytics Win

| Comments

Inexplicably, for the longest time I was reticent to enable any sort of analytics on my personal site. Partially because, to be honest, it’s not as if my blog is well read (or so I assume, but soon I’ll have numbers to back that claim up). As I try to get more involved in the world, I’ve found my site is useful as a portfolio of sorts - not so much in the way of “look at my sexy site” as “here’s the cool things I do”. I’ve noticed that GitHub has had some DDoS issues lately, and as I host this site on my GitHub pages, I wanted to minimise any potential downtimes. I’d also noticed that some of my pages were a bit on the slow side to load, as Octopress appears to load quite a bit of javascript. I admit to being a fan of many of the asides, and to have written some of my own.

Thoughts on Mountain Lion

| Comments

One of the great things about paradigm shifts is we can throw out the old and start from scratch, getting rid of all the old cruft that’s built up over time. Computers are no different, and the tablet revolution has allowed us to rethink a few things. It looks like Apple is finally converging some of the lessons learned with iOS and OS X. So, let’s take a look at some of these ideas:

Using Set Theory

| Comments

In the last post, we took a look at the basics of set theory. Now, I’d like to take a look at how to actually make use of it in your code.

One of the issues with practically using the code in the last post is that the initial subsets were defined arbitrarily and not derived from the superset. In this post, all the examples are derived from the superset. We’ll use a couple techniques for doing this illustrate some of the various ways to do it.

In Python, we’ll use an object-oriented approach, creating a few classes and working on Book objects. In Clojure, we’ll use records. Though we’ll approach language a little differently, I hope they still bring clarity to the subject.

Noir v. Flask

| Comments

Noir v. Flask: the shootout

I wrote a quick REST API server as an illustration for a blog post, but I wrote both a Python and a Clojure version. I wrote a test suite to cover the entire API (of course - you do write tests too, right?), and I figured while I was at it, I might as well benchmark the two. Here are the results of 1,000 runs:

Basic Set Theory

| Comments

Recently, I was explaining to someone the basics of set theory and how the various basic operations translate to the real world. I used the example of the project I’m currently working on, which is a web front end to my ebook library. This is a very quick introduction aimed at people with a programming background but who don’t have a strong math background; the goal is to help you to learn to use them without having to delve deep into the math behind them.

On SOPA and PIPA

| Comments

Imagine you are the owner of a small restaurant. The neighbourhood is of mixed quality, but this is where you live so you try to make do anyways. One day, new laws are passed such that if anyone in your restaurant conducts any sort of illegal activity (like a drug deal), the police blockade your restaurant and force everyone out. Furthermore, this new law isn’t clear about how to get your restaurant back. The politicans who made this law have absolutely no experience in the restaurant industry, but still expect you to continually monitor all your patrons and do the work of the police and law enforcement for them. At any time, one of your patrons can call the police and claim something happened in your restaurant and you get shutdown. On top of all this, there are people actively looking for anything untoward happening so as to shut you down. What do you do? You can’t really afford to hire more waiters and waitresses or security personnel to monitor (and don’t really want to establish that kind of atmosphere in your business anyhow); CCTV and other technical measures have too long of a delay (or require you to suspect something happened so you can check the tapes). Really, the only thing you can do is to move out of town.

Back to Lisp

| Comments

1
2
3
4
5
commit e358120dd3760e64436f5652895c751b39148ebd
   Author: Kyle Isom <coder@kyleisom.net>
   Date:   Wed Dec 28 19:22:59 2011 +0300
   
    initial commit

A brief stint playing with clojure made me miss common lisp, so I’m working through Paul Graham’s ANSI Common Lisp with a copy of On Lisp. My last foray, I learned from David Touretzky’s A Gentle Introduction to Symbolic Computation, so this time I’m trying PG’s book. So far I’ve done more useful things, mostly by actually reading a bit more of the sbcl user manual (from which I learned some useful things such as sb-ext:*posix-argv* and sb-ext:save-lisp-and-die) and by the immensely useful site Rosetta Code, from which I learned about the DRAKMA HTTP client library. I’ve also been aided quite a bit by Zach Beane’s quicklisp; in fact, one of the things I’ve done is to write a short script to build an sbcl image with quicklisp and my most commonly used libraries built-in.