I’ve always liked self hosting as it gives you the most flexability. With projects like gitolite you can ditch the heavy database, the server side scripting languages and run a nicely configured and feature rich server on something as small as a Raspberry Pi.
Gitolite supports gitweb, but when running on Debian it required me to install apache2, and configure CGI. Other distros I’ve tried were even worse with dependencies. All I want to is give public, read-only access via http. Can’t be too difficult, right?
Continuing with the todo.txt haskell project, this post will introduce parsers.
I created a URL shortner and bookmark CGI script…in Bash! Because who doesn’t love making their own version of free services just for the heck of it?
Up to this point we have written some code, explained type classes, and done a little pattern matching. But we haven’t written anything that really does anything. Until we have some IO to perform, we will have to find another way to interact with our code. This is a perfect chance to introduce Unit Testing.
Now that we have a few basic types we should start working on making their interaction nicer. It is pretty important to be able to print and compare data types so we will start there. Once we are able to compare, we should be able to filter lists of data types.
For the past few years I’ve been running my websites, email, XMPP instance and other random services off of a few Raspberry Pi 2 sitting in my house. But after a long battle with our ISP and their inability to keep our service up I finally decided to move to a paid VPS. After searching around I decided to try Amazon Lightsail. So far its working nicely…unless you can’t see this post.
To work on my Haskell skills I decided to work on a little side project. I didn’t want something too complicated but I did want to try out some of the more fun and interesting tasks that Haskell does well.
As I work on the project I’ll go through the code, as a sort of tutorial on creating an actual application.
I’ve been busy with a ton of projects and a slump at work so I’ve been all over spectrum on wanting to do anything related to computers. I’ve moved my blog to a Raspberry Pi 2 and felt that I needed something that was static but yet functional. So I’m trying out Frog.
In the coming months a few States (IA, DE) will be releasing the first ever “Digitial Driver’s License”. As with most things, being able to keep a digital copy in your pocket is quite convenient. Surprisingly, with everyone becoming more security concious both the government officials requesting the Digital ID’s and the companies creating them are both putting our safety in the forefront of the project. There is only one flaw in their design: You have to give the police your phone!
The other day I was reading through /r/scheme and found an interesting post about continuations. The post did a pretty good job of showing some examples of how to use continuations, but seemed to miss the mark explaining how they work and how to add them into your design. So I thought why not take a crack at it.
“A Continuation is an abstract representation of the control state of a computer program.” Thats how Wikipedia explains it. So it is a snapshot of the current state of your application at some given point in time. But how can that be useful?