Как стать автором
Обновить
  • по релевантности
  • по времени
  • по рейтингу

«Яндекс.Карты» начали показывать в реальном времени размер очередей, пока что только в некоторых супермаркетах

Социальные сети и сообщества IT-компании

В сервисе «Яндекс.Карты» появилась возможность узнать размер очередей в некоторых супермаркетах Москвы и Санкт-Петербурга. Это сделано для того, чтобы пользователи смогли оценить возможность похода в тот магазин, где можно соблюдать социальную дистанцию, особенно стоя перед загруженными кассами.
Читать дальше →
Всего голосов 21: ↑20 и ↓1 +19
Просмотры 7.4K
Комментарии 31

Вебинар «Выбираем правильно очередь сообщений» 30 сентября

Блог компании VK Администрирование баз данных *Big Data *Хранение данных *Облачные сервисы


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

30 сентября (четверг) присоединяйтесь к вебинару «Выбираем правильно очередь сообщений: как не поставить крест на масштабируемости и отказоустойчивости вашего приложения», где мы расскажем, на что следует обратить внимание при выборе брокера очередей, для каких задач их использование наиболее эффективно, а также приведем сравнительные характеристики RabbitMQ, Kafka, облачных очередей и других кандидатов. Присоединяйтесь!
Подробнее о вебинаре
Всего голосов 3: ↑3 и ↓0 +3
Просмотры 471
Комментарии 0

Каспийские монстры многопоточности

C++ *


Мне очень хочется показать, что в многопоточности С++ «очень быстро» не исключает «очень безопасно». А значит можно писать эффективные и стабильные программы со сколь угодно большим количеством потоков и при этом избегать траты кучи времени на отладку многопоточности. Если Вам интересно, как мне удаётся не выстрелить себе в ногу, и чем я за это плачу, добро пожаловать
под кат
Всего голосов 88: ↑81 и ↓7 +74
Просмотры 6.9K
Комментарии 75

Отложенные уведомления пользователей на Node.js & Redis

Node.JS *
Из песочницы
Описание задачи

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

Читать дальше →
Всего голосов 27: ↑26 и ↓1 +25
Просмотры 7.7K
Комментарии 5

AWS: Итеграция SNS + SQS

Блог компании EPAM Amazon Web Services *
Привет! image

Amazon Web Services анонсировали интеграцию Simple Notification Service с Simple Queue Service. У очередей теперь появилась возможность подписываться на темы SNS.

Что же нам даёт эта новая фича. Те, кто серьёзно используют механизмы общения между серверами на AWS знают, что:
  • SQS — очереди FIFO с возможностью восстановления в случае необработки
  • SNS — темы, на которые можно подписаться и получать сообщения

Т.е. 2 совершенно разных типа нотификаций, когда в пером случае элементом может владеть только один получатель, а во втором — все подписчики.
Читать дальше →
Всего голосов 2: ↑0 и ↓2 -2
Просмотры 3.5K
Комментарии 0

Инфраструктура обработки очередей в социальной сети Мой Мир

Блог компании VK Системное программирование *


Некоторое время назад мы рассказывали о сервере очередей, принципах его работы и внутреннем устройстве. Теперь же, наконец, пришло время перейти к рассмотрению очередей с более продуктовой точки зрения и рассказать об инфраструктуре, применяемой для обработки заданий. Давайте начнем чуть издалека, с того, на чем мы остановились в прошлой статье: для чего, собственно, очереди можно применять.
Читать дальше →
Всего голосов 71: ↑50 и ↓21 +29
Просмотры 12K
Комментарии 9

Задачи, микрозадачи, очереди и планы

JavaScript *Браузеры
Из песочницы
Предлагаю вашему вниманию перевод статьи «Tasks, microtasks, queues and schedules» Джейка Арчибальда (Jake Achibald), занимающего должность Developer Advocate for Google Chrome.

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

На самом деле, если вам будет проще посмотреть видео, есть замечательное выступление Филиппа Робертса на JSConf, которое рассказывает о событийном цикле – оно не покрывает микрозадачи, но в остальном является отличным вступлением в тему. В любом случае, погнали…

Давайте рассмотрим следующий код на JavaScript:
console.log('script start');

setTimeout(function() {
  console.log('setTimeout');
}, 0);

Promise.resolve().then(function() {
  console.log('promise1');
}).then(function() {
  console.log('promise2');
});

console.log('script end');

Как вы думаете, в каком порядке должны вывестись логи?
Читать дальше →
Всего голосов 22: ↑21 и ↓1 +20
Просмотры 51K
Комментарии 9

Балансировка 70 тысяч запросов в секунду на HighLoad++

Блог компании Конференции Олега Бунина (Онтико) Высокая производительность *Разработка веб-сайтов *Анализ и проектирование систем *

Библиотека докладов


Это не просто статья — это целая библиотека докладов про внутреннее устройство тех или иных крупных и высоконагруженных проектов. Все эти доклады звучали на конференциях HighLoad++ и РИТ++ за последние несколько лет.


