Этого треда уже нет.
Это копия, сохраненная 31 июля 2016 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
47 Кб, 446x512
133 Кб, 1920x1080
97 Кб, 791x1024
Ruby Thread автоперекат !!fuyn/Mm0/k #766884 В конец треда | Веб
Предыдущий: http://arhivach.org/thread/172655/

Принимаются изменения в шапку треда в виде пулл-реквестов:
https://github.com/meoweg/2ch-pr-ruby

Как показывать код:
Быстро - https://pastebin.com
С исполнением - https://ideone.com
Требуется аккаунт GitHub - https://gist.github.com

FAQ:

1. C чего мне начать, чтобы стать рубистом?
Отличным началом будет Programming Ruby (The Pragmatic Programmers Guide), читать Eloquent Ruby и The Well Grounded Rubyist после прочтения первой толку особо не даст, одни и теже вещи, дальше читаем Ruby Way, затем познаем метапрограммирование с Metaprogramming Ruby. А дальше открываем Ruby cookbook 2015 года, Пишем свой код во время чтения.

Следующий уровень, продвинутые книги по руби:
Confident Ruby by Avdi Grimm
Practical Object-Oriented Design in Ruby
Refactoring Ruby Edition
Ruby Under a Microscope для любителей залезть под капот.
Документация по стандартным библиотекам http://ruby-doc.org/
Можно пройти руби онлайн - http://tryruby.org/levels/1/challenges/0
И ещё раз онлайн: http://www.codewars.com/?language=ruby
Не веришь в свои силы? Прочитал уже книжек много и силы свои хочешь познать, сделай - http://rubykoans.com
И вот еще https://rubymonk.com/ - Матц одобряет.

2. Какой gem посмотреть, чтобы понять, как писать код?
Лучше всего посмотреть небольшие gem'ы вроде cancancan, pundit, camping.
А еще можешь полистать на гитхабе гемы с нарастающей популярностю.
https://github.com/trending?l=ruby
Там еще нет тысяч строк, и тебе будет легче понять.

3. Есть ли GUI для руби?
Да. Есть обвязки к Qt, GTK, wxWidgets, Shoes, fxruby (одобренный).

4. Можно ли писать на руби мобильное ПО?
Да. Для iOS есть RubyMotion терпимого качества, для Android - лагающий и падающий, но всеми силами развивающийся ruboto. Для WinPhone до сих пор ничего не завезли.

5. Как установить разные версии рубей?
Легко и просто: https://github.com/sstephenson/rbenv
И это тоже, легко и просто: https://rvm.io

6. Что почитать по рельсам?
http://guides.rubyonrails.org
http://ruby.railstutorial.org
API: http://api.rubyonrails.org
Прекрасные туториалы в стиле for dummies - http://www.theodinproject.com/ruby-on-rails , а вот тут все тоже, но на русском http://codenamecrud.ru/
Классический вводный туториал, где делается с нуля клон твиттера, для новичков в rails самое то - https://www.railstutorial.org/book
Для дотошных читателей есть The Rails 4 Way.

7. Хорошие практики по руби и рельсам?
Читаем Rails AntiPatterns, смотрим Rails Best Practices, также неплохо посмотреть Rails Recipes.
Почитайте еще Grimm A. - Objects on Rails
Еще продвинутое чтиво - http://tutorials.jumpstartlab.com/

8. Ruby/Rails блоги, рассылки и твитторы
IRC каналы на FreeNode: #ruby, #ruby-core, #RubyOnRails, #rails (не очень активен).
Твитторы @rails, @dhh, @yukihiro_matz, @wycats, @tenderlove
Рассылки ruby-core, rails-core, rails-talk
Подкасты:
- http://rubyrogues.com
- http://ruby5.envylabs.com
Скринкасты:
- http://railscasts.com
- https://peepcode.com
- https://www.destroyallsoftware.com
- http://railsforzombies.com
Блоги:
- rubyflow.com - каждый день новости, новые библиотеки, обновления, все дела.
- rubysource.com - читаем интервью, хорошие практики, и безумные сравнения упоротого дибила-индуса на самом деле их пропускаем
- rubyinside.com - новости, туториалы.
- rubyweekly.com
- http://37signals.com/svn
- http://yehudakatz.com
- http://afreshcup.com

9. Я не могу в английский, что делать, анон?
Идти учить английский, без него тут делать нечего.

10. Есть ли у руби русское коммьюнити?
Нет. Вернее есть, но оно протухло и там полно людей у которых чсв высоко.
Яркий пример - rubzdDyANUSjabbe~V3rPUNCTUM*n5ru
А еще есть русская слак конфа - https://russiandevs.slack.com она общая, но есть очень активный руби канал.
Так же русская гугл группа, активная - https://groups.google.com/forum/#!forum/ror2ru
Еще вот - https://onrails.club/

11. Какие гемы стоит знать?
capybara, rack, rspec, devise, cancancan, simple_form, solr, sinatra, тысячи их.
Поиск гемов https://www.ruby-toolbox.com

12. Зачем нужны тесты и как их писать?
http://rusrails.ru/a-guide-to-testing-rails-applications
http://habrahabr.ru/post/163597/
Вместо этого можно прочитать классную книгу Everyday Rails Testing

13. Где можно задать глупые и не очень вопросы?
- здесь
- stackoverflow.com
- тематические slack-конфы
- а вообще, гугли, с вероятностью в 90% ответ на твой вопрос уже висит на stackoverflow.

14. Как фокнуть\сделать фичу\исправить баг, сложно ли это?
Нет, не сложно. На rubyflow появляется много новостей с реализацией новой библиотеки, вы можете сделать тесты, фичу для него, старые либы также обрастают багами, улучшайте их! пишите код.

15. В чём писать код?
Atom, Brackets, Sublime Text, TextMate, Vim, GNU Emacs. Для особо упоротых энтерпрайз-макак есть rubymine, плагины к эклипс и нетбинс.

16. Можно ли писать на руби с под windows?
Можно, но придется обрасти костылями в виде виртуальной машины, придется сходу разбираться с Vagrant и многим другим. Чем дальше ты продвигаешься, тем ближе становится ясно, что пора перекатываться на linux/mac

17. Руби язык одного фреймворка?
Есть еще Sinatra, Hanami (ранее Lotus), Volt, Grape, отличные штуки для DevOps - Chef, Puppet и годные генераторы для бложиков - Jekyll, Middleman, всё это активно используется в продакшене

18. Можно ли делать игры на Ruby?
Можно, но не нужно. Гем Gosu.

19. Ютуб каналы
Youtube driven development...
Вот тебе пара каналов, но никому не говори что учишься по видео.
https://www.youtube.com/channel/UCIQmhQxCvLHRr3Beku77tww/videos
https://www.youtube.com/channel/UCfWZwsP8trUy5uHJg8gcGIQ
https://www.youtube.com/channel/UCSI77lJlzlCFPLdV1RSAoYQ
https://www.youtube.com/channel/UCPIyDzf1vwWc8EQJGUX-vYw - тут на ру$$ком даже.

20. Как и где искать работу?
Легко и просто - http://rubyjobs.ru/
Не так просто - https://upwork.com/
Еще вконтакте есть группы по руби/рельсам, там иногда постят вакансии. Еще в русской гугл группе постят вакансии. Новичку будет сложно, но возможно.

TODO лист для ньюфагов:
И так, ты поставил руби, уже сгенерировал свой первый проект rails new pidaras
Начни уже с платинового пути, блог >> клон твиттера >> своя имейджборда >> свой гем >> дальше сам придумаешь.
Рекомендации:
1. Для блога, создать роли, Админ, Пользователь (можно использовать паттерн form object). Прикрутить лайки, комментарии.
2. По твиттеру, следуя гайду Хартла, пиши все то что он предлагает в качестве доп. заданий, например оповещение по нику (@eblan: привет)
3. По имиджборде: воссоздать по возможности полный функционал, в этом случае придется ознакомится с javascript/jquery/coffeescript, но тебе так или иначе придется. Еще хорошей фичей будет использование background job и крон тасков (sidekiq, whenever), чтобы заполнять свою борду тредами и постами с другой борды, можно использовать api двача, чтобы вытягивать треды и посты - https://github.com/ID25/api_2ch
4. Не стесняемся постить свои репозитории, наши эксперты с радостью отревьювят вас.

После этого тебе будут нужны паттерны, без них твой код превратится в говно. Один из часто используемых - Service Object.
https://netguru.co/blog/service-objects-in-rails-will-help - о сервисах
Еще паттернов - https://robots.thoughtbot.com/back-to-basics-solid

Но самый читаемый код, как и следовало ожидать, даёт функциональное программирование. Начни отсюда:
http://www.sitepoint.com/functional-programming-techniques-with-ruby-part-i/
http://www.sitepoint.com/functional-programming-techniques-with-ruby-part-ii/
http://www.sitepoint.com/functional-programming-techniques-with-ruby-part-iii/
http://www.sitepoint.com/functional-programming-pure-functions/
http://www.sitepoint.com/functional-programming-ruby-value-objects/
Только не переборщи. Руби - не функциональный язык, и иногда такой код может работать медленней.

Прочитал? Теперь рефактори то, что уже написал. И не забывай покрывать тестами.

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

Не забывайте спрашивать у анонасов вопросы, код лучше показывать через gist или pastebin с подсветочкой.
Ну, а мы открываем очередной Ruby Thread.
#2 #766891
railstutorial.ru норм для начинающих?
>>766895
#3 #766892
#4 #766895
>>766891
Я вижу в заголовке Ruby on Rails 3, т.е. перевод устаревший. лучше читай оригинал https://www.railstutorial.org/
>>766896
#5 #766896
>>766895

>railstutorial.ru


Там по четверке.
>>766897
#6 #766897
>>766896
Тогда норм наверное
>>766899
#7 #766899
>>766897
Там перевод официального руководства.
#8 #766941
Ребяты, покажите свой database.yml
http://pastebin.com/
>>766967
#9 #766942
Аноны, подумываю сменить деятельность (сейчас разработчик ХД). Не подскажете, много ли сейчас работы для ruby-погромистов?
Гуглил, смотрел, читал-довольно противоречиво. Где-то говорят, что работы дохуя, а где-то, что хайп прошел, работы нет буду менять язык ко-ко-ко.
>>766944
#10 #766944
>>766942
Работы нет. Пиздуй в JS-тред.
>>766963
#11 #766953
Аноны,я знаком с гуглом но все ще есть вопросы.
Что такое кофе скрипт и препроцессоры в css и html ?
>>766963>>766975
#12 #766963
>>766953
Тебе тоже можно сюда:
>>766944
81 Кб, 1008x661
Я смог #14 #766969
Что нужно писать в резюме на джуна?
#15 #766973
>>766969
Готов работать за еду.
>>766974
#17 #766975
>>766953

>Что такое кофе-скрипт?


CoffeeScript — скриптовый язык, транслируемый в JavaScript. CoffeeScript добавляет синтаксический сахар в духе Ruby, Python и Haskell для того, чтобы улучшить читаемость кода и уменьшить его размер. На самом деле нет.

>Что такое препроцессоры CSS?


CSS preprocessors: LESS, SASS, COMPASS, TeaCSS. Расширяют CSS всякими фичами с добавлением сахара.
>>767045
#18 #766978
>>766969
— умеешь в руби (ссылка на гит с каким нибудь ненужным гемом)
— умеешь в ror (еще одна ссылка, на ненужный проект уже на рельсе)
— умеешь в TDD тестирование
— умеешь в гемы devise, boostrap/foundation/, rpsec и прочие
— умеешь пердолится в гитхаб, знаешь как свитчится между ветками, скушить коммиты и прочее.
— умеешь в деплой на хероку
— умеешь в верстку по psd (совсем не руби, но всем насрать)

список можно продолжать до бесконечности, что хочешь то и пиши.
#19 #766980
>>766978
Да ты охуел? Всё что ты написал на сеньора тянет.
>>766982>>766986
#20 #766982
>>766980
А что по-твоему тянет на джуна? Умеет читать и писать?
>>766985
#21 #766985
>>766982
Умееть пиздеть языком.
#22 #766986
>>766980
Еще забыл работу с бд указать, хз. Умение в аяксификацию, тоже было бы неплохо.

Это так самый минимум, чтобы было о чем поговорить. Ну и никто не говорит прям все нужно знать, но понимать да. И еще уметь решать задачки с помощью указанных технологий.

А если хочешь показать, что что-то знаешь то будь готов побеседовать на тему метапрограммирования в руби, orm моделей и их реализации через active-record. Ну и в таком духе.
>>766989
#23 #766989
>>766986
А как же хуяк-хуяк и в продакшен?
>>766990>>766996
#24 #766990
>>766989
только после прохождения всех тестов в (travis) ci.
>>766995
106 Кб, 959x950
#25 #766995
>>767002
#26 #766996
>>766989
Какой тут хуяк-хуяк и в продакшн, если "джуниору" выше нужно два дня только для того чтобы пустой rails server запустить.
#27 #766998
>>766996
Москва не сразу строилась.
#28 #767000
>>766996
А вот и выебщики пожаловали.
#29 #767001
>>766996
Не надо сравнивать джуна со школотой котора вчера прочитала про высокие зарплаты и вучила синтаксис ЯП по кодскул.
Джун должен уметь работать в линуксе и командной строке, понимать базовые структуры данных и алгоритмы (сортировки, поиск).
>>781298
#30 #767002
>>766995

Ну, а че в продакшен тоже надо уметь. А то читаешь какой-нибудь стаковерфлоу. Вопрос типа в продакшене на хероку пишет иррор «сикрид кей из миссед». На что придурки отвечают, добавь свой сикред кей в проект на гитхабе и норм. А другие придурки плюсуют этот ответ, да так что он в топе.

И потом сидишь и тихо плачешь, теряя последние остатки веры в человечество.
#31 #767006
>>766996
Тащемто этот анон хорош. Умеет в линукс, не побоялся зайти на официальный irc канал и решить проблему с установкой postgres. Настроил yml, запустил приложение. Если так и дальше пойдет, то всё будет ок. Зря ты его демотивируешь.
>>767052
#32 #767045
>>766975
Спасибо,анон,а для чего это нужно?
тот же кофескрипт,это просто JS обернутый в синтаксис Ruby (типа),никаких новых фич он не несет?
и зачем все пишут в habl+less\sass ,если есть чистый css\html ,это помогает разработчику?
>>767046
#33 #767046
>>767045
Добавляются всякие улучшалки, чтоб легче было код править. Но можно и без этого обойтись, конечно же. Погугли уже, ну.
>>767047
#34 #767047
>>767046
гугл говорит ЧТО это,а не ЗАЧЕМ это.
Вот и спросил у анонов,которые это юзают
>>767048>>767049
#35 #767048
>>767047
Вики, официальные сайты смотрел?
#36 #767049
>>767719
#37 #767052
>>767006
Я, честно говоря, не понял что там у него за проблема была. Постгрес не запущен, нужно было запустить, или чо?

Уметь в линукс веб разработчику это базовый навык, как уметь в английский. Скомандовать какие-то совсем простые вещи компьютеру в терминале и уметь прочесть документацию или решение проблемы на stackoverflow.

То что анон сразу идет в irc канал со стандартной проблемой, которая (я уверен) уже описана на первых страницах гугла — вряд ли хороший показатель.

Просто я сейчас не совсем уверен, вот это >>766969 шутка или в 2016 воннаби-погромисты всерьез думают что этого достаточно для того, чтобы его взяли на любую, даже самую элементарную работу рельсоразработчика? Хоть бы railstutor прошел, кек, там дел на пару дней максимум.
>>767053>>767054
#38 #767053
>>767052

>рельсоразработчика


Хуй знает, как там у вас — у рубистов. Но на должность .Net джуна меня взяли охотно. До этого я ни разу не кодил на C#. Перед собеседованием почитал чуть-чуть Хабрахабру и установил Visual Studio.
>>767067
#39 #767054
>>767052

>Я, честно говоря, не понял что там у него за проблема была.


Нихуя не понял, но выебываешься.
>>767067
#40 #767065
Дайтие хороший разбор по ActionCable. Я нихуя не могу понять, как они его сделали, как он работает и что нужно для продакшена.
#41 #767067
>>767054
Ну так объясни, что там за охуеть проблема была, что аж в чатик нужно было идти. В том скриншоте что он прикреплял упоминаний нет. В задаче "развернуть окружение по умолчанию" в принципе не может быть каких-то необычных проблем, все уже изъезжено вдоль и поперек. Скорее всего, сказали ему что-то вроде "у тебя постгрес не запущен, запусти постгрес".

>>767053
Ну хуй знает, может я и отстал от современных тендеций, и теперь спрос на погромистов такой, что можно вообще нихуя не знать и получить работу.
>>767068
#42 #767068
>>767067

> Ну так объясни


Там что-то с зависимостями было хитровыебаное.
>>767135
#43 #767121
Там две проблемы было.

>>766405
Нужно поставить пакет postgresql-server-dev-all в Debian/Ubuntu, без него гем pg не компилируется

>>766801
Нужно поставить пакет postgresql в Debian/Ubuntu. Потом создать в БД юзера. Для этого набираем

>sudo -u postgres psql


и пишем:

>CREATE ROLE myappname WITH LOGIN CREATEDB PASSWORD 'myappname';


Потом прописываем эти данные в config/database.yml и набираем в консоли

>rake db:setup



Пиздец, парень, это всё описано в туториалах. Пишу это только потому, чтобы пресечь подобные вопросы хотя бы в этом треде.
#44 #767135
>>767068

туториалы всеравно нужно уметь читать и понимать что там пишут. Какой-нибудь Васян скачает agile web development для «профессионалов», начитается гайдов как устанавливать рельсу (sudo gem install), а потом будет трахать всем мозг, почему какой-нибудь нокогири (или другой связанный с рельсой гем) не ставится или чудно работает (спойлер: в книге ставят через судо, так не надо делать).

пока человек не научится думать, подобные проблемы будут возникать регулярно.
#45 #767183
>>767121
А я не ставлю postgresql-server-dev-all, я ставлю libpq-dev.
В чем разница хуй знает.

А по какому протоколу общаются постгрес клиент и сервер? Вопрос странный, но я просто задумался, они же по сети общаются, значит есть какой-то протокол прикладного уровня?
>>767198>>767211
#46 #767185
>>767121
Неа, не в этом была проблема.
#47 #767198
>>767183
Не понимаю, как это все работает. Какое место занимает ODBC? Я не слышал, чтобы он использовался в рельсах.
#48 #767199
>>767135

> спойлер: в книге ставят через судо, так не надо делать


Можешь пояснить? Типа они тогда ставятся для рута, а надо текущему юзеру ставить чтоб работало?
#49 #767211
>>767121
>>767183
Алсо, нигде не сказано https://bitbucket.org/ged/ruby-pg/wiki/Home что нужно поставить библиотеку libpq.
#50 #767259
>>767135
Этим и ценны сообщества потом. Дебилы не нужны.
#51 #767392
Бля, ебать я тупой, отписал не в том треде
Короче
Суп 2ч
Не знаю как тут у вас, если что не насовывайте хуев
Есть работа, горит дедлайн и я горю пиздец

Сделал в дешборде админки страницу чтобы добавлять в базу заинвайченных юзеров
Надо как-то добавить метод мейлера на экшен по сохранению этой формы в activeadmin а я не ебу как.

Думал еще создать кастомную вьюху для эктивадмина с формой и таблицей, но так и не раздуплился с синтаксисом, потому что для глориус пехопе разработчика ето пиздец.
Превентивно спс за помощь гайс
>>767404>>767413
#52 #767402
>>766978

> умеешь в верстку по psd


Сру тебе в рот.
#53 #767404
>>767392
Выкинь activeadmin и напердоль админку руками за два часа.
>>767410
110 Кб, 1366x768
103 Кб, 1366x768
#54 #767410
>>767404
Решил так и сделать, но чет нихуя не получается
Смотри, я сгенерил контроллер и модель
Но блядские обращения к контроллеру ( @invite, @invites) не работают и все оч плохо.
Даже не могу понять где обосрался.

Да, да винда, все оч плохо
#55 #767413
>>767392
Алсо, можешь ебануть after_create в модель юзера, который будет слать почту после его создания. А когда захочешь создавать юзеров без уведомления на почту, то просто обернешь в ActiveRecord::base.supress и все.
>>767444>>767499
#56 #767444
>>767413
Это меня выручило. Конечно тут надо будет переделать чтобы все-таки юзать вьюху, но ща это охуенно, спасибос.
>>767457>>767499
#57 #767457
#58 #767499
>>767413
>>767444
Вот и подъехало новое поколение говнокодеров. Спасибо дхх блеать, мы так долго этого ждали.
>>767534>>767538
#59 #767534
>>767499

> новое


> DHH


Но ведь DHH в не-японском руби комьюнити был с его появления, а подъехало новое поколение ступидентов с промытыми SOLID-парашей черепными коробками..
>>767538>>767637
#60 #767538
>>767534
>>767499
Могли бы и не обсирать, а рассказать что не так.
Я ж не необучаемый, через пару дней рефакторну, а ща мне надо показывать.
>>767540>>767642
#61 #767540
>>767538

