LINUX.ORG.RU

UnCommon Web = Common Lisp + Web


0

0

Вот уже с октября заболел я болезнью... имя того неуга - Common Lisp =)

На скрине мы видим: слева-сверху - Emacs с открытым исходником "сайта", который вы можете увидеть справа-сверху в окне Epiphany... на самом деле этот "сайт" я склепал в рамках зачёта по "веб-технологиям" в универе, сдавал как лабу.. надо сказать препод лицом в грязь не ударил (он явно ничё не понял в коде, ибо лисп не знает), он сделал вид что ему всё понято, задал пару вопросов и поставил зачёт :))

если кому-то интересно, что же такое UnCommon Web, то он может начать со списка фич данного проекта: http://common-lisp.net/project/ucw/features.html

скажу лишь что я использовал наверное десятую долю возможностей данного "фреймворка": во-первых, я ещё недостаточно знаком с языком, чтобы использовать всю его силу и красоту, ну а во-вторых, у меня не было больших требований, поэтому реализовал то что требовалось первым пришедшим в голову способом :) например я не использовал базу данных (до cl-sql я ещё не добрался в изучении :)), поэтому всё берётся из текстовых файлов (из-за этого пришлось реализовать велосипедные функции извлечения нужных данных :)))

все кому интересно, могут слить исходник сайта вот тут: http://lisp-mania.nnov.ru/cocktail.tar.bz2

сайт проекта UnCommon Web: http://common-lisp.net/project/ucw/index.html

взять последню версию сего творения можно тут: http://common-lisp.net/project/ucw/download.html

для начала могу посоветовать вот это: http://common-lisp.net/project/ucw/ucw-boxset.tar.gz

что это? это что-то типа "всё в одном", то есть тут сам ucw и все необходимые зависимости в одном архиве, вам будет достаточно набрать что-то типа sbcl --load start.lisp и всё, всё работает и можно начинать познавать дзен ункоммон веба :)

собственно всё что я хотел рассказать :) всем удачи, всех с наступающими рождественскими праздниками! Учите лисп, в жизни пригодится!!!

>>> Просмотр (1680x1050, 160 Kb)

★★★

Проверено: JB ()

Ах да, должен признаться, все рецепты были взяты вот с этого сайта: http://www.cocktail-book.ru/

ни на какое авторство претендовать не собираюсь, просто взял наполнение для лабы :) картинки на страничке (изображения коктелей) меняется рендомно, сами картинки нарыл на каком-то сайте через поиск в гугле :)

Cy6erBr4in ★★★
() автор топика

Шрифты и рамки окон вызывают слегка заметные рвотные порывы, но за Gnome, Emacs и Lisp - Зачёт! :)

anonymous
()

>на самом деле этот "сайт" я склепал в рамках зачёта по "веб-технологиям" в универе,

А в каком универе ты учишься? Это пристойное место?

>надо сказать препод лицом в грязь не ударил (он явно ничё не понял в коде, ибо лисп не знает), он сделал вид что ему всё понято, задал пару вопросов и поставил зачёт :))

Ясно, что ничего не понял - понял бы - зачет не поставил.

>у меня не было больших требований, поэтому реализовал то что требовалось первым пришедшим в голову способом :)

Это не поравдание, того что ты не смог осилить шаблоны.

>например я не использовал базу данных (до cl-sql я ещё не добрался в изучении :)), поэтому всё берётся из текстовых файлов

SQL здесь не нужен. Достаточно была XML-файла.

>Вот уже с октября заболел я болезнью... имя того неуга - Common Lisp =)

Не нашел иного способа обратить внимание, позер? Лучше бы ты заболел недугом "пытаюсь научится программировать".

CMEPTb_C_KOCOiiii
()

А этот остов (ucw) позволяет отделить движок от дизайна? А то, порядочный верстальшик тебя загрызёт нафиг. :) Ну или тебе придётся выполнять его работу самому.

anonymous
()
Ответ на: комментарий от CMEPTb_C_KOCOiiii

> Достаточно была XML-файла.

Bzzzt XML-фаг детектед.

Sphinx ★★☆☆
()
Ответ на: комментарий от Cy6erBr4in

>Да, конечно, есть возможность использовать шаблоны страниц (в ucw оно называется tal).

У... ты меня обрадовал. Надо будет глянуть на досуге. :)

// ненароком запустился emacs

anonymous
()
Ответ на: комментарий от defmacro

>Учите лисп, в жизни пригодится!!!

Только сначала скажите в какой областе? Сайты клепать? Ну уж, извените, ибо есть другие более соответсвующие интсрументы.

anonymous
()
Ответ на: комментарий от anonymous

А почему бы и нет? На мой взгляд это лучше чем пхп :)) а область.. каждый сам для себя решает... имхо область применения лиспа безгранична :)

Cy6erBr4in ★★★
() автор топика
Ответ на: комментарий от Cy6erBr4in

К тому же, обычно у меня на одном десктопе открыто одно приложение, и оно максимизировано, тогда эти декорации остаются тольо сверху, тоненькой полосочкой ;)

Cy6erBr4in ★★★
() автор топика
Ответ на: комментарий от Cy6erBr4in

>К тому же, обычно у меня на одном десктопе открыто одно приложение, и оно максимизировано, тогда эти декорации остаются тольо сверху, тоненькой полосочкой ;)

Ну даже если и так, шрифты не оправдаешь. %)

anonymous
()
Ответ на: комментарий от Cy6erBr4in

+1 за Lisp, и скрин симпатичный, однако

> рецепты коктейлей

один я это спросонья прочитал как "рецепты костылей" ? : ^)

anonymous
()

