Всем привет, сегодня мы будем разбираться с алгоритмом сжатия JPEG. Многие не знают, что JPEG — это не столько формат, сколько алгоритм. Большинство JPEG-изображений, которые вы видите, представлены в формате JFIF (JPEG File Interchange Format), внутри которого применяется алгоритм сжатия JPEG. К концу статьи вы будете гораздо лучше понимать, как этот алгоритм сжимает данные и как написать код распаковки на Python. Мы не будем рассматривать все нюансы формата JPEG (например, прогрессивное сканирование), а поговорим только о базовых возможностях формата, пока будем писать свой декодер.
Читать полностью »
Рубрика «Блог компании Mail.Ru Group» - 4
Декодируем JPEG-изображение с помощью Python
2020-07-22 в 10:01, admin, рубрики: jpeg, python, Алгоритмы, Блог компании Mail.Ru Group, математика, никто не читает теги, обработка изображенийВыпускники семестрового курса «Разработка приложений на Android», Технопарк Mail.ru
2020-07-21 в 16:17, admin, рубрики: Блог компании Mail.Ru Group, разработка мобильных приложений, Разработка под android, Учебный процесс в IT
В предыдущей публикации мы рассказали о нескольких дипломных проектах семестрового курса «Разработка на iOS» Технопарка (МГТУ им. Баумана). А в этот раз расскажем о двух самых интересных проектах слушателей семестрового курса «Разработка на Android»:
- Приложение для абитуриентов МГТУ им. Баумана.
- И приложение Vegan Delivery для доставки еды.
Напомним, что это был экспериментальный семестр, в котором все занятия проходили онлайн. При этом студенты, поступающие на курс, начинают изучать Android-разработку с нуля.
Читать полностью »
Go и кэши CPU
2020-07-15 в 8:16, admin, рубрики: false sharing, Go, Mail.Ru Cloud Solutions, SMP, Алгоритмы, Блог компании Mail.Ru Group, когерентность кэша, кэш CPU, локальность по времени, локальность по расстоянию, локальность ссылки, оптимизация алгоритмов, Программирование, Процессоры, симпатия к механикеИсточник: unsplash.com
По словам Джеки Стюарта, трехкратного чемпиона мира по гонкам Формулы-1, понимание автомобиля помогло ему стать лучшим пилотом: «Гонщику не обязательно быть инженером, но нужен интерес к механике».
Мартин Томпсон (создатель LMAX Disruptor) применил эту концепцию к программированию. Если в двух словах, то понимание базового оборудования улучшит ваши навыки, когда речь заходит о разработке алгоритмов, структур данных и так далее.
Команда Mail.ru Cloud Solutions перевела статью, автор которой углубился в устройство процессора и рассмотрел, как понимание некоторых концепций CPU помогает принимать оптимальные решения.
Читать полностью »
Выпускники семестрового курса «Разработка приложений на iOS», Технопарк Mail.ru
2020-07-13 в 11:51, admin, рубрики: Блог компании Mail.Ru Group, разработка мобильных приложений, разработка под iOS, Учебный процесс в ITСвои дипломные проекты в этом сезоне защитила новая группа выпускников семестрового курса «Разработка на iOS» Технопарка (МГТУ им. Баумана). Это был экспериментальный семестр, все занятия проходили онлайн. Преподаватели выбрали четыре самых интересных решения, о которых мы хотим вам рассказать:
- Приложение Personal Teacher для репетиторов.
- Приложение LocalFootball для футбольных турниров.
- Приложение PhoRent для аренды оборудования.
- Приложение TastyThings для кулинарных рецептов.
Пример event-driven приложения на основе вебхуков в объектном S3-хранилище Mail.ru Cloud Solutions
2020-07-13 в 7:37, admin, рубрики: ci/cd, cloud storage, devops, event-driven, Mail.Ru Cloud Solutions, object storage, s3, webhooks, Блог компании Mail.Ru Group, облачные сервисы, хранение данных, хранилища данныхEvent-driven architecture повышает ценовую эффективность используемых ресурсов, потому что они задействуются только в тот момент, когда они нужны. Существует масса вариантов, как это реализовать и не создавать дополнительные облачные сущности в качестве worker-приложений. И сегодня я расскажу не про FaaS, а про вебхуки. Я покажу учебный пример обработки событий с помощью вебхуков объектного хранилища.
Читать полностью »
Armored Warfare: Проект Армата. Хроматическая аберрация
2020-07-09 в 14:33, admin, рубрики: armored warfare, my.games, Алгоритмы, Блог компании Mail.Ru Group, компьютерная графика, Программирование, разработка игр
Armored Warfare: Проект Армата — бесплатный танковый онлайн-экшн, разрабатываемый Allods Team, игровой студией MY.GAMES. Несмотря на то, что игра сделана на CryEngine, достаточно популярном движке с неплохим realtime render’ом, для нашей игры приходится многое дорабатывать и создавать с нуля. В этой статье я хочу рассказать о том, как мы реализовывали хроматическую аберрацию для вида от первого лица, и что это такое.
Читать полностью »
Как понять, что нейросеть решит вашу проблему. Прагматичное руководство
2020-06-19 в 7:00, admin, рубрики: Mail.Ru Cloud Solutions, nlp, PAC learning, Алгоритмы, Блог компании Mail.Ru Group, ВПК-обучение, детерминированные проблемы, искусственный интеллект, машинное обучение, нейросеть, обработка изображений, предикативное обслуживание, решение проблем, Фолдинг белковHaystacks at Sunset Reimagined by AshnoAlice
Инженер по машинному обучению Джордж Хосу задает вопрос: «Какие проблемы решает машинное обучение?». Или конкретнее, с учетом современного развития отрасли: «Какие проблемы нейросеть способна решить на практике?». Команда Mail.ru Cloud Solutions перевела статью, так как рассуждения на эту тему, как нам кажется, встречаются редко.
Читать полностью »
Производительность современной Java при работе с большим объёмом данных, часть 2
2020-06-18 в 19:42, admin, рубрики: big data, gc, java, Блог компании Mail.Ru Group, высокая производительность, никто не читает теги, ПрограммированиеFYI: Первая часть.
Бенчмарк пакетного конвейера
Пакетный конвейер обрабатывает конечный объём сохранённых данных. Здесь нет потока результатов обработки, выходные данные агрегирующей функции нужно применить ко всему набору данных. Это меняет требования к производительности: задержка — ключевой фактор при потоковой обработке — здесь отсутствует, потому что мы обрабатываем данные не в реальном времени. Единственная важная метрика — общее время работы конвейера.
Поэтому мы выбрали Parallel. На первом этапе тестирования, при работе на одной ноде, этот сборщик действительно показал лучшую пропускную способность (но только после настройки). Однако это было получено ценой длительных пауз. Если одна из нод кластера останавливается на сборку мусора, это стопорит весь конвейер. А поскольку ноды собирают мусор в разное время, общее время сборки увеличивается с добавлением каждой ноды к кластеру. Мы проанализировали этот эффект, сравнив результаты тестирования на одной ноде и на кластере из трёх нод.
Кроме того, на этом этапе мы не рассматривали экспериментальные сборщики с низкой задержкой. Их очень короткие паузы не влияют на результаты тестирования, к тому же это достигается за счёт пропускной способности.
Читать полностью »
Tech Talks Delivery Club на РИТ++
2020-05-22 в 14:29, admin, рубрики: agile, android, Delivery Club, deliveryclub, Engineering, golang, innersource, iOS, php, product development, superapp, Блог компании Delivery Club Tech, Блог компании Mail.Ru Group, конференции, Программирование, Управление продуктом
Привет! Hello, World!
Меня зовут Андрей Евсюков, я заместитель технического директора в Delivery Club. А это первый пост в нашем блоге на Хабре. Сегодня расскажу о том, как и где можно узнать про разработку, процессы и команду Delivery Club. Спойлер: до сих пор никто так много не знал, как устроен DC Tech.
Читать полностью »