Рубрика «ruby» - 24

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

Менеджер памяти руби одновременно и элегантен, и не лишен странностей, в любую минуту готовых обернуться неприятным сюрпризом. Руби хранит объекты (RVALUE) в так называемой куче (это не heap в классическом понимании c-программистов, у руби своя куча). На низком уровне, RVALUE — это обычная c-struct, состоящая из области «атрибутов» и собственно области «данных». Подробный рассказ о том, как внутри хранятся объекты выходит за рамки данной заметки; достаточно просто понимать, что каждому объекту в руби соответствует такой вот RVALUE. Сборщик мусора считает ссылки на него, и очищает слот, когда счетчик обнуляется. В чисто академических целях скажу, что размер каждого такого слота зависит от архитектуры:

/*
 *  sizeof(RVALUE) is
 *  20 if 32-bit, double is 4-byte aligned
 *  24 if 32-bit, double is 8-byte aligned
 *  40 if 64-bit
 */

Итак, у нас есть слоты (это принятое название, slot), размером около сорока байт, в которых хранятся… Вот тут и начинается самое интересное. Там не просто хранятся ссылки на объекты, размещенные в настоящей системной куче, как, наверное, подумали люди, знакомые с реализацией более традиционных сборщиков мусора.

Читать полностью »

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

Одним из лучших советов тут конечно было бы подождать месяц-другой и только затем обновляться — избавит от многих проблем и потери времени. Но ждать не хочется, а посему после обновления у вас гарантированно всё сломается (речь далее в основном идёт о ruby и rails): будут выскакивать seg fault'ы, не будут собираться некоторые гемы, возникнут проблемы со скриптами в консоли.
Исправление некоторых проблем нагуглить будет легко, а для некоторых предлагают лишь хаки в виде задания дополнительных параметров компиляции и переменных окружения.
Читать полностью »

Привет.
Меня зовут Олег Балбеков, я хочу рассказать вам о нашем новом проекте Vexor CI.

image

Vexor CI – облачный continuous integration сервис для разработчиков, позволяющий эффективно тестировать проекты.

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

Vexor:

  • для тех, кому надоело тратить время и деньги на поддержание тестовой инфраструктуры;
  • для тех, кому давно не хватает ресурсов локального сервера;
  • для тех, кто не решается на облачный CI потому, что дорого;
  • для тех, кто устал ждать очереди на просчёт тестов в обычном облачном CI;
  • для тех, кому действительно важна скорость.

У нас справедливая цена (поминутная оплата) и безлимитные мощности для каждого. Всем подключившимся мы дарим $10 и не берём оплату, пока вы настраиваете сервис. У нас самая дружественная русскоязычная поддержка (в моём лице). Подключайтесь!

Читать полностью »

Всем привет!

Как вы, наверное, уже знаете, две недели назад прошла конференция RailsClub Moscow 2014. Надеемся, что все участники получили свежий заряд знаний, вдохновения и общения, то есть нарубизировались на год вперед :)

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

image

Начнем!
Читать полностью »

Всем привет! По моему мнению, каждый программист должен стремиться к автоматизации и оптимизации всего, что движется и еще нет. В этой статье будет рассказано о том, как автоматизировать рабочий процесс Ruby on Rails разработчика с помощью Ruby гема под названием Guard. Эта статья в первую очередь полезна Ruby разработчикам, но может пригодиться и другим.

image

Что такое Guard?

Читать полностью »

Всем привет!
Давно не выходило свежих книг на русском языке по языку Ruby. Как вы считаете?

Мы предварительно отобрали несколько потенциальных кандидатов на перевод и хотим узнать о них мнение наших читателей.

1. The Well-Grounded Rubyist
image

2. Metaprogramming Ruby 2
image

Читать полностью »

Grape: не рельсами едиными
В этом посте я хотел бы познакомить вас с Grape — веб-фреймворком, написанным на ruby, предназначенным для быстрой и удобной разработки API, а также немного порассуждать о судьбе Rails в свете последних тенденций в веб-разработке.
Читать полностью »

Почти полное руководство по написанию Ruby гемов

Доброго времени суток, user.

Не так давно у меня возникла задача сделать прототип для одного проекта. В него входила работа с Facebook Graph API. Поковыряв некоторые гемы, я понял, что они для меня не совсем удобные или же реализуют нужный функционал уж слишком сложно. И тут в моей голове всплыла старая идея о написании своего гема. Загуглив массу запросов по этой теме, не нашел полной информации, тем более на русскоязычных ресурсах. Вот так и возникла идея этой статьи. Руководство названо «почти полным», так как тут освещены не все аспекты, а лишь те, которые минимально необходимы и желательны для начала существования продукта вашего воображения. Прошу под кат!
Читать полностью »

Сегодня у RailsClub 2014 важный день — нас стало 300! Это значит, что на конференции будет много знакомых лиц, интересного общения и совсем не будет свободных мест. Успевайте, осталось всего 35 билетов!

Сегодня на вопросы ответил наш замечательный коллега по Evrone, автор и CTO сервиса Teatro (о котором мы недавно писали пост) Александр Балашов.

image

Над чем ты сейчас работаешь?
Читать полностью »

Привет. Мы стали спонсорами RailsClub 2014 и хотели бы рассказать о нашем проекте по автоматизации ручного тестирования Teatro.io.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js