to post messages and comments.

Ruby хороший язык. Но Rails всё портит. Подумываю уже попробовать плагины к Sinatra или Rails Metal (вроде, так зовётся). Может с ними будет попросторнее.
Ха... простор писать бесполезные сайтики...

Треды можно запускать прямо из config.ru: пишем всё что обычно, а поттом подымаем демона через обычный вызов функции или даже просто пишем код. Мелочь, а приятно.

Завтра буду писать демона на Руби. Задача: в цикле обращаться к БД и по указанному времени подымать задачи. Задачи должны выполняться в отдельных потоках. Хуй его знает зачем так, но я ровно ничего не смыслю во многопоточности и очередях задач, потому сделаю хоть как-то. Ведь главное... попробовать чтобы при последующем чтении стало ясно где накосячил.

Нужно выполнять в фоне различные задачи по таймеру. А-ля cron. Что посоветуете?

Понравилось решение `while true do ...` за счёт простоты, но выглядит оно ненадёжно.
Не понравились Whenever и Rufus так как у меня они ни разу нормально не работали. Не понравились DJ и EM за счёт излишней тяжеловесности. Не понравилось Backgrounded за счёт ориентированности на модели. Однако все они умеют какие-то проверки коллизий и очереди, что хорошо.

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

Нужно сделать рекурсивное has_many в пределах одной таблицы. AcriveRecord бы за такое послал и не дал хэлпер. А ручками, с DataMapper, можно поиметь такое ограничение и сделать как тебе нужно.

Заботать кэширование в Sinatra. Т.е. его там нет и не будет, но хотя бы expire для картинок установить нужно. А вообще, можно и nginx'у это отдать.

Вот вам и энтырпрайз: после обновления сабжа у него отвалился send_file. И в сети есть ровно нифига объяснений почему, и ещё меньше способов решения. Так почти час убил на восстановления работоспособности методом тыка.
Окунулся в дерьмецо старых работ. Выбросить бы сервер и всё с ним связанное...

Авторизация в синатре — это просто. Убил бы себя за идею перевести проект на эти дрова!
get '/login' do
haml :login
end

post '/auth' do
if params[:password] == "1234"
session[:logged] = true
else
session[:logged] = nil
end

redirect '/'
end


before do

puts session[:logged]

unless session[:logged]
unless request.path_info == '/login' || request.path_info == '/auth'
redirect '/login'
end
end
end

Закончил "ядро" сборщика статистики по объявлениям. rghost.ru
Надо бы оттестить union groups... только за десяток тысяч итераций такая ситуация ни разу не возникала, а руками это делать бесполезно >_>

Есть 3 функции: main, worker и tool. Первая вызывает вторую, вторая третью (упрощённо). Кода много, хочется разнести это в разные файлы. Также хочется запускать всё под passenger'ом или чем-то подобным — нужен config.ru.

Вопрос: как подключать файлы? Бросьте в меня доком или примером. Пока что в config.ru указал:
require 'rubygems'
require 'sinatra'
require './main'
require './tools'

run Sinatra::Application

А в файлах оставил голые функции, но что-то мне это не нравится — пространство имён не ясно как работает.

Нашел хорошее применение синатре. На нем удобно настраивать окружение для разработки интерфейса приложения с использованием тех или иных шаблонизаторов. К примеру, используя HAML/SASS/Compass/CoffeeScript можно автоматизировать генерацию, и просмотр страниц, при этом, если интерфейс разрабатывается до разработки приложения (к примеру, нужно создать предварительный макет приложения), то это самое то, мне кажется. =)

Я добрался до CMS на веб-фреймворке Sinatra. Это генератор статических страниц, хранящий историю изменения страниц в git-дереве. Умеет комменты, ленты и аналитику страниц (как — не понял ещё). Зовут Nesta.
nestacms.com

Чего то в тви проскочила ссылка на видео с ютуб, с подписью типа после Merb теперь и Sinatra объединяет силы с рельсами. Жаль видео посмотреть не получится, интересно — это правда? А то так посмотрю, чего то на руби прям усиленно все вкладывают силы исключительно в рельсы. Только вот не пойму. А нафиг рельсам микрофреймворк? О_о

допилил к запоминалке возможность для зарегистрированных пользователей делать закладки и печатать закладки в виде таблички. Доделать бы регистрацию — цены бы не было %)