Всем привет! Я на Мосбирже занимаюсь мобильной разработкой под Android. Осенью этого года мы начали разрабатывать приложение для платформы личных финансов Финуслуги и воспользовались возможностью делать UI сразу на Jetpack Compose. Как и всегда, сразу встал вопрос выбора архитектуры многомодульности и механизма навигации. Решение должно быть, с одной стороны, достаточно лаконичным и понятным для новых разработчиков. С другой стороны, оно должно быть масштабируемым, чтобы рост числа и размера модулей не создавал неприятностей, таких как раздражающее времени сборки или частые merge-конфликты.
Все потоки
- Новые
- Лучшие
- Все
- ≥0
- ≥10
- ≥25
- ≥50
- ≥100
Новости
Окрашивание изображений
Статья про окрашивание изображений на основе работы Color2Embed: Fast Exemplar-Based Image Colorization using Color Embeddings. Рассмотрим, как переносить цвет с одной картинки на другую с помощью смеси из U-Net и StyleGAN v2.
Как я стал «лицензиатом» ZOON. Очередной отрицательный отзыв о “премиум” разводилове zoon
Наверное, все знают Zoom — программу для организации видеоконференций, которую разработал умница Эрик Юань из Zoom Video Communications. Но не все знают Zoon — "инновационный комплексный b2b-инструмент для привлечения клиентов и управления репутацией в интернете", которым командует ООО «ЗУН». Сбила с толку фраза, что эта компания прошла экспертизу Фонда "Сколково" (ссылка на источник).
Эй, ребята в Сколково! Вы там что, раздаете свой статус как водительские права? Ваш "резидент", приступая к исполнению договорных обязательств по "управлению репутацией", начал с того, что заменил мои оригинальные сервисные сообщения в интернете на шаблонные, много раз используемые, что мгновенно застопорило SEO-продвижение. Googl допускает только уникальные тексты - это знает любой школьник. И за тот месяц, что я безуспешно пытался найти идиота, давшего это распоряжение, они продолжали действовать в том же духе. И вот результат. Согласно статистике того же Google, мои рейтинги как профессионала упали в Интернете до уровня городской канализации - минус 50% в первый же месяц. А всего за три месяца, которые мне довелось пережить под спудом услуг "сколковкой фирмы", число обращений к известному до этого времени гипнотерапевту снизилось (барабанная дробь) в 3 раза! И это, не считая того, что я подарил ООО "Zoon" в виде предоплаты 100 тысяч настоящих рублей. А самое главное, жаловаться некуда. Оказывается, я подписал не договор, а лицензионное соглашение, которое контрагента ни к чему не обязывает. Естественно, я ни сном, ни духом (все таки "участник "Сколково" с 2020 года"), поэтому подписал предложенную бумагу как итог наших обсуждений ДОГОВОРА. Конечно, меня могут спросить: а где были твои глаза? Ответ прост: глаза всегда видят то, что хочет сознание. Так устроена психика человека, - говорю это как профессиональный гипнотизер. Длительные беседы о ДОГОВОРЕ сформировали мои ожидания таким образом, что я подписывал ДОГОВОР, не придавая значения тому, что передо мной совсем другой по форме документ. Такое бывает. В законе для такого рода случаев даже предусмотрена статья за мошенничество, когда заказчик вводится в заблуждение исполнителем в части существа обязательств и существа услуг. Способ введения именно такой: чтобы заказчик был уверен, что подписывает то, о чем договорились. Юрист, который помогал мне понять суть подписанных мною документов, строго смотрел на меня поверх очков: "Ты ж колдун - сделай так, чтобы у них яйца отсохли". Вы не поверите - я в первый раз пожалел о том, что расхожее мнение о моей работе не соответствуют действительности.
(с) Психолог, гипнотерапевт Геннадий Иванов
Как тимлиду обучить распределенную команду работать с Git
Git, как технология, прост в изучении — вменяемому разработчику требуется несколько часов и доступ к документации, чтобы понять базовые принципы его работы. Но в реальной жизни — теории недостаточно. Поэтому IT-компании создают простые пошаговые инструкции, чтобы новички быстро и безболезненно вливались в работу, старички работали единообразно и предсказуемо, а тимлиды могли легко управлять этим процессом.
Маленькие «малинки» в крупном дата-центре (часть 4 — автоустановка)
Это заключительная часть цикла статей, посвященного интеграции одноплатных компьютеров Raspberry Pi 4 в наши дата-центры. Мы рассмотрели, что происходит при загрузке «малинки» с момента включения до загрузки в операционную систему. Создали собственный мини-дистрибутив, который загружается по TFTP-протоколу и работает напрямую из памяти. Поговорили о хуках (hooks) Kea DHCP-сервера, разобрались, как они работают и что нужно для их создания.
Теперь соберем эти знания в цельную картину: зачем нам кастомная опция 224 и как управлять переключением режимов загрузки по сети и с локальной SD-карты.
Как не зарыться в задачах и выстроить работу в команде: наш опыт работы по scrum
Меня зовут Иванов Алексей. Я DS и скрам-мастер в центре ML-экспертизы разработчика HRtech-решений TalentTech. Мы занимаемся обучением моделей для проектов компании.
Ровно год назад наша команда самоорганизовалась и начала применять подход SCRUM (будем дальше — скрам.) Я расскажу о наших внутренних процессах: что произошло, что происходит и, возможно, будет происходить с нами в ближайшем будущем.
Как я на порядок ускорил переподключение к мастер-узлу в Redis Sentinel
Не так давно, развернув в Kubernetes уже привычный инфраструктурный компонент в виде кластера Redis Sentinel + redis-sentinel-proxy, мы столкнулись с интересными проблемами. При тестировании времени переключения мастера выяснилось, что оно составляет полторы минуты. Это очень долго.
Расскажу, как получилось ускорить процесс.
Восстановление старинного Авометра модель 8 Марк II
Когда начинал работать над статьёй "Способы питания электролюминесцентных индикаторов", для наглядности я подбирал наиболее интересный и красивый стрелочный мультиметр. Тогда мне удалось купить весьма стильный, но всё же не самый элегантный ампервольтметр, отечественного производства. Сайт объявлений запомнил мой поиск и начал мне подсовывать и дальше подобные приборы, и в один из дней попался мне он, этот невероятный красавец, за просто смешные деньги. Это был чистокровный старинный британец, а по цене был таким же, как и его отечественный собрат. Хотя даже по фотографиям в объявлении, было ясно, что судьба его изрядно потрепала, и я предполагал, да наверняка он даже не работает. Но желание иметь такого красавца в хозяйстве, хотя бы в интерьере — не оставило мне выбора.
Отменив все дела на вечер, я помчался за данным устройством на другой конец Москвы. И, о чудо, мне удалось успеть и купить его первым. Дальше же предстояла работа по восстановлению или хотя бы приведению в порядок данного аппарата.
Навыки ITSM-профессионала
Машинное обучение, облачные вычисления и интернет вещей меняют подход компаний к работе с клиентами. Использование этих технологий в среде управления ИТ-услугами (ITSM, IT Service Management) помогает организациям устранять ошибки и отслеживать сервисные бизнес-процессы, тем самым повышая общий уровень сервиса. Поэтому с каждым годом компании все больше полагаются на автоматизацию, чат-ботов и облака.
10 навыков, необходимых для достижения успеха в ITSM — в этой статье.
Новый Brave Wallet, встроенный в браузер криптокошелёк без всяких расширений
Мы запустили Brave Wallet, криптокошелёк, встроенный в десктопную версию нашего браузера, который позволяет пользователям Brave хранить, управлять, накапливать и обменивать свой криптопортфель. В отличие от других криптокошельков, наш не требует установки расширений: он встроен в браузер, что увеличивает безопасность и уменьшает нагрузку на железо. Пользователи могут совершить транзакции практически с любой криптой, не теряя в безопасности и производительности, а также подключать другие кошельки и приложения веб 3.0. Вскоре кошелёк Brave станет доступен и в наших мобильных приложениях.
Австралия не Кремниевая долина: почему я вернулся в Москву спустя шесть лет
Я проработал инженером по инфраструктуре в крупной клинике Мельбурна почти шесть лет. И этой весной решил вернуться не только в Россию, но и в ту же компанию, в которой работал до отъезда. Я хочу рассказать о моем опыте, который может быть полезен ИТ-специалистам и особенно инженерам, которые уже собираются в Австралию, или тем, кто еще сомневается, стоит ли вообще уезжать.
Погружение в Helm Package Manager. Часть первая
Helm — один из самых популярных пакетных менеджеров для Kubernetes. Познакомиться с ним полезно любому DevOps-инженеру и всем, кто сталкивается с задачами деплоя приложений. Эта статья — первый из двух материалов, которые можно вместе можно рассматривать как краткое, но достаточно полное введение в Helm.
Как Яндекс делает обычные автомобили беспилотными
Привет, меня зовут Антон Чистяков. Пару лет назад я работал в хелпдеске Яндекса и даже писал здесь про то, как мы придумали вендомат с аксессуарами. Теперь отвечаю за сборку беспилотных автомобилей и роботов-доставщиков. Под катом расскажу, как мы делаем простые машины беспилотными: от момента покупки авто и выбора имени до сборки и калибровки, на которых всё, впрочем, не заканчивается.
Серверные бэкапы
Хотя часть проблем связана с уязвимостями и эксплойтами нулевого дня, которые оставляют корпоративные сети без защиты, необходимость сберечь то невероятное количество данных, которое собрано, сохранено и обработано бизнесом, ставит перед нами особые задачи.
DINS SCALA EVENING
Андрей Обухов из DINS расскажет, что такое Software Transactional Memory. Ахтям Сакаев из компании «Метр квадратный» поделится, как исключить баги на этапе моделирования с использованием ADT. Участие бесплатное, но необходимо зарегистрироваться. Подробности под катом.
Как встать на путь sustainability: гендерные квоты и экоофисы
Времена, когда целью организации любого бизнеса в IT было извлечение максимальной прибыли, кажется, прошли. Теперь мало хорошо работать и хорошо зарабатывать. От любого стартапа в Европе и США ожидают большего, чем просто внушительной выручки и налогов. Кроме экономических показателей, инвесторы хотят видеть в любом стартапе и предприятии движение в сторону sustainability – сохранения окружающей среды, общественного прогресса и справедливой экономии.
Настраиваем GitLab Container Registry
В этой статье мы рассмотрим, как настроить реестр образов GitLab Container Registry, находящийся за обратным прокси сервером NGINX. Предполагается, что у вас уже установлен GitLab с помощью пакета Omnibus. Согласно документации, Container Registry можно настроить на том же домене, на котором работает сам GitLab, но в случае работы GitLab за прокси сервером, необходимо завести отдельный домен для реестра образов, чтобы избежать конфликта доменных имен при настройке виртуальных хостов в GitLab Nginx.
Реестр образов будет доступен по адресу: registry.example.com. Добавляем А запись для домена реестра в DNS. Приводим конфиг виртуального хоста на сервере обратного прокси к следующему виду:
Тип данных Either как альтернатива выбрасыванию исключений
Исключения – это базовый элемент многих языков программирования. Они обычно используются для обработки аномальных или непредусмотренных условий, при устранении которых необходим особый подход, нарушающий нормальный поток задач в приложении. В некоторых языках, например, в C++ или Java, исключения используются повсюду. Но не все языки спроектированы так. В C# или Kotlin нет проверяемых исключений. В других языках, например, Go и Rust, исключений нет вообще.
Думаю, код, выбрасывающий исключение всякий раз, когда произойдет что-то неожиданное, сложен для понимания, и его тяжелее поддерживать. В этой статье я хочу рассказать о типе данных Either
как об альтернативном способе обработки условий, приводящих к ошибкам. Примеры в этой статье даны на Kotlin, поскольку, на мой взгляд, за его синтаксисом легко следить. Но сами концепции не уникальны для Kotlin. Их, так или иначе, можно реализовать в любом языке, поддерживающем функциональное программирование.
Безопасность ПЛК: 13-15) Сетевые интерфейсы и безопасная перезагрузка ПЛК
Контроллеры ПЛК и модули сетевого интерфейса обычно поддерживают несколько протоколов связи, которые включены по умолчанию. Отключите порты и протоколы, которые не требуются для приложения.
Ограничьте типы соединений и доступные данные для сторонних интерфейсов. Соединения или интерфейсы передачи данных должны быть четко определены и ограничены, чтобы чтение/запись были доступны только для необходимого обмена данными.
Определите безопасные состояния для процесса в случае перезапуска ПЛК.
Разбираем рекомендации по безопасному программированию ПЛК, формируем список своих рекомендаций. Всех неравнодушных прошу под кат.
Простая система ветровой эрозии на основе частиц
Полный исходный код этого проекта, а также объяснение того, как его использовать и читать, можно найти на Github [здесь]. Проект рендерится при помощи моего собственного [TinyEngine].
В прошлом году я много экспериментировал со способами реализации эрозии на основе частиц для генерации рельефов.
Я считаю, что эрозия на основе частиц обеспечивает хороший баланс между реализмом и простотой, давая интуитивные описания переноса массы и энергии при их движении. Следовательно, они могут воспроизводить геомофологическое явление при низкой сложности концепций/кода как хорошие приблизительные модели. Благодаря этому они более доступны для большинства пользователей, чем исследовательские модели.
Один из самых хорошо известных и производительных алгоритмов улучшения генерации рельефов на основе шума — это гидравлическая эрозия на основе частиц [перевод на Хабре]. Этот алгоритм чрезвычайно прост и обеспечивает отличные результаты относительно малыми усилиями.
Его результаты убедили меня дополнить эту систему потоками воды и водоёмами, что привело к созданию процедурной гидрологической системы [перевод на Хабре]. Используя упрощённую модель, система успешно передаёт многие эффекты реального мира, поэтому я заинтересовался в дальнейшем исследовании симуляции геоморфологии на основе частиц.
Вскоре я осознал, что внеся только незначительные изменения, эти системы можно дополнить ветровой эрозией и основными эоловыми процессами. Так как в ненаучной литературе мне не удалось найти хороших ресурсов о реализации ветровой эрозии на карте высот, я решил спроектировать и реализовать собственную модель ветровой эрозии на основе частиц для процедурного рельефа.
Получившаяся система хорошо работает, позволяя моделировать движущиеся осадочные породы, а также сплошные неподвижные препятствия. Она воссоздаёт многие эффекты, наблюдаемые при реальной ветровой эрозии, например, серповидные дюны!