Pull to refresh
0
Karma
0
Rating

История языков программирования: о прошлом, настоящем и будущем Ruby

В настройках стилей как я помню стоял именно italic, шрифт InputMono, но отображался он как перегнутый oblique, хотя в TM с тем же шрифтом италик отображался как надо.
И, да, я пробовал TextMate-подобную, там что-то не все работало как хотелось, возможно это были кеймапы 1-ой версии. Я было начал исправлять под себя, но потом понял, что у меня нету столько времени с ним ковыряться.

История языков программирования: о прошлом, настоящем и будущем Ruby

Заставляю себя пробовать каждую новую версию RubyMine, пока ни в одной из них я не смог работать дольше чем 15 минут. В последний раз причина была в том, что какая-то стандартная для OSX комбинация клавиш, которой я часто пользуюсь, в RubyMine имела совсем неожиданное поведение. А еще — почему-то для комментариев в коде используется уродский oblique вместо italic, хотя это мелочь, конечно, но глаз режет (псст, разработчики RubyMine, WHY?!). Еще много чего не понравилось, но я уже забыл.

Поэтому я до сих пор приверженец старого доброго TextMate 2 (для ruby у меня набралось много сниппетов и команд) в связке с постоянно запущенным pry в консоли и не парюсь по этому поводу.

История языков программирования: о прошлом, настоящем и будущем Ruby

Что я понял за последнее время, так это то, что проблему прожорливости памяти в ruby-приложениях создали сами разработчики гемов, по умолчанию расширяя суперклассы при загрузке библиотеки. Как-будто я не в состоянии самостоятельно включить нужный мне модуль в класс, где реально нужен функционал этого модуля! В итоге, приложение содержит кучу неиспользуемых методов, объектов, мета-конскрукций, макросов и хуков. ActiveRecord и ActiveModel — одни из таких гемов, на мой взгляд благодаря довольно п****стическому принятию коммитов, лишь бы тесты проходили.

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

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

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

Но без фанатизма: если что-то вырастает из ruby или изначально не подходит для разработки на нем, тогда уже используются другие языки. Например, я бы не стал писать на ruby WebSocket-сервис, обрабатывающий множество долгих запросов (в теории можно JRuby). Поэтому не понимаю нахера козе баян в Rails 5 включили ActionCable, он же на продакшене будет работать как надо в очень ограниченных случаях. Пользуясь случаем кинусь какашкой в DHH, он хоть и внес в свое время хороший вклад, но мне его влияние на язык и сообщество кажется скорее негативным.

DNS Google больше не поддерживает Round Robin DNS

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

DNS Google больше не поддерживает Round Robin DNS

По-моему в данном случае использовать split_clients не совсем правильно, лучше upstream.

Apache + FCGI + Ruby + ActiveRecord. Когда RoR много

Собственно, рельсы и любой другой фреймворк тут вообще не причем, все что нужно — это rack, app-сервер (puma, unicorn или passenger) и nginx. Даже писать ничего особо не надо: пара строк в конфигах и готово.

Просто автор, видимо, не знает про rack и решил изобрести — даже не велосипед, нет — а колесо.

Как мы перевозили дата-центр западной компании в РФ из-за закона о персданных

Нахер соблюдать мудацкий закон, исполнение которого все равно никто не будет контролировать?

Multiple/Class Table Inheritance в Rails

Postgres 9.5 уже умеет обновлять поля в jsonb функцией.

PHP vs Node.js

Раньше студенты как-то догадывались собрать дома из говна и палок сервак, «допиздиться» с местным провайдером о выделенных IP и обратных зонах, после чего хостить на нем всякую никому не нужную хрень, получая за это лишнюю копеечку.

Как мы потеряли и снова нашли миллионы, не проведя A/B тестирование

Когда подключат пуш-уведомления, тогда и поговорим.

Перевод. Срезаем углы: почему rails может убить ruby

На самом деле ruby не хватает чего-то типа «прекомпилятора» мета-кода, хотя задача не такая сложная, как выглядит. Это же руби, можно воспользоваться манки-патчингом, чтобы избавиться от манки-патчинга: надо всего-лишь изменить class_eval и module_eval методы.

Перевод. Срезаем углы: почему rails может убить ruby

Частично согласен, но не столько по поводу рельс, сколько про 3rd party-gems, добавляющих свои мета-методы в Object >_<, по умолчанию загружающих кучу ненужных модулей, или идущих в комплекте с поддержкой всех-всех ORM (что вообще дико бесит, нет чтобы вынести поддержку ORM в другой гем). С другой стороны гемы-то полезные, велосипед не приходится изобретать. Я в последнее время, перед тем как добавить что-то в Gemfile, делаю форк стабильной версии и добавляю ветку «magicless», где тупо выпиливаю весь «магический» код. Где-то такая практика избавила меня от memory leak.

Зачем нужен свободный код и как на нем зарабатывать

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

Экосистема российского ПО. Вступление

«Фатальный недостаток» как национальная идея.

Управление сложностью в проектах на ruby on rails. Часть 2

Одиночный. (Но можно и множественный, если нужно дать юзеру возможность управлять сессиями, например, как в контактике)

Управление сложностью в проектах на ruby on rails. Часть 2

Без inherited_resources управление вложенными ресурсами рано или поздно превратится в муку.

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

Зачем в этом топике про хлебные крошки, я так и не понял, но раньше тоже изобретал велосипед пока не наткнулся на https://github.com/lassebunk/gretel. Оно может и требует небольшого допила, но, в целом, способ, на мой взгляд, элегантный, и не требует залазить с хлебными крошками в контроллер, где им явно не место.

А еще, я слышал, что если использовать нераскрытые неймспейсы в названиях классов, то боженька покарает.

Правильная работа с датой и временем в Ruby on Rails

Нет, не только API. На веб морде нпример у нас moment.js подключенный давным-давно минут за 10.

Сейчас вообще без логики на JS довольно уныло, нафиг так жить?)

Правильная работа с датой и временем в Ruby on Rails

Я в основном про смену зоны в around_action. У нас если и вычисляется для конкректного юзера то только в фоновых задачах и при постановке в расписание, и то, но результат всегда в UTC.

В чем проблема на клиенте переводить данные из дэйтпикера в UTC при отправке и обратно в локальную зону при получении?

Правильная работа с датой и временем в Ruby on Rails

Зачем все эти сложности, когда проще на бэкенде хранить все в UTC, а на клиенте уже вычислять с учетом локального часового пояса?

Information

Rating
6,132-nd
Location
Россия
Registered
Activity