Tim’s Blog
-
Simple String Extension in Ruby
Based on a blog post from Steve Yegge… #ruby class String def endswith(arg) (self =~ /.*#{arg}$/) != nil end end #to test irb>”extension”.endswith(“ion”)
-
Flatland
I finished reading Flatland. It’s a parable-style story about dimensions and geometry. As exciting as that sounds, it’s really good. I recommend it. You don’t have to be a math nerd to read it. I read the annotated version, but pretty much read the story straight-through, only using the notes when something struck a chord.…
-
Static vs Dynamic Scope
A discussion of static and dynamic scope for variables in programming languages. Emacs lisp is one of the few languages with dynamic scoping and this post takes a look at the difference.
-
Arrays as Objects in Javascript
Rhino Prompt… js> a[0] = 1; js> a.print = function () {for(var e in this) print (“a[” + e + “] = ” + a[e]);}; function () { for (var e in this) { print(“a[” + e + “] = ” + a[e]); } } js> a.print(); a[0] = 1 a[print] = function () {…
-
“wc”-like Unix Command in Emacs Lisp
Inspired by reading a Steve Yegge blog post. (require ‘cl) (defsubst wc-whitespace-char? () “is current character whitespace?” (not (looking-at “[A-Za-z0-9]”))) (defun wc-buffer (b) “count words in a buffer” (interactive “bBuffer to Analyze “) (let ((word-count 0) (in-word nil) (char-count 0) (line-count 1)) (save-excursion (set-buffer b) (beginning-of-buffer) (while (not (eobp)) (if in-word (if (wc-whitespace-char?) (setq in-word…
Got any book recommendations?