Pull to refresh
5
0
merqlove @merqlove

TechLead / Software Engineer

Send message

Выбор и настройка Garbage Collector для Highload системы в Hotspot JVM

Reading time6 min
Views28K


Введение


При работе в сфере RTB (Real Time Bidding) одной из ключевых характеристик является время, затраченное на показ рекламы пользователю, зашедшему на сайт. Оно складывается из нескольких этапов, один из которых – аукцион за рекламное место, проводимый SSP (Supply Side Platform) между несколькими DSP (Demand Side Platform) системами. В этом случае критической величиной является время, за которое DSP успеет ответить своим инвентарем и денежной ставкой за данный показ. Как правило, верхняя граница этого времени составляет примерно 100 миллисекунд. С учетом того, что для оптимальной производительности рекламных кампаний требуется десятки тысяч запросов в секунду, выполнение данного требования может стать весьма нетривиальной задачей.
Читать дальше →
Total votes 23: ↑20 and ↓3+17
Comments21

Миграция сервиса виртуальных компаньонок на WebRTC

Reading time10 min
Views14K
Это история одного проекта по видеостримингу.

image

Интересный клиент


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

Через пару минут я увидел Ольгу, сопровождающую джентельмена азиатской наружности. На вид ему было около пятидесяти. На слегка морщинистой голове восседала серая шляпа с короткими полями. Они явно шли ко мне. Поравнявшись с кофейным автоматом, который уже журчал в стаканчик моим капучино, джентельмен произнес на ломаном русском: Здраствуйте, я относительный проекта WebRTC. Моя зовут Суконако, и протянул руку. Что привело сюда этого японца, подумал я, ответив на рукопожатие, и пригласил гостя в свой кабинет. Дальше нам пришлось перейти на английский язык, который нам обоим был более понятен.

Собираем требования


Я: Итак, чем могу быть полезен?

С: Мы работаем с 2000 года в стриминге и Flex для большого количества пользователей. Мы используем Adobe Flash Media Server (FMS) и сейчас хотели бы использовать WebRTC.

Я: Можно подробнее о том, чего вы хотели бы достичь использованием WebRTC-сервера?

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

Я: Без проблем, мы можем сделать решение на базе одного из WebRTC-серверов.

С: Adobe FMS нас полностью устраивает. Мы хотели бы расширить круг наших пользователей на WebRTC, не убирая FMS. Он работает хорошо.
Читать дальше →
Total votes 33: ↑29 and ↓4+25
Comments12

Чистая архитектура в Go-приложении. Часть 1

Reading time9 min
Views45K
От переводчика: данная статья написана Manuel Kiessling в сентябре 2012 года, как реализация статьи Дядюшки Боба о чистой архитектуре с учетом Go-специфики.



Перед этой статьей я перевел ее прообраз — смотреть здесь. Поскольку в рамках этой статьи будет активно использоваться описанное в статье Дядюшки Боба, то лучше начать с нее… если Вы, конечно, ее еще не читали.

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

В данной части будет описана общая концепция и работа с внутренним слоем.
Итак, начнем ...
Total votes 35: ↑27 and ↓8+19
Comments11

Live — чат и ActionCable

Reading time3 min
Views13K
Хочу опубликовать коротенькую заметку о том как интегрировать, зарелизиный совсем недавно, ActionCable в ваш Ruby on Rails проект на примере Live — чата. Я не стану углубляться в то, как работает сам ActionCable, просто приведу небольшой пример использования.
Читать дальше →
Total votes 7: ↑7 and ↓0+7
Comments9

Основные законы создания команд разработчиков

Reading time9 min
Views70K
В EDISON часто обращаются инженеры, желающие добавить сотрудников в команду. Хочется «по-быстрому склепать задачку», воспользовавшись десятком дополнительных разработчиков. Работает ли подобный подход? К сожалению, не всегда. В программировании, как в физике, есть законы.


Собрать толковую команду — настоящее искусство
Читать дальше →
Total votes 60: ↑43 and ↓17+26
Comments17

Ресурсы для дизайнеров и front-end-разработчиков

Reading time5 min
Views64K
Ниже представлена подборка инструментов для дизайнеров и front-end-разработчиков. Мы настоятельно рекомендуем вам просмотреть их все. Надеемся, что вы найдете для себя что-то полезное.

Читать дальше →
Total votes 41: ↑30 and ↓11+19
Comments7

JSONB запросы в PostgreSQL

Reading time7 min
Views269K
Ранее я писал, как включить поддержку jsonb в postgres/psycopg2. Сегодня экспериментировал с тем, как запрашивать данные в колонках типа JSON.
На эту тему есть документация, но мне было не совсем понятно, как работают различные операции:

CREATE TABLE json_test (
  id serial primary key,
  data jsonb
);

