Pull to refresh

Blizzard открыла предварительную регистрацию в очередь на бета-тестирование Diablo IV

Reading time 2 min
Views 5.1K
Game development *Games and game consoles IT-companies


12 июня 2022 года Blizzard открыла предварительную регистрацию пользователей на попадание в очередь на бета-тестирование долгожданной игры Diablo IV. Для этого нужно зайти под своей учётной записью Battle.net и подать заявку.
Читать дальше →
Total votes 6: ↑6 and ↓0 +6
Comments 34

В очереди на уход из РФ оказалось около 2 тысяч иностранных компаний

Reading time 1 min
Views 18K
IT-emigration Legislation in IT Finance in IT IT-companies

По данным Financial Times, около 2 тысяч зарубежных компаний ждут разрешения Минфина на продажу активов в России. Пока из 1,4 тысячи иностранных компаний с выручкой не менее $5 млн в год только 206 полностью продали российские доли. 

Читать далее
Total votes 23: ↑20 and ↓3 +17
Comments 49

Какая боль! Толпы против Веб — 2:0. Эпизод один — высокоскоростная очередь

Reading time 5 min
Views 751
Website development *
Тов. phpdude открыл блогом «PHP+MySQL оптимизация» интересную тему, захватывающую большую аудиторию. Расскажу я о том, как я Веб 2.0 убил два моих сервера (из-за моей глупости в т.ч.) и еще планирует поубивать.

Все началось осенью 2006 года, когда я решил открыть небольшой сайтик с 70 миллионами страничек. И нет, они не были бы сделаны по цепям Маркова, а именно были бы полезными. Почему 70 миллионов? Потому что столько .com/.net/.org доменов в тот момент я смог найти.
Читать дальше →
Total votes 88: ↑70.5 and ↓17.5 +53
Comments 104

Очереди в Сбербанках по новому

Reading time 2 min
Views 1.5K
Interfaces *
Хочу дать несколько советов по улучшению Электронных очередей.
Сейчас в некоторых Сбербанках города Москвы реализована система «Электронных очередей».

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

Всё оставляет приятные впечатления, кроме нескольких вещей, которые (даже сейчас, простым обновлением ПО) можно и нужно улучшить.

Читать дальше →
Total votes 39: ↑35 and ↓4 +31
Comments 58

Unclesocky podcast — Выпуск #34

Reading time 1 min
Views 371
Lumber room
— Система дала сбой
— Эффект «очереди»
— Экономист и его теория
— Идеальное или реальное рабочее место?
— У истоков системы с транзактами
— Неоднозначность в лабе
— Пишем прогу по командам
— МСК — Кодиак 3:3
— Футбол как один из смыслов жизни
— Авангард — Кодиак 3:1
— 3 отрицательных момента + з/п
— Работа + велосипед?

unclesocky podcast34 / 17.6 Мб / 38:27 / MP3, 64 kbps
Download

Офф. сайт подкаста

RSS подкаста
Total votes 1: ↑0 and ↓1 -1
Comments 0

AMQP по-русски

Reading time 4 min
Views 84K
Website development *
Сегодня довольно мало информации о протоколе AMQP (Advanced Message Queueing Protocol) и его применении, особенно на русском языке. А вообще это — замечательный, уже достаточно широко поддерживаемый открытый протокол для передачи сообщений между компонентами системы с низкой задержкой и на высокой скорости. При этом семантика обмена сообщениями настраивается под нужды конкретного проекта. Такие решения существовали и ранее, но это первый стандарт, для которого существует большое количество свободных реализаций.

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

Сегодня тема доставки информации в реальном времени является крайне актуальной (достаточно вспомнить хотя бы Twitter, Google Wave). И здесь системы передачи сообщений могут служить внутренним механизмом обмена данными, который обеспечивает доставку данных (изменений данных) клиентам.

Я не ставлю своей целью сегодня рассказать о том, как писать приложения для AMQP. Хочу лишь немного рассказать о том, что это совсем не страшно, не очень сложно, и действительно работает, хотя стандарт находится еще в развитии, выходят новые версии протокола, брокеров и т.п. Но это уже вполне production-quality. Расскажу лишь базовые советы, чтобы помочь “въехать” в протокол.
Читать дальше →
Total votes 35: ↑34 and ↓1 +33
Comments 31

