• Как запускать код Ruby на Sublime Text 3?

    zorar4ik
    @zorar4ik
    Full stack overflow
    1. Пишете код на Sublime
    2. Сохраняете
    3. Запускаете в консоли
    4. Все

    Если хотите, чтобы в одном месте можно было писать и запускать код то это уже к RubyMine или Visual Studio Code
    Ответ написан
    1 комментарий
  • Годится ли Yandex.Disk или Dropbox для локльной разработки?

    @deliro
    Нет, не хорошая. Отвечать на вопрос "почему" не буду. Люди, которые создали VCS, сделали это не просто так. Не надо изобретать велосипед.
    Ответ написан
    Комментировать
  • Критическое ли состояние жесткого диска?

    1. "восстановить" = развод на деньги чаще всего
    2. снять все нужные данные и заменить на новый
    3. выявить причины появления проблем и устранить = иначе новый диск тоже "помрёт"
    Ответ написан
    5 комментариев
  • Kali Linux как linux для начинающих?

    fdroid
    @fdroid
    press any key
    Как уже писали, Kali - это специализированный дистрибутив для работы с сетью - анализ, сниффинг трафика, обнаружение вторжений и т.д. Дистрибутив полностью заточен под эти задачи прямо "искаропки". Я искренне не понимаю, почему каждого второго линукс-новичка тянет именно на Kali. Вы водить тоже обучаетесь на бульдозере или экскаваторе, вместо обычного гражданского легкового автомобиля? Установите попсовый Mint или Ubuntu для начала, разберётесь, хотя бы, что это вообще такое - линукс, как он работает и настраивается.
    Ответ написан
    Комментировать
  • Redmine. Стоит ли связываться?

    @Tab10id
    Болшая часть кода redmine сложно назвать чем-то хорошим. Методы на 50+ строк тут считаются нормой. В проекте тонны легаси-кода. Так как история редмайна началась ооочень давно, когда даже rails еще не был мейнстримом, часть решений redmine стали конфликтовать с аналогичными решениями rails, которые появились несколько позже. Все эти проблемы решаются стандартным для руби способом, манкипатчингом. В итоге нет нормальной поддержки i18n, нет sprockets (подключить костылями можно, но даже после того как оно заведется, проблем будет достаточно), фронт из нулевых (и внешне и внутренне), адекватность внутренней логики часто под большим вопросом, особенно что касается старого кода.
    Стабильная версия redmine работает на rails 4.2, но на подходе новая версия с rails 5.2.

    Отдельно по системе плагинов. Если коротко, то она ужасна, хоть и работает. По факту плагин мало чем отличается от гема, все происходит в общем нэймспэйсе, как если бы мы просто добавляли код в основной репозиторий. Система предоставляет возможность иметь в каждом плагине собственные миграции и указывать зависимости от других плагинов. Но и ни тем ни другим лучше не пользоваться, если есть такая возможность. Пройденные миграции сохраняются в базу с именем плагина и плагин после этого не переименовать без плясок с бубном. Если миграции имеются в зависимых плагинах, нужно иметь ввиду, что сначала пройдут миграции одного плагина, а потом другого. Порядок загрузки плагинов - по алфавиту, если плагин зависит от другого, но тот еще не загружен, будет исключение. Есть официальный механизм решения этой проблемы, но уже сто лет как не работает, в итоге опять костыли. Хоть в редмайне и есть тесты нет единого решения для тестов в плагинах, опять костыли. В плагинах почти никто не пишет тестов. При этом постоянный манкипатчинг в плагинах меняет поведение редмайна и ес-но ломают оригинальные тесты. Совместимость между плагинами на том же уровне. Для расширения вьюх есть система хуков, но их маловато, поэтому плагины полностью переопределяют вьюхи и партиалы. Очевидно, что если разные плагины переопределяют одни и те же партиалы, выигрывает последний.

    Но при всем при этом, так как это руби, обходные пути можно найти почти всегда, положительные тенденции в кодовой базе имеются, хотя и на низком уровне. С минимальными костылями можно переиспользовать систему фильтров как в задачах. Хотя с некоторой кривостью данной сиспридется смириться или долго и мучительно слать пулл-реквесты (которые в случае redmine оформляются в виде задач на redmine.org с прикладыванием патчей).

    О себе. 5 лет работаю с redmine, но, так как задачи не связаны напрямую с redmine и rails, особой боли не испытываем. Жить можно.
    Ответ написан
    1 комментарий
  • Почему не работает алгоритм в руби?

    longclaps
    @longclaps
    Чтобы это понять, нужно прочесть книжку про руби.
    Есличо - там написано, что всякое выражение возвращает значение, а тело блока кода возвращает значение последнего выражения, а последнее выражение у тебя current.
    Да, нужно прочесть книжку.
    Ответ написан
    Комментировать
  • Как устроиться на нормальную работу в такой ситуации?

    dasha_programmist
    @dasha_programmist
    ex Software Engineer at Reddit TS/React/GraphQL/Go
    вот ты сам оценил адекватно ситуацию и выводов тут немного, один из них - пережить эту яму
    1) если уходить на фриланс, то быть психологически готовым к поиску первых заказов (может оказаться долгим)
    2) если устраиваться на удаленку, быть готовым врать про возраст (говорить 18-19) и опыт (говорить год пишешь что-то для себя), никто проверять все равно не будет, не наглеть и устроиться на junior'a
    к сожалению в этим двух пунктах нужно будет смириться с тем, что то, что ты хочешь не всегда возможно здесь и сейчас.
    Понятно, что хочется выбрать оптимальный путь по скорости развития + финансы + интересная сфера, но, к сожалению, с твоими вводными вариантов немного. Будь то фриланс или удаленка - не выбирай фултайм, оставь время на изучение смежных языков и доп. информации и отдых. Успехов и удачи в поисках, с большой вероятностью у тебя все получится!
    Ответ написан
    1 комментарий
  • Как грамотно выстроить план обучения и развития?

    oh_shi
    @oh_shi
    1) спросите у вашего работодателя, что они хотят увидеть через год. Сравните с вакансиями на аналогичные должности;
    2) изучайте все по мере необходимости, но 'одеваться следует для той работы, которую вы хотите иметь, а не для той, которую имеете';
    3) есть смысл первые несколько лет тратить все свободное время на обучение, чтоб быстрее добраться до определенного уровня навыков и $/час;
    4) английский;
    Ответ написан
    Комментировать
  • Как проинкрементировать поле в таблице по юзерам?

    POS_troi
    @POS_troi
    СадоМазо Админ, флудер, троль.
    В один запрос и красиво не выйдет, придёться для каждого юзера отдельно проводить, но так как операция одноразовая то не вижу никаких проблем это сделать.
    Ответ написан
    Комментировать
  • Как проинкрементировать поле в таблице по юзерам?

    DexterHD
    @DexterHD
    Software Engineer, Teamlead, CTO
    1) Извлекаем всех пользователей.
    2) Для каждого пользователя пробегаемся по закладкам и назначаем приоритет

    Если честно, не понятно зачем искать решение средствами БД. Если БД действительно огромная (Гб/Тб данных) то запускаем 2 шаг. в несколько потоков.
    Ответ написан
    Комментировать
  • Почему несколько процессов начинают мешать друг другу на многоядерном процессоре (28 ядер)?

    vaut
    @vaut
    А почему это не будут влиять?
    Начнем с того что при частичной загрузке может работать динамический разгон частоты процессора. А при полной опускаться до базовой частоты.
    Далее пропускная способность оперативной памяти и дисков тоже имеет лимит.
    Ну и в конце концов кеш начинает работать менее эффективно.
    Еще и про то что гипертреды работают медленнее и соответственно половина начинает просто медленнее считаться забыл.
    Ответ написан
    Комментировать
  • Как писать coffeescript внутри html.haml/html.erb?

    nbekseitov
    @nbekseitov
    Ruby developer
    А разве в haml двоеточие не спереди(:coffeescript)?
    https://berislavbabic.com/rails-no-nos-using-inlin...
    Ответ написан
    Комментировать
  • Как проверить, является ли значение числом в Ruby?

    POS_troi
    @POS_troi
    СадоМазо Админ, флудер, троль.
    oh_shi не люблю регулярки :)

    class String
        def numeric?
          Float(self) != nil rescue false
        end
    end
    
    puts "566".numeric?


    "566" => true
    "56.6" => true
    "Hello" => false
    "999Hello999" => false
    Ответ написан
    2 комментария
  • Как можно реализовать контроллер для загрузки и скачивания фалов?

    File - это встроенный класс в Ruby для работы с файлами на локальной файловой системе.
    Там в FilesController полная ахинея написана.
    Что значит:
    @file = File.find(params[:id])
    @files = File.all
    @file = File.new(files_params)
    @file.update(files_params)
    @file.destroy

    Google: screencast rails upload files
    Ответ написан
    Комментировать
  • Чем отличается Sidekiq от ActiveJob в Rails?

    blackst0ne
    @blackst0ne
    Фулстэк-разработчик
    ActiveJob - это рельсовая прослойка для работы над фоновыми задачами.
    При этом что конкретно будет выполнять эти фоновые задачи (sidekiq, rescue, и пр.) - это уже дело десятое.

    Таким образом, если мы используем только ActiveJob, то мы можем хоть каждый день менять конкретного исполнителя, не переписывая кучу кода.
    Сегодня мы используем Sidekiq, а завтра перешли на Delayed::Job, а послезавтра - на Resque. Если работаем через ActiveJob, то миграция будет представлять собой изменение конфига, а не переписывание во всём коде вызовы методов конкретных реализаций.
    Ответ написан
    4 комментария
  • Зачем перед слиянием ветки f1 в ветку develop, нужно сливать ветку develop в ветку f1?

    Или я что то не правильно понял?

    Да, вы не понимаете сути слияния веток в Git.

    Начнём с того, что когда вы сливаете ветки, по большому счёту не так уж важно какую ветку в какую вы будете сливать. Вы В ЛЮБОМ случае создаёте мёрж-коммит, и создание этого мёрж-коммита (и соответственно разрешение конфликтов которое происходит при создании этого коммита) подразумевает, что вы соединили вместе две ветки. Это значит что начиная с мёрж-коммита все последующие коммиты (дочерние к нему) будут иметь изменения из ОБОИХ веток. Уже не будет разницы между тем что было сделано в первой и во второй ветке, отныне "они едины" (c).

    Другой вопрос в том, в какую ветку поместить этот мёрж-коммит и УКАЗАТЕЛЬ какой из веток СДВИНУТЬ на новый мёрж-коммит. Теоретически, мы можем сдвинуть оба указателя, но в большинстве случаев нам достаточно сдвига лишь в одной ветке (и нередко только в одной из веток, в вашем случае f1, мы имеем право двигать указатель).

    Когда вы попытаетесь сделать "обратное сливание f1 в develop", если в develop ещё не успело появиться новых коммитов (не являющихся предками созданного вами мёрж-коммита), то на самом деле никакого сливания и НЕ БУДЕТ. Ведь у вас УЖЕ есть коммит, учитывающий изменения в ОБОИХ ветках. Достаточно лишь передвинуть указатель ветки develop на этот коммит. Другое дело, что решение о том, что это можно и нужно сделать, приняв тем самым изменения в ветке f1 в ветку develop, принимает мейнтенер ветки develop, а это вовсе не обязательно тот же человек, что и работающий с веткой f1.

    Почему мы сначала сдвигаем указатель ветки f1? Ну очевидно потому, что это ветка в которой ведётся разработка, и обычно принято принимать в общую ветку (коей видимо у вас является develop) уже полностью готовые правки. Готовые - это в том числе интегрированные с текущим состоянием кодовой базы. Обычно это задача работающего в ветке f1 - порезолвить все конфликты и интегрироваться со свежим состоянием develop, чтобы мейнтейнер проекта мог максимально быстро и безболезненно вмёржить f1 в develop.
    Ответ написан
    Комментировать
  • Зачем нужны puma, rack?

    Грубо говоря, в общих чертах:
    Rack это библиотека, которая предоставляет АПИ для работы с ХТТП (в основном всякие обработчики запросов и ответов, вызывальщики другого кода и пр).
    Пума -- Вёб-сервер. Пума слушает порты, обрабатывает соединения и тд. Примерно как Нгинкс или Апач.
    Но есть особенность -- получив запрос Пума применит к нему Рэк, который вызовет, в свою очередь, указанный рубиновый код, то-есть собстно приложение (обычно на каком-либо каркасе, например рельсе).
    Примерно так:
    80 порт, Пума --> Rack --> Application
    Ответ написан
    1 комментарий
  • Как изменить поле?

    Dem1
    @Dem1 Куратор тега Ruby on Rails
    Ruby on Rails developer
    Тут 3 варианта:
    1) Вы не передаёте id в url
    <td><%= link_to 'Marks_as_done', change_state_to_done_path(task) %></td>

    2) Вы объявили метод как put/patch и link сделали обычным get:
    <td><%= link_to 'Marks_as_done', change_state_to_done_path(task), method: :put %></td>

    3) Есть валидации, которые не дают сохранить объект:
    Выполните @task.save! и посмотрите ошибки валидации, которые не дают Вам сохранить объект
    Ответ написан
    Комментировать
  • Залил проект на digital ocean используя nginx, можно ли как созданные в локальной БД записи перекинуть на БД которая находится на хосте?

    oh_shi
    @oh_shi
    Heroku это PaaS (Platform as a Service), за такие фичи вы и платите. А nginx это веб-сервер, он не имеет никакого отношения к базе. Потому вам придется самостоятельно делать дамп базы и переносить его на новый сервер. Можно настроить для этого Capistrano или его аналоги для автоматизации деплоя. А если число записей не велико, то прописать все необходимое в seeds.rb и накатывать их из него.
    Ответ написан
    Комментировать