INSERT INTO json_test (data) VALUES 
  ('{}'),
  ('{"a": 1}'),
  ('{"a": 2, "b": ["c", "d"]}'),
  ('{"a": 1, "b": {"c": "d", "e": true}}'),
  ('{"b": 2}');

Читать дальше →
Total votes 34: ↑33 and ↓1+32
Comments12

Свой облачный хостинг за 5 минут. Часть 2: Service Discovery

Reading time7 min
Views43K
Cloud hosting

Привет Хабр! В предыдущей статье я рассказал как построить свой облачный хостинг за 5 минут, используя Ansible, Docker и Docker Swarm. В этой части я расскажу о том, как сервисы, запущенные в облаке, находят друг друга, как происходит балансировка нагрузки между ними и обеспечивается их отказоустойчивость.

Это вводная статья, здесь мы сосредоточимся на обзоре инструментов, которые будут решать проблему «обнаружения сервисов» в нашем облаке. В следующей части мы приступим к практике, поэтому я решил дать вам время поближе ознакомиться с ними.
Читать дальше →
Total votes 26: ↑23 and ↓3+20
Comments1

Файловая система и Hadoop: Опыт Twitter (Часть 2)

Reading time2 min
Views9.6K
Наш основной принцип работы заключается в том, что IaaS должен быть простым и понятным даже для тех, кто не сталкивался с ИТ-сферой. Поэтому мы проводим постоянную оптимизацию всех систем и рассказываем о том, что нам удалось сделать, в нашем блоге на Хабре.

Пара примеров:


Сегодня мы решили продолжить краткий разбор заметки команды инженеров Twitter о создании файловой системы для работы с кластерами Hadoop.

Читать дальше →
Total votes 8: ↑8 and ↓0+8
Comments0

Отношения классов — от UML к коду

Reading time7 min
Views756K
Введение

Диаграмма классов UML позволяет обозначать отношения между классами и их экземплярами. Для чего они нужны? Они нужны, например, для моделирования прикладной области. Но как отношения отражаются в программном коде? Данное небольшое исследование пытается ответить на этот вопрос — показать эти отношения в коде.
Читать дальше →
Total votes 25: ↑22 and ↓3+19
Comments21

Лекция Дмитрия Ветрова о математике больших данных: тензоры, нейросети, байесовский вывод 

Reading time2 min
Views49K
Сегодня лекция одного из самых известных в России специалистов по машинному обучению Дмитрия Ветрова, который руководит департаментом больших данных и информационного поиска на факультете компьютерных наук, работающим во ВШЭ при поддержке Яндекса.

Как можно хранить и обрабатывать многомерные массивы в линейных по памяти структурах? Что дает обучение нейронных сетей из триллионов триллионов нейронов и как можно осуществить его без переобучения? Можно ли обрабатывать информацию «на лету», не сохраняя поступающие последовательно данные? Как оптимизировать функцию за время меньшее чем уходит на ее вычисление в одной точке? Что дает обучение по слаборазмеченным данным? И почему для решения всех перечисленных выше задач надо хорошо знать математику? И другое дальше.



Люди и их устройства стали генерировать такое количество данных, что за их ростом не успевают даже вычислительные мощности крупных компаний. И хотя без таких ресурсов работа с данными невозможна, полезными их делают люди. Сейчас мы находимся на этапе, когда информации так много, что традиционные математические методы и модели становятся неприменимы. Из лекции Дмитрия Петровича вы узнаете, почему вам надо хорошо знать математику для работы с машинным обучением и обработкой данных. И какая «новая математика» понадобится вам для этого. Слайды презентации — под катом.
Читать дальше →
Total votes 58: ↑57 and ↓1+56
Comments16

Потоковая обработка данных при помощи Akka

Reading time5 min
Views39K
Привет, Хабр! Все привыкли ассоциировать обработку больших данных с Hadoop (или Spark), которые реализуют парадигму MapReduce (или его расширения). В этой статье я расскажу о недостатках MapReduce, о том, почему мы приняли решение отказываться от MapReduce, и как мы приспособили Akka + Akka Cluster на замену MapReduce.


Читать дальше →
Total votes 47: ↑44 and ↓3+41
Comments50

Amazon + Ansible

Reading time5 min
Views13K
image + image

В данной заметке хочу рассказать о некоторых приемах решений задач по связке ansible + amazon, может кому-то будет полезно или кто-то подскажет решения лучше. О установке/настройке ansible информации уже много, так что её я пропущу. О работе с amazon тоже ничего оригинального добавить не смогу. Итак, приступим.
Читать дальше →
Total votes 6: ↑5 and ↓1+4
Comments2

Под капотом образовательного проекта Хекслет

Reading time5 min
Views16K
Привет, Хабр!



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

