• Как реализовать простую физику 2D самолета?

    @napa3um
    Примерно такая физика (рассчитывается каждый кадр):
    цикл(вечно) {
      X1 = X0 + Vx;
      Y1 = Y0 + Vy;
      Vx1 = Vx0 + ax;
      Vy1 = Vy0 + ay;
      НарисоватьСамолёт(X1, Y1);
      X0 = X1;
      Y0 = Y1;
      { ax, ay } = ПосчитатьУскоренияВЗависимостиОтУглаСамолётаИТекущейМощностиТурбины();
      ay = ay - 9.8;
    }
    Ответ написан
    Комментировать
  • Как реализовать мультиплеер на socket.io?

    begemot_sun
    @begemot_sun
    Программист в душе.
    Делать специализированный сервер.
    Внутри него будуте объекты, отвечающие за:
    1. Игровую ситуацию на поле (состояние поля).
    2. Состояние игроков.

    Игроки путем воздействия на объекты из п.2. Заставляют тех производить воздействие на объекты из п.1.
    Объекты из п.1. генерируют соответствующие события для объектов из п.2, которые в свою очередь передают изменение своего состояния и состояния игрового поля удаленному клиенту.

    Для реализации данной логики идеального подходит Erlang. :)
    Ответ написан
    6 комментариев
  • Как реализовать мультиплеер на socket.io?

    lxfr
    @lxfr
    При каких либо действиях лить данные о состоянии объектов в базу (какую вам виднее), при попадании данных в базу уведомлять всех подключенных клиентов об этих состояниях, на основе этих данных рендерить позиции. Перед сохранением в базу проверять на читы (а может ли такое состояние быть?).

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

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Поработал некоторое время с Ruby on Rails и был в настоящем восторге после знакомства с MVC


    Symfony не MVC фреймворк если что.

    Решил ознакомиться с Symfony, но не нашел книг


    symfony.com/doc/current/book/index.html

    Отдельно хочу отметить что например Doctrine вообще никакого отношения к Symfony не имеет и ее нужно изучать отдельно по своей документации.

    Как вы изучали этот фреймворк?


    RTFM и все такое. Книжки про то как клепать контроллеры подходят только для "просто клепать контроллеры". В этом плане (как аналог RoR) лучше брать какой-нибудь Laravel.
    Ответ написан
    6 комментариев
  • Как прикрепить Telegram-бота к Ruby on Rails?

    @printercu
    https://github.com/telegram-bot-rb/telegram-bot еще есть, можно настроить хуки и принимать обновления в рельсовом приложении.
    Ответ написан
    Комментировать
  • Как правильно построить структуру IT-компании?

    kumaxim
    @kumaxim
    Web-программист
    Первое - определите максимально четко сферу ответственности продажников и проджектов. Продажник для Вас ищет нового клиента: Директ, Авито, холодный прозвон и т.д. Находит - подписывает договор, выставляет счет, может быть берет деньги (если наличные), закрывает акт.

    Задача от клиента "А мне вот тут нужно еще красную кнопочку" - это вопрос к проджекту. Пускай сейлз прямо говорит клиенту, что все что идет после первоначального ТЗ обсуждается с проджектом. Он только по бумаге поможет, если надо будет(доп.соглашение, счет, акт).

    Также заметил интересную особенность, везде где нет правила "Того что нет в CRM того нет в принципе", обычно, царит анархия. Введите его же у себя и жестко карайте всех кто не пишет туда.

    По остальному - внедряйте KPI, оценивайте эффективность своих людей. Может быть часть из них фигней занимается, может быть у них какие-то скрытые проблемы, может быть они что-то делают не эффективно.

    То, что у Вас сейчас (выросли из 2-х профи в целую компанию) называется кризисом молодого руководителя. Проходит он через 6-12 месяцев, кучу нервов, потраченного в пустую времени и денег. Вы набивайте шишки, нарабатывайте управленческий опыт. Может быть Ваша компания развалится, но как минимум знание о том как делать не нужно, Вы из этого вынесите.
    Ответ написан
    Комментировать
  • Подробный способ "пинка" от шапки при скроллинге мышью?

    @Cyber_bober
    $("a.scrolllink").click(function() {
            $("html, body").animate({
                scrollTop: $($(this).attr("href")).offset().top + "px"
            }, {
                duration: 800
            });
            return false;
        });


    <div id="first-background">
    <a href="#second" class="scrollink">scroll to second</a>
    </div>
    
    <div id="#second">
    </div>
    Ответ написан
    5 комментариев
  • Какая мышь наиболее удобна для работы?

    eapeap
    @eapeap
    Сисадмин, Беларусь
    На работе старая Логитеч МХ518, дома - ноутбучные Логитеч среднего ценового диапазона: М325 и еще одна типа нее, только старше - уже лет 8 служит.
    Требования как обычно - чтобы в руке лежала, долго служила от одного комплекта батареек, ездила без проблем по любой поверхности - стол, бумага, покрывало, коленка... Мои - соответствуют.
    Ответ написан
    Комментировать
  • Какая мышь наиболее удобна для работы?

    @Tabletko
    никого не трогаю, починяю примус
    Мышь как и клавиатура - интимная тема. У каждого много эстетических и эргономических требований. На работе пользуюсь комплектом Logitech Desktop MK120, а дома живёт и не увядает восьмилетняя Logitech VX Nano.
    Ответ написан
    Комментировать
  • Как правильно осуществить миграцию столбца даты из строки в формат datetime?

    @vsuhachev
    Вам нужно делать такую миграцию в 4 этапа:
    1. создаете колонку с типом datetime с временным имененм
    2. из колонки с типом string переносите данные в колонки с datetime
    3. удаляете колонку с типом string
    4. колонку с типом datetime переименовываете в нужное имя


    И относительно вашего кода по переносу данных - так делать не рекомендуется потому что во-первых это крайне медленно, во вторых миграция зависит от класса. Представьте, через некоторое время вы доработаете класс(например переименуете аттрибут query_date) и ваша миграция перестанет работать т.к. она рассчитывает на то что код класса Page не поменялся, а он поменялся.

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

    execute('update pages set new_query_date = STR_TO_DATE(query_date)')
    Ответ написан
    1 комментарий
  • Какие методы верстки при работе с SVG-графикой?

    AMar4enko
    @AMar4enko
    Самый толковый и наиболее широко поддерживающийся способ это svg-спрайты через xlink:href (поищите статью на хабре).
    Смысл в том, что вы берете 100 мелких svg файлов и заталкиваете в один большой, помечая отдельные фрагменты идентификаторами.
    Этот файл загружаете одним XHR-запросом и вставляете в DOM, после чего можете делать
    <svg>
        <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#my-cool-icon"></use>
    </svg>

    У такого способа есть приятный плюс - спрайты можно перекрашивать через css. Извернувшись можно даже красить в два разных цвета (типа один элемент в красный, другой в синий), что невозможно с иконочными шрифтами.
    Используя css в качестве background-image такое не прокатит
    Ответ написан
    1 комментарий
  • Errno::ENOMEM - rails не хватает памяти на обработку CSS?

    В целом, согласно предоставленному Gemfile, похоже на чрезмерное количество используемых гемов.
    Все они, неудивительно, потребляют память в той или иной мере, что в итоге козлом отпущения становится предобработка SCSS.

    1. Наиболее логичным мне кажется уменьшение количества зависимостей.
    2. Вдобавок потребление памяти может увеличиться именно при определённых настройках гемов.
    3. Оптимизация потребления памяти приложения профайлером.
    Ответ написан
    Комментировать
  • Как не распыляясь дотащить до front-end мидл девелопера?

    @iv_k
    Отличие джуна, мидла и сеньера не в количестве страшных узнаваемых ими слов, а в уровне постановки задач.
    джуну задача ставится - ну ка запили мне класс/функцию,
    мидлу - запили ка мне приложение,
    сеньеру или тимлиду - вот тебе требования, вот тебе документы по процессу, вот команда. пилите.
    утрированно как-то так
    ps
    да, ответ на вопрос. работать и брать на себя больше ответственности
    Ответ написан
    Комментировать
  • Как прикрепить Telegram-бота к Ruby on Rails?

    Jeiwan
    @Jeiwan
    Нужно написать сервис (app/services) для работы с ботом, сделать коллбэк у модели (например, after_create), при срабатывании коллбэка вызывать сервис и отправлять сообщение. Можно обойтись без сервиса и вызывать АПИ бота прямо в модели, но это говнокод.
    А лучше использовать sidekiq и сделать воркер, чтобы сообщение в чат отправлялось в фоновом процессе и не блокировало запрос.
    Ещё тут могут быть разные подводные камни, не знаю, как реализован бот, но судя по Telegram::Bot::Client.run, он блокирует поток. Поэтому надо использовать именно sidekiq и отдельный воркер.

    P.S. Если будет время, постараюсь сделать приложение-пример. Самому интересно стало...

    Upd
    Запилил: https://github.com/Jeiwan/rails_telegram_bot Инструкция в README, используется sidekiq, сделана только отправка сообщений. Получение сообщений сделать будет труднее, т. к. там запускается бесконечный цикл.
    Ответ написан
    2 комментария
  • Как прикрепить Telegram-бота к Ruby on Rails?

    @Biggless
    Заюзайте foreman.

    gem 'foreman'
    в Gemfile

    В корне проекта создаете Procfile с содержимым:

    web: bundle exec rails s
    bot: ruby telegram.rb


    Запуск
    foreman start
    Ответ написан
    Комментировать
  • Онлайн консультант не в облаке?

    Mouvdy
    @Mouvdy
    рекомендую этот скрипт с клиентом под win

    codecanyon.net/item/php-chat-with-web-windows-clie...
    Ответ написан
    Комментировать
  • Онлайн консультант не в облаке?

    Sanes
    @Sanes
    Ответ написан
    Комментировать
  • Онлайн консультант не в облаке?

    sHinE
    @sHinE
    веб-разработчик, php/js/mysql и сопутствующее
    https://mibew.org/ru/ вот этот вроде можно было к себе поставить.
    Ответ написан
    Комментировать
  • Как отказать заказчику, если уже начал работать, но не справляешься с задачами?

    Ewintory
    @Ewintory
    Java / Android developer
    Искать более опытного исполнителя и доделывать вдвоем. Отдадите ему всю выручку с проекта. Сливать то легко, куда сложнее найти грамотное решение.
    Ответ написан
    Комментировать