> я не использовал базу данных (до cl-sql я ещё не добрался в изучении :)),

Для Лиспа есть симпатичные ОО БД, лучше смотреть сразу туда, а всякие ORMы не использовать.

anonymous
()

>все кому интересно, могут слить исходник сайта вот тут: http://lisp-mania.nnov.ru/cocktail.tar.bz2

код, кстати, в худших традициях PHP. По идее, надо было бы шаблонизировать и скомпилированные шаблоны хранить в Sexpr'ах :)

anonymous
()

А как у тебя тут все организовано? Я что-то как-то не въехал сразу. Откуда лог ucw в терминале? Ты пользуешься только slime только для редактирования, а программу запускаешь в терминале? Я ожидал увидеть лог в REPL внутри Emacs.

P.S. Сам ucw не использую, поэтому и интересуюсь.

Zubok ★★★★★
()
Ответ на: комментарий от anonymous

> надо было бы шаблонизировать и скомпилированные шаблоны хранить в Sexpr'ах :)

немного допилить исходники на тему: хранить контент в Markdown/Textile/ReST, шаблоны в чём-то XML-подобном (YAML например, хранить отдельно или single source в том же ReST) , дописать "остнастку" которая через 'make site' сконвертит XML-шаблоны в Sexpr'ы, выделить "движок-шаблонизатор", дописать разделение прав, интеграцию с Emacs-MUSE -- и у тебя получится готовая вполне удобная CMS. =)

anonymous
()
Ответ на: комментарий от ferhiord

>>Простите необразованного, а что за знак в углу No DRM ?

>DRM

это-то понятно, а вот что означают ножницы с бананом или тетка с полумесяцем на голове?

anonymous
()

Жэсть! Чтоб сделать пару изменний в дизайне сайта - нужно править код на лиспе! Пох на чём написан движок, но дизайн должен быть отвязан от кода, настолько, что б простой смертный (тобишь хтмл-дезигнер) абсолютно не зная языка, на котором написан движок, мог запросто поправить хтмл.

anonymous
()
Ответ на: комментарий от anonymous

>>>Простите необразованного, а что за знак в углу No DRM ?

>>DRM

>это-то понятно, а вот что означают ножницы с бананом или тетка с полумесяцем на голове?

По-моему это cердитый смайл >:( - но здесь он выглядит несердито - обычно используют >(

ferhiord ★★
()
Ответ на: комментарий от anonymous

> Жэсть! Чтоб сделать пару изменний в дизайне сайта - нужно править код на лиспе! Пох на чём написан движок, но дизайн должен быть отвязан от кода, настолько, что б простой смертный (тобишь хтмл-дезигнер) абсолютно не зная языка, на котором написан движок, мог запросто поправить хтмл.

Я не скачивал весь код, но судя по тому, что есть на скриншоте, для изменения дизайна достаточно поправить css. А вот делать микросайты с использованием темплейтов -- это уже overkill. Чувство меры тоже полезно.

mind
()
Ответ на: комментарий от Zubok

в ucw есть возможность запускать swank-сервер, и уже емаксом через slime-connect цепяться к нему и рулить процессом :)

Cy6erBr4in ★★★
() автор топика
Ответ на: комментарий от anonymous

Да, есть такое, но это мой первый опыт веб-девелопмента, сейчас я уже во всю разбираюсь с возможностями UCW, и в следующих проектах буду пользоваться великолепной фичей ucw - tal (читай шаблоны страниц), так что скажем ПХП -НЕТ! :)

Cy6erBr4in ★★★
() автор топика
Ответ на: комментарий от stave

Ну дизайн в данном случае меня интересовал меньше всего :)

Cy6erBr4in ★★★
() автор топика
Ответ на: комментарий от mind

Всё верно, основные поправки можно делать через css, да и не ставил я задачи отделять представление от логики.. в дальнейшем это делать обещаю ;)

Cy6erBr4in ★★★
() автор топика
Ответ на: комментарий от anonymous

> что б простой смертный (тобишь хтмл-дезигнер)

необязательно дизайнер, это может быть редактор, который работает с текстом, контентом. Ему нужен простой язык вроде вики-разметки

> абсолютно не зная языка, на котором написан движок, мог запросто поправить хтмл.

не должен дизайнер "править HTML", он появляется на выходе, править надо шаблоны :) . Есть шаблоны с контейнерами, куда подвёрстывается контент, есть простой декларативный "язык описания шаблонов", и темы. Вот тут интересно про Rtml написано: http://lib.store.yahoo.net/lib/paulgraham/bbnexcerpts.txt

anonymous
()
Ответ на: комментарий от Cy6erBr4in

> тсссс!

Что, серьезно ВМК? Я видел программу магистров по открытым система и интеренет технологиям, там как понял MVC/any - отдельно, а JEE - отдельно? Не скажите, какая у вас точно специализация?

sv75 ★★★★★
()
Ответ на: комментарий от Cy6erBr4in

>в ucw есть возможность запускать swank-сервер, и уже емаксом через slime-connect цепяться к нему и рулить процессом :)

А, я понял. У меня CL запускается прямо в Emacs. Я не запускаю сначала терминал, потом загружая swank, запуская сервер, а потом делая slime-connect в Emacs. Я в переменной inferior-lisp-program указываю, что запускать. И все в общем потоке делаю. А выхожу из сессии M-x slime-quit-lisp. А то слишком много телодвижений. Вот еще хочу написать для Emacs функцию, чтобы можно было перед стартом slime выбрать реализацию CL и какое ядро запускать, так как я и с SBCL и CLISP работаю. Просмотр hyperspec прямо в Emacs по нажатию на функцию уже прикрутил. Но это было легко.

Zubok ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.