Russian Podcast #1.1

This is a test podcast for people starting to learn Russian. The audio consists of two parts - a short “story” and a bunch of simple sentences with gaps between them long enough for a pupil to repeat them. The full entry contains the text in Russian. Later I will probably be adding word lists after texts. This is very amateur, I hope you’ll appreciate.

(Continued)

Continuity parts 1 and 2

I have imported my LJ (2001-2002) and blogger (2002-2004) blogs. Damage: html in April 2001 entries is gone (converted to &bla;), Russian (KOI8) entries from LJ came out empty, blogger posts without titles are unaccessible.

Still to import: my OddMuse based blog. That’s gonna be tricky…

Opera

Just read in Brian Mastenbrook’s: Free Opera Redux

Opera made the banner-less version of their browser free

Installed opera to check if it can do better then firefox at Milon’s Morfix - my hebrew eDictionary of choice. It seems though that opera has no idea how to render hebrew points ;-( The javascript of morfix’ pages works though, so it worth investigating further if I can make opera render vocalised hebrew correctly.

Hmm… changing the default fonts for opera made it render niqqudot somewhat better, but it still has trouble with, e.g. לִוָּה . What the hell? What’s so different about this word? Is it the font that can’t handle it or what?

Also, just noticed, it renders the title of morfix wrong way round (left to right) - firefox does it correctly. Somehow opera chooses larger fonts in some places (like the post form here, at artm.org), and it has ugly gui that doesn’t look remotely like the rest of my gnome desktop. They have “skins” or something like that, is there some chameleon skin that makes Opera look like firefox? Skins are evil (should I resurrect my evil/good list? i think thijn has formatted the original though, and since backups are evil it is gone forever).

bash lambda again

Here is the new version of bash lambda example:

LISP:
  1. (in-package :cl-user)
  2. (defpackage :bash-lambda
  3.   (:use :cl)
  4.   (:export "BASH-LAMBDA-READER-MACRO"
  5.        "SETUP-BASH-LAMBDA-READER-MACRO"
  6.        "*BASH-LAMBDA-READTABLE*"))
  7.  
  8. (in-package :bash-lambda)
  9.  
  10. (defvar *in-exp* nil
  11.   "Flag set to t when bash-lambda-reader-macro is inside a bash-lambda expression")
  12. (defvar *max-arg* nil
  13.   "Maximum argument number discovered so far")
  14. (defvar *var-table* nil
  15.   "A hash table of variables")
  16.  
  17. (defun var (num)
  18.   (or (gethash num *var-table*)
  19.       (setf (gethash num *var-table*)
  20.         (make-symbol (format nil "$~S" num)))))
  21.  
  22. (defun bash-lambda-reader-macro (stream char)
  23.   (declare (ignore char))
  24.   (let ((ch (peek-char nil stream)))
  25.     (cond ((digit-char-p ch)
  26.        (unless *in-exp* (error "Anonymous variable outside bash lambda form"))
  27.        (let ((num (read stream)))
  28.          (unless (typep num '(integer 0)) (error "Bad anonymous variable number ~S" num))
  29.          (setq *max-arg* (max num *max-arg*))
  30.          (var num)))
  31.       ((eql ch #\()
  32.        (let ((*in-exp* t) (*max-arg* -1) (*var-table* (make-hash-table)))
  33.          (let ((form (read stream t t t)))
  34.            (let ((vars (loop for i below *max-arg*
  35.                  collect (var (+ i 1)))))
  36.          `(function (lambda ,(append vars '(&rest rest))
  37.             (declare (ignorable ,@vars))
  38.             ,form))))))
  39.       (t (error "Bash lambda syntax error: dollar symbol out of place")))))
  40.  
  41. (defun setup-bash-lambda-reader-macro (&optional (readtable *readtable*))
  42.   (set-macro-character #\$ #'bash-lambda-reader-macro nil readtable))
  43.  
  44. (defvar *bash-lambda-readtable* (copy-readtable))
  45.  
  46. (setup-bash-lambda-reader-macro *bash-lambda-readtable*)

It is mostly written by Kent Pitman in his letters to me on the topic. This version, besides reader macro itself, illustrates dynamic creating of symbols and local shadowing of special variables. Symbols, created with make-symbol are stored in a hashtable, so that if the same “anonymous parameter” occurs multiple times in a form the symbol can be reused.

Special variables *in-exp*, *max-arg* and *var-table* are created by defvar forms (lines 10-15) and contain nil initially. While reading the bash lambda form, reader macro temporarily binds them to new values in a let form (line 32). After new bindings are made assignments (e.g. setq form in the line 29) change the binding and not the original binding still containing nil. The bindings are destroyed as soon as control leaves the let form that created them.

The Mechanics Of Emotions

e-machanics

evo has made a page about e-mechanics with which i was involved shortly in August. evo and me wrote the visualisation thing in java, using java3d. The performance took place at ARS Electronica and the software continues to evolve without me.

AdSense revealed

Christian sheds a light on [Ad Sence Mystery->AdSense]:

really weird, looks like it was my entry (#12) above. Might b ebecause of the words “External control”, that it triggers “animal repellent”? And even stranger: years ago, in my job (drug metabolism studies), I was indeed analysing the contents of animal and human urine!

Ain’t that spooky? Big Brother has all our moves logged in his database.

AdSense

AdSense
AdSense,
originally uploaded by artm.

And more Artificial Intelligence: google AdSense was bored by a TiddlyWikiDev discussion and suggested a different topic.

Paradigms of AI programming

Peter Norvig, Paradigms of Artificial Intelligence Programming: Case Studies in Common Lisp

Kind people of our library found a paip for me in the university of Nijmegen’s library. The book is thicker, then I expected. Skimmed through the first chapters on the way home - the usual “lisp is the coolest language on earth” stuff. But the rest of the books seems more interesting… I’ll report as I go on reading.

SCCS-INC Internet Resource Center

SCCS-INC Internet Resource Center is unbelievable. They have a bunch of pages like:

  • Bankruptcy
  • Fundraising
  • Flight Schools
  • Mutual Funds
  • Business Schools
  • MBA

Each page has a picture, text along the lines of:

SCCS is an internet resource center which will help you find the information you need. Begin your justice career today by enrolling in an accredited law program. Find and compare law schools near you as well as around the world. Please feel free to browse our site and check back for further updates.

And google ads. That’s it. LOL.

Hebrew

I’m now reading short texts from Habajit Sjelanu (which I was supposed to read parallel to Melet but didn’t) and grammar from Hadachlil. Hebrew verbs are very regular which makes it easy to learn the conjugation patterns but hard to stack different roots in Russian brain. Once I translated a story from Habajit Sjelanoe or from Hebrew Today I can read it and know the meaning of each word, but as soon as I try without context all the verbs look the same to me. I remember having similar difficulty with Dutch - anything involving sch or ij or starting with ver seemed to go to the same compartment in my memory and get mixed up with its neighbours. Which gives me hope…

I also copy texts that I have read from time to time, to not forget the handwriting script and in the naive hope that different sort of repetition stimulates the brains or something. Anyway, the whole adventure is still very exciting and I’m not giving up.