Публикации

сегодня в 09:25

Грабли гостиниц: что надо знать заранее, если вы делаете конференц-зал



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

А дальше выясняется, что дизайнер придумал сделать всё в стекле и мраморе, и нужно ставить специальные звукопоглощающие панели (либо очень дорогие массивы колонок). На солнечной стороне панорамные окна? Привет, проектор на вес золота или дорогая система зашторивания. Слаботочники-проектировщики проложили только один кабель-канал? Прекрасно, будем штробить мрамор или вешать «сопли» по залу. Рассчитали вентиляцию «впритык»? Привет, тепловыделение оборудования.

А бюджет у гостиницы или отеля — самое больное. И вот его-то можно сильно сократить, если начать проект чуть заранее.
11462
85
сегодня в 10:00

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


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

Кратко напомню, на чем я остановился. Были рассмотрены несколько интересных алгоритмов lock-free очередей, а под занавес приведены результаты их работы на некоторых синтетических тестах. Главный вывод — всё плохо! Надежды на то, что lock-free подход на магическом compare-and-swap (CAS) даст нам пусть не линейный, но хотя быкакой-торост производительности с увеличением числа потоков, не оправдались. Очереди не масштабируются. В чем причина?..
5083
113
сегодня в 02:03

Навигация в помещениях с iBeacon и ИНСtutorial


  Представьте, что перед вами поставили задачу по реализации навигации внутри помещений. Соответственно, GPS/Глонасс и тому подобные системы спутниковой навигации вам недоступны. Что делать? В этой статье мы с вами подробно рассмотрим варианты решения подобных задач в теоретической части, а в практической – реализуем «в железе» indoor-трекер для работы с маячками iBeacon по Bluetooth BLE на NodeJS на базе новейшей платформы Intel Edison, рассмотрим применение трилатерации и фильтра Калмана, библиотеку CylonJS по работе с датчиками на NodeJS.

8286
99
сегодня в 04:21

Создание World of Tanks Blitz на базе собственного движка DAVA

image

Пролог


Эта история началась более трех лет назад. Наша небольшая компания DAVA стала частью Wargaming, и мы начали обдумывать, какие проекты делать дальше. Чтобы напомнить, каким был мобайл три года назад, скажу, что тогда не было ни Clash Of Clans, ни Puzzle & Dragons, ни многих очень известных сегодня проектов. Mid-core тогда только-только начинался. Рынок был в разы меньше сегодняшнего.

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

Тогда в разработке у нас находилось несколько игр. Одна из них носила рабочее название «Sniper». Основной геймплей-идеей была стрельба в снайперском режиме из стоящего в обороне танка, по другим танкам, которыми управлял AI и которые могли атаковать в ответ.

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

С этого все и началось!

Когда мы начинали разработку “Снайпера”, то рассматривали технологии, которые тогда были доступны для мобильных платформ. На тот момент Unity был еще на достаточно ранней стадии своего развития: по сути, необходимых нам технологий еще не было.

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

Также мы понимали, что на C# мы не сможем выжать максимум из устройств, под которые мы разрабатываем, и всегда будем ограничены.
Unreal Engine 3 тоже не подходил по ряду похожих причин.

В итоге, мы решили дорабатывать свой движок!
17301
108
сегодня в 14:16

Как я потерял пароль от Android keystore, но потом смог восстановить с помощью Jetbrains Idea

Предыстория

Жило-было в Google Play Android приложение с несколькими тысячами пользователей. Через год понадобилось его обновить. Ок, запускаем Idea, выбираем «Build» — «Generate Signed APK». Вспоминаю что за это время успел пересесть в Linux, ничего страшного, выбираю файл с ключами, ввожу ранее заботливо записанный пароль… Не подходит. Хмм… Ввожу еще раз, еще… Перебор вариантов, переспрос коллег… Всё плохо.
5478
56
bald2b25,6
сегодня в 16:23

Яндекс открывает новое направление своей деятельности — Yandex Data Factory

Только что в Париже на конференции La Web Яндекс объявил об открытии нового важного направления своей деятельности — по коммерческой обработке больших данных —Yandex Data Factory.

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



Перед публичным запуском Yandex Data Factory мы провели несколько пилотных проектов с компаниями-партнёрами. Для компании, обслуживающей линии электропередач, в Yandex Data Factory создали систему, которая анализирует сделанные беспилотниками снимки и автоматически выявляет угрозы: например, деревья, растущие слишком близко к проводам. А для автодорожного агентства проанализировали данные о загруженности дорог, качестве покрытия, средней скорости движения транспорта и аварийности. Это позволило в режиме реального времени составлять прогноз заторов на дорогах на ближайший час и выявлять участки с высокой вероятностью ДТП.
3269
30
Zalina62,8
сегодня в 09:23

Питер Тиль: конкуренция – удел проигравшихперевод

11571
171
lapyk46,2
сегодня в 01:23

IPv6-адреса через EUI-64: Точки над i

В этой небольшой статье (ещё раз) объясняется, зачем в IPv6 адреса генерируются таким странным, на первый взгляд, образом.



Тех, кто понимает смысл процедуры EUI-48 -> EUI-64 -> Modified EUI-64, статья вряд ли обогатит новыми знаниями. Остальные – добро пожаловать под кат.
5835
98
asch24,3
сегодня в 14:18

Первый взгляд на Apple Watch SDKперевод



Анонсированный в июне и только что вышедший Apple Watch SDK вызвал много споров и вопросов. Первая версия имеет ограниченную функциональность, и не за горами выход версии 2.0, нужно подождать ещё несколько месяцев. Впечатления от нового SDK у разработчиков сложились разные. Одни разочарованы большим количеством ограничений, другие, напротив, впечатлены самим фактом выхода. Есть и «прослойка» тех, кто принял новый продукт достаточно сдержанно. Но в любом случае подавляющее большинство разработчиков рады выходу новой интересной забавы.
сегодня в 03:54

Долой абсолютные единицы в иконках-спрайтахtutorial


Спрайты — классный способ сократить количество запросов к серверу. Можно упаковать кучу иконок в один спрайт и прописать в CSS смещения для каждой иконки. Однако, очень неудобно, что нужно попиксельно всё это считать. Пиксели — значит никакой динамики. Если использовать пиксели, то кусочек спрайта будет отображаться фиксированным размером — независимо от того, выводится он внутри параграфа, или внутри заголовка. Это неправильно, мне кажется, и неудобно. Но, похоже, я нашёл интересный способ выводить иконки динамического размера.
10579
139
Xu416,6