Простой способ организации очереди из AJAX-запросов

Reading time 2 min
Views 3.3K
Lumber room
Постановка задачи

Асинхронные запросы являются удобным способом разгрузить пользователей сайта от избытка информации, которая «сваливается» на них после отображения страницы. Рассмотрим классический пример — список товаров в интернет-магазине. Пользователь выполняет какой-либо поисковый запрос, в результате чего ему отображается компактный список найденных товаров. Например, это могут быть только одни названия. Под каждым из названий стоит ссылка «подробнее», после клика на которую под названием откроется дополнительный блок, уже с подробной информацией о товаре. Удобство пользователя налицо — быстро пробежав глазами весь список, он «прокликает» только заинтересовавшие его товары, и быстро перейдет к следующим страницам. Выгодно это и со стороны сервера — меньшая нагрузка, меньше исходящего трафика.

Однако в такой системе неизбежно возникает следующий момент: пользователь может подряд быстро нажать на несколько ссылок «подробнее», в то время как сервер будет долго обрабатывать входящие запросы. Если в AJAX используется только один объект XMLHttpRequest (обычно так и есть), то все запросы свалятся в нем «в кучу», и результат запроса отобразится не там, где нужно. Таким образом, встает задача организовать очередь из однотипных асинхронных запросов к серверу, так, чтобы последующий выполнялся только после того, как закончится предыдущий.

Читать дальше →
Total votes 11: ↑6 and ↓5 +1
Comments 11

Прием граждан: опыт внедрения «электронной очереди» в государственной организации

Reading time 3 min
Views 7.7K
Legislation in IT
Добрый день, друзья!

Так или иначе, всем нам приходится обращаться в государственные органы. Взять справку, поставить на учет, снять с учета, зарегистрировать и т.д. И каждый раз приходится выстаивать многочасовые очереди ради одной-двух заветных бумажек или печатей. В сегодняшней статье я хотел бы рассказать о том, как лично мы боремся с проблемой очередей (в нашем Управлении [УФРС по Курганской области] довольно большой поток посетителей, так что задача довольно актуальна).

Сразу хочу оговориться о целях статьи:

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

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

Читать дальше →
Total votes 85: ↑84 and ↓1 +83
Comments 71

Прием граждан: опыт внедрения «электронной очереди» (часть 2)

Reading time 3 min
Views 2.7K
Legislation in IT
Добрый день, дорогие друзья!
Прошло три месяца с моей предыдущей заметки про то, как мы внедрили в нашем Управлении «электронную очередь» для приема граждан. За три месяца проделан очередной большой объем работы. Во-первых, конечно же, обкатка и «доработка напильником» всей системы в «боевых условиях». И, во-вторых — буквально на днях была запущена система для самостоятельной (!!) записи заявителей в очередь. Обо всех этих «вкусностях» читайте под катом. Кроме того, для всех интересующихся я подготовил видеопрезентацию, позволяющую вживую посмотреть, как все это работает.

Читать дальше →
Total votes 40: ↑38 and ↓2 +36
Comments 43

Очередь на «Аватар» в Минске

Reading time 1 min
Views 1.3K
Science fiction
Вчера открылся первый в Беларуси 3D-кинотеатр, и в первый же день после открытия там должна была состояться премьера фильма «Аватар». Как сообщают информагентства, ещё до рассвета перед кинотеатром начала собираться очередь…


Читать дальше →
Total votes 146: ↑115 and ↓31 +84
Comments 395

Вас тут не стояло

Reading time 1 min
Views 748
Lumber room
Пожалуй каждый визит в любую государственную организацию начинается с очереди. Люди ждут часами, толпясь и толкаясь в узких коридорах, а порой и выясняют силой кто за кем стоял…
image

Порой доходит до безумия:


Непотяно, почему-же до сих пор у нас не принято решение проблемы которым пользуются многие другие страны? Почему у нас нет электронной очереди?
Читать дальше →
Total votes 40: ↑34 and ↓6 +28
Comments 85

Google Nexus 4 закончился в магазинах Google Play в США, Европе и Австралии

