• Как писать высоконагруженные и масштабируемые Rails приложения?

    @vsadm
    Бессистемный архитектор
    Попробуйте начать вот с серии книг The Architecture of Open Source Applications, в них, в том числе, рассматривается устройство nginx, который нельзя назвать медленным для определенных задач.

    Для проектирования HA и Highload язык как таковой не имеет значения, важен выбор архитектуры. Эта литература может подсказать вам много интересных решений на конкретных примерах с ответами, почему было сделано именно так.
    Ответ написан
    Комментировать
  • Какой хороший клиент для эл почты?

    @vsadm
    Бессистемный архитектор
    Попробуйте Postbox, пользуюсь им уже очень много лет, для разделения писем на важные и не важные, для выделения задач из писем и быстрого доступа к тому, что не хочется потерять.
    Ответ написан
    Комментировать
  • Как применить ACL с целью ограничения доступа к коллекции?

    @vsadm
    Бессистемный архитектор
    В целом для проектирования систем доступа полезно руководствоваться принципами Orange Book. В вашем случае (не зная всех граничных условий) систему можно представить в виде:
    • Пользователей: субъекты, которые наделяются некоторыми полномочиями. В общем случае могут объединяться в группы или роли для удобства управления.
    • Ролей: роль не только группирует пользователей, но и позволяет добавить к ним некоторые атрибуты, применимые в контексте роли (как это часто делается в LDAP), например роль Город-менеджера добавит пользователю атрибут "ID города"
    • Полномочий: отдельные разрешения, могут объединяться в групы полномочий для удобства.
    • Объектов действия: элементы бизнес-логики, которые при применении полномочий меняют свое состояние. Также могут объединяться в группы.


    То есть, у пользователя с ролью Город-менеджера есть есть полномочия для группы "полный контроль" над группой объектов "пользователи с ID города таким-то".

    Конкретная реализация очень сильно зависит от того, что у вас за платформа, и какие под нее есть готовые библиотеки.
    Ответ написан
  • Какие символы можно использовать в комментариях к емейлу?

    @vsadm
    Бессистемный архитектор
    RFC 2822, в частности, секция 3.2.3 описывает формат комментариев и разрешенные в них символы.
    Ответ написан
    Комментировать
  • Какой формат данных выбрать для хранения сущностей (sql\nosql(json))?

    @vsadm
    Бессистемный архитектор
    Для миллиона записей совершенно неважно, какое именно решение вы используете.

    Если начать с чистого реляционного SQL, то данные, где реляционность не нужна, потом можно сериализовать и хранить в бинарных полях реляционных таблиц.

    Используя NoSQL, вы в некотором роде усложните себе работу, так как появится необходимость придумывать и накладывать на коллекции индексы, чтобы быстро делать выборки и считать агрегаты.

    Однако, у NoSQL есть заметное преимущество — эти хранилища "из коробки" могут довольно неплохо объединяться в отказоустойчивые кластеры. Правда, отсутствие транзакций и eventually consistence не позволят вам гарантированно читать только что записанные в кластер данные.

    Соответственно, комбинированное решение объединит достоинства и недостатки обоих миров.
    Ответ написан
    Комментировать
  • Подключение к VPN на Ubunte, мост в локальную сеть?

    @vsadm
    Бессистемный архитектор
    Проверьте, не навязывает ли вам VPN-сервер либо конфигурация линка маршрут по умолчанию? В этом случае все пакеты системы, даже те, которые предназначены для обслуживания VPN-соединения с офисом, будут отправляться через интерфейс VPN-соединения, что приведет к полностью нерабочей сети на вашей машине.

    Всегда можно добавить отдельный маршрут для VPN-сервера, чтобы пакеты для него шли через ваш основной линк.
    Ответ написан
    Комментировать
  • Как кодировать только незакодированные URL?

    @vsadm
    Бессистемный архитектор
    Всегда сначала декодируйте URL, а затем снова кодируйте. Декодирование незакодированного URL-а — немодифицирующая операция, изменений не привнесет.
    Ответ написан
    Комментировать
  • Как правильно организовать файловую структуру для проекта?

    @vsadm
    Бессистемный архитектор
    Посмотрите на специализированные хранилища данных, например, Elliptics.
    Ответ написан
  • Где найти RoR разработчика в стартап проект?

    @vsadm
    Бессистемный архитектор
    Берите разработчика-архитектора-тимлида с рынка или через знакомых на рыночную зарплату и, возможно, небольшой опцион. Разработка — это всепоглощающий процесс, человек, который придумывает и реализует архитектуру сервиса не должен думать, чем ему кормить семью и где бы еще заработать денег на новые джинсы. Только в случае полной занятости возможен быстрый и качественный результат.

    Поэтому закладывайте бюджет, размещайте вакансию на профильных ресурсах и делайте перепосты в профильных группах VK, FB и можно в ror2ru на гугл-группах.
    Ответ написан
    3 комментария
  • Как перекодировать русский текст в utf-8 используя Ruby?

    @vsadm
    Бессистемный архитектор
    apt-get install enca

    require 'open3'
    
    def detect_and_convert(str)
      stdout, stderr, status = Open3.capture3('enca -c', :stdin_data => str)
      stdout
    end
    Ответ написан
  • Как отправить файл http post запросом с параметрами используя Ruby?

    @vsadm
    Бессистемный архитектор
    require 'net/http'
    
    uri = URI('http://example.com/api/v1/data?api_key=API_KEY')
    req = Net::HTTP::Post.new(uri)
    req.body = File.read('json_file.json')
    req.content_type = 'application/octet-stream'
    
    res = Net::HTTP.start(uri.hostname, uri.port) {|http|
      http.request(req)
    }


    Подробности в документации на net/http.
    Ответ написан
    1 комментарий