> рефакторну


Нахуя? Что тебе не нравится в коде?
>>767541
#62 #767541
>>767540
То что я не контролирую нихуя, да и не похоже это на бест прэктис
>>767545
454 Кб, 300x380
#63 #767543
Вы почему-то делаете меня грустить в этом итт треде...
#64 #767545
>>767541
Что ты не контролируешь?
>>767547
#65 #767547
>>767545
Да пацаны на дваче сказали что я и мой код хуйня вот я и сказал что переделаю чтоб не думали что я лох, че ты)
#66 #767564
>>767135

>туториалы всеравно нужно уметь читать и понимать что там пишут.


Нужно. Но туториалы описывают общий случай и не могут учесть всё проблемы, которые могут возникнут. А они возникнут, потому что могут. Так мне и сказал на официальном IRC-канале один из разработчиков СУБД. В общем, я обратился по адресу. Некоторые компоненты тянули за собой старые зависимости, а другим требовалась новые, что не так просто было понять. Особенно человеку, который впервые устанавливает PostgreSQL под Linux.
#67 #767637
>>767534

>SOLID-параша


Ну хуй знает что тебе тут посоветовать.. удачного дебага что ли.
#68 #767639
А есть какой-то чатик чтобы позатирать за веб и понабираться чужих знаний, но при этом без такого ЧСВ?
#69 #767642
>>767538
Коллбэки и тем более этот самый сапресс - хуйня из под коня, модели выходят из под контроля из-за них, невозможно представить, что произойдет, если ты вдруг просто захотел ее создать. Это еще и затормаживает и усложняет тесты, если ты пользуешься factories. Самый толковый способ - делать всё через сервисные объекты, команды и запросы (CQRS), чтобы модель вообще ничего не знала о логике приложения. Она только отражает данные и может делать какие-нибудь простые преобразования с ними, типа отдать деньги вместо центов и валюты и т.п.
>>767647
#70 #767647
>>767642
Ну знаешь, обычно я так и пишу хуйня в том что у меня больше всего опыта на йии а тут срочно надо было сделать пару вещей на рельсах. Но обычно я так делаю из-за каргокультизма когда начитаюсь чужого кода. Херово во всем разбираться без сеньйоров, разок вылез на борду посоветоваться с пацанами Вот напрошусь на лето куда-нибудь стажироваться, тоже буду умничать
>>767650
#71 #767650
>>767647
Фигово значит, раз твой опыт тяжело портируется и зависит от инструмента. Перестань каргокультировать, почитай что-нибудь по теме, вдумайся почему так, а не иначе.
#72 #767719
>>767049
thnx,anon, ты просто няша
#73 #767856
Господа, балуюсь с rails, создал модели
User{id},
Admin_Rights{user_id, can_do_shit}.
User has_one :admin_right
Admin_right belongs_to :user
Через rails console создал пользователя, дал ему права и могу делать так
@user = User.find(1)
@user.admin_rights.can_do_shit

> 1


А вот во вьюхах не могу так сделать, пишет undefined method `can_do_shit` for nil:NilClass.
Т.е. связь @user.admin_rights не работает. Ничего не понимаю, что я делаю не правильно?
>>767892
#74 #767892
>>767856
У тебя, видимо, модель admin_rights у какого-то пользователя не создана. Вот связь и равна nil.
>>767895
#75 #767895
>>767892
Блять пиздец вот я дибил, сука даже в консоли посмотрел что так и будет происходить и всеравно под пользователем без прав логинился и пытался что-то сделать. Сука целый уже два часа ищу в чем проблема. Спасибо.
#76 #767920
Ruby такой охуенный, что я не могу на нем писать. Только заглядываю в документацию, как обканчиваю монитор, иду курить, а затем без сил падаю спать.
#77 #767946
Рубисты, поясните, можно ли использовать руби (рельсы например) для чего-нибудь сложнее landing page? Решил я давече завести себе свой github с блекджеком и шлюхами, погуглиг и нашел такую зверушку как gitlab. Так вот, бросил попытки завести этот кусок говна на бомжовой vps-ке после того как 3 гига свопа для него оказалось мало. [spolier]3 ГИГА БЛЯТЬ![/spolier]. Поставил няшный gog, который в пике жрет 25 метров памяти.
#78 #767947
>>767946
обосрался с разметкой, но сути не изменилось
#79 #767985
>>767946
Нищепроблемы
>>768062
#80 #767986
Посоны, задеплоил сайт на heroku, но там assetы не грузятся и сайт отображается не правильно. Прочитал, что можно соеденить heroku и dropbox, соединил, но всеравно сайт отображается не правильно. Как это исправить?
>>768028
241 Кб, 1097x845
#81 #767993
Ищё чуть-чуть и кто-то всигда будет фкурсе набирающих популярность гемов
#82 #768028
>>767986
Ты с хероку наебёшься ещё. Ассеты - это ещё ладно, гораздо большие проблемы будут потом. Купи лучше vps. Пять баксов в месяц - это немного. Держи рефералку. Зарегистрируешься по ней - дадут 10 баксов, на два месяца хватит, а потом сам решишь, продлевать или дальше ебаться с хероку. https://m.do.co/c/30374288c505
>>768176>>777721
10 Кб, 225x225
#83 #768062
>>767985
3 гига теперь не оверхед для админики? ну ок.
#84 #768120
>>767946
GitLab разрабатывают какие-то припизднутые хохлы, так что итог понятен, всё воруют собаки, рельсы, гемы, оперативку.
>>768127
#85 #768127
>>768120
Благодарю за разъяснения, мил человек.
#86 #768140
А у меня гитлаб норм на мелкой впске работает.
#87 #768176
>>768028

> Ты с хероку наебёшься ещё.


> предлагает наебаться еще сильнее с кастомной впс-кой


))
>>768182
#88 #768182
>>768176
Кастомная впс настраивается в две команды и её настройка абсолютно логична (если ты не спермодебил, но мы не в сишарп треде). В хостингах вроде хероку нужно осиливать и вызубривать тонную документации, которая суть есть - надстройка над впс. Какой ты нахуй серверный разработчик, если не можешь запустить сервер?
>>768201>>768212
#89 #768201
>>768182
Да тут каждый второй задаёт вопрос как на винде установить руби и рельсу, ни одного маковода или пинуксоида в тред уже давно не заносило, только школота на винде.
>>768203
#90 #768203
>>768201
Ну в ридонли то наверняка сидят опытные сеньоры 300к в секунду.
#91 #768212
>>768182
Тупое ебло с гостевухой, давай настрой мне в две команды простейший сетап с лоад-балансером и 3 ВПС-ками: одна под СУБД, 2 под приложения, Как минимум с ротацией логов везде или лучше с их сбором на отдельной машине(а ты сука как думал? Когда вся эта хуйня развалится из-за того, что логами весь диск засрало, кого в жопу кочергой ебать будут?). С ежедневными и еженедельными бекапами СУБД на S3 и их ротацией. Естественно нужен редис хотя бы для sidekiq-а и шедулер, придумай там че-нить с кроном.
В две команды, ебло. И попробуй только спиздануть про "нинужно", это блять самый минимум того, без чего нельзя жить в продакшне. Опционально можешь еще поебаться с графитом и собрать минимальный набор метрик и настроить хотя бы мастер-слейв репликацию.
>>768220>>768498
#92 #768220
>>768212
Ты считаешь, что хероку нормально заменит

>лоад-балансер и 3 ВПС


Серьезно? Ты редкостный даун даже для двачей.
>>768222
sage #93 #768222
>>768220
Хуясно всё с тобой.
>>768231
#94 #768231
>>768222

>не работает хероку, как починить?


>подними впс, там быстро


>ПОДНЯТЬ ТРИ ВПС И НАСТРОИТЬ КУЧУ СОФТА ЭТО БЫСТРО?


>при чем тут три впс и куча софта? Я говорю об одной вместо хероку


>Хуясно


Вся суть треда.
>>768236
#95 #768236
>>768231
Да это баттхертнутый сисодмин-эникейщик встрял в разговор, не обращай внимания.
>>768251
#96 #768251
>>768236

> сисодмин-эникейщик


Это ты про свитера, который предлагает разворачивать всю инфраструру на коленке вместо того, чтобы воспользоваться готовым решением от хероку?
>>768253>>768262
#97 #768253
>>768251

> хероку


Хуёку.

Можно инвестировать час своего времени, зато потом платить 5 баксов в месяц, а не 50. Т. е. уже после первого месяца у нас выгода. Умножаем на 100, и...
#98 #768262
>>768251
Это я про дивана, который для тестовой визитки хотел поднять три сервера.

>всю инфраструру


Установка рельсов - это пара команд, а на выходе получится та же хероку, только без ограничений/оплаты.
#99 #768497
Алло, это прачечная?

Какого хуя может вдруг наебнуться рельсовое приложение?
В частности, наебнуться доступ к БД?

У всех остальных частей системы все работает. Сервер БД тоже ессно работает, доступен без SSL. Как из других частей системы, так и из pgAdmin. Авторизация md5, логин и пароль верные.