Reading time 1 min
Views 93K
Smartphones IT-companies
Согласно сообщениям информагенств и моим личным наблюдениям, смартфон Google Nexus 4, появившийся 13 ноября в продаже в магазинах Google Play, был распродан в течение буквально нескольких десятков минут. В частности, всего через 10 минут после начала продаж в магазине Великобритании обе модели коммуникатора уже показывались как распроданные. В Австралии 16Гб версия закончилась через 22 минуты после старта продаж. Подобное произошло и в США.

Читать дальше →
Total votes 67: ↑52 and ↓15 +37
Comments 116

Структуры данных, PHP

Reading time 9 min
Views 78K
PHP *
Tutorial
Translation
Данный пост является переводом и предназначен для новичков. Ну или для тех, кто забыл лекции с начальных курсов своих вузов. Скорее всего, данный материал уже попадался на хабре в той или иной модификации, но здесь упор на PHP и его особенности.

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

http://www.thisiscolossal.com/2013/01/a-wooden-domino-tree-by-qiu-zhijie/



UPD: s01e02

Осторожно, трафик! Очень много текста!
Total votes 57: ↑44 and ↓13 +31
Comments 17

GPSS-WORLD основы имитационного моделирования на живых примерах

Reading time 11 min
Views 178K
Mathematics *
Tutorial
Доброй пятницы уважаемые читатели Хабра.
В данном посте я предлагаю вам бегло ознакомиться с возможностью создания имитационной модели процессов в программе GPSS-WORLD. Данный пост нельзя считать полноценным туториалом, но я поделюсь с Вами теми крупицами, что знаю и вполне возможно что уже через пол часа после прочтения статьи Вы проявив фантазию создадите свою собственную имитационную модель. Как говориться в народе: «Тяжело в учении легко в бою».
И пусть местами, данный «туториал» придерживается принципа: «битый не битого везет», но я всё же донесу до вас те знания, которые у меня есть, ну а вы уж сами вольны решать, стоить ли мне доверять или лучше проверять. В любом случае я буду рад аудиту кода от знатоков GPSS-WORLD. Все материалы статьи размещены на GItHub
Изучать самые азы будем сразу на живых примерах — доступных, понятных и близких сердцу многим сотрудникам проводящим свои законные 8 часов в офисах.
От конкретики перейдем к лирике, пятница традиционно располагает задаваться безумными вопросами, и в этот раз мы с моим коллегой DrZugrik задались вопросом: «Сколько нужно сотрудников тех поддержки, чтобы рассказать, как вкрутить лампочку?».
За подробностями сего мысленного эксперимента прошу под кат.

Написание этого мини туториала вместе с разработкой моделей заняло 6 часов чистого времени.
буду признателен если статья доберется до потенциально заинтересованных читателей.


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

первоначальная иллюстрация



Читать дальше →
Total votes 10: ↑7 and ↓3 +4
Comments 6

Lock-free структуры данных. Очередной трактат

Reading time 16 min
Views 48K
Programming *C++ *

Как вы, наверное, догадались, эта статья посвящена lock-free очередям.

Очереди бывают разные. Они могут различаться по числу писателей (producer) и читателей (consumer) – single/multi producer — single/multi consumer, 4 варианта, — они могут быть ограниченными (bounded, на основе предраспределенного буфера) и неограниченными, на основе списка (unbounded), с поддержкой приоритетов или без, lock-free, wait-free или lock-based, со строгим соблюдением FIFO (fair) и не очень (unfair) и т.д. Подробно типы очередей описаны в этой и этой статьях Дмитрия Вьюкова. Чем более специализированы требования к очереди, тем, как правило, более эффективным оказывается её алгоритм. В данной статье я рассмотрю самый общий вариант очередей — multi-producer/multi-consumer unbounded concurrent queue без поддержки приоритетов.
Читать дальше →
Total votes 74: ↑71 and ↓3 +68
Comments 8

Lock-free структуры данных. Диссекция очереди

Reading time 11 min
Views 26K
Programming *C++ *Concurrent computing *

