samedi 30 mars 2013

1998 Emacs article serie "Emacsulation" from slim[e] (common lisp) author Eric Marsden.

After Luke Gorrie's talk about SLIME origins and features, I dug for Eric Marsen (author of SLIME proto-prototype). According to http://edward.oconnor.cx/2006/01/emacsulation did an article series about Emacs around 1998. Links are dead redirection so here's the web.archive~proxy list:
  1. on jka-compr (AKA auto-compression-mode
  2. on networking, ange-ftp, w3, and crypt++
  3. an introduction to ediff
  4. on gnuserv
  5. on customizing Emacs, including material on Custom
  6. on abbrev, dabbrev, and completion
ps : Eric's webpage link section is full of things.

John Wiegley induced emacs [past]discovery of the day - edebug

EmacsConf is taking place today. John Wiegley speaks about elisp environment, including elp (profiler), edebug, and many other things. So I went to read the edebug manual a bit more (as usual I read a few pages but stopped too early).
I enjoyed the trace buffer combined with [fast]trace execution mode.

Enable the trace buffer with : `M-:` (setq edebug-trace t)

Now, let's say I have this in *scratch* (.|. being the caret)

(defun fact (n)
  (cond
   ((equal n 0) 1)
   ((* n (fact (- n 1))))))

.|.(fact 10)

`M-x` edebug-defun enters the elisp debugger

`T` will step through the s-exps in fast trace mode (automatically evaluate the next s-exp every N ms) and the *edebug-trace* buffer will trace the whole process nicely, resulting in this:

{ edebug-anon0 args: nil
:{ fact args: (10)
::{ fact args: (9)
:::{ fact args: (8)
::::{ fact args: (7)
:::::{ fact args: (6)
::::::{ fact args: (5)
:::::::{ fact args: (4)
::::::::{ fact args: (3)
:::::::::{ fact args: (2)
::::::::::{ fact args: (1)
:::::::::::{ fact args: (0)
:::::::::::} fact result: 1
::::::::::} fact result: 1
:::::::::} fact result: 2
::::::::} fact result: 6
:::::::} fact result: 24
::::::} fact result: 120
:::::} fact result: 720
::::} fact result: 5040
:::} fact result: 40320
::} fact result: 362880
:} fact result: 3628800
} edebug-anon0 result: 3628800

Kawaii, isn't it ?

mercredi 27 mars 2013

Coursera proglang epilog

Done with proglang. Lost many points because of I'm an unorganized idiot who can't recall a deadline. Unlike the scala course, proglang rules are stricter, 50% penalty right away. Anyway, got new insights and good understandings on all assignments. Both courses seems to be 2nd year college level. It's time for graduate level courses on programming. I'm revisiting old courses I took but failed (either in concept understanding or grades or both), and also starring at brown CS1730, idu C311, ...

There are initiatives for study groups about SICP, or advanced interpretation/compilation from coursera.proglang forum. Interesting, but I don't know how it's gonna be organized.

I also need 2nd-3rd year level classes in physics, chemistry, ee. And I want to take MIT classes about advanced data structures lead by E.Demaine.

That's for long term future. Short term is job hunting season opening. And right now I'm kinda blue. I liked the #coursera-pl @ freenode irc channel. All the guys here were cool (from the old timers gurus to the youngsters). I don't like to part.

Also, the sourceforge migration of some ocaml lib to github, pitched by xtrmz_ from #coursera-pl. A little push for the ocaml ecosystem, which some past teachers are so fond of.

-

jeudi 7 mars 2013

transcode to dvd using ffmpeg dvdauthor and growisofs




* transcode

  ffmpeg -i input.asf -target pal-dvd output.mpg
                                                                                                                                     
* Now you can use this file to make a DVD:


  export VIDEO_FORMAT=NTSC # NTSC or PAL
  dvdauthor -t -o youroutputdirectory -f output.mpg

  dvdauthor -o youroutputdirectory                                      
  mkisofs -dvd-video -o dvdimage.iso youroutputdirectory

  growisofs -speed=4 -dvd-compat -Z /dev/dvd=dvdimage.iso
                                                                                                             
* Verify by comparing MD5SUM


  md5sum dvdimage.iso 
  ISOSIZE=$(( $(ls -l dvdimage.iso | awk '{ print $5 }') / 2048 ))
  dd if=/dev/dvd bs=2048 count=${ISOSIZE} | md5sum

from http://ubuntuforums.org/showthread.php?t=1123447

lundi 25 février 2013

limit stream -- convergent approximation for data

so many representation for a single entity
- url- path
- file handler
- file metadata
- file header

on a graphical side
- icon
- named cell
- preview

somehow they're ordered, like a lazy stream whose data is the limit

url | path -> r : lim stream
(r) -> file handler , r
   (r) -> file metadata , r
      (r) -> file header , r
         (r) -> file byte stream, ()

mercredi 6 février 2013

Never is the year of Linux on the Desktop

It's a non sense, unixness is not to give you a finished product but composable atoms to blend at will. There should be no one version of what a desktop is, anything of value should be implementable or drive the creation of a new atom. Unfortunately Linux desktop is 0.01% composable. It's all application on top of fat libraries, with low capabilities, and even less ergonomy.

dimanche 3 février 2013

sansa clip+ hazardous resurrection.

My little sansa clip buddy just crapped itself real good today. That's the second time I see that, my mother's one died out of the blue. These things are tiny and sturdy yet their internals seems very fragile. Fortunately, or not, mine resurrected, a definite proof that god exists, is digital and supports music sharing. I'm letting him charging on usb as if he needed some juice to warm itself back from the freezing cold trip to the trash bin we were getting back from. Pardon my grammar.
I was already thinking on grabbing a cheap android phone on ebay, I'm now one step closer. After all, it's only twice the price of this limited device to get a pocket computer/gps/mugmagnet these days. And I love jelly beans. Tribute to Busy Phillips.

[198002.235827] usb 1-5: USB disconnect, device number 15
[198680.723585] usb 1-5: new high-speed USB device number 16 using ehci_hcd
[198680.856683] scsi9 : usb-storage 1-5:1.0
[198681.863414] scsi 9:0:0:0: Direct-Access     UNDEF    storage          1.0  PQ: 0 ANSI: 0
[198681.866267] sd 9:0:0:0: [sdc] 8265 512-byte logical blocks: (4.23 MB/4.03 MiB)
[198681.867897] sd 9:0:0:0: [sdc] Write Protect is off
[198681.867906] sd 9:0:0:0: [sdc] Mode Sense: 04 00 00 00
[198681.868894] sd 9:0:0:0: [sdc] No Caching mode page present
[198681.868902] sd 9:0:0:0: [sdc] Assuming drive cache: write through
[198681.875921] sd 9:0:0:0: [sdc] No Caching mode page present
[198681.875929] sd 9:0:0:0: [sdc] Assuming drive cache: write through
[198681.885107]  sdc: unknown partition table
[198681.893907] sd 9:0:0:0: [sdc] No Caching mode page present
[198681.893916] sd 9:0:0:0: [sdc] Assuming drive cache: write through
[198681.893923] sd 9:0:0:0: [sdc] Attached SCSI removable disk
[198723.408062] usb 1-5: USB disconnect, device number 16
[198796.486921] usb 1-5: new high-speed USB device number 17 using ehci_hcd
[198811.593537] usb 1-5: device descriptor read/64, error -110
[198826.803586] usb 1-5: device descriptor read/64, error -110
[198827.013588] usb 1-5: new high-speed USB device number 18 using ehci_hcd
[198835.743723] hub 1-0:1.0: unable to enumerate USB device on port 5
[198887.830541] hub 1-0:1.0: unable to enumerate USB device on port 5
[198889.163561] usb 1-5: new high-speed USB device number 20 using ehci_hcd
[198889.294648] scsi10 : usb-storage 1-5:1.0
[198890.297786] scsi 10:0:0:0: Direct-Access     SanDisk  Sansa Clip+ 4GB  v01. PQ: 0 ANSI: 0
[198890.299140] scsi 10:0:0:1: Direct-Access     SanDisk  Sansa Clip+ 4GB  v01. PQ: 0 ANSI: 0
[198890.299750] sd 10:0:0:0: [sdc] 7683072 512-byte logical blocks: (3.93 GB/3.66 GiB)
[198890.301475] sd 10:0:0:0: [sdc] Write Protect is off
[198890.301485] sd 10:0:0:0: [sdc] Mode Sense: 04 00 00 00
[198890.302146] sd 10:0:0:0: [sdc] No Caching mode page present
[198890.302155] sd 10:0:0:0: [sdc] Assuming drive cache: write through
[198890.305781] sd 10:0:0:1: [sdd] Attached SCSI removable disk
[198890.306345] sd 10:0:0:0: [sdc] No Caching mode page present
[198890.306354] sd 10:0:0:0: [sdc] Assuming drive cache: write through
[198890.309471]  sdc:
[198890.311724] sd 10:0:0:0: [sdc] No Caching mode page present
[198890.311733] sd 10:0:0:0: [sdc] Assuming drive cache: write through
[198890.311741] sd 10:0:0:0: [sdc] Attached SCSI removable disk