I, [2016-06-13T07:33:36.658041 #14318] INFO -- : Refreshing Gem list
I, [2016-06-13T07:33:38.624647 #14318] INFO -- : listening on addr=127.0.0.1:8080 fd=9
E, [2016-06-13T07:33:38.627656 #14318] ERROR -- : could not connect to server: Connection refused
Is the server running on host "172.31.8.138" and accepting
TCP/IP connections on port 5432?
(PG::ConnectionBad)
#100 #768498
>>768212
Ооо, с засранным диском от логов рельсового говна сталкивался, солидарен с тобой братишка.

Почему ебаные рельсодебилы такие тупые в основной массе?
#101 #768514
>>768497

>ERROR -- : could not connect to server: Connection refused



Сервер шлет тебе TCP reset
Это значит, что этот порт никто не слушает на сервере, или фаерволл.

Проверь фаерволлы и бинлинг сервера.
>>768521
#102 #768521
>>768514
Да нет никаких файрволов, это интрасеть в EC2, все на Ubuntu 16.04.

Сервер БД доступен, к нему можно законнектиться с тачки где рельсы стоят, даже например по телнету. Типа через telnet 172.31.8.138 5432

Наебнулось оно ВНЕЗАПНО. Рельсовые разработчики в отпуске(есть подозрение что перед ним какой-нибудь ебанутый гем задеплоили и он все сломал). Я вообще на C# пишу, и немного девопсю, и на соседних тачках мой сервер отлично с БД работает.

inb4: ПРОДАКШН, КЛИЕНТЫ ЖАЛУЮТСЯ
>>768531>>768813
#103 #768531
>>768521

>Сервер БД доступен, к нему можно законнектиться с тачки где рельсы стоят


Может в рельсах неправильный URL в конфиге указан? Смотри config/database.yml

>ПРОДАКШН, КЛИЕНТЫ ЖАЛУЮТСЯ


В staging ваши разработчики не умеют?
>>768533>>768534
#104 #768533
>>768531

>Может в рельсах неправильный URL в конфиге указан? Смотри config/database.yml


А, сорь, теперь увидел, что
>>768497

>E, [2016-06-13T07:33:38.627656 #14318] ERROR -- : could not connect to server: Connection refused


>Is the server running on host "172.31.8.138" and accepting


>TCP/IP connections on port 5432?


>(PG::ConnectionBad)



Попробуй это:
http://stackoverflow.com/questions/19828385/pgconnectionbad-could-not-connect-to-server-connection-refused
>>768849
#105 #768534
>>768531
стейджинг работает, хз

database.yml:

production:
host: <%= Rails.application.secrets[:database][:host] %>
port: <%= Rails.application.secrets[:database][:port] %>
adapter: postgresql
encoding: UTF8
database: <%= Rails.application.secrets[:database][:name] %>
pool: 10
reaping_frequency: 30
username: <%= Rails.application.secrets[:database][:username] %>
password: <%= Rails.application.secrets[:database][:password] %>
schema_search_path: <%= Rails.application.secrets[:database][:schema] %>

secret.yml:
---
production:
secret_key_base: БУКВЫЦЫФРЫ
database:
:host: 172.31.8.138
:port: 5432
:name: ИМЯДБ
:schema: ИМЯСХЕМЫ
:username: ИМЯПОЛЬЗОВАТЕЛЯДЬ
:password: ПАРОЛЬ
#105 #768534
>>768531
стейджинг работает, хз

database.yml:

production:
host: <%= Rails.application.secrets[:database][:host] %>
port: <%= Rails.application.secrets[:database][:port] %>
adapter: postgresql
encoding: UTF8
database: <%= Rails.application.secrets[:database][:name] %>
pool: 10
reaping_frequency: 30
username: <%= Rails.application.secrets[:database][:username] %>
password: <%= Rails.application.secrets[:database][:password] %>
schema_search_path: <%= Rails.application.secrets[:database][:schema] %>

secret.yml:
---
production:
secret_key_base: БУКВЫЦЫФРЫ
database:
:host: 172.31.8.138
:port: 5432
:name: ИМЯДБ
:schema: ИМЯСХЕМЫ
:username: ИМЯПОЛЬЗОВАТЕЛЯДЬ
:password: ПАРОЛЬ
#106 #768813
>>768521
>>768521
>>768521
>>768521
>>768521
>>768521
>>768521
Prover nastroyki vpc, tam est faervol, nazyvaetsya acl

Snimi damp trafika PRI obraschenii prod I stage serverrov k db I sravni
>>768849
#107 #768849
>>768813
5 раз проверил, все работает еще раз. Даже телнетом законнектиться к БД можно.

Стейджинг вообще на левом хосте у рубистов самих, у них там на одной коробке все.

Я смотрел логи БД, она говорит, клиент сбрасывает соединение, не закончив передачу ээ рукопожатия при коннекте.

>>768533
Там вариант про юникс сокеты и все-на-одной-коробке, это не про нас.

Короче ебаные рельсы, заебался. Ждем пока кто-нибудь из этих рубистов подтянется.

Вот блядь ни разу с такой хуетой не сталкивался на дотнете да или даже на похапе. А в рельсах даже хуй поймешь где искать. Пиздец просто. Ебаные хипстеры криворукие.
#108 #768852
>>768849
Недождёшься, они сейчас презентацию Apple смотрят, обтекают.
#109 #768894
>>768849
Базарю, окажется какая-нибудь системная ебатория, но ты все равно продолжишь думать, что ето рильсы феее.
#110 #769012
>>768497

Error: psql: could not connect to server: Connection refused Is the server running on host "192.168.0.1" and accepting TCP/IP connections on port 5432?
Common Cause: The postmaster or PostgreSQL's server daemon process is not running or configured incorrectly.

When you receive this error most of the time it is due to not having PostgreSQL configured to allow TCP/IP connections or at least not connections from your particular workstation. If you have verified that postmaster is indeed running on the host you are trying to connect to then here is a list of common causes to this problem:

postgresql.conf not setup to allow TCP/IP connections. You'll want to look at the listen_address configuration parameter.
postgresql.conf is not setup to allow connections on a non-standard port number. To determine this look at the port configuration option.
authentication rules in PostgreSQL's access configuration file (pg_hba.conf) are not setup to allow either your uses or IP address to connect to that database. See the official documentation for more information on setting up your pg_hba.conf properly.
ensure that there are no firewalls, such as iptables that are keeping your local system from even establishing a connection to the remote host
#111 #769101
http://news.mit.edu/2016/patching-web-applications-0415

Не могу нагуглить само приложение. Кто-нибудь в состоянии это сделать?
>>770456
#112 #769365
>>768849
БЛЯДЬ ЭТО ФЕЙСПАЛМ.

Чуваки коннектились ко внутренним сервисам по ip и ПРОВЕРЯЛИ СЕРТИФИКАТ SSL НА ВАЛИДНОСТЬ И СООТВЕТСТВИЕ

СЕРТИФИКАТ SSL ПО АЙПИ БЛЯДЬ

сука блядь.

А вы говорите, руби.

Да ну его нахуй таких программистов.
>>769626
#113 #769626
>>769365
Это вот такие программисты с винды приходят, хуяк-хуяк, убунта в путти и в продакшен))
>>769666
#114 #769666
>>769626
А тут такие опытные рельсовики им хуяк-хуяк рассказывают что before fastthread we had ~400 restarts a day, now we have perhaps 10 и хуяк-хуяк все заебись
http://harmful.cat-v.org/software/ruby/rails/is-a-ghetto
>>769672
#115 #769672
>>769666
Ну это в 2007 было, сейчас-то робуст скелейбл энтерпрайз
>>769674>>769686
#116 #769674
>>769672
мне недавно рубисты сломали судо при деплое через ansible. а еще юникорн жрет ебаные 500 мегов при старте. а еще на какой-то хуй нужен намейкинсталленный редис, и сайдкик.

ASP.NET WebAPI приложение, при этом, деплоится в один клик в студии/однострочник в powershell, жрет на порядки меньше, и работает на порядки быстрее, и там всего этого левого говна почему-то не надо.
>>769675>>770012
#117 #769675
>>769674

>однострочник в powershell


>деплоится


На IIS небось деплоится, спермораб? Рельсы может и говно, но об спермотехнологии шквариться это уже совсем никуда не годится.

На го надо перекатываться, хуй знает какие еще варианты.
>>769677>>769683
#118 #769677
>>769675
Допустим на IIS деплоится. Но IIS это нормальный такой сервер.

У вас там в прыщеблядинске есть тот же nginx, только почему-то ебанутые рубиблядки его не используют по назначению, а пидорасят свои unicorn и прочее непонятно зачем нужное говно.
>>769678>>770013
#119 #769678
>>769677
Nginx же для статики только.
>>769679
#120 #769679
>>769678
Почему тогда похапебляди его используют правильно и по назначению?

В AWS статика вообще-то в CloudFront лежит. А для load balancing там вообще ELB.

Вопрос почему не использовать nginx как веб-сервер или наоборот, только unicorn? Вопрос зачем вообще нужен unicorn? Вопросы риторические. Ответ - потому что ебанаты.
>>769680>>769688
#121 #769680
>>769679
Так у похапеблядей свои fmp вместо юникорна. У рабиблядей nginx статику и раздает. Не пойму до чего ты доебался.
>>769688
#122 #769683
>>769675

>На го


интересно насколько дольше будет процесс разработки в сравнении с рельсами
>>769689
#123 #769686
>>769672
"всё тормозит" и " робуст скейлебл энтерпрайз" это не одно и то же, хотя второе часто включает в себя первое
#124 #769688
>>769679
Юникорн у них типа аппсервер like a JBoss, чтоб все как у взрослых.

>>769680
Верно, у пехапеблядей эту роль играет php-fpm. Очень хуево играет, но им больше и не надо.

По сравнению с JVM-манямирком это все, конечно, слезы и бомжатник, зато хуяк-хуяк
#125 #769689
>>769683
Процесс разработки чего?
Go удобен для всяких утилит небольших - оттуда берем, здесь парсим и умножаем на 2, туда кидаем. В любом хозяйстве такие требуются часто, и джуниорам можно поручить - не сишечка, и слишком уж сильно тормозить не будет - не руби-перл-питон-пехапе.
>>769712>>769853
#126 #769712
>>769689
ну тут го пишут в одном посте с рельсами, видимо подразумевая что он сможет заменить
>>769714
#127 #769714
>>769712
Чтоб он мог для рельсовика заменить рельсы, ему нужны свои рельсы, только на го.
Но так как большинству людей непонятно нахрена это делать, когда рельсы уже есть, то серьезных попыток сделать на го что-то похожее на рельсы не предпринимается.
Что предпринимается более или менее всерьез - это попытки сделать какие-то аналоги синатры или других более легких фреймворков, но это история совсем другая.
>>769854
#128 #769853
>>769689
Рубидети сишечку не осиливают? Так еще и паскаль есть, там всякие средства чтобы не выстрелить себе в ногу.
>>769856
#129 #769854
>>769714

> то серьезных попыток сделать на го что-то похожее на рельсы не предпринимается


Во всех языках давно уже есть рельсы: Python/Django, PHP/Laravel, C#/ASP.NET MVC, Java/Spring, Play.
>>769856>>770008
#130 #769856
>>769853
Модулу-2 забыл предложить. И Оберон.

>>769854
Про Go был вопрос.
#131 #770008
>>769854

>Во всех языках давно уже есть рельсы: Django, Laravel, ASP.NET MVC, Spring, Play.


Даже рядом не стоит
#132 #770012
>>769674

>юникорн жрет ебаные 500 мегов при старте


Не нужен, есть Puma
#133 #770013
>>769677

>У вас там в прыщеблядинске есть тот же nginx, только почему-то ебанутые рубиблядки его не используют по назначению, а пидорасят свои unicorn и прочее непонятно зачем нужное говно.


Тупой? Реверс прокси и сервер для статики отличаешь от сервера приложений?

Unicorn говно, как я выше написал, сейчас есть Puma - лёгкая, многопоточная.
>>770014
#134 #770014
>>770013
Сервер приложений это тупой баззворд, это я тебе как дотнетчик говорю
>>770017>>770043
#135 #770017
>>770014

>это я тебе как дотнетчик говорю


Если у вас в спермомирке и принято мешать всё в один огромный продукт, то это не значит, что все так должны делать.

Если бы ты хоть немного вник в разницу, то понял бы, что у nginx и сервера приложений принципиально разные задачи. Современный сервер приложений держит и спавнит воркеры (и в виде процессов, и в виде потоков) с учётом особенностей среды выполнения. Например, руби и рельсы хорошо используют copy-on-write, поэтому там просто fork. Также он держит загруженной среду исполнения, потому что загрузка рельс с нуля длится несколько секунд и делать это на каждый запрос невозможно.

Алсо, именно из-за fork'а под виндой не используют Puma, а только Unicorn и прочее устаревшее говно.
#136 #770019
>>770017

>Алсо, именно из-за fork'а под виндой не используют Puma, а только Unicorn и прочее устаревшее говно.


А, вру, Unicorn тоже не работает под виндой.
#137 #770023
>>770017

>Алсо, именно из-за fork'а под виндой не используют Puma


И снова вру, Puma как раз используется под виндой (видимо в однопроцессном режиме, только на потоках)
>>770035
#138 #770035
>>770023
На винде вообще никто не использует рельсы. Там все пишут на ASP.NET MVC/Web API, который изначально был клоном рельс, а сейчас уже далеко их обошел.
#139 #770043
>>770017

>у nginx и сервера приложений принципиально разные задачи


Тем не менее nginx тоже может быть аппсервером, если к нему приложить ngx_lua, например.

>>770014
Если ты не понимаешь что твой IIS, к которому ты приделываешь нет-сборочки своего шарпо-говнокода это аппсервер (ничем не отличающийся принципиально от апача с модперлом) - это твои дотнетопроблемы
>>770050
#140 #770050
>>770043
IIS это веб-сервер который умеет запускать дуднет код для обработки реквестов, тащемто все.

Аппсервер это баззворд.
>>770095
183 Кб, 693x1055
#141 #770095
>>770050
У твоей мамки есть пизда и сиськи, тащемто все.

Женщина это баззворд.
>>770101
329 Кб, 500x625
#142 #770101
>>770095
Друзья не позволяют друзьям использовать Internet Explorer (а также IIS).
Ты можешь сколько угодно доказывать тут преимущества IIS, но никто в мире его всё равно не использует: потому что вендорлок, медленный, закрытый, нерасширяемый (только в пределах допустимых самой мс), виндовой (боже мой, 2016 год, никто винду на сервера и в страшном сне не поставит кроме рашки-парашки конечно).
#143 #770104
>>770101
Только не говори, что не слышал про IBM, там то точно никакого вендорлока нет.
>>770106
#144 #770105
>>770101
Чета только мое приложение на ASP.NET работает на порядки быстрее чем прыщеблядинские скриптоподелия. А также, отлаживается легче, конфигурируется и т.п.
>>770106
65 Кб, 628x748
#145 #770106
>>770104
Не слышал, а что там в IBM, завели стайку серверов по заказу МС для рекламы IIS, как это было с HPC из top500, который никто не использовал толком?

>>770105
Небось ещё и само себя пишет, член тебе полирует и спать укладывает?
>>770109
#146 #770109
>>770106
Ну как бы IBM более 60 процентов профита делает с софта и прочих околоплюшек, а не железок, как ты мог подумать. А то, что ты не слышал об этом софте, как бы намекает, на его охуительность вообщем.
>>770110>>770111
#147 #770110
>>770109
если включить ебаный консалтинг по всему то будет все 80 процентов профита. Железо от силы процентов 10, в лучшем случае.
617 Кб, 1280x720
#148 #770111
>>770109
А Windows и IIS тут при чём?
>>770119
#149 #770119
>>770111
При том что весь энтерпрайз сектор микрософта это максимум 5 часть от того, что имеет IBM. При всем этом ты даже не слышал, что они делают софт(у них тоже есть свой IIS личной реализацией рантайма), чтобы почитать документацию на это, нужно оплатить лицензию, т.е. человек с улицы на вакансию по девелопу под этот софт и платформы просто не сможет попасть. Есть куча спецов внутри IBM они имеют спец отдел аутсорсинга, который помогает тупым людям, кто купил их софт его настроить и под него писать проги. Микрософт гавно не спорю, но любой чел с улицы разберется как писать веб апы под IIS, потомучто полно инфы в инете. А вот если я тебе за Датастэйдж посажу, ты в нем увязнешь и помрешь, этот софт не заводится своими собственными силами, он напсан для того чтобы ты потом пришел к ним и заплатил за уроки и консультации. Вот что такое вендорлок.
>>770123>>770126
#150 #770121
>>770101
IIS-экосистема на серверсайде используется достаточно широко. Это в основном интранеты в больших и средних компаниях - SharePoint, MS SQL Server и ASP.NET. Аппсервером IIS, конечно. У взрослых еще MSMQ и MTS. IIS быстрый, даже очень. Часть его хуярит в ядре, например. Но это, конечно, не главное в его выборе, главное экосистема и то что все друг к другу хорошо притерто и среднетупой макак мышкой навозюкает что-то более-менее работающее за приемлемое время.

Из highload энторнет-сайтов на этом работает StackOverflow - да, с MS SQL Server в том числе.
>>770126
#151 #770123
>>770119
Энтерпрайз сектор MS и IBM сравнивать некорректно, они почти не пересекаются.
Во-первых, IBM почти все свои деньги зарабатывает на консалтинге, а совсем не на софте и железе. Софт и железо обычно идет в комплекте тоже, но составляет единицы процентов от суммы контракта.
Во-вторых, IBM это верх энтерпрайза, MS - середина и низ.
>>770128
63 Кб, 448x784
#152 #770126
>>770119
Т.е. сначала сам доказывал, IIS норм, а теперь говоришь обратное? Ну ок.
То что IBM творит мерзости не оправдывает майкрософт.
Да, дела так сложились, софт закупают идиоты которых окучивает МС и втюхивает им свой «софт». Тут много всяких причин, тупость, привычка, нежелание держать высококвалифицированных сотрудников. Вкладываясь в МС ты всегда должен быть готов выкладывать кучу бабла каждый год и к увольнению, потмоу что разработка софта перестала быть приоритетным направлением и теперь твою работу буту выполнять специалисты из солнечного бангалора.

>>770121
Про среднего макака написал выше. Выгодно работодателю, не выгодно работнику, а здесь больше форум работников.

>Из highload энторнет-сайтов на этом работает StackOverflow - да, с MS SQL Server в том числе.


Стаки сами писали, что знаю о том что это не самое оптимальное решение и работают по привычке, а не потому, что это самое лучшее решение. Неизвестно сколько человеко-часов было бы сэкономлено, если бы они выбрали другие технологии.
Основной доход МС это лицензии на офис, все остальные направления убыточны.
>>770132
#153 #770128
>>770123
Во-первых, разговор про вендор лок, IIS типа вендорлок, сказал анон. Я на примере обьяснил что такое на самом деле вендор лок. Консалтинга не было бы если бы IBM сделал нормальный софт, который можно было бы юзать без консультантов. Но это их стратегия, такчто софт здесь как раз основной источник доходов, и это и есть вендорлок. Потомучто когда тебе потребуется, что то расширить к твоему IBM софту, к тиебе придут консультанты и скажут, что нужен вот этот продукт от IBM остальное не заведется, и так по кругу.
>>770557
#154 #770132
>>770126
Есть спецы, а есть сертифицированные специалисты, это две разных стязи. Вендору выгодно, чтобы сертифицированных было больше, он за них деньги получает. Микрософт идет на встречу спецам более менее, для IBM это до сих пор нелюди.
>>770140>>770146
#155 #770140
>>770132
Что касается самого заказчика, он не дурак и понимает куда лезет когда заключает контракты на консалтинг с этими гигантами. Но фишка в том, что, как правило, лобист решений и конченый человек, кто выбрал решение это обычный пордакт менеджер который захотел прикрыть свою жопу и всегда иметь возможность скинуть все на вендора если будет срыв проекта. На одного спеца все сложно скинуть, ведь он его нанял, а тут целый вендор подставил. Ну еще бывает банальный распил как опция.
>>770146
#156 #770146
>>770132
Единственная выгода для вендора это лок на него, так что спец убивший время на сертификацию конечно выгоден, потому он не пойдёт учить что-то другое, кушать-то тоже хочется.
Спецы, как я понял это независимые специалисты, которые тем или иным образом работают с продуктом так? Вот что-то не кажется мне что МС идёт на встречу спецам, потому что тогда бы они помогали разработчикам того же вайна или чувакам которые хотели портировать сильверлайт на линукс. Идти на встречу спецам для МС означает хоронить свой бизнес основанный на дойке лицензий на офис и винду, с корпоративных заказчиков.

>>770140
Продукты МС покупают как раз таки только для распила, на тех же линуксах, попилы куда менее рыбные.
>>770156>>770163
#157 #770156
>>770146
Ну я сужу по количеству доступной инфы в инете, по Шэйрпоинту или IIS или эксчендж серверу(это между прочим все, часть мидл инфрастрктуры любого гигансткого энтерпрайза) я найду кучу дискусси по множеству известный проблем. Для пидорасов локеров, я найду максимум официальную отписку в стиле, да эта мы знаем про эту хуйню, вот симптомы, решения - наш новый патч. Ниаких решений на текущую версию платформ. Вот тебе и разница. А специалисты, они , по большому счету в той же ситуации что и спецы, потомучто все их курсы, которые они проходили, подготовлены также на отьебись, как и все это ПО.
>>770158
#158 #770158
>>770156
специалисты = серфтифицированный специалисты, имеется ввиду.
230 Кб, 800x678
#159 #770159
Короче, чтобы всё прояснить МС не нужно.
Руби наше всё!
#160 #770163
>>770146
Спецы это не те кто разрабатывает конкурирущее ПО, в данном контексте - это люди, кто работает с их платформами, чтобы сделать ПО для предприятия, где они работают. Такчто не вижу причин не идти им навстречу.
>>770180
#161 #770176
Отвечу рубиблядку-анимешнику(вот почему эти две вещи так связаны часто? какой-то сдвиг в голове), потому что МИНЯАЖТРИСЕТ с этого школьника.

Я специалист под винду, и в частности, под ASP.NET MVC.
И скажу - что такой удобной инфраструктуры для разработчика, такой качественной, и интегрированной друг с другом, и при этом доступной(дада, сейчас даже студия уже community и бесплатна. уж не говорю про документацию - от MSDN до SO) - на прыщеблядстве никогда блядь не было.

Выбор в сторону экосистемы .NET я сделал осознанно и по нескольким причинам - это, во-первых, востребованность, во-вторых удобство(от C#, мегаприкольного языка, по мне так лучшего из мейнстримных, до интеграции всего и вся), в третьих, документация, в четвертых, вменяемость(деплой например, в ебаном руби это всегда анальная боль, в отличие от), в четвертых, уровень коллег в целом и среднем выше, чем на прыщеблядстве(пыхомакаки, рубиобезьяны, и ноджсчернь - заебали на текущем проекте вон уже).

При этом, я, как выше писал, прыщеблядство вполне себе знаю, и часто в роли девопса выступаю. Начинал в свое время с пыха фрилансить, трогал и руби(даже полгода на нем работал, давно правда еще, рельсы были 2е), питон знаю, итд. Жабу тоже знаю, но от нее АЖТРИСЕТ - до чего там все блядь просто как будто специально неудобно сделано(ну есть скала и кложа, но это уровень хипстотной черни похуже рубироидноноджсной).

Какой медленный IIS? Да он один блядь из самых быстрых серверов. Какой вендорлок? В чем он блять проявляется? Не больше там вендорлок чем у тебя, пыхорубимакаки, на прыщеблядикс(в остальных местах эта гнойная масса просто не работает нормально).

Вобщем, АЖТРИСЕТ, что от бреда который от несет, что от блевотных онемешных картинок.
>>770177>>770180
#162 #770177
>>770176
Ну не надо так резко, люди молодые, им еще много стоить пройти и перетерпеть. Это все сразу не дается.
>>770179
#163 #770179
>>770177
П.С. дотнет среду я не защищаю аж тресет бля.
Просто, я за то что с чем придется столкнутся на серьезной работе, где платят реальные бабки, чтобы не сосать хуй, а жить. И руби там нет. Есть асп, есть джава, иногда питон для девопсов, сиквел. Остальное игнорится. такчто решайте сами, бог вам свидетель.
>>770185
440 Кб, 850x588
#164 #770180
>>770163

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


А ну то есть просто программисты 1С, понятно-понятно. Вы дотнетчики с ними за руку ходите.

>>770176
Ой-ой, у нас тут get the facts стучатся из склепа, божешки.

>Какой медленный IIS? Да он один блядь из самых быстрых серверов. Какой вендорлок? В чем он блять проявляется? Не больше там вендорлок чем у тебя, пыхорубимакаки, на прыщеблядикс(в остальных местах эта гнойная масса просто не работает нормально).


За прыщеблядикс тебе не нужно платить, ты можешь свободно выкидывать любые компонентыи настраивать под свой проект

>При этом, я, как выше писал, прыщеблядство вполне себе знаю


Ага, убунта в путти, тут вас много таких)
*

>Отвечу рубиблядку-анимешнику(вот почему эти две вещи так связаны часто? какой-то сдвиг в голове), потому что МИНЯАЖТРИСЕТ с этого школьника.


Это же как так получилось что на анимешном форуме да водятся анимешники, тайна сия великая есть!
Проггеры на других языках конечно же смотрят только картины в третьяковке.
Олсо, если тебе так хорошо в своём дотнете, то чего тебя сюда занесло? Сидел бы в своём закончике для вендомакак, ходил бы к друзьям 1Сникам в тред и радовался жизни, но нет ведь решил сюда зайти)))
#165 #770181
>>770180

>>А ну то есть просто программисты 1С, понятно-понятно. Вы дотнетчики с ними за руку ходите.



Ты на своем руби думаешь больше прикладнухи делаешь чем обычный говно разработчик на 1с? Я сомневаюсь. Они все те же задачи рещают. Такчто у тебя, мой друг, тоже платформа, хоть обосрись.
>>770185
#166 #770182
>>770180

>За прыщеблядикс тебе не нужно платить, ты можешь свободно выкидывать любые компонентыи настраивать под свой проект


Ага, блядь, тут настроим RVM, которая с текущим либц несовместима, там - в /usr/local намейкинсталлим. В продашкне все наебнется - но зато ведь НАСТРАИВАТЬМОЖНА

>Ага, убунта в путти, тут вас много таких)


Я для пыхомакак однажды обновил бабуин с 4го до 7го, что стоило много усилий и знаний.

Анимешный форум это в /a, свали туда.

А зашел потому что мне продакшн сломали рубибляди тупые, выше писал.
>>770185>>770275
111 Кб, 996x1052
#167 #770185
>>770179
По моему ты бака.
Ну так и говорил про это сразу, всем понятно что в россии сейчас есть только пыха, 1с, шарп.
Но это не значит, что нужно остановиться в развитии и вариться в чане с аспом.

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

>>770182

>Ага, блядь, тут настроим RVM, которая с текущим либц несовместима, там - в /usr/local намейкинсталлим. В продашкне все наебнется - но зато ведь НАСТРАИВАТЬМОЖНА


При установке rvm ничего не мейкинсталлится) Конечно если ты не делаешь системвайд установку, но так никто не делает.

>Я для пыхомакак однажды обновил бабуин с 4го до 7го, что стоило много усилий и знаний.


Воу, да ты герой, пошевелил аж двумя извилинами!

>Анимешный форум это в /a, свали туда.


И туда тоже))))

>А зашел потому что мне продакшн сломали рубибляди тупые, выше писал.


Сам виноват, если пускаешь в продакшен кого попала, всё таки люди из экосистемы МС необучаемые бараны, спасибо за очередное подтверждение.
>>770188>>770192
#168 #770186
>>770180

>>>За прыщеблядикс тебе не нужно платить, ты можешь свободно выкидывать любые компонентыи настраивать под свой проект



На крупных проектах это доступно богам типа амазона, они имеют ресурсы это сделать, ты со своим хэлоуворлдом пока помолчи. И остальной энтерпрайхи пока тоже помолчат, и будут юзать готовые платформы от сраных вендоров, потомучто инчае не могут.
>>770193
#169 #770188
>>770185

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



какую конкретно прикладную задачу решает твое говно с выбором ОС разбить по файлам, гит или свн, любая база?
>>770193
#170 #770192
>>770185
Какая экосистема МС? Экосистема МС у нас отлично и стабильно работает(это ядро системы вообще), и деплоится причем вообще без проблем, и горизонтально масштабируется в auto-scaling группе AWS.

А сломали свое говно патентованные прыщеблядки как раз, линупс иксперты в третьем поколении, с протекшим рубироидным шифером. Им одну коробку дали, огороженную, так они ее умудрились нахуй сломать.
>>770193
#171 #770193
>>770186
>>770188
Я сначала хотел ответить и расписать.
>>770192
Но теперь пожалуй не буду. Пошёл ты в жопу, лол
>>770198
552 Кб, 496x346
#172 #770195
Картинку забыл.
#173 #770198
>>770193
Я завтра гляну тред, аермя есть, надеюсь на твой конструктив, спокойной ночи.
#174 #770275
>>770182

>для пыхомакак однажды обновил бабуин с 4го до 7го, что стоило много усилий и знаний


Ничосе, вот это мэдскиллз! Небось еще и соседу шиндошс переустанавливал?
>>770282
#175 #770277

>уж не говорю про документацию - от MSDN до SO


>MSDN


>буквы, написанные депрессивными роботами-аутистами из майкрософт, отдаленно напоминающие документацию

#176 #770279
Безотносительно рельс, боль спермораба понятна. С таким резюме (спец по спермотехнологиям, девопс уровня обновлял убунту) путь за пределы сперморабста закрыт. Вендор лок.
>>770291
#177 #770282
>>770275
Ты попробуй обнови, на живом продакшне который держит тыщи реквестов в секунду, это говно, и не сломай. Потом пизди, кукаретик лендингостроительства
#178 #770291
>>770279

>Небось еще и соседу шиндошс переустанавливал


>ты попробуй обнови, когда сосед ВДВшник с тыщей игр, это говно, и не сломай

#179 #770346
Ну тут всё понятно. Шарпер правильно пояснил - есть спецы, а есть "сертифицированные специалисты". Но кое в чём он ошибся. Он говорит, что уровень знаний его коллег выше, чем у типичной руби-макаки. Вот только это уровень знаний в ограниченной экосистеме (если фича не реализована в продукте, то нужно пердолиться на низком уровне работы фреймворка, а это выходит за пределы знаний обычного разработчика), и в рассчёте на поддержку. Я согласен, что для некоторой части энтерпрайза это удобней, нежели как-то самостоятельно выявлять хороших спецов среди тех, кто приходит на их вакансии. Но если вы таки нашли Руби-программиста, который действительно шарит, то для него почти нет невозможных задач. Хотя бы потому, что в мире FOSS нет "стандартов на знания", нет списка, что нужно выучить, чтобы быть сеньёром за 100500к. Не беря в рассчёт обычных макак, которых полно и в руби, и в ноде, и в асп, нормальный спец в руби гораздо больше заинтересован в саморазвитии, нежели спец в проприетарной технологии.

Я не хочу поддерживать спор "RoR vs ASP.NET" или "фреймфорк А против фреймворка Б", но я однозначно за открытые технологии по озвученной мной причине.

А по поводу качества хипстерокода (упоминалось где-то в обсуждении) - ну нехуй подключать хипстерогемы. Я, например, сравнивая гемы, иногда отдаю предпочтение менее удобному на первый взгляд, но обладающему более высоким качеством кода и лучше развивающемуся.
>>770433>>770447
#180 #770433
>>770346
Лол. Рубимакакинг это как раз про стандарт на знания.
Рельсы, ActiveSupport, пердолики.

А про невозможные задачи - ну например такая задача - не использовать ActiveRecord вообще, и с базой работать самостоятельно. Всякий там PostGIS использовать, сложные запросы и прочее. Вперед.

BTW: .NET - Открытая технология, как рантайм дотнета, так и стандартная библиотека, так и ASP.NET весь. Пруфы на гитхабе - коммить не хочу.
#181 #770446
>>770433

>А про невозможные задачи - ну например такая задача - не использовать ActiveRecord вообще, и с базой работать самостоятельно. Всякий там PostGIS использовать, сложные запросы и прочее. Вперед.



Есть sequel и он охуенен. Хотя интеграция с postgis есть и для AR, писать сложные запросы на чистом sql тоже в AR никто не запрещает.
#182 #770447
>>770346
Двачую.