Со времени предыдущего поста из жизни lock-free контейнеров прошло немало времени. Я рассчитывал быстро написать продолжение трактата об очередях, но вышла заминка: о чем писать, я знал, но реализации на C++ этих подходов у меня не было. «Не годится писать о том, что сам не попробовал», — подумал я, и в результате я попытался реализовать в libcds новые алгоритмы очередей.
Сейчас настал момент, когда я могу аргументированно продолжить свой цикл. В данной статье закончим с очередями.

Кратко напомню, на чем я остановился. Были рассмотрены несколько интересных алгоритмов lock-free очередей, а под занавес приведены результаты их работы на некоторых синтетических тестах. Главный вывод — всё плохо! Надежды на то, что lock-free подход на магическом compare-and-swap (CAS) даст нам пусть не линейный, но хотя бы какой-то рост производительности с увеличением числа потоков, не оправдались. Очереди не масштабируются. В чем причина?..
Читать дальше →
Total votes 53: ↑52 and ↓1 +51
Comments 16

Настольная игра для самых маленьких программистов (от 7 лет)

Reading time 2 min
Views 56K
Мосигра corporate blog Programming *Game development *
Мы тут весь год общались с детскими психологами и вообще много думали о теме детского образования. Как один из результатов — сделали игру на развитие логики.



В общем, юному программисту нужно будет написать стек действий для таксиста. Чтобы довезти пассажира куда надо с первого раза. Сразу говорю — можно играть и с 4-5 лет. Как обычно, если ребёнок — сын инженера, смело вычитайте 2 года из минимального возраста.
Читать дальше →
Total votes 95: ↑88 and ↓7 +81
Comments 76

Conveyor — поэлементная обработка данных с временной задержкой

Reading time 3 min
Views 2.2K
JavaScript *Node.JS *
Sandbox

Что и зачем


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

В тот момент пришлось столкнуться с ограничениями: сайт стал выдавал ошибку при слишком частых запросах (чаще нескольких запросов в секунду). Ну, не проблема, подумал я и решил это известным способом, сделав эдакий «асинхронный цикл». То есть в конце обработки одной страницы стал запускать таймер для обработки следующей.

Далее я вспомнил, что надо парсить разные разделы этого сайта и понял, что становится уже слишком неудобно. Поэтому сделал инструмент Conveyor, умеющий обрабатывать некие «элементы данных» (т.е. применять функцию-обработчик к заданных объектам) с временной задержкой между обработкой. Удобным это оказалось и для «тяжёлых» вычислений, которые могут долго выполняться в цикле.

Код Conveyor лежит на гитхабе, поставить можно через npm (называется dataconveyor). Более структурированная справка также на гитхабе. Использовать его можно как угодно и где угодно, без ограничений.

Ниже описание инструмента Conveyor.
Читать дальше →
Total votes 6: ↑5 and ↓1 +4
Comments 2

Структуры данных. Неформальный гайд

Reading time 6 min
Views 163K
Programming *Algorithms *
Translation


Конечно, можно быть успешным программистом и без сакрального знания структур данных, однако они совершенно незаменимы в некоторых приложениях. Например, когда нужно вычислить кратчайший путь между двумя точками на карте, или найти имя в телефонной книжке, содержащей, скажем, миллион записей. Не говоря уже о том, что структуры данных постоянно используются в спортивном программировании. Рассмотрим некоторые из них более подробно.
Читать дальше →
Total votes 91: ↑83 and ↓8 +75
Comments 31

Asyncio Tarantool Queue, вставай в очередь

Reading time 9 min
Views 20K
VK corporate blog Python *Tarantool *


В одной из своих статей я рассказывал об асинхронной работе с Tarantool на Python. В данной статье продолжу эту тему, но внимание хочу уделить обработке информации через очереди на Tarantool. Мои коллеги опубликовали несколько статей о пользе очередей (Инфраструктура обработки очередей в социальной сети Мой Мир и Push-уведомления в REST API на примере системы Таргет Mail.Ru). Хочу дополнить информацию об очередях на примере решений наших задач, а также рассказать о работе с Tarantool Queue на Python и asyncio. Почему мы выбираем именно Tarantool, а не Redis или RabbitMQ?
Читать дальше →
Total votes 34: ↑32 and ↓2 +30
Comments 14
1