Это копия, сохраненная 23 октября 2019 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
ИЗУЧЕНИЕ ЯЗЫКА
Q: C чего мне начать, чтобы стать рубистом?
A: Отличным началом будет Programming Ruby (The Pragmatic Programmers Guide), читать Eloquent Ruby и The Well Grounded Rubyist после прочтения первой толку особо не даст, одни и те же вещи, дальше читаем Ruby Way, затем познаем метапрограммирование с Metaprogramming Ruby.
А дальше открываем Ruby cookbook 2015 года, Пишем свой код во время чтения.
Q: Следующий уровень, продвинутые книги по руби:
A: Confident Ruby by Avdi Grimm | Practical Object-Oriented Design in Ruby
Refactoring Ruby Edition | Ruby Under a Microscope
Q: Онлайн курсы чтобы попробовать/вкатиться:
A: http://tryruby.org/levels/1/challenges/0/ | https://rubymonk.com/
http://www.codewars.com/?language=ruby | http://rubykoans.com
Q: Какой gem посмотреть, чтобы понять, как писать код?
A: Лучше всего посмотреть небольшие gem'ы вроде cancancan, pundit, camping.
Еще можешь полистать на гитхабе гемы с нарастающей популярностю (там еще нет тысяч строк, и тебе будет легче понять): https://github.com/trending?l=ruby
Q: Хорошие практики по руби и рельсам?
A: Обязательно стайлгайды (как оформлять код):
https://github.com/bbatsov/ruby-style-guide
https://github.com/JuanitoFatas/fast-ruby
https://github.com/bbatsov/rails-style-guide
Руководства "для чайников":
https://www.railstutorial.org/book [en]
http://www.theodinproject.com/ruby-on-rails [en] | http://codenamecrud.ru/ [ru]
Еженедельная рассылка с новостями из руби мирка:
https://rubyweekly.com
Прочая годнота:
https://github.com/markets/awesome-ruby
Q: Документация по стандартным библиотекам руби и рельс:
A: http://ruby-doc.org/ | http://api.rubyonrails.org
http://guides.rubyonrails.org | http://ruby.railstutorial.org
Q: Можно ли на руби писать нативные GUI, мобильные приложения, игры?
A: Да, но не стоит.
Q: Что ещё изучить?
A: Английский, git, linux. Паттерны. Один из часто используемых - Service Object.
СРЕДА РАЗРАБОТКИ
Q: Как установить разные версии рубей?
A: https://rvm.io | https://github.com/sstephenson/rbenv | https://github.com/asdf-vm/asdf
Решаем умер руби или нет. Иногда отвечаем на ньюважные вопросы. Ждем выхода 3.0, где ВСЕ БУДЕТ. Поясняем с трудом почему стоит выбирать руби, а не го/питон/джаваскрипт/скалу/хаскель. Насмехаемся на виндошизиком, но его в последнее время что-то не видно, вместо него эликсирошизик.
Я, если честно, тоже затрудняюсь сказать, зачем нужен руби, кроме как довольно красивого кода и скорости разработки :/ , хотя вот уже как 3 года на нем пишу. Это как с иностранными языками - тип лежит душа - ты и учишь. Попутно пишу еще на Rust и изучаю Elixir (я не ваш эликсирошизик, я только в тред вкатился).
рубин в хоусеки (который появлялся только в флешбеках в манге) носил понитейл, а тут на одной пикче распущенные волосы, а на второй вообще каре почти как у шинши
Раст не нужен особо, а эликсир правильно.
Можешь быть привыкнешь к нему и сделаешь выводы, отчего руби плох.
Да в треде блядь
Не знаю, давай не будем спорить о том, что нужно, или не нужно. Раст - тоже элегантный и очень быстрый язык. В элик посредством Rustler можно встраивать NIFы на нем. Ну и я на нем эмулятор N64 написал до стадии, когда обрабатываю инструкции проца. Дальше времени перестало хватать.
К элику я уже подпривык, мне очень нравится. Возможно, когда-нибудь буду его в продакшене использовать.
https://naturaily.com/blog/who-gives-f-about-rails
Поверхностно ознакомиться - https://www.ruby-lang.org/ru/documentation/quickstart/
Потом иди на www.codecademy.com, найди там Ruby, открой гугл переводчик, решай простые задачки.
Первый язык это английский. Троль.
Вкатывайся в ангельский активнее. Иначе никак. Абсолютно вся информация - на нем.
Для поделок можно и на винде. К сожалению, большая часть широко используемых гемов (сторонних либ) на винде или не скомпилится, или скомпилится через хуй пизду. Для продакшена серьезного винда категорически противопоказана. Поиграться и изучить язык и даже Rails - можно.
Есть ещё JRuby.
Он кроссплатформенный, естественно.
Одно время его рекомендовали, как раз, для винды.
И он даже несколько быстрее нативного.
Руби - очень тормозной язык, с никакущей многопоточностью.
И джава версия это дело, отчасти, лечит.
Гемов полно. Рельсы запускаются.
Разрабатывается весьма активно.
Сам я, правда, лет триста его не трогал.
так это не винда
I/O говна в WSL
Можешь сразу тогда передумывать в программирование вкатываться. Для всего кроме C# линукс/мак это дефолтные ОС.
Конкретный пример привести можешь?
Там не всегда последняя версия по совместимости, это да.
А так - очень даже совместим.
На винду ставится инсталлятором, ебаться с jvm не надо.
Короче - стоит того, чтобы попробовать.
>>453526
>>453696
Есть ещё вариант использовать бесплатную онлайн IDE.
Их есть сейчас несколько. Там можно делать большие проекты, а не только побаловаться.
Возможно, это будет лучший вариант для вката, т.к. вообще никаких накладных расходов.
google: ruby online ide free
Потом обратно зато переходить не захочешь.
Ну вообще на винде можно кодить. Плюсы, c#, вроде даже Rust нормально на винде. Elixir точно. JavaScript - само собой. Но условно для кодинга - linux - это дефолт.
Unix. Более дружелюбная для разработчика среда, bash в конце концов.
Unix изначально был создан программистами для программистов.
Unix с человеческим лицом называется Mac OS.
Но, линукс потихоньку тоже эволюционирует.
Поставь себе Virtual Box, накати на него Ubuntu, и будет тебе счастье.
Или юзай онлайн IDE, repl.it, например.
Там тоже стоит линукс, ты видишь консоль, можешь писать не только код, но и скрипты, и т.д.
я абсолютно серьезен,я в как то в пару тредах спрашивал,меня обоссали...там постоянно ошибки,то несовместимость,в итоге чисто случайно нашел решение на форуме юбунты,которое НИГДЕ блять не упоминалось,а перерыл я достаточно
ах да,как же я наебался с RVM
Я рил не понимаю, что у тебя было не так. rbenv ставится быстро, руби через него - быстро. Рельса - тоже. Там есть некоторые проблемы с нашим проектом на работе (какие-то гемы не ставятся без зависимостей) - в ошибках указано, что не скомпилилось. Гуглится минуту, какой пакет поставить - ставится и все.
пхп тоже очень токсичны,особенно когда доходит до фреймворков
оживился немного он только в посл время,до этого 2-3 поста за неделю
Есть opal - компилятор ruby в js, но особой популярность, как и другие компиляторы в js, кроме ts, он не пользуется, хотя работает вроде как стабильно. В Японии достаточно популярен mruby для эмбедед. Есть RubyMotion для мобилок, для десктопа тоже есть всякие shoes и биндинги к qt/gtk, но они совсем дохлые как и нативные приложения для десктопа. Но 90+% это бекенд, конечно.
Для админских скриптов ещё. Вместо перла и питона.
Напр. см. Homebrew для Mac OS - менеджер пакетов.
Есть книжка про это, не помню названия, но, что-то очевидное.
Поройся на allitebooks.com - там есть поиск.
я бы не сказал
саблайм и консолька))
Что-то по типу дженкинса есть для мобилок - 99% руби. 28к звезд гитхаб. хомебрью.
Я лично использую для скриптов. + Чуток на работе. В основном сижу на эликсире.
Кристал никогда не взлетит.
Как матц сказал, если в 90 языки от ноунеймов могли взлететь, то сейчас только компании.
Элик пожалуй исключение.
Атом на десктопе, vscode на ноуте. Хочу давно полностью на код перекатиться, так как он заметно быстрее, но какой же там уебищный поиск, только из-за него на атоме сижу. Issue об его улучшение с сотнями комментов висит на гитхабе уже пару лет, но воз и ныне там.
Вспомнили бы. Я, как минимум. Я тоже в него вкатываюсь, и пока мне все нравится, как уже выше говорил. Годнота же. Но я и в Раст вкатываюсь, и ML на питоне пишу иногда, так что я - не показатель, наверное. Мне просто все нравится.
Я там issue оставлял в соларграф и куда-то еще. GotoDefinition работает в моем проекте рабочем 12 секунд. Сука это пиздец. Sublime - моментально все. В итоге перешел на вим. Потому что могу.
>Какой IDE вы пользуетесь?
VScode с плагином rubocop, натягивает выдачу копа прямо на редактор, очень удобно.
> ставитЬся
Сегодня спутал "ться" и "тся"
А завтра - плачешь, хуй сося
На каком, блд, "линуксе"?
Их хуева туча.
Может стоять старая версия по тысяче причин, это нормально.
Но, обычно - потому, что стабильная и проверенная.
Новые версии - новые баги.
На свой страх и риск - ставь последнюю.
Если поиграться - вообще похуй.
Какая разница, если есть rbenv/RVM?
Upwork
стандартной командой из гайда-2.5 на уюунте 19.04
Ну изначально мне нужна была возможность копировать в OS буфер обмена. У штатного установленного вима какой-то вафел решил убрать этот флаг, и надо было бы вим пересобирать из исходников с флагом. Решил, что проще накатить neoVim и прокинуть алиас на вим. Все плагины подхватились, как влитые. Вдобавок получил более плавный скроллинг, вообще работа в виме визуально стала более плавной. Еще у него там API для многих языков, чтоб плагины писать, но я не пишу плагины для вима, так что для меня это осталось за кадром.
Многие рубисты по совместительству фронтом занимаются, так что большинство вполне неплохо владеет js.
Есть нормальненнькие статьи по тредам?
лети в Сан -Франциско,там точно есть
Тебя забанили на хедхантере или что?
Или должны быть какие-то секретные рубистически ресурсы?
В России их нет.
https://weblog.rubyonrails.org/2019/8/15/Rails-6-0-final-release/
Да, лично попросил на монстре бан, чтобы потом всякие умники такую хуйню спрашивали.
When someone shared this charts I like it. Do u now youself? u're daun. Why? cause Java bit all framework stuff. But nobody like java, because it's awful and painfull code.
A teper', shut up and go away.
Кто еще не смотрел охуенный доклад Лучшего по теме айти в целом и рельс.
спасибо, анонче!
хыы
А ты запили свой проект
На Js & php куча вакансий без опыта.
Дешевле? Да.
Проще? Не факт. И уж тем более потом не проще поддерживать лапшу на PHP. Если тебе нужно что-то совсем простенькое, то какого-нибудь Вордпресса хватит. А если расчехлять Ларавель, то смысла нет, проще и быстрее Рельсы как раз-таки.
>>455445
Не на всех, иногда проскакивают и джуновские вакансии.
А вообще это классика, делаешь пет-проект, пиздишь про полгода опыта и вкатываешься. Я сам вкатился в IT через Руби Хоть сейчас и JS стек, если желание есть и шаришь, то вкатишься.
Твой собственный проект на любую тематику. Имиджборда, опен-сорс библиотека (гем в случае Руби), веб-сайт, что угодно.
>что-то совсем простенькое, то какого-нибудь
речь была малые и средние проэкты,а не простенькое
и на пхп можно сразу писать.а не пройти путь ЯП-фреймворк
>А если расчехлять Ларавель, то смысла нет, проще и быстрее Рельсы как раз-таки.
чем ларка не нравиться?там тоже есть библиотеки для множества вещей
Работа, и стажировки и даже курсы есть. Но, безусловно, вкатиться в Руби не так просто, как в JS.
>Мерти ли руби
https://isrubydead.com/
Очевидно затем что Руби самый кайфовый язык с динамической типизацией, приятный синтаксис, большая экосистема, топовый МВС фреймворка для веба.
Если видишь мелкобукву, которая не ставит пробелы после знаков препинания, то просто игнорируй его. Это местный дурачек.
Рельсов хватит для всего. Если у Shopify 80к запросов в секунду и они хорошо себя чувствуют (5 рельсы), то думаю маньке с Двачей и его "видеостримингом" хватит с головой.
Имею за плечами 3 года опыта. В свое время вкатывался, начиная с этого видеокурса - rubyschool.us
Какое отношение твои говнотесты имеют к реальному проду?
https://twitter.com/dhh/status/885776244532551680?lang=en
Понял. спасибо
https://www.slideshare.net/jduff/how-shopify-scales-rails-20443485
Презентация о том как они скейлили Рельсы
Это еще с 2013 года, там 50к реквестов в сек.
Какой экшен кабл, шизик
Слишком абстрактный вопрос, используемые технологии зависят от проекта. Есть очень неплохой сайт с гемами сгруппированными по решаемой задаче - https://www.ruby-toolbox.com/categories, хорошо бы его, кстати, при следующем перекате в шапку добавить.
Но я попытаюсь написать то что приходит в голову и то что как мне кажется стоит попробовать заранее, а не изучать по ходу дела. Из того что будет нужно почти на любой работе: sql (обычно postgresql, реже другие БД), redis, sidekiq, rspec если на работе нету тестов, то беги при первой же возможности. Реже, но тоже встречается достаточно часто: rabbitmq, actioncable/anycable, elastic, docker. Часто могут пригодиться базовые умения администрирования линукса: настроить nginx, бд, в целом перейти от чистой машины к машине обрабатывающей продакшен запросы (скорее всего тебе этого делать не придется, то все равно неплохо бы понимать что происходит на продакшене), если ты еще и все это сможешь автоматизировать с помощью какого-нибудь ansible и docker, то вообще можешь переквалифицироваться в девопсы когда руби умерет.
Отдельно еще раз упомяну владение БД, тут и банальное понимание когда надо добавить какие-то индексы, и умение подкрутить настройки, настроить статистики, и разобрать вывод explain, и способность прочитать/написать/оптимизировать sql-запрос в несколько десятков-сотен строчек - все это охуенно ценные скиллы, но почему-то достаточно редко встречающийся у рубистов (и не только) скилл.
Да. На нем все еще куча как новых стартапов, так и активно развивающихся проектов. Просто он непопулярен в СНГ, но посмотри вакансии по миру.
То что ты, шизик, высрал hello,dvach и начитался статеек про Ruby is dead ничего не значит.
Популярность может падать вниз потому что популярность MVC фреймворков в целом падает, т.к. сейчас все дрочат на микросервисы и SPA. Но это не значит что Рельсы перестали быть отличным выбором для веб-разработки.
Добавлю, что даже для джунов в снг есть вакансии, хоть и не в таком количестве как на js например
https://ideamotive.co/blog/40-best-ruby-on-rails-companies-websites/
C++/C
>Любезнейшие, а есть какой-нибудь гид по бэкенду на Ruby? Типа что нужно изучать шаг за шагом, какие технологии помимо рельсов и все в таком духе.
>Те части сайта, которые должны работать предсказуемо и надежно, пишутся на проверенных технологиях и языках. CMS написана на Ruby on Rails — этому фреймворку уже больше десяти лет, и непонятных ситуаций с ним возникает куда меньше, чем с более новыми разработками.
>Meduza.io
Жопаскрипт на стороне клиента оф кос.
С, С++ занимается всякими кодировками, перекодировками.
Go отвечает за апи и трудности типа поискае.
Ruby за всю прочую возню.
Мне кажется что нет.
Тупой чмохен-вкатывальщик, сам и иди в b, по твоим вопросам понятно что ты оттуда и пришел.
Я в июле вкатился. Уже получил зарплатку, правда неполную, так как к концу месяца начал работать. 2к, джун
апворк, но наняли мимо него, т.е. работаю напрямую и платят тоже сразу на пионер.
То есть ты простой хуй-щегол с 0 бэкграундом взял и просто так вкатился через апворк?
Получается по факту в снг вообще работу для ruby вкатывальщиков искать смысла нету
Почти что.
Но я рельсы только по туду листу освоил. Не знаю куда дальше идти.
Присматриваюсь к https://hellorails.io/
у него на ютубе есть куча гайдов где он делает штук 5-6 приложений.
Но мне не нравится что он на туду понаставлял кучу гемов связанных с UI и получшим выводом ошибок - я просто в шоке сидел.
ну ты нам потом залей куда-нибудь
Еще ничего лучше https://www.railstutorial.org/ не придумали.
Если ты не можешь его осилить, то и дальше не осилишь.
не все места очевидны,часто приходилось гуглить
Не знаю, может и есть. Конкретно я из мухосрани и к перерезду не готов был, поэтому вариант с поиском работы в ДСах не пробовал. Может прокнет, как грицца стучитесь и вам откроют.
Ну некоторые вещи просто удобнее и привычнее.
Взять тот же ROM - сломаны алиасы as: :something.
Например: belongs_to :base_user_game, as: :user_game
В аггрегирующих функциях, если прокинуть этот алиас, не будет работать ни aggregate(:base_user_game), ни aggregate(:user_game). И это баг, который к мажорному релизу, вроде как, поправили (там другой ROM используется). Аггрегаты нужны потому, что ханами по дефолту не умеет в User.first.parents.first.car.seats.last . Ему надо вручную аггрегировать такие вещи под каждый запрос через репозиторий. Я слышал много хвалебных вещей в сторону разделения Entity и Repository, касаемо того, что бизнеслогика - в энтити, запросы к БД - в репозитории. Таким образом можно будет не переписывать бизнес-логику приложения, если захотим сменить БД с релятивной, например, на монго. И в таком случае ентити-репозиторий подход может помочь меньше ебаться. Однако уже на стадии разработки ебаться приходится гораздо больше, нежели чем с АктивРекорд подходом. Плюс еще фабрики с этим работают очень плохо, если хочешь сделать кольцевые зависимости. Условно, у тебя есть цепочка User -> has_many Parent -> has_many Car -> has_many Seat. И вот нихуя не получится сфабриковать пользователя, к нему двух родителей, у каждого из которых будет по машине с 4 сиденьями. Получится это сделать в самих тестах вручную. Автоматически не выйдет ни с одним знакомым мне гемом-фабрикатором. Самому только если написать :/
Сейчас я набросал такую схему - модель Батя имеет отношение has_many к Пиво, у бати есть поле - початое_пиво_cache_key, есть методы - пить_пиво, выбросить_пиво. У модели Пиво висит коллбэк на after_commit - Батя#выбросить_пиво. Батя#пить_пиво достает по ключу Пиво, если по ключу ничего нет - лезем в базу данных за пивом и кидаем его в кэш. Если Пиво каким-то образом изменилось, оно сообщит Бате коллбэком #выбросить_пиво.
Вроде бы всё нормально, Батя не лезет в базу при попытке попить пива, если с пивом что-то случается - Батя берет новое.
Есть ли какие-то подводные камни у такого подхода?
Нормально вешать такое поведение(вызов метода из другой модели) на коллбэк after_commit?
Используете ли вы что-то подобное у себя?
Обычно вешают через after_commit, да.
https://scotch.io/tutorials/how-to-improve-website-performance-with-caching-in-rails
Но я рекомендую по возможности избегать коллбеков и лучше делать это сервисом отдельным, когда ты пытаешься поменять сущность Пиво. Таким образом ты всегда будешь понимать, что происходит.
UpdateBeerService.new(beer, params) - и там транзакционно обновлять и кэш у БАТИ. Это не всегда элегантно, но всегда понятно, что происходит. Но традиционный путь - как ты написал, через after_commit. Почитай статью.
github.com/rest-client/rest-client/issues/713
да-да, тож видел
Ну смотри, если тебе нужно просто обновить сам гемчик, чтобы создавать новое приложение не в 5.2, а в 6.0, то всё очень просто:
$ rails -v
Rails 5.2.3
$ gem install rails
$ rails -v
Rails 6.0.0
Если тебе нужно обновить уже существующее приложение с 5.2 до 6.0, то:
в Gemfile меняешь строчку
gem 'rails', '~> 5.2'
на
gem 'rails', '~> 6.0.0'
потом запускаешь
$ bundle update
потом
$ bundle exec rails app:update
всё время жмёшь Y
потом проверяешь через
$ git diff
не потёрлось ли чего важного из твоего кода
ГОТОВО!
Подробнее:
https://guides.rubyonrails.org/upgrading_ruby_on_rails.html
Поверь мне, из начавших книгу осилило ее не больше пары процентов вкатывальщиков. Она простая в основе, но требует хорошего technical sophistication.
Очевидно, дальше делаешь свой пет-проект попутно гугля все проблемы и куря https://guides.rubyonrails.org/
Из книг дальше можно читать Agile Web Development with Rails или Rails 5 Way.
После этого уже ищешь работу.
Они кстати уже крутят 6.1 на продакшене, при этом у них самый большой рельс-проект в мире.
https://twitter.com/jmwind/status/1163924270994612224
а, спасибо
>Из книг дальше можно читать Agile Web Development with Rails или Rails 5 Way.
Что лучше?
На этой книге я пока на 5 главе.
мимодругой.
ставь лайк этому посту если прочетал #мимодурной
Rails 5 Way посолидней будет по моему мнению. Она более практичная что ли, да и кроме самых рельс еще и освещяет экосистему и популярные гемы.
railstutorial надо закончить чтобы уловить полностью процесс разработки от 0 до прода и увидеть все части фреймворка при этом не закапываясь на месяцы + вообще понять тебе заходит или нет.
Зависит от размера кодовой базы. Если допустим там моделей не больше 30 и ты не юзал ActionMailer (он теперь ActionMailbox и по-другому работает), то можно и апгрейднуться. Там по сути кардинально мало что поменялось.
Да, пока еще меньше, мэйлер немного юзал, но думаю там быстро будет переписать. Два имейла-то, хули там. Спасибо за ответ.
А как же задавать вопросы здесь?
Например FLOOR(column_name) просто втаскивает целое число, а после запятое не забирает, а нужно забрать рубишный флоат.
Это клиента для подключения к БД на рубийной стороне зависит. Во что он распарсит значение полученное из базы, то ты и получишь. Что сейчас возвращает простой запрос значения к базе без всяких FLOOR?
Ты издеваешься?
irb> open("https://2ch.hk/pr/src/1451671/15655552159190.png (М)") {|f| puts f.length}
70541
(это в байтах, можешь разделить на 1024 и получить в килобайтах)
На лицо непонимание того как работает openURI, сначала с этим разберись и вопрос сам по себе отпадет.
>сначала с этим разберись и вопрос сам по себе отпадет.
Разобрался https://ruby-doc.org/stdlib-2.6.3/libdoc/open-uri/rdoc/OpenURI/HTTPError.html
проверяй.
Пиздец уебищные доки.
Тебе выше скинули уже ответ на SO, просто надо хедер content-length проверять и все. Если его нет, то никак, недокачав до конца, не узнаешь.
Этот кретин просто документацию об ошибке открыл.
https://ruby-doc.org/stdlib-2.6.3/libdoc/open-uri/rdoc/OpenURI.html
Тогда ладно.
>Этот кретин просто документацию об ошибке открыл.
А что я еще должен открыть, если там 2\3 так же выглядят. Например, я захотел почитать как ловить ошибку - хуй мне.
Погуглил в общем пространстве - ни одного поста про то как юзать опен УРЛ. Все только u shouldn't do this be aware, и в прочем духе.
Все больше убеждаюсь, что в скриптинг руби пиздец какой хуевый.
>А что я еще должен открыть, если там 2\3 так же выглядят
Документацию по OpenURI, очевидно же. В поиске по "openuri" ссылку которую я скинул первой выдает.
>Например, я захотел почитать как ловить ошибку - хуй мне.
Так же как и любую другую ошибку с помощью rescue. С чего бы документация какой-то конкретной ошибки будет содержать описание общей функциональности языка?
>Погуглил в общем пространстве - ни одного поста про то как юзать опен УРЛ
Весь модуль это одна сранная функция, тебе статья нужна по каждой функции в языке что ли? Хочешь чего-то более гибкого юзай Net::HTTP или HTTParty тот же, по ним хватает статей.
Кстати, в той ссылку, что я скинул есть и ссылка и на более подробное описание аргументов https://ruby-doc.org/stdlib-2.6.3/libdoc/open-uri/rdoc/OpenURI/OpenRead.html#method-i-open
0.3116e3 это и есть 311.60, просто руби так BigDecimal выводит. Можешь to_s на результате вызвать, что бы увидеть это число в более привычном формате.
https://en.wikipedia.org/wiki/Scientific_notation#E-notation
Спасибо, с BigDecimal опыта не имел, не думал что он может так выглядить.
доки у них гавно
и пхп
Язык же выбирают не только по легкости вката.
Вакансий нормально, тебе нужно не 100 вакансий, а всего одна.
Совсем свежий стартап внутри уже-скоро-7-лет-как-на-рынке продукта на стыке CX и маркетинга. Внутри CDP, CGC-механики и квадриллион чего еще.
Стек вперемешку: Elixir, Java, Ruby, Postgres, Kafka, ArangoDB, GraphQL, TypeScript, Vue…
Ищем Эликсиро-господ, а также желающих вступить в наши редкие ряды. Фронт писать не нужно, а немного Ruby и/или Java было бы полезно. Можно не знать Elixir, главное — уметь программировать.
Вилка: 150-180к₽. Думаю, можно попробовать больше, если ты ну прям умный.
Команда порядка 10 человек. Над продуктом работаем втроем. Трудимся в ламповом офисе в 5 минутах от Электрозаводской, где есть кофе и все такое.
Сайт текущего продукта: aplaut.com
Мой TG: @yet_another_pirate
Отвечу на многочисленные вопросы аудитории в треде.
я только понимаю проги из туторов и учебных прмеров,как они работают.сложнее уже тяжко
>главное — уметь программировать.
растяжимое понятие
>а немного Ruby и/или Java было бы полезно.
>Вилка: 150-180к₽.
Здесь минимум 2-3 года работы на боевых проектах.
Немного.
Ага.
>Денег немного?
Для удаленки да.
>Программисты от 300к начинаются?
от 250+
>Сориентируй.
Сориентировал.
>Я похож тут на Кобейна?
хуй знает кто это.
Здесь нет работы на такое количество стаффа и такой стак. 3-4 человека максимум и полвоина приведенного тобой стака - это параша, которую кидают тебе на уши ненужные в команде люди.
Поясни, я не понял мысль.
На счет 5.2 До 6.0 не знаю. Но если я свой 3.6 до 5.0 хотя бы обновлю, я охуею от того, сколько всего отвалилось.
Благодарю!
Еще вопрос.
puts a просто выведет содержимое переменной a, насколько я понимаю.
p a эквивалентно puts a.inspect.
Но что делает инспект? Объясните, пожалуйста, как можно понятнее.
Инспект это просто метод класса Object, то есть любой класс в Руби его наследует.
Инспект представляет объект в читаемой для человека форме. Он выводит имя класса, id объекта и список инстанс переменных и их значения (вызывая на них в свою очередь inspect).
В идеале созданные классы должны переопределять метод inspect и удобно выводить инфу про объект в виде строки.
https://ruby-doc.org/core-2.6.3/Object.html#method-i-inspect
Я читал эти доки, но а на практике?
Вот я делаю
a = 'abc'
puts a выводит 'abc'
p a выводит 'abc'
Не могу понять где именно этот инспект используется на практике.
Да, выводит просто строку потому что у класса String переопределен метод inspect.
Используется, например, в логах при ловле ошибки чтобы вывести инфу про объект.
Спасибо за помощь.
PHP не используем, ну и совсем уж джун нашему делу не поможет, увы.
А ты думаешь здесь все опытные рубисты сидят? В вакансии серьезный стак, я наперед знаю что не пройду плюс как раз офер получил, так что уже не ищу работку
Добавляю ActiveRecord, тебе на d
Ни в чем. Нормальный язык общего назначения. Просто на хайпе сейчас другие вещи, вот и всё.
а такая
>против джавы?
Руби - очень динамический язык.
Наверное, самый динамический из всех. Потому и тормозит.
И в смысле типизации, и в смысле выполнения.
Например, определение класса в руби именно _выполняется_.
Можно просто включить произвольный сторонний код в это определение (не унаследовать) и он будет выполняться. И может менять код класса налету.
Руби - очень гибкий язык. Это и достоинство и недостаток.
На нём очень хорошо писать DSL (мини-языки). Например, рельсы - это DSL, чуть более, чем полностью.
Джава - это другое.
Это компилируемый язык со статической типизацией.
И виртуальная машина для выполнения скомпилированного байт-кода.
На джаве можно написать руби (jruby.org).
И он будет в чём-то даже лучше оригинального.
А вот на руби написать джаву - нельзя.
все в джава-машину!
ебать,рано радовался...
Просто берешь puma, задаешь сколько хочешь тредов и воркеров и готово, весь конфиг пумы обычно строк 10-20 занимает.
Вот тут пишут, что да (картинка оттуда же, лол):
https://naturaily.com/blog/who-gives-f-about-rails
А на практике? В ДС есть что ловить?
В ДС хватает вакансий, в остальной Рахе с этим тяжелее.
Вкатывайся. Я вот иногда жалею что не работаю здесь, может быть было бы тоже интересней.
50 на 50. Мне и на свифте приятно писать.
>опыт с чем нибудь из топ 5 ЯП
Джава, питон, джаваскрипт, руби?
А кто пятый? Пыха, что-ли?
Да, имею. На всех - более или менее.
Но, на рельсах ничего не делал.
Какого рода приложения на них делают сейчас в России?
руби не топ 5
Ты бек не свифте пишешь или ios кодер?
>Джава, питон, джаваскрипт, руби?
>А кто пятый? Пыха, что-ли?
Это местный шизик. Детектится по мелкобуквенности, отсутствию пробелов после знаков препинания (или отсутствию этих знаков в принципе) и не способности высрать больше одного, изредка двух, предложений.
>Какого рода приложения на них делают сейчас в России?
Зайди на hh или мой круг и посмотри вакансии. В ДС из того, что сходу вспомнил: мейлач, рамблер, рокетбанк, альфапоток, инстамарт, ржд, учи. Еще дофига не особо публично известных мест есть.
>mint@mint:~$ gem install rails
Fetching: concurrent-ruby-1.1.5.gem (100%)
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /var/lib/gems/2.5.0 directory.
сначала ставишь менеджер версий - rvm или rbenv
на менеджер версий ставишь нужную версию ruby
потом только ставишь гемы
всё это будет лежать в каталоге текущего пользователя и не потребует особых прав
конкретно твой случай - попытка поставить гем в системную директорию, т.к. ruby установлен из репозитария дистриба, для доступа нужны админские права, то есть перед gem install пропиши sudo
RROR: Error installing rails:
ERROR: Failed to build gem native extension.
current directory: /var/lib/gems/2.5.0/gems/nokogiri-1.10.4/ext/nokogiri
/usr/bin/ruby2.5 -r ./siteconf20190825-5161-1ve8zg7.rb extconf.rb
mkmf.rb can't find header files for ruby at /usr/lib/ruby/include/ruby.h
extconf failed, exit code 1
Gem files will remain installed in /var/lib/gems/2.5.0/gems/nokogiri-1.10.4 for inspection.
Results logged to /var/lib/gems/2.5.0/extensions/x86-linux/2.5.0/nokogiri-1.10.4/gem_make.out
ну и как его поставить?щас стоит у меня руби 2.5
ты просто не врубаешься что значат эти команды и что тебе система на них выдает, попробуй читать, что там написано, попутно забивая в гугл все непонятные слова.
Какие нахуй инструкции на сайтах? Какое тебе Руби если ты понятия не имеешь что делают команды и не можешь разобраться в случае проблемы?
с помощью него у меня все заработало без пердолинга и ошибок!но работал он медленно
Вопрос: поможет ли перекат проекта на вебпакер, если буду реилс сервер запускать с параллельно запущенным вебпак дев сервером? С какими подводными сталкивались лично вы сами? Стоит ли вообще? Если не стоит, то какие еще могут быть пути?
Может кто-то перекатывал по той же причине
В рельсы, конечно, даже в ДС эликсиро-работы почти нету, да и в той, что есть обычно сразу опыта с эликсиром/руби или хотя бы просто на бекенде требуют. А если эликсир все-таки взлетит, то перекатиться будет несложно.
Да, скорее всего поможет, там же есть полноценный инкрементальный билд только для @import в sass он не работает азаза как минимум, да ассет пайплайн всегда был тормозным говном. Я перекатывал довольно крупный проект год назад на вебпак (без всяких вебпакеров), никаких проблем не было, но у меня уже было очень много опыта настройки вебпака. Так-то с вебпаком, пока ньюфаг, можно хорошо наебаться, не зря его за сложность хуесосят.
Если не хочешь тратить время на вебпак, то можешь для начала попробовать с гема sass перекатиться на sassc, может быть этого будет и достаточно.
Спасибо за развернутый ответ.
Блин, теперь не знаю даже. Задача интересная и в целом важная, тем более ты пишешь, что поможет. Но теперь стрёмно, раз говоришь, что можно наебаться. У нас просто овер30 самых разных JS модулей, не навернуть бы это всё к хуям
На Фениксе работы почти нет, в Рельсы спокойно можно вкатываться, особенно в ДС.
Неа
Конторы, которые юзают феникс, обычно другие свои проекты разрабатывают на рельсе. С рельсой точно не прогадаешь, с фениксом -- как повезет.
Ты будто первый день тут. Его вопрос - святая толстота на тему эликсиросрачей
Ну еще разик бамп
Языки разные, но по факту очень похожие и фреймворки тоже похожие. Из Руби перекатываются многие в Эликсир, платина, поэтому вопрос был нормальный на самом деле.
Я бы не сказал, что фреймворки очень похожие, все MVC фреймворки в целом похожи, просто тут создается иллюзия большей похожести из-за схожести синтаксисов языков. А уж ecto и activerecord вообще не похожи между собой.
Если захочешь.
Синтаксически похожи. Парадигмы разные. Рельсовик готов писать не говнокод на эликсири тогда, когда в состоянии написать что-то адекватное с dry-rb.
Требуется. На реакте у тебя сразу будет верстка в виде компонентов, сразу привязанная к ивентам и выводу данных. А Rails используется просто как API. Нет смысла начинать по-другому, больше времени потеряешь.
>пилить обычное приложение vanilla js
Как ты себе это представляешь?
Что ты там будешь пилить? И зачем?
Алсо, лучше начни с Vue. От реакта ты быстро устанешь.
У реакта просто кривая обучения выше, но как только ты освоишься, сразу поймешь из-за чего хайп весь. Он удобнее, выразительней и с лучшей экосистемой, чем Vue.
Хотя безусловно, Vue тоже хороший фреймворк, но я его вижу смысл учить только если Ларавель на бекенде, там они с Vue интегрируются плотно и зачастую идут в паре в вакансиях.
нет,но если ты живешь в СФ ареа-то да
>У реакта просто кривая обучения выше, но как только ты освоишься, сразу поймешь из-за чего хайп весь. Он удобнее, выразительней и с лучшей экосистемой, чем Vue.
Вкусовщина. Я больше года и с тем и с тем работал и vue мне нравится намного больше. В реакте слишком много бойлерплейта, все эти ехал HoC через HoC; роутер который публичное api меняет постоянно хотя сейчас успокоились; редукс это вообще апофеоз бойлерплета знаю, что уже писал, но это пиздец; хуки, как попытка хоть немного решить проблему бойлерплейта, но которые при этом добавили своих проблем, вроде того, что их нельзя даже банально внутри if использовать, из-за того, что их поведение зависит от порядка вызова; vue-cli на голову выше по удобству create-react-app опять же.
Во vue при этом для меня есть только два недостатка. Это то, что typescript интегрировать с ним не очень просто, но в 3 версии это пофиксят, и то, что они никак с defineProperty на Proxy не переедут и приходится иногда использовать Vue.set/delete.
Это просто меняет версию рубей
Я понял что только так
cd /tmp/rails-apps
mkdir my-first-app
cd my-first-app
echo "source 'https://rubygems.org'" > Gemfile
echo "gem 'rails', '5.0.1'" >> Gemfile
bundle install
bundle exec rails new . --force --skip-bundle
bundle update
не можешь найти работу,создай ее сам)
В более-менее солидных компаниях?
Есть список сайтов с такими технологиями?
Работал только с рельсами и чистым js/jQuery, потому и не знаю
Да, там же даже ссылки на статьи есть по поводу увеличения производительности.
Кроме того, не обязательно юзать подобную штуку. Реакту все равно на чем написан бекенд, ты просто получаешь JSON'ы. На беке ты можешь юзать что угодно, в том числе Rails в API режиме.
Благодарю за ответ.
Я знаю, но мне лень было формулу перерисовывать.
Всё является объектом
Очень гибкий сам язык
Система итераторов
Блоки и конструкции
Концепция смешанных модулей
Хороший API для вызова Ruby из C
Независимые от операционной системы потоки
Ясность, простота и логичность
Синтаксис красивый
Все является high order function
Очень гибкий и scalable language
Система паттерн матчинга
Структуры, модули и дифы
Концепция акторов
Хороший API для вызова эликсира из эрланга
Независимые от операционной системы акторы, которых можно >1kk плодить
Ясность и функциональность
Синтаксис красивый
Добавлю еще
Большая и разнообразная экосистема гемов
Удобное и сильное метапрограммирование (сюда же возможность делать крутые DSL)
Хорош как для быстрых скриптов, так и для больших проектов
Rails (один из лучших веб-фреймворков)
мимо-рубист
Добавлю тоже
Большая и разнообразная экосистема hex
Удобное и сильное метапрограммирование + продакшен функциональщина
Хорош для больших проектов
Феникс - второй из лучших веб фреймов
А теперь, я тебя опровергну:
Скрипты никто не пишет, а если и пишут - то только рубисты
И DSL почти никто не делает.
Шизик, ты в порядке?
Задал вопрос - я на него ответил.
Кто тебя просил печатать остальной текст?
Какой текст? Ты проецируешь на меня эликсирогосподина?
На деле у Эликсира маленькое комьюнити и он довольно сложен для простых проектов, нет смысла его юзать.
там херовая многопоточность
Не было смысла юзать до 19 года, он уже как 5 лет развивается.
И я не говорю бежим все и подключаем в продакшен. Это только микросервисы.
Я считаю его самым лучшим, но у всех свои мнения. По факту язык в 90% случаев не имеет значения. Имеют значени программисты, архитектура и умение делать продукт.
Я лучше возьму даунов питонистов, которые склепают все.
а еще лучше пхпешников
>Все является high order function
Не является.
>Система паттерн матчинга
Без компилятора это просто сахар.
>Структуры, модули и дифы
Колбаса, залупа, сыр.
>>463887
>Большая и разнообразная экосистема hex
>Большая
Проиграл.
>Удобное и сильное метапрограммирование
Макросы это не совсем метапрограммирование. Настоящего метапрограммирования в рантайме в эликсире нету.
Обычный корпоративный чат(канал).
магия
Правда.
- У Руби специфичная ООП модель (все является объектом, нет примитивов)
- При этом есть элементы функционального программирования, которые постоянно используюся (блоки)
- Специфичный Ruby-way (в Руби есть цикл for, но мы всегда используем перебор методом each)
- Очень высокая гибкость языка, метапрограммирование, duck typing
Ну и изучая руби ты с 90% вероятностью хочешь в Рельсы, а это отдельный разговор.
а теперь объясни,зачем рельсы,если есть джанга?
Под капотом Int (Number) всё же примитив (для производительности), но там нахакано так, что он выглядит как объект.
Ну неважно что там под капотом, по факту ты обращаешься с числами как с объектами.
Я думаю этой штукой околотырпрайзные пользуются из-за интеграции с джавой.
>популярность
Нахуй бы она всралась. Чтобы толпы скама прискакали засирать все своими библиотеками из говна собранными. Я когда учил жиес заебался просматривать код библиотек. Какой-то пентюх услышал что Вью КРУТА, а Жиквери немодна и побежал в нем кодить, но из-за тупости или лени вхуячивает в свою библиатеку джиквери блять. А толпа таких же слепых уебанов еще популярность ей накручивают. Потом заебываешься смотреть исходники библиотек, чтобы очередной МОДНА-алень не наподключал туда все что под руку попалось. Боль блять, какая боль от этих пидарасов с их хайпом и непролазной тупостью. Надеюсь рельсы больше не станут популярными, чтобы этого говна еще и в гемах не лицезреть.
JRuby даже у простого MRI без jemalloc сосет, лол.
Двачую адевата. В какой-то мере устоявшаяся и крепкая экосистема это плюс для Руби и Рельс. А не так что ты отправляешь код в продакшн, а там оказывается фишинговые npm пакеты.
Шизик, ты?
Потому что это отдельный пласт различных знаний, которые придется учить. Пикрелейтед.
Очередной бесплатный руби-митап в Москве. Редкая возможность увидеть тех коллег по прошлым проектам, кто ещё не релокейтнулся.
https://railsclub.timepad.ru/event/1050182/
Я даже рельсы запустил, но с такими плясками что лучше бы я этого не делал.
Сразу скажу:
1. При попытке открыть страницу (даже "You're on rails!") выдаёт ошибку sqlite3, надо поменять в Gemfile строчку
gem 'sqlite3'
на
gem 'sqlite3', git: "https://github.com/sparklemotion/sqlite3-ruby"
2. "You're on rails!" отображаются, а свои страницы — хуй? Добавить в Gemfile строчку
gem 'coffee-script-source', '1.8.0'
Лучше всё-таки не трогать это говно под виндой, имхо
Знания подтянуть, да и ради интереса?
На гите активность поднять.
Rails 6.0
Может быть в стеке с ReactJs?
Обсудим идею, реализацию и прочее.
Нужно же как-то развиваться. В одиночку руки не доходят.
я подожду до руби 3
Лол как раз таки наоборот. Руби это про скорость разработки (скорость = стоимость). На руби можно быстро сделать апи, накатить react native и пульнуть апку в апстор для проверки гипотезы стартапа и все за время, которое твой коллега на пхп симфони настроил бы окружение и роутинг и подключил базу данных, лол. Утрирую конечно но суть ты уловил.
А вот для жирных хайлоадных энтерпрайзов рубец может оказаться мало и тут скорость разработки уже может начинать проседать когда юзер кейсы и бизнес логика будет выходит за пределы твоих 25 любимых джемов
Я и написал, что на Руби проще, ало.
тг @RonOks
На малых проектах разницы нет на чем писать
Есть модель User и модель RoleUsers. Связаны has_many/belongs_to.
В RoleUsers есть поле site_id.
Мне нужно найти всех юзеров, у которых в таблице roles_users поле site_id равно 20.
Что я пробовал:
User.joins(:roles_users).where(site_id: 20)
Но мне выдает записи из таблицы roles_users, а мне нужно, чтобы выдавало пользователей из таблицы users.
вопрос-разумно ли будет использовать ралис для СПА приложения на 5 страниц?как у вас с работой с БД?авторизацией?
#youtube вчерашний Ruby Meetup 10
https://www.youtube.com/watch?v=6DKrPdK64H4
Конкурсы были интересные, еда вкусная, доклады средненькие на самом деле (потому что весь движ будет на Ruby Russia, само собой)
Вообще там на канале ещё есть более-менее интересные видео:
https://www.youtube.com/channel/UC3EZrnKAVBw9_N9FjSPni3w/videos
https://github.com/jbox-web/ajax-datatables-rails/blob/master/doc/webpack.md
пытаюсь подключить DataTables, ошибка - Error: Cannot find module 'datatables.net-bs', в папке node_modules datatables.net-bs присутствует.
опытным путем выяснил, что проблема в точке между datatables и net-bs, ни один модуль с точкой в имени папки не загружается, даже не смог ничего нагуглить на эту тему.
Ну вот тут он те js перекидывает в другую папку.
https://medium.com/michelada-io/from-the-asset-pipeline-to-webpack-ce5a4bc323a9
The next step in this migration will be to move all your Javascript files from app/assets/javascripts to app/javascript/application/javascripts.
Все хорошо.
Бд подключаются, хранят данные и даже разрешают их иногда доставать и обновлять. Авторизация также присутствует, что безусловно плюс.
И работы ЕЩЕ меньше
User.joins(:roles_users).where(roles_users: { site_id: 20 })
Есть. Есть RubyGarage у нас, но там толковые нужны. Ну и общие вакансии, например, тут: https://jobs.dou.ua/vacancies/?search=Ruby
На джуна только 2 вакансии: https://jobs.dou.ua/vacancies/?city=Kyiv&search=Ruby&exp=0-1
Да ты не то чтобы обосрался, просто глупо искать работу только в Киеве, ищи удаленку или перекат.
Меняю гем gem 'rails', '6.0.0'
Делаю bundle update
В config/application.rb прописал config.load_defaults 6.0
Поставил там же config.autoloader = :classic, так как на Zeitwerk все ломается с моими константами.
Что дальше делать? Сервер запускается, отображаются 6 рельсы. Но разве это все?
Использую MailGun, очереди в sidekiq.
Очередь появляется, но дальше никуда не идет.
бля, час назад выкатил в прод рейлс 6, и оказывается тоже не работает почта, буду разбираться завтра.
Потому что в 6 рельсах новый переписанный ActionMailbox. Очевидно что не нужно 1 кнопкой апгрейдиться если у тебя изменения в мейлере.
https://dev.to/realtoughcandy/is-ruby-worth-learning-in-2019-38ao
у меня тоже всё заработало, косячнул немного с конфигом.
Услышал тебя, тогда посмотри Go lang, там асинхронность отличная, рутина сплошная
Один хрен. В руби тоже вон завезли.
Не пробовал использовать с девайсом, но с sorcery все работает а девайс все равно параша и не нужен.
concurrent-ruby еще забыл.
Шизик, ты?
В test_helper прописать?
class ActiveSupport::TestCase
parallelize(workers: 2)
end
Больше ничего не требуется?
с винды вообще ничего не получается сделать, вебпак ругается на какие-то симлинки из node_modules в проброшенной папке.
Вакансии постоянно выскакивают. У нас в Таллине, например рубистов не хватает.
Для нашего клиента - онлайн платформы, ориентированной на ставки на спорт, ищем Ruby+Vue разработчика, который присоединится к команде в Таллине. Вам будет предоставлена большая свобода в выборе инструментов и подходов для создания инновационных продуктов. Кроме того, вы будете работать в паре с опытными наставниками.
Текущий стек: Ruby on Rails, Vue, React.
Требования: опыт работы с Ruby (3+ года), Vue или React, fluent in English, хорошие коммуникативные навыки.
Помимо шанса стать частью амбициозной команды, компания предоставляет возможность профессионально расти, помогает с релокацией, а также сейчас разрабатывает пакет дополнительных бонусов для сотрудников компании, который станет доступен в скором времени.
Зарплата: 3 250 - 4 500 EUR gross.
Работа в офисе, Эстония, г. Таллин.
Релокационный пакет.
За подробностями сюда:
@NinaShcherbakova
Нихуя, у меня, например, готовятся к запуску 2 проекта на рельсах: один - интернет-магазин для крупной региональной компании, в которой я ранее работал манагером,
второй - стартап для партнера со своим юрлицом в штатах и счетом на кипре. На рельсах что-то вроде цмс + апи для аппа на яблофоны.
Оба планируются к запуску в октябре.
Нет работы? Создай ее себе сам.
> На рельсах что-то вроде цмс + апи для аппа на яблофоны.
что то уровнем пхп лендинга?дааа,серьезный проэкт
Не, веб для создания контента авторами, апп для потребителей оного.
repl самый норм
я делаю экспорт foreman export systemd /etc/systemd/system
--port=3000
--user=rails
--app=my-app
systemctl enable my-app-web-1.service
systemctl start my-app-web-1.service
всё работает, но после перезагрузки системы сервис выключен.
вроде же после systemctl enable он должен сам стартовать?
Посмотри логи через journalctl - journalctl -b -u my-app-web-1.service.service. Сходу предположу, что в зависимостях не прописан, например, постгрес, приложение пытается стартануть раньше постгреса и падает.
Один раз .service, ну ты понял.
никаких
Больше элегантности и выразительности, Рельсы > Джанго/Ларавель, лучше комьюнити.
Одно совсем простое
Одно на то, чтобы удалить все лишние интервалы (которые покрыты другими интервалами).
Важно знать, что там не самые последние руби и поэтому что-то уровня (0..2).cover?(1..2) не сработает
https://blog.bigbinary.com/2018/10/24/ruby-2-6-range-cover-now-accepts-range-object.html
какая-то хуита для школьников-олимпиадников, к работе не имеющая отношения, в пизду.
Есть одна браузерная игра, которую я хочу автоматизировать простенький бот для автоматизации некоторых рутинных процессов, суть проблемы в авторизации - как лучше ее реализовать, какие гемы юзать, в какую сторону копать? Заранее благодарю
В таком духе
class CreatePomoika < ActiveRecord::Migration[6.0]
def change
create_table :pomoika do |t|
t.timestamps, null: false
t.string :name, null: false
t.enum?
.....
end
end
end
Плюсую.
Тогда думаю лучше в сторону "selenium-webdriver"
>Посмотри логи через journalctl
-- No entries --
судя по всему после ребута systemd даже не пытается запустить сервис.
разобрался, foreman по какой-то причине генерирует app.target файл с пустой секцией [Unit] и без [Install], соответственно, никаких действий не предпринимает. Непонятно пока почему он это делает, остальные юниты в порядке.
Ну и как, нашли кого-нибудь здесь?
Чего разные? И то и то бек. Засрали ергалнг ебищным руби синтаксисом запилили еликсир рубисты и некоторые туда перекатываются понемногу.
Ну лично я уже полгода перевожу свой единственный живой руби(рельсо)-проект на эликсир, подозреваю что все остальные тоже так делают.
ну автоматизация браузерки подразумевает парсинг (как правило)
https://moikrug.ru/vacancies/1000053611
Тебя это тоже касается, эликсирошизик!
https://moikrug.ru/vacancies/1000053620
Ну так компания топовая, жуликов туда не берут.
Из того что отметил для себя - нет валидаций из коробки. Приходится вхреначивать js скрипт и вешать на file_field.
На проде перестала обновляться schema.rb при миграции.
Новая таблица в базе появилась, но схема осталась прежней.
В чем проблема?
Прод на Heroku.
Столкнулся с явными проблемами понимания ООП в руби, может кто подсказать хороший материал для разъяснения по типу закаса для JS. Спасибо!
Eloquent Ruby, например
http://gen.lib.rus.ec/search.php?req=eloquent+ruby&lg_topic=libgen&open=0&view=simple&res=25&phrase=1&column=def
epub там битый какой-то
Резюме у меня нет, как его вообще писать? Может советы какие-то дадите? О чем в нем писать, о чем не писать? Ни разу не был на классическом собеседовании, устраивался по приглашению, софтскилл нулевой, соответственно.
1,5 калеки?
>28/09/19 Суб 21:31:43
>рубисты на месте?
Все рубисты в это время были на АФТЕПАТИ RUBY RUSSIA в Москве в Paulaner Brauhaus: пили пиво и фотографировались с Юкихиро Мацумото создатель языка программирования Ruby
https://twitter.com/search?f=tweets&vertical=default&q=#rubyrussia&src=unkn
Потому что вчера была главная руби конференция в России: Ruby Russia
https://rubyrussia.club/
шо там про JIT сказали?
Эх, иногда жалею что я не социоблядок.
Хуита какая-то, прямо сейчас обычным помидором в ДС получаю больше, чем самая правая точка на графике - 300к нет не в секунду. Насколько мне известно другие помидоры в конторе тоже все от 250к получают.
но оно так и есть
Безопасники много получают, рлы?
users = User.where.not("? < current_sign_in_at AND location = NULL", Date.today - 30.days)
в виде символов?
Например:
users = User.where.not(..., location: nil)
Не рельсы, внезапно. Руби, SQL, пишу скрипты которые из бд дергают.
В целом в ДС вполне реально, за остальную часть страны не скажу. Но заметно тяжелее, чем сеньором или хотя бы мидлом, в мою контору, например, мы джунов не набираем.
Подходят, но только если Реакт на фронте, бэк Рейлс.
>>451671 (OP)
Ну что котаны, ждете 25 декабря?
в жс треде сказали,что рельсы для этого хуево подходят,тк следуют старой модели статики
ну хотелось удостовериться
Что за старая модель статики такая? Тебе для СПА что нужно, REST? На рельсе это без проблем вообще.
На счет SSR для реакта я хз что там
Очень смешно, когда у жиес только недавно типизация появилась в форме тс, как был говном, так и остался
регистрация и доступ к БД
А я вернулся. Полет нормальный.
не,я к эликсиро-шизику не имею отношения,просто поддался его влиянию
Только пожалуйста, не надо рассказывать про мифическую зрелость экосистемы и относительно большое комьюнити. Все топовые гемы мейнтенят два с половиной человека.
Код писать приятно. Руби достаточно быстр и будет ещё быстрее. Рельсы действительно зрелый фреймворк, и его поддержка хороша.
Всё стабильно.
В коммьюнити нет петухов и дебичей.
Работы, конечно, не как говна для фронтопидорков, но вполне достаточно. При желании можно найти свежих стартапов и вкатиться прям на старте.
Хуй знает, котик. Я вот хорошо знаю все возможности руби. Когда пишу код, он пишется просто чудесно, радует глаз. Лаконичность и элегантность. Пишу и на рельсах, но последнее время по большей части API на Grape. Мы не пишем безумные простыни кода в моделях и контроллерах, в любом проекте заводится слой сервисов\операций\компонентов в духе domain driven design. Мы пишем свои DSL, если это уместно. Код покрывается тестами на rspec. Это хорошие кодбазы, работать с которыми можно с комфортом даже в проектах возрастом в несколько лет. Мне повезло, у меня отличные напарники, которые в целом очень компетентны в IT, и им так же нравится писать руби-код, как и мне.
Когда я пишу на джаваскрипте реактопарашу, чувствую себя, будто мне отрезали одну руку и одновременно с этим заставили сожрать земли.
На питоне код пишется чуть получше, чем на жс, но часто далеко не так элегантно, как на руби. Динамичности тоже не хватает.
Ещё в прошлом я довольно много кода пописал на пхп, нынче от взгляда на пхп начинают кровоточить глаза.
Уверен, что в ближайшие 5-10-20 лет руби никуда не денется. Да, это не мейнстрим. Но на мой век работы хватит.
>Руби достаточно быстр и будет ещё быстрее.
скорость которого нивелируется монстром под именем RoR
>скорость которого нивелируется монстром под именем RoR
это специфика ORM - ActiveRecord, сам паттерн такой, подразумевает удобство в ущерб производительности, но даже на нем можно сделать всё быстро, если разобраться с конструктором запросов.
Асинк эвейт? Или что?
Подскажите по рельсам, если я добавлю file.txt в папку public и залью на продакшн, он будет доступен по ссылке example.com/file.txt?
зависит от настроек вебсервера, в nginx за это отвечает блок location, но скорее всего файл будет доступен.
ARGV
Открыл первое занятие, увидел шиндовс, закрыл первое занятие.
Лушче пройди курс на codecademy, затем учи новые методы решая задачки на codewars. Дальше осиливаешь QA для руби-джунов. Для начала прочти эти основы https://github.com/undr/ruby-trivia
И первый багаж знаний рубиста у тебя будет.
Он там параллельно и на шинде учит и на маке. Просто, как я понял, сначала эти записи были платные, и группа учеников в большинстве своём была на шинде.
Все равно лучше не стоит тратить время на видеокурсы.
С видосами ты поймешь все быстрее, но не сможешь применить эти знания для другой задачи. Ты будешь знать только как решить именно ту задачу, которая была в видеокурсе.
Другое дело понять основу и идти на какой-нибудь codewars. Сначала будет трудно что-либо решить, так ты станешь искать методы/алгоритмы в документациях рубей и знания будут глубже.
>>491684
Руби, а особенно рельсы или другие фреймворки, пошлют тебя в пизду при написании более-менее нормального проекта на шинде.
Да, можно все чинить, заняться пердолингом, но зачем?
Самый нормальный вариант с виндой - это установить wsl.
Послушай знающего и решай задачи на руби, так у тебя появится мышление именно программное, осиль убунту, шинда это ни разу не про разработку на руби
>>491736
> Все равно лучше не стоит тратить время на видеокурсы.
> С видосами ты поймешь все быстрее, но не сможешь применить эти знания для другой задачи. Ты будешь знать только как решить именно ту задачу, которая была в видеокурсе.
> Другое дело понять основу и идти на какой-нибудь codewars. Сначала будет трудно что-либо решить, так ты станешь искать методы/алгоритмы в документациях рубей и знания будут глубже.
> Руби, а особенно рельсы или другие фреймворки, пошлют тебя в пизду при написании более-менее нормального проекта на шинде.
> Да, можно все чинить, заняться пердолингом, но зачем?
> Самый нормальный вариант с виндой - это установить wsl.
На русском мне понравился курс от thinknetica, правда достать его сложно, тут скидывали как-то.
https://dev.to/adamlombard/ruby-class-methods-vs-instance-methods-4aje ленивопервоссылкаизгугла
Это херня,а не ответ.это я уже видел и ещё пару десятков страниц.но так и не понял суть-зачем оно?
Сперва стоит выяснить, понятно ли тебе отличие класса от объекта. Если понял в чем их отличие, то метод класса вызывается на всём классе, а метод объекта только на отдельно взятом объекте класса
ты бы хоть гуглил терминологию, прежде чем срать в тред.
Инстанс имеет ссылку в памяти а объект может и не иметь, так что экземпляр это скорее ссылка в памяти!
https://alfredjava.wordpress.com/2008/07/08/class-vs-object-vs-instance/
Я думаю тот хорошо объяснена разница. Простите за дотошность.
Запускаешь сайдкик и все будет хорошо!
Перепиши его стандартным has secure password будет меньше говнокода!
Девайс по сути это просто куча вьюшек автосгенерированных.
Плюсую. Такая срань, если покопаться.
https://evilmartians.com/chronicles/anycable-actioncable-on-steroids
он скорее зомби
Я вроде тебе ответил выше, про разницу между объектом, инстансом и классом!
Гляну на днях и черкану что думаю по возможности! Звучит интересно, спасибо за статейку. Однако в целом ActionCable это просто обертка на руби для вебсокетов, так что не очень понятно как они смогли седлать обертку другого вида фундатментально быстрее без изменения языка самой обертки!
Они перенесли работу с сокетами в отдельный сервис (+ другой сервис), написанный на Go, таким образом, что рельсовое приложение продолжает быть stateless.
Ну может тогда оно и работает, все равно нужно понять как оно себя будет вести при большой нагрузке
Теперь внимание вопрос, переломился ли тред с потерей популярности и просто слились хайпующие? Или просто те кто писали на рельсах уходят от них?
> Теперь внимание вопрос, переломился ли тред с потерей популярности
Рельсы продолжает терять популярность в первую очередь из-за JS экосистемы.
> Или просто те кто писали на рельсах уходят от них?
Тот изначальный костяк сейчас пишет на Go/Rust или даже Scala.
Вообще к чему этот вопрос? Думаешь учить или не учить или что?
Думаю стоит ли укатываться с рельс куда-то или нет. Учить или не учить уже не выбор)
ЗЫ про скалу тоже говорят что она приказала долго жить, хайп про го не понимаю - очень простой язык.
> Думаю стоит ли укатываться с рельс куда-то или нет. Учить или не учить уже не выбор)
Делай то что тебе нравится. ЗП примерно одна и та же везде.
> ЗЫ про скалу тоже говорят что она приказала долго жить, хайп про го не понимаю - очень простой язык.
Могу сказать, что в долине она живее всех живых (пока).
Потопали на декомпрешен) ну
Тоже стартапчик. Может спишемся, я тут не знаю рубистов, особенно русских.
> Может спишемся, я тут не знаю рубистов, особенно русских.
Пиши на
> Далеко от сансета живешь?
На твин пиксе я
В платных местах обижаешь) написал, черкани сообщение
удваиваю этого
Удвою на счет зарплаты и работы. Сбер что-то там запускает и их херки прямо завалили меня приглашениями, да и в целом предложений больше, чем в прошлом году. Зарплатки то же прямо заметно выросли, ~300к в ДС стало сеньору найти достаточно просто.
да.уходят в элик
Представил это телок целые отделы как из клипа текила джаз
Ктонибудь умеет в ассоциацию пихать параметр?
Судя по интернетам ассоциации должны быть инстансонезависимы и единственная возможность - extends module, но что-то сделать это вместе с другими штуками и скопами у меня не получилось
Приведи пример, что ты хочешь. Скорее всего ты можешь обойтись методом класса, который реляцию будет возвращать.
Конкретный пример
Есть Comment, has_many :child_comment class Coment, каждый коммент может иметь лайк от юзера в CommentInteraction.
ДЛя Comment есть scope :with_user_like, ->(user_id) { joins('INNER JOIN comments_interaction AS ci ON ci.comment_id = comments.id AND ci.user_id = #{user_id}' #Ну на самом деле placeholder но вы поняли) }
ТАк вот я хочу подгрузить комментарии к комментарию с помощь ::Comment.includes(:child_comments) так, чтобы в child_comments был посчитан лайк юзера
Насколько глубоко ты хочешь считать лайки? Что если есть коммент к комменту к комменту к комменту и зайлайкан самый нижний комментарий. Это должно считаться?
Да, ко всем вложенным. Структура базы такова, что каждый вложенный коммент имеет ссылку на корень дерева - parent_id и именно по нему дергаются child_comments (foreign_key: parent_id). Опустим ситуацию с комментами других уровней, т.е. хотим взять коллекцию комментов верхнего уровня, к ним предзагрузить вложенные комментарии (includes) так, чтобы лайки были посчитаны. Там еще считаются количество лайков, это тоже делается с помощью скоупа и делается нормально, ТК никакой переменной не нужно пробрасывать. А вот как посчитать относительно юзера непонятно
Я бы посоветовал поменять структуру базы данных на nested set и использовать, например, https://github.com/collectiveidea/awesome_nested_set
Тогда твоя задача становится тривиальной. (если я всё правильно понимаю)
Да ты прав, но это не вариант, к сожалению. Не дадут сейчас делать такой рефакторинг. Из-за блядской структуры даже пагинации полноценной нет. Лайки в итоге пришлось взять отдельно все юзерские и проверить по собранной коллекции includes? и ручками ставить статус.
И вообще говоря
> ::Comment.with_user_like.includes(:child_comments).where(#некий критерий)
должно работать и так. У тебя "некий критерий" не получается сделать?
С критерием все ок, проблема вот в чем: скоуп, я не дописал, принимае параметр (user_id). И этот скоуп применяется только к самим элементам коллекции, но не к их ассоциациями (child_comments). Чтобы применялся скоуп к ассоциации надо в has_many указать -> { skope_name }, в частности -> { with_user_like }. Однако сделать has_many ->(user_id) { with_user_like(user_id) } не выходит
Тяжело с разметкой. Будь ты проклят, Абу.
Вторым аргументом к has_many не прокатывает скоуп передать?
has_many :child_comments, -> (parent_comment) { where(хуйнаны, parent_comment.id) }
Прокатывает, но только инстанс независимый скоуп, те без параметра, lambda {}, а не lambda { |user_id| }
Да.
# Получение всех вложенных комментариев комментария с посчитанными количеством лайков и пролайкал ли юхер.
SELECT c., COUNT() AS likes_count, (CASE WHEN ci2.id NOT NULL THEN TRUE ELSE FALSE) as user_like FROM comments AS c LEFT JOIN comments_interaction AS ci ON ci.comment_id = c.id LEFT JOIN comments_interaction AS ci2 ON ci2.comment_id = c.id AND ci.user_id = :user_id GROUP BY c.id WHERE c.parent_id = :parent_id.
:parent_id, :user_id - параметры. parent_id может быть несколько, тогда будет IN (), вместо = но суть надеюсь понятна.
PS возможно ещё GROUP BY ci2.id, с телефона пишу уже в кровати, не могу посмотреть
Ты 2 раза сджойнил одну и ту же таблицу по одинаковым условиям. Это ошибка?
Правильно ли я понимаю, что ты хочешь получить список всех дочерних комменариев по заданному списку родительских комментариев и к нему:
- общее кол-во лайков от заданного пользователя;
- флаг — залайкал ли пользователь данный комментарий;
> Ты 2 раза сджойнил одну и ту же таблицу по одинаковым условиям. Это ошибка?
По разным условиям. Первое - посчитать все лайки всех пользователей (likes_count), второе - поставил ли лайк конкретный пользователь).
> Правильно ли я понимаю
Да, за исключением того, что подсчёт общего количества лайков ВСЕХ пользователей.
> COUNT() AS likes_count... LEFT JOIN comments_interaction AS ci ON ci.comment_id = c.id... GROUP BY c.id
Посчитай сумму лайков всех пользователей
> (CASE WHEN ci2.id NOT NULL THEN TRUE ELSE FALSE) as user_like... LEFT JOIN comments_interaction AS ci2 ON ci2.comment_id = c.id AND ci.user_id = :user_id
Флаг поставил ли лайк конкретный юзер
Мне кажется ты можешь обойтись без child_comments
> Comment.where(parent_id: 42).joins(:comments_interaction).where("comments_interactions.user_id = ?", user_id)
Мне помимо child_comments нужны еще и их родители, те, чей parent_id они принимают в > Comment.where(parent_id: 42)
Понимаешь?
Давай поясню. На самом деле я беру комментарии от ПОСТА и вместе с ними все ВЛОЖЕННЫЕ комментарии и запрос выглядит так
> @result ||= ::Api::Comment
.with_likes_count
.with_person
.with_post_mobile
.where(post_id: @id, reply_to: nil)
.ordered
.includes(:child_comments)
.page(@page)
.per(@per)
Код ассоциации :child_comments
> has_many :child_comments, -> { with_person.with_likes_count.where.not(reply_to: nil) },
class_name: '::Api::Comment',
foreign_key: 'parent_id',
inverse_of: :parent_comment
Чтобы лучше понять задачу, давай я тебе скажу что ждет клиенский код этого сервиса.
Клиенсткий код ждем ассоциацию @comments чтобы сделать что-то типо того:
@comments.each do |comment|
render partial comment
comment.child_comments.each do |child_comment|
render partial child_comment
# У детей уже нет детей
end
end
Да, именно так, только я сделал подсчёт через join, но это абсолютно не важно, ты правильно сделал. И вот теперь надо также посчитать поставил ли лайк конкретный пользователь на комментарий и на child_comments
Что за привычка при демонстрации примера писать ты хуй? уже не в первый раз замечаю такую хуйню, одни хуи, пидоры блядь ебаные
Это олдфажный мем. Ты хуй, твоя мать шлюха, а отец - членодевка.
Сделай бочку (^_^)
Нужно подкрутить Mailer. Но до этого пользовался хостингом Heroku, там просто аддон SendGrid ставил.
А как настраивать Mailer на VPS?
smtp устанавливать на свой сервер? Какие доп конфигурации нужно будет провести?
>smtp устанавливать на свой сервер? Какие доп конфигурации нужно будет провести?
Да, либо воспользоваться сторонним сервисом (Gmail или что угодно) и вбить в настройки Mailer соответствующие адреса/логины/пароли.
Я просто прикрутил яндексовскую почту для домена.
http://rusrails.ru/action-mailer-basics - все достаточно нормально разжевано.
background-image: image-set(url('~images/image_1х.png') 1x, url('~images/image_2х.png') 2х);
тильда специально для того, чтоб искал еще в app/assets
И пиздец, без этой строки всё билдится но в паре мест, где используется тот самый миксин, картинки по пизде пошли, с этой строкой говорит, мол, Maximum call stack size exceeded и предлагает добавить еще каких-то лоадеров, помимо тех, что идут из под коробки с вебпакером. У меня и так, помимо дефолтных лоадеров, добавлен resolve-url-loader, но этот миксин ебучий просто всё пересрал.
Может кто сталкивался? А то так и пиздануться можно. Гугл по делу мало что говорит, там не такие же кейсы
Ты резолвинг ~images правильно настроил в вебпаке-то?
Вообще в лучших домах сейчас юзают postcss, чтобы как обезьяна не писать эти ымаджсеты для ретины.
Да, в webpack.yml просто указал resolved_paths: ['app/assets'] и получилось доставать.
>в лучших домах сейчас юзают postcss
То есть правильного конфига постцсс достаточно, чтоб вообще выкинуть тот миксин с image-set?
Попробуй без тильды тогда.
> То есть правильного конфига постцсс достаточно, чтоб вообще выкинуть тот миксин с image-set?
Если сможешь правильно настроить, то сможешь автоматизировать в том числе и image-set.
Как пример:
https://github.com/simonsmith/postcss-at2x
Это копия, сохраненная 23 октября 2019 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.