24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!
1. C чего мне начать, чтобы стать рубистом? Отличным началом будет Eloquent Ruby, The Well Grounded Rubyist, Programming Ruby (The Pragmatic Programmers Guide), Ruby Way, Metaprogramming Ruby. Пишем свой код во время чтения. Документация по стандартным библиотекам http://ruby-doc.org/ Можно пройти руби онлайн - http://tryruby.org/levels/1/challenges/0 Не веришь в свои силы? Прочитал уже книжек много и силы свои хочешь познать, сделай - http://rubykoans.com
2. Какой gem посмотреть, чтобы понять, как писать код? Лучше всего посмотреть небольшие gem'ы вроде cancancan, devise, camping.
3. Есть ли GUI для руби? Да. Есть обвязки к Qt, GTK, wxWidgets, Shoes, fxruby (одобренный).
4. Можно ли писать на руби мобильное ПО? Да. Для iOS есть RubyMotion промышленного качества, для Android - заброшенный разрабами, лагающий и падающий ruboto. Для WinPhone До сих пор ничего не завезли.
7. Хорошие практики по руби и рельсам? Читаем Rails AntiPatterns, смотрим Rails Best Practices, также неплохо посмотреть Rails Recipes. Еще продвинутое чтиво - http://tutorials.jumpstartlab.com/
13. Где можно задать глупые и не очень вопросы? - здесь - stackoverflow.com - в рассылке rails-talk - оф. форум рубей http://www.ruby-forum.com
14. Как фокнуть\сделать фичу\исправить баг, сложно ли это? Нет, не сложно. На rubyflow появляется много новостей с реализацией новой библиотеки, вы можете сделать тесты, фичу для него, старые либы также обрастают багами, улучшайте их! пишите код.
15. В чём писать код? Atom, Brackets, Sublime Text, TextMate, Vim, GNU Emacs. Для особо упоротых энтерпрайз-макак есть rubymine, плагины к эклипс и нетбинс.
16. Можно ли писать на руби с под windows? Можно, но придется обрасти костылями в виде виртуальной машины, придется сходу разбираться с Vagrant и многим другим. Чем дальше ты продвигаешься, тем ближе становится ясно, что пора перекатываться на linux/mac
17. Руби язык одного фреймворка! Нет, есть еще Sinatra, Lotus, Volt, Grape, отличная штука для DevOps - Chef. Годные генераторы для бложиков - Jekyll, Middleman.
18. Правильное произношение Ruby? Руби, за любые другие варианты ссу на голову.
TODO лист для ньюфагов: И так, ты поставил руби, уже сгенерировал свой первый проект rails new pidaras Начни уже с платинового пути, блог >> клон твиттера >> своя имейджборда >> свой гем >> дальше сам придумаешь. Рекомендации: 1. Для блога, создать роли, Админ, Пользователь (можно использовать паттерн form object). Прикрутить лайки, комментарии. 2. По твиттеру, следуя гайду Хартла, пиши все то что он предлагает в качестве доп. заданий, например оповещение по нику (@eblan: привет) 3. По имиджборде: воссоздать по возможности полный функционал, в этом случае придется ознакомится с javascript/jquery/coffeescript, но тебе так или иначе придется. Еще хорошей фичей будет использование background job и крон тасков (sidekiq, whenever), чтобы заполнять свою борду тредами и постами с другой борды (можно использовать api двача, чтобы вытягивать треды и посты - https://github.com/ID25/api_2ch)
Хорошим финалом будет деплой, это пожалуй самое болезненное, и ничего общего с деплоем на heroku, где тыц тыц и готово. Придется поковыряться со смежными вещами и узнать много нового, уже устоявшийся гем для таких дел - Capistrano.
Не забывайте спрашивать у анонасов вопросы, код лучше показывать через gist или pastebin с подсветочкой. Ну, а мы открываем очередной Ruby Thread.
Решил посмотреть на примеры русскоязычных резюме (конкретнее — блока "опыт работы") у чуваков с ~3 годами из рубистов. Первым же результатом (упорядочил по убыванию з/п) на hh.ru получил вот это: http://hh.ru/resume/ed6d42fd0000e5fc750039ed1f375033614b41?query=Ruby+on+Rails > 23 года > опыт работы 3 года > запросы 10 000 USD > (2 года назад) Формирование команды Ruby on Rails разработчиков, их обучение. Контроль качества выполненных работ Всё как в соседнем треде, где сразу после школы — синьоры, а в 21 уже тимлиды. В "опыте работы" больше ничего толком и нет, зато в overview потоки опухшего от мании величия сознания, без запятых — дабы не прерываться. Пацаны, это так нормально, да? Так и нужно делать, чтобы тебя на работу мечты пригласили? Впрочем, я бы не запостил это сюда, ели бы меня не добило вот это: > упоминание стайл гайдов как своей особенности > EventMachine в одном ряду с рельсами и синатрой > перечисление СУБД, поисковых движков и компонентов Rails как "инструментов разработки" > Я знаю все основные вещи такие как jQuery, underscore > На последней работе я имел опыт работать тимлидом и менеджером.
>>560290 Если бы там не было про 10k$, то резюме-то вроде нормальное (хотя если нет упоминания про классические алгоритмы и структуры данных, то не оч конечно).
>>560313 Ага, то есть грамматика нативного языка на 5/10, путаный, неструктурированный наброс ссылок на технологии и самохвальство — это уже достаточно неплохо? Я подобный вопрос некоторое время назад задавал в апворк-треде в воркаче, и там пояснили, что это удел индусов. В принципе, я почитал несколько overview top-rated'ов там и пришёл к выводу, что так оно и есть. И ведь этим людям поручают кого-то там ОБУЧАТЬ!!!1321
Дело в том, что моё резюме сейчас занимает 3-4 листа, пикрелейтед советует ужать до 1. В то же время, не могу найти адекватного резюме, которое бы не ебало лаконичность в рот.
>>560348 >которое бы не ебало лаконичность в рот. Кстати, ведёшь себя как чурка которая только из кишлака. То что ты начинаешь материться на анонимном форуме, где за тобой никто не смотрит показывает, что нет у тебя определённого личностного уровня, морали. Тебе не руби надо учить, а элементарный этикет и просто поднимать уровень своего сознания на более высокий.
>>560360 > Термины CV и резюме часто применяются как полные синонимы и обозначают документ, который соискатель предоставляет потенциальному работодателю, выставляя свою кандидатуру на открытую вакансию. В данном случае я не понимаю разницы. Ты не мог бы объяснить? Вот пример: резюме птушника colleague student с английской вики. У меня в таком же формате описания должностных обязанностей и достижений получается тупо в 3 раза больше, значит ли это, что после 4 лет работы résumé магическим образом превращается в circullum vitæ? Или нужно уменьшать детализацию описаний?
Так часто бывает, кажется что тот другой чел казел и собеседование у тебя бы он не прошел, но это как на зло ничуть не мешает ему быть успешным, а тебе заваривать доширак. Бывает наоборот, кажется что няша, а успешности-то нету. Успешность это вообще отдельное искусство, которое хоть и кореллирует с грамматикой и качеством работы, но часто встречаются занятные исключения.
Другое дело, что резюме на хх это ни разу не показатель успешности, и бугуртить-то собственно не из-за чего. Или ты собрался передрать у него? Не надо, если тебе этот стиль не нра, чего давиться-то вокруг миллиарды других резюме, которые могут являться прекрасными источниками для вдохновления.
>>560386 Да не собрался я передрать ни у кого, упаси б-же! Я на днях тут нашёл ту картинку про реакцию на резюме HRа и айтишника и хочу понять, какой стиль повествования в резюме актуален. Ну, знаешь, чтоб всем нравиться, ведь это необходимо для того, чтобы не упустить работу своей мечты. Есть идея взять картинку Ruby on Rails Competencies из ОП-поста, выделить в ней те области, которые пересекаются с моей областью компетенции, и прикрепить ссылку на полученную картинку к резюме. Это позволило бы убрать по крайней мере перечисления в резюме, оставив только самые искабельные. Как думаешь, анон, годная тема?
>>560425 В электронном CV тебе какая разница, это же не листок а-четыре. Пиши что, где, когда делал. Тем более резюме можно несколько штук сделать. Одно полное (где описываешь как писал проги в НИИМАШ'е каком-нибудь, заканчивая сайтиками на руби), а второе это то на которые ты ставишь и там уже только про руби.
>>560445 Резюме, безусловно, крутое. Но там специфика такая, что каждый проект уникален. А если ты скажешь, что делал очередное крудошлёпство для очередной компании, очередную ERP/CRM/соцсесть, добавишь стандартных тегов вроде SaaS, MVC, Agile, REST, то чем ты будешь лучше Ерохина? Ведь Ерохин пишет всё то же самое, только ещё двигает пальцами, как будто УЖЕ рефакторит твой код и рычит, как будто охлаждает процессор своего компа, исполняющего нагрузочное тестирование.
Кстати, удивлён, что её вовсе не парит упоминать о работе в полусекретных проектах. В AT Consulting народ стремается упоминать на публике МВДшные проекты, несмотря на то, что никто за исключением овнеров редких проектов никаких форм не подписывал.
>>560478 > Та картинка из оп-поста слишком мелкая ее увеличивать надо. Зато охват будет виден сразу. Сама картинка-то будет выглядеть так: http://s29.postimg.org/yph220x91/Rails_Competencies.png Открываешь ссылку → видишь полупрозрачных облакоподобных выделений → кликаешь→ читаешь подробнее.
Меня там только ветка "IDE" смущает. При чём тут IDE!? Я что должен сделать свой IDE с перечисленными функциями? Или научиться пользоваться IDE? А если я успешнее справляюсь с 7 окнами SciTE (семантически поделенными) и Dolphin в углу, чем коллеги, которые уже при одновременной работе с 10 файлами теряются в своём саблайме и вынуждены постоянно переоткрывать вкладки, вспоминая, на чём остановились.
>>560466 > В электронном CV тебе какая разница, это же не листок а-четыре Так ведь они же их РАСПЕЧАТЫВАЮТ, а потом ПЕРЕЛИСТЫВАЮТ за столом во время собеседования. > Одно полное (где описываешь как писал имиджборду на питоне каком-нибудь, заканчивая спамботами на руби) Не, я такое писал только в своём самом первом резюме, чтобы меня хоть куда-то взяли.
Посоны, я чет совсем глупый, не понимаю, как использовать стейт-машину. Недавно наткнулся на этот паттерн в некоторой литературе это называют паттерном и обнаружил, что это как раз то что нужно в моем проекте - у сущностей есть статусы, которые отражают жизненный цикл и все вытекающее, типа только в такой статус можно перейти, при переходе нужно сделать то-то, если не выполняется условие, то нельзя и т.п. Я посмотрел внимательно имеющиеся гемы (state_machine, aasm, wokflow, states_man) и все они работают по принципу события (ну как и полагается конечному автомату), то есть: ЯВНЫЙ ВЫЗОВ СОБЫТИЯ -> КОЛБЕКИ ПЕРЕХОДА -> НОВОЕ СОСТОЯНИЕ Ну то есть если я хочу опубликовать статью, то я должен вызвать @article.publish.
Но ведь на практике так редко делают. В большинстве случаев статусы меняются селектом выбора статуса в общей форме, наряду с другими полями. Я сразу извиняюсь за тупость, но я не понимаю, а как использовать стейт-машину в этом случае - в случае редактирования общей формы с селектом статуса? Отслеживать в befor_save :check_status_changed и если изменился, то вызывать self.событие_для_перехода_в_новый_статус() ужасно да и не получится, статус-то уже другой. Это как раз то, от чего стейт-машина должна избавлять. А как тогда?
Я наверное чего-то не понимаю, потому что это правильная практика и популярные гемы. Я не могу поверить, что их используют только путем вызова события. Но все примеры, которые я нашел, действительно используют эти гемы только путем вызова события и в интерфейсе нет селектов - публикация осуществляется кнопкой и отдельным контроллером.
>>560526 А как он должен выбираться? Классический пример для стейт-машин в этих гемах это заказ в интернет магазине (new, in_process, shipped etc). Практически все эти статусы меняются вручную.
>>560529 Есть два стула. На одном ты редактируешь все поля на одной форме. По мере того, как у тебя кол-во полей увеличивается, вместе с тем увеличивается опухоль мозга у контент-менеджера. На другом ты прикручиваешь стейт-машину, херачишь по форме на каждый стейт, а переход между ними выполняешь кнопкой "ПОЕХАЛИ". По мере того, как у тебя кол-во полей увеличивается, ты увеличиваешь кол-во подформ и, опционально, кол-во стейтов.
Анончики, начал угорать по бекенду, по Руби, по хардкору с нуля без регистрации и смс. Немножко заглянул на предстоящие материалы, и на всех курсах, в книжках советуют перекат на мак или линукс. Я боюсь сносить свою лицензионную 7-ку, хочу установить виртуальную машину линукс. сперва вникнуть в ход дел. что посоветуете? какие тонкости? Краем уха слышал какие-то Убунты есть, Дебианы. Что лучше мне так сходу?
Скачай livecd Ubuntu, Kubuntu и загрузи их в виртуалку, даже устанавливать ничего не надо. Потыкай и посмотри как тебе и что, отличия в том, что Ubuntu сильно привязана к решениям Canonical и там пропихивают всякие локальные разработки, когда Kubuntu использует в качестве рабочего окружения KDE, который можно без проблем накатывать на любой дистрибутив линукса, в отличии от Unity из Ubuntu.
Оба дистра основаны на Debian карочи, но у каждого свои наборы стандартного софта, работа с пакетами одинаковая через apt-get.
>>560574 Ubuntu/Mint. Второе - форк первого, чуть больше софта в тсандартных репах, чуть другие оконные менеджеры (юнити сосет жеж). Придется немного привыкнуть к алиенской логике линекса и чуть попердолится в соснольку.
>>560574 Ну смотри, ставишь VirtualBox, ставишь на него юбанто линакс, обязательно устанавшиваешь VirtualBox Guest Additions и в принципе все - можно пользоваться.
>>560609 Что ты не понял, в виртуалку нужно ставить легковесную систему, потому что виртуалка - это тормоза. Да и на основной комп нужно ставить легковесную систему. Xubuntu легче Ubuntu и значительно легче Kubuntu.
>>560585 2015 год, 16гб оперативки и ай5 может позволить себе даже школьник, откладывающий с завтраков на новый игровой компьютер. Хватит на штук 30 КДЕ с падающими плазмами.
Поставит Xubuntu и столкнется с тем, что кроме "меньше ресурсов жрёт" плюсов то у неё собственно говоря и нет. Говорю как человек, который на Xubuntu сидел очень долго.
>>560619 Да, Минт кстати тоже очень хороший выбор. Особенно на Cinnamon, вообще сказка. Некий компромисс между KDE и XFCE - жрёт меньше первого, но гораздо дружелюбнее второго.
>>560609 Консолечка то? Никакой. Только это не iOS, а OS X, первая это на айфонах. В обоих стандартные шеллы-баши, короче ты можешь использовать в обоих одинаковые инструменты без смс и каких-либо проблем. Даже можешь один шелл в обоих системах использовать, zsh например.
Асло, если для тебя терминологии пока много, то просто накати уже какой-нибудь прыщедистр из перечисленных и попробуй на деле, станет всё понятнее.
>>560621 Уже ответил про легковесную систему, но повторюсь. В этом дроче нет никакого смысла, планка оперативки стоит косарь рублей, хватит на десяток кед которые утекают как в песнях Мумий Тролля.
На современном пека с SSD и подобными перделками система грузиться за секунду. А если совсем упоротый на легковесности, но XFCE тяжелое говно, которое можно заменить тайловыми менеджерами или опенбоксом каким-нибудь.
>>560625 >Поставит Xubuntu и столкнется с тем, что кроме "меньше ресурсов жрёт" плюсов то у неё собственно говоря и нет. Равно как и минусов. Отсутствие мокрописек - скорее плюс. Процессор пусть занимается тем, чем надо - вычислениями, а не ебаной плазмой.
>>560627 У меня ноутбук с IPS матрицей, который меня всем устраивает (для йоба вычислений я и амазон могу арендовать), и я даже не в курсе, сколько у него оперативки у меня же не кеды. Ты сам в виртуалку кеды ставил когда-нибудь?
>>560628 Вычислениями чего? Вот чем ты занимаешь свои 4-8 ядер? Сейчас даже рендер всюду через GPU. Хочешь оставить процессор для вычислений - поставь i3 или ещё лучше bspwm какой-нибудь. А это ниасиляторство с желанием показать модный скринфетч с всего 150мб оперативки ест из 8 гигов, круто же!
>>560633 У меня процесс xorg сейчас жрет 0,3-0,7%, мне достаточно. Вычислениями - да чего угодно, я ж программист, у меня бывает по 2-3 расчета запущены одновременно. Может быть 2-3 расчета и фильм запущен.
>>560643 /s/-блядок закукарекал. Я вообще характеристик не помню, даже процессор. Мне была важная шустрая CUDA и IPS матрица. У меня asus N550J, сам можешь погуглить.
>>560650 Это точно, человек знающий какой у него процессор (хотя бы примерно) и сколько у него ОЗУ, ну просто где-то на одном уровне наркоманом сидящим на крокодиле, а то и хуже.
>>560650 Олсо, эта подколка работает только если у человека нет этих дорогих часов или автомобиля, а про свой автомобиль (компьютер) знать вполне нормально.
Хозяин кабинета заметил его взгляд и посмотрел на свои часы. — Нравятся? — спросил он. — Еще бы! — сказал Татарский. — Если не ошибаюсь, «Piaget Possession»? Кажется, стоят семьдесят тысяч? — Пеже позесьон? — Тот поглядел на циферблат. — Да, действительно. Не знаю, сколько стоят. — Господин Пеже со своими пацаками, — сказал Морковин. Хозяин кабинета явно не понял шутки. — Вообще, — быстро добавил Морковин, — ничто так не выдает принадлежность человека к низшим классам общества, как способность разбираться в дорогих часах и автомобилях.
>>560656 Жопочтец Пелевина незаметен. Какая это классика? Разве что уровня рунете и мемчиков о дорогих айфонах и переплатах за бренд от любителей работать в сфере обслуживания заводов и общепитов
- Главная мысль, которую человек пытается донести до других, заключается в том, что он имеет доступ к гораздо более престижному потреблению, чем про него могли подумать. Одновременно с этим он старается объяснить окружающим, что их тип потребления гораздо менее престижен, чем они имели наивность думать. Этому подчинены все социальные маневры. Больше того, только эти вопросы вызывают у людей стойкие эмоции.
- Вообще-то мне в жизни попадались и другие люди, - сказал я с легкой иронией.
Иегова кротко посмотрел на меня.
- Рама, - сказал он, - вот прямо сейчас ты пытаешься донести до меня мысль о том, что ты имеешь доступ к более престижному потреблению, чем я, а мой тип потребления, как сейчас говорят, сосет и причмокивает. Только речь идет о потреблении в сфере общения. Именно об этом движении человеческой души я и говорю. Ничего другого в людях ты не встретишь, как не ищи. Меняться будет только конкретный тип потребления, о котором пойдет речь. Это может быть потребление вещей, впечатлений, культурных объектов, книг, концепций, состояний ума и так далее.
>>560653 >а миллиардеры коллекционируют дорогие автомобили Да. >и идеально в них разбираются Нет. Идеально разбираются в дорогих автомобилях унтерменши, которые себе не могут их позволить.
>>560658 Это не я кому-то пытаюсь доказать, что если я не помню нахуй мне не нужные характеристики моего ноута, который я покупал в конце 2013 года, то мне нужно идти вон из профессии.
>>560659 Это кто тебе такую глупость сказал? Забавный ты, туповат немного. Ты видимо ещё не понял, что люди обычно коллекционируют и собирают то, что им нравится, следовательно как раз таки и разбираются в этом. Жлобами называют именно тех, кто строит уебищные золотые домики аля Янукович называя это дизайном читай - не разбирается и покупая золотые автомобили за миллионы, опять таки на разбираясь в этом. Ведь они слишком хороши для этого, да?
А выставлять своё невежество аргументацией уровня ЭТО ДЛЯ НИЩИХ Я В ЭТОМ НЕ РАЗБИРАЮСЬ настолько жалкая попытка его защиты, что даже объяснять лень.
>>560660 Не чувак, окей, у меня вот не один ноутбук, и я могу забыть что там в каком, но просто посмотреть эту информацию без гугления ты можешь или нет? Тем более мы все тут прекрасно понимаем, что ноутбук это всё таки не часы, туда и память можно поставить и диск сменить, а на некоторых процессор и ведеокарту. А если ты разработчик на ПК, то такая инфа у тебя вообще должна в подкорку откладываться сама собой, без лишних усилий: у меня такой-то проц, диск, рам. Хотя может ты разработчик на HTML?
>>560666 Чтобы HTML рендерился быстрее? Только богу ведомо зачем разработчику на HTML понадобилась CUDA, особенно если он не знает сколько у него оперативки.
>>560666 Ты либо очень толстый тролль, либо очень тупой. Начнем с CUDA. Учитывая, что ты у нас мамкин умник и не забиваешь себе голову таким говном, то как же ты выбирал кампуктер с "быстрой CUDA" не ориентируясь на железо, когда технология привязана к конкретному железу? И я говорю сейчас о конкретных моделях, а не абстрактных характеристиках, но ты ведь просто сказочник и говоришь умные словечки просто так, либо очень тупой.
Ну и цитата Пелевина. Хех, Пелевин прекрасный писатель. Настолько хорошо изучить типичный контингент туповатых предпринимателей с лепрочки, что продает им их же тупость под приправой постмодерна, о незатейливых и успешный бохатых людях, которые не думают о таких мелких вещах. Именно поэтому бизнеса в СНГ нет, а работодатели такие скряги. Наживаясь на "осуждателях потреблядства" коим является русский Ванёк с печи, который познал истину тупых потреблядей. Смеялись всей США короче, где если ты сделаешь покупку не обдумав её тысячу раз - тебя назовут дауном, который не может в капитализм и экономию.
>>560669 Ну ты чего так наезжаешь на человека? Может он уже на таком уровне, что когд ахочет купить антивирус, то случайно покупает всю фирму и плюс все над ней стоящие. Чего мелочиться-то.
>>560669 На каком-то из сервисов типа яндекс-маркета сделал фильтр по размеру дисплея, ips, ssd, выбрал видюху nvidia потоповее на тот момент. А, перед этим еще зашел в магаз и посмотрел, какой размер дисплея будет удобнее всего. Осталось моделей 10, просмотрел все, выбрал и забыл. А как еще можно покупать ноут? У нас нет никакой дискуссии, ты просто выебываешься своей невротъебенной крутизной: ты помнишь характеристики своей пекарни. Наверное еще знаешь, сколько гигов памяти в твоей мобилке и версию прошивки своего роутера. Тыж программист.
>>560672 Представь себе, я же не даун которому трудно запомнить простейшие характеристики. Это не ты случайно спрашивал про командную строку iOS и линукс? Вообще забавно, как в нашем мире такие тупые люди могут тем не менее иметь возможность работать и получать за это деньги и вроде как считаться специалистами, диво. Олсо, тыжпрограммист, я тебя не утюг прошу ведь починить. С логикой у тебя что-то не то.
>>560672 >Наверное еще знаешь, сколько гигов памяти в твоей мобилке и версию прошивки своего роутера. Лол, ну я же не баба которой хахаль покупает айфон шоб було как у остальных куриц. Поскольку я активно использую телефон и как наладонный компьютер, то естественно, что я о нём знаю очень много. А вот версию прошивки роутера не помню, там слишком сложный номер всё таки. Кончай пропагандировать невежество.
>>560673 То, что ты можешь запомнить простейшие характеристики, не делает тебя ни дауном, ни не дауном. Это вообще к твоим качествам как программиста относится весьма косвенно. Когда у меня первый компьютер появился за бешеные по тогдашним временам деньги, я знал его характеристики наизусть. P-III 500 coppermine/128 mb dimm/fujitsu 13 gb fujitsu/creative geforce 256. Сейчас у меня машина где-то пятая, причем есть десктоп, ноут, ноут жены и ее десктоп, мне просто похуй на все эти цифры, которые никак на меня не влияют. Уже лет пять как я прогресса вообще не ощущаю, это раньше производительность по экспоненте росла. >>560674 А я зашел и попросил самсунг с диагональю 4.3. 4.3 не было, взял 4.5. До этого у меня лет пять была nokia n900. И знаешь... я ведь тоже не помню, сколько там памяти было.
>>560677 Чувак, но с тебя ведь не количество шейдерных блоков в видеоускорителе спрашивали и не битность шины. Даже в винде когда открываешь замералку производительности там всегда память показывают, это такая же характеристика как диагональ экрана сотика, если тебе так понятнее. И очень забавно видеть человека, который что-то там говорит про CUDA и в принципе не парится по поводу характеристик железа. Уж не говоря, про то что даже такие творческие люди как рисователи макетов сайтов в фотошопе дофига так задрачиваются с видеокартами, жёсткими дисками, ОЗУ, кещированием, бекапами. «Я не покупаю это», как говорят американские пиндосы.
Карочи, лёль ставь кеды с плазмой, у тебя 12 гигов в нотике. Правда не знаю как у тебя гибридная графика заработает. Говорят бамблби стал нормик.
>>560683 >Чувак, но с тебя ведь не количество шейдерных блоков в видеоускорителе спрашивали и не битность шины. У меня вообще никто ничего не спрашивал. Если ты не помнишь, я написал, что не ебу, сколько у меня оперативки, потому что xfce летает. На четырехгиговом десктопе xfce тоже летает. И на нетбуке acer он нормально работает. Короче, он работает везде, можно не ебать мозг, и я так и не понял, какие плюшки дают кеды, кроме того, что можно гордиться тем, что ты не нищеброд и купил планку памяти ради этих самых кед. Лучше, что есть в кедах - это виджет с красным шариком, который можно бросать, а он отскакивает. Остальное, типа konquerror'а, я и так поставить могу без установки плазмы. >И очень забавно видеть человека, который что-то там говорит про CUDA и в принципе не парится по поводу характеристик железа. Зачем мне париться об этом? Когда нужно добиться перформанса на сервере заказчика, решают бенчмарки через ssh. Для себя - тоже как-то похуй, не будет хватать - инстансы на амазоне во Франкфурте стоят 20 центов в час. >у тебя 12 гигов в нотике. Правда не знаю как у тебя гибридная графика заработает. Говорят бамблби стал нормик. В моей версии 8, бамблби работает. Главное, сразу поставить нужное ведро и проприетарные дрова для последней версии CUDA.
>>560685 Оу! Мне казалось ты тот чувак который спрашивал про то, что ему вместо семёрки поставить. Сам я юзаю кеды, но тебя от крысы отговаривать не буду (она у меня на всяких livecd/usb). Замечу, что кеды куда более конфигурабельнее xfce/gnome.
>>560688 Тот чел зашел в руби тред спросить за руби, при чем тут я вообще? Мой первый пост тут - >>560621 . И я по-прежнему советую не ставить кеды на виртуалку. Я так раньше делал - ничего хорошего. Если знаний нет для ubuntu server, лучше всего взять самый легкий вариант, но без фанатизма типа тайлового вм. Lubuntu или xubuntu, но lubuntu я не пользовал и советовать не могу.
>>560585 Ну, у меня KDE на основной системе не жрёт ресурсы как не в себя на дебиане. Вот на виртулке (тем более VirtualBox) конечно графика будет подтормаживать, но это решается отключением эффектов или вообще композита. Ну а в «убунту-сервер» любой дистрибутив превращается отключением графической загрузки.
Самое интересное, что любой тред с выбором дистра линукса рано или поздно скатывается в срач. По теме - минт с циннамоном, жрет немного, выглядит приятно.
>>561273 Это проблемы даунов в первую очередь, которые не знают что им нужно, а не ехать хотят. В линуксе всё для этого есть уже, поэтому мак тоже не нужон.
Здравствуйте, аспарагусы Вопрос имею по turbolinks.
Хотелось бы при клике на линк ( link_to product.title, product, data: { remote: true, toggle: "modal", target: "#ajax-modal"} ) выводить данные о продукте в модальном окне.
1. Делаю модалку в index.html.haml, там же где и список продуктов
>>561512 Данные, которые ты получаешь аяксом (@product.to_json), тебе на клиенте вставлять нужно. Повесь ujs-овый event на свой линк, который будет это делать.
Рубисты-рельсаны, а подскажите-ка годных материалов для освоения работы с вебсокетами (в частности, для создания чатика), пожалуйста. Конкретно интересует, как это можно реализовать с помощью Руби/Рельс.
Вечер в хату рубибоги. Помогите, заебался, сил уже нету. Нужно сделать отправку письма владельцам сайта с почтой клиента, когда на странице с подпиской клиент заполняет поле email и нажимает кнопку "подписаться на новости".
В контроллере mailers/subscribes_mailer.rb у меня такая хуйня:
[CODE]undefined method `SubscribesMailer' for SubscribesMailer:Class [/CODE]
Умные люди подсказали что я делаю неведомую хуйню, и нужно создавать пользователей, таблицу users со столбцом send_news:boolean. Галку send_news выводить на форму - отдельную или просто в профайле юзера. Создать таблицу с новостями, где будут писаться новости. А далее создать мейлер, которым будет вся эта хуйня рассылаться.
def article_mail(subscriber_id, subject, article) @subscriber = User.find subscriber_id @article = article mail(to: @subscriber.email, subject: "We have news! #{subject}") end end[/CODE]
Дело в том, что я не хочу заводить юзеров вообще. Мне нужно только чтобы почта которую ввели на сайте отсылалась по определенному адресу автоматически, не более. Неужели таки придется заводить вот это все? Таблицы эти со списком подписчиков? Подскажи анон, молю.
>>561634 > button_to "Добавить", SubscribesMailer.subscribe > mail to: '[email protected]', > Умные люди подсказали что я делаю неведомую хуйню Правильно подсказывают.
Короче, я бы сделал так:
[code] class Subscriber < ActiveRecord::Base validates :email, presence: true #ну и формат/уникальность/етц можно добавить end [/code] [code] class SubscribeController < ApplicationController def create subscriber = Subscriber.create if subscriber.persisted? SubscribesMailer.subscribe(subscriber).deliver_now # Отдать что-то для фронта else # Отдать что-то для фронта с ошибкой end end
private def permited_params params.require(:subscriber).permit(:email) end end [/code]
[code] #config/routes.rb #... post :subscribe, to: "subscribe#create" #... [/code]
На вьюхе: [code] <%= form_for :subscriber, url: sunscribe_path do |form| %> <%= form.submit %> <%= form.email_field :email <% end %> [/code]
Так не будут нужны пользователи. Список подписанных емайлов будет сохранён в Subscriber. Потом, когда у тебя будут новости просто дёрнешь список всех подписчиков и отправишь им письма.
>>561634 >В контроллере mailers/subscribes_mailer.rb у меня такая хуйня:
Это хуйня должна лежать в моделях.
>В вьюхе, где находится форма отправки:
Для формы отравки используй хелперы
У тебя каша в голове. Для того, чтобы со всем этим разобраться, прочти http://rusrails.ru/ всё, что найдешь в разделе содержание. Управишься за пару суток, После этого все вопросы сами отпадут.
>>561656 Сначала ругался на то, что нету таблицы, создал таблицу с единственной колонкой subscriber, сделал миграцию, получаю: Missing template subscribe/create
>>561820 Да это то я понял, где он находиться должен. Что в нем быть то должно? Это из этого куска сюда кидает? SubscribesMailer.subscribe(subscriber).deliver_now # Отдать что-то для фронта else # Отдать что-то для фронта с ошибкой end
Так поцантре, по шапке я понял что нужно дохуя читать чтива, да еще и на энглиском. Вопрос : я стартанул курс руби на кодакадеми, бросать сразу или докурить до конца и пересесть на чтиво?
>>561832 Использую инструменты для дебага, Люк! И смотри стек вызовов. Кидает тебя из метода subscrie, определённого в классе твоего мейлера. Ты фак по рельсам вообще читал? После каждого вызова метода мейлера вызывается соответствующий его названию шаблон, чтобы как раз результат рендера этого шаблона-то и послать по почте. Это аналогично работе actions (методов) в контроллерах, где в конце по умолчанию рендерится шаблон, который уйдёт в браузер. Ты можешь, конечно, переопределить это в теле твоего мейлинг-метода.
>>560367 >Кстати, ведёшь себя как чурка которая только из кишлака. То что ты начинаешь материться на анонимном форуме, где за тобой никто не смотрит показывает, что нет у тебя определённого личностного уровня, морали. >Тебе не руби надо учить, а элементарный этикет и просто поднимать уровень своего сознания на более высокий. Я ебал тебя в рот, вылупок ёбаный. Где своими говном забитыми мозгами ты увидел взаимосвязь между моралью и этикетом в реальной жизни и возможностью написать "ёбаный" на анонимной, блядь, борде?
>>561842 Вот что пишет в логи эта вся рубинедопрограмма:
Started POST "/subscribe" for 127.0.0.1 at 2015-10-19 23:58:08 +0400 Processing by SubscribeController#create as HTML Parameters: {"utf8"=>"✓", "authenticity_token"=>"ocITEok5QV79M4Rz1yiRoL2cSSYt1XofBg3kT9TaG/0=", "commit"=>"Save Subscriber", "subscriber"=>{"email"=>"тут реальный email"}} (2.8ms) BEGIN (0.9ms) ROLLBACK Rendered subscribe/create.html.erb within layouts/application (1.0ms) Rendered layouts/_header.html.erb (101.2ms) Rendered layouts/_footer.html.erb (0.3ms) Completed 200 OK in 438ms (Views: 126.7ms | ActiveRecord: 14.6ms)
>>561851 Ты сабмитнул на сайте форму "/subscribe" с данными {"subscriber"=>{"email"=>"тут реальный email"}}, которые у тебя никуда не передаются дальше (судя по коду). У тебя попыталась создаться некая запись в базе (видимо, Subscriber), но не прошла валидацию (а значит, почта не отправилась вообще). Сгенерилась страничка subscribe/create.html.erb within layouts/application и вернулась тебе на клиент в ответ на сабмит твоей формы (формы подписки).
Если ты действительно написал: def create subscriber = Subscriber.create то не удивительно, что запись не валидировалось — в Subscriber::create же не был передано никаких данных, лол.
Ананасы, скиньте ссылок на годные проекты на гитхабе, написанные на рельсах, поглядеть. А то я в тупике немного, твитор сделал, агил веб девелоп усвоил, красноязычный руби прочел, хочется поглядеть на серьёзные проекты.
>>562138 Ну ты вообще осознаёшь что ты делаешь? Или что руки сами набирают? У тебя subscribe не дёргает mail. Единственное что он делает - возвращает хэш. На какие адреса и что он у тебя должен слать - отдельный вопрос. Давай ты сначала осмыслишь что хочешь сделать, потом подучишь матчасть. Потом внимательно посмотришь на свой код. Есть подозрение что вопросов не останется.
>>562390 > Давай ты сначала осмыслишь что хочешь сделать Я хочу сделать так, чтобы когда пользователь заполнит поле с почтой и нажмет кнопку - с сайта отсылались два письма. Одно администратору сайта о том, что появился новый подписчик (с его email в теле письма), и второе самому пользователю, о том, что он подписался. Никакие базы с пользователями заводить мне не требуется по этой задаче, рассылка будет вестись не с сайта, а с почты администратора.
>>563296 Для начала я установил mailcatcher (как посоветовал мудрый анон) который перехватывает всю почту, и отображает ее в своем web интерфейсе. Это нужно чтобы не отсылать тестовые письма (в процессе разработки и отладки) на реальные адреса.
В config/environments/development.rb было добавлено две строчки отвечающие за доставку почты методом SMTP на адрес localhost и порт 1025:
Далее создал модель контроллер и представление Subscriber с одной колонкой в таблице - email, в которой и будут храниться все почтовые адреса пользователей подписавшихся на рассылку (имена мне были не нужны) командой: rails g scaffold Subscriber email:string
В модели Subscriber я добавил валидацию при записи значений в базу данных:
которая проверяет наличие и уникальность email который будет помещен в базу данных.
Следующим шагом было создание mailer'а командой: rails g mailer subscribe_mailer
В subscribe_mailer.rb был изменен адрес отправителя на тот который был мне нужен, в поле: default from: "[email protected]"
Был добавлен метод subscribe_email, который в качестве параметра принимал subscriber, созданный ранее и с помощью метода mail отправлял письмо пользователю на адрес который находился в subscriber.email.
def subscribe_email(subscriber) @subscriber = subscriber mail(to: @subscriber.email, subject: "New subscriber" end
Далее в views/subscribe_mailer/ были созданы два файла: subscribe_email.html.erb и subscribe_email.text.erb c содержимым писем отправляемых пользователям.
В метод create контроллера subscribers_controller была добавлена строчка SubscribeMailer.subscribe_email(@subscriber).deliver которая отправляет письмо если запись добавлена в базу данных.
Ну и напоследок в представление была добавлена форма ввода и кнопка подтверждения:
<%= form_for :subscriber, url: subscribers_url do |form| %> <%= form.submit %> <%= form.email_field :email %> <% end %>
Введя email в поле ввода на сайте, отобразилась надпись гласящая о том, что запись добавлена в базу данных, а заглянув в логи я увидел тому подтверждение. Открыв mailcatcher я в очередной раз убедился что все работает. Такие дела ананасы.
>>563292 >И сидеть вообще без заданий, ага. На практике проверено?
>Пилить аналог фейсбука за два доширака? Оно мне надо? Вообще, давай-ка мне не менее 10 условных "фэйсбуков" за несоизмеримую цену из числа фиксед-прайс-заказов. Я тебе даже ссылочку на рельсовые заказы скину, чтобы ты сам не искал (на данный момент 380 заказов): upwork.com/o/jobs/browse/c/web-mobile-software-dev/?q=ruby on rails Итак, жду.
Добрый день программач. Стоит задача создания списка позиций в прайс-листе (с выводом всего прайс-листа на одной странице). При создании записи в базе, для одной из колонок должен быть выбор одного из значений. Сами позиции на финальной странице - должны быть разделены на группы, и должна иметься возможность добавлять новые группы при создании записей.
Как лучше всего создать такой прайс-лист на Ruby on Rails?
>>563483 >>563492 > При создании записи в базе, для одной из колонок должен быть выбор одного из значений. Что за колонка? Либо можешь попробовать перечисления (родной enun или использовать гем enumerize), либо нормализовать и сделать отношением. Форм-хэлперы умеют обоих готовить.
> Сами позиции на финальной странице - должны быть разделены на группы > Точнее интересно как категорирование сделать по группам Ну тут тебе, видимо, нужна сущность "группа". Товары принадлежат группам или относятся как многие ко многим если нужно чтобы один товар был в нескольких группах Тогда в контроллере тебе будет нужно сделать что-то типа @groups = Group.eager_load(:products) # чтобы для каждой группы не запрашивать отдельно её товары. На вьюхе будет что-то типа table - @groups.find_each do |group| tr td collspan=2 = group.name - group.products.each do |product| td tr = product.name tr = product.price
>>563581 Я честно говоря его пока не вижу, этого "будущего мэйнстрима". Ясно что Ruby on Rails потихоньку устаревает. Почти весь мэйнстримный вспомогательный инструментарий сейчас разрабатывается под Node.js: gulp, bower, babel, postcss (ещё не мэйнстрим но видимо будет). Опять же почти весь вспомогательный инструментарий RoR, который когда-то был либо мэйнстримом (SCSS, Compass), либо задавал тон в индустрии (Sporckets, Coffeescript) сейчас начинают выглядеть анахронизмом на фоне тех же gulp, postcss и babel + ES6. То есть по части инструментария однозначно рулит Node.js. Но это инструментарий. В ту же копилку вэбсокеты, по части которых нода - эаталон, а RoR всё никак их толком не внедрит (вроде в 5 версии хотят). Есть Faye, штука неплохая, но слишком заметно что чужеродная для RoR. Ещё один плюс ноды - возможность изоморфного рендернига контента для SPA. Но тут уже вопрос в языке, понятно что ни на чём другом кроме JS это не реализуешь. В общем RoR конечно большинство основных новых веяний в индустрии благополучно прозевал и постепенно превращается в резервацию со своей атмосферой. Нода на передовой НО только по всякой вспомогательной части, сопоставимого по масштабу фреймворка на ней как не было, так и нет. Всё остальное (Go и т.д.) ещё настолько сыро, что даже обсуждать по-моему нечего.
>>563786 В разрезе Апворка по состоянию на сейчас не такое уж сильное отставание у RoR от Ноды по количеству заказов: 380 против 429. Не веришь, иди сам посмотри.
Как лучше реализовать роли admin, moderator, user (аутентификация Devise, авторизации пока нет, будет Pundit, наверное), если для User'а существует ограничение - он имеет доступ только к тем Theme'ам, которые для него установил manager. Казалось бы, сделать отношение User has_and_belongs_to_many Themes. Но для пользователей с ролями admin и manager это отношение будет пустовать, придётся сделать валидации для разрешения доступа им ко всем темам и для запрета устанавливать для них разрешённые темы.
>>564036 > User has_and_belongs_to_many Themes > для пользователей с ролями admin и manager это отношение будет пустовать This. А валидации для доступа к темам на канкане я бы делал так: if (user.roles & %w[moderator admin]).any? can :manage, Theme else # prostoi User can :manage, Theme do |theme| user.theme_ids.include? theme.id end end
>>564036 > Как лучше реализовать роли admin, moderator, user Перечислением. Ваш кэп. и немножко Петросян
> has_and_belongs_to_many Не юзай их. Юзай has_many through: ...
> Но для пользователей с ролями admin и manager это отношение будет пустовать Это как?
> придётся сделать валидации Нахуй валидации. В данном случае они не нужны. В определении отношения со строны Theme добавь скопы.
>>564051 Нахер канкан. Это зло. Лучше cancancan. Но лучше pundit, Но он чуть сложнее. И да, то что ты пишешь - не валидация, а правило для ability канкана.
>>564068 Для инстансов добавятся методы preview и transfer. А для класса - fetch_from_twitter. Я догадываюсь что >>564076 сказал то же самое, но я его не понял.
>Отличным началом будет Eloquent Ruby, The Well Grounded Rubyist, Programming Ruby (The Pragmatic Programmers Guide), Ruby Way, Metaprogramming Ruby. А в каком порядке вы посоветовали бы осваивать эти книги? В том, в каком написано?
>>564146 Понятно, спасибо. >>564076 - тоже я. Не смог в нормальную формулировку, с ООП плохо знаком. Имел в виду, что можно потом будет вызвать как ClassName.method_name().
>>564143 > Нахер канкан. Это зло. Лучше cancancan. Чё? cancancan — это форк cancan, отличающийся только совместимостью с 4-ыми рельсами. А pundit щас погуглю.
Так я толком не понял, что именно нужно валидировать? А это правило ты можешь использовать в хоть в контролере при проверке "валидно ли юзер обратился к ресурсу?", хоть в модели при проверке "может ли этот объект быть сохранён в релейшнах у такого-то юзера".
> Юзай has_many through: ... Поясни, почему ты считаешь, что это лучше? В условиях вроде ничего не сказано про то, что нужно хранить некий UserThemeSet абстрагировано и от юзера и от темы.
>>564241 > Чё? cancancan — это форк cancan, отличающийся только совместимостью с 4-ыми рельсами. Ага. Только cancan не поддерживается, например.
> Так я толком не понял, что именно нужно валидировать? Что хочешь. Я предлагаю вообще ничего - логическую целостность поддерживать за счёт настройки отношений.
> хоть в модели при проверке "может ли этот объект быть сохранён в релейшнах у такого-то юзера". Делать авторизацию на уровне модели? Мсье знает толк в извращениях.
> А это правило ты можешь использовать в хоть в контролере при проверке "валидно ли юзер обратился к ресурсу?"
> В условиях вроде ничего не сказано про то, что нужно хранить некий UserThemeSet абстрагировано и от юзера и от темы. Они в любом случае будут храниться отдельно. Разница только в том, будет ли у тебя промежуточная модель. Имхо явное лучше неявного.
>>564319 > Ага. Только cancan не поддерживается, например. Да я про то, что ввиду одинакового именования модуля проще говорить КАНКАН, чем КАНКАНКАН. И так понятно, что имеется ввиду последний. Если КАНКАНКАН тоже забросят, и выйдет КАНКАНКАНКАН, ты так и будешь поправлять, типа НЕ КАНКАН, А КАНКАНКАНКАН?
>>564323 > Если КАНКАНКАН тоже забросят, и выйдет КАНКАНКАНКАН, ты так и будешь поправлять, типа НЕ КАНКАН, А КАНКАНКАНКАН? Да. А вообще я с канкана перелез сразу на пандит. Канканкан не пробвал, но попадалась статья в которой были описаны фичи канканкана, которых не было в канкане.
> А как ты собрался джойнить таблицы в разных БД так или иначе? > Линкует форум богомерзкого аспа. А ты молодец. Актив рекорд умеет джойнить из разных БД. Фактически происходит два запроса, но для программиста выглядит как если бы был один. А вот через has_and_belongs_to там лезут косяки. АР путается в какой БД находится связующая табличка.
>>564333 > попадалась статья в которой были описаны фичи канканкана, которых не было в канкане Странно, а в ридми на данный момент ничего нового с лета 2014 я не увидел. > Актив рекорд умеет джойнить из разных БД Если до такой ситуации дело дошло, то это не иначе как архитектурный фейл, потому что это означает в лучшем случае, что нам нужно съинтегриться с БД из другого приложения, а дедлайн сегодня вечером. Это решение заведомо костыльно, т.к. потом поддерживать согласованность связанных данных, генеримых 2 разными приложениями, будет неоправданно дорого и скорее всего приведёт к снежному кому. В худшем случае это означает, что мы нарочно решили поделить обязанности между 2 разными реляционными БД, что может говорить только о ментальных расстройствах проектировщика. > Ты что-то имеешь против стайл-гайдов? Да нет, вот прочитал гайд, а там всё адекватно написано, я сам так всегда делал, потому что это кажется интуитивным. Я подумал что-то, что это от создателей гайда по самому руби, где заставляют лепить пробелы в фигурных скобках, ставить do end в многострочных лямбдах и т.п.
>>564359 > Странно, а в ридми на данный момент ничего нового с лета 2014 я не увидел. Может быть я и ошибаюсь. Но тогда это значит что канканкан такой же неповпортливый как и его предок.
> Если до такой ситуации дело дошло, то это не иначе как архитектурный фейл... Ага. А если, например, у тебя огромная табличка например с архивом пользовательских транзакций за несколько лет? Даже с учётом индексации запросы по ней будут тяжёлыми. Это частный случай горизонтального шардинга, если я правильно помню
> ставить do end в многострочных лямбдах Признайся, ты ведь пыхарь?
>>564374 > А если, например, у тебя огромная табличка например с архивом пользовательских транзакций за несколько лет? Так в этом кейсе тебе не нужно джойнить из разных БД. Если ты даже хочешь хранить какую-то ебань за предыдущие 10 лет с возможностью джойнить её с актуальными записями, то ты бэкпортишь актуальные записи в архивную БД и джойнишь их там, не выходя за её рамки. > Признайся, ты ведь пыхарь? Нет, у меня просто в редакторе, когда курсор рядом со скобкой, то он подсвечивает противоположную скобку, указывает цветом, есть ли она вообще и рисует путь до строчки с ней. С do и end он так не умеет делать. К тому же, используя скобки для лямбд, а end для всего остального, проще видеть глазами внизу метода, где какой блок закрылся.
Платина, простите. Собираюсь имиджборду на рельсах запилить (не чтобы потом её пеарить, а для изучения рельсов). Какие подводные камни? Слишком просто/нинужно? Какие проекты вообще на рельсах пилят? Кроме твиттеров.
>>564508 Абсолютно какие угодно вебовые проекты. Пиля имиджборду, ты не научишься решать реальные проблемы, потому что на твоей имиджборде не будет пользователей и ты скорее всего не имеешь представления о том, из каких внутренностей она должна состоять, чтобы этим можно было пользоваться в 2015-ом. Вообще, пилить социально-ориентированный ресурс, у которого заведомо пользователей не будет — проёб времени.
Лучше выдумай какую-нибудь хуитку, которую никто ещё не реализовывал — пусть она совершенно никакой ценности человечеству и не даст — и пили её на чистых рубях. Желательно, чтобы БД была вовлечена в процесс. Потом сделай из этого веб-сервис, внедрив свой код в рельсы, чтобы ввод для твоей хуитки можно было загружать по HTTP, а результаты выполнения получать обратно. Что-нибудь особо хардкорное в кач-ве background jobs замути и сделай листинг результата фонового исполнения. Тогда ты не только время с пользой потратишь, но и у тебя будет такое мини-портфолио.
>>564538 > background jobs Первый раз этот термин увидел лол. Загуглил, хороший совет, спасибо. Только что бы придумать. У меня мозг совсем засох от нынешней работы. Полгода вижу одни интернет магазины.
>>564568 Чтобы этот метод вызывалась бы при включении в какой-нибудь класс модуля ImageProcessing. При этом будет вызываться созданный в этом расширяемом классе одноимённый метод, а если он не был создан — то пустой, заглушка. Если заглушку не определить, будет NoMethodError.
>>564610 Правда, это было задание для стартапа не по теме видео. Зачем-то им понадобилось видео конвертировать и резать. Ну, пришлось научиться работать с ffmpeg. С тех пор так этот скилл и не пригодился нигде ниразу.
>>564655 Хотя нет, скорее мне помимо просто писания кода пригодилось следующее: 1. способность абстрактно помыслив о задаче, которую хуй знает как решать, сказать, что я более-менее представляю, что нужно делать, назвать список ПО, которое поможет это решить, и сказать, что кто-то, кто не ты (чтоб совсем уж не спиздеть), такое уже решал 2. не стесняться регулярно выводить на веб-сервер заказчику, что на данный момент получилось 3. побольше умных слов, которые ты в любой момент можешь объяснить, что они значат — но пока не попросят не объясняй
А при устройстве в фирмы вас часто спрашивают про классические алгоритмы и структуры данных? Или йо ниггер почему ты не применил тут двоичную-бета-сортировку-с-обходом-по-графу, это бы дало 3.14% прирост к скорости рендеринга картинки с котиком — всё уволен собака?
>>564704 у меня как то спросили как устроен btree-индекс. Я сказал что не знаю, можно глянуть в вики и наехал на них из-за такого вопроса, не буду же я переписывать реализацию этого индекса ?!
спрашивали чем set от list'a отличается(в питоне), что быстрее при поиске и вставке нового элемента(set для поиска и вытаскивания, list быстро добавляет, если чо) а, еще был очень вложенный словарик и надо было сделать его плоским списком
Я могу понять, когда задают такие вопросы на крестоеба, джавоеба, скалоеба, но не на руби. В нем все эти структуры уже реализованы, лучше б спросили какой джем подключить чтоб эту хуйню сделать
Позвали меня на Руби собеседование значит, я в шоке, конечно всегда хотел работать с Руби, но жизнь и количество вакансий заставили пойти на ПХП. Руби изучать я забросил, когда то написал на нём пару курсовых и простой магазин на рельсах. И вот меня зовут, а я хз к чему готовиться, что им говорить, я конечно быстро схватываю, но опыта с Руби у меня считай нет, а им явно не совсем зелёный хуй нужен. Хоть знаю за пхп фремворки и все такое. Короче реквестирую требований и вопросов с собеседований. У них в описание вакансии написанной: наличие хотя бы одного проекта, но не для маю что мой йоба-магаз за пару часов на хуяченый их устроит. Что делать, не хочу такое предложение проебать?
>>564772 >у меня как то спросили как устроен btree-индекс. Я сказал что не знаю, можно глянуть в вики и наехал на них из-за такого вопроса, не буду же я переписывать реализацию этого индекса ?!
я сам начинающий рубихипстар, но блять мне понятно, откуда этот вопрос
руби, как правило, используется вместе с рельсами, а рельсы - с базой данных, а в базе данных - уже и индексы
Хочу запилить интернет магазин не бейте, все ж мы люди, ну на рельсах, из отличительного функционала - посетители-продавцы могут регистрироваться и продавать своё барахло в своих "магазинах". Рельсы я недавно начал изучать, на изучение трачу 2-4 часа в день. Вопрос: сколько примерно времени уйдет на это? Просто как вариант ещё думаю на пхпшных cms запилить, но я ненавижу это говно и хочу в руби, но и сроки не резиновые (т.е. я не могу на это, например, полгода потратить).
>>565308 gem install 'internet-magazin' Набросать рабочий вариант - неделя-две. Но так как ты недавно изучаешь, то может месяц или больше уйти, 2-4 часа мало, нужно именно весь день сидеть, ловить ошибки и читать доки/стакорвефлоу, когда поймешь, то очень быстро сможешь все делать.
>>565366 Алсо, в будущем хочу к рубистам уйти (пока что мест нет), но, я так понял, они много старые свои/чужие проекты поддерживают, чем новые пилят. С точки зрения получения знаний это как, норм?
>>565579 Есть ещё стайл гайды. Обычно за год-два программирования, ты не зная о них, формируешь свой стиль, на 90-100% соответствующий гайдам, но для новичка будет полезно почитать. Вкупе это всё даёт гораздо более лёгкую читаемость кода, легче видеть повторяющиеся фрагменты, структуру классов. Позволяет делать меньше косяков и быстрей их находить.
По той же причине, кстати, предпочитаю кофе чистому JS.
Можно ещё напиздеть про обширную кор-либу, но это дело второе лично для меня — навелосипедить необходимые функции над базовыми структурами можно на любом языке.
>>564772 >спрашивали чем set от list'a отличается(в питоне), что быстрее при поиске и вставке нового элемента(set для поиска и вытаскивания, list быстро добавляет, если чо) >а, еще был очень вложенный словарик и надо было сделать его плоским списком Ну если ты этого не знаешь, то что ты вообще делаешь в /pr? Тралишь?
>>564387 > Так в этом кейсе тебе не нужно джойнить из разных БД. С тем же успехом можно сказать что ни в примере с транзакциями, ни в примере с юзером-темами не нужно отношение многие ко многим. А в случае с темами - даже неренос в другую бд. Я хотел сказать только: 1. has_and_belongs_to работает только в самых простых случаях. А в некоторых случаях ведёт себя непредсказуемо или вообще некорректно. 2. Ты заранее, абстрактно, не можешь предсказать что тебе будет нужно сделать. Как видишь, перенос в отдельную базу таблички иногда, всё же, являются оправданным.
> Если ты даже хочешь хранить какую-то ебань за предыдущие 10 лет с возможностью джойнить её с актуальными записями, то ты бэкпортишь актуальные записи в архивную БД и джойнишь их там, не выходя за её рамки. Ну так по сути так и будет. АР соберёт данные из основной БД и сделает по ним запрос во вспомогательную. Просто ты этого не увидишь - получишь данные.
Кстати, про джойны я неправильно выразился, сорри. Банально запрос по отношению (например user.themes или theme.users) может вызвать ошибку СУБД "промежуточная таблица не существует".
>>566076 Чувак, а можешь описать сколько времени у тебя занимает та или иная ruby-работа на апворке. Меня особо интересует сколько ты в день работаешь часов на одной работой (не будем брать во внимание если у тебя несколько заказчиков) и сколько дней тратишь на выполнение. Успеваешь ли раньше дат которые выставляет заказчик?
>>567009 Работал с ним очень давно, так что сорри если что-то путаю. У тебя есть возможность в лоадере определить `store_dir`. Видимо, тебе нужно сделать метод класс? который будет бежать по твоей локально папке и, в зависимости от относительного пути отправлять в соответствующую папку на амазоне.
def store_dir "uploads/#{model.class.to_s.underscore}/#{mounted_as}/product-#{model.product_id}/#{model.name}" end
в model.name содержится путь с именем файла, например "assets/fnt/SquadaOne-Regular.ttf", но файл эта сука зальет все равно в корень ;( , такое ощущение, что на /#{model.name} он хуй забивает.
>>567059 Не. dev + staging А ебанина была, что after "unicorn:restart", "sidekiq:restart" был только в prod, поэтому sidekiq, на котором сделана у меня загрузка юзал старые пути в store_dir
Зачем? Ине единственное, что в голову пришло, это, например, анонимный постинг, а если залогинлся, то в другом классе этому классу добавить поле юзер и его значение выводить к посту. Я наркоман?
> Зачем? Ине единственное, что в голову пришло, это, например, анонимный постинг, а если залогинлся, то в другом классе этому классу добавить поле юзер и его значение выводить к посту. Я нихуя не понял. Спроси нормально.
>>567900 А. Только это не поле а атрибут Смысл такой же, как и при наследовании. Ты же можешь в родительском классе определить атрибут и он попадёт в дочерний.
>>567613 Решил поддаться моде, посмотреть этот ваш хваленый пхп. Ну и в качестве вектора хорошего кода для ознакомления скачал пару популярных фреймоворков. Открыл один файл. А там полторы строки и НЕЗАКРЫТАЯ СКОБОЧКА. Я понимаю стриптизерш, понимаю грузчиков, работающих ради денег. Но работать с НЕЗАКРЫТЫМИ СКОБОЧКАМИ даже ради денег это что-то из рядя вон выходящее.
>>567905 Не понял. Если нужен атрибут и в дочернем и в родительском, определяем в родительском. Если только в дочернем - в нем и определяем. А зачем эта фича, позволяющая добавить атрибут/метод не в определении класса, а где-то вовне?
>>568763 По сути, то же наследование. Такое определение в модуле не имеет смысла, если ты этот модуль не будешь инклудить никуда. Вообще, механизм примесей инклуда модулей в основном используется чтобы заменить множественное наследование.
>>568763 Ох сорри. У меня глаза пиздой обшиты. Не разглядел как атрибут определяется. Ну в общем, это т.н. монкейпатч. В каких случая имеет смысл именно определение аттрибута, хотя иногда бывает полезным переопределить метод. Но так не стоит делать. Подробности на вики. Иногда делаю такие патчи только чтобы отладить что-то. Картинка, видимо, чтобы просто показать что мы можем.
Анчоусы, у меня беда, не могу видеть красоту цветовых схем, все говно, все эти spacegrey, seti, railscasts, я сыт по горло, раньше нравились, но теперь я не вижу былой красоты, не могу ничего писать, все уродское сука, если хоть одна деталь и цвет не вкатят, то сразу нахуй тему, весь день ебусь с созданием идеальной темы для рельсов вот тут - http://tmtheme-editor.herokuapp.com/ и все еще нет эффекта, может у меня устали глаза? Подскажите серебряную пулю, нет сил уже.
>Чем дальше ты продвигаешься, тем ближе становится ясно, что пора перекатываться на linux/mac А можно ли не перекатываться и юзать cygwin? Есть у кого опыт?
>>569419 У него какой-то детский рак, плавно переходяший в старческий: то юникод отвалится, то крешится внезапно, то ещё якась хуйня. Виртуалки проще и надёжнее.
>>569419 Cygwin норм, если ты вынужденно сидишь, допустим, в емаксе под виндой и тебе нужны какие-то базовые вещи, чтобы не так уныло было ходить по ssh на сервер делать дела... Но делать сами дела под cygwin... Думаю, ты ебанешься портировать весь мир. Хотя, если ты заведешь легкую серверную виртуалку или vps, то делать дела можно на ней с помоьщю cygwin-утилит.
>>569439 Я когда на винде угорал по юникс тулзам видел какой-то установщик для винды который занимается пекедж менеджментом для cygwin/mingw окружения, как brew для смакинтоша, только там графический установщик, можно галочка отмечать и апдейтить софт. На из-за корявой работы с переменными окружения (PATH далеко не безразмерная переменная) и тех же юникодов (которые по религиозным причинам майкрософты просто не способны признать, и форсят богомерзкие utf-16/32, 1251) лучше обходиться виртуалками или перекатываться на мак/линукс, а играть на игровых консолях.
>>569455 > богомерзкие utf-16/32 Лучше, когда у тебя строка может быть не валидной? Или две совпадающие строки не совпадают побайтово? Или когда один символ может занимать мегабайт? Или когда получение символа по индексу - O(n)? Правильно форсят. UTF-8 для обмена данными (и для затыкания дыр в юникстулзах, которые слишком долго переписывать). А для API эта кодировка худшая из возможных.
>>569455 Есть пикрелейтед установщик у cygwin, посмотрел, у них даже clang есть, интересно. С path проблем никогда не было. Как шелл использовал emacs. Не помню, что там было с юникодом, по-моему очень хуево. А играю в ретро я на эмуляторах, они в винде хоть и получше, но не драматически.
>>569495 >не драматически Я понимаю ты программист и одной ногой уже в сша/европе живёшь, но пожалуйста не применяй так бездумно эти тупые слова заимствованные из американского/саксонского, это так ПАТЕТИЧНО.
>>569474 >Или две совпадающие строки не совпадают побайтово? Или когда один символ может занимать мегабайт? Это же какое cp1251-мозга должно быть чтобы написать такой код который будет ПРОДУЦИРОВАТЬ невалидную мегабайтную чару в utf-8.
>>569486 У вас тут модно путать Юникод и его представление.
>>569543 У меня кодирование \u0000 в Java от тебя. Алсо, проблема-то не в кодировании, а в декодировании. Есть разные интересные личности, которые пользуются особенностями UTF-8 для разных интересных вещей. Но даже когда строка просто обрезалась посередине code-point - это уже неприятно. Удобнее обрабатывать UCS-16, и хуй с ними, с суррогатами. Или UTF-32, если нужен современный Юникод, и хуй с ней, с памятью.
>>560026 (OP) Что скажите за курс на гикбреинсе? http://geekbrains.ru/professions/2 Хочу пойти параллельно изучая английски. Естественно после окончания курса нужно будет еще прочитать книжку и сделать TODO лист с шапки. Как для совсем нуфака, что скажите, стоит пойти?
Гайз, тема следующая: как реализивать следующую модель, и получить то что на пикче ? Project: -title -todo -->text -->isCompleted(потом будут добавлены чекбоксы мол выполнено или нет)
>>570330 То что рельсы убили руби - не новость. Можно сколько угодно писать, что есть много других фреймворков, но если посмотреть правде в глаза - ничего кроме рельс не используется. Сколько в треде вопросов не связанных с рельсами? Даже в прикрепленном в разделе по руби рекомендуют книги по рельсам. Приехали, господа. Язык одного фреймворка.
Eсть коллекция объектов, у каждого объекта аттрибут например возраст. Как вычислить из этого массива номер и возраст самого молодого? Вопрос для чистого руби без активсаппорта.
>>571269 Кстати, почему этот курс платным стал? Бесплатного больше нет. Алсо смутили сложные задачки слегка и лекции по ебанутому ведет, неудивительно что на класс централе обосрали этого жида
>>571360 Бля рубисты. Как вы жевете с этим адом require. Когда все это говно сыпется из всех библиотек в единый namespace ? Это же полная параша! Не в одном нормальном языке см Java/C# такого нет.
>>571396 Лол, ты разговариваешь как педики или псаки — хоть сам и являешьс обезьяной, но называешь своих противников так, чтобы остальные поверили в твой мирок, где ты не любитель бананов. Как в /s/ виндузятники одно время начали называть линукс спермой, ибо совсем пизданулись в бессильной злобе.
Человек который заходит в тред с темой которая ему неприятна мазохист и даун. Поэтому ты тут никому ничего не докажешь, дубинушка.
Как заставить себя писать тесты к коду? Не понимаю я этого TDD, хоть убейте. Зато потом бугурчу, что контроллер работает криво, а модель забирает не все данные, после чего приходится делать рефакторинг, хотя ВРОДЕ ВСЕ РАБОТАЕТ.
>>571477 > module Foo > module_function > def foo > :foo > end > end
> module Foo > def foo > :foo > end > module_function :foo > end
> module Foo > def self.foo > :foo > end > end Это всё одно и то же. Можно ещё пару способов сделать то же самое вспомнить. @@ - немного из другой области, хотя и схоже по сути.
>>571492 Методы класса начинают жить раньше как я понимаю, в момент определения или загрузки класса через require и их можно юзать для запоминания информации в них class Rigel def self.post(star) Sun = star puts Sun end end Sun будет указывать на одно и то же значение для вызова из всех экземпляров. Даже не нужно делать эту переменную константой или классовой.
>>571494 Ты какую версию рубей используешь? 2,2,3 валится в твоём коде при попытке таким образом задать константу. Может ты хотел имел ввиду те самые @@аттрибуты_класса? Или ты хотел просто константу объявить? Что ты имеешь ввиду под жизнью и смертью?
Рубины, мне нужна помощь. Нужно отсортировать имейжи по лайкам, лайки в отдельной таблице. Сейчас такое <% Image.all().includes(:likes).sort_by{|IMG| IMG.likes.count}.each do |image| %> <li><%= link_to image.smth, image_paht %></li> <% end %>
Мне кажется, что я пиздец как уебищно все сделал. Помогите ради рельс.
>>572291 >Image.all() Скобки не нужны. all тоже% И вообще, такие запросы делать с вьюхи не комильфо.
Можешь либо заюзать counter_cache для отношения Либо что-то типа: Image.joins(:likes).order("count(likes.id").group(:id) Только этот запрос отбросит картинки для которых нет лайков. С джоинами ебись сам.
ананасы . Какой js mvc фреймворк учить? ангуляр? какие профиты в совместном использованиее с рельсами. на сколко я понимаю перенос части логики на пользователя? поясни анон
>>572789 у ангуляра тяжелое будущее, а вот у реакта вполне из плюсов - можно не перегружать страницу, все-таки жсон отдавать намного легче чем хтмл на каждый чих.
Привет рубач, подскажи как прикрутить к сайту вывод постов с vk.com, последние 3 штуки? Хочу у себя на сайте в футер кинуть, с twitter'ом разобрался, прикрутил, а с контактом что-то никак..
>>573580 Если ты уже прокачанный разработчик и подучишь рельсы, то проблем у тебя не будет. Рамблер пока не закрывается и на PHP всё переписывать не спешит, всё на рельсах прут.
Почему рельсовская консоль при использовании spring не коннектит автоматом к бд? То есть для того, чтобы, например, получить доступ к User, нужно писать User.connection
>>574811 Наверное нет. Но чтобы устроиться на нормальную вакансию, нужно не просто рубистом быть хорошим, но и программистом вообще. Знание синтаксиса и особенностей языка, не делает тебя хорошим программистом полезным для индустрии в целом.
Привет анон. Вопрос про обучение и трудоустройство рельсо-жуниором. Вот уже несколько месяцев прошло >10 как я стал шахтером и добываю рубины, кладя их как ты мог догадаться на все те же рельсы. Сказать что обучение мне дается легко - значит сильно слукавить знатно напиздить ИТТ, многое не понимаю, еще больше забываю по ходу обучения, но превозмогаю как могу а могу я хуево если честно.
Когда я только начинал приступать к обучению, честно, мысли мои были лишь о том, как по быстрому срубить бабла, но моим карьерным влажным фантазиям не суждено было сбыться. Прочитав про охуеть какую гибкую разработку целую книгу, и написав свой инторнет-магазин я поняв что уже еба разработчик и могу в продакшен, попиздовал со своим нескромным резюме по всем конторам до которых мог дотянуться, но дико обламался еще на этапе чтения требований к специалистам.
Недолго думая, я решил не работать на кого-то, а искать заказы у себя в городе на разработку сайтов, и таки нашел своего клиента, залив ему в уши то, что он в принципе и хотел услышать. Работа была не пыльная, несколько статичных страниц с описанием продукции, на главной - каруселька из жиквери, и в контактах собственно контакты с картой. Срубил я за это - 40к деревянных, 20 оплатили сразу и 20 после сдачи проекта. На все про все у меня ушло не больше месяца с учетом того, что хуи я пинал недели две.
Я прекрасно понимаю что в приличную компанию я попаду едва-ли, и скорее всего так и буду искать себе клиентов на первое время, но вот эта вот система обучения анон, она правильная? Правильно ли я поставил процесс обучения? Учиться тому, что тебе необходимо на данный момент, не изучая того, к чему ты может никогда и не прикоснешься. За время создания сайта я научился читать логи, ебаться с херокой поднимать продакшн, разобрался со всякими гемами, системой свой-чужой, всякими отправками почты, копался в фронтэнде, создавал базы данных, и еще много всякой непонятной херни. Логики правда у сайта как у блондинки, но заказчик большего и не просил.
Возьмут ли меня в команду inb4 не возьмут на позицию жуниора с таким багажом знаний? Алсо до этого мог в администрирование и дизайн.
>>574917 А нахуя тебе, скажи пожалуйста, куда-то устраиваться? Продолжай фрилансить. Повышай свой уровень, повышай ценник. Руби/РоР разработчики зарабатывают гораздо больше на фрилансе, чем в офисе. Особенно, если работать на зарубежных заказчиков.
>>574998 >>на css-фреймворках и жквери this но хочу очень все на react|angular захуярить
Сейчас по годам уже ближе к тридцатнику. Вкатился недавно но фанател от отрасли с детства да и не ту профессию выбрал, нужно было учиться изначально тому к чему душа лежит а не хуйне какой-то. Поздновато начал, да, но во времена моего сосничества мы больше с палками бегали по двору как то, чем с планшетами сидели, хуле делать. Просранное блять поколение, куда ни глянь сейчас все с пеленок уже синьоры.
>>575020 Я не он, но ситуация похожая. Сделал пару крудошлепских приложений чуть сложнее блога. Посмотрел задания на апворке - там сплошь какая-то неведомая и очень специфическая хуйня, за которую ссыкатно браться. Наверное мы с ним оба думаем, что в офисе дают какие-то знания, до которых самостоятельно доходить будешь в 5 раз дольше. Тот же самый хуйлоад, например.
>>575021 >Просранное блять поколение, куда ни глянь сейчас все с пеленок уже синьоры. Много (дальше поймёшь почему) людей после армии, ПОСЛЕ АРМИИ, Кагл, вкатываются в программирование с нулевыми знаниями.
>>575020 Трудно учиться по книжкам/форумам, думаю в офисе можно будет апгрейд получить в разы быстрее и через годик уже с багажом знаний засесть в своей сычевальне зная что точно не обосрусь на той же апворке.
>>575024 А ты думаешь просто так говорят о том, что первый проект на апворке ищут месяц? Подходит один из двадцати, да тебе не сразу дают, пока звезды сложатся, месяц и проходит. А потом заказчик уже не хочет хуя с горы брать очередной раз, ему проще пока ты неведомой хуйне обучишься.
Алсо, кто в последнее время ходил на собеседования по ror-вакансиям, там какой контингент вообще? А то когда собеседуешься на .net-хуйню, там сплошная эйчаро-параша сидит, специфика энтерпрайза такова.
>>575030 Если не впадлу платить деньги, можешь попробовать с ментором поработать, по рельсам таковых дохуя, они вроде дотягивают до джуниор-левела, а то и повыше.
>>575031 Меня с моими недознаниями и умением по максимуму расписать то что умею и не сказать о том, чего не умею звали в Тайланд в стартап, но звезды сложились так не по причине того что я что-то не умею, что нихуя как вы понимаете не вышло. Вообще я раз 5 общался всего с людьми из компаний на предмет трудоустройства жуниором, и как ни странно, но ни разу мне не сказали что вот прям нахуй ты не нужен, часто удаленки не было а я же всем подряд слал и предлагали переезд но это охуеть как заморочиться нужно.
>>575020 А подскажи пожалуйста тогда еще и какой ценник указывать на том же апворке с такими то знаниями? $5 в час - это слишком много? Какая цена будет адекватна по отношению к рынку и знаниям?
>>575045 Я не он, но что-то мне подсказывает, что за пять долларов в час ты будешь конкурировать с лоу-левельными индусами. Вообще, на Мегамозге есть статья о вкатывании на Апворк, так вот там есть такая фраза:
> Первый заказ я взяла буквально на следующий день после регистрации. Это был небольшой заказ с фиксированной ценой. Я поставила цену в 2 раза выше бюджета заказчика, рассчитывая, что высокая цена обратит внимание заказчика на мой нулевой профиль. Стратегия сработала — заказ достался мне.
>>575054 Для начинающего или начинающего на апворке (без профиля с отработанными часами никто не отважится платить более 20). Мидлы там от 30 берут. Можешь написать, что джуниор, но я бы написал опыт в года: Ruby/RoR developer with one year experience, или как-то так.
>>575056 Я вот так написал, с твоими правками: Hello, I'm Ruby/RoR developer with one year experience. My greatest goal is to deliver excellent, clean code. I constantly broaden my knowledge of languages and frameworks to improve my skills and the quality of my code. I work with technologies like Ruby on Rails, jQuery, HAML/CSS, Coffeescript, Twitter Bootstrap, SQL-DB.
>>576045 >Парни, мне тут тян решила дать, разделась и лежит на моем диване, я сказал что выйду в туалет , а сам пишу на двач. Посоветуйте, как быть? Что мне делать?
>>576575 не понял вопроса. Там есть опенсорсная версия и мне туда надо прикрутить пайпал. Аноны походу я влип. я ваше не представляю себе как это сделать есть код который относиться к пайпалу. Хотел сделать так. Поднять сервак на локалке . найти вкладку Payments как в офф гайде. по аналогии с каким то уебанским braintree переписать под пайпал. но тут даже этой вкладки нет. буду шас раздебаживать. в интете ваше инфы нет. ваши советы аноны?
Т.е., когда Client перегружен методами в духе create_customer, delete_order. Единственный плюс мне видится в том, что, в отличие от ещё одного известного варианта, не нужно постоянно вызывать что-то типа Octokit::Issues.get(id), вместо этого используется более удобный (на мой взгляд) client.issue(id).
>>574917 Джуниор на то и джуниор что особого багажа знаний там не требуется. Если ищут джуниора то понимают что он знает мало. Так что вполне могут взять.
>>576662 Это я про задание, видел подобное за Fix price $200.
А по поводу сабжа. В официальном репозитории Sharetribe разработчики обещали в скором времени прикрутить возможности платежки PayPal. Как вариант, можно подождать пока они делают, а потом, как запилят, останется только быстренько прикрутить. Такое то будет программирование уровня /b.
>>576702 У меня $14 за час работы выставлено. Если ты не можешь сделать это за час-два, то видимо действительно даун то зачем брался? Это Fix price или Hourly? На сколько рассчитывал по срокам? Задание вообще читал? Скинь сюда, интересно посмотреть что от тебя требуется за $20.
>>576733 Что сказать. Отказывайся если точно уверен что не сможешь выполнить или попробуй сделать. За $20 я думаю тебя сильно заебывать не станут, так что есть возможность/время вникнуть в задачу и разобраться. В качестве профита от выполнения - все последующие заказы по прикручиванию палки к сервисам подобным этому, ну и плюс нехуевый такой урок как не нужно брать заказы.
>>576045 Т.е. ты вызвался за деньги делать и даже не удосужился заранее посмотреть с чем придётся работать? И вот нахуя? Лёгких бабок захотелось? Их не бывает. Что теперь? Будешь тут и на на СО просить сделать это за тебя? Чтоб ты бабки получил? А когда никто не возьмётся что будешь делать?
>>576733 Я тоже часто беру в работу не совсем то что нужно. Из за отсутствия опыта работы некоторые вещи кажутся более легкими в разработке чем есть на самом деле хотя верно и обратное. Но пока ни разу не отказался от того что брал в работу чаще просто сроки проебываю, но сдаю. Собственно любая задача - вопрос времени на изучение методов ее решения, а опыт иначе и не придет. Так что, как мне кажется, если есть задача которую ты не знаешь как решить - это твой шанс. Плюс ко всему те же $20 рассматривай как стипендию за обучение.
>>576745 Спасибо аноны. у меня вроде прогрес. сам код рабоы с пайпалом уже встроен. надо просто ходить с дебагером и смотреть на условия. более мение понятно .
Котаны, есть такая дилема с веб-сервером, которая бесит меня уже давно. $ rails s Вся инициализация приложения идёт в папке приложения. Обращаешься к любому контроллеру. Теперь Dir.pwd = "/" Из-за этого мне к любому пути внутри папки нужно приписывать Rails.root.join(my/path).to_s Можно, конечно, в ApplicationController добавить before_action {Dir.chdir Rails.root.to_s} Но такое решение выглядит весьма костыльным. Что ещё интересно, в рамках одного процесса рельсового веб-сервера Dir.chdir достаточно сделать 1 раз, дальше он будет работать в это папке. Кто-нибудь с эти сталкивался? Почему это может происходить?
Я не нашёл на SO и во всём гугле ни намёка на такое поведение. Я даже больше скажу, у меня есть 2 проекта, у которых нет ничего общего, и в них есть такое поведение (с использованием Thin, Unicorn и Puma), а есть ещё несколько, у которых такого не случается (с теми же веб-серверами).
Посоны, а какие есть решения для капчи? Я нашел только 2 гема - рекапча и симпл-капча. У одного 700 звезд, у другого 200. Как-то очень мало для такой распространненной штуки, как капча. Но других нет. и есть еще всякие там опросники и совсем неизвестные гемы.
Что вы использовали? И еще вопрос, как можно сделать универсальный интерфес для капчи ActiveCaptcha, чтобы можно было оперативно переключаться с одной на другую, как это делает макака.
Давно хочу понять, как с ними работать, но что-то не могу нагуглить. Не в смысле как сделать чат, а в смысле как быть с нагрузкой. То есть, вот есть например гем faye. Или в 5-х рельсах появился ActiveCable. И тот и другой запускают отдельный брокер-процесс (thin, puma), который слушает на определенном порту, принимает и отправляет сообщения. Все клиенты коннектятся к нему. И указывается максимальное количество соединений. И вот про это толком нигде ничего не пишут. На сколько я понимаю, даже простой, но оживленный сайт будет иметь достаточно много коннектов. Ну например, если за 15 минут пришли 50 человек и держат открытыми вкладки, то это уже 50 коннектов. Дальше больше. Они могут открывать несколько вкладок это ведь несколько коннектов?. А каждый коннект, как я понимаю, это отдельный процесс (ну или тред, зависит от веб-сервера). То есть в любом случае это все ресурсоемко. ActiveCable еще и нужен соответствующий количеству соединений пуд для БД.
Вопрос, как с этим работать. Сколько можно максимально иметь коннектов (если заглядывать дальше блога, то 100, 1000 коннектов это же не серьезно, а на самом деле это уже очень много). Что будет когда лимит будет исчерпан? Как увеличивать это количество. Как можно масштабировать. Если не использовать брокер-сервер на руби, а например на ноде (в faye вроде можно использовать ноду в качестве сервера), то что можно выиграть. Ну и все такое. Еще вопросы балансировщики, прокси и NAT в этом контектсе. Может какие-то статьи есть на эту тему только не слишком мудреные.
>>577226 Использую экшенкабель с 4ми рельсами гемом https://github.com/rails/actioncable , полет нормальный. Все примерно так как ты описал. За производительность не скажу, у меня энтерпрайз вебня на ёба серверах, да и пользователей мало очень. Яб скейлил так: поднял бы процессов экшенкабеля по числу ядер и обмазал балансировкой через нгинкс или хапрокси.
>>577368 Собственно если сервер пума то она сама спавнит процессы,с колько ты ей указал и ничего дополнительно балансить не надо, только если жуткий хуйлоад с несколькими серверами под чисто вебсокеты эти.
>>577226 > ActiveCable еще и нужен соответствующий количеству соединений пуд для БД. Правильные сокеты не юзают бд. Там простой механизм пабсаба. Приложение что-то отправило кабелю - все подписчики получили. Кто не получил - сам дурак. Коннектов много, но они нетяжёлые относительно.
>>577551 > Rails.logger "log: #{attribute}" Эта строчка вызовет ошибку. Rails.logger не принимает аргументов.
> а каким образом его дебагать В validate_each пишешь byebug и пытаешься вызвать валидацию. У меня всё работает. Так же, как и Rails.logger.error("log: #{attribute}").
есть ли здесь аноны, которые перекатились из Java на Рельсы (или наоборот)? как оно? стоило ли? мимо без работный джава джун, подумывающий перекатиться в рельсы от безисходности
Пиздец блять, просто заебался. Как установить руби в убунту? Простой apt-get install ставит старую версию, а rvm выдаёт ошибки, одна другой охуительнее, блядь.
>>577889 Кури настройку rvm чо. Небось в каком-нибудь .bashrc/.profile/.bash_profile что-то не то стоит(а какой-то файл и вовсе надо удалить). После остановки надо разлогиниться и залогиниться на рабочий стол заново кстати (ну или если ты не понимаешь что это то перезагрузить компьютер).
anon@anon-X750JN:~$ rvm install ruby Searching for binary rubies, this might take some time. No binary rubies available for: ubuntu/15.10/x86_64/ruby-2.2.3. Continuing with compilation. Please read 'rvm help mount' to get more information on binary rubies. Checking requirements for ubuntu. Installing requirements for ubuntu. Updating systemdmitry password required for 'apt-get --quiet --yes update': .... Installing required packages: gawk, libreadline6-dev, zlib1g-dev, libssl-dev, libyaml-dev, libsqlite3-dev, sqlite3, autoconf, libgdbm-dev, libncurses5-dev, automake, libtool, bison, libffi-dev....... Error running 'requirements_debian_libs_install gawk libreadline6-dev zlib1g-dev libssl-dev libyaml-dev libsqlite3-dev sqlite3 autoconf libgdbm-dev libncurses5-dev automake libtool bison libffi-dev', showing last 15 lines of /home/anon/.rvm/log/1447183944_ruby-2.2.3/package_install_gawk_libreadline6-dev_zlib1g-dev_libssl-dev_libyaml-dev_libsqlite3-dev_sqlite3_autoconf_libgdbm-dev_libncurses5-dev_automake_libtool_bison_libffi-dev.log E: Не удалось найти пакет libreadline6-dev E: Не удалось найти пакет zlib1g-dev E: Не удалось найти пакет libssl-dev E: Не удалось найти пакет libyaml-dev E: Не удалось найти пакет libsqlite3-dev E: Не удалось найти пакет sqlite3 E: Package 'autoconf' has no installation candidate E: Не удалось найти пакет libgdbm-dev E: Package 'libncurses5-dev' has no installation candidate E: Package 'automake' has no installation candidate E: Package 'libtool' has no installation candidate E: Package 'bison' has no installation candidate E: Не удалось найти пакет libffi-dev ++ return 100 ++ return 100 Requirements installation failed with status: 100.
Вот такая хуйня. Так как я в юниксах новичок, меня это убивает нахуй.
Пишешь apt-get install в консольке, потом пробел, потом первый покет, который не удалось найти, потом пробел, потом следущий пакет который не удалось найти и так далее до последнего пакета который не удалось найти.
>>577939 Обязательно надо выебнуться? Пытаешься самоутвердиться на дваче, лол? Я с линуксом работаю второй день, само собой, мне нужно усвоить огромный объём информации, чтобы понимать, что к чему. Так что иди-ка нахуй.
>>577947 Я думаю ты и винде также работаешь и в MacOS, это другая генетика, другой подход. Тем более, чего ты сразу полез ковырять руби в линуксе, почему не остался на винде? Почитал советов, что руби лучше на линуксе? Но мозгов-то у тебя не хватило понять, что надо сначала учить линукс в принципе. И потом плодишь тупые вопросы, и потом же ещё и свои тупые решения постишь, будто ты решил проблему. Осёл тупой.
>>577958 Там английским по чёрной консоли написано чего не хватает! И такие тупые пидорасы, без знания основ, лепящие свои тупые, говёные решения, везде блядь. Какой-то гандон чинил трубы и теперь у всех ржвачина течёт из крана. Другой ебрило решил сделать клумбу и сделал, теперь говно и земля с неё течёт на тротуар, людям под ноги, люди ходят по грязи разносят её везде. Или вот идиот тут не может блядь понять как сделать простую вещь: чтобы делать что-то на линуксе надо знать линукс, чтобы знать линукс надо знать английский и так далее. Вообще надо иметь системный подход. А этот пиздёныш, в прямом эфире сменил задачу с установки rvm к напиздюшить побыстрому блядь чтобы было похоже. Списать готовое решение у соседа, чтобы учитель недоёбывал. Тупые. Некомпетентные. Пидорасы. И пусть у вас горит и полыхает, сраные унтерменши.
Ляликс-то по-любому нужен, или мак, я вот попробовал смеха ради один из своих щитхабовских проектов на винде развернуть - хуй там, костыли надо городить на каждом шагу.
>>577488 >>577493 >Правильные сокеты не юзают бд. Там простой механизм пабсаба. >И да. Там вроде воркеры асинхронные. Где там, в экшнкабеле? Тут, если я правильно понимаю, как раз вся фишка в том, что в воркере доступно рельсовое окружение - все модели, библиотеки, все-все. И это и здорово где-то кто-то на гитхабе в комментах жаловался, а ему DHH отвечал, что весь прикол в этом. Но соответственно это отдельные процессы (или потоки) и само собой ни какой асинхронности. Даже faye и тот не асинхронный. Вот только если с нодой его использовать, но я х.з.
>>577953 Хули вы на человека напали. Линукс говно, это все знают. Еще большее говно больного шизофреника - rvm. Костыль на костыле костылем погоняет не то что божественный npm и nvm. Даже по блядскому мануалу поставить нормально rvm задача охуенно вдумчивого чтения.
>>578027 >Учитывая последние тенденции Шо за тенденции? Не надо ничего, пожалуйста, нам и на линупсах хорошо.
Что за дурачок? Я год назад когда перешел на линупс, поставил rvm по оф гайду, с первого раза, стягиваешь курлом инсталлер, затем rvm install, да в гайде все есть, ты пиздец, паренек.
>>578039 Я и не ругал линукс, дэбил. nvm и rvm тащемта идентичны по установке и использованию. >>578041 Отсылка в танцпол, оружие бывалого интернет-спорщика.
>>578044 >nvm и rvm тащемта идентичны по установке и использованию Идентичны да не совсем. С нвм проблем чому-то ни каких не возникает - поставил и все работает. Хотя не буду пиздеть, я его один раз ставил и один же раз пользовался, лол.
>>578080 Не я тут. просто у меня овер дохуя заказов по другой руби работе. практически закнчил. осталось последнюю фичу замутить. весь процесс прикручивания заключаться в подстановке тру или фолс в разные места. Своеобразный реверсинженеринг лол
Что за хуйню вы тут развели? Какие-то линуксы, rvm, охуеть просто! Ещё спросите как гем установить. Пора катиться дальше из рубей, это ВТОРОЕ ПРИШЕСТВИЕ
>>5T61512 Turbolinks вешается на обычные ссылки и обновляет контент всей страницы. Можно использовать гем Turbograft или сделать просто через ajax, как Анон написал уже выше.
БЭМ Посоны, как прикрутить? Инфы вообще ноль, каких-то два коленочных гема, написанные русскими энтузиастами, но они не полноценные. Нужно как-то красиво интегрировать bem-tools. Есть хоть какая-то инфа? Может кто делал?
Пилю свою прохладную. Мне 19 лет и всю жизнь хотел стать програмистом. сначало паскаль потом в 14-15 лет самостоялетьно сел за с++ пытался накодить что то типо мейлера но быстро ахуелл забил (вспоминаю свой тогдашний код просто передергивает).потом изучал джаву , тут я собственно и получил первый опыт и понимание того как писать код что такое ооп и прочие, выучил довольно много из ЕЕ стека типо спринга и прочего.И тут мне исполнилось 18 лет и я с моей девушкой решили поехать в питер. Я очень хотел устроиться куда то джуном но к сожелению не получилось так как я не смог найти подходяший вакнсии на HH так как практиески во всех просили вышку. а сидеть и ждать у меня небыло денег.после я пошел на работу. после того как от продавал свое(кстати сейчас понимаю что это важнейший скилл для программирования) я пошел в контору комп мастеров и там отточил свой скилл продаж. Потом оброс контактами и в итоге и в итоге пошел в один проект работать за бесплатно.По скольку мне не платили а яву я уже подзабыл да и наверное не целесообразно использовать джаву для сайта где нет тяжелого функционала я решил взять руби и вкатываться в него по ходу дела . Потом я довольно долго работал и учил руби (совмешая с работой комп мастера, гдето пол дня у меня всегда была свободна каждый день).Потом начал получать бало с этого проекта.В чем его огромыдй плюс это то что у меня по стути нет никакого начальника и дедлайнов как таковых.потом перебрался опять в свой город и просто получаю сейчас заявки по знакомству попутно доделывая тот проект и получая баблосики.Пишу всякие интересне штуки и прекручиваю опен сорс решения.получаю в месяц около 20-40 к. Сейчас планирую вкатываться ешё во фриланс но походу надо это делать когда нет работы.Кстати завтра наверное таки доделаю эту заявку а если нет то забью болт ибо по знаомству прилетел заказ на 50к нахуй-я-взял-эту-заявку-по-прикрутке-пайпала-кун
>>578678 Дружище, апворк предоставит больше перспектив, чем заказы по знакомству. Не сразу, конечно, но и начинать свою карьеру на нём с такой хуйни не стоит.
Кто-то имел проблемы с переменными окружения используя rbenv? Конкретная проблема: ни капистрано, ни скрипт запуска unicorn, не видят переменных окружения. Всегда использовал RVM, подобных проблем не было.
>>578664 > Самоучка > Неграмотный > Взялся прикрутить к опенсорсной хрени, при этом ни разу в глаза не видел не только хрень и палку, но и мерчантов вообще > Даже не удосужился прикинуть что надо будет делать, но обещал сделать за копейки > Обосрался > Отмазывается > Рассказывает прохладные истории понятно
>>577226 Вот вы пидорасы, аноны. Ну интересный же вопрос. Ближайшее будущее которое возможно будет уже не на рельсах. Хуй кто высказался. Какой-то говносрач на счет рвмов и прочего дерьма. Чем вы все занимаетесь? И что еще примечательно. Если новичок спрашивает какую-нибудь хрень, его шлют нахуй, обзывают и т.п. Если спрашивают что-то серьезное - тишина. А хули вы тут тогда обсуждаете я не пойму.
When Scripture Is the Rule of LawRonaldcox01/12/15 Втр 07:12:25#504№593065
Organizations can compel their customers and employees to resolve disputes in arbitration proceedings bound not by state or federal law, but by religious edict.
RUBY_SHAPKA VERSION = 1.0.5
FAQ
1. C чего мне начать, чтобы стать рубистом?
Отличным началом будет Eloquent Ruby, The Well Grounded Rubyist, Programming Ruby (The Pragmatic Programmers Guide), Ruby Way, Metaprogramming Ruby. Пишем свой код во время чтения.
Документация по стандартным библиотекам http://ruby-doc.org/
Можно пройти руби онлайн - http://tryruby.org/levels/1/challenges/0
Не веришь в свои силы? Прочитал уже книжек много и силы свои хочешь познать, сделай - http://rubykoans.com
2. Какой gem посмотреть, чтобы понять, как писать код?
Лучше всего посмотреть небольшие gem'ы вроде cancancan, devise, camping.
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.
Еще продвинутое чтиво - 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. Есть ли у руби русское коммьюнити?
Нет. Вернее есть, но оно протухло и там полно людей у которых чсв высоко.
Яркий пример - [email protected]
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
- в рассылке rails-talk
- оф. форум рубей http://www.ruby-forum.com
14. Как фокнуть\сделать фичу\исправить баг, сложно ли это?
Нет, не сложно. На rubyflow появляется много новостей с реализацией новой библиотеки, вы можете сделать тесты, фичу для него, старые либы также обрастают багами, улучшайте их! пишите код.
15. В чём писать код?
Atom, Brackets, Sublime Text, TextMate, Vim, GNU Emacs. Для особо упоротых энтерпрайз-макак есть rubymine, плагины к эклипс и нетбинс.
16. Можно ли писать на руби с под windows?
Можно, но придется обрасти костылями в виде виртуальной машины, придется сходу разбираться с Vagrant и многим другим. Чем дальше ты продвигаешься, тем ближе становится ясно, что пора перекатываться на linux/mac
17. Руби язык одного фреймворка!
Нет, есть еще Sinatra, Lotus, Volt, Grape, отличная штука для DevOps - Chef. Годные генераторы для бложиков - Jekyll, Middleman.
18. Правильное произношение Ruby?
Руби, за любые другие варианты ссу на голову.
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 - тут на ру$$ком даже.
TODO лист для ньюфагов:
И так, ты поставил руби, уже сгенерировал свой первый проект rails new pidaras
Начни уже с платинового пути, блог >> клон твиттера >> своя имейджборда >> свой гем >> дальше сам придумаешь.
Рекомендации:
1. Для блога, создать роли, Админ, Пользователь (можно использовать паттерн form object). Прикрутить лайки, комментарии.
2. По твиттеру, следуя гайду Хартла, пиши все то что он предлагает в качестве доп. заданий, например оповещение по нику (@eblan: привет)
3. По имиджборде: воссоздать по возможности полный функционал, в этом случае придется ознакомится с javascript/jquery/coffeescript, но тебе так или иначе придется. Еще хорошей фичей будет использование background job и крон тасков (sidekiq, whenever), чтобы заполнять свою борду тредами и постами с другой борды (можно использовать api двача, чтобы вытягивать треды и посты - https://github.com/ID25/api_2ch)
После этого тебе будут нужны паттерны, без них твой код превратится в говно. Один из часто используемых - Service Object.
https://netguru.co/blog/service-objects-in-rails-will-help - о сервисах
Еще паттернов - https://robots.thoughtbot.com/back-to-basics-solid
Прочитал? Теперь рефактори то, что уже написал. И не забывай покрывать тестами.
Хорошим финалом будет деплой, это пожалуй самое болезненное, и ничего общего с деплоем на heroku, где тыц тыц и готово. Придется поковыряться со смежными вещами и узнать много нового, уже устоявшийся гем для таких дел - Capistrano.
Не забывайте спрашивать у анонасов вопросы, код лучше показывать через gist или pastebin с подсветочкой.
Ну, а мы открываем очередной Ruby Thread.