>>770433
Охуеть напугал. Тебе кто-то запрещает прямые запросы в базу?
sage #183 #770451
>>770433

> утверждает, что шарпоблядь и вообще белый человек


> на работе обновляет шубунту и поддерживает чужой быдлокод на похапе и руби


Пшел вон отсюда, свитерок вонючий.
#184 #770456
Устал я от ваших бессмысленных срачей.

>>769101 бамп вопросу
>>770567
Хуёкер #185 #770519
Сделал сборку из контейнеров для девелоперской среды - то есть описал все сервисы в docker-compose.yml и примонтировал директории проектов (в т.ч. рельсового) как вольюмы. То есть я могу запустить docker-compose up и все запускается - база, рельса, нода и др приблуды.
Но блять оказалось, что не работает хот релоад. То есть сервер не видит изменений в коде, его нужно перезапускать. Проверил - директории моунтятся, изменения в докере видны, время обновления файлов актуальное, но блять хот релоада нет.
Я не могу понять в чем дело, как так, ведь полноценная среда в контейнерах запускается. Грешу на докер-машину (ибо на маке все это), но какая блять разница, если все синхронизировано.

Помогайте, что это за хрень. Очень классная идея херится - кросплатформенный запуск всего окружения одной командой.
#186 #770557
>>770128
Что тебе мешает использовать, например DB2 или MQ без консультантов? Red book не можешь осилить? У IBM всегда была и есть одна из самых лучших документаций во всей индустрии.
Консультанты нужны по одной причине - типичный макако-штат разработчиков, имеющийся в типичной организации обладает крайне низкой квалификацией и нулевой способностью осваивать новые знания. И нежеланием это делать.
Но опытные консультанты даже таких макак умеют за короткое время надрессировать так, что те не только смогут поддерживать внедренное решение, но и даже принять участие в его разработке. На уровне "сходи в бытовку, принеси лопату", но без консультантов для них и это недостижимый уровень.
#187 #770567
>>770456
Нету пока, иначе сразу нашёл бы сорцы. Я тоже пять минут посидел в гугле, все ссылки ведут на оригинальную новость, и всё. Не факт, что вообще собираются что-то открывать, на этом же деньги можно зарабатывать. Может вообще использовать и открывать не будут. Если новостей больше не будет, попробуй написать письмо кому-нибудь (хз кому).
#188 #770767
Пишу блог на rails.
Как сделать в этом шаблоне http://bootstrap-3.ru/examples/blog/ блог Archives. В yii2 я бы сделал через widget. Как правильнее делается в rails? Через yield(:archives) и в каждой вьюхе засовывать туда переменные , не очень хочется
>>770934>>771827
#189 #770934
>>770767
Простейший вариант - partial view и before_action в контроллерах.

>в каждой вьюхе засовывать туда переменные


Ты о чём? Шаблоны не должны содержать логику.
>>771176
#190 #771176
>>770934
Мне нужен вывод этих архивов на всем сайте.
В главном контроллере всегда получать этот архив ?
>>771730
#191 #771727
Аноны,а тесты для джуниора на codility это вообще нормально?
вчера дали тес на 4 таска,успел сделать 1,спустя 10 минут после истечения таймера сделал еще 2.
#192 #771730
>>771176
Как вариант.
Ещё лучше concerns.
Ещё лучше найти хороший гем, задача-то типичная.
#193 #771827
>>770767
непонял вопроса
но наверное
@archives.each do |archive|
<li><%= link_to archive.name, archive</li>
end
>>771875
#194 #771875
>>771827
С выводом проблем нет.
Проблема в дубле кода.
Этот блок может быть , а может и не быть на странице.
Допустим этот кусок может появиться на выводе всех статей и на статической странице типа about. А когда провалишься в саму статью его не должно быть
>>771892>>771901
#195 #771892
>>771875

> Допустим этот кусок может появиться на выводе всех статей и на статической странице типа about. А когда провалишься в саму статью его не должно быть



Партиал ебни. Поток к нему обращайся через рендер, где надо.
>>772086
#196 #771901
>>771875
http://trailblazer.to/gems/cells/
Попробуй, еще захочешь.
>>772121
#197 #772086
>>771892

>Партиал ебни. Поток к нему обращайся через рендер, где надо.


Ты же понимаешь, что у чувака типичная рельсопроблема, связанная с тем, что в рельсах не совсем MVC - как таковых вьюх, которые подготавливали бы среду для рендеринга партиала (в данном случае @archives). в рельсах нет.
#198 #772121
>>771901
Сколько раз уже вижу этот trailblazer (в основном в ру-комьюнити), с одной стороны и хочется попробовать (и еще захотеть), но блять, чуть больше чем нихуя коммитов и контрибьюторов, им кто-то вообще пользуется? И не так, круд и бложик, а нормальный продакшен?
>>772174
#199 #772174
>>772121
Cells и reform вполне годные и популярные, operation тоже выглядит неплохо, но по-моему проще свой велосипед вместо него запилить, остальные части trailbalzer не нужны.
#200 #772476
DRY TYPES DRY TRANSACTION DRY RB SEQUEL
Ну, щас такая мода. Вроде удобно
>>772590
#201 #772590
>>772476
Шото мне сухие типы неудобно, не понял юмора.
>>772616
#202 #772616
>>772590
http://dry-rb.org/gems/dry-types/
Библиотеки от охуевших от удобства функциональных языков и языков со статической типизацией ребят
>>772619
sage #203 #772619
>>772616
хуита
>>772622
#204 #772622
>>772619
undefined method `хуита' for Methods:Class (NoMethodError)
#205 #773140
>>766978

>ссылка на gem


А есть ли идея gem'a, чтобы не очень сложно, но не стыдно было показать?
>>773270
#206 #773270
>>773140
авторизация
#207 #773566
На апворке есть три уровня оплаты/навыка, какай плата в час на каждом примерно?
>>773586>>773612
#208 #773586
>>773566
4$ - 7$ - 12$ почасовая.
>>773650
#209 #773612
>>773566
Скинь, пожалуйста, ссыку на этот сайт.
>>773650
#210 #773650
>>773586
Чета маловато, там у рельсовиков есть по 30-50 баксов в час.
>>773612
https://www.upwork.com/
>>773706
#211 #773706
>>773650
Я там недавно видел перлошизика с 80 баксами. Ставка в профиле - это не реальная ставка, а желаемая, обычно в несколько раз выше реальной. Суть проста - ставишь 15, предлагаешь заказчику 10, соглашаешься на 8.
>>773715>>775531
#212 #773715
>>773706
https://www.upwork.com/o/profiles/users/_~0173d5a5c3bb0c0464/
Вот парень реально работавший за 30 баксов, чую ты пиздишь или не в теме.
#213 #773871
Хм, ребят, а если я на кристале скомпилю программку, то на винду ее никак не перенести да?
>>774530
#214 #774530
>>773871
Перенеси исходник и скомпиль на винде.
>>774680
118 Кб, 1930x1110
#215 #774587
Хайп на раби ВСЁ?
>>774621>>774708
#216 #774621
>>774587
Да, на питон, си и обжси тоже всё.
#217 #774680
>>774530
Для винды нету конпелятора...
>>774977
#218 #774708
>>774587
Это уже мемес по-моему здесь.
#219 #774977
>>774680
Ну так пропатчи оригинальные исходники и собери по виндой, делов-то.
#220 #775005
Аноны,есть сервисы где можно джуну проверить свои знания, что бы можно было уверенней ходить на собеседования?
Вот например я :
Знаю html+css, bootstrap.
Умею ненмого в RoR и нормально в sinatra
по алгоритмам слабо подкован,но везде говорят,что это нахуй уже никому не нужно
есть профиль на гитхабе,даже не пустой.
естественно heroku+git, linux(mint)
с JS знаком на уровне JQuery
Что меня спросят на собеседовании? На что мне нужно сделать упор в плане обучения(списываюсь с анонами уже полгода,я тот чел,который хочет уехать в мае 2017 в мск или дс2)
>>775065>>775418
#221 #775065
>>775005
Не слушай долбоебов, алгоритмы нужны, но пока не тебе - тебе надо фреймворки додрочить и уметь круды шлепать сейчас. Пройди тест на апворке (правда хуита устарелая), проходи все подряд интервью, смотри вон публичные собеседования с хекслета, и что-нибудь получится.
#222 #775418
>>775005

> Умею ненмого в RoR и нормально в sinatra


Что ж ты за говноед такой?
>>775465>>775490
#223 #775465
>>775418
Синатра норм. В разы лучше рельсодерьма.
#224 #775490
>>775418
Не надоело? Шизик здесь только ты. Ты можешь перевести стрелки, но это ничего не изменит. Ты можешь сказать что мой пост сочится бугуртом, но это тоже ничего не изменит. Потому что все мы знаем, что это есть почерк тупорылого хуесоса-шизика. Ты не можешь в спор, не можешь в аргументы, не можешь в мэдскилзы, не можешь в пасты. Все твое оружие это мелкобуквенные йоба-высеры вроде: ололо у тебя баттхерт, карочи все кто против миня шизики. Ты уныл как Дима Билан в период беременности. Непрошибаемый тупой пидор, который даже не может толком обозначить свою позицию. Чего ты хочешь? Тебе нравится внимание? Нравится когда тебя кормят говном? Шизоид. Тебе никогда не избавиться от этого клейма. Кинул кирпичом в дегенерата.
>>775495>>775527
9 Кб, 341x281
sage #225 #775495
>>775490
Две корки сыра этому охотнику.
9 Кб, 130x189
#226 #775527
>>775490
Годно расписал. Заебали такие говноеды однобуквенные.
#227 #775531
>>773706

>перлошизика с 80 баксами


Ты знаешь людей, с большим опытом перла, способных разобраться, поддерживать, дописывать и менйтейнить перловый легаси-код любой степени уебищности - которые будут работать за миску риса?
#228 #777190
Мне нужна модель только для чтения данных из таблицы. Ни один метод этой модели не должен иметь возможности изменить данные.
Можно ли каким-то образом установить это ограничие вроде "таблица только для чтения"?
>>777201
#229 #777201
>>777190
Ограничения на уровне кода в руби - это защита от детей. Тебе не нужна модель, просто делай запросы в таблицу.
>>777221>>777383
#230 #777221
>>777201
В рельсотреде нельзя такое советовать.
Иначе будет слишком просто, он еще и про CREATE VIEW может узнать.
#231 #777383
>>777201
Да, ты прав. В декораторы захуярю sql запросов.
Та и с activeadmin повеселюсь, не буду делать через .register
Сделаю register_page и сам всё кастомизирую. А то все слишком изично, рельсы слишком легкие, посоны засмеют же.
>>777499
314 Кб, 1920x1080
#232 #777419
Таки вкатился. Сколько у кого заняло изучение по гайду Programming Ruby > Ruby Way > Metaprogramming Ruby > Ruby cookbook ?
#233 #777499
>>777383
Тебе ничего не поможет.
>>777632
#234 #777632
>>777499
Mr. umnica
#235 #777721
>>768028
Посоветуй ещё зарегаться на github student pack. Они дают +100 баксов на DO.
#236 #778947
Анон поясни за аяксификацию.

Есть линк_то, надо подвесить джаба-кофе-скрит, но чёт нехочет. Во всяких гайдах рекомендуют вешать в респонд_ту обработчик на джаву, и бахать каллбеки на евенты в filename.js.erb, но это для контроллеров. Вопрос, как без котроллера заставить скрипт завестись по клику на линк-ту ссылочку. Есть стаковерфлоу, но ихний код не работает, да и вообще там много говна, научат еще бездуховно программировать, а мне так не надо.

Спасибо анон.

p.s. Есть рабочий вариант, вставлять джава скрипты прямо в агрументы линк_ту (т.е. через хеш параметров с обработчиком онклик и кодом на него), но, говорят, это плохо.
>>778957
#237 #778957
>>778947
Ты сам-то понял, что ты хочешь? Нормально сформулируй, мы тут не экстрасенсы.

У меня приложение простое, и я делаю просто - Paloma вызывает JS-код при загрузке страницы, а там я уже с помощью jQuery вешаю все коллбеки. link_to просто имеют html id и ссылаются на '#'
#238 #779347
Есть ли какие книги, которые можно читать, но чтобы не надо было сразу пробовать на практике написанное? Что-то типа Data Modeling Essentials, 3rd Edition | Graeme Simsion, но по рубям?
>>779474
#239 #779474
>>779347
Любую читай, но код не пиши.

Я так понял, тебе нужна теория? Так почитай что-нибудь общее, не по конкретному ЯП. На Руби многие концепции ООП переносятся очень хорошо, разве что зачастую упрощаются за счёт динамичности и метапрограммирования.
#240 #779797
Какую например?
>>779910
#241 #779910
>>779797
Полна шапка книг. Попробуй Practical Object-Oriented Design in Ruby. Я сам её не читал, но пишет Сэнди Метз, видел её выступления и статьи, она шарит.
#242 #780615
Шалом.
Подскажите, как можно реализовать следующее:
Есть у меня, к примеру, модель Message
И в данный момент в этой модели есть 4 столбца для прикрепленных файлов. Но мне так не нравится, совсем.
Для загрузки файлов использую carrierwave.

Моя идея в том, чтоб добавить ещё одну модель, например, Uploaded. Сделать отношение many to many к Message.

Так вот сам вопрос, как мне это всё организовать с помощью carrierwave? Их аплоадер позволяет загружать файл и записывать его название в колоночку, это хорошо, НО. Как мне сделать так, чтоб загружалось несколько файлов в соответствии айди какому-то сообщению.

Помогите, пазязи.
>>781348
#243 #781002
Снова всем доброго дня,Аноны!
перекатывающийся_в_ДС1.2_кун на связи

Сейчас варю два своих проекта,один из них простенький онлайн магазин,второй блог(этот уже под мои нужды),блог собираюсь переносить до конца лета на heroku ,есть все исходники по обоим проектам на гит хаб ,ежедневно заливаю новые фишки туда.
Блог построен на RoR+PostgreSQL,в качестве верстки два фрэйморвка bootstrap + material design. JS я знаю на урвоне JQuery, поэтому всяких фич на фронтэнд не завез.
Работаю на linux mint с гит работаю через терминал.
Так вот,вопросы к мудрым анонам
1)насколько два моих проекта будут смотреться в глазах работодателя? Это норм проекты для джуна или зашквар?
2)насколько критично сейчас дрочить кофескрипт и всякие ангуляры с реактом?
3)Могу ли я пок пройти без препроцессоров и если нет на 2 и 3 вопрос,то как это лучше выучить,без гикования.
4)какие еще скиллы подятнуть?
>>781023
#244 #781023
>>781002
1. 80%, что их никто даже не посмотрит, зато получишь опыт.
2. Надо
3. Это элементарные вещи, учатся за пару вечеров в бою.
4. Учись правильно программировать, а не задрачивай технология_неймы.
>>781060
#245 #781060
>>781023
а вот что именно для боевого опыта прикрутить на блог из ангуляра или реакта?
И я видел конвертеры из html to haml, насколько реально перенести проект на haml с помощью этого и от этого дальше разбираться?
>>781348
#246 #781084
Кстати насчёт прикрутить на блог ангуляр, как можно ангуляром получить вложенный ресурс типа /posts/:post_id/comments ?
Почему-то не работает $routeParams, видимо из-за кривого роутинга или ng-view.
http://pastebin.com/BKBn6pWR
#247 #781093
>>766884 (OP)
Рубаны, подскажите вот что по автолодингу
ModuleOneName::ModuleTwoName::Constant
доступно автоматически, только если я не подгружаю через require_dependency 'module_one_name/module_two_name/module_tree_name'
Это особенность третьей рельсы или я что-то не так делаю?
>>781348
#248 #781298
>>767001

>> понимать базовые структуры данных и алгоритмы (сортировки, поиск).


Нахуя?
#249 #781348
>>780615

>Uploaded


Лучше MessageAttachment

>Как мне сделать так, чтоб загружалось несколько файлов в соответствии айди какому-то сообщению.


Это не задача аплоалера, а бизнес-логика. Советую вынести её в сервисный объект, который, например, будет принимать текст сообщения и форму с файлами и реализовывать всю логику. Не советую делать это в коллбеке модели или в модели вообще (толстые модели в больших приложениях почти так же плохо, как толстые контроллеры).
>>781060

>а вот что именно для боевого опыта прикрутить на блог из ангуляра или реакта?


Первый ангуляр - это 90% заказов по фронту на апворке и. думаю, 90% работы по фронту в офлайне (в офисе). Бизнес не любит новое, бизнес любит проверенные временем решения.

>И я видел конвертеры из html to haml, насколько реально перенести проект на haml с помощью этого и от этого дальше разбираться?


HAML знать надо бы, но не думаю, что есть смысл переносить существующий код ERB в HAML. Просто на новом проекте сразу бери HAML. Кстати, это вкусовщина на самом деле, многим не нравится такой сахар, предпочитают ERB.
>>781093

>Это особенность третьей рельсы или я что-то не так делаю?


Хз, у меня в рельсе 4.2 вообще всё из папки app/ автоматически грузится.
#250 #781608
Привет, рубисты.
Скажите, легко ли вкатиться в руби после 2х лет разработки на джаве?
Джава сейчас потиху проседает, а на след курсе в уни у меня будет спецкурс "Программирование на Ruby", вот я подумываю начать задрачивать их чтобы на работе, если джава просядет, перепрыгнуть туда.
>>781612
#251 #781612
>>781608
Куда проседает? У жабанов самые большие зарплаты, еще и андроид бонусом. Нахер эти руби, у них непонятное будущее.
>>781620>>781636
#252 #781620
>>781612

>Нахер эти руби, у них непонятное будущее


Будущее у руби очень понятное. Уголки где нужно быстро на коленке склепать небольшую вебню. Конкурирует с пистоно-джангой и пэхапе, все трое быстро вытесняются из этой ниши джаваскриптерами с NodeJS.
>>781644
#253 #781636
>>781612

>Куда проседает?


В моей компании мой проект - один из последних проектов на джаве. Большинство джавистов пересаживаютс на JS. Я JS выучил, но считаю его как запасным аэродромом и не очень его люблю.. А руби будут в универе преподавать. Хотелось бы попробовать.
>>781648
#254 #781644
>>781620
Ой, не смеши нода из говна и палок уже ничего не вытеснит. А будущее непонятное, потому что некоторые другие уже наступают на пятки в деле быстрого прототипирования, но с куда большей производительностью, а руби находятся в неопределенном состоянии, где с одной стороны запиливают сапрессы, а с другой недосранные фреймворки торчат с туманным будущим. Вот почему.
#255 #781648
>>781636
Твоя компания - жертва хайпа, но скорее всего просто экономит деньги, а в принципе ей все равно на чем там будет написано. Язык выучить не проблема, когда уже работаешь, не знаю зачем тут спрашивать. И если есть курс - ты разве можешь его избежать?
>>781655
#256 #781655
>>781648

>Твоя компания - жертва хайпа,


Моя компания - обычный аутсорс. На чём заказчики хотят - на том и пишем.

>скорее всего просто экономит деньги


Ты издеваешься? Кастомеры платят.

>Язык выучить не проблема, когда уже работаешь, не знаю зачем тут спрашивать.


Да хз. Делать нечего.

>И если есть курс - ты разве можешь его избежать?


Нет, не могу. Просто поинтересовался, быстро ли его можно выучить.
>>781661
#257 #781661
>>781655

>На чём заказчики хотят - на том и пишем.


Ну подавно хайп и экономия. Жс в тренде, рабочих за миску риса - как собак. Всё логично.
>>781670
#258 #781670
>>781661
Ну не сказал бы. Платят хорошо.

>Жс в тренде


На UI. На бэкенде сейчас хз что у нас юзается. Но точно не нода.
>>781674
#259 #781674
>>781670
Хорошо по каким меркам? Назови уж цифру, все ж свои.
>>781678
#260 #781678
>>781674
Полторы тысячи баксов.
>>781688
#261 #781684
Не знаю, почему все так хейтят аутсорс. Комфортные условия работы, ОЧЕНЬ свободный график работы (могу пояснить точнее), высокие зп, куча бонусов. Дурачки, наверное.
>>781688
#262 #781688
>>781678
Российские цены. Да, хорошо, но это стоимость уборщика туалетов в первом мире.

>>781684
Не знаю кто хейтит.
>>781692
#263 #781692
>>781688

>Российские цены.


Беларусь.

>но это стоимость уборщика туалетов в первом мире.


Ты читаешь? 2 года опыта работы. Я ещё даже универ не закончил.

>Не знаю кто хейтит.


Ты?
>>781700
#264 #781700
>>781692

>Беларусь.


Без разницы, СНГ.

>Ты читаешь? 2 года опыта работы. Я ещё даже универ не закончил.


Я просто хочу сказать, что для заказчиков это не деньги вообще, и да, они экономят таким образом.
#265 #781706

>Я просто хочу сказать, что для заказчиков это не деньги вообще, и да, они экономят таким образом.


Как что-то плохое.
Для нас это очень большие деньги. В месяц получается отложить 1к баксов на будущую жизнь (переезд и т.п.), если затянуть пояс - получается отложить 1.2к. Года 3-4 и можно уже валить.
Средняя по стране 300 баксов.
>>781707>>781766
#266 #781707
>>781706
Я не против, только вскрыл причины перехода на жс, на мой взгляд.
>>781712
#267 #781712
>>781707

>только вскрыл причины перехода на жс


Хм.. мне вообще казалось мы про опенсорс беседуем.

Да и вообще я спрашивал про руби.
#268 #781766
>>781706
Только ложи блять в банк. Я так 6к отложил, а потом их спиздили.
#269 #781776
>>781766
Да я пока хз в какой банк их сдавать..
>>781792
#270 #781791
Как с помощью paperclip сделать условную валидацию? Т.е., если условие, то разрешить один тип файла, иначе другой.

has_attached_file :file,
styles: lambda { |file| file.instance.photo? ? { thumb: '100x100>' } : {} }

validates_attachment :file,
presence: true,
strict: true,
if: :validate_file?
validates_attachment :file,
presence: true,
content_type: { content_type: /\Aimage\/.*\Z/ },
strict: true,
if: :validate_photo?

Вот кусок кода из модели, работает только валидации по картинке (я менял местами их). При попытке загрузить файл, отличный от картинки всегда срабатывает защита от content spoofing, блять(
>>783561
#271 #781792
>>781776
Я такой тоже блять хз. А потом хуяк, и уже нет надобности никуда ничего сдавать.
#272 #781799
Я заказал себе карточку Payoneer, ибо на пейпале ограничение в 8к зеленых
>>785737
#273 #781800
>>781766
как спиздили то?
>>781816
#274 #781816
>>781800
Выбили замки.
#275 #782537
Аноны, есть маза запилить сайтец на рельсах знакомому, но я не знаю где можно его захостить, чтобы потом этому знакомому отдать нужные логины/пароли и пусть он его сам потом оплачивает. Что посоветуете?
>>782848
#277 #782957
>>782848
Зачем дигитал оушен? Есть же полно рашко-парашкинских альтернатив которые куда дешевле:
http://simplecloud.ru/
https://vscale.io/
#278 #782963
Как сделать меню для сайта создающееся из БД? Ну типа в БД есть таблица КАТЕГОРИИ и записи в ней РУЧКИ КАРАНДАШИ ТЕТРАДИ.
Понимаю, что надо сделать модель КАТЕГОРИЯ, контроллер КАТЕГОРИИ_КОНТРОЛЛЕР, сделать вьюхи для них или не вьюхи, а партиалами сделать. А потом уже встраивать эти партиалы на сами страницы сайта. Это будет работать? Прост я на работе сейчас, разные реализации и на гуглеж времени мало
>>783011
#279 #783011
>>782963
По сути всё верно
>>783041
#280 #783041
>>783011
А как этот партиал данными загрузить?
#281 #783296
Анон поделись книжкой «Application Testing with Capybara» spasibo, anon.
#282 #783325
Не могу разобраться. Может у кого есть идеи.
Не срабатывает рут роут. Не попадаю в контроллер. Вместо этого в роутах каким-то макаром меня перехватывает такая ебола match "*url", to: "application#render_not_found", via: [:get, :post, :path, :put, :update, :delete]
которая в роутах ниже рута.
Пытаюсь зайти на рут а кидает херню. В чем фишка?
>>783364
#283 #783364
>>783325
По ходу понял, там вначале ищет в ассетах страницы, если есть - берет их и не идет в контроллер
#284 #783556
>>781766

>Только ложи блять в банк. Я так 6к отложил, а потом их спиздили.


Лол. Про биткоин слышал?
>>783568
#285 #783561
>>781791

>Как с помощью paperclip сделать условную валидацию?


Хз, пацаны давно на CarrierWave перешли

А серьёзно - открывай сорцы Paperclip, изучай, делай кастомную валидацию в модели обычным методом и туда пиши Paperclip'овские методы.
#286 #783568
>>783556
Ага, вложил в биток на 1к, а он пизданулся до 600, потом поднялся до 800, потом опять упал. Охуеть штабильность. Для накоплений самое оно.
>>784792
#287 #784536
есть папки, в них есть файлы вида 001 002 003 n. Надо написать класс который будет выплевывать мне данные из файла по запросу вида yoba_object[42]. Правильно ли будет если я йобну инстанс переменную типа массив, проинициализирую её полностью и напишу делегатор пропущенных методов к этой переменной. Или есть другие, более изящные методы?
>>784564
#288 #784564
>>784536
Еще раз, но по человески.
>>784583
#289 #784583
>>784564
да лень расписывать, уже делаю делегатор.

Но если коротко, то нужен класс который будет оспособен отзываться на методы массива, т.е. при обращении к таким методам делегировать их к своей локальной переменной типа массив. Естественно сам класс будет больше чем просто оболочкой.
>>784585>>784794
#290 #784585
>>784583
думал использовать такую штуку http://ruby-doc.org/stdlib-2.0.0/libdoc/forwardable/rdoc/Forwardable.html

да чет хз, перечислять все методы — ниочень.
#291 #784633
Даже паттерн на метод миссинг, метод_респонд_ту не потребовался лол. Все в документации есть. И что парился т_т

http://ruby-doc.org/stdlib-2.1.0/libdoc/delegate/rdoc/Delegator.html
#292 #784792
>>783568
Всяко лучше, чем российский рубль. Биток хотя бы растёт быстро и внезапно, а падает постепенно.
>>784796>>784822
#293 #784794
>>784583

>Но если коротко, то нужен класс который будет оспособен отзываться на методы массива


Ну если коротко, то
def [](index)
do_something_with index
end
#294 #784796
>>784792
Представляю, как ты будешь накопленное годами откуда выводить, наркоман.
#295 #784822
>>784792
Рубль и биток - сорта нестабильного говна. Зачем жрать говно, если есть няшные баксы и евры?
#296 #784886
>>766884 (OP)
Сижу на 7-й винде, начал только-только обмазываться - и сразу проблема

В ответ на "rails new app" выдаёт вот такое:
G:/RailsInstaller/Ruby2.2.0/lib/ruby/site_ruby/2.2.0/rbreadline.rb:1097:in `<mod
ule:RbReadline>': HOME environment variable (or HOMEDRIVE and HOMEPATH) must be
set and point to a directory (RuntimeError)

