• DataMapper vs ActiveRecord?

    Расскажу что знаю.

    DataMapper уже не разрабатывается, разработчики этой библиотеки переименовали DM в ROM сейчас активно пилят его https://github.com/rom-rb
    Пруф - https://twitter.com/datamapper/status/342595504909...

    Так что для себя лично я решил не использовать DataMapper в проектах, хоть библиотека мне очень нравится в сравнении ActiveRecords, так как более понятно как это работает, можно просто описать модели без написания миграций и DM построит таблицы.

    К ActiveRecords есть у меня какая-то необъяснимая неприязнь. Может потому, что я не использую Rails, а пишу на Sinatra.

    Использую Sequel (sequel.jeremyevans.net). Долго сомневался мигрировать на него с DM, но как перешёл ни капли не пожалел - ЭТО ВОЛШЕБНО! Супер библиотека с кучей плагинов и возможностями, особенно при использовании PostgreSQL. Кстати, разработчики ROM решили при использовании SQL хранилица тоже использовать Sequel.

    Вот видео доклад по Sequel на русском языке - www.youtube.com/watch?v=95TflPVKSI0
    Ответ написан
    Комментировать
  • PostgreSQL, как реализовать I18n используя hstore?

    @xtsidx Автор вопроса
    Разобрался сам с задачей.

    Вот простенький плагин реализующий то, что мне нужно.
    module Sequel
    	module Plugins
    		module I18nModel
    
    			def self.apply(model, opts={})
    				model.instance_eval do
    					@i18n_columns = opts[:i18n_columns]
    				end
    			end
    			
    			module ClassMethods
    			
    				def i18n(options = {})
    					locales = options[:locales].clone
    					locales << :locale
    					locales = locales.pg_array
    					ds = select
    					@i18n_columns.each do|c|
    						ds = ds.select_append(Sequel.lit("(array_remove(? -> ?, NULL))[1]", c, locales).as(c))
    					end
    					return ds
    				end
    			
    			end
    			
    		end
    	end
    end


    Для модели нужно будет вызвать метод i18n, в парамере locale передать массив локалей по приоритету. Всё за один запрос.
    Ответ написан
    Комментировать
  • Как реализовать drag&drop заливку изображений без ajax?

    Ответ на первый вопрос: нет, в input type=file запихнуть данные не получится.

    Ответ на второй вопрос: Копай в сторону кодирования изображений в Base64.

    Я бы сделал так:

    При добавлении изображения на форму создаётся скрытый input type="text" hidden
    в value которого записывается base64 строка вычисленная из изображения.

    На сервере декодируем наши Base64 строки и записываем их в файлы.

    Вуаля!

    Библиотеки для работы с Base64 думаю не составит труда найти.

    При передаче в таком виде размер Base64 строки будет примерно на 33% больше размера файла изображения.

    А чем AJAX не устраивает? Им же можно бинарные данные отправлять.
    Ответ написан
    Комментировать
  • Ваши аргументы за и против имени сайта в Title?

    Ещё такой вариан возможен - "Название сайта: Название страницы" - подходит если краткое название сайта

    По старинке делаю "Название страницы | Название сайта", но сейчас поразмыслил, что можно обойтись "Название страницы", а сайт будет символзировать favicon
    Ответ написан
    Комментировать
  • Что делать, если виснет ноутбук во время онлайн просмотра видио и в играх?

    Всё просто - переустанови Windows)
    Ответ написан
    Комментировать
  • Не могу выравнять DIV по середине. Кто поможет?

    #name{
     position: absolute; 
     width: 70px;
     height: 80px;
     top: 80px;
     line-height: 74px;
     font-size: 74px;
     color: white;
     letter-spacing: 4px;
     margin: 0 auto;
     left: 0;
     right: 0;
     margin: 0 auto;
    }


    И блок будет по середине.
    Но текст у тебя вылезает за переделы блока, убери свойство width, и тогда текст будет посреди страницы, либо рули размером шрифта.
    Ответ написан
    Комментировать