August 2009
25 posts
1 tag
Poor man's website downloader
alias wgetr="wget -rSNpk -np --execute robots=off -U \"Mozilla/5.001 (windows; U; NT4.0; en-us) Gecko/25250101\" $@"
Aug 31st
1 note
1 tag
Mixins in Scheme
#lang scheme (define person% (class object% (init name) (super-new) (define current-name name) (define/public (set-name name) (set! current-name name)) (define/public (get-name) current-name))) (define (talkable-person %) (class % (super-new) (define/public (talk) "blah blah"))) (define talking-person% (talkable-person...
Aug 30th
1 tag
Interfaces in Scheme
#lang scheme (define person-interface (interface() get-name set-name)) (define person% (class* object% (person-interface) (init name) (define current-name name) (super-new) (define/public (get-name) current-name) (define/public (set-name name) (set! current-name name)) )) (define gg (new person% [name "GG"])) (send gg get-name) (send gg set-name "Ganesh...
Aug 30th
1 tag
Aug 26th
1 tag
Aug 26th
1 tag
Aug 19th
Aug 19th
1 tag
Easy comment/uncomment selection in emacs
Add this to .emacs ;; Comment/Uncomment region (global-set-key (kbd "s-/") 'comment-dwim) Toggle comment of the selected region by pressing Apple + /
Aug 16th
1 tag
OOP in Scheme
#lang scheme (define student% (class object% (init name age) (define this-name name) (define this-age age) (super-new) (define/public (get-name) this-name) (define/public...
Aug 15th
1 tag
parameterized procedures in Scheme
(define fav-color (make-parameter 'blue)) (define whats-ur-fav-color? (lambda () (fav-color))) > (whats-ur-fav-color?) blue > (parameterize ((fav-color 'red)) (whats-ur-fav-color?)) red
Aug 14th
1 tag
quasiquote & unquote in scheme
> (define day-of-week 'Sunday) > (define greet (lambda () (quasiquote (Today is (unquote day-of-week))))) > (greet) (Today is Sunday) > (set! day-of-week 'Monday) > (greet) (Today is Monday)
Aug 14th
1 tag
Enabling auto-pairs in Emacs
;; Enable auto-pair (setq skeleton-pair t) (global-set-key "(" 'skeleton-pair-insert-maybe) (global-set-key "[" 'skeleton-pair-insert-maybe) (global-set-key "{" 'skeleton-pair-insert-maybe) (global-set-key "\"" 'skeleton-pair-insert-maybe) (global-set-key "'" 'skeleton-pair-insert-maybe)
Aug 7th
1 tag
Textmate like duplicate line shortcut in Emacs
;; Custom keybinding (defun duplicate-line() (interactive) (move-beginning-of-line 1) (kill-line) (yank) (open-line 1) (next-line 1) (yank) (next-line 1)) (global-set-key (kbd "C-d") 'duplicate-line) Now you quickly duplicate a line my pressing Ctrl+d.
Aug 7th
Emacs - Git minor mode (Magit) →
Aug 6th
1 tag
Continuation Passing Style in Scheme
#lang scheme (require (lib "trace.ss")) (define (length list) (if (null? list) 0 (+ (length (cdr list)) 1))) (trace length) (define (length-cps list) (define (length-cps list continuation) (if (null? list) (continuation 0) (length-cps (cdr list) (lambda (v) (continuation (+ v 1)))))) (length-cps list (lambda (v)...
Aug 6th
1 tag
Non preemptive fibers in scheme
#lang scheme (define fiber-list empty) (define fiber (lambda (fib) (set! fiber-list (append fiber-list (list fib))))) (define start (lambda () (let ([p (car fiber-list)]) (set! fiber-list (cdr fiber-list)) (p)))) (define pause (lambda () (call/cc (lambda (k) (fiber (lambda () (k false))) (start))))) > (fiber (lambda () (let f ()...
Aug 6th
1 tag
First Class continuation in Scheme
(define continuation #f) (define (hello) (let ([i 0]) (display "Counter initialized") (newline) (call/cc (lambda (k) (set! continuation k))) (set! i (+ 1 i)) i)) > (hello) Counter initialized 1 > (continuation) 2 > (continuation) 3 > (continuation) 4 > (continuation) 5
Aug 5th
1 tag
Tracing stack usage/time in Scheme
(require (lib "trace.ss")) (define (len-iter list) (define (len-iter list acc) (cond [(null? list) acc] [else (len-iter (cdr list) (+ 1 acc))])) (len-iter list 0)) (trace len-iter) (define (len list) (cond [(null? list) 0] [else (+ 1 (len (cdr list)))])) (trace len) Iterative style outperforms linear recursive style. > (time (len (list 1 2 3 4 5))) |(len (1...
Aug 5th
1 tag
Syntactic extension in Scheme
It is dead simple to add a syntactic extension to Scheme. The following is an if version without the else block. (define-syntax iff (syntax-rules () [(_ predicate arg) (if predicate arg #f)])) > (iff true "GG") "GG" > (iff false "GG") #f Of course, you can achieve the same effect using and syntactic core form > (and true "GG") "GG" > (and false "GG") #f
Aug 5th
1 tag
Lazy evaluation in scheme
(define lazy (lambda (t) (let ([val false] [flag false]) (lambda () (cond [(not flag) (begin (set! val (t)) (set! flag true))]) val)))) (define lazy-dude (lazy (lambda() (display "I am awake") (newline) "Yippee"))) > (lazy-dude) I am awake "Yippee" > (lazy-dude) "Yippee"
Aug 5th
Enabling emacs Keybinding in Gtk Apps
echo 'gtk-key-theme-name = "Emacs"' >>~/.gtkrc-2.0 gconftool -t string --set /desktop/gnome/interface/ gtk_key_theme Emacs
Aug 3rd
Trying out Aquamacs Emacs 2.0 pre1 with the latest Cocoa Emacs 23 backend. http://aquamacs.org/download.shtml
Aug 2nd
“The learned foster learning more On seeing the world enjoy their lore”
– Thirukurral
Aug 1st
Testing from tumblr desktop widget…
Aug 1st
Hello World
(define (hello) (display "Hello from GG")) (hello)
Aug 1st