Для начинающих AR-разработчиков подготовили must-read пост в нашем блоге! Марсианский iOS-инженер Расс Сент-Амант описывает 7 ключевых AR-функций, которые нужны разработчику, чтобы сделать эту магию дополненной реальности по-настоящему реальной.
http://amp.gs/jtbbY
http://amp.gs/jtbbY
Открываем новую для себя вакансию — Android Engineer, чтобы расширить нашу мобильную команду и прокачать Android-скилы (помимо уже привычных нам мобильных проектов на iOS и React Native).
Как и на других вакансиях, продолжаем практику инженеро-центричности и человеческого отношения к Марсианам: помогаем с саморазвитием и вашим опенсорсом, распределяем прибыль между сотрудниками, даем возможность переехать в Европу (скоро!), США, Японию (туда, где у нас офисы) и многое другое.
Эта и другие вакансии (бэкенд, фронтенд): http://amp.gs/jmGe2
Как и на других вакансиях, продолжаем практику инженеро-центричности и человеческого отношения к Марсианам: помогаем с саморазвитием и вашим опенсорсом, распределяем прибыль между сотрудниками, даем возможность переехать в Европу (скоро!), США, Японию (туда, где у нас офисы) и многое другое.
Эта и другие вакансии (бэкенд, фронтенд): http://amp.gs/jmGe2
AnyCable Pro помог Vito, платформе для проведения онлайн-мероприятий, решить проблемы масштабирования и провести несколько real-time мероприятий, включая конференцию Nuxt Nation. Марсиане разработали инфраструктуру для деплоя AnyCable и помогли команде Vito оптимизировать производительность платформы, чтобы подготовиться к крупным конференциям.
А когда во время Nuxt Nation возникли проблемы, Марсианам удалось все уладить буквально в течение часа благодаря приоритетной поддержке AnyCable Pro.
Описали всю историю тут: http://amp.gs/jm46d
А когда во время Nuxt Nation возникли проблемы, Марсианам удалось все уладить буквально в течение часа благодаря приоритетной поддержке AnyCable Pro.
Описали всю историю тут: http://amp.gs/jm46d
Ирина Назарова, СЕО Злых Марсиан, в подкасте «Экономика на слух» честно рассказывает о том, насколько мы злые, каким проектам мы помогаем, а каким — нет, и как организовать работу в полностью распределенной команде (а мы делали удаленку еще до того, как это стало мейнстримом).
http://amp.gs/jmrVg
http://amp.gs/jmrVg
Новая марсианская бэкенд-вакансия (нет, не рубисты) — нужен Go Backend Engineer!
И ищем его или ее не на клиентские проекты, а впервые предлагаем в команде Марсиан работать над развитием imgproxy, быстрого и безопасного сервера для процессинга изображений. Его используют по всему миру — от Photobucket и eBay до тысяч стартапов.
Вакансия тут: http://amp.gs/jmNpK
Продукт здесь: http://amp.gs/jmNp3
И ищем его или ее не на клиентские проекты, а впервые предлагаем в команде Марсиан работать над развитием imgproxy, быстрого и безопасного сервера для процессинга изображений. Его используют по всему миру — от Photobucket и eBay до тысяч стартапов.
Вакансия тут: http://amp.gs/jmNpK
Продукт здесь: http://amp.gs/jmNp3
✨ Полностью обновили сайт imgproxy, быстрого и безопасного сервера для обработки изображений — https://imgproxy.net/ ✨
Подробно рассказываем обо всех фичах OSS и Pro-версий и тарифных планах, даем возможность попробовать все способы оптимизации картинки прямо на сайте.
Подробно рассказываем обо всех фичах OSS и Pro-версий и тарифных планах, даем возможность попробовать все способы оптимизации картинки прямо на сайте.
А вы знали, что существует черновик стандарта-RFC для UUID версий 6, 7 и 8?
Большинство людей понимает под UUID его четвёртую версию, генерируемую случайным образом. Но уже давно существует ещё и детерминированные версии — основанные на времени и MAC-адресе UUIDv1 и v2, а также UUIDv3 и v5, основанные на хэшировании.
Тем не менее, на практике в современном распределённом мире у всех этих версий есть проблемы:
1. случайно распределённые значения UUIDv4 плохо сказываются на производительности и размере BTree-индексов в базах данных (см. например, UUIDs are Popular, but Bad for Performance от Percona). Эта же проблема есть у UUID версий 1 и 2, так как…
2. …хоть UUIDv1 и UUIDv2 и основаны на времени, но при кодировании метки времени её компоненты оказываются перемешаны, поэтому идентификаторы нельзя сравнивать друг с другом «в лоб», побайтово, что, как минимум, неудобно.
3. А ещё в UUIDv1 и UUIDv2 должны использоваться реальные MAC-адреса машин, генерирующих идентификаторы, что, с одной стороны, не очень хорошо с точки зрения приватности, а с другой — уже и вовсе странно в век контейнеризации.
При всём этом UUID всё же слишком привлекательны, чтобы их не использовать: возможность генерировать идентификаторы независимо в приложении или распределённой базе данных, большое количество возможных значений (а значит и пренебрежимо малая вероятность коллизий при должной реализации), и всё это помноженное на действительно универсальную поддержку формата.
Сторонних решений, исправляющих эти недочёты, есть уже немало. Из более совместимых c UUID можно выделить ULID, но есть и множество других форматов: например, Snowflake или EID.
Авторы грядущего RFC создавали новые версии UUID с оглядкой на существующие решения (полный список можно посмотреть в черновике), но, конечно же, сохраняя совместимость с существующими UUID (вы же знали, что не все биты в UUIDv4 случайны?)
Что внутри?
• UUIDv6 — максимально похож на UUIDv1 (тот же таймстамп для григорианского календаря), но без переставления частей таймстампа (для сортировки) и со случайными данными вместо MAC-адреса.
• UUIDv7 — использует Unix timestamp (36 бит) с опциональной точностью до милли-, микро- или наносекунд (12, 24 или 38 бит), clock sequence (12, 14 или 8 бит) и произвольные данные.
• UUIDv8 — «свободный» формат, не регламентирующий, какие метки времени использовать. Можно использовать любые до 60 бит, главное условие — монотонное возрастание по времени. Ну, clock sequence (12 или 8 бит) и произвольные данные (62 или 54 бита).
Что же станет стандартом де-факто через несколько лет? Или UUIDv4 не победить? Поживём — увидим!
Большинство людей понимает под UUID его четвёртую версию, генерируемую случайным образом. Но уже давно существует ещё и детерминированные версии — основанные на времени и MAC-адресе UUIDv1 и v2, а также UUIDv3 и v5, основанные на хэшировании.
Тем не менее, на практике в современном распределённом мире у всех этих версий есть проблемы:
1. случайно распределённые значения UUIDv4 плохо сказываются на производительности и размере BTree-индексов в базах данных (см. например, UUIDs are Popular, but Bad for Performance от Percona). Эта же проблема есть у UUID версий 1 и 2, так как…
2. …хоть UUIDv1 и UUIDv2 и основаны на времени, но при кодировании метки времени её компоненты оказываются перемешаны, поэтому идентификаторы нельзя сравнивать друг с другом «в лоб», побайтово, что, как минимум, неудобно.
3. А ещё в UUIDv1 и UUIDv2 должны использоваться реальные MAC-адреса машин, генерирующих идентификаторы, что, с одной стороны, не очень хорошо с точки зрения приватности, а с другой — уже и вовсе странно в век контейнеризации.
При всём этом UUID всё же слишком привлекательны, чтобы их не использовать: возможность генерировать идентификаторы независимо в приложении или распределённой базе данных, большое количество возможных значений (а значит и пренебрежимо малая вероятность коллизий при должной реализации), и всё это помноженное на действительно универсальную поддержку формата.
Сторонних решений, исправляющих эти недочёты, есть уже немало. Из более совместимых c UUID можно выделить ULID, но есть и множество других форматов: например, Snowflake или EID.
Авторы грядущего RFC создавали новые версии UUID с оглядкой на существующие решения (полный список можно посмотреть в черновике), но, конечно же, сохраняя совместимость с существующими UUID (вы же знали, что не все биты в UUIDv4 случайны?)
Что внутри?
• UUIDv6 — максимально похож на UUIDv1 (тот же таймстамп для григорианского календаря), но без переставления частей таймстампа (для сортировки) и со случайными данными вместо MAC-адреса.
• UUIDv7 — использует Unix timestamp (36 бит) с опциональной точностью до милли-, микро- или наносекунд (12, 24 или 38 бит), clock sequence (12, 14 или 8 бит) и произвольные данные.
• UUIDv8 — «свободный» формат, не регламентирующий, какие метки времени использовать. Можно использовать любые до 60 бит, главное условие — монотонное возрастание по времени. Ну, clock sequence (12 или 8 бит) и произвольные данные (62 или 54 бита).
Что же станет стандартом де-факто через несколько лет? Или UUIDv4 не победить? Поживём — увидим!
datatracker.ietf.org
draft-peabody-dispatch-new-uuid-format-02
New UUID Formats (Internet-Draft, 2021)
This media is not supported in your browser
VIEW IN TELEGRAM
Обновили один из самых популярных постов в блоге — статью про фавиконки от нашего ведущего фронтендера Андрея Ситника.
Потому что в 2022 году они точно так же актуальны, как были в 2021-м.
http://amp.gs/jmQb5
Потому что в 2022 году они точно так же актуальны, как были в 2021-м.
http://amp.gs/jmQb5
Продолжаем «мобильную» тему в марсианском блоге: iOS-инженер Максим Скорынин объясняет, как реализовать Object Detection с помощью нативных инструментов Apple.
В первой части этого текстового мастер-класса знакомим с инструментами, рассказываем о сборе данных, их аннотировании для обучения и о том, как лучше всего экспортировать датасет — и все это с нуля!
http://amp.gs/jZIgI
В первой части этого текстового мастер-класса знакомим с инструментами, рассказываем о сборе данных, их аннотировании для обучения и о том, как лучше всего экспортировать датасет — и все это с нуля!
http://amp.gs/jZIgI
Через неделю, в следующий четверг, 24 числа, в 19:20 марсианин Андрей Новиков выступит в Твери на митапе Трамплин № 8 с докладом про различные нюансы запуска приложений в Kubernetes.
Покупайте билеты в Тверь и регистрируйтесь на митап: trampoline.to/event/trampoline-8
Покупайте билеты в Тверь и регистрируйтесь на митап: trampoline.to/event/trampoline-8
Наконец-то публикуем в марсианском блоге вторую часть захватывающей истории iOS-инженера Максима Скорынина про Object Detection в экосистеме Apple!
Сможет ли Максим обучить модель? Как он будет анализировать и сравнивать все результаты? Получится ли у него создать демо-приложение, которое распознает объекты на видео в реальном времени? Переживаем за него!
Также расскажем о том, как обучаются модели, об алгоритмах обучения, которые использует Create ML, плюс сравним производительность на основе алгоритма и оборудования.
http://amp.gs/jZkMh
Сможет ли Максим обучить модель? Как он будет анализировать и сравнивать все результаты? Получится ли у него создать демо-приложение, которое распознает объекты на видео в реальном времени? Переживаем за него!
Также расскажем о том, как обучаются модели, об алгоритмах обучения, которые использует Create ML, плюс сравним производительность на основе алгоритма и оборудования.
http://amp.gs/jZkMh
Во втором выпуске AnyCasts его ведущий, главный по бэкенду в Злых Марсианах, Владимир Дементьев, подробно рассказывает, как подготовиться к внедрению функции direct messaging в приложение с помощью AnyCable, включая добавление пользователей, процесс аутентификации и отображение профилей пользователей. (Для последнего мы будем использовать небольшие вкрапления Turbo Frames и Stimulus JS)
https://www.youtube.com/watch?v=cBtSjNuJFLE&t=5s
https://www.youtube.com/watch?v=cBtSjNuJFLE&t=5s
Марсианка Полина Гуртовая в подкасте Frontend Weekend интересно рассказывает о том, как формируется жизненный путь фронтендера, как помогает опыт хардкорного программирования и как сделать так, чтобы фронтендеру жилось и работалось веселее.
https://www.youtube.com/watch?v=5e2Pma2b2yQ
https://www.youtube.com/watch?v=5e2Pma2b2yQ
Вышел еще один марсианский проект, который поможет дизайнерам и фронтендерам.
Наш фронтенд-лидер Андрей Ситник и арт-директор Роман Шамин представляют OKLCH-миксер — новый проект для веб-разработчиков, который позволяет задавать и конвертировать цвета и заранее подготовиться к будущему с цветовым пространством P3.
Приготовьтесь к крышесносящей цветовой палитре!
Подробности — в Твиттер-треде: https://twitter.com/andrey_sitnik/status/1524378933818449920
Наш фронтенд-лидер Андрей Ситник и арт-директор Роман Шамин представляют OKLCH-миксер — новый проект для веб-разработчиков, который позволяет задавать и конвертировать цвета и заранее подготовиться к будущему с цветовым пространством P3.
Приготовьтесь к крышесносящей цветовой палитре!
Подробности — в Твиттер-треде: https://twitter.com/andrey_sitnik/status/1524378933818449920
X (formerly Twitter)
@[email protected] (@andrey_sitnik) on X
Вместе с @romanshamin представляем новый проект для веб-разработчиков — цветовой миксер и конвертор для oklch() цвета.
https://t.co/MR6jHIUjbA
↓ Тред о том, зачем этот сайт и почему oklch() может заменить hex, rgba() и hsl() в вашем CSS.
https://t.co/MR6jHIUjbA
↓ Тред о том, зачем этот сайт и почему oklch() может заменить hex, rgba() и hsl() в вашем CSS.
P3 может стать новой ретиной для web. Но поскольку эта область очень новая, в ней не хватает инструментов и гайдов.
Наш фротенд-лидер Андрей Ситник написал руководство по цветам P3 в SVG и объяснил, чем P3 может быть полезен.
http://amp.gs/jBZVk
Наш фротенд-лидер Андрей Ситник написал руководство по цветам P3 в SVG и объяснил, чем P3 может быть полезен.
http://amp.gs/jBZVk
Пояснительная бригада в лице марсианского арт-директора Романа Шамина и главного по фронтенду Андрея Ситника прибыла в подкаст IT Way, чтобы рассказать про один из наших свежих опенсорс-проектов для веб-разработчиков — цветовой миксер для OKLCH.
Зачем разработчикам oklch(), как его использовать, какие есть нюансы при работе с этим цветовым пространством
https://www.youtube.com/watch?v=kyzaHLvAG0o
Зачем разработчикам oklch(), как его использовать, какие есть нюансы при работе с этим цветовым пространством
https://www.youtube.com/watch?v=kyzaHLvAG0o
This media is not supported in your browser
VIEW IN TELEGRAM
Martian Grotesk — первый коммерческий шрифт Злых Марсиан — наконец-то доступен на MyFonts.
https://www.myfonts.com/collections/martian-grotesk-font-martian-fonts
Это большое семейство шрифтов без засечек, которые мы специально разрабатывали для дизайнеров и веб-разработчиков. В «семье» есть вариативный шрифт с 2 осями вариативности и 63 стиля: от Condensed до Ultra Wide, от Thin до Ultra Black.
Сейчас на покупку Martian Grotesk действует скидка 60% — всего от $5,7 за стиль!
Поделитесь ссылкой с вашей командой дизайнеров.
https://www.myfonts.com/collections/martian-grotesk-font-martian-fonts
Это большое семейство шрифтов без засечек, которые мы специально разрабатывали для дизайнеров и веб-разработчиков. В «семье» есть вариативный шрифт с 2 осями вариативности и 63 стиля: от Condensed до Ultra Wide, от Thin до Ultra Black.
Сейчас на покупку Martian Grotesk действует скидка 60% — всего от $5,7 за стиль!
Поделитесь ссылкой с вашей командой дизайнеров.
Наша imgproxy-команда — автор Сергей Александрович и продакт-менеджер Марина Наперстак — в гостях у подкаста It Way. Все в деталях о процессинге изображений, применениях продукта и фичах — как в open source, так и в Pro версии.
https://www.youtube.com/watch?v=zVJAgnz1_Eo
https://www.youtube.com/watch?v=zVJAgnz1_Eo
Browserlist, одна из самых популярных OSS-библиотек зависимостей для фронтенда, с которой работают Autoprefixer, Babel, ESLint, Next.js, PostCSS и Webpack, впервые появилась на Product Hunt! Будем рады вашей поддержке и голосам!
Browserslist определяет и делает доступным список целевых браузеров между разными фронтенд-инструментами для сборки. У этого Марсианского open source проекта уже 30 контрибьюторов и более 11К звезд на GitHub!
https://www.producthunt.com/posts/browserslist
Browserslist определяет и делает доступным список целевых браузеров между разными фронтенд-инструментами для сборки. У этого Марсианского open source проекта уже 30 контрибьюторов и более 11К звезд на GitHub!
https://www.producthunt.com/posts/browserslist