Как стать автором
Обновить

Комментарии 57

Большая статья. Побольше бы на Хабре таких.
НЛО прилетело и опубликовало эту надпись здесь
Отличная статья. Давно хотел пощупать erlang, а тут такой шанс :)

PS. Что мне нравится в django — так это его шаблоны. Очень к ним привык. И их поддержка — весомый аргумент.

И да, labs.evolope.com/ у меня не загружается.
Спасибо. Про labs.evelope.com — правда, еще несколько дней назад открывался, там хорошо так все с графиками расписано было. Теперь сайт лежит.
В кеше гугла осталось.
Сайт сравнения не работает.
Об именовании проекта: именем должен быть валидный атом.
Большое спасибо за статью, классный фреймворк.
НЛО прилетело и опубликовало эту надпись здесь
Адепты отвечают, что лучше :) Особенно когда речь идет о распределенной системе. Мой опыт пока основывается только на сайте из топика.
5 часов работы — полет нормальный. Я даже на ходу код менять успевал.
А что у него было не так с производительностью?
НЛО прилетело и опубликовало эту надпись здесь
Зачем холивар, хотелось бы узнать, что именно у него не так с производительностью.

HiPe появился, как исследовательский продукт. И?
НЛО прилетело и опубликовало эту надпись здесь
Нет, не буду. ТОлько вот сфуровакуумная производительность даром никому не сдалась.

Например, Erlang гарантирует soft realtime. Это достаточно производительно? А вот опять хз — это сферовакуум.

При этом Erlang прекрасно себя чувствует там, где PHP/Python/Ruby даром никому не сдались — управление диким количеством процессов на в распределенных системах ;)

Так что с производительностью у него все более, чем в порядке :)
Можете посмотреть вот на этот старый бенчмарк, где Erlang по скорости идет сразу за С, а после него уже Ruby, PHP, JS.

Либо вот на этот новый, где Erlang также во многих тестах работает быстрее Ruby 1.9. Причем Erlang способен работать на всех выданных ему ядрах сразу и можно руками задавать, сколько процессов или памяти он максимально может использовать.

А если брать компиляцию Erlang HiPe, то получается еще быстрее.
Статья очень хорошая, но все же. Добавили быть хоть фильтрацию форм. Теги прикручиваются на раз, SQL команды не проверял.
Ну SQL в монго и нет, а про какие теги речь идет? Вы их прикручивали только в своем браузере или как-то смогли повлиять на сервер или на других участников чата?

Ну и добавлю, что клиента вылизывать мне совсем не хотелось. Да и серверную часть в реальном приложении надо было бы дописывать. А поскольку приложение тестовое, то и код должен быть легко читаемым и понятным и времени на него как правило очень много не тратится. Хотя даже это тестовое приложение уже неплохо функционирует без ошибок в течении 8ми часов.
Теги?
<script>window.location.href="http://site.ru"</script>


Я полностью согласен, что в тестовом приложении над многими вещами заморачиваться не нужно, но все же, если Вы не фильтруете теги, то банально вставив такие строчки в любое из полей никто не увидит Вашего приложения.
С уважением
Я думал разговор про чат идет, в базовой форме да, ничего не фильтрую, надо будет добавить, спасибо.
В hello world все феймворки хороши, самое интересное начинается, когда проект перевалит ну хотя бы за 10.000 строк, из которых ну пусть 40% будет занимать задник.

Erlang действительно может хорошо себя проявить в типичной для эрланга среде — небольших модулях приложений, где критично важна быстрая маршрутизация, поддержка кучу соединений отовсюду, realtime и т.д. Но если речь идет о сложных моделях, сложных формах, многообразии данных и большом количестве преобразований текста — это не для эрланговских проектов.
То есть все возможно, но затраты на разработку и поддержку будут неадекватными.