Читать дальше →
Всего голосов 43: ↑38 и ↓5 +33
Просмотры 37K
Комментарии 11

Принципы и приёмы обработки очередей

Блог компании Конференции Олега Бунина (Онтико) Высокая производительность *Проектирование и рефакторинг *Алгоритмы *NoSQL *


Принципы и приёмы обработки очередей


Константин Осипов (Mail.ru)


Как вы считаете, какова стоимость очередей с приоритетами? То есть если кто-то лезет вне очереди, то как посчитать стоимость для всей системы в этой ситуации, чему она пропорциональна? Времени обслуживания клиента — например, 5 минут стоит его обслужить? Она пропорциональна количеству ожидающих, потому что время ожидания для каждого из них увеличится.


Для начала о себе — я занимаюсь разработкой СУБД Tarantool в Mail.ru. Этот доклад будет об обработке очередей. У нас много очередей внутри системы, фактически вся база данных построена как система массового обслуживания.


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




Всего голосов 48: ↑45 и ↓3 +42
Просмотры 33K
Комментарии 2

Вещи, которые мне надо было знать прежде, чем создавать систему с очередью

Анализ и проектирование систем *
Фото очереди в мавзолей Мао Цзэдуна —  BrokenSphere / Wikimedia Commons

В проекте, над которым я сейчас работаю, применяется распределённая система обработки данных: сначала несколько десятков машин одновременно производят некоторые сообщения, затем эти сообщения отправляются в очередь, из очереди три потока извлекают сообщения и после финальной обработки выкладывают данные в базу Redis. При этом имеется требование: от «зарождения» события в машине, производящей сообщение, до выкладывания обработанных данных в базу должно проходить не более четырёх секунд в 90% случаев.

В какой-то момент стало очевидно, что мы это требование не выполняем, несмотря на затрачиваемые усилия. Несколько произведённых измерений и маленький экскурс в теорию очередей привели меня к выводам, которые я бы хотел донести до себя самого несколько месяцев назад, когда проект только начинался. Отправить письмо в прошлое я не могу, но могу написать заметку, которая, возможно, избавит от неприятностей тех, кто только задумывается над тем, чтобы применять очереди в собственной системе.
Читать дальше →
Всего голосов 46: ↑44 и ↓2 +42
Просмотры 26K
Комментарии 36

10 типов структур данных, которые нужно знать + видео и упражнения

Блог компании Нетология Data Mining *Big Data *Открытые данные *Визуализация данных
Recovery mode
Перевод
Екатерина Малахова, редактор-фрилансер, специально для блога Нетологии адаптировала статью Beau Carnes об основных типах структур данных.

«Плохие программисты думают о коде. Хорошие программисты думают о структурах данных и их взаимосвязях», — Линус Торвальдс, создатель Linux.

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

В этой статье я покажу вам 10 самых распространенных структур данных.
Всего голосов 37: ↑29 и ↓8 +21
Просмотры 191K
Комментарии 31

Как облачный сервис Кабинет Дримкас справляется со спонтанными нагрузками

Блог компании Дримкас Высокая производительность *Анализ и проектирование систем *Проектирование и рефакторинг *Развитие стартапа
image

Однажды днем у нас обрушился сайт. Сразу после ребута он падал снова. Мы знали, что это не DDOS, а органический трафик: к нам поступали типичные запросы, но сервера не справлялись. Увеличение мощности железа не помогало. Стало ясно, что пора оптимизировать нашу систему.


Молодым стартапам может быть интересно, как справляться с возросшими нагрузками на еще неокрепшее серверное ПО.

Читать дальше →
Всего голосов 11: ↑10 и ↓1 +9
Просмотры 4.1K
Комментарии 1

О выборе структур данных для начинающих

Программирование *Разработка игр *
Перевод
image

Часть 1. Линейные структуры


Массив


Когда вам нужен один объект, вы создаёте один объект. Когда нужно несколько объектов, тогда есть несколько вариантов на выбор. Я видел, как многие новички в коде пишут что-то типа такого:

// Таблица рекордов
int score1 = 0;
int score2 = 0;
int score3 = 0;
int score4 = 0;
int score5 = 0;

Это даёт нам значение пяти рекордов. Этот способ неплохо работает, пока вам не потребуется пятьдесят или сто объектов. Вместо создания отдельных объектов можно использовать массив.

// Таблица рекордов
const int NUM_HIGH_SCORES = 5;
int highScore[NUM_HIGH_SCORES] = {0};

Будет создан буфер из 5 элементов, вот такой:



Заметьте, что индекс массива начинается с нуля. Если в массиве пять элементов, то они будут иметь индексы от нуля до четырёх.
Читать дальше →
Всего голосов 42: ↑40 и ↓2 +38
Просмотры 123K
Комментарии 31

Моя очередь самая медленная: предприятия пытаются избавиться от очередей

Урбанизм
Перевод

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