Напомню, Хекслет — это платформа для создания практических уроков по программированию в настоящей среде разработки. Под настоящей средой разработки мы подразумеваем полноценную машину, подключенную к сети. Эта важная деталь отличает Хекслет от других образовательных проектов (например, Codecademy или CodeSchool) — у нас нет симуляторов, все по-настоящему. Это позволяет обучать и обучаться не только программированию, но и работе с базами данных, серверами, сетью, фреймворками и так далее. В целом, если это запускается на Unix-машине — этому можно обучать на Хекслете. При этом, понимая это или нет, пользователи используют Test-Driven Development (TDD), потому что их решения проверяются юнит-тестами.

В этом посте я расскажу про архитектуру платформы Хекслет и инструменты, которые мы используем. О том, как на этой платформе создавать практически уроки — в следующей статье.
Читать дальше →
Total votes 31: ↑30 and ↓1+29
Comments19

50+ лучших дополнений к Bootstrap

Reading time5 min
Views202K


Благодаря популярности CSS фреймворка Bootstrap, для него разработали массу различных дополнений. Даже сейчас вы можете использовать Bootstrap практически для любой задачи при разработке и оформлении вебсайта.

Для статьи я подобрал наиболее полезные дополнения «на все случаи жизни».
Читать дальше →
Total votes 123: ↑111 and ↓12+99
Comments25

Советы основателя. Олег Балбеков, директор Evrone и основатель Vexor.io

Reading time8 min
Views9.1K
На «Мегамозге» в очередной раз «Советы основателя».

Разговор с Олегом Балбековым – генеральным директором компании Evrone и сооснователем сервиса Vexor.io получился интересным и длинным. Отчасти потому, что у Олега и его команды действительно обширный и глубокий опыт в разработке продуктов и проектов в сети, отчасти, потому что мы уже пересекались в рамках различных конференций, проводимых в Москве и не только.

Любая компания, занимающаяся заказной разработкой, «мечтает» однажды начать делать собственные продукты. У нас все достаточно тематично, то есть мы делаем проекты, используя основную технологию (для нас это «Ruby» и «Ruby On Rails»), мы проводим конференцию, посвященную данной технологии («RailsClub»), и мы делаем продукты для программистов, которые мы «выстрадали».
Читать дальше →
Total votes 25: ↑24 and ↓1+23
Comments1

Конференция DUMP-2015: как это было

Reading time8 min
Views9.6K
20 марта в Екатеринбурге прошла пятая конференция разработчиков DUMP (Development. Usability. Management. Practice). 50 докладов и почти тысяча разработчиков, дизайнеров, аналитиков, тестировщиков, верстальщиков, менеджеров — всё это DUMP-2015. Конференция за три минуты — в ролике ниже. А под катом — видео докладов и фотографии.



Читать дальше →
Total votes 15: ↑14 and ↓1+13
Comments1

DKIM — это просто

Reading time3 min
Views373K
Здравствуйте.

Хочу поделиться своим небольшим опытом прикручивания DKIM (DomainKeys Identified Mail) к своему домену и почтовому серверу.

Мы имеем:
Задача:
  • Разобраться в системе подписи сообщений DKIM, что бы gmail признал её валидной и выдал заветные: dkim=pass.

Читать дальше →
Total votes 35: ↑30 and ↓5+25
Comments34

Запускаем PHPUnit тесты для проекта на 1С-Битрикс

Reading time3 min
Views16K
Здравствуйте коллеги,

В этом посте хочу показать свой способ запуска юнит-тестов на битрикс-проектах. При юнит-тестировании таких проектов существует известная проблема инициализации ядра системы. Ниже я покажу как мне удалось ее решить.
Читать дальше →
Total votes 10: ↑7 and ↓3+4
Comments8

UX-команда MailChimp: Дизайн [4-я часть книги]

Reading time4 min
Views12K


[TL;DR]

[ 1-я часть книги ]
[ 2-я часть книги ]
[ 3-я часть книги ]
[ 5-я часть книги ]
[ 6-я часть книги ]
[ 7-я часть книги ]
[ 8-я часть книги ]

Скетчинг: зачем и как


Федерико Холгадо

Скетчи – один из наиболее эффективных инструментов, с помощью которого дизайнеры обмениваются идеями. Если я попадусь вам на глаза в офисе MailChimp, вы обязательно заметите скетчбук или iPad в моих руках. Я не сомневался в значимости скетчинга и до работы в MailChimp, но за последние несколько лет мои убеждения укрепились в еще большей степени. Конечно, за это время я научился паре приемов в Photoshop и с CSS, которые помогают мне работать с UX/UI-идеями. Об этом я и расскажу.
Читать дальше →
Total votes 13: ↑13 and ↓0+13
Comments0
1
23 ...

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity

Specialization

Backend Developer, Fullstack Developer
Lead
From 10,000 $
Ruby
Ruby on Rails
Docker
C#
Java
Apache Kafka
High-loaded systems
Redis
SQL
English