Sunday, June 23, 2013

rlwrap? try using tecla's `enhance`


An alternative to rlwrap is tecla's ''enhance''.  This is good for vi-mode users who would like more of vi's keys functionality -  eg d f x will delete everything up to the next x and you can paste it back, too [rlwrap won't do this].  

links:
  tecla    http://www.astro.caltech.edu/~mcs/tecla/index.html 

Friday, November 02, 2007

yearly report

since the last post, i've worked for a year at boeing, (doing some IT stuff -- implementing an asset management system - Maximo). i've started with MySQL AB as a programmer. my little project at the moment is writing a remote storage engine (rse) for mysql.

Saturday, May 20, 2006

Searching Workplaces

Well, I've been working as a handyman for the past few months and writing a Lisp interpreter in the background.

But now I've decided that I'm better off working at what I know best, so I'm looking for programming work.

Monday, October 03, 2005

first shootin spec

well, i've tinkered about with my benchmarking system by using some of the http://shootout.alioth.debian.org/ tests. i have a nice graphic - a scatter graph of execution time against length of source in bytes (not LOC). but now, i'm formulating a spec for a small stockmarket trading program. it should be fun if people contribute.

so don't forget: http://shootin.sourceforge.net/ and http://ivorykite.com/

!

Saturday, August 06, 2005

benchmarking: the shootin

well, i've set up a public benchmarking suite on sourceforge. my first open source project (other than a file or two published here and there)

http://shootin.sf.net/

at this stage, it's barely functional. hopefully skaller can give me some feedback so i know where to start refining it.

it's been an interesting experience to start a project. it's not that it's the first time i've started something substatial, but i've been more reflective this time round. i notice my code expanding, but is it expanding in the right places? the answer to this is that you don't know if it's expanding in the right direction unless it's 'use case driven'. i'm not a big fan of formal modeling (lots of diagrams and words) but 'use case' is the best basis for developing, methinks.

that is, say i've got a few features of a new program i'm developing called 'cvs'. cvs takes an argument from {import,checkout,update}. so the first thing i do is implement 'cvs import'. once i get this working, run 'cvs checkout'... etc.

this may seem obvious, but sometimes we get stuck in a bottomless pit. for example, you're not sure how to get a recursive 'update'. instead of thinking recursion, go to a simpler use case. say, 'cvs update source.c' and implement this use case. 'cvs update .' will come easier this way.

it's called 'bottom-up' i think.

anyway, i'll be keeping this in mind as i'm working on the shootin.

Wednesday, July 27, 2005

well, i thought i would show the world how little i know by starting a blog.

i've always enjoyed learning -- and i like to learn new programming languages, but this time, i've bitten off more than i can chew.

i've embarked on a mission to learn APL (specifically, the dialect J). this learning project is daunting because i can't see a finishing line anywhere near the horizon. the practitioners of APL and it's dialects are the smartest cookies i've ever virtually met and the mailing lists for K and J can be intimidating in the level of understanding and depth of knowledge that the contributors display.

briefly, APL is a programming language with a mathematical notation and basis. it's a vector, or array programming language (however, APL stands for "A Programming Language", the title of a book by Kenneth E. Iverson in which he puts forward a mathematical notation for programming). Iverson won computing's nobel prize, the turing award, in 1979.

i could stay safe in my world of popular programming languages, but there is great wisom to be found in APL, so much so that i don't think i'll ever master it.

for the newcomer i describe J as regular expressions for vectors so you're not put off by:
qsort =: ]`(($:@:((}.<:{.)#}.)),{.,($:@:((}.>{.)#}.)))@.(*@#)

which is quicksort.