Вторая статья из серии «передвигая массы» про управление потоками толп или отдельных людей, водителей или пешеходов, покупателей или тех, кто едет на работу, птиц или муравьёв. (предыдущая статья)
Помните, что время – это деньги.
Бенджамин Франклин, 1748

Встаёте вы в очередь, чтобы оплатить ваши покупки, сделать денежный перевод или дождаться столика в модном ресторане, время стоит денег. Предприятия всё больше осознают прямую и косвенную стоимость ожидания, и ищут инновационные способы уменьшить эти расходы, придумывая способы избавиться от очередей. Проблема, с которой сталкивается всякий бизнес, обслуживающий людей, вынужденных стоять в очереди, состоит в том, что ему необходимо как управлять людским восприятием, так и оптимизировать скорость обслуживания.
Читать дальше →
Всего голосов 15: ↑12 и ↓3 +9
Просмотры 4.5K
Комментарии 1

Самый полный русскоязычный перевод Гарвардского курса по программированию CS50 2015, бесплатно на YouTube

Программирование *
Из песочницы
В этой статье я хочу немного рассказать о самом лучшем в мире курсе по программированию.

С 2013 года наша небольшая команда занимается переводом и адаптацией англоязычных видеокурсов. За это время мы перевели и адаптировали свыше 150 часов материала. Перед тем как приступать к работе, мы анализировали материалы нескольких обучающих онлайн-школ, и выбирали, на наш педагогический взгляд, самую лучшую, которая максимально доступно, структурированно и кратко подаёт обучающий материал. В результате чего нам приходилось просматривать по несколько курсов касающихся одной и той же тематики, а после выбирать тот, который наиболее качественный и доступный для понимания новичкам.

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

image
Всего голосов 19: ↑18 и ↓1 +17
Просмотры 51K
Комментарии 27

Вся правда об ОСРВ. Статья #23. Очереди: введение и базовые службы

Программирование микроконтроллеров *
Перевод


Очереди были упомянуты в одной из предыдущих статей (#5). Они предоставляют более гибкий способ передачи простых сообщений между задачами по сравнению с почтовыми ящиками.
Читать дальше →
Всего голосов 9: ↑8 и ↓1 +7
Просмотры 1.3K
Комментарии 0

Вся правда об ОСРВ. Статья #24. Очереди: вспомогательные службы и структуры данных

Программирование микроконтроллеров *
Перевод


В этой статье мы продолжим рассматривать очереди.

Вспомогательные службы очередей


Nucleus RTOS имеет четыре вызова API, которые предоставляют вспомогательные функции связанные с очередями: сброс очереди, получение информации об очереди, получение количества очередей в приложении и получение указателей на все очереди в приложении. Первые три функции реализованы в Nucleus SE.
Читать дальше →
Всего голосов 6: ↑4 и ↓2 +2
Просмотры 1.2K
Комментарии 0

Вся правда об ОСРВ. Статья #26. Каналы: вспомогательные службы и структуры данных

Программирование микроконтроллеров *
Перевод


В данной статье мы продолжим рассматривать каналы передачи данных.

Вспомогательные службы каналов


Nucleus RTOS имеет четыре вызова API, которые предоставляют вспомогательные функции, связанные с каналами: сброс канала, получение информации о канале, получение количества каналов в приложении и получение указателей на все каналы в приложении. Первые три функции реализованы в Nucleus SE.
Читать дальше →
Всего голосов 8: ↑7 и ↓1 +6
Просмотры 963
Комментарии 1

Как аэропорт Фукуоки узнал, какие меры будут эффективны для уменьшения очередей

Блог компании Fujitsu Машинное обучение *Разработка для интернета вещей *Искусственный интеллект Интернет вещей
Перед вами не вымышленная картинка из рекламного журнала «Аэропорты будущего». Это реально действующий аэропорт японского города Фукуока, который предлагает пассажирам немало свободного пространства для перемещения. Благодаря специальной технологии моделирования были выявлены причины образования очередей и приняты меры по оптимизации. Кому интересно, как работает эта технология, прошу под кат.


Фото предоставлено городом Фукуока
Читать дальше →
Всего голосов 15: ↑14 и ↓1 +13
Просмотры 6.9K
Комментарии 29

Меняем фреймворк и профиль работы на ходу — и не только. Что будет на втором митапе PHP NN

Блог компании Skyeng Разработка веб-сайтов *PHP *Symfony *Конференции
Под катом можно увидеть, как прошла первая встреча сообщества, а пока — важный анонс для тех, кто живет в Нижнем или будет там 21 декабря (это суббота).



Приходи на новые посиделки: Дмитрий Косов из московского Финама расскажет, как ребята переезжали с Zend на Symfony без остановки разработки, Олег Скляров (Skyeng) — как и зачем из фуллстека согласился стать тимлидом мобильных разработчиков, а Андрей Щеглов из Timebook — как пилил свой PHP-демонизатор. А еще обсудим, какие форматы будут полезны и интересны сообществу в следующем году.
Всего голосов 15: ↑15 и ↓0 +15
Просмотры 2.5K
Комментарии 5
1