HOME и HOMEPATH у меня на кириллице, и cmd при запросе вместо папки пользователя выдаёт набор каких-то ёбаных нечитаемых символов. Предположительно, рельсы их не воспринимают как нормальный адрес.
What do?
>>784918
#297 #784918
>>784886

> HOME и HOMEPATH у меня на кириллице


This.
Если не можешь на Linux перейти, то используй vagrant.
>>784975>>785035
#298 #784975
>>784918

>Если не можешь на Linux перейти, то ты биомусор.


fixed
>>784980
#299 #784980
>>784975
На линухе игры не идут
>>784995
#300 #784995
>>784980
Ну так купи себе отдельную пекарню с прошивкой для игр.
>>785111
#301 #785035
>>784918
В общем, обошёл проблему, создав второй администраторский аккаунт с английскими буквами.
>>785071
#302 #785071
>>785035
Потом будут проблемы с работой с изображениями, бд, и прочими нативными гемами, не еби мозги.
http://nashbridges.me/ruby-windows-bootstrap
#303 #785111
>>784995
Bitches don't know about my
Q E M U
E K V M
M V
U M
#304 #785470
Как деплой на амазон делать? Заказчик сказал юзать chef + capistrano, но я не совсем разобрался.

Вот есть обычный проект rails. В нём создать директорию /chef и /capistrano например, и там хранить все нужные файлы, да?
>>785586
#305 #785570
Там 5ю рельсу зарезили...
>>785579>>785615
#306 #785579
>>785570
Только она не нужна никому...
#307 #785586
>>785470
Reliably deploying rails applications почитай. В сhef замучаешься вкатываться, у меня неделя ушла на написание первого работающего рецепта.
>>785612>>785930
11 Кб, 444x491
#308 #785611
Ребзя, есть какой-нибудь нормальный способ решать вот такую задачу: конвертировать одну структуру данных в другую? То есть какой-нибудь один сложный json отобразить в другой, более простой нужного формата.
Вот типа как на пике. Мне кажется было бы удобно использовать что-то типа карт.

