суббота, 9 октября 2010 г.

run ebean from jar

Ebean по умолчанию не ищет классы entity'ей в jar'ах
исправляется указанием в его конфиге такого свойства:
ebean.search.jars=<разделенные запятыми имена jar'ок>

мою багу в ebean'е пофиксили))

суть: Ebean при использовании с mysql не правильно работает с полями типа boolean(выдает exception)
линк: www.avaje.org/bugdetail-323.html
причем довольно оперативно)

суббота, 1 мая 2010 г.

Числа Чёрча

Должен был рассказывать в универе про лямбда-исчисление.. набросал такой примерчик(все честно спизжено с wiki и переписано на схему):


; numbers
;; zero = λf.λx.x
(define zero
(lambda (f) (lambda (x) x)))
;; λf.λx.f x
(define one
(lambda (f) (lambda (x) (f x))))
;; λf.λx. f (f x)
(define two
(lambda (f) (lambda (x) (f (f x)))))
(define three (add-1 two))
(define four (add-1 three))

; operations
;; add-1 n = n+1 = λf.λy.f ((n f) y)
(define (add-1 n)
(lambda (f) (lambda (x) (f ((n f) x)))))
;; a+b
(define (add a b)
(lambda (f) (lambda (x) ((a f) ((b f) x)))))
;; mult = m*n = λm.λn.λf. n (m f)
(define (mult m n)
(lambda (f) (n (m f))))

; predicates
;; zero? ≡ λn. n (λx.F) T
(define zero?
(lambda (n) ((n (lambda (x) #f)) #t)))
;;; n-1 = λn.λf.λx. n (λg.λh. h (g f)) (λu. x) (λu. u)
(define (n-1 n)
(lambda (f) (lambda (x) (((n (lambda (g) (lambda (h) (h (g f)))))
(lambda (u) x))
(lambda (u) u)))))

; converting
;; get-number - convert Church numbers to Scheme numbers
(define (get-number n)
(if (zero? n)
0
(1+ (get-number (n-1 n)))))

; test
(zero? zero)
(zero? one)
(zero? (n-1 (add-1 zero)))
(get-number zero)
(get-number one)
(get-number three)
(get-number (add two three))
(get-number (mult one one))
(get-number (mult zero one))
(get-number (mult one three))
(define five (add two three))
(define six (mult two three))
(get-number (mult six five))

(zero? two)
(zero? (n-1 two))
(zero? (n-1 (n-1 two)))

; β-reduction example of (n-1 two)
;; (λn.λf.λx. n (λg.λh. h (g f)) (λu. x) (λu. u)) (λfx.f (f x))
;; λf.λx. (λfx.f (f x)) (λg.λh. h (g f)) (λu. x) (λu. u))
;; λf.λx. (λx.(λg.λh. h (g f)) ((λg.λh. h (g f)) x)) (λu. x) (λu. u))
;; λf.λx. ((λg.λh. h (g f)) ((λg.λh. h (g f)) (λu. x))) (λu. u))
;; λf.λx. (λh. h (((λg.λh. h (g f)) (λu. x)) f)) (λu. u)
;; λf.λx. (λu. u) (((λg.λh. h (g f)) (λu. x)) f))
;; λf.λx. (((λg.λh. h (g f)) (λu. x)) f)
;; λf.λx. ((λh. h ((λu. x) f)) f)
;; λf.λx. f x


P.S. решил что проще поменять цветовую схему блога под настройки в емаксе, чем наоборот) а уж воевать с htmlize - эт точно на долго бы затянулось..

пятница, 12 марта 2010 г.

thunderbird default browser

В моей (gentoo-linux) версии thunderbird'а не настраивается стандартным образом браузер, которым следует открывать ссылки. После обновления до thunderbird3 старый хак перестал работать.
Решение:
установить в Edit->Preferences->Advanced->Config Editor.
network.protocol-handler.warn-external.http=true
network.protocol-handler.warn-external.https=true
после чего при попытке открыть ссылку появится окно с запросом, в котором можно выбрать браузер или указать путь к нему

четверг, 11 февраля 2010 г.

Emacs: находки дня

  1. В емаксе можно держать несколько независимых буферов info. Ура! M-n - клонирует текущий инфо-буфер. C-n C-h i - открывает буфер *info*<n>
  2. можно сохранить текущую раскладку window'ов по fram'у и буферов по window'ам в регистр: C-x r w R, а потом соответственно ее загрузить оттуда: C-x r j R. Осталось только разобраться: "можно ли и как?" - сохранять это в bookmark'и
P.S. аа!! наглое дублирование лиспо-кода:
(defun bookmark-make-record-default (&optional point-only)
"Return the record describing the location of a new bookmark.
Must be at the correct position in the buffer in which the bookmark is
being set.
If POINT-ONLY is non-nil, then only return the subset of the
record that pertains to the location within the buffer."

`(,@(unless point-only `((filename . ,(bookmark-buffer-file-name))))
(front-context-string
. ,(if (>= (- (point-max) (point)) bookmark-search-size)
(buffer-substring-no-properties
(point)
(+ (point) bookmark-search-size))
nil))
(rear-context-string
. ,(if (>= (- (point) (point-min)) bookmark-search-size)
(buffer-substring-no-properties
(point)
(- (point) bookmark-search-size))
nil))
(position . ,(point))))