пятница, 24 августа 2007 г.

Это нормально?

Нормально напсать реализацию DSL в 69 строк, а на самом DSL написать 42 стороки, при этом зная что этот DSL понадобиться только один раз. Да ладно строки, но ведь и времени потрачено намного больше чем решать тупо в лоб... Но зато когда смотришь на сам DSL - красиво. Правдо когда смотришь на его реализацию - ужоснах. Короче хватит писать код ранним утром)

PS: БЛЯ! Это не самое смешное. Самое смешное, что весь этот DSL создавался для того чтобы протестить одну фичу. А реализация фичи заняла суко - ОДНУ строку. одну бля. правда длинную. это ваще песдец.

воскресенье, 19 августа 2007 г.

Когда выйдет YARV все отсосут

Так и будет, я уверен :)

http://www.rubychan.de/share/yarv_speedups.html

http://antoniocangiano.com/2007/02/19/ruby-implementations-shootout-ruby-vs-yarv-vs-jruby-vs-gardens-point-ruby-net-vs-rubinius-vs-cardinal

четверг, 16 августа 2007 г.

rspec for emacs: finds

Ну и вдогонку finds для rspec.
Выбор хоткеев противоречит политки емакс на C-c , но зато удобно.




(rails-find:gen "spec" "spec/")
(rails-find:gen "spec-controllers" "spec/controllers/")
(rails-find:gen "spec-models" "spec/models/")
(rails-find:gen "spec-helpers" "spec/helpers/")
(rails-find:gen "spec-fixtures" "spec/fixtures/")

(define-keys rails-minor-mode-map
((rails-key "\C-c f r s") 'rails-find:spec)
((rails-key "\C-c f r c") 'rails-find:spec-controllers)
((rails-key "\C-c f r m") 'rails-find:spec-models)
((rails-key "\C-c f r h") 'rails-find:spec-helpers)
((rails-key "\C-c f r v") 'rails-find:spec-views)
((rails-key "\C-c f r f") 'rails-find:spec-fixtures))



rspec for emacs: runer

Уже почти месяц опять пишу на Rails. Нужно срочно возвращаться к emacs-rails но времени пока так мало(( К тому же нужно разбираться что там за год без меня понаписали. Начал делать автоматизацию для rspec.
Вот пока, спекалка файлов. Собственно интересны 3 функции. rails-spec:files, её можно запускать интерактивно и передать список всех файлов (от корня проекта), которые нужно спекать. Вторая rails-spec:this-file, соответственно запускает spec на текущий файл. Третья: rails-spec:all, понятно для чего. Пока сделал последнюю через ./script/spec ./spec, т.к. непонятно как быть с опциями в rake spec...

Собственно сделано это для двух вещей. Во первых - запускать спеки текущего файла одной кнопкой, ни куда не переходя. Во вторых (и в основном из-за этого) теперь можно щелчком мышкой или энтером перейти на то место где косяк. Очень много экономит времени.

В следующем выпуске переход между spec файлами и соответвующими им файлами моделей, контроллеров и вьюшек. Но это я думаю не скоро, т.к. не хочу делать абы как, а сначала вернутся к основной ветке проекта.



Вот собтвенно код:



(defmacro* in-directory ((directory) &rest body)
(let ((before-directory (gensym)))
`(let ((,before-directory default-directory)
(default-directory ,directory))
(cd ,directory)
,@body
(cd ,before-directory))))


(defmacro* rails-project:in-root-with-cd (&rest body)
(let ((root (gensym)))
`(rails-project:with-root (,root)
(in-directory (,root) ,@body))))



(defun rails-project:compile-in-root (command)
(rails-project:in-root-with-cd
(compile command)))


(defun rails-spec:files (files)
(interactive "Mspec files: ")
(rails-project:compile-in-root (concat "./script/spec " files)))


(defadvice rails-spec:this-file
(before save-files activate compile)
(save-buffer))

(defun rails-spec:this-file ()
(interactive)
(rails-spec:files (buffer-file-name (current-buffer))))

(defun rails-spec:all ()
(interactive)
(rails-spec:files "./spec"))



PS: Как особо частые операции я забиндил их на F11 и F12:



(define-keys rails-minor-mode-map
((kbd "<f12>") 'rails-spec:this-file)
((kbd "<f11>") 'rails-spec:all))

вторник, 24 июля 2007 г.

Я вернулся

Отдохнули мы замечательно. Нифига там не жарко сейчас. Не смотря на темпертатуру между 35 и 40 чувствуешь себя на много комфортенее чем в Москве в 30. Единственное перед сном либо мёрзнешь под кондёром либо паришся.

Почти всю дорогу мы не вылазили за территоию отеля. Тока один раз ездили на прикольную экскурсию с дурцким названием "бедуинка". Там мы катались на квадрациклах по пустныне. Катались на картинге и верблюдах. Потом ехали по пустни с аццким водителем на джипе, который 100% хотел жаждал нашей смерти. Приехали в бедуинскую деревню там потусили, потом смотрели мегашоу) с кобрами факирами и чуваком в который крутился минут 15 вокруг себя в мегаюбке.

Отель хороший, кормят плотно - много мяса. Правда фрутктов мало. Но фруткты странные, хоть апельсины и были с примесями нежнозелёного цвета, но по сладости были на чуть ли не лучше чем супероранжевые, что продаются у нас.

---Продолжение следует

Фотки:

пятница, 6 июля 2007 г.

jQuery

Всегда знал что JS почти такой же труъ, как ruby. Но сегодня убедился в этом: http://www.rsdn.ru/article/inet/jQuery.xml .

Mozrepl - теперь я даже мозилой управляю из емакса

Мегаштука для мозиллы, как бонус в ней есть repl для емакса. Плюс наконец-то нормальный JS-mode.

Смотрим скринкаст
http://dev.hyperstruct.net/movie/mozrepl.html

В нём ксатати юзается прикольный abbrev моде, типа ido-mode но только прямо в тексте, нужно разобраться в ближайшее вермя. http://homepages.cs.ncl.ac.uk/phillip.lord/download/emacs/pabbrev.el

О, тока понял. Можно же написать DSL на emacs-lispe который бы генерил JS код и писать расширения, ну или хотябы макросы для фокса на нём. И ещё ведь можно смешивать функции емакса с фоксовыми, крута блин.

update:

Есть уже перловый модуль для работы с этим счастьем есть перловый модуль:
http://search.cpan.org/~zigorou/MozRepl-0.06/ Инетесно есть ли ю