Этот фреймворк, честно говоря, как раз и предлагает этот сомнительный подход, ну нафига ему шаблонизация, формы и прочие слабые стороны, куда логичнее если ss на эрланге обслужавает json/xml API для современной динамической морды на js фреймворках.
НЛО прилетело и опубликовало эту надпись здесь
Раз уж вы здесь написали: это известная ошибка, и проявляется, если галочку при создании адреса поставить. Я условие неверно составил. Буду править утром, у меня ночь.
Добавил быстрофикс, больше не падает.
create('GET', ...

Странно, почему не атом, а строковое, ради наглядности, чтобы большими буквами?
Это и есть атом :)
Подзабыл синтаксис.
Стоит упомянуть ещё Nitrogen и Webmachine.
Было бы также из целей уважения к Erlang честнее использовать Riak вместо Mongo.
Все что крутится вокруг эрланга, это выбор. Даже сами создатели риака очень часто советуют, берите не ради уважения, а то, что вам подходит. Подходит монга, ок, значит монга. Кстати офф. драйвер для монги из эрланга так себе, есть что-то около трех разных реализаций, есть у кого какой опыт в этом?
Не надо руководствоваться уважением. Например, для Metalkia я взял Riak, но только потому, что не хотел сразу сидеть обдумывать схему базы данных. После некоторого времени схема устоялась, и параллельно появилось несколько мест, из-за которых использование реляционной СУБД было бы намного удобнее. Всякий NoSQL хорош только как KV-хранилище, когда не надо делать сложных запросов. В подавляющем большинстве случаев лучше брать MySQL или PostgreSQL и не слушать хипсторский хайп.
Вообще-то, если задуматься, то MongoDB, использованный в статье аналогично Riak принадлежит к категории NoSQL, так что я вовсте не кричу «используй NoSQL или лох».
Вообще-то, если задуматься, ChicagoBoss тоже хипстерский хайп, и двойной хипстерский хайп статью бы не ухудшил, тем более, что про практику работы с Riak на хабре никто ещё и не писал.
Для дисклеймера скажу, что в подавляющем большинстве моих проектов тоже используется именно Postgres, а схема постепенно устаканивается миграциями.
на главной странице тестового сайта выскакивает окно яваскрипта со «словом из трех букв». так и должно быть?
Это фича.
Это хабражители постарались. Я свой ноут на растерзание для проверки производительности оставил, проверить, выдержит ли хабраэффект, вместо этого добрые люди запостили скриптов во все возможные формы, после чего все формы стали показывать всякие алерты и редиректиться на разные сайты. И проверка производительности пошла ко дну, т.к. все формы перестали корректно работать.
Они конечно молодцы, мозгов много, девать некуда. Умеют js и html инжекты делать. Только вот никто и не говорил что сайт супер защищенный или вобще хоть какая-то защита встроена. Были голые формы для уменьшения и упрощения кода, чтобы людям удобнее его понимать было.
А вот этот ручной разбор аргументов в request — это так и надо?
Автоматизировать/оптимизировать можно что угодно. Пока что я другого способа получения параметров из формы не знаю.
Почему записи удаляете как GET /main/delete/id, а не DELETE /resrource/id? Ну хотя бы POST с csrf_token что ли… Молодец, что показали что и как, но если уж показывать, то правильно.
Я не автор, но прокомментирую. Тут в принципе не REST демонстрировался, но в любом случае такие действия по GET не делаются, тут я с вами согласен.
С GET было проще и быстрее сделать. В данном случае мне только нужно перейти по ссылке, которая приведет меня к нужной функции в контроллере и передаст параметр. Для этого простой ссылки-иконки достаточно.
Надеюсь, что люди понимают, что на самом деле там разные запросы могут быть и какой в каком случае нужно использовать.
Как в Erlang дела обстоят с поддержкой utf-8?
Если делать только I/O или конвертацию между кодировками, то без проблем.

Хитрые манипуляции с текстом провести не получится, для этого
github.com/freeakk/ux
github.com/freeakk/i18n
i18n в ChicagoBoss поддерживается, там с этим просто.
НЛО прилетело и опубликовало эту надпись здесь
Название фреймворка впечатляющее
А alert «2 Х У Я» при переходе по ссылке и редирект на ya.ru — это так и задумано? :)
Ответ здесь. И еще апдейт в разделе Итоги.
Стоит упомянуть, что сайт находится на моем личном ноуте

Можно же на Heroku задеплоить используя, например, этот билдпак? Бесплатно причем.
Можно попробовать. Через пару дней после тестов.
Для тех, кому хоть сколько-то интересен Erlang, можно взглянуть на Elixir.
Конфиги в эрланг-стиле – издевательство над администраторами. В обилии скобочек легко запутаться.
YAML для описания конфига БД и роутов подошел бы гораздо больше (см. рельсы), но этот язык так и не прижился у эрлангеров, даже тех, кто занимается вебом.

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

-module(address, [Id, Firstname, Lastname, Address1, Address2, City, State, Country, Active, CreationTime, ModifictionTime ]).
address:new(id, Firstname, Lastname, Address1, Address2, City, State, Country, Active, CreationTime, ModificationTime),
Здесь лучше использовать рекорды – так будет более читаемо и менее затратно при изменении структур.
НЛО прилетело и опубликовало эту надпись здесь
Спасибо за статью. Хотел спросить, существует ли готовый модуль для аутентификации?
Готовые функции авторизации и аутентификации есть в модулях news и mail. А также есть сторонние примеры, простые примеры работы с куками, логин, регистрация есть в моем коде на гитхабе.

Еще нашел вот этот модуль: github.com/alex-marandon/chicagoboss_who
Выглядит неплохо, можно использовать.
Спасибо за статью, давно хотел посмотреть на Chicago Boss, да так и не посмотрел до сих пор. Сам делал вебню на Nitrogen (Metalkia).
А виджеты как-то можно делать в ChicagoBoss? Типа список последних новостей/продуктов в боковой колонке. То что находится в /src/view/lib как я понял позволяет либо только шаблон подключить своим тегом, либо только функцию. А так чтобы это было похоже на контроллер который сам получит данные и отдаст их в шаблон?
Конкретно модулей, которые бы могли генерировать html, я не нашел. Но вобще любой OTP пакет можно подключить. Их много существует.
learnyousomeerlang.com/building-otp-applications — это как своё OTP приложение сделать.
forum.trapexit.org/ — OTP форум.

github.com/evanmiller/ChicagoBoss/wiki/Useful-Erlang-Libraries — здесь есть несколько библиотек.
Вот одно интересное приложение github.com/cstar/erls3
OTP apps должно быть много на гитхабе.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации