Blog entries

All blog entries
Currying In Different Languages
Snippets of currying mechanisms in different languages which support currying
Farewell (for now)
I just can't use this site any longer. It's time to wave goodbye.
Factor example program
For the CLI project season one, I document and explain a little sample program using the Factor language.
Adding Textadept Support to Factor
The "Common Learning Initiative" project of #yfl has selected Factor as the language we're going to jointly learn. Factor has some nice tooling for supporting external text editors. Textadept isn't one of these. Until now.
Time to 'Fess Up
I played a little joke a while back and now it's time to both 'fess up and to explore some of the sadly all-too-explicable reactions to it.
Mercury's "Time to Hello World"
There's an interesting metric for language accessibility (and therefore, by extension, often its popularity) called "Time to Hello World". Mercury's "Time to Hello World" is abysmal. In this blog entry I will analyse both why it is so bad and what can be done to improve it.
CLI -- Collective Learning Initiative
Describing what the CLI is, what you can expect and what you'll need to invest in it if you choose to join.
Have Designer, Will Travel
Making custom digital hardware used to be difficult and expensive. No longer. It's time for us to realise that we live in the age of custom hardware being within reach of the ordinary.
Two Turing Machines
For fun I wrote two universal Turing machines: one in Prolog, one in Mercury. This led me to some observations about type systems and their spheres of utility.
Comment Bahman Movaqar on 140 Characters of Stupid at a Time
I've seen this mindset in the IT world very frequently now where one's world (ideas, plans, expectations, ...) are shaped by his “awesome” tools instead [...]
140 Characters of Stupid at a Time
I don't use Twitter. For any reason. Here's why.
FSL Interceptor Creation
The Fsl package created by our very own Marc Simpson puts a really cool extension wrapper around the core of the great Fossil SCM. Adding new commands and such is easy, but requires both familiarity with a bit of a fringe language (Tcl) and requires knowledge of how the pieces of the Fsl wrapper interact. This tutorial goes through the creation of such an "interceptor" command as an illustration of how to get to there from here.
Meta-Predicates in SWI-Prolog
The meta_predicate directive in Prolog can cause confusion when first encountered for two reasons: 1, it is a horrible, horrible hack; 2, documentation for it is badly-written by people who know what they mean but not how to express it. There is the further problem that each dialect does it differently (this being Pro-"what's a standard?"-log). Here's my attempt to make things a bit less confusing for SWI-Prolog (and probably YAP) users.
Comment Bahman Movaqar on Stupid Shell Trick
I have `alias vi='emacsclient -t'` in `.bashrc` :-D
Comment Michael T. Richter on Stupid Shell Trick
Yes, I can see how running the "emacs" once with a long command line option and then an even *longer* command name ("emacsclient") with a [...]
High vs. Low Level Languages
There's a lot of mistaken impressions about high level languages, both in terms of their attributes and their benefits. Allow me to elucidate.
Comment Bahman Movaqar on Stupid Shell Trick
Again there's no need for such an alias for Emacs. Run `emacs --daemon' and then use `emacsclient -c' to very quickly launch an Emacs window [...]
Command Line Options: How To Parse In Bash Using “getopt”
Use “getopt” in a Bash script to parse long and short command line options, enforce arguments for some options and spot dubious user input.
Setting up Emacs with Flymake for Mercury
Quick guide on how to get Emacs have Mercury code 'flymade' so you can see the errors as you edit the code.
Stupid Shell Trick
Launching GUI apps from the shell is often a pain. No longer!
Hello, World
It's finally happened. I actually understand enough Plone (with Bahman's help!) to make meaningful contributions.
My Latest Tweets
There was a problem retrieving the twitter updates.