Нужно это вот для чего. Есть ебанутейшие xml-ные апишки, которые отдают шлак в совершенно нерабочем формате. Чтобы работать с их данным мне приходится сначала их сильно обрабатывать. И происходит это тупым поэлементным присвоением, типа:
data = {}
data[:my_field] = src[:blah_blah_response][:blah_blah_params][:blah_blah_output][:blah_blah_list][:blah][:blah][:blah]
Это ужасно. Хочется какой-нибудь более удобный и правильный способ конвертировать одно в другое.
#309 #785612
>>785586
Анз`ибль
#310 #785615
>>785570

> Там 5ю рельсу зарезили...


Собираюсь переходить, пока приложение маленькое. 11 тысяч строк. Надеюсь управиться часов за 10. Благо тесты есть почти на всё, кроме контроллеров (надо написать).

Думаю, это имеет смысл. Это гарантия лёгкого перехода на новые минорные версии на несколько лет вперёд, а значит - новые фичи рельс, новые крутые гемы, которые могут понадобиться.
#311 #785618
>>785611
Задай себе вопрос - стоит ли оно того? Тупое присвоение легко тестировать, легко писать (но сложно читать и поддерживать, да). А так тебе придётся придумывать декларативный формат на все случаи жизни, тестировать его, переписывать весь существующий код, потом проверить, что переписал правильно (значит тесты на существующий код всё равно придётся написать).
>>785627
#312 #785627
>>785618
У меня еще нет существующего кода, там не много переписывать. Читать это мудатень тоже невозможно.
Вообще мне кажется для этого уже должно быть какое-то решение. Вопрос конвертации одного в другое ведь много где встречается. У меня сначала в голове все время крутились ActiveModelSerializers, которые в пятую рельсу добавили. Но я так и не придумал, как их можно использовать для этой задачи. Хотя по сути они ведь похожую задачу решают.
#313 #785638
>>785611
require 'json'


hash = JSON.parse(json_string)
hash[a][aaa1] #=> value

Как видишь все в одну строчку делается, может придется немного с кодировками повозится, в таком случае полагаю догадаешься где надо гуглить.
>>785643
#314 #785643
>>785638
вообще анон прости, плохо прочитал.

хз, что тут посоветовать, рекурсивно ищем конечные ноды, перестраиваем их в массив или одноуровневый хеш, в зависимости от пожеланий.
Предыдущий #315 #785652
Сapybara #316 #785653
Блжад, попробовал. Как говна пожрал.
Использует кто? Почему у этого инструмента столько зависимостей и столько еботни с ним?

TDD/BDD - чего только не придумают, чтобы выжать бабло с заказчика.
>>785654>>786117
#317 #785654
>>785653
это для заказчиков, чтобы экономить на тестерах, а все дело делал программист.
#318 #785655
>>785654
В Эрефии до сих пор не знают как работает айти. ПМ приходит к заказчику и говорит, что тут надо BDD. Иначе ад и погибель. Поэтому плоти, чтоб покрыли тестами. А если это бодишоп, то ПМ напаривает заказчику, что нужна орава тестировщиков, иначе качество никак не обеспечить. В итоге за каждую голову бодишоп срубает бабло.
#319 #785657
>>785654
Заказчику глубоко похуй что ты там будешь делать лишь бы сделОл. Эти баззворды именно для развода заказчиков. Не подумай только что я против тестирования... это полезно, когда продукт разрастается. И не боишься что-то поломать, когда рефакторишь. TDD неплохой подход и в некоторых случаях таки помогает.
>>786117
#320 #785665
Внезапно, Rails 5 релиз:
http://www.opennet.ru/opennews/art.shtml?num=44713
>>785666
#321 #785666
>>785665
ПрЕкольно! Но мы ещё 4-ые не выучили.
>>785667
#322 #785667
>>785666
Ага, ну я так, вот типа рельса, новость.((((
#323 #785699
>>785611
HappyMapper для этого придумали.
>>786408
1055 Кб, 400x321
#324 #785725
Собираюсь вкатываться на руби с нуля, придумал себе проект небольшой. Перенесу свой скрипт с пёрла на руби (http://www.imagemagick.org/discourse-server/viewtopic.php?t=18963), добавлю удобный интерфейс, возможно сделаю что-то типа планировщика очереди (на руби ведь возможно сделать event loop?).
Потом сделаю блог, чатик (ждал релиза 5.0), оповещения, интеграции с различными API, OAuth2.0.. Много чего банального в общем.

За плечами 3 года разработки на PHP/JS. Фриланс на дядю Шона за $16/час. Почти год уже работаю на него (начинал с $8-10), но нужно двигаться дальше.

Разрабатывать буду на своём VPS, чтобы проекты сразу были доступны в вебе для просмотра и тестирования, работали webhooks, https, можно было интегрировать API, проходили callback-и и так далее. Знаю, что есть ngrok, xip.io и прочие штуки, но не использую. В качестве IDE буду использовать продукт от IDEA, потому что очень долго сижу на нём и знаю много различных фич/клавишных комбинаций, которые часто использую.

Вопросы:
1. Стоит ubuntu 16.04 свежая. Терминал открыт. Что нужно поставить в первую очередь? Знаю только, что нужен ruby, rails и rvm/rbenv. Помимо этого что-нибудь пригодится? Если у вас будет чистая система, что какие пакеты ставить для разработки?
2. Какие тулзы мастхэв? Когда ставил себе давным-давно redmine получилось так, что сначала поставил rails, ruby определённой версии. Потом оказалось, что redmine идёт на другой версии, и мне пришлось гуглить, как же грамотно поставить окружение. В итоге поставил rbenv, но все эти гайды меня знатно поднапрягли, часов 5 потратил точно.
3. Какой самый современный и максимально эффективный workflow для разработки? Для меня (на PHP) это выглядит так:
- Asana для задач
- Отдельный сервер (VPS) для разработки, ubuntu 16.04 LTS, либо Vagrant
- Git workflow, feature-branches или developer-branches
- Изменения в структуре базы данных только через migrations
- Timedoctor - трекинг времени на задачи
- Chrome - отладка js скриптов, вёрстка, проверка селекторов (jQuery)
- Zoc Terminal - единственный нормальный терминал под винду, где возможен коннект по ssh
1055 Кб, 400x321
#324 #785725
Собираюсь вкатываться на руби с нуля, придумал себе проект небольшой. Перенесу свой скрипт с пёрла на руби (http://www.imagemagick.org/discourse-server/viewtopic.php?t=18963), добавлю удобный интерфейс, возможно сделаю что-то типа планировщика очереди (на руби ведь возможно сделать event loop?).
Потом сделаю блог, чатик (ждал релиза 5.0), оповещения, интеграции с различными API, OAuth2.0.. Много чего банального в общем.

За плечами 3 года разработки на PHP/JS. Фриланс на дядю Шона за $16/час. Почти год уже работаю на него (начинал с $8-10), но нужно двигаться дальше.

Разрабатывать буду на своём VPS, чтобы проекты сразу были доступны в вебе для просмотра и тестирования, работали webhooks, https, можно было интегрировать API, проходили callback-и и так далее. Знаю, что есть ngrok, xip.io и прочие штуки, но не использую. В качестве IDE буду использовать продукт от IDEA, потому что очень долго сижу на нём и знаю много различных фич/клавишных комбинаций, которые часто использую.

Вопросы:
1. Стоит ubuntu 16.04 свежая. Терминал открыт. Что нужно поставить в первую очередь? Знаю только, что нужен ruby, rails и rvm/rbenv. Помимо этого что-нибудь пригодится? Если у вас будет чистая система, что какие пакеты ставить для разработки?
2. Какие тулзы мастхэв? Когда ставил себе давным-давно redmine получилось так, что сначала поставил rails, ruby определённой версии. Потом оказалось, что redmine идёт на другой версии, и мне пришлось гуглить, как же грамотно поставить окружение. В итоге поставил rbenv, но все эти гайды меня знатно поднапрягли, часов 5 потратил точно.
3. Какой самый современный и максимально эффективный workflow для разработки? Для меня (на PHP) это выглядит так:
- Asana для задач
- Отдельный сервер (VPS) для разработки, ubuntu 16.04 LTS, либо Vagrant
- Git workflow, feature-branches или developer-branches
- Изменения в структуре базы данных только через migrations
- Timedoctor - трекинг времени на задачи
- Chrome - отладка js скриптов, вёрстка, проверка селекторов (jQuery)
- Zoc Terminal - единственный нормальный терминал под винду, где возможен коннект по ssh
>>785741>>786191
#325 #785737
>>781799
А комиссия там ебануться снимать с Payoneer в банкоматах. Или можно на карту/банковский счёт себе переводить?
>>785933
#326 #785741
>>785725
Какой-то параллельный мир у вас там. Нафига тебе отдельный впс для разработки и винда?
>>785917>>785956
#327 #785917
>>785741
Да это он какой-то особенный, пхпшторм умеет локально всё кодить.
#328 #785930
>>785586
У меня есть эта книжка, но я все равно в ахуе, даже хз с чего начать.
#329 #785933
>>785737
На карту как обычно вроде можно переводить. Хз, ко мне пионер еще едет.
87 Кб, 1250x812
#330 #785956
>>785741
Ну, например, Stripe webhooks привязываются к конкретному адресу. К локалке привязывать через ngrok это костыли какие-то, да и не нужно в продакшене. Клиенту я сразу показываю сделанную работу, вернее, он может мониторить меня часами, пока я делаю апдейты каждые минут 20-40. Сделал модальное окно - вот, посмотри, проверь - может чего не хватает. Добавил новый плагин - посмотри, нормально ли работает на iphone/safari. Он так то тоже на PHP немного кодит, но в основном Android. За год отношений я многому научился сам и его тоже учил, как надо разрабатывать приложения. К примеру, когда я только взялся за проект, не было даже Git, отсутствовал менеджер js-пакетов, не было миграций (при том, что в CodeIgniter они есть), сейчас вот BDD-тесты пытаюсь освоить.

С винды не пересел ещё, потому что имеется только один ноут на гейминг, Reaper, погромирование. Скоро возьму нормальный пека для игор, а ноут переделаю в линух, потому что заебался с костыльными решениями в PHPStorm типа поиска и установки руби бинарников под венду, мучения с PATH, все гайды даже на официальном сайте PHPStorm написаны под разработку на линуксе.. Всё, что мне нужно - возможность поставить необходимые пакеты и использовать, например, препроцессоры CSS, Babel, Grunt, прочие штуки без изъёбств. Винда к этому не располагает совершенно.
>>785995
#331 #785995
>>785956
Так это stage, а не сервер для разработки.
>>786012
#332 #786012
>>785995
По-сути - да. Но я на него загружаю файлы постоянно, чтобы получать feedback, когда исправляю какой-то мелкий косяк, типа неработающей ссылки. Иметь Vagrant локально это хорошо (не приходится ждать целую секунду-две, пока соединится по SSH и загрузит один файл, рендер быстрее), но каждый раз делать отдельно upload на удалённый сервер, после того, как изменил пару-тройку файлов и хочу показать работу очень заёбно. Может, конечно, есть какой-то удобный способ это контролировать? Проект очень большой, 60 контроллеров, примерно столько же моделей, 75+ таблиц. Когда я открываю на своём i5-3610QM javascript-файл с проверкой синтаксиса/ошибок, он начинает люто тупить и лагать (секунд по 3-5) после каждого ввода символа.
>>786019
#333 #786019
>>786012
Про CI и deployment что-нибудь слышал? Как насчет того, чтобы не делать файлы больше 100 строк?
>>786050
41 Кб, 962x928
#334 #786050
>>786019
CI работает в случае, когда происходит коммит. Я тоже думал про это, но поскольку я работаю по сути один, то смысла в нём особого не вижу.

Сталкивался с группой погромистов, которые использовали этот CI в проекте на Yii. Неразбериха была та ещё, как они работали - не представляю. По 20 коммитов от одного программиста, исправляющего какой-то простой баг. А каждый деплой занимает время, минуты по 3-5, пока все тесты пройдут. Если бы я так работал, ни о какой продуктивности речи бы не было.
Возможно, они просто неправильно использовали его, но для себя я решил, что CI нужен, только когда проект слишком сложный, чтобы использовать один stage-сервер, код покрыт тестами, имеется несколько разработчиков, нет проблем с наполнением базы тестовыми данными и так далее.

По поводу файлов. Проект, как я говорил, достался мне "в наследство" от другого погромиста, папка assets (js процентов так 70) занимает 200 мегабайт. 6 (sic!) версий jQuery в разных папках. Переписать с нуля это невозможно даже за месяца два, миграции я прикручивал в свободное от работы время (к слову о том, хочет ли заказчик выделять деньги на рефакторинг).
#335 #786117
>>785653

>Сapybara


>Блжад, попробовал. Как говна пожрал.


Ты что-то не так делаешь. Я использую для парсинга Фейсбука (вместе с PhantomJS), и совершенно доволен. Раньше парсеры были написаны на чистом JS под PhantomJS, это был кусок нечитаемого неподдерживаемого асинхронного говна.

>Почему у этого инструмента столько зависимостей?


А ты как хотел, это же интерфейс к целому ебучему браузеру.

>TDD/BDD - чего только не придумают, чтобы выжать бабло с заказчика.


Ты хотел сказать сэкономить бабло заказчику?
>>785654

>это для заказчиков, чтобы экономить на тестерах, а все дело делал программист.


Это для программиста, чтобы всё не отваливалось нахуй после очередного изменения.
>>785657

>Не подумай только что я против тестирования... это полезно, когда продукт разрастается. И не боишься что-то поломать, когда рефакторишь. TDD неплохой подход и в некоторых случаях таки помогает.


Бля, ну я не знаю, насколько маленьким должен быть продукт, чтобы не бояться что-то сломать в нём при добавлении новых фич. У меня - 11 тысяч строк кода (HTML и прочее считая), 18 моделей. Это большой проект? Вроде считается небольшим. Но знал бы ты, сколько мне тесты моделей и политик времени сэкономили. И контроллеры скоро тестировать буду, потому что надоело, что некоторые страницы периодически отваливаются.
>>786118>>786194
#336 #786118
>>786117
Правильно. Это уже давно считается плохой практикой- тестировать контроллеры.
Интеграционные тесты ещё и тем хороши что проверяют вообще ВЕСЬ стак. Как без них?
>>786124
#337 #786119
Эх, а первым chef или Capistrano настраивать?

Как его тестировать в вагранте?
>>786840
#338 #786124
>>786118

>Правильно. Это уже давно считается плохой практикой- тестировать контроллеры.


>Интеграционные тесты ещё и тем хороши что проверяют вообще ВЕСЬ стак. Как без них?


Ну смотри. У меня фронтенд почти отсутствует. Так что в моём случае что тесты контроллеров, что интеграционные будут тестировать весь стек. Но тесты контроллеров намного проще и логичней с точки зрения программиста - сделал запрос, увидел, что action и view (тесты контроллеров умеют рендерить view) не отвалились, что произошли нужные изменения в БД, что нужные задачи были поставлены в очередь. Атрибуты заполняются исходя из логики контроллера, которая обычно if @page.save then ... else ... end. Всё.

А чтобы поддерживать интеграционные тесты нужна уйма времени - на каждой странице прокликать каждую кнопку, попробовать все варианты заполнения форм и т.д.
>>786138
#339 #786138
>>786124
Ты неправильно юзаешь интеграционные тесты. Как понять мало фронтенда? Апи?
Когда ты пишешь тесты контроллеров, ты им создатель уютный такой пузырь. Далеко не факт, что все будет так же в продакшене, а капибара поможет отловить эти баги
>>786195>>786376
#340 #786191
>>785725

>но все эти гайды меня знатно поднапрягли


Здесь это основная проблема. Заебешься настраивать окружение. Разруливать зависимости и так далее. Мимо-вкатился-в-руби
>>786267
#341 #786194
>>786117

>У меня - 11 тысяч строк кода (HTML и прочее считая), 18 моделей.


Женщину найди уже.
>>786376
#342 #786195
>>786138

>капибара


Заебали форсить это бдд говно.
>>786223
#343 #786223
>>786195
EXPLAIN
212 Кб, 1582x687
#344 #786267
>>786191
В общем, вкратце, как я понял, нужно понять следующие тулзы:

ruby - непосредственно сам интерпретатор, который используется в rails. Без него не заведётся. В основном пользоваться им напрямую придётся только для того, чтобы проверить используемую версию.

rvm/rbenv - менеджер версий Ruby, в основном все используют только эту фичу и ничего больше. RVM активно развивается, предоставляя дополнительный функционал вроде установки нескольких гемов только для определённой версии. Типа bundler для Ruby. В общем, на всякий случай буду использовать RVM, хотя он больше "портит" систему, например, заменяя команды "cd" и "gem" своими аналогами.

bundler - используется для того, чтобы собрать зависимости сторонних пакетов (гемов). Напоминает мне Composer для PHP, только bundler не используется, чтобы поставить какой-то один пакет (гем). Для этого используется команда gem.

rails - очевидно, для генераций новых приложений, запуска встроенного веб-сервера, и, самое главное, генерация т.н. boilerplate кода, например, rails generate model NAME, а так же утилита для работы с базой данных rails db:migrate, db:schema, и т.д. К тому же ещё даёт контроль к кэшу assets (rails assets:clean, ...), их генерация. В общем, многозадачная команда, которая и делает разработку каркаса приложения на rails очень простой и приятной.

gem - менеджер пакетов ruby. Весьма популярный, как в своё время PEAR для PHP. Немного меня озадачил надписью "Ruby 1.9 and newer ships with RubyGems built-in but you may need to upgrade for bug fixes or new features." на официальном сайте. Не понятно, нужно ли вручную обновлять его когда-нибудь. Пока ещё не понял, куда ставятся гемы. Вроде бы можно их поставить глобально или локально в один проект (как в npm). Bundler отличается от этой приблуды тем, что устанавливает все зависимости (гемы) в директорию приложения. Поправьте, если не так.

Теперь вопрос. Достаточно ли этих штук, чтобы начать разрабатывать на Rails? Или есть ещё вещи, на которые нужно обратить внимание?
212 Кб, 1582x687
#344 #786267
>>786191
В общем, вкратце, как я понял, нужно понять следующие тулзы:

ruby - непосредственно сам интерпретатор, который используется в rails. Без него не заведётся. В основном пользоваться им напрямую придётся только для того, чтобы проверить используемую версию.

rvm/rbenv - менеджер версий Ruby, в основном все используют только эту фичу и ничего больше. RVM активно развивается, предоставляя дополнительный функционал вроде установки нескольких гемов только для определённой версии. Типа bundler для Ruby. В общем, на всякий случай буду использовать RVM, хотя он больше "портит" систему, например, заменяя команды "cd" и "gem" своими аналогами.

bundler - используется для того, чтобы собрать зависимости сторонних пакетов (гемов). Напоминает мне Composer для PHP, только bundler не используется, чтобы поставить какой-то один пакет (гем). Для этого используется команда gem.

rails - очевидно, для генераций новых приложений, запуска встроенного веб-сервера, и, самое главное, генерация т.н. boilerplate кода, например, rails generate model NAME, а так же утилита для работы с базой данных rails db:migrate, db:schema, и т.д. К тому же ещё даёт контроль к кэшу assets (rails assets:clean, ...), их генерация. В общем, многозадачная команда, которая и делает разработку каркаса приложения на rails очень простой и приятной.

gem - менеджер пакетов ruby. Весьма популярный, как в своё время PEAR для PHP. Немного меня озадачил надписью "Ruby 1.9 and newer ships with RubyGems built-in but you may need to upgrade for bug fixes or new features." на официальном сайте. Не понятно, нужно ли вручную обновлять его когда-нибудь. Пока ещё не понял, куда ставятся гемы. Вроде бы можно их поставить глобально или локально в один проект (как в npm). Bundler отличается от этой приблуды тем, что устанавливает все зависимости (гемы) в директорию приложения. Поправьте, если не так.

Теперь вопрос. Достаточно ли этих штук, чтобы начать разрабатывать на Rails? Или есть ещё вещи, на которые нужно обратить внимание?
>>786385
#345 #786376
>>786138

>Как понять мало фронтенда? Апи?


HTML генерируется на сервере, JavaScript - 1300 строк всего.

>Когда ты пишешь тесты контроллеров, ты им создатель уютный такой пузырь. Далеко не факт, что все будет так же в продакшене, а капибара поможет отловить эти баги


Я не совсем понимаю, что такого она может отловить, чего не отловят етсты контроллеров. Как я уже сказал, тесты контроллеров могут рендерить вьюхи, так что я могу быть уверен, что ошибок, выкидывающих исключения, не возникло. А что ещё нужно?
>>786194

>Женщину найди уже.


Бля, ну я в том числе для этого и работаю.
#346 #786385
>>786267

>ruby - непосредственно сам интерпретатор, который используется в rails. Без него не заведётся. В основном пользоваться им напрямую придётся только для того, чтобы проверить используемую версию.


Ну с рубишной консолью тебе часто придётся иметь дело. Советую использовать PRY вместо стандартного IRB (а также pry-rails, чтобы рельсовая консоль тоже была няшной)

>буду использовать RVM, хотя он больше "портит" систему, например, заменяя команды "cd" и "gem" своими аналогами.


Насколько я знаю, он делает хук на вызов cd (а не заменяет системную команду)

>Напоминает мне Composer для PHP, только bundler не используется, чтобы поставить какой-то один пакет (гем). Для этого используется команда gem.


Ну такое. Gem - это пакетный менеджер, да, а Bundler - виртуальное окружние (типа VirtualEnv в Python).

>gem. Не понятно, нужно ли вручную обновлять его когда-нибудь.


Да. Команда gem update --system вроде

>Пока ещё не понял, куда ставятся гемы. Вроде бы можно их поставить глобально или локально в один проект


Смотря как установлен сам Руби. Если из системных пакетов дебиана, то команду gem надо предварять sudo и ставятся гемы в /usr/local/share/rubygems (или что-то подобное). Если Руби установлен с помощью RVM, то гемы ставятся в $HOME/.gem

>Bundler отличается от этой приблуды тем, что устанавливает все зависимости (гемы) в директорию приложения.


По умолчанию это не так. По умолчанию они ставятся в $HOME/.rvm (если руби установлен с помощью RVM). Но есть такая опция конфигурации, чтобы ставились в директорию приложения.

>Достаточно ли этих штук, чтобы начать разрабатывать на Rails? Или есть ещё вещи, на которые нужно обратить внимание?


Ты как-то всё усложнил. На самом деле всё проще:
1. Ставишь RVM
2. Ставишь Ruby
3. gem install bundler
4. gem install rails
5. rails new foobar && cd foobar
6. bundle install
Всё.

Ещё, конечно, нужно будет настроить БД. Советую Postgres (все туториалы по рельсам используют её, мне она нравится больше MySQL из-за более строгой типизации и консистентности данных). Postgres настраивается так:
1. sudo apt-get install postgresql postgresql-server-dev-all (без второго пакета не скомпилируется гем pg)
2. sudo -u postgres psql
В консоли постгреса:
3. CREATE ROLE foobar WITH LOGIN CREATEDB PASSWORD 'foobar'; (разрешения важны)

Далее меняешь в config/database.yml имя пользователя и пароль на "foobar".
#346 #786385
>>786267

>ruby - непосредственно сам интерпретатор, который используется в rails. Без него не заведётся. В основном пользоваться им напрямую придётся только для того, чтобы проверить используемую версию.


Ну с рубишной консолью тебе часто придётся иметь дело. Советую использовать PRY вместо стандартного IRB (а также pry-rails, чтобы рельсовая консоль тоже была няшной)

>буду использовать RVM, хотя он больше "портит" систему, например, заменяя команды "cd" и "gem" своими аналогами.


Насколько я знаю, он делает хук на вызов cd (а не заменяет системную команду)

>Напоминает мне Composer для PHP, только bundler не используется, чтобы поставить какой-то один пакет (гем). Для этого используется команда gem.


Ну такое. Gem - это пакетный менеджер, да, а Bundler - виртуальное окружние (типа VirtualEnv в Python).

>gem. Не понятно, нужно ли вручную обновлять его когда-нибудь.


Да. Команда gem update --system вроде

>Пока ещё не понял, куда ставятся гемы. Вроде бы можно их поставить глобально или локально в один проект


Смотря как установлен сам Руби. Если из системных пакетов дебиана, то команду gem надо предварять sudo и ставятся гемы в /usr/local/share/rubygems (или что-то подобное). Если Руби установлен с помощью RVM, то гемы ставятся в $HOME/.gem

>Bundler отличается от этой приблуды тем, что устанавливает все зависимости (гемы) в директорию приложения.


По умолчанию это не так. По умолчанию они ставятся в $HOME/.rvm (если руби установлен с помощью RVM). Но есть такая опция конфигурации, чтобы ставились в директорию приложения.

>Достаточно ли этих штук, чтобы начать разрабатывать на Rails? Или есть ещё вещи, на которые нужно обратить внимание?


Ты как-то всё усложнил. На самом деле всё проще:
1. Ставишь RVM
2. Ставишь Ruby
3. gem install bundler
4. gem install rails
5. rails new foobar && cd foobar
6. bundle install
Всё.

Ещё, конечно, нужно будет настроить БД. Советую Postgres (все туториалы по рельсам используют её, мне она нравится больше MySQL из-за более строгой типизации и консистентности данных). Postgres настраивается так:
1. sudo apt-get install postgresql postgresql-server-dev-all (без второго пакета не скомпилируется гем pg)
2. sudo -u postgres psql
В консоли постгреса:
3. CREATE ROLE foobar WITH LOGIN CREATEDB PASSWORD 'foobar'; (разрешения важны)

Далее меняешь в config/database.yml имя пользователя и пароль на "foobar".
>>786393
32 Кб, 332x450
#347 #786393
>>786385
Коротко и по делу. Благодарю.
>>786480
2 Кб, 150x141
#348 #786404
Только что разобрался, как обновлять рельсы. Обновил с 5.0.0.beta1 до 5.0.0. Жаль, что это вообще прозрачно не происходит. Но потребовалось всего лишь:

>bundle update coffee-rails activemodel jquery-rails



Надеюсь, обновиться с 4.2 до 5.0 будет не намного сложнее
2852 Кб, 480x270
#349 #786408
>>785699
О, анон, очень похоже на то, что я хотел. Спасибо.
Но видимо уже не смогу его использовать. Мне действительно это нужно для работы с SOAP и я использую библиотеку savon, она всем хороша, но у нее собственный парсер xml to hash. В принципе может быть костылями можно было впихнуть happymapper, но проект уже начался, боюсь проваливаться в рефакторинг.
>>786416
#350 #786416
>>786408
Рефакторинг уменьшает технический долг. Считай, что потом тебе будет в несколько раз сложнее, дольше и дороже разбираться с накопленнвм беспорядком.
>>786573
#351 #786464
Подскажите по поводу нормализации БД - как лучше построить отношения?

У меня есть модели Team, Member, User.
Team has_many Users
Team has_many Members

Также при регистрации User может выбрать несколько Member'ов, которые будут ему соответствовать. Хотелось бы, во-первых, избежать дублирования, во-вторых, избежать сложных валидаций (типа что Member соответствует либо User'у, либо Team'е), в-третьих, после регистрации достижения прикреплённых к пользователю Member'ов должны восприниматься как достижения самого User'а
>>786468
#352 #786468
>>786464
Polymorphic?
>>786475
#353 #786475
>>786468
Пока думал, как это поможет, понял, что сообщил недостаточно информации.

Я работаю с Facebook API. Оно не возвращает "реальный" ID пользователя. Это значит, что в БД у меня могут быть несколько Member'ов (эта модель как раз представляет пользователя Facebook) с разными fb_id, но относящихся к одному пользователю Facebook.

Когда пользователь авторизуется у меня на сайте с помощью Facebook OAuth, я погу получить его token_for_business. Если потом я запрошу у какого-нибудь Member'а этот же токен, то он будет таким же для того же пользователя (Member'ов у меня уже больше двухсот тысяч, так что, видимо, придётся фильтровать по имени). Я пока не решил, что делать дальше - объединять модели, или вводить дополнительную модель OAuth has_many Members.

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

Как-то всё это очень сложно, я даже не знаю, с какой стороны начать думать, чтобы додумать, как это реализовать красиво.
>>786480
#354 #786480
>>786475
Если я правильно понял, тебе нужно просто сделать две таблицы.

User
id, first, last, middle, age, ...

ExternalAuth
id, user_id, provider (facebook, twitter, ...), token, auth_id, ...

Когда пользователь регистрируется по почте или через OAuth/FB/Twitter/..., на него заводится запись в таблице User. После этого он может добавлять привязки из других социальных сетей если нужно с помощью простого интерфейса - серые кнопки с логотипами провайдеров - неактивные привязки, цветные - активные. Дубликаты исключить, либо придётся усложнять ещё больше (а стоит ли оно того?).

>>786393-кун
>>786500
#355 #786500
>>786480

>Дубликаты исключить, либо придётся усложнять ещё больше (а стоит ли оно того?).


Собственно, в этом и вопрос - удалять ли записи Member, про которые мы выяснили, что они представляют того же самого пользователя Facebook? Да, это многое упростит, я смогу исходить из предположения, что один Member - один пользователь Facebook. Но это сама по себе непростая операция - придётся заменять member_id во всех отношениях. Впрочем, стоит сказать, что благодаря foreign keys у меня не останется ссылок на несуществующие записи. Но сам факт того, что придётся ожидать завершения какой-то фоновой задачи чтобы информация в БД соответствовала действительности, меня напрягает. Решение с помощью грамотно построенных отношений кажется мне более красивым и логичным.
>>786502
#356 #786502
>>786500
Пользователи с реальными id в базе есть? Или приложение создано после ввода API 2.0?
Не понятно, каким образом может возникнуть дубликат. Пользователь удалил привязку к приложению через FB, а потом опять зарегистрировался? %Не шарю в FB, полистал Changelog и Stack Overflow на эту тему только%
>>786800
#357 #786509
Сап рубаны. Есть ли у кого опыт в OCR те машиное зрение? Есть пдфки и нужно найти слово X и то что на против его. проблема в том что сами картинки очень разные с разными шрифтами и тд.
Посмотрел Tesseract-ocr но его надо тренить на шрифты вручную ,по этому я не думаю что он подойдет. что подскажите? какие инструменты есть?
>>786806
#358 #786573
>>786416
На двачах слишком любят все идеализировать. Живут в и идеальном мире и делают абстрактные проекты. Я некоторое время назад наконец понял, что нужно перестать пытаться писать идеальный код и искать разумное соотношение усилий и результата. И тестирование далеко не всегда нужно и рефакторинг не обязателен и лучшие практики лишь рекомендация.
>>786575>>786651
#359 #786575
>>786573
Ой всё, сорвал покровы.
>>786651
Ссылочки на картинки #360 #786603
Пацаны, я не знаю, уместно ли здесь спрашивать, потому что вопрос вроде как по вебу, а не по руби. Я, пользуясь гемом HTTParty, посылаю запрос rest-веб-службе (вот этим http://developer.nytimes.com, конткретней - article search), получаю json и достаю из него ссылки на картинки. Но они имеют вид "images/2016/06/15/t-magazine/15tmag-duro-slide-6B0A/15tmag-duro-slide-6B0A-thumbWide.jpg", то есть напрямую вставить в "<a href" для отображения нельзя, а надо добавить остальной путь. Вопрос - где его брать? Ну, я, понятное дело, зашёл на сайт с самой новостью, нашёл там эту картинку, скопировал оставшуюся часть ссылки и просто прибавил строку с ней к началу той строки, которую вытащил из json-ответа. Мне кажется, что это как-то неправильно, и что относительный путь там не случайно указан (может, в дальнейшем, сервер с картинками уедет, или я хз чё). Как сделать правильно?
>>786816
#361 #786651
>>786573
>>786575
Перфекционисты не нужны. Все равно руби и рельсы для стартапов. А если проект выстрелит, то его потихоньку переписывают на чем-то ещё.
#362 #786770
>>786651
А почему? Из-за скорости? Или из-за монолитности?
#363 #786800
>>786502

>Или приложение создано после ввода API 2.0?


Вроде до

>Пользователи с реальными id в базе есть?


Вроде есть

>Не понятно, каким образом может возникнуть дубликат.


Элементарно. В списке гостей события у пользователя ID1, а когда он авторизуется через OAuth, возвращается ID2.
#364 #786806
>>786509

>Сап рубаны. Есть ли у кого опыт в OCR те машиное зрение?


Хотел послать тебя в тред машинного обучения, но он пропал с доски.
#365 #786816
>>786603

>Мне кажется, что это как-то неправильно, и что относительный путь там не случайно указан (может, в дальнейшем, сервер с картинками уедет, или я хз чё).


Правильно думаешь.

>Но они имеют вид "images/2016/06/15/t-magazine/15tmag-duro-slide-6B0A/15tmag-duro-slide-6B0A-thumbWide.jpg", то есть напрямую вставить в "<a href" для отображения нельзя, а надо добавить остальной путь. Вопрос - где его брать?


Изучи документацию API. Если этого СОВСЕМ нигде нет, то в базе всё равно сохраняй относительный путь, а для получения абсолютного добавь модели метод, в котором начало пути будет добавляться к записи в базе, и этим методом пользуйся.
#366 #786824
>>786651

>Все равно руби и рельсы для стартапов. А если проект выстрелит, то его потихоньку переписывают на чем-то ещё.


Как же вы заебали. Покаже мне проект, кроме твиттера, который что-то переписал? Гитхаб - на рельсах. Soundcloud - на рельсах. Basecamp - на рельсах. Да, иногда некоторые части проекта переписывают на чём-то другом. У Soundcloud, например, есть сервисы на Go, Haskell. Это всякая обработка данных, события, воркеры. А рельсам остаётся то, что они должны делать - веб.
#367 #786825
>>786651
Не нужен ты-максималист. За 3 года ни один проект не был на что-то переписан, но тем не менее они работают. И без рефакторинга мы бы охуели там. Его даже закладывают в сроки. Случай с переписыванием - это вообще 1 твиттер на миллион. В большинстве случаев ботлнеки устраняются как раз рефакторингом, выносом микросервисов, увеличением кол-ва серверей. Только в случае, если и это не поможет - встанет вопрос о переписывании.
>>786843
sage #368 #786840
>>787934
#369 #786843
>>786825

>В большинстве случаев ботлнеки устраняются как раз рефакторингом, выносом микросервисов, увеличением кол-ва серверей.


>Только в случае, если и это не поможет - встанет вопрос о переписывании.


Никакого вопроса о переписывании не встаёт. Дела обстоят так:

Изначально решение использует реляционную БД. Первое время производительность упирается в веб-фреймворк. Тут в дело идёт рефакторинг. Потом увеличение количества веб-серверов, потому что рельсы очень легко горизонтально масштабируются. Далее производительность упирается в БД. Начинается шардинг. Через какое-то время БД уже становится невозможно масштабировать. Приходится менять модель данных. Часть данных переносится в нереляционную БД. Жертвуем консистентностью данных ради скорости доступа.

Кроме самого первого времени, производительность веб-фреймворка не имеет никакого значения. Его код выполняется 5% времени запроса, остальное - доступ к БД.

Остаются различные сервисы, которые, как правило, переписываются с Руби на быстрый компилируемый статически типизированный ЯП, если производительности Руби не хватает в конкретном случае. Но вот вам пример - по словам разработчиков яндекса, значительная часть их поискового движка до сих пор написана на Perl.
>>786850
#370 #786850
>>786843
Насчет 5 процентов спорно. Конкретно в рельсах большую часть времени на один запрос отжирает рендеринг вьюх, тут нужно кэширование, где возможно. И да, твиттер же почему-то переписали, значит встал у них вопрос.
>>787072
#371 #787072
>>786850
Такая нагрузка как у твиттера 99% никогда не светит. И да, у них код рельсовый был говно. Да блять, у них и сейчас фронтенд твиттера лагает так , как будто я 3 крайзис пытаюсь играть.
>>787093
#372 #787093
>>787072

>у них и сейчас фронтенд твиттера лагает так , как будто я 3 крайзис пытаюсь играть


Рассматривал их веб-фронтенд в деталях.
Говнище неописуемое.
У Фейсбука та же история, им даже Sencha на спор сделали нормальный фронтенд на HTML5, который не тормозил совсем и имел такую же функциональность, после того как Цук рассказывал что эти веб-технологии, это из-за них у нас все тормозит.
>>787112
#373 #787112
>>787093
у фейсбука архиуебищный дизайн, я даже не знаю как можно быть такой огромной корпорацией и в шары ебаться.
>>787174
#374 #787174
>>787112
Обычно, когда меняешь дизайн - все начинают ныть и исходить говном.
А на старый никто не жалуется, к старому все привыкли.
Зачем им создавать себе лишние проблемы, и ещё и платить за них?
>>787288
#375 #787288
>>787174
This. Дуров пидорашек просто на хую вертел, а Цукерберг заботится о своих пользователях.
>>787301
#376 #787301
>>787288

>Дуров пидорашек просто на хую вертел, а Цукерберг заботится о своих пользователях.


То-то Вконтач намного удобней. Но вот с приватностью у Фейсбука получше, да.
>>787304>>787316
#377 #787304
>>787301
Кому как. Не раз слышал от старшего поколения (за 40), привыкшего к одноклассникам, что вк сложный и непонятный.
>>787312
#378 #787312
>>787304
ВК хотя бы быстрый.
#379 #787316
#380 #787934
>>786840
спасибо анон
302 Кб, 3360x1796
Worker #381 #788121
Посоны, знаете что-нибудь кроме Delayed Job для отложенных задач? Не сайдкик и рескуе, нужно на реляционке.
Я недавно наткнулся на QueueClassic, там в описании есть

>Leverage of PostgreSQL's listen/notify


Если это то, о чем я думаю, то это круто - DJ опрашивает базу на предмет новых задач каждые 5 сек. Создает нагрузку, срет логи и при этом добавляет лаг в 5 сек. Если QC использует механим pub/sub, то это охуенно. Только не понятно, действительно ли он его использует как надо, и вообще, насколько QC функционален.

Еще, пользуясь случаем, хочу спросить, кто работал с ELK (эластик, логстеш, кибана) для логирования. Чет я попробовал прикрутить при помощи гемов lograge и logstash-logger и получается какая-то хуйня. Эктив-рекорд не пишется, эксепшены по прежнему идут в несколько строк (читай несколько записей), как прикрутить логирование других компонентов (типа того же воркера) тоже смутно. Гайдов особо не нашел.
>>788137
#382 #788137
>>788121
>>788121
Не сайдкик и рескуе, нужно на реляционке.
Откуда такие требования?
>>788145
#383 #788145
>>788137
Нельзя потерять задачи + нужны транзакции.
78 Кб, 1080x720
#385 #788191
Помогите решить задачу, есть модель Slot, у нее поля start_time и end_time, нужно сделать sql выборку между всеми записями которые находятся в промежутке дней между start и end полями включая их самих.
Пробовал разные запросы ни один не возвращает что надо, приходит масив включая левые даты
.where(":start_date >= start AND :end_date <= 'end'", start_date: dates[:start], end_date: dates[:end])
.where('start >= ? AND "end" <= ?', dates[:start], dates[:end])
.where('start IN (?) AND "end" IN (?)', dates[:start]..dates[:end], dates[:start]..dates[:end])

Параметры приходят типа таких { start_time: 'mon', end_time: 'thu' }
далее я делаю 'mon'.to_date и сверяю с полями модели, пока что не смог получить нужный результат. Выручай анонас.
>>788237>>788323
#386 #788193
>>788145
Редис давно уже научился при правильной настройке данные не проебывать не хуже реляционок.
>>788224>>789152
#387 #788224
>>788193
Не научился и никогда не научится. если автора не сменить. Aphyr его в его говно тыкал, кто только не тыкал уже - спорит как двачер, нихуя не понимает даже что ему говорят. Типичный ноэсккуэльщик.
#388 #788237
>>788191
Шо за тип данных то, DATE или INT (unixtime)?
Для DATE всё просто: http://stackoverflow.com/questions/9232122/select-data-between-two-dates?rq=1
Если unixtime, то даже гуглить стыдно должно быть.
>>788410
#389 #788317
>>788145

>Не сайдкик и рескуе, нужно на реляционке.


Что за глупость

>Нельзя потерять задачи


С чего ты решил, что можешь потерять задачи в редисе?

>нужны транзакции.


Ну так используй транзакции при работе с БД. Задачи-то зачем в ней хранить?
>>788402
#390 #788323
>>788191

>Параметры приходят типа таких { start_time: 'mon', end_time: 'thu' }


Ну пиздец проблемы у людей...
#391 #788335
>>788145
Даже сохранение в базу не гарантирует, что задачи не будут потеряны. Все равно может возникнуть ситуация, когда какое-то событие произошло, а записаться или уничтожиться не успело. Тем более когда есть одноразовые таски типа отправки имейлов, их вообще нельзя повторять.
>>789152
381 Кб, 1024x697
#392 #788401
Господа рубоны, я в замешательстве.
Ситуация:
20 лвл, учусь на юрфаке госа города Сибирские Залупки. К концу первого курса начал проклинать день, когда перед поступлением послушал отцовское "ты гуманитарий чистейший, только пиздеть и умеешь, так что пиздуй на юриста", хотя и испытывал тягу к программированию и почти всему, что охватывается аббревиатурой IT. К середине второго, осознав, насколько всё уёбищно в этой стране, посмотрев на всё с точки зрения юриста, решил уёбывать, благо английский знаю почти как родной. Т.к. юрики не выездные и вообще не особо в почёте, решил вернуться к старым интересам. Благополучно съел подкинутого другом Криса Пайна (руби для самых маленьких). Сейчас, как освободился от зловонючей сетки, сел работать над собой. Определился, что изучать буду именно руби, т.к. для англоговорящих есть перспективы, работа, да и уйти в другую сферу не составит труда. В вашем храме рубей увидел список литературы, сел читать по порядку. Проблема в том, что, читая прагматик руби, я чувствую себя примерно как морская свинка. Многие вещи непонятны, хотя и улавливаю суть в целом.
Вопрос следующий, это нормально и нужно продолжать, или стоит начать с какой-то общей теории, ООП и т.д.?
#393 #788402
>>788317

>С чего ты решил, что можешь потерять задачи в редисе?



> In this post, we demonstrate Redis losing 56% of writes during a partition


> https://aphyr.com/posts/283-jepsen-redis

#394 #788410
>>788237
Поиск идет между двумя полями, запрос ('? >= start AND ? <= end_time') не возвращает что надо, будто end_time не обрабатывается, хотя в sql запросе есть
>>788859
#395 #788428
>>788401
Мы не знаем, всё зависит от тебя. Общая методика такова: читаешь всякие книжки, ебошишь блог/твитор/чят, фиксишь это всё, пытаешься устроиться куда-нибудь за жрат. Дальше по обстоятельствам.
>>790804
#396 #788454
>>788401
это нормально, дальше будешь непонимать еще больше. Учись, тогда однажды, ты проснешься и поймешь что знаешь руби.
>>790804
#397 #788650
>>788401

>В вашем храме рубей увидел список литературы, сел читать по порядку. Проблема в том, что, читая прагматик руби, я чувствую себя примерно как морская свинка. Многие вещи непонятны, хотя и улавливаю суть в целом. Вопрос следующий, это нормально и нужно продолжать, или стоит начать с какой-то общей теории, ООП и т.д.?


Насколько я помню, ВСЕ книги из шапки предназначены для тех, кто уже знаком с программированием. Как и большинство книг по руби, с него редко начинают изучать. Попробуй http://railstutorial.org, по ходу дела познакомишься с самим руби более-менее. Но после обязательно почитай книги по Руби, иначе многие вещи потом будешь делать очень неэффективно.
>>788942>>790804
#398 #788859
>>788410
Тип данных какой у поля? DATE, STRING, INT, UNIXTIME?
Приведи пример, как выглядит SELECT * FROM table LIMIT 3;
#399 #788942
>>788650
после хартла хуй кто читает про руби, сразу идут ебошить гавнокруд и смотреть макензи, хотя вроде хартл для 5 рельс более подробный гайд сделал.
>>789165>>789205
#400 #789152
>>788172
Может и что-то годное, но очень старое и безызвестное.

>>788193

>Редис давно уже научился при правильной настройке данные не проебывать не хуже реляционок.


Я могу ошибаться, поскольку с редисом практически не знаком. Но вся его суть и возможности в том, что он хранит данные ОЗУ? При аварийном завершении он не успеет флашнуть на диск. Если это HA-клсатер, то репликация опять же не синхронная, то есть на других нодах могут быть устаревшие данные.

>Ну так используй транзакции при работе с БД. Задачи-то зачем в ней хранить?


В транакцию оборачивается группа операций. Они выполнятся все или ни одна. В том числе в транзакции идет постановка задачи в очередь. Если где-то что-то пойдет не так, я могу быть уверен, что задача не поставилась, как и остальные изменения.

>>788335
Не знаю, что ты имеешь в виду. Реляционки обеспечивают ACID. Транзакции обрабатываются очень аккуратно, вплоть до подтверждения физической записи на диск (у постгреса по крайней мере настраивается). Какие-то там нюансы и ограничения в граничных ситуациях существуют но они на уровне того, что транзакция ПРОЙДЕТ, просто ты перед крашем не успеешь получить подтверждения, но это уже не то о чем стоит задумываться.
>>789202
яннп #401 #789165
>>788942

>хартл


>макензи


Напиши нормально или дай ссылки сразу. Плз.
>>789169
http://railstutorial.org, #402 #789167
Недоволен этим туториалом. Сразу пихают всякого, а суть не рассказывают. А ещё какой-то пиздец с зависимостями случился и теперь rails s не запускается. Я негодую.
>>789175>>789180
#403 #789169
>>789165
Я вот тоже не всосал про маккензи. Кто такой, чем знаменит?
Алсо что там хартл интересного про 5-е написал? И когда он успел-то?
>>789173>>789176
#404 #789173
>>789169
очевидно это который макензичайлд https://mackenziechild.me/
>>789176
#405 #789175
>>789167
А ннет, bundle install спас мою жопу от пригорания.
#406 #789176
>>789169
>>789173
А Хартл это кто? Про какие книжки вы говоритие?
>>789180
#407 #789180
>>789176
Вот этот сайт >>789167

>railstutorial.org


А анона этого не слушай, это лучший гайд эвар. Но читать нужно последовательно и честно.
>>789192
#408 #789192
>>789180
Попробую. Там по-русски, а потом уже можно на что-то в оригинале перекатываться.
#409 #789198
Хей!
Как задеплоить с хероку на дигиталоушен?
На хероку нужная база лежит, ее обязательно забрать.
>>789202
#410 #789202
>>789198

>На хероку нужная база лежит, ее обязательно забрать.


Облачные сервисы баз данных обычно не любят легко отдавать дампы БД. Погугли. Я столкнулся с тем, что на Amazon RDS очень сложно получить дамп БД.

>>789152

>Если где-то что-то пойдет не так, я могу быть уверен, что задача не поставилась, как и остальные изменения.


Здесь не нужны транзакции. Достаточно после постановки задачи проверять, поставилась ли она в очередь, и если нет, то выбрасывать исключение. Можешь написать своё небольшое дополнение к Сайдкику или погуглить, есть ли готовые.

>При аварийном завершении он не успеет флашнуть на диск.


>Транзакции обрабатываются очень аккуратно, вплоть до подтверждения физической записи на диск (у постгреса по крайней мере настраивается).


У Редиса настраивается частота записи на диск. Я согласен, есть вероятность, что в случае отключения питания или немедленного убийства процесса данные будут потеряны. Но скажи, какова вероятность этого? Если тебе недостаточно записи на диск раз в несколько секунд, то что же за приложение такое ты пишешь, что ему нужна такая надежность? Я просто хочу понять, что за задача такая, где это действительно нужно.
>>790111
#411 #789205
>>788942

>после хартла хуй кто читает про руби, сразу идут ебошить гавнокруд


Согласен, сам так сделал. Но быстро осознал ошибку и сидел, задрачивал руби. Надо лишь донести, что тому же хуже будет, кто проигнорирует это замечание. А так railstutorial хорошая штука.
>>789347
#412 #789347
>>789205

>railstutorial хорошая штука.


Только там много ненужной хуеты описано. Guard, Spork, ещё какой-то малафьи с десяток.
>>789348>>789674
#413 #789348
>>789347
Capybara, Cucumber.
>>789880
#414 #789674
>>789347

>Guard


Полезная штука во время рефакторинга.
>>789871
#415 #789871
>>789674
Разве он нужен, когда есть spring?
#416 #789880
>>789348
Cuckold
#417 #789932
Подскажите, есть ли какое-нибудь решения для разделения контроллеров и вьюх? Вьюхами в рельсах называются шаблоны на самом деле. А реальным view для них является контроллер - они берут его переменные экземпляра и методы.

Решение должно быть максимально прозрачным для рельс и стороннего кода. Шаблоны не должны знать, что рендерятся не в контексте контроллера.
#418 #789993
>>789932
В дополнение к этому, хотелось бы узнать "правильный" способ делать партиалы, чтобы не мучаться с вспоминанием того, от каких переменных и методов шаблон зависит.

А также хелперы перенести бы в вьюхи.
>>790136
#419 #789996
>>789932
тут вроде советавали trailblazer
>>790136>>790552
#420 #790111
>>789202

>Здесь не нужны транзакции. Достаточно после постановки задачи проверять


Не понял тебя. Я говорю про то, что постановку задачи удобно запихивать в транзакцию вместе с другими операциями, которые неразрывно с ней связаны. Например, сделали рассчеты по платежам, обновили кучу записей, поставили тут же задачу. Где-то случился роллбек - он отроллбечит и задачу.
Речь о том, что это просто удобно. Конечно это не тру-необходимость, потому что планировщики это отдельный сервис (всякие там очереди сообщений). Но там и другие уровни сложности.

>в случае отключения питания или немедленного убийства процесса данные будут потеряны. Но скажи, какова вероятность этого?


По закону Мерфи, она крайне высока. У меня в приложении есть логика связанная с платежами. При этом они не разовые point-to-point, это целый процесс, серия задач many-to-many, и у процесса есть промежуточные состояния. Это делает логику сложной и проеб задачи чреват.
Тут правда у меня есть недостатки архитектуры, но в целом, проеб любой маломальски важной задчи (кроме какой-нибудь генерации документа или отсылки письма) всегда чреват.

>Если тебе недостаточно записи на диск раз в несколько секунд, то что же за приложение такое ты пишешь, что ему нужна такая надежность?


Но ведь любое приложение? Абстрагируемся от планировщика - речь же идет о возможности потери данных за несколько секунд. Иногда это допустимо, но это отдельно планируется и прописывается. По умолчанию мы ведь не держим в голове мысль о том, что данные за n времени могут быть утеряны. И вообще в этих случаях нужен механизм, который даст понимание, что данные были потеряны, чтобы это можно было учесть. Важно в любой бизнес-задаче, е-комерс и т.п.
>>790143>>790573
#421 #790136
>>789932
А что делает настоящий контроллер тогда?

>>789993
Никогда в рельсах не испытывал дискомфорта от принятой архитектуры. В том числе и от хелперов. Разок вместо хелперов юзал декораторы.
Зачем тебе, анон, расскажи.

Раз тебе не нравится рейлс-вей, может тогда убрать фронт из монолита, вынести его весь в отдельный сервис на реакте с нодой и общаться через АПИ.

>>789996

>trailblazer


Ой, там все сложно. По-моему ребята нахуевертили.
>>790552
#422 #790138
ну можно как дхх советует хуячить на каждый экшен по контроллеру с 1 экшеном, все контроллеры по директориям раскидать, и типа здоровая архитектура рельс возникает лул
>>790552
#423 #790143
>>790111
Редис умеет после каждой операции писать на диск и делать fsync, если нужно.
мимопроходил
>>790145
#424 #790145
>>790143
А смысл редиса тогда не теряется?
>>790146>>790156
#425 #790146
>>790145
Запросы на чтение все равно остаются быстрыми, плюс писать я думаю он будет по-меньше, чем реляционка.
>>790156
#426 #790156
>>790145
Смысл Редиса вообще малопонятен с самого начала.

>>790146

> Запросы на чтение все равно остаются быстрыми


Быстрее чем нормальная СУБД из той же самой памяти? Потому что у Редиса есть магия?

>писать я думаю он будет по-меньше, чем реляционка


Поменьше чем WAL (он же REDO-log) писать невозможно.
#427 #790552
>>789996

>trailblazer


Я знаю про него, но не могу себе позволить такой отход от рельс в существующем проекте.

>>790136

>А что делает настоящий контроллер тогда?


Настройку вьюхи, вызов операций над моделями, постановка задач в очередь, проверка политик, HTTP-редиректы и т.д.

>>790138

>ну можно как дхх советует хуячить на каждый экшен по контроллеру с 1 экшеном, все контроллеры по директориям раскидать, и типа здоровая архитектура рельс возникает лул


Видел эту статью. Не понял, как при этом организовывать маршруты - кажется, при этом теряется вся сила ресурсов роутера. Ну и непозволителен мне такой сильный рефакторинг в существующем приложении, опять же.

Просто хочу нормальные вьюхи в рельсах.
>>790947
#428 #790573
>>790111

>Но ведь любое приложение? Абстрагируемся от планировщика - речь же идет о возможности потери данных за несколько секунд. Иногда это допустимо, но это отдельно планируется и прописывается. По умолчанию мы ведь не держим в голове мысль о том, что данные за n времени могут быть утеряны.


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

>У меня в приложении есть логика связанная с платежами. При этом они не разовые point-to-point, это целый процесс, серия задач many-to-many, и у процесса есть промежуточные состояния. Это делает логику сложной и проеб задачи чреват.


Понял. Согласен, в этом можно положиться только на реляционку. Но это не значит, что Сайдкик тебе не подойдёт. Ты в любом случае должен хранить в реляционке информацию о состоянии. Пусть воркер меняет эту информацию только когда операция гарантированно завершена. Также воркер должен быть идемпотентен (актуально для Сайдкика в целом). Сделай периодическую задачу, которая ставит в очередь те задачи изменения БД, которые там ещё не стоят. Уникальные задачи - это не базовая возможность Сайдкика, но я видел дополнение.

Не уверен, что это лучшее решение. Возможно, тебе не нужен Сайдкик. Я просто привык, что в каждом приложении у меня он используется почти с самого старта.
>>790957
#430 #790599
>>789932
Presenter. https://www.youtube.com/watch?v=QHsq6aFlP0U
Draper не юзай, говно.
>>790699
#431 #790699
>>790599
Спасибо за видео. Это не совсем то, что нужно, но теперь я знаю, как сделать то, что хочу.

>Draper не юзай, говно.


Это немного другой паттерн - view model. Draper уже начал использовать в некоторых вьюхах, но мне не понравилось.
>>790726
#432 #790726
>>790699

>но теперь я знаю, как сделать то, что хочу


Вру. Я хотел переопределить метод view_context контроллера, чтобы предоставлять вьюхе свой собственный контекст, в котором переменные экземпляра и методы будут принадлежать не контроллеру, а моему объекту. Но как построить такой контекст, чтобы он по-умолчанию вёл себя как рельсовый контроллер, т.е. включал хелперы и всё прочее, есть есть в обычном view_context?
>>790735
#433 #790735
>>790726
Вот этот код более-менее проясняет ситуацию:
https://github.com/rails/rails/blob/98076af2ef1774863635191b3d4ea19575b5f832/actionview/lib/action_view/rendering.rb#L71-L73
https://github.com/rails/rails/blob/98076af2ef1774863635191b3d4ea19575b5f832/actionview/lib/action_view/rendering.rb#L36-L53

Короче, мне надо унаследоваться от ActionView::Base и переопределить ApplicationController#view_context
>>790852
#434 #790804
>>788428
>>788454
>>788650
От всей души благодарю вас за поддержку и разъяснения, желаю вам обмазываться всеми благами
#435 #790848
Сап.
Нужно задеплоить проект на ДО.
Там до меня настроили капистрано.
Все подкрутил, когда бандлер отрабатывает во в ремя cap deploy, сыпется когда доходит до нокогири.
И пиздос, уже часов восемь топчусь на месте.
На ремоуте поставил и рвмовский и системный нокогири нужной версии.
Враждую на то что через gem install оно не встает прав не хватает, встает только через rvmsudo.
Что делать выручите пожалуйста.
>>790849>>790851
#436 #790849
>>790848
Вангую, что всё проще.

>nokogiri


Он же собирает native extension. Может у тебя не стоит что-то нужно для сборки.
>>790855
#437 #790851
>>790848
sudo apt-get install libxslt-dev libxml2-dev
>>790855
#438 #790852
>>790735
Не трахайся ты с внутренностями рельс, это гиблое дело.
>>790854
#439 #790854
>>790852
Эти методы не помечены как private api
#440 #790855
>>790851
Охуенчик, сработало. Куда тебе 15 рублей скинуть?
>>790849
Так и оказалось, ИЧСХ обычный либиксэмель я накатил еще вчера.
>>790857
#441 #790857
>>790855

>Куда тебе 15 рублей скинуть?


Мне вот интересно, к чему это. Я понимаю, двач, все дела. Но это же явно не риторический вопрос.
#442 #790902
Два часа потратил на то чтобы узнать, что на Xероку read-only system. И поэтому мои файлики не заливаются. Теперь и ты потратил около минуты чтобы прочтитать и понять это бесполезное сообщение :0
>>790906>>790958
#443 #790906
>>790902

>на Xероку read-only system


Очевидно же. Используй Amazon S3
>>790964
#444 #790947
>>790552

>>>Вьюхами в рельсах называются шаблоны на самом деле. А реальным view для них является контроллер - они берут его переменные экземпляра и методы.


>>А что делает настоящий контроллер тогда?


>Настройку вьюхи, вызов операций над моделями, постановка задач в очередь, проверка политик, HTTP-редиректы и т.д.


Ничерта не понял. Ровно это делают контроллеры в рельсах. Не?
>>791786
#445 #790957
>>790573
Да, согласен с тобой. Воркер он как бы априори нечто внешнее. Поэтому нормальная архитектура должна подразумевать его отказ и не должно быть такого ограничения, что очередь воркера становится источником истины.
Просто на небольшом монолитном проекте это удобно - пользоваться реляционкой.
>>791792
#446 #790958
>>790902
Я в /tmp вполне заливал.
>>790962
#447 #790962
>>790958
да, по докам можно в тмп заливать, но толку-то, все данные в фс живут до первой перезагрузки. ( пошел переделывать под амазон-хранилище)
>>790966
#448 #790964
>>790906
Че, правда?
Наверное специально сделали. Потому что облом наступает тогда, когда узнаешь, что вольюмы не персистентны.
#449 #790966
>>790962
У них вроде бы можно отдельный дата-вольюм монтировать и хранить там что нужно. Или ошибаюсь?
>>790970>>791794
#450 #790970
>>790966
Даже в доках рекомендуют, использовать S3

https://devcenter.heroku.com/tags/file-upload

Да и если можно, то ятп только за деньги, но тогда другой вопрос — а зачем этот хероку нужен, когда можно деплоить на амазон и т.п сервисы.
>>791794
#451 #791575
a = test
puts a
>>791724
#452 #791724
>>791575
undefined variable or methods test
#453 #791786
>>790947

>Ничерта не понял. Ровно это делают контроллеры в рельсах. Не?


Вот нафига было так формулировать вопрос тогда?

>А что делает настоящий контроллер тогда?


У меня одна претензия к рельсам - какого черта они рендерят шаблоны в контексте контроллера? Должен быть промежуточный объект - view - который настраивается из контроллера и в контексте которого рендерятся шаблоны. Это нужно, чтобы если мне надо отрендерить шаблон в контексте ДРУГОГО контроллера, мне не приходилось вспоминать, от каких методов и переменных экземпляра контроллера шаблон зависит. Если при создании этого объекта я забуду передать какую-то переменную, то будет исключение ArgumentError. Также мне не придётся дублировать код в контроллерах.
>>791798>>791837
#454 #791792
>>790957

>Воркер он как бы априори нечто внешнее. Поэтому нормальная архитектура должна подразумевать его отказ и не должно быть такого ограничения, что очередь воркера становится источником истины.


Так он и остаётся опциональным компонентом в предложенной мной архитектуре. Данные в реляционной БД по прежнему самодостаточны. Они не будут неверны, если очередь задач вдруг перестанет работать - они будут хранить информацию, что нужная операция ещё не проведена и информацию о том, как её провести. Работает ли воркер на основе Sidekiq, DelayedJob или самописного решения - не важно для твоих данных. Просто Sidekiq крутая штука, и если тебе нужна очередь задач, то стоит взять его. А без очереди задач в любом случае некому будет сделать операцию над данными.
#455 #791794
>>790966

>У них вроде бы можно отдельный дата-вольюм монтировать и хранить там что нужно.


Ты представляешь, насколько это будет дороже Амазона?
>>790970

>Даже в доках рекомендуют, использовать S3


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


На мой взгляд, хероку нужен только если ты не умеешь настраивать деплой нормально. И переплачиваешь ты за это очень большие деньги. Лучше один раз разобраться с Docker и Chef. Когда вся платформа на амазоне - это очень удобно.
#456 #791798
>>791786
Ты же понимаешь, что ты сейчас cells описываешь?
>>791837>>791853
#457 #791837
>>791786
Просто перестань пользоваться инстанс переменными в контроллерах и делай render locals: {}.

>>791798
Cells далеко не везде нужны и хуево дружат с другими гемами, которые например свои хелперы примешивают.
>>791843>>791853
#458 #791843
>>791837

>Cells далеко не везде нужны и хуево дружат с другими гемами, которые например свои хелперы примешивают.



Судя по его описанию того, что он хочет, именно они ему и нужны. А у всех нормальных гемов хелперы лежат в отдельном модуле, который можно заинклюдить.
#459 #791853
>>791837

>render locals: {}


И что, мне имена переменных по всей вьюхе искать? В тому же, логику по прежнему некуда запихнуть (не в шаблон же)
>>791798
Читал я про них, что-то не очень похоже. Cells - это view models, а меня интересуют views
>>791861
#460 #791861
>>791853
По-моему как раз наоборот: cell - это просто view с кучкой хелперов, а view model - декоратор или презентер.

Locals хотя бы будет ругаться, если забыл чего-то передать, для этого. Да и в контроллере видно сразу, что именно явно попало во вьюху и никем не изменилось "где-то там, где ещё видны инстанс переменные контроллера".
>>791864>>791884
#461 #791864
>>791861

>Да и в контроллере видно сразу, что именно явно попало во вьюху


Так я не хочу на каждый action явно вызываеть render.

>что именно явно попало во вьюху и никем не изменилось "где-то там, где ещё видны инстанс переменные контроллера"


Вообще-то контекст контроллера по-прежнему будет доступен

И от дублирования кода это никак не спасает. В каждом контроллере придётся создавать, например, query-объект Ransack на коллекции, хотя это можно было бы делать во view, если туда передаётся коллекция.

Также я хочу сделать вьюхи настраиваемыми. Например, у меня page has many events. На странице /events я хочу отображать ссылку на page каждого event'а, а на странице /pages/1/events это не имеет смысла.
>>791875
#462 #791875
>>791864
Как-то странно ты хочешь чтоб где-то всё явно было, а где-то render не писать - хоти лучше одно. И я точно говорю - cells решают все эти проблемы.
>>791877
#463 #791877
>>791875

>Как-то странно ты хочешь чтоб где-то всё явно было, а где-то render не писать - хоти лучше одно.


Я хочу детерминировать зависимости, но не писать шаблонный код. Вьюха это и делает - определяет зависимости явно, но свой шаблон она рендерит автоматически.

>И я точно говорю - cells решают все эти проблемы.


Ладно, попробую повнимательней почитать документацию.
#464 #791884
>>791861

>По-моему как раз наоборот: cell - это просто view с кучкой хелперов, а view model - декоратор или презентер.


https://github.com/trailblazer/cells-rails#cellsrails
Cells is a generic view model implementation for Ruby.
#465 #791971
пол-четвертого ночи, что-то мозги совсем плавятся, парни подскажите есть два orm запроса вида:

2.3.0 :149 > Employer.where('status = ? and salary <= ?', 1, 50000).first.skills.map(&:name)

=> ["git", "ruby"]

2.3.0 :150 > Employer.where('status = ? and salary <= ?', 1, 50000).second.skills.map(&:name)

=> ["ruby", "rails", "linux"]

Теперь нужно составить один запрос, чтобы получить ответ вида

=> [ ["git", "ruby"], ["ruby", "rails", "linux"] ]

Как это сделать? Можно конечно тупо через итератор пройтись, это будет решением моей задачи, но это означает что будет много запросов к постгресу, а значит это неудачное решение. Собсвтенно, какой метод я упускаю?
>>791977
#466 #791977
>>791971
Вроде так:

>result = Employer.includes(:skills).where('...')


Эти выражения уже не вызовут запроса к БД, потому что значения из таблицы "skills" включены в результат запроса:

>result.first.skills.map(&:name)


>result.second.skills.map(&:name)


>result[2].skills.map(&:name)


>result[100500].skills.map(&:name)

>>791979
#467 #791979
>>791977
Коротко:

>Employer.includes(:skills).where('...').map { |employer| emploer.skills.map(&:name) }

>>791982>>792411
#468 #791982
>>791979
Благодарствую, анон. Ты сильно помог. Спасибо!
#469 #792295
Появилась потребность поднять виртуальное окружение на домашнем комплюкаторе. Комплюкатор стало быть под виндой. Скажу сразу, что поставить линупс не составляет проблемы, но ведь это не rails wayинтересно!
Я себе прикинул небольшой план, выполнив который я, в идеале, получу возможность без особого гемора на домашнем компе поднимать полноценное окружение для работы с различными рельсо-проектами.
И так:
1. Вагрант-бокс с убунтой, гитом и менеджером руби-версий. (Какой? За этим я сюда и пришёл)
2. Виндовая папка в которую с помощью вагрантовой синхронизации менеджер руби-версий будет складывать собственно руби и его гемы.
3. Виндовая папка в которую с помощью вагрантовой синхронизации и гита будут заливаться проекты с ремоут реп.
4. Докер с контейнерами, на видне, со всякими маст-хев технологиями (СУБД-шки, всякие эластики, воркеры, редисы и по мелочам), которые можно спокойно выносить в отдельные виртуалки.
5. Собственно утилита разработки изпадвинды, которая спокойно роется в папке с проектами.
7. .....?
8. PROFIT!
Посему вопросы.
Кто-нибудь с такой ебалой (ну хотябы под управлением линупса) сталкивался? Какой менеджер руби-версий можно взять, чтобы перенастроить ему папку, в которую он закидывает гемы и руби так чтобы их можно было спокойно использовать внутри вагрант-бокса? Докер, докер изпадвинды работает? Лучше чем изпадмака?
Какие вообще подводные камни?
inb4: купи мак, поставь линкус, забей.
>>792298
#470 #792298
>>792295
RVM. Синхронизацию VM не юзай, медленная пиздец. Ну или у меня способ синхронизации такой, хз. Теперь тупо по sftp скидываю файлы, благо RubyMine сам деплоит файлы при сейве.
Докер тут нахуй не нужон.
Поищи готовые конфиги vagrantfile, для рельсов должны быстро найтись
>>792303
#471 #792303
>>792298

>Синхронизацию VM не юзай, медленная пиздец.


Которая из тех, что "искаробки" (помимо NFS)?

>по sftp скидываю файлы, благо RubyMine сам деплоит


Это конечно заебись, но я не планирую использовать рубимайн, и уж точно не планирую хранить файлы проекта внутри виртулбокса, меня интересует именно возможность хранить гемы/проекты/настроечки вне бокса, чтобы при каждом его запуске не скачивать/устанавливать их, а тупо дёргать из синхронизированной папки.
По sftp то можно было и в офисе комп оставить включённым со всем нужным окружением, но это не вариант.

RVM нормально работает с не дефолтными папками для гемов? Не будет проблем потом с ручной правкой PATH-ей?
>>792318
#472 #792318
>>792303
Чувак, ты какой-то хуйни хочешь. Не парься, и делай как все.
>>792322>>792358
#473 #792322
>>792318

>и делай как все


Это рубитред?
>>792358
#474 #792358
>>792318
Двачую.
>>792322
Олсо если хчоешь скорости можно либо поднять гитлаб/гитхаб/битбакет и в конце рабочего дня туда всё заливать и дома дёргать.
Либо есть такая штука как rsync daemon, но подходит только для юниксобогов, на винду уже несколько лет никто не компилирует rsync (хотя может кто-то реализовал протокол в другом какой-нибудь проекте?).
#475 #792411
>>791979

#pluck юзай, зачем куча мап
>>792436>>792448
#476 #792436
>>792411
Какая разница? Запрос уже сделан, он не вызовет SELECT только определённых полей.
#477 #792448
>>792411
перечитай вопрос. Задача была в том чтобы для каждого объекта сформировать _его_ множество nested атрибутов. Плак же все переформатирует в одноуровневый массив, т.е. потом нужно будет разбираться кому какой принадлежит.
>>792454
#478 #792454
>>792448
Наверное он имел ввиду skills.pluck(:name)
#479 #792984
Псст, кто хочет поговорить о нашем боге и спасителе Sequel?
>>793240
#480 #793240
>>792984
Начинай. Я сам недавно перекатился в сабж, мне интересно - чем он от ActiveRecord отличается? Откуда такие восторги, вообще?
>>793271>>793277
#481 #793271
>>793240
Как я понял тут больше ООП и он быстрее.
Было бы заебись, если бы кто-то подсказал ссылку на гайд как безболезненно засунуть его в рельсы.
>>793277
#482 #793277
>>793240
>>793271
Типикал жертвы хайпа. Вы с фронта такие прикатились что ли?
#483 #793292
>>793277

>Типикал жертвы хайпа


Это же весь тред жертв хайпа.
>>793301
#484 #793301
>>793292
Нет.
#485 #793346
>>793277
Какого хайпа, болезный? Руби твой хайпали с 2006 по 2010 примерно. С тех пор хайп прошел (подхватила нода эликсиры и прочие расты) и язык хиреет.

Перекатился - потому что контора основные проекты пишет (брали меня в другой проект под другую технологию).
>>793348>>793353
#486 #793348
>>793346

>язык хиреет


Ещё один кукаретик. При чём тут язык вообще? Ты про рельсы что ли? Так настолько богатую и стабильную экосистему ещё поискать надо.
>>793349
#487 #793349
>>793348
Да, поправлюсь - платформа хиреет.
#488 #793353
>>793346
Они говорят про восторги от сиквела, дубина. При этом пытаются его использовать, начитавшись этих восторгов, но так и не поняв в чём его реальное преимущество. Это не хайп?
>>793454
#489 #793438
>>766884 (OP)

> пора перекатываться на linux


Прыщеблядок, плес. Когда твоя параша сможет в драйвера и софт, тогда и поговорим, а сейчас строго нахуй.
#490 #793454
>>793353
Поведай же нам о преимуществах, о Просветленный!
>>793479
#491 #793479
>>793454
Ты ещё не достиг нужного уровня, чтобы понять, но я попытаюсь: ActiveRecord как паттерн - не самая гибкая вещь, и в огромных проектах модели начинают тащить на себе несколько ответственностей, усложняя код, замедляя поддержку, увеличивая затраты. Sequel позволяет этого избежать не привязываясь к конкретному хранилищу.
>>793497>>793504
#492 #793497
>>793479
Ну это всё итак понятно. Ты бы поведал, как именно это достигается. Я вот смотрел ROM, там паттерн репозиторий, модель не привязана к таблице БД, действия также вынесены в отдельные объекты, т.е. данные, логика и хранение разделены.
>>793498
#493 #793498
>>793497
Вот так и достигается, почему тебе непонятно?
#494 #793504
>>793479
Дык Sequel тот же паттерн реализует. Я ничего не понял из твоего ответа (хотя бы потому что ты смешал ActiveRecord как ORM и паттерн в сравнении с Sequel) и полез читать других просветлённых. https://twin.github.io/activerecord-is-reinventing-sequel/
>>793505>>793520
#495 #793505
>>793504
Там, впрочем, тоже ничего внятного не нашёл.
#496 #793520
>>793504

>Дык Sequel тот же паттерн реализует.


Дак не надо им пользоваться. В этом и понимание. Мало ли че он там реализует, нужно пользоваться тем, что он не навязывает тебе ActiveRecord.
!!fuyn/Mm0/k #497 #793595
Завтра тред перекачу. Прокся кончилась, надо купить, а меня уже в сон клонит.
#498 #793623
Так может кто-то рассказать про связь экшенов и вьюх в рельсах? С разными вариантами которые бывают, а то в пыхофреймворках все просто, есть экшен, он становится адресом, в нем в ретурне можно указать любую вьюху, во вьюху параметры передаются вместе с ее вызовом, и все так простенько вроде. В рельсах же не понял ничо, вроде путь прописываешь сам, а контроллер по дефолту возвращает вьюху с таким же названием.
>>793667
#499 #793646
>>793277
Ебать, хайп вокруг библиотеки, которой почти никто не пользуется, вот это хайп так хайп.
#500 #793667
>>793623
По умолчанию рендерится вьюха с названием экшна. Можно и вручную указать render :new например
#501 #793678
Вечер в хату, Рельсаны, стремящийся в треде.
Есть какой годный простой гем для отображения на сайте города посетителя или его выбора города из селекта? Или советы мудрые как это сделать?
Чет не могу найти, geocoder вроде комбайн на все случаи жизни, а мне чего попроще надо. Да и сайт не сайт, а лендинг для портфолио типа "во как могу".
>>793679>>793713
#502 #793679
>>793678
Никогда не понимал зачем для такого фреймворки.
>>793680
#503 #793680
>>793679
Демонстрационка же.
#504 #793713
>>793678
Просто возьми GeoIP и делай че хочешь.
66 Кб, 699x512
#507 #797346
Ищу рор джуна. Работа удалённо, без строгого графика.

Нужно:
- Работать с Rails 5
- Иметь представление что такое Postgresql
- Уметь работать с git
- Уметь в heroku
- Должен работать в linux\macos (windows юзеры де-факто не подходят, сорян)

Если нет реального опыта работы с чем либо выше или вообще никогда не работал как рор дев, то смело пиши, придумаем что-нибудь.

С меня зп, менторство до стабильного миддла. Сразу указывай опыт, аккаунт на GH, месседжеры для связи и зарплатные ожидания.

Почта alex6DK.doz.ltdANUSgZ$|mailPUNCTUMcj*2om
#508 #800492
Сап
Есть апп на хероку, в нем в админке нету вьюхи которая есть на локали, хз мб апп надо рестартнуть, не подскажете как?
Тред утонул или удален.
Это копия, сохраненная 31 июля 2016 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски