• Как правильно реализовать SSE в RAILS?

    @fuCtor
    Ruby разработчик
    С SSE есть нюанс, если используете не событийный сервер приложений (unicorn, puma и тд), то каждый запрос будет блокировать один из потоков/процессов. Со временем они закончатся и выполнение всего встанет на ожидании БД либо еще чего блокирующего.

    Лучше всего использовать Thin, он построен на EventMachine и не вызывает блокирования внешнего запроса, но может быть заблокирован запросом к БД.

    У себя делал такую связку:
    Sinatra + Sinatra-SSE монтируется в Rails для приема подключений. Слушание событий (PG, Redis и тд) делается на EM совместимых клиентах. И заводится некоторый менеджер подключений который будет рассылать данные.

    Как-то так.
    Ответ написан
    Комментировать
  • Как запустить redis, если он ошибит?

    FeNUMe
    @FeNUMe
    Написано же
    Creating Server TCP listening socket 127.0.0.1:6379: bind: Address already in use

    У вас что-то уже висит на этом порту, возможно еще один инстанc редиса.
    Ответ написан
    Комментировать
  • Что нужно знать для введения в Backend-разработку?

    sarapinit
    @sarapinit
    Точу водой камень
    В зависимости от проекта:
    → tcp/udp или http/https
    → сериализация
    → если ЯП со сборкой мусора, то принцип работы, режимы работы
    → профилирование запросов
    → взаимодействие с базами данных
    → кэширование
    → основы многопоточности+асинхронности

    + основные бэкенд библиотеки/фреймворки под ваш стек
    + для web в общих чертах представлять как работает/конфигурируется целевой web сервер
    Ответ написан
    Комментировать
  • Как связать несколько сайтов к одному IP?

    Все запросы должен ловить единый сервер, например, nginx.
    По заголовкам запросов Host: ... перенаправлять/проксировать запрос на соотв. виртуальный сервер.

    server {
      server_name site.ru;
      location / {
            proxy_pass http://127.0.0.1:8000; # допустим, тут слушает основной
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
            # ... ещё инструкции - передача заголовков, кэширование..
        }
    }
    
    server {
      server_name name1.site.ru;
      location / {
          proxy_pass http://127.0.0.1:8001; # вирт-1
          # ...
      }
    }
    
    server {
      server_name name2.site.ru;
      location / {
          proxy_pass http://127.0.0.1:8002; # вирт-2
          # ...
      }
    }
    Ответ написан
    Комментировать
  • Как искать точное совпадение в sphinx?

    tumbler
    @tumbler
    бекенд-разработчик на python
    =диван
    В кавычках ищется фраза.
    Ответ написан
    1 комментарий
  • Почему процессы на CentOS иногда подвисают на 100-300 мс?

    @vitaly_il1
    DevOps Consulting
    Не совсем ответ, скорее совет - я бы попробовал инструментировать код (New Relic, AppDynamics, ...) и посмотреть на результаты profiling.
    strace конечно вещь хорошая, но слишком низкоуровневая и олдскульная :-)
    Ответ написан
    1 комментарий
  • Зачем асинхронность?

    sarapinit
    @sarapinit
    Точу водой камень
    Асинхронное исполнение кода позволяет более эффективно использовать процессорное время.
    Если взять синхронный сценарий исполнения, то какое-то время поток приложения загружает процессор работой, далее обычно наступает ситуация, когда поток приложения ждет завершения какой-то операции ввода\вывода. Это может быть ожидание срабатывания таймера, ожидание данных от сетевой карты, ожидание пользовательского ввода и т.п. Пока происходит ожидание поток приложения не использует процессор. В некоторых случаях это нас устраивает, если другой полезной работы мы не можем совершить. В других ситуациях мы хотим одновременно что-то делать, например иметь возможность обрабатывать клики мышкой пользователя в то время как идет запрос к БД, например.
    Тогда мы задействуем асинхронный подход. В этом случае когда поток приложения доходит до ожидания окончания операции ввода\вывода, он не ждет а может быть использован для другой работы, а в момент когда закончится операция ввода\вывода и поток не будет занят другой работой, он сможет продолжить исполнение кода с того места на котором остановился.

    Также есть и другое понятие асинхронности, также его называют отложенным исполнением. Это ситуация когда данные обрабатываются не во время запроса пользователя, а данные быстро буферируются на диске в БД или очереди и мы быстро отвечаем пользователю. А в этот момент асинхронный воркер циклично обрабатывает этот буфер, например уменьшает картинки, или перекодирует видео или считает какую-то агрегацию.
    Ответ написан
    Комментировать
  • Зачем асинхронность?

    WinPooh32
    @WinPooh32
    Stack Overflow answer searching expert
    но для чего ее можно использовать еще?

    Например, заваривание чая человеком:
    Включаете чайник с водой. Пока вода греется, кладёте пакетик чая, сахар в кружку. Тут можно и посуду начать мыть. Когда чайник выключится, наливаете в кружку и размешиваете. Продолжаете мыть посуду.

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

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

    @Zolg
    пакет это целостная сущность
    если у вас два пакета не могут работать друг без друга - это один пакет
    Ответ написан
    5 комментариев
  • Как создать обменник?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Хочу создать онлайн обменик валют, но не могу понять как он устроиен

    Может это не ваше? Есть куча других видов заработка, устройство которых вы вполне сможете понять.
    Ответ написан
    Комментировать
  • Ruby on rails???

    Sanes
    @Sanes
    Ответ написан
    Комментировать
  • Сколько может стоить альтернатива обычному хостингу на AWS?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Ни один архитектор наперед не скажет вам сколько вы заплатите за AWS услуги. Формула биллинга там - сложная и учитываем и транзакции и трафик и каллбеки (AWS-lambda) и ресурсы времени для инстансов. Поэтому единственные правильный путь - собрать работающий макет. Задеплоить его в AWS и понаблюдать под нагрузкой в течение месяца. Посмотреть какой пришел счет. И соотвествтенно экстраполировать на другие объемы.
    Ответ написан
    Комментировать
  • Использование Linux для различных яп?

    delvin-fil
    @delvin-fil
    Crazy Linux-admin
    а можно ли использовать Python на Linux?

    Это что, стеб такой?
    Ответ написан
    Комментировать
  • Разная длина strlen на разных машинах?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Как правильно тебе написали в комментариях, скрипты сохранены в разных кодировках.
    Несмотря на то что ты думаешь, что кодировки одинаковые, факты, которые ты можешь наблюдать в реальности, говорят об обратном.

    Учись верить фактам, а не своим фантазиям. Очень важное качество для программиста.

    И заодно учись скромности. Если тебе мерещится, что в твоих проблемах виновата страшная бага в пхп, то присмотрись повнимательнее. Увидишь дурацкую опечатку в своем коде.
    Ответ написан
    9 комментариев
  • Почему размноженные данные дают прирост качеству модели?

    profesor08
    @profesor08
    Конкретно на эти данные лучше натренирована. Все. Показывая одно фото каждый раз, тренируется лучшая способность распознавать это фото.
    Ответ написан
    Комментировать
  • Как распараллелить парсинг и загрузку в БД на php?

    Mouvdy
    @Mouvdy
    Похожую задачу решил для себя иначе.

    Поле в БД сделал уникальным по которому должна была идти проверка.

    При импорте делаю только INSERT. В итоге данные или записываются или нет и можно распараллелить :)

    1 млн записей на слабеньком сервере за +/- 1-3 минуты выполняется.
    Ответ написан
    Комментировать
  • Не включается монитор, хотя лампочка горит. В чём может быть проблема?

    Вот с кнопок и надо начать. Для проверки можно панель с кнопками просто отключить. А дальше нужны приборы, знания, и лучше если заведомо исправный инвертор для проверки ламп подсветки. Лучше - в сервис, если Вы этим не занимаетесь. Иначе для ремонта одного монитора нет смысла приобретать/изготавливать всё это.
    Лампы покупать под 1-4 штуки слишком дорого выходит, удобнее сразу десятками брать, чтобы в итоге цена ремонта не стала заоблачной. Конденсаторы, как сказали уже, вздуваются не все, до 100мкф никогда практически не вздуваются - проверять только прибором (ESR-micro, например, или аналогичным). Ну и дальше, может быть много всего, и слёт прошивки, и ещё что-нибудь.
    Ответ написан
    2 комментария
  • Как изменить netbeans.conf в ubuntu 18.04 если пишет, что файл только для чтения?

    Xuxicheta
    @Xuxicheta
    инженер
    Local: To make individual changes that will apply only to a specific user, put them into the etc/netbeans.conf file in the user's userdir .

    ${userdir}/etc/netbeans.conf

    The local file does not exist by default! If you don't see a ${userdir}/etc directory you have to create the file yourself. The easiest way to do that is to copy the global netbeans.conf file from the NetBeans installation folder to the local ${userdir}/etc folder, and then make the desired changes.
    Ответ написан
    1 комментарий
  • Как стать хорошим backend, C# программистом?

    2chevskii
    @2chevskii
    Если бы каждый мог в поиск, тостер бы вымер.
    отпало, информация на английском языке

    Мимо, программирование не для вас.
    Ответ написан
    3 комментария
  • Какое даст понимание язык программирование ассемблер, абсолютному новичку?

    fox_12
    @fox_12
    Расставляю биты, управляю заряженными частицами
    Может дать понимание как работает железо - как устроена память, что происходит с регистрами при операциях, что такое прерывания, стек, и прочее...
    ООП - это совершенно другой уровень абстракции. Как раз чтобы абстрагироваться от железа и работать с некими абстрактными сущностями - объектами, не задумываясь особо о том как это будет реализовано в железе.
    Ответ написан
    Комментировать