Социальные сети Рунета
Пятница, 21 января 2022

Пыщ-пыщ и pentest Современный подход к информационной безопасности Люблю ИБ. С одной стороны бизнес часто требует выкатывать полусырые прототипы, с деплоем раз в час. С другой — суровая и неприступная твердыня сотрудников информационной безопасности. На них все держится. И даже разработки в...

DDD, CQRS, Event-Driven, модель акторов и микросервисы Хочу поделиться своим опытом реализации микросервисной архитектуры поверх actor-model фреймоворков, таких как AKKA и Microsoft Orleans. Моя гипотеза: если использовать один стек для реализации микросервисов, то можно: Существенно снизить сложность разработки и объем кода У...

Аутентификация в .NET Core gRpc с помощью JWT В этой статье я расскажу об особенностях аутентификации API в gRpc сервисах с помощью JWT. Я предполагаю, что вы знакомы с JWT и заголовками HTTP, с их использованием в .NET Core WebAPI, поэтому не буду обсуждать эти детали. Когда я пытался реализовать аутентификацию в gRpc,...

Шаблонные функции в Python, которые могут выполнятся синхронно и асинхронно Сейчас практически каждый разработчик знаком с понятием «асинхронность» в программировании. В эру, когда информационные продукты настолько востребованы, что вынуждены обрабатывать одновременно огромное количество запросов и также параллельно взаимодействовать с большим наб...

Fast Reverse Proxy как альтернатива Ngrok Создание общедоступного URL в сети интернет к вашему локальному проектуЧто такое Ngrok, наверное знает каждый разработчик web приложений, и многие им пользуются. Немного предыстории...Присоединившись к новому большому проекту, над которым работают десятки разработчиков и QA ...

LTE на руднике — как мы строили приватную сотовую сеть для горняков Из этого поста вы узнаете, как построить компактную и быструю сотовую сеть для нужд большого производства. Изучим архитектуру Private LTE, рассмотрим базовые станции, ядро сети и поговорим о том, с какими сложностями мы столкнулись в процессе их установки. Читать далее

Восстановление работоспособности сайта В современном мире практически любой бизнес имеет собственный сайт, с помощью которого, он общается со своими потребителями, потенциальными клиентами, партнерами и т.д. Стоит отметить, что без сайта сегодня не сможет обойтись ни один бизнес, какой бы деятельностью он не зани...

Telegram-бот как фитнес-менеджер во время пандемии С приходом коронавируса мир сошел с ума и появилась куча ограничений, которые полностью поменяли нашу жизнь. Меня зовут Эмиль Фролов, я руковожу разработкой команды внутренних сервисов в ДомКлике и сегодня я поделюсь с читателями историей про создание бота, который помог н...

[Перевод] Как Asana использует Kubernetes В Asana мы используем Kubernetes для развертывания сервисов и управления ими независимо от монолитной инфраструктуры. Поначалу у нас были некоторые проблемы, и чтобы стандартизировать создание и обслуживание приложений Kubernetes, мы создали фреймворк с незамысловатым назва...

[Из песочницы] Деплой распределенных сервисов в Яндекс.Облаке на примере Grafana Всем привет! В рамках своей курсовой работы я занимался исследованиями возможностей такой отечественной облачной платформы, как Яндекс.Облако. Платформа предоставляет множество различных сервисов, помогающих решать многие практические задачи. Однако иногда бывает нужно на ос...

[Перевод] Реализация эффектов при помощи рисования вершин Какое-то время назад я наткнулся на интересный пост X: Rebirth – Geometric Lensflares на сайте simonschreibt.de В этом посте автор рассказал о том, как игра X: Rebirth использует техники рисования вершин для создания эффектов lens flare. Почему это интересно? Потому что сов...

Jenkins Pipeline: заметки об оптимизации. Часть 1 Меня зовут Илья Гуляев, я занимаюсь автоматизацией тестирования в команде Post Deployment Verification в компании DINS. В DINS мы используем Jenkins во многих процессах: от сборки билдов до запуска деплоев и автотестов. В моей команде мы используем Jenkins в качестве плат...

Как правильно работать с коммерческой тайной Сегодня я хочу поговорить об очень распространенной проблеме, с последствиями которой столкнулись мои клиенты. Из отдела продаж уволился менеджер и «унес» с собой копию базы клиентов. В результате руководство компании всерьез заинтересовалось, что такое коммерческая тайна и ...

[Из песочницы] Веб-разработка с нуля: руководство для молодых команд по созданию инфраструктуры CI/CD и процесса разработки Чуть больше года назад я столкнулся с тем, что на внутреннем проекте совсем не айтишной компании вырос целый отдел веб-разработки, которым мне и довелось руководить. Рабочий процесс вроде как устаканился и всех устраивал, но оставались проблемы: Проверка каждой ветки проход...

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

[Из песочницы] Пока смерть не разлучит нас или всё о static в C++ Всем привет. На одном из код-ревью я столкнулся с мыслью, что многие, а чего скрывать и я сам, не то чтобы хорошо понимаем когда нужно использовать ключевое слова static. В данной статье я хотел бы поделиться своими знаниями и информацией по поводу ключевого слова static. ...

«Оптика в каждую деревню»: как Индия планирует развивать сетевую инфраструктуру В прошлый раз мы рассказали о планах США модернизировать ИТ-инфраструктуру и перевести ее на гигабитные сети. Сегодня мы решили продолжить тему и поговорить об инициативах Индии. Там провайдеры проложат оптоволоконные кабели в каждую из 650 тыс. деревень всего за тысячу дней...

CP/M: взлет и падение Гэри Килдалла История развития технологий полна неожиданностей, крутых поворотов. Побед и поражений, предательства и верности. Иногда, чтобы добиться успеха, нужно было всего лишь оказаться в нужном месте в нужное время. Или прислушаться к дружескому совету. Сегодня мы расскажем вам о че...

[Перевод] Рейкастинг в игровых 2D-движках Введение На мой взгляд, рейкастинг — великолепная концепция, понять которую не так сложно, но качественных ресурсов по ней очень мало. Я расскажу о математике, лежащей в её основе, чтобы вы при желании с лёгкостью могли реализовать её в своих будущих проектах. Постараюсь сд...

Маркетинговые хитрости на рынке смартфонов. Где нет прогресса? Ранее, в нашем блоге обсуждалось, какие современные смартфоны классные и как их гибко можно использовать в «гиковских» целях. Возможно, но сегодня мы поговорим о другой стороне медали. Речь пойдёт о практическом применении в ежедневных задачах. Мы поговорим о том, что нам ...

[Перевод] Дорогой Google Cloud, отказ от обратной совместимости тебя убивает Чёрт возьми, Google, я не хотел снова писать в блог. У меня так много дел. Ведение блога требует времени, энергии и креатива, которые я мог бы использовать с пользой: мои книги, музыка, моя игра и так далее. Но ты меня достаточно разозлил, и придётся это написать. Так что д...

Dell Inspiron 7490: лёгкий металлический ноутбук на каждый день с отличной автономностью Сегодня мы хотим рассказать о ноутбуке Dell Inspiron 7490. Он ориентирован на тех, кто ищет максимально лёгкое и компактное решение на каждый день и, в то же время, не готов переплачивать за флагманские 13- и 14-дюймовые модели. Создавая его, наши разработчики исходили именн...

Как описать 100 Gitlab джоб в 100 строк В продолжение предыдущей статьи про инструменты деплоя в Kubernetes, хочу рассказать вам про то как можно использовать Jsonnet для упрощения описания джоб в вашем .gitlab-ci.yml Дано Есть монорепа, в которой: 10 Dockerfiles 30 описанных деплоев 3 окружения: devel, staging...

[Перевод] Product Discovery 101 для Product-менеджера Перевод статьи подготовлен в преддверии старта новой группы по курсу "Product Manager IT-проектов". Так что же такое Product Discovery? Product Discovery – это процесс выяснения того, что же в конечном итоге предстоит создать. Он отражает ваше видение, дает бол...

Подключение к платежному сервису — быстро и удобно. Миф или реальность? Часть 2 Всем привет! Совсем недавно мы рассказывали про внутреннюю кухню подключения к платежному сервису: как ускоряем и автоматизируем процессы в части заключения договора. А сегодня мы поговорим о технической стороне вопроса — об интеграции сайтов и сервисов с нашим платежным реш...

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

Как мы делали инструмент для QA, а сделали для всего техотдела Как-то очень давно наш отдел автоматизации внутренних процессов посетил админ (ops) с идеей помочь нашим тестировщикам. Основная идея был упростить деплой т.к. было очень неудобно писать ручные curl запросы к gitlab'у с кучей меняющихся параметров. Так заставили нас наша ком...

CloudMaster — это про самообслуживание разработчиков в корпоративном ЦОДе и облачных сервисах Здравствуйте! Я Игорь Гальцев, с 2010 технический руководитель различных направления разработок Softline в области автоматизации управления и продаж облачных (подписочных) сервисов. Сегодня хочу рассказать об инструменте, который переводит процедуры согласования и выдачи в...

Обзор фреймворка cdk8s для «программирования» Kubernetes-манифестов Kubernetes стал стандартом для запуска микросервисных (и не только) приложений. Компании разных размеров — от стартапов до enterprise — стараются проектировать свои приложения готовыми для запуска в Kubernetes-кластере.А для запуска приложения в K8s обычно используют Helm-ша...

[Перевод] Canary деплой с Jenkins-X, Istio и Flagger Доброго времени суток, читатель! Вот мы и подошли к заключительной части цикла статей о Канареечных релизах в Kubernetes и методах их реализации. Желаю приятного чтения и надеюсь, что данный цикл был для вас полезным. Использование решения Jenkins X для выполнения Canary де...

Создаем готовый для опенсорса проект на Angular в пару кликов Недавно я публиковал статью о том, как быстро настраивать npm-пакеты перед публикацией в opensource. В ней я разобрал настройку версионирования, CI, построение воркфлоу и удобный деплой на страничку с демо. Все советы той статьи распространяются и на библиотеки Angular. Но в...

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

[Перевод] Как запустить стартап с минимальными потерями: 23 правила За 5 лет бутстрэппинга я попробовал много всего и обнаружил, что существует много способов создать себе сложности, которые отнимают время и энергию. В результате ты вынужден разбираться с ними вместо того, чтобы заниматься делом и наращивать ценность своего продукта. Для с...

Как уменьшить размерность метрик в Prometheus, если вы не DevOps Иногда команда разработки сталкивается с задачей, в которой у неё мало экспертного опыта, и через пробы и ошибки она находит неочевидное решение. Так произошло и с нами, когда понадобилось перенести сбор метрик из Infux в Prometheus. Их итоговая размерность оказалась 1,5 мил...

Как установить файл конфигурации в .Net Core Console app для нескольких сред разработки при запуске Docker-контейнера Наша команда разрабатывала сервис обработки сообщений из Kafka. Он представлял собой консольное приложение .Net Core, которое подписывалось на топики, и при появлении сообщения в каждом из них выполняло определённый алгоритм обработки. На первых итерациях разработки нашего с...

Разработка производительной модели обработки данных для Cassandra В DataStax работают над созданием производительной модели данных для Apache Cassandra. В чём заключается эта работа и как её делать правильно, на конференции Cassandra Day Russia 2021 рассказал Артём Чеботко, Solutions Architect в DataStax. Речь пойдет о разработке производ...

Что случилось с фотостоками? Старожилы вытеснили новичков? Точка входа Фотостоки, как много в этом слове. Если вкратце, для тех, кто не в теме, фотостоки – это ресурсы, куда вы можете загружать свои фото, видео, вектор и т.п. для последующей продажи. Сегодня мы поговорим о том, как обстоят дела по состоянию на 2020 год. Личный опыт присутству...

Тонкости авторизации: обзор технологии OAuth 2.0 Информационная система Dodo IS состоит из 44 различных сервисов, таких как Трекер, Кассы ресторана или Базы знаний и многих других. 3 года назад мы написали сервис Auth для реализации сквозной аутентификации, а сейчас пишем уже вторую версию. В основе сервиса лежит стандарт ...

«Представь, что ты нашел решение, про которое можешь сказать: оно лучшее в мире» — интервью с создателем ClickHouse Алексей Миловидов работал инженером в Яндекс.Метрике, и перед ним стояла непростая задача. Яндекс.Метрика работала с петабайтами данных — это был третий по популярности сервис веб-аналитики в мире. Для него нужна была база данных, которая может обрабатывать огромное кол...

ХPaste от Southbridge для пересылки паролей и кода Время от времени нам нужно обмениваться с клиентами и коллегами паролями, фрагментами кода или логами. О сервисах для одноразовых url, с помощью которых можно передавать пароли, уже много писали на Хабре, например, здесь и вот тут. Мы тоже когда-то использовали Pastebin, но...

Темизация. История, причины, реализация Когда веб только зарождался – единственной его целью было размещение контента (гипертекстовые страницы), чтобы у пользователей из всемирной паутины был к нему доступ. В то время не могло идти и речи о дизайне, ведь зачем нужен дизайн страницам с научными публикациями, разве ...

[Перевод] 3 способа рендеринга больших списков в Angular В 2020 году фронтенд-фреймворки стали лучше, эффективнее и быстрее. Но, даже учитывая это, рендеринг больших списков без «замораживания» браузера всё ещё может оказаться сложной задачей даже для самых быстрых из существующих фреймворков. Это — один из тех случаев, когда «фр...

Что такое Закон Мура и как он работает теперь? Разбор Закон Мура гласит: “Количество транзисторов, размещаемых на кристалле интегральной схемы, удваивается каждые 24 месяца”. Вы наверняка слышали про этот закон. А еще вы наверняка слышали, что он больше не работает. Но, если посмотреть на реальные цифры реальных процессоров,...

Видеосказки от ИИ: разбор бейзлайна трека Creative AI в рамках AIIJC Привет, Хабр!Сегодня мы, команда Sber AI, расскажем про бейзлайн генерации сказок с озвучкой и картинками, который мы предложили в рамках трека по Creative AI международного соревнования для школьников Artificial Intelligence International Junior Contest (AIIJC): рассмотрим ...

История нашего open source: как мы сделали сервис аналитики на Go и выложили его в открытый доступ В настоящее время практически каждая компания в мире собирает статистику о действиях пользователя на web ресурсе. Мотивация понятна — компании хотят знать как используется их продукт/веб сайт и лучше понимать своих пользователей. Конечно на рынке существует большое количеств...

Создал уровень из Battletoads / Double Dragon в 3D | Уровень 2 Всем привет!Это Денис Вебер и какое-то время назад мне пришла в голову идея создать уровень из культовой игры Battletoads / Double Dragon в 3д. Эта серия стала интересна достаточно большому количеству людей, поэтому я решил продолжить создавать уровни из Battletoads в 3д.Есл...

Как взглянуть на Kubernetes с другой стороны? Рассказывает Марсель Ибраев, CTO учебного центра Слёрм 18 октября на образовательной онлайн платформе Слёрм стартует новый курс: Мега – поток по популярной платформе оркестрации контейнеров с открытым исходным кодом Kubernetes. Программа курса максимально широкая – чуть более, чем за месяц участники освоят 12 тем, связанных с ра...

[Перевод] Canary Deployment в Kubernetes #1: Gitlab CI Мы будем использовать Gitlab CI и ручной GitOps для внедрения и использования Canary-деплоя в Kubernetes Статьи из этого цикла: (эта статья) Canary Deployment при помощи ArgoCI Canary Deployment при помощи Istio Canary Deployment при помощи Jenkins-X Istio Flagger Выполн...

Зачем и как мы пишем постмортемы по критичным багам В какой-то момент у нас стало много хотфиксов — стабильно больше половины деплоев на проде были хотфиксы или откаты. Мы решили анализировать каждый хотфикс, чтобы понять причины, найти системные закономерности и устранить их, не допуская два раза одних и тех же ошибок. Как г...

[Перевод] Не стоит пользоваться OFFSET и LIMIT в запросах с разбиением на страницы Прошли те дни, когда не надо было беспокоиться об оптимизации производительности баз данных. Время не стоит на месте. Каждый новый бизнесмен из сферы высоких технологий хочет создать очередной Facebook, стремясь при этом собирать все данные, до которых может дотянуться. Эти ...

[Из песочницы] NextCloud в качестве сервиса по созданию защищенных ссылок Привет, Хабр! Хочу поделиться немного нетривиальным кейсом по настройке NextCloud в качестве сервиса по созданию защищенных ссылок, для прямого скачивания данных с подключенного сетевого smb\cifs-диска. Опишу решения нюансов, с которыми столкнулся во время настройки. Зачем...

Голосовое меню своими руками Даже в 2021 году большая часть общения с клиентами происходит по телефону. Незаменимыми остаются виртуальная АТС и голосовое меню. Но настраивать его через веб интерфейсы часто недостаточно функционально, а делать через API или asterisk сложно. Чтобы максимально упростить ...

[Из песочницы] Mikrotik и Linux. Рутина и автоматизация Представлюсь, меня зовут Андрей. Первоначальная задача стояла такая — создать сотни конфигов для Mikrotik, чтобы поднять на каждом ovpn с сертификатом, затем залить на сотни Mikrotik конфиги, а так же сертификаты и ключ. Пароль от сертификата у каждого уникален. Создават...

Системы класса Incident Response Platform: применение и основные функции Друзья, в предыдущей публикации мы проанализировали международные документы по управлению рисками информационной безопасности, а в более ранних статьях рассмотрели основы информационной безопасности, обсудили законодательство в области защиты персональных данных и критическо...

[Перевод] Проблема XY, или как правильно задавать вопросы Допустим, у вас возникли проблемы с файлами из-за их расширений. Вам нужно получить три последних символа, чтобы определить тип файла. Вы начинаете задавать вопросы об этом. Вы ищете код для поиска трёх последних символов. Вероятно, у коллег могут быть какие-то предложения...

[Перевод] Как устроен Apple Lightning Это моя маленькая статья с описанием (почти) всего, что я знаю об интерфейсе Apple Lightning и связанных с ним технологиях: Tristar, Hydra, HiFive, SDQ, IDBUS и др. Но сначала маленькое предупреждение… Читайте эту статью на свой страх и риск! Информация основана на большо...

Как удобно вести игровой баланс и не сломаться от количества ячеек в таблицах Каждый геймдизайнер рано или поздно сталкивается с необходимостью регулярной работы с таблицами. Базовых знаний Google Sheets или Excel обычно достаточно для того, чтобы вести простые расчеты и работать над игровым балансом. Но когда игра развивается и обрастает новыми сущно...

[Перевод] 5 стратегий успешного поиска работы в сфере IT Пандемия COVID-19 успела внести свои коррективы на рынке труда, однако оставила шанс найти хорошую работу в сфере IT, в том числе за рубежом. Для того чтобы поиски работы увенчались успехом: 1. Инвестируйте время в резюме. Мало найдется людей, которые регулярно обновляют ...

Django Rest Framework для начинающих: создаём API для чтения данных (часть 1) Меня зовут Стас Гаранжа, я выпускник курса «Python-разработчик» в Яндекс.Практикуме. Я хочу помочь начинающим разработчикам, которые приступили к изучению Django Rest Framework (DRF) и хотят разобраться, как устроен этот фреймворк. Я готовлю цикл статей, в которых расскажу о...

[Перевод] SSH, пользовательский режим, TCP/IP и WireGuard Тому, кто хостит приложение у провайдера наподобие Fly.io (далее — просто Fly), вполне может понадобиться подключиться к серверу, на котором работает это приложение, по SSH. Но Fly — это вроде как белая ворона среди других подобных платформ. Наше железо работает в дата-цент...

Обратная сторона медали: кто выиграл и проиграл на росте акций Tesla Изображение: Unsplash Конец 2019 и начала 2020 года оказались очень хорошими для Tesla. И далеко не всех инвесторов это обрадовало. Сегодня мы поговорим о том, каких результатов могли ожидать те из них, кто купил акции год-два назад и выстраивал различные стратегии. Читат...

Что нового в .NET 6? На момент написания этих строк вышло уже семь превью-версий .NET 6. Дальше — только релиз-кандидаты. Все основные фичи уже добавлены во фреймворк, идёт отладка, тестирование и оптимизация. Ожидать чего-то кардинально нового в RC-версиях, пожалуй, уже не стоит. Пришла пора ра...

Тест-драйв внешнего SSD Verbatim Store n Go 53237 Количество и сложность генерируемого нами контента возрастает с каждым днём, что рождает потребность в объемах для хранения, а также в скоростях для передачи обработки. Если ещё пару лет мы активно пользовались жёсткими дисками, как внутренними, так и внешними, то сейчас п...

Удаленка Challenge Друзья, привет! Меня зовут Станислав Саввин, и сегодня я хотел бы рассказать, как инфраструктурной команде Росбанка удалось за 10 дней в 7 раз нарастить количество удаленных подключений и перевести более 85% сотрудников на удаленку, не уронив при этом эффективности работы ...

'Hello World' вам в облако Мир сходит с ума, заталкивая калькулятор для 2+2 в облака. Чем мы хуже? Давайте Hello World затолкаем в три микросервиса, напишем пару-тройку тестов, обеспечим пользователей документацией, нарисуем красивый пайплайн сборки и обеспечим деплой в условный облачный прод при успе...

[Перевод] Как найти сооснователя в стартап и нужно ли Привет! Я Кэт Маньялак и я являюсь партнёром Y Combinator уже на протяжении пяти лет и наблюдала за 1300 компаниями. Сегодня я отвечу на вопрос «Как найти сооснователя». Во-первых, я буду говорить о том, нужен ли сооснователь. Во-вторых, мы будем говорить о том, где вс...

Мониторинг как процесс управления событиями Привет, Хабр! Сегодня мы хотим поделиться с вами статьей по выступлению руководителя технической поддержки ИТ-ГРАД Алика Фахрутдинова, в которой расскажем о том, как мы строили новую систему мониторинга в рамках коллаборации с ПАО «МТС». На сей раз опустим технические детали...

[Перевод] Путь от вычислительной машины к машине координационной В наши дни существует огромное количество технологий, ориентированных на различные аспекты облачных вычислений. В частности, речь идёт о контейнеризации и микросервисах. Они — причина того, что мы стали воспринимать приложения в виде распределённых систем, компоненты которых...

Apple хочет максимально снизить свои выбросы к 2030 году Сегодня Apple объявила о своей новой глобальной цели. К 2030 году купертиновцы хотят стать полностью экологически чистой компанией. При этом новая инициатива касается также цепочки поставок. Купертиновцы хотят добиться, чтобы их устройства имели нулевое влияние на окружающую...

Подход Multicloud Native Service: что это такое и как поможет сделать IT-систему максимально отказоустойчивой Хабр, привет! Меня зовут Николай Бутенко, я руководитель Private Cloud в Mail.ru Cloud Solutions, и сегодня хочу обсудить с вами одно из самых больших заблуждений, с которыми я встречаюсь каждый день. Если вы когда-либо работали с облачными сервисами, то наверняка знаете о ...

Гореть, но не сгорать – гореть, чтобы светить Привет, хабровчане. В преддверии старта курса «Team Lead 2.0», хотим поговорить о профессиональном выгорании. О профессиональном выгорании хотя бы краем уха слышал каждый второй, но по-настоящему понять, что это такое необходимо, чтобы сохранить самое важное, что у нас ес...

Снова про шаблоны C++ в микроконтроллерах Идея использования шаблонов языка C++ для программирования контроллеров не является чем-то новым, в сети доступно большое количество материалов. Кратко напомню основные преимущества: перенос значительной части ошибок из runtime в compile-time за счет строгого контроля ти...

Автоматизация HotFix в Maven проектах с использованием TeamCity В этом посте будет описана настройка автоматизации HotFix в Maven проектах с использованием Teamcity. Чтобы сделать HotFix обычно делается много ручных действий: 1) Создать бранч для релиза, на который вы хотите выкатывать HotFix 2) Исправить ошибку в релизе 3) Измененить bu...

Наш опыт с графовой базой данных Dgraph в Kubernetes Недавно перед нами встала задача развернуть Dgraph в кластере Kubernetes. В этой статье я поделюсь полученным опытом: с чем мы столкнулись во время деплоя и последующего использования этого приложения в различных окружениях, от dev до production. Что вообще такое Dgraph? ...

ABBYY NeoML: как мы делали библиотеку машинного обучения и зачем она нужна Привет, Хабр! Меня зовут Стас, и я отвечаю за направление Common Libraries в компании ABBYY. Недавно мы выложили на GitHub созданную нами библиотеку для машинного обучения NeoML. NeoML — это кроссплатформенная C++ библиотека, позволяющая организовать полный цикл разработки ...

Создаем Todo приложение c помощью Django. Часть 1 И снова здравствуйте. В преддверии старта курса «Web-разработчик на Python» наш внештатный автор подготовил интересный материал, которым с радостью делимся с вами. Джанго это мощный фреймворк для создания веб-приложений. Изначально Django был создан для того, чтобы быстро...

[Из песочницы] Как обойти некоторые ограничения google translate Я опишу два финта, с помощью которых можно обойти некоторые ограничения google translate. 1. Ограничение на количество символов у google translate online то ли 3900, то ли 5000 символов. Иногда нужно больше, а создавать html-файл с текстом неохота. Чтобы обойти это огранич...

Лучшие практики для деплоя высокодоступных приложений в Kubernetes. Часть 2 В прошлой части были рассмотрены рекомендации по множеству механизмов Kubernetes для оптимального деплоя высокодоступных приложений включая особенности работы планировщика, стратегии обновления, приоритеты, пробы и т.п. Во втором и заключительном материале поговорим о трёх в...

[Перевод] Сборка недорогой домашней NAS-системы на Linux Я, как и многие другие пользователи MacBook Pro, столкнулся с проблемой недостачи внутренней памяти. Если говорить точнее, то используемый мной ежедневно rMBP был оснащен SSD объемом всего 256GB, чего, естественно, надолго не хватало. А когда я плюс ко всему стал записыват...

[Перевод] Реверс-инжиниринг GPU Apple M1 Новая линейка компьютеров Apple Mac содержит в себе разработанную самой компанией SOC (систему на чипе) под названием M1, имеющую специализированный GPU. Это создаёт проблему для тех, кто участвует в проекте Asahi Linux и хочет запускать на своих машинах Linux: у собственно...

Consul + iptables = :3 В 2010 году у компании Wargaming было 50 серверов и простая сетевая модель: бэкенд, фронтенд и файрвол. Количество серверов росло, модель усложнялась: стейджинги, изолированные VLAN с ACL, потом VPN с VRF, VLAN c ACL на L2, VRF с ACL на L3. Закружилась голова? Дальше будет в...

[инструкция] Создание аккаунта и сайта на платформе Google Site Спасибо пользователю Exosphere за помощь и конструктивную критику Часто возникает необходимость структурировать информацию, создать какой то банк данных, который будет доступен по сети интернет. Однако при этом нет необходимости создавать полноценный сайт или изменять теку...

Run, config, run: как мы ускорили деплой конфигов в Badoo Файлы конфигурации (конфиги) — неотъемлемая часть большинства приложений, но, как показывает практика, это не самая популярная тема для обсуждения. Чаще всего разговоры о конфигах ограничиваются обсуждением работы с ними непосредственно в коде: как их структурировать, исполь...

Как я познавал ci/cd, Гитхаб экшены Гитхаб экшены, как я познавал ci/cd   Всем Алоха. Все слышали про ci/cd, про то что он должен быть в каждой компании и то что он упрощает нам жизнь. У всех свой ci/cd.    Кто-то предпочитает Jenkins. Особенно если у вас куча микросервисов, команд и п...

Пишем драйвер виртуального EEPROM для STM32F030 Кто хотел сохранять какие-либо данные в FLASH микроконтроллера во время работы устройства сталкивались с особенностями работы с этим видом памяти. Из-за необходимости стирания страницы большого объёма для перезаписи ячейки FLASH памяти, возникает угроза потери данных из-за ...

[Из песочницы] Автоопределение кодировки текста Введение Я очень люблю программировать, я любитель и первый и последний раз заработал на программировании в далёком 1996 году. Но для автоматизации повседневных задач иногда что-то пишу. Примерно год назад открыл для себя golang. В качестве инструмента создания утилит golan...

Микрофронтенды: разделяй и властвуй Всем привет! Меня зовут Аня, я фронтенд-разработчик в Delivery Club. Хочу рассказать про использование микрофронтендов. Поговорим о том, что же это за зверь такой — микрофронтенд, почему мы решили использовать этот подход в своих проектах и с какими проблемами столкнулись ...

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

«Пока пил кофе, выставил счет и получил пуш об оплате» — новшества, которые позволяют вести бизнес 24/7 В начале 2019 года мы провели внутреннее исследование и выявили, что каждый четвёртый пользователь Яндекс.Кассы заходит в личный кабинет через мобильное устройство. Оказалось, что нашему PSP-сервису не хватало инструмента для нестандартных сценариев — например, клиент присыл...

[Перевод] Резервирование констант и Git hooks на C# Позвольте мне рассказать вам историю. Жили-были два разработчика: Сэм и Боб. Они вместе работали над проектом, в котором была база данных. Когда разработчик хотел внести в неё изменения, он обязан был создать файл stepNNN.sql, где NNN — некоторое число. Чтобы избежать конфли...

Как развивать сервис, когда вокруг крутые конкуренты Когда можно и нужно передирать у лидеров рынка, когда и как создавать добавленную стоимость и что делать, чтобы не впасть в отчаяние, если тебя считают бюджетным клоном другого сервиса. Под катом — наши размышления выводы. А родились они из того, что нас постоянно сравнива...

Как открыть комментарии и не потонуть в спаме Когда твоя работа — создавать что-то красивое, о ней можно особенно не рассказывать, потому что результат у всех перед глазами. А вот если ты стираешь надписи с заборов, твою работу никто не замечает, пока заборы выглядят прилично или пока ты не сотрёшь что-нибудь не то. ...

[Перевод] Изучаем использование памяти MySQL с помощью Performance Schema Понимание того, как MySQL использует память, является ключом к настройке системы для достижения оптимальной производительности, также как и для устранения неполадок в случаях ненормального использования памяти, например, когда у вас есть сервер MySQL, использующий намного бо...

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

Redux Toolkit как средство эффективной Redux-разработки В настоящее время разработка львиной доли веб-приложений, основанных на фреймворке React, ведется с использованием библиотеки Redux. Данная библиотека является самой популярной реализацией FLUX-архитектуры и, несмотря на ряд очевидных преимуществ, имеет весьма существенные ...

Тополиный пух, AMA #20, июль Команда Хабра до сих пор находится на добровольной удалёнке и, несмотря на это, мы готовы хвастаться: все сотрудники не переставали трудиться ни на минуту. Мы, как и прежде выкатываем фичи и обновления, готовим отчёты Хабр Карьеры, создаём спецпроекты, модерируем и выпускаем...

[Из песочницы] Интеграция Gitlab, Jira и Confluence на Python для автоматизации сборки релизов Недавно на стендапе коллега внес рацпредложение: автоматизировать сборку релизов, взяв за основу готовые уже наработки по взаимодействию с Jira, написанные на Python. Процесс деплоя у нас следующий: когда накапливается достаточное количество задач, прошедших тестирование и...

WhatsApp, Telegram и Signal выдают телефонные номера всех пользователей Синхронизация мессенджера с контактами из адресной книги (contact discovery) — очень удобная функция. Когда новый человек ставит приложение, то в него автоматически добавляется большой список контактов, а если кто-то впервые установил мессенджер, то уведомление об этом при...

Как работает менторство До какого-то момента самый быстрый способ профессионального роста – это выделяться компетенцией. То есть быть крутым специалистом, который в одно лицо может всё. Это очень комфортная и приятная позиция, потому что вы отвечаете только за себя, не несёте огромных расходов ка...

На пути к индивидуальному образованию: анализ данных Яндекс.Репетитора Наверняка почти каждый мечтает о персонализированном образовании: двигаться к своей образовательной цели максимально коротким путём, решать только те задачи, состав и сложность которых подстраиваются под тебя, с пользой проводить любой отрезок времени независимо от длитель...

[Перевод] Первое знакомство с Moon.js Сегодня речь пойдёт об очередной JavaScript-библиотеке, предназначенной для разработки интерфейсов. Возникает такое ощущение, что такие библиотеки появляются всё чаще и чаще. В этом материале мы рассмотрим библиотеку Moon.js и раскроем её особенности, о которых нужно знать д...

Современная сборка 2020 для frontend. Gulp4 Начало Посмотрев на календарь, я понял, что уже 2020, а посмотрев на свою сборку, которая была с 2018 года, я понял, что пора её менять. В этой статье мы разберем структуру проекта, плагины (минимальный набор функционала) и их новые возможности, которые добавились за такое б...

Видеоурок Теплицы: как работать с видео в приложении Canva Изначально сервис Canva был создан для нужд дизайнеров. Разработчики хотели добиться простоты использования и создать большое количество предустановленных шаблонов. Именно это  позволяет сделать качественный макет даже тех, кто не обладает дизайнерскими навыками. Недавно в C...

Имитация Сложности — Антиномия Простого и Сложного Программисты много говорят про сложность решений. Мы можем часами размышлять о правильных шаблонах, красивых абстракциях и цепочках зависимостей. Однако, давайте поговорим открыто, всегда ли сложность обусловлена решаемой проблемой? Не оказываемся ли мы в плену наших стереот...

[Перевод] С нуля до автоматизации контейнеров за 7 минут В статье ранее (на португальском) я рассказал, как создать полнофункциональный бэкенд GraphQL, используя только образ Docker и файл конфигурации. Все это можно найти на сайте Azure. А сейчас давайте поговорим о том, как автоматизировать развертывания, созданные для нашего хо...

[Перевод] InheritedWidget во Flutter Перевод статьи подготовлен для студентов курса «Flutter Mobile Developer». Корни деревьев виджетов во Flutter могут уходить очень глубоко… Очень глубоко. Компонентная природа виджетов Flutter позволяет создавать очень элегантный, модульный и гибкий дизайн приложений. ...

[Перевод] Как эффективно применять React Context В статье Как управлять состоянием React приложения без сторонних библиотек, я писал о том как сочетание локального состояния и контекста (React Context) поможет вам упростить управление состоянием при разработке приложения. В этой статье я продолжу эту тему - мы поговор...

Как подобрать выгодно МФО по микрозайму Разные ситуации в жизни могут заставить человека заняться поиском наиболее выгодных условий для микрозайма. На самом деле, ситуации в жизни могут быть разные и когда деньги нужны срочно, то именно МФО и приходят на помощь. Еще совсем недавно взять кредит можно было только в ...

Как создавать и изменять интерактивные PDF-формы, или новый скилл ABBYY FineReader PDF Мы регулярно обучаем ABBYY FineReader PDF новым навыкам. Две недели назад мы рассказали на Хабре, как научили ABBYY FineReader PDF редактировать целые абзацы. Этот пост — о еще одном продвижении нашего продукта на пути к совершенству: программа теперь умеет создавать и редак...

[Перевод] Как создать свой первый open source проект на Python (17 шагов) Каждый разработчик ПО должен знать как создать библиотеку с нуля. В процессе работы Вы можете многому научиться. Только не забудьте запастись временем и терпением. Может показаться, что создать библиотеку с открытым исходным кодом сложно, но Вам не нужно быть потрепанным ж...

Замедлиться, чтобы быстрее учиться новому — подробно обсуждаем ключевые рекомендации Ранее мы поговорили о том, как найти баланс между работой и учебой, а еще детально разобрали метод «deep work». Сегодня попробуем подступиться к теме с другой стороны — поговорим о мотивации, «методе юзабилиста» и лайфхаках для тех, кто хотел бы быстро изучать все ...

4-ая платформа отходит от б/у сервера Всем привет! Мы с коллегами столкнулись с дефицитом информации о развитии серверного оборудования, а также по сравнениям разных линеек при подборе конфигураций под самые ходовые нужды (по крайней мере те, с которыми мы в GaltSystems работаем чаще всего). Вспоминая нашу прошл...

Организация цифрового рабочего места сотрудника с помощью Microsoft Project Moca Всем привет! Сегодня будет знакомство с новым сервисом из линейки сервисов Microsoft 365, под названием Project Moca. Данный сервис еще пока находится в стадии Preview и недоступен в явном виде для изучения и использования, но есть некоторые хитрости, которые позволят нам уж...

Какие у Вкусвилла есть telegram-боты и зачем они нужны Telegram предоставляет возможность делать ботов быстро, удобно и подключать их к своим внутренним системам, создавая множество подвязок, триггеров и шаблонов. Активируешь Botfather-а и просто следуешь инструкциям, самое сложное обычно касается именно работы со внутренними си...

Введение в сетевую часть облачной инфраструктуры Облачные вычисления все глубже и глубже проникают в нашу жизнь и уже наверно нет ни одного человека, который хотя бы раз не пользовался какими либо облачными сервисами. Однако что же такое облако и как оно работает в большинстве своем мало кто знает даже на уровне идеи. 5G...

Создание Dashboard в Kibana для мониторинга логов Привет, меня зовут Евгений, я тимлид B2B-направления в Ситимобил. Одной из задач нашей команды является поддержка интеграций по заказу такси от партнеров, и для обеспечения стабильного сервиса мы всегда должны понимать, что происходит в наших микросервисах. И для этого над...

[Из песочницы] Что такое I в ACID или взгляд с другой стороны Прочитав этот пост, написанный farwayer, сначала хотел просто оставить комментарий, но, подумав пару десятков минут, решил, что тема глубокая, и мне есть что сказать на целый пост. Все таки, с одной стороны, я один из тех, кто на собеседованиях не смотрит на код и кого разоч...

«Ростелеком» и «МегаФон»: борьба за зарубежный трафик и внутренние интересы В 2020 году два крупнейших российских оператора связи – «Ростелеком» и «МегаФон» – запустили масштабные проекты по строительству волоконно-оптических магистралей, которые свяжут Европу и Азию современными высокоскоростными каналами: TEA NEXT и Arctic Connect. В чем важность ...

What does the Checker check, или как организовать удобный мониторинг через веб-интерфейс =) Продолжаем серию публикаций о нашем веб-интерфейс для HAProxy. Сегодня мы поговорим о специализированном сервис под названием Checker,предназначенном для мониторинга сервисов HAProxy и Nginx, а также бэкендов HAProxy. Если один из сервисов падает, то Checker рассылает уведом...

[Перевод] 17 сюрпризов за мой первый год использования Tesla Model 3 У меня Tesla Model 3 уже около года и она способна проезжать 260 миль без дополнительной зарядки. Когда я его покупал, у меня были догадки, на что она способна, а на что нет. Но я столкнулся с неожиданными сюрпризами, несмотря на то, что хорошо изучил эту тему и имею больш...

Создание Discord – бота на .NET Core с деплоем на VPS-сервер Привет, Хабровчане! Сегодня вы ознакомитесь со статьей, в которой будет рассказано, как создать бота, используя C# на .NET Core, и о том, как его завести на удаленном сервере. Статья будет состоять из предыстории, подготовительного этапа, написания логики и переноса бот...

Музыка операционных систем: как стандартные звуки и код превращают в полноценные композиции Ранее мы уже рассказывали о музыке «зашитой» в разных версиях ОС Windows: вспоминали композицию CANYON.MID, на которую сегодня существует огромное количество каверов, и трек Beautiful Way, демонстрировавший возможности мультимедийного формата ASF.Сегодня мы продолжим тему, н...

Как мы автоматизировали весь жизненный цикл серверов Привет, Хабр! Меня зовут Алексей Назаров. Я занимаюсь автоматизацией в отделе администрирования инфраструктурных систем в Национальной системе платежных карт (АО НСПК) и хотел рассказать немного о наших внутренних продуктах, которые помогают нам развиваться. Если вы еще не ...

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

Топологическая фотоника: как математическая концепция помогает создавать перспективные устройства Математический аппарат нередко формировался в процессе решения практических задач: зачатки векторной алгебры возникли при попытках «сложить» скорости и силы, понятие скорости привело к введению производной и так далее. Однако сегодня мы поговорим о случае, когда изначально а...

[Перевод] Практика использования спецификации CSS Scroll Snap Часто ли у вас возникало желание воспользоваться какой-нибудь возможностью CSS, позволяющей, без лишних усилий, создать элемент-контейнер, поддерживающий прокрутку? CSS, что очень хорошо, даёт нам такую возможность. Я, когда только начинал заниматься фронтенд-разработкой, по...

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

Честные глаза плагиатора, или еще один взгляд на будущее систем обнаружения заимствований Развивать систему, созданную 16 лет назад, «конечно, не подвиг, но вообще что-то героическое в этом есть» (с). От пользователей регулярно прилетают вопросы: что будете делать дальше? Каким будет Антиплагиат через несколько лет? Все правильно, все верно – нельзя позволять рут...

Как быстро и безопасно организовать удалённую работу сотрудников? Рассказываем о разных подходах: с VDI и не только С необходимостью удобно и безопасно организовывать удалённую работу своих сотрудников бизнес столкнулся давно. Но если раньше эту задачу можно было регулярно откладывать и продолжать обдумывать, то сейчас времени уже нет: «удалёнка» – главный тренд весны 2020 во всём мире. В...

Редактор кода на Android: часть 2 Вот и подошло время для публикации второй части, сегодня мы продолжим разрабатывать наш редактор кода и добавим в него автодополнение и подсветку ошибок, а также поговорим почему любой редактор кода на EditText будет лагать. Перед дальнейшим прочтением настоятельно рекомен...

Веб тренды 2020 которые стоит попробовать Последние несколько лет мы наблюдаем множество изменений в мире веб технологий. В 2020 году, я хочу обратить ваше внимание на два основных тренда/цели которые есть у веб комьюнити: расширяемость и совместимость. Расширяемость (Extensibility) Расширяемость это когда вы может...

Видеоурок Теплицы: как сделать GIF или APNG из видео или набора изображений с помощью Ezgif.com Мы немного поговорили про сервис Ezgif.com, когда делали скринкаст о том, что такое APNG. Сервис оказался очень удачным, в том числе потому, что он бесплатный. И мы решили продолжить знакомство с Ezgif. Сегодня расскажем, как сделать GIF или APNG из видео или набора изображе...

[Из песочницы] Быстрый деплой vm ESXi с помощью Terraform Всем привет, меня зовут Иван и я алкоголик системный администратор (OPS). Я бы хотел рассказать как разворачиваю виртуальные машины на ESXi без vCenter с помощью Terraform. Читать дальше →

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

[Из песочницы] Локальный прокси-сервер для фильтрации браузерного трафика Хочу рассказать о процессе разработки и поделиться прокси-сервером, которым сам пользуюсь для фильтрации всяческого мусора и других задач, требующих просмотра или вмешательства в браузерный траффик. Возможно, аналогичный функционал уже где-то есть, но мне хотелось сделать ко...

Что нужно знать о влиянии новостей на стоимость акций Изображение: Unsplash В последнее время очень часто можно прочитать новости формата «индекс Dow Jones пережил рекордное падение на фоне новостей о распространении коронавируса». При этом, такие статьи в СМИ появлялись регулярно и до того, как тема вируса и общественного з...

Прозрачные процессы тестирования на удалёнке Публикуем статью Анастасии Шариковой — QA Lead в Bookmate и преподавателя профессионального курса «QA Lead», с программой которого мы приглашаем вас ознакомиться! Также приглашаем на бесплатный пробный открытый урок «Тестовое покрытие по Бейзеру», где Анастасия Асеева-Нгуе...

[Из песочницы] Некоторые тонкости injection'а коллекций в Spring'е Всем привет! Меня зовут Владислав Родин. В настоящее время я преподаю на портале OTUS курсы, посвященные архитектуре ПО и архитектуре ПО, подверженного высокой нагрузке. Сейчас в OTUS'е открыт набор на новый поток курса Разработчик на Spring Framework. В преддверии старта к...

Внутренний стартап: как мы делали продукт в сервисной компании Я работаю в компании, которая занимается заказной разработкой. Мы параллельно ведем достаточно много проектов с разной активностью и объемом работы. Каждую неделю менеджеры проектов созваниваются, чтобы сверить текущее состояние дел, составить план на будущую неделю и распре...

Kubernetes tips & tricks: удобные заготовки для kubectl Внутри компании мы активно делимся между собой полученными знаниями: не только в виде формальных wiki-инструкций, но и сообщениями в Slack (а чтобы ничего не терялось, предусмотрена умная система поиска, но это уже отдельная история…). У нас накопилось уже большое количество...

[Перевод] Обновление AngouriMath 1.3 Четыре месяца работы вместе с небольшим количеством новых контрибьютеров наконец-то дали свои плоды в виде нового большого релиза, с которым с удовольствием автор хочет Вас познакомитьТеперь в AngouriMath есть инструменты работы с матрицами, улучшенный парсер, много новых фу...

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

[Из песочницы] Получение разрешения на полёт дрона (БВС, БПЛА) в Российской Федерации Данная статья написана мной с целью облегчить прохождение по пути официального оформления своего вылета тем моделистам-любителям, кто сомневается в выполнимости для себя данной процедуры и не знает с чего начать. В первую очередь хочу выразить благодарность автору статьи «...

Как собрать нативную библиотеку для Android Собрать и заставить работать приложение с небольшим количеством нативного кода несложно. Если же вы хотите использовать нативную библиотеку, в которой много файлов, становится труднее. Сложность в том, что нативные библиотеки распространяются в виде исходного кода, который н...

Почему не Notion Давно понял, что записанное: мысль, идея, задача (назову их "сущности"), освобождают место в голове. Пока они не записаны - они не зафиксированы и носятся в голове как оголтелые и мешают другим работать. А записанная - она уже зафиксирована и работать намного легче и никому ...

5 факторов, которые нужно учитывать при прогнозировании товарных запасов Привет, Хабр! Меня зовут Александр Грицай, CEO компании Forecast NOW!. Сегодня я хотел бы поговорить о работе с товарными запасами - аналитике, прогнозировании и т.п. Все это - важно для любой отрасли, где продают что-то материальное, товары, которые хранятся на складе. ...

[Перевод] 7 ложных предположений о том, как устроены строки Как Unicode уничтожает большинство ваших предположений о том, как на самом деле работают строки Когда речь идет о написании чего-то простого, мы, программисты, обычно действуем интуитивно. В случае с простыми вещами мы полагаемся на четкий набор предположений вместо конкрет...

Как мы создавали адресный справочник Ростелекома Зачем Ростелекому знать про адреса все и даже немного больше? Интернет, при всем своем цифровом имидже, штука, созданная в аналоговом мире. И до сих пор для того, чтобы в доме был высокоскоростной интернет, к дому должен быть физически подведён кабель. Именно адрес дома яв...

Чистый код для TypeScript — Часть 2 Первая часть, судя по комментариям вызвала неоднозначное мнение, особенно что касалось части enum. Где-то я так же могу не соглашаться, как с автором оригинала, так и с некоторыми комментариями. Но как и указывалось в начальном описании к первой части, чистый код это не догм...

Расширения в Kotlin. Опасный атавизм или полезный инструмент? Kotlin — еще молодой язык, но уже стремительно ворвался в нашу жизнь. Из-за этого не всегда понятно, каким образом правильно реализовать тот или иной функционал и какие best practice применять. Особенно тяжело обстоит дело с возможностями языка, которых нет в Java. Одним ...

[Из песочницы] 14 вещей, которые обязан знать iOS-разработчик С разрешения автора выкладываю перевод статьи Norberto Gil Vasconcelos «14 must knows for an iOS developer» (ссылка на оригинал). Как iOS-разработчик (в данный момент абсолютно зависимый от Swift), я создавал приложения с нуля, поддерживал приложения, работал в различных ко...

Использование оператора '?.' в foreach: защита от NullReferenceException, которая не работает Любите оператор '?.'? А кто же не любит? Эти лаконичные проверки на null нравятся многим. Однако сегодня мы поговорим о случае, когда оператор '?.' только создаёт иллюзию безопасности. Речь пойдёт о его использовании в цикле foreach. Читать дальше →

Security Week 14: приватность в условиях пандемии В дайджесте на прошлой неделе мы привели примеры эволюции традиционной киберпреступности на фоне пандемии. Это важная тема, особенно в условиях массового перехода на удаленную работу, но лишь в краткосрочной перспективе. Мы еще столкнемся с кибератаками, эксплуатирующими «ви...

Катя. Фантастический рассказ Аудиокнига — Нет. Забудь. Просто выброси из головы. Нет. — Ты каждый раз так говоришь. Что бы я ни предложила. — И я каждый раз прав. Катя прищурилась. Ани́ понял, что сейчас она припомнит ему случай, когда он оказался неправ. А потом ещё один и ещё. У неё была хорошая памя...

Все, что вы хотели узнать про области видимости в Python, но стеснялись спросить В преддверии старта нового потока по курсу «Разработчик Python», решили поговорить про области видимости в Python. Что из этого вышло? — Читайте в материале ниже. Сегодня мы будем говорить о важных теоретических основах, которые необходимо понимать и помнить, чтобы писат...

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

Да кто такой этот ваш Mobile DevOps? Сегодня почти у каждого проекта мобильного приложения есть базовая инфраструктура: ваш код хранится на git хостинге и весь новый код регулярно проверяется на CI, чтобы не сломать старый. Если ваша команда в несколько человек производит не очень много кода, то скорее всего вы...

Анонс: зачем программистам психотерапия и как устроен алгоритм подбора идеального терапевта ЗАВТРА, 13 октября, в 20:00 в наших соцсетях выступит главный евангелист mental health в нашей IT-тусовке — создатель языка Kotlin и основатель стартапа Alter Андрей Бреслав. Учитывая, какой большой отклик мы получили от Хабра во время нашего последнего разговора о мен...

Производительность приложений, работающих с Video и Audio В этой статье будут рассмотрены 3 практических вопроса, с которыми я столкнулся при разработке приложения. Как работать с Video и Audio с максимальной точностью. Как оптимально обрабатывать данные с такой скоростью. Как оптимально обрабатывать данные, приходящие по websoc...

GPU Bound. Часть вторая. Бескрайний лес Практически в каждой игре необходимо наполнять игровые уровни объектами, которые создают визуальное богатство, красоту и вариативность виртуального мира. Возьмите любую игру с открытым миром. Там деревья, трава, земля и вода основные «заполнители» картинки. Сегодня GPGPU бу...

Plesk, cPanel или ISPmanager: что выбрать? Протестировать все предлагаемые провайдером панели перед началом работы трудно, поэтому мы собрали три самых популярных в небольшом обзоре. Сложности возникают, когда от администрирования ОС клиент переходит к связанным с хостингом задачам. Ему приходится управлять множес...

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

[Из песочницы] Синхронизация пользователей Zimbra Collaboration OSE на основе Active Directory 1. Предпосылки Настраивая сервер zimbra столкнулся с проблемой синхронизации пользователей по группе в Active Directory (AD). Если мы создаем нового пользователя в AD, то он нормально добавлялся, но если мы делаем доступ к почтовому серверу по группе, то первый раз все польз...

Добавление своих полей в отчет Pytest Столкнулся с задачей модификации html-отчета при работе с pytest, в результате чего нашёл удобное для своей задачи решение, хочу им поделиться — возможно кому-то пригодиться. * Все картинки кликабельны Читать дальше →

[Перевод] REST API на Java без фреймворков Перевод статьи подготовлен специально для студентов курса «Разработчик Java». В экосистеме Java есть много фреймворков и библиотек. Хотя и не так много, как в JavaScript, но они и не устаревают так быстро. Тем не менее, это заставило меня задуматься о том, что мы уже забы...

[Из песочницы] Бот для сборов. Собираемся на футбол с новыми технологиями Введение Всем привет. В этой статье я опишу своего чат-бота для сервиса обмена сообщениями telegram и социальной сети VK с использованием NodeJS. На этом месте у многих читателей должно вырваться что-то вроде: "Доколе!" или "Что, опять ?!". Да, похожие публикации уже были и ...

Odyssey roadmap: что ещё мы хотим от пулера соединений. Андрей Бородин В докладе Андрей Бородин расскажет, как они учли опыт масштабирования PgBouncer при проектировании пулера соединений Odyssey, как выкатывали его в production. Кроме того, обсудим какие функции пулера хотелось бы видеть в новых версиях: нам важно не только закрывать свои пот...

[Перевод] Одна строка, которая ускорила клонирование в 100 раз Наша группа по оптимизации производительности нашла маленькое изменение, которое оказало большое влияние на скорость сборки по всем конвейерам. Мы обнаружили, что установка параметра refspec во время git fetch ускоряет шаг клонирования в 100 раз. Группа Engineering Product...

Быть тимлидом, ч.1: Люди Всем привет. Меня зовут Семён, я руковожу разработкой партнёрских сервисов в ДомКлик. О роли тимлида сказано и написано много: бесконечное число книг, технических и не очень, тренинги, конференции, каналы и прочее. Проблема в том, что ни одна книга не даёт рецепта «серебрян...

[Перевод] Наши выводы за год миграции GitLab.com на Kubernetes Прим. перев.: адаптацию Kubernetes в GitLab считают одним из двух главных факторов, способствующих росту компании. Тем не менее, до недавнего времени инфраструктура онлайн-сервиса GitLab.com была построена на виртуальных машинах, и только около года назад началась её миграци...

Библиотеки для цифровой обработки сигналов на C++ Мы уже рассказывали о книгах, которые помогут взять старт в цифровой обработке сигналов. Сегодня продолжим тему и поговорим о практических ресурсах.Подобрали три библиотеки на C++ для звукового синтеза. Читать далее

[Перевод] Как самый недооценённый контрибьютор спасал язык Rust от смерти Дэйв Херман, самый недооценённый контрибьютор Rust Автор оригинала — Брайан Андерсон. Он тоже имеет отношение к работе над языком Rust. Понятно, что в своей статье он будет хвалить этот язык, но важнее другое: он раскрывает внутреннюю кухню проекта. Андерсон рассказывает п...

Как работать с Google Analytics и Яндекс Метрикой? Если вы хотите знать, как ведут себя пользователи на вашем сайте, надо использовать системы аналитики: они собирают необходимую информацию и предоставляют ее в виде удобных отчетов. Сегодня поговорим о двух из них — Яндекс.Метрике и Google Analytics. Рассмотрим, какие основ...

Самодельный компьютер из платы АОНа В последнее время на Хабре появилось несколько статей про самодельные компьютеры, созданные из различных нестандартных компонентов. Я тоже решил рассказать о своем компьютере, созданном в далеком 1993 году. На волне всеобщего увлечения синклерами, мне захотелось иметь полнос...

[Из песочницы] IOptions и его друзья Во время разработки часто возникает потребность для вынесения параметров в конфигурационные файлы. Да и вообще — хранить разные конфигурационный константы в коде является признаком дурного тона. Один из вариантов хранения настроек — использования конфигурационных файлов. .Ne...

Что бы я хотел знать когда начинал изучать Django? — очень общий взгляд Здесь на Хабре много различных инструкций по использованию Django. Эти инструкции часто включают много кода и представляют последовательность шагов, которые нужно сделать, чтобы создать проект. Когда я начинал изучать Django и Wagtail по таким инструкциям, меня часто смущал...

[Перевод] О смерти двойной загрузки и о единстве Windows и Linux Раньше моей рабочей машиной был ноутбук, созданный Apple. Я мог делать на нём практически всё что угодно: разрабатывать программы, писать тексты, сочинять музыку, да и много чего ещё. Но мне не давали покоя мысли о том, что я привязан к экосистеме Apple, о том, что я зависим...

Вспомним прошлое. Аллоды: Печать Тайны или русский ответ Warcraft'у Здорова народ! Я думаю, что сегодня отличный день чтобы вернутся в прошлое, в прошлое Российской игровой индустрии во времена её зарождения и поговорить о феноменальной игре 1998 года «Аллоды: Печать тайны» и встретится со студией NIVAL.В этом блоге мы поговорим о зарождение...

Таргетирование уведомлений, управление ценами в разных регионах и другие возможности HMS для интернет-платежей В Китае мобильным интернетом пользуется почти 900 млн человек, и 768 млн из них совершают покупки через системы онлайн-платежей. За этими огромными цифрами не только высокая нагрузка на платёжные сети и серверы, но и потребность мобильных разработчиков в удобных инструмент...

[Перевод] Математическая логика, способная помочь проверить на коронавирус больше людей Быстрое тестирование пациентов во время пандемии имеет огромную важность. Но когда тестов на COVID-19 [в Британии] не хватает, или тестирование идёт медленно – нельзя ли придумать способ улучшить этот процесс? Я, как математик и инженер, задал себе вопрос – может ли теорет...

[Из песочницы] Spring Boot и Filebeat локально без регистрации и смс В данном руководстве мы рассмотрим подключение и настройку системы логирования в Spring Boot проекте и отправку логов в ELK с помощью Filebeat. Руководство предназначено для разработчиков начального уровня. Логирование и зачем оно нужно Когда я только начинал работать програ...

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

[Перевод] Как избавиться от if-else при помощи команд и обработчиков В этой статье я расскажу, как использую команды и обработчики, чтобы код был удобным и аккуратным. Я стремился не избавиться от if-elseif-else, а найти более подходящее решение. Помните, что один-единственный подход не позволит полностью избавиться от традиционного програ...

Создаем и запускаем в облаке мощный и главное бесплатный сервер Minecraft Пару месяцев назад, когда Oracle представила в своем публичном облаке двухсокетные серверы с 80-ядерными ARM-процессорами, в англоязычном блоге Тодда Шарпа появилась статья о том, как запустить сервер Minecraft в облаке. Теперь, когда Oracle добавил эти процессоры в Always F...

Безопасное хранение ключей от сервиса в I2P Сталкиваясь с потребностью в скрытом сервисе I2P, большинство вынуждено пользоваться услугами хостинг-провайдеров. Например, потому что нет возможности обеспечить хороший аптайм ресурса на домашнем компьютере. Использование услуг дата-центра подразумевает доверие: мы надеемс...

[Перевод] 10 расширений для VS Code, без которых я не могу программировать VS Code — мой любимый редактор кода. Это — самый популярный из существующих редакторов, возможности которого можно расширять практически до бесконечности. И, что удивительно, разработала его компания Microsoft. Я полагаю, что ни один из других редакторов и ни одна из других ...

BlazingPizza: приложение на Blazor от начала и до конца. Часть 2. Добавляем компонент Привет всем! Всем тем, кто хочет узнать о Blazor немного больше. Сегодня мы продолжим создание нашего сайта для пиццерии, а именно, создадим web api контроллер и попробуем отобразить данные которые поступают из него на компоненте Blazor. Поскольку наше приложение о пицце, т...

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

[Из песочницы] Конвертация текстовых документов в xml на С# Недавно мне пришлось столкнуться с необходимостью достать текст из офисных документов (docx, xlsx, rtf, doc, xls, odt и ods). Задача осложнялась требованием представить текст в формате xml без мусора с максимально удобной для дальнейшего парсинга структурой. Решение использо...

Что такое Immutable Infrastructure Меня зовут Никита, я системный инженер в компании SEMrush. И в этой статье я расскажу вам, что такое Immutable Infrastructure, какие у этого подхода есть преимущества и недостатки и как мы его используем в компании. Если вы ни разу не слышали такое словосочетание, то усажив...

DI из ада Все мы любим Spring. Или не любим. Но по крайней мере знаем. Если вы Java-программист, то вероятно используете этот фреймворк каждый день в своей работе. Spring — это огромная платформа, которая предоставляет большой функционал. Тем не менее во главе угла стоят две вещи — эт...

Эх, айти, куда ж ты котишься?  Ну что, Хабр, прошло полгода какого-то очень неприятного 2020, до конца десятилетия ещё чуть-чуть — и уже сегодня я могу сказать: это десятилетие прежде всего стало золотым веком IT-сферы. Накопленный опыт, новые эксперименты и крутое железо сделали своё дело. Казалось, что ...

Как упростить жизнь ИТ-разработчику и ускорить time-to-market с месяца до двух дней На эту тему мы провели вместе с Dell Technologies и AMD онлайн-митап 29 октября, который в общей сложности увидело более 150 ИТ-разработчиков — начинающих и не очень. Ниже запись мероприятия на случай, если вы хотели присоедениться и посмотреть, но не смогли. Читать даль...

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

Как и зачем выстраивать коммуникации с пользователями Пользователи всегда узнают о проблеме. И будет лучше, если от вас. Потому что, как сказал Чак Паланик: «То, что мы не понимаем, мы можем понимать, как нам угодно». Если мы получаем обрывки информации о какой-то недоступности, мы трактуем ее как угодно, делая выводы, далекие ...

Браузер на страже API-запросов Команде разработчиков, создающей одностраничное приложение (SPA), рано или поздно придётся столкнуться с ограничениями браузерной безопасности. С одной стороны, нужно сделать так, чтобы фронтенд-сторона могла беспрепятственно общаться с бэкенд API-сервером, а с другой — защ...

Как стать мидл python-разработчиком за полгода: опыт выпускников Практикума В июле 2020 года Яндекс.Практикум запустил курс для бэкенд-разработчиков, которые хотят улучшить свои навыки, а не учиться с нуля — «Мидл python-разработчик». Что происходит с выпускниками, когда они завершают обучение и получают диплом? Достаточно ли знаний, полученных на к...

Дайджест новостей машинного обучения и искусственного интеллекта за ноябрь Привет, Хабр! Отфильтровав для вас большое количество источников и подписок, сегодня собрал все наиболее значимые новости из мира будущего, машинного обучения, роботов и искусственного интеллекта за ноябрь. Не забудьте поделиться с коллегами или просто с теми, кому интересны...

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

PVS-Studio 7.14: межмодульный анализ в С++ и плагин для JetBrains CLion Помимо увеличения количества диагностик с каждым новым релизом анализатор PVS-Studio развивается и в инфраструктурном плане. В данном случае это плагин для среды разработки JetBrains CLion, межмодульный анализ С++ проектов, ускорение работы ядра C# анализатора. Читать дальш...

Как нанять трех разработчиков Scala в штат за три месяца Безработица, замена человека роботами, сокращения, невозможность найти стабильную и регулярно и хорошо оплачиваемую работу – о чем это они? Что за фантастика? Или эта статья родом из советского прошлого – о том, как тяжело жить при капитализме? Сегодня ИТ-компании страдают ...

[Из песочницы] Создаем EXE Самоизоляция это отличное время приступить к тому, что требует много времени и сил. Поэтому я решил заняться тем, чем всегда хотел — написать свой компилятор. Сейчас он способен собрать Hello World, но в этой статье я хочу рассказать не про парсинг и внутреннее устройство ...

Мой опыт разработки на языке Nim Привет, Хабр! Уже довольно давно я пишу свой игровой фреймворк — такой pet project для души. А так как для души нужно выбирать что-то, что нравится (а в данном случае — на чём нравится писать), то выбор мой пал на nim. В этой статье я хочу поговорить именно про nim, про его...

Под защитой: 5 фишек, которые максимально обезопасят ваш ноутбук и упростят работу с ним Хороший ноутбук, несмотря на то, что в наши дни он есть почти у каждого, удовольствие не из дешевых. Поэтому, покупая устройство, все мы хотим, чтобы оно служило долго, было максимально удобным в использовании и безопасным, в том числе для нас самих. Современные производител...

Обзор Kalm — веб-интерфейса для деплоя приложений и управления ими в Kubernetes Kalm — бесплатное приложение с открытым исходным кодом. Представляет собой стандартный контроллер Kubernetes, который можно установить в любой кластер (версии v1.15 и выше), включая Amazon EKS и Google GKE. Основная цель Kalm — предоставить разработчикам простой пользователь...

[Перевод] Лучшие методики журналирования enterprise-приложений (с точки зрения инженера поддержки) Журналы приложений раскрывают информацию о внешних и внутренних событиях, которые видит приложение в ходе исполнения. Когда при деплое возникает баг, взлом или аномалия, журналы — самое полезное и надёжное доказательство для проведения анализа причин инцидента. Давайте раз...

Фоновые задачи на Faust, Часть I: Введение Как я дошёл до жизни такой? Не так давно мне пришлось работать над бэкендом высоко нагруженного проекта, в котором нужно было организовать регулярное выполнение большого количества фоновых задач со сложными вычислениями и запросами на сторонние сервисы. Проект асинхронный и...

Продвинутая Helm-шаблонизация: выжимаем максимум Стандартной Helm-библиотеки и привычных подходов к написанию Helm-чартов обычно хватает для автоматизации несложных приложений. Но когда количество и сложность Helm-чартов растут, то минималистичных Go-шаблонов и неоднозначной стандартной Helm-библиотеки быстро перестаёт х...

Angular компоненты со встраиваемым контентом Когда создаешь новые компоненты при разработке на Angular, стремишься их создать таким образом, чтобы их можно было переиспользовать много раз. Точно так же, как и при разработке ПО, программист стремится сделать свой код максимально переиспользуемым. При этом хочется иметь ...

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

Автоматизация работы сетевого администратора, часть 2. Практические кейсы с Telnetlib Продолжаем погружаться в мир автоматизации работы с сетевым оборудованием. В первой части познакомились с теоретическими основами, но это лишь необходимый минимум. Сегодня же мы продолжим знакомиться с инструментами, в частности с модулем ЯП (язык программирования) Python - ...

Тестирование AI и стартаперство: интервью с Адамом Карми (Applitools) Есть популярная фраза «scratch your own itch»: если хочешь создать новый продукт, делай такой, которого тебе самому не хватает. В этом случае лучше всего понимаешь, как сделать его хорошо. Адам Карми остро ощущал нехватку инструмента для визуального тестирования, который по...

Ask me anything! Задай вопрос Android-команде Badoo Предлагаем продолжить добрую традицию Ask me anything на Хабре и поговорить про разработку Android-приложений. Сегодня и завтра Android-команда Badoo будет на связи и ответит на любые вопросы о разработке и тестировании приложений с многомиллионной аудиторией, даст советы на...

Ну купиии! Или применение AI для рекомендаций Все же тут страдают от спама? Обвешаны адблокерами, white-листами, спам-фильтрами? Я точно сильно страдал от бесконечных предложений, но в какой-то момент стала появляться и полезная информация, причем еще в нужные моменты.  Став руководителем проектов по предиктивной анали...

Прочти меня: код, который не выбесит соседа Сегодня поговорим о том, как писать код, чтобы он не злил окружающих и не раздражал вас спустя годы работы, когда вы снова попытаетесь его прочесть. Я расскажу о подходах, которые мы используем в Яндекс.Такси для написания читаемого кода на C++, Python, JavaScript и други...

Предвзятый и субъективный взгляд на резюме разработчика Привет! Недавно мои коллеги из hh.ru провели вебинар, где разбирали резюме разработчика. Я решил поделиться своей точкой зрения на этот счет. В этой статье мы поговорим о том, как разработчики создают резюме. Я расскажу о том, что меня, как интервьюера, мотивировало и вооду...

Погружение во внедрение зависимостей (DI), или как взломать Матрицу Давным-давно в далекой Галактике, когда сестры Вачовски еще были братьями, искусственный разум в лице Архитектора поработил человечество и создал Матрицу… Всем привет, это снова Максим Кравец из Holyweb, и сегодня я хочу поговорить про Dependency Injection, то есть про внедр...

[Перевод] Талантливый мистер Саймон: как уникальные способности и 3D-печать могут изменить производственный процесс Источник sinterit.com Саймон Грабовски — молодой талантливый техник, лишь недавно начавший свою профессиональную деятельность. Несколько месяцев назад Саймон стал заниматься сборкой 3D-принтеров. Сегодня молодой человек создаёт инструменты, предназначенные для оптимизации ...

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

[Перевод] Легенда на ладони: создаём крошечный компьютер PDP11 Введение 2020 год был странным для всех в мире. Конкретно в моём случае мне пришлось находиться далеко от своего дома в Шанхае, потому что, когда COVID нанёс удар, мы были в Европе, и Китай усложнил процедуру пересечения границ примерно до конца года. Отсутствие доступа к ...

Как мы считаем людей с помощью компьютерного зрения Фото из открытых источников Массовые скопления людей создают проблемы в самых разных областях (ритейл, госслужбы, банки, застройщики). Заказчикам необходимо объединять и мониторить информацию о количестве людей во множестве мест: в офисах обслуживания, административных пом...

Как я подружил BPMN и Bitbucket Привет, Хабр! Я техлид в компании ДомКлик. В основном занимаюсь backend-разработкой. Мне периодически приходится погружаться и во front-разработку, но этого не происходило уже более двух лет. Сегодня я расскажу, как мне пришлось заняться front-разработкой для создания плагин...

Видеообзор беспроводного суперпылесоса Samsung PowerStick Jet Не часто в руки редакции gg попадают такие сногсшибательные гаджеты. Тема использования мощных современных устройств для уборки дома становится все популярнее, и мы не смогли остаться в стороне от процесса. В этом видеообзоре мы познакомим вас с технологическим чудом —...

[Из песочницы] Как удерживать внимание игрока в игре Здравствуйте, меня зовут Энона, я начинающий человек-оркестр. Сегодня я бы хотела поговорить о важности одной игровой характеристики. Она описывает, насколько хорошо игра справляется с тем, чтобы не отпускать внимание игрока ни на секунду. Давайте для простоты назовём эту х...

Как мы делали ядро инвестиционного бизнеса «Альфа-Банка» на базе Tarantool Кадр из фильма «Our Secret Universe: The Hidden Life of the Cell» Инвестиционный бизнес — это одно из сложнейших направлений в банковском мире, потому что здесь есть не только кредиты, займы и депозиты, но и ценные бумаги, валюта, товары, деривативы и всякие сложности в ви...

Можно ли запускать приложения для Android на Windows У вас когда-нибудь появлялась необходимость запустить Android-приложение на Windows? У меня, честно говоря, ни разу. Но ведь я совершенно не тяну на звание бенчмарка, и, если эта тема неактуальна для меня, совершенно не значит, что она неактуальна для других. Это ясно по по...

Fintech на практике: как Quadcode технологии для трейдинга и банкинга разрабатывает Привет, самое хардовое IT комьюнити Рунета, я Саша, главный архитектор в компании Quadcode. Мы пришли на Хабр для того, чтобы показать “кухню” Fintech - варимся мы во всем этом много лет, поэтому уже можем поделиться опытом. В блоге будем рассказывать об архитектурах, технол...

На что идет Foxconn, чтобы заработать на Apple больше Foxconn могли поймать на обмане Apple и незаконном обогащении Оказывается, Foxconn, компания, известная сборкой айфонов, включая iPhone 12, с завидной регулярностью обманывала Apple и всячески пыталась поживиться за счет концерна из Купертино. По слухам, именно из-за этого о...

[Перевод] API как продукт: как монетизировать свою работу, когда разбираешься только в бэкенде В этой статье я перескажу свой опыт создания, развёртывания и продажи API на специализированном маркетплейсе. Мне не пришлось делать вебсайт или придумывать, как внедрить решение для обработки платежей – я просто написал код и развернул API. Чтобы создать стартап, нужна к...

Видеообзор вертикального пылесоса ROIDMI NEX X20 Обычно мы рассказываем про гаджеты, которые помогают нам отдыхать, работать, следить за своим здоровьем и заниматься спортом. Но сделать приятнее и удобнее можно практически любой процесс. Поэтому сегодня поговорим о рутинной уборке и о том, как в этом может помочь вертикаль...

Сказ о том, как мы структурировали внутренние коммуникации ВКонтакте Небольшим компаниям для налаживания внутренних коммуникаций не нужны отдельные специалисты или инструменты — все ответы находятся, стоит лишь дёрнуть за рукав любого старожила. Метод работает на отлично до тех пор, пока команда не начинает расти. Чем больше сотрудников, тем ...

Как настроить дашборды в Azure DevOps, чтобы они приносили пользу Если вы когда-нибудь использовали проектную аналитику, то наверняка в какой-то момент разочаровывались в этом инструменте. Многие PM-ы со временем забрасывают дашборды, потому что данные оказывается сложно применить для пользы дела. Мы тоже через это прошли и теперь хотим по...

Подготовка к Ludum Dare Мероприятие Ludum Dare, регулярно проводимое 2 раза в год (а чуть ранее 3 раза в год) скоро не за горами и уже сейчас, за несколько недель до старта, можно настраиваться на нужный лад, обмениваться планами и идеями на грядущий 46-ой LD (официальная дата на сайте — 18-21 апре...

[Перевод] Видеодомофон, основанный на Raspberry Pi Автор статьи, перевод которой мы сегодня публикуем, хочет поделиться рассказом о создании видеодомофона, основанного на Raspberry Pi 3. Устройство работает в паре с iOS-телефоном, отправляя на него Push-уведомления когда кто-то нажимает на кнопку домофона. Система позволяет ...

KODI: собираем удобный и функциональный медиацентр для дома. Часть 9. Spotify Продолжаем тему интеграции в наш медиацентр онлайн-сервисов прослушивания музыки. Ранее мы уже «подружили» медиацентр KODI с сервисом Яндекс.Музыка. Сегодня на очереди не менее популярный сервис – Spotify. Читать дальше →

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

Мотивация персонала: материальная и нематериальная Ох, уж эта мотивация! Какая хитрая и гибкая штука. Сколько подводных камней и тонкостей скрыто под этим термином. Как умело манипулируют персоналом матёрые HR и руководители. Но я вам сегодня расскажу, что работает, а что нет. Где в холостую, а где в самую цель. Конечно,...

[Из песочницы] Как выучить английский самостоятельно, если нет времени Привет, читатель! Предлагаю тебе хотя бы на 5 минут ни на что не отвлекаясь прочитать начало статьи дабы полностью ощутить главное правило, которое поможет тебе достичь любого уровня в английском. Когда-то задумывался над тем почему у тебя не хватает времени и сил на то что...

Как соблюсти требования 152-ФЗ, защитить персональные данные своих клиентов и не наступить на наши грабли   По российским законам любая компания, работающая с личными данными своих пользователей в России, становится оператором ПДн, хочет она того или нет. Это накладывает на нее ряд формальных и процедурных обязательств, которые не каждый бизнес может или хочет нести самостоятель...

[Перевод] Эмуляция компьютера: интерпретатор CHIP-8 Меня, по ряду причин, всегда завораживала эмуляция. Программа, которая выполняет другую программу… Мне эта идея кажется невероятно привлекательной. И у меня такое ощущение, что тот, кто напишет подобную программу, не пожалеет ни об одной минуте потраченного на это времени....

[Из песочницы] Что такое Unity Asset Store и как на нем зарабатывать? Доброго времени суток, Habr! Я являюсь паблишером Asset Store уже 4 года и хочу поделиться с вами своим опытом. Расскажу вам что такое Unity Asset Store глазами программиста и что нужно знать для создания ассета. Итак, что же такое этот Unity Asset Store? Это магазин в котор...

[Перевод] Пять важных уроков о балансе в играх Все игры, которые мы создавали нашей студией Ronimo, делали большой упор на соревновательный многопользовательский режим. Разработка дизайна, тестирование и итеративное улучшение этих игр, и в особенности нашего самого большого хита Awesomenauts, позволили нам узнать много ...

[Из песочницы] 5 лучших сервисов временной почты: личный опыт Сделать сервис временной почты по-настоящему комфортным для себя — задача не из легких. Казалось бы, что сложного: загуглил запрос “временная почта”, получил кучу сайтов в выдаче, выбрал ящик и пошел дальше в Интернет по своим делам. Но когда есть необходимость пользоваться ...

Создание своего Publisher'a в Combine Сегодня я хотел бы показать вам, как создать свой собственный Publisher в новом фреймворке от Apple Combine. Читать дальше →

Тонкости работы с геолокацией в iOS Из этой статьи вы узнаете о возможностях работы геолокации, когда приложение свёрнуто или закрыто; о тонкостях работы с авторизацией; о нововведениях в iOS 15, затрагивающих геолокацию. Читать далее

Интересные проекты на Raspberry Pi: от счетчика Гейгера до коммерческих серверов Raspberry Pi, наверное, самые популярные одноплатники в мире. Большинство моделей недорогие, а их возможности позволяют использовать платы в очень широком спектре самых разных проектов. Последние могут быть как очень простыми — например, управление светодиодной подсветкой, ...

Сервис на языке Dart: flutter web-страница Оглавление 1. Введение 2. Backend 2.1. Инфраструктура. 2.2. Доменное имя. SSL 2.3. Серверное приложение на Дарт ... 3. Web 3.1. FlutterWeb страница (мы находимся здесь) ... 4. Mobile ... Подготовка В пр...

Как создать шаблон описания системы и начать его использовать Когда в IT-компании работают 6 человек, которые пилят одну систему и обсуждают её в кулуарах, описание системы и документация кажутся ненужными. Но когда систем уже более 100, без описания не обойтись. Ведь непродуманное изменение UI может остановить создание заказов. Мы соз...

Почему бизнес хочет DevOps и что нужно знать инженеру, чтобы говорить с ним на одном языке Последние несколько лет мы при каждом удобном случае снова и снова обсуждаем, что же такое DevOps. Это уже порядком надоело, но раз всё еще происходит, значит есть проблема — проблема взаимодействия бизнеса и инженеров. Я часто вижу, как люди, пришедшие к применению DevOps ...

Использование docker multi-stage для сборки windows образов Всем привет! Меня зовут Андрей, и я работаю DevOps инженером в компании Exness в команде разработки. Моя основная деятельность связана со сборкой, деплоем и поддержкой приложений в docker под операционной системой Linux (далее — ОС). Не так давно у меня появилась задача с те...

Кто такой кросс-системный тестировщик и почему он не должен быть «agile»? Методология agile вносит свои правила в процесс тестирования ПО, и каждая команда самостоятельно разрабатывает, проверяет и деплоит свои сервисы. Однако в сложных системах, когда для поддержки бизнес-процесса необходима слаженная работа десятков сервисов, возникает потребн...

Как мы проверяли производительность новых процессоров в облаке для 1С по тесту Гилёва Америку не откроем, если скажем, что виртуальные машины на новых процессорах всегда производительнее оборудования на процессорах старого поколения. Интереснее другое: при анализе возможностей систем, казалось бы, очень близких по своим техническим характеристикам, результа...

[Перевод] Задачки по программированию — плохой способ оценки квалификации Senior Developer'а Как и многие другие родившиеся в Канаде дети, я прошёл обучение в Королевской консерватории. Это не только физическое здание, где можно заниматься и выступать, но и стандартизированная учебная программа, а так же сертифицированные учителя, доступные практически в любом город...

Три кита лингвистического анализа, без которых невозможна работа InfoWatch Traffic Monitor Всем привет! Сегодня мы поговорим о том, как лингвистика интегрирована в работу DLP-системы и как она помогает нам оберегать важные данные от атак злоумышленников. В последнее время существенно выросла потребность компаний в защите данных от утечек конфиденциальной информ...

Как я искала IT-Волшебника Когда занимаешься подбором IT-специалистов для различных компаний самое сложное выяснить кто нужен заказчику, с какими скиллами и чем, собственно, он будет заниматься. Неделю назад ко мне попал заказ — крупная компания в поиске Функционального архитектора. Чтобы вы понимали...

Физические итоги года — 2020 Привет, Хабр! Ушедший год оказался непростым, но тем не менее богатым и на фундаментальные открытия, и на технологические прорывы. Сегодня поговорим о самых запомнившихся результатах. Credit: scitechdaily.com Читать дальше →

Зачем нужны сообщества поддержки женщин, строящих карьеру в IT На этой неделе в наших соцсетях выступала Даша Губанова, основательница сообщества Girls Do IT. Дарья более 4-х лет занимается развитием digital-продуктов и запуском международных проектов в EdTech стартапах (StudyFree, ex-Qmarketing Academy, ex-Skyeng). Кроме того, у Даш...

Борьба с холодным стартом serverless-функций: «подогрев» среды и оптимизация запуска контейнеров Основная претензия при работе с serverless — время холодного старта, которым нельзя управлять «из коробки». Если функция стартует впервые за последние 5–25 минут, скорее всего запуск будет долгим — сотни миллисекунд. Причём статически типизированные языки имеют в разы больше...

[recovery mode] Добавляем очень быстрый JSON API к нашему приложению Все наши микросервисы, вне зависимости от того, как они общаются друг с другом, предоставляют своего рода heartbeat интерфейсы, чтобы система мониторинга могла в любой момент узнать, как там дела; типа общего состояния здоровья и каких-то специфичных частностей, скажем, конт...

Pet-проекты: прихоть, инструмент самосовершенствования или попытка отвлечься? Привет, Хабр! Меня зовут Кирилл Кошаев, я Java-разработчик в «Газпром информ» и преподаватель профессии Java-разработчик PRO на образовательной платформе Skillbox. Сегодня хотел бы поговорить о такой интересной теме, как pet-проекты. Здесь, на Хабре, они есть у многих, у м...

Kubernetes-in-Kubernetes и ферма серверов с загрузкой по PXE Когда у вас 2 собственных дата-центра, тысячи железных серверов, виртуалки и хостинг для сотен тысяч сайтов, Kubernetes может существенно упростить управление всем этим добром. Как показала практика, с помощью Kubernetes можно декларативно описывать и управлять не только при...

WhatsApp пообещала не отключать пользователей, которые не приняли новые правила конфиденциальности, но может ввести ограничения Компания WhatsApp заявила, что не станет отключать пользователей, которые не хотят принимать новые правила конфиденциальности сервиса. Правда, в будущем несогласные могут столкнуться с ограничениями функциональности платформы. Об этом пишет CNET. Александр Манзюк, ТАСС...

Роботизируем параллельную обработку тысяч документов: практический пример Существует сегмент бизнес-процессов, которые даже будучи полностью автоматизированными, требуют обязательного вовлечения человека. Например, робот занес данные контрагента в платежку, но подтвердить банку денежный перевод может только человек. Такие фрагментарные процессы, к...

Перевести речь в текст на iOS, используя Speech framework Сегодня мы будем переводить речь в текст. Сначалa убедитесь, что у вас установлена последняя версия iOS и Xcode. Для Speech Framework нужна минимум iOS 10. Я создал проект с поддержкой SwiftUI, для этого нужна iOS 13. Но это не обязательно, можете использовать Storyboard. Е...

Apple догадалась сделать клавиатуру для iPad нормальной Smart Keyboard станет по-настоящему удобной благодаря «ножницам» Преемственность – это одна из ключевых особенностей продукции Apple. Поэтому даже если положить рядом несколько устройств разных производителей и, закрасив логотипы, предложить несведущему человеку оп...

Сканер для вен Чтобы сделать укол, часто нужно найти вену. Чтобы поставить катетер — тоже. Но зачастую основная сложность заключается не в том, чтобы ввести лекарство, а в обнаружении вены. У многих пациентов сосуды слабо видны под кожей (а то и вовсе не видны). И это касается не только ...

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

14 практических советов по использованию Tableau Всем привет, меня зовут Меркурьев Михаил, я продуктовый аналитик в ManyChat. Год назад мы решили использовать Tableau как основной BI инструмент в компании и столкнулись с рядом проблем, касающихся того, что нужно наладить эффективную работу с инструментом для аналитиков, ме...

Ортодонтия во взрослом возрасте: зачем вам это надо и что лучше знать до начала лечения Примерно так в конце XIX века выпрямляли зубы В современном мире не принято умирать от кривых зубов. Максимум, что с вами случится, — станет не очень приятно широко открывать рот, вылетит челюстной сустав, вырастут амортизационные издержки на периодонт зубов, да и со стома...

Изучаем Kubernetes: базовая программа 14-16 мая, продвинутая 18-20 мая Если вы уже работаете с Kubernetes, посмотрите на программу продвинутого курса. Там будет много тонкостей и сложностей, включая большой новый блок по Istio. Если вам нужно быстро познакомиться с Kubernetes, чтобы влиться в команду или начать самостоятельные эксперименты не с...

Реальный опыт перевода почти всех сотрудников на удаленку Привет, Хабр. Сегодня я хочу поделиться опытом нашей компании по переводу сотрудников на удаленную работу. Нет, мы это делали не в связи с карантином по коронавирусу, но в результате оказались полностью готовы к тем мерам, которые рекомендованы бизнесу в крупных городах. Так...

Самые необычные виды хостинга: домашний компьютер, Raspberry Pi и чужие серверы Веб-сервер на Raspberry Pi Чтобы выложить информацию в открытый доступ, необязательно покупать аккаунт у хостинг-провайдера. Существует много альтернативных вариантов, в том числе бесплатных. Есть бесплатные хостинги для текста, картинок и файлов, начиная с Github Pages. ...

[Перевод] 10 no-code-платформ, на которые стоит обратить внимание в 2021 году No-code-инструменты позволяют обычным пользователям ПК создавать веб-сайты и приложения без необходимости написания программного кода. До того момента, когда подобные инструменты достаточно хорошо развились и достаточно сильно распространились, разработка простого веб-прилож...

Как мы нарисовали на карте несколько тысяч интерактивных объектов без вреда для перформанса Привет, меня зовут Дарья, и я Frontend-разработчик юнита Гео в Авито. Хочу поделиться опытом того, как мы сделали на вебе новый поиск по карте, заменив кластеры более удобным решением и сняв ограничение на количество отображаемых объектов. В статье я расс...

Google выпустит новый мессенджер на основе Gmail, Google Drive и Hangouts Google хочет создать новый мессенджер, но только для корпораций Google очень любит экспериментировать с интеграцией своих сервисов друг с другом. В рамках этой инициативы компания уже встроила Google Assistant в браузер Chrome, снабдила сервис «Google Фото» технологией распо...

Про очень терпеливую девушку, которой хотели удалить 6 зубов Давайте разберём ещё один медицинский случай, в котором к нам пришла девушка 25 лет, её врач в региональной стоматологии хотел удалить 6 зубов после недолеченного пульпита. Поскольку у нас технический уровень всё же чуть выше, четыре из них удалось спасти. На фотографии э...

[Перевод] Каковы шансы Китая стать независимым от американских полупроводников К 2025 году доля производимых в Китае полупроводников должна вырасти до 70%. Китай в настоящее время может производить только 20% процентов чипов для нужд местной индустрии информационных технологий. Но к 2025 году ему нужно покрыть 70 процентов своих потребностей. Похоже...

Фронт без релиз-инженера, или Как я перестал бояться и полюбил деплой Привет, я фронт, и за десять лет разработки в энтерпрайзах, стартапах и некрупных компаниях я впервые деплою свой код сам и отвечаю за его эксплуатацию, а не только за проектирование и разработку сервиса. О том, как я до этого дошел и почему не собираюсь останавливаться, в э...

[Перевод] Почему никогда не стоит использовать Proof of Concept в продакшене Никогда не встречал разработчика, не любящего создавать всевозможные proof of concept (POC). Возможность построить что-то новое с нуля, чтобы протестировать теорию/процесс/технологию… Сама мысль об этом вдохновляет меня. Есть в них что-то, что стимулирует наше творческое ...

Мёртвый код: найти и обезвредить Меня зовут Данил Мухаметзянов, я работаю бэкенд-разработчиком в Badoo уже семь лет. За это время я успел создать и изменить большое количество кода. Настолько большое, что в один прекрасный день ко мне подошёл руководитель и сказал: «Квота закончилась. Чтобы что-то добавит...

[Перевод] Неуважительный дизайн «Да, вы постоянно выкатываете обновления, но вы выкатываете обновления, не проявляя уважение.» Я перестал использовать Reddit в основном потому, что больше не хотел поддерживать сайт, который начал агрессивно использовать приемы «неуважительного дизайна». Более того, они ...

Кому хорошо в кризис: примеры ИТ-компаний, чьи акции растут во время пандемии Изображение: Unsplash В последнее время в интернете активно пишут о влиянии пандемии коронавируса и связанных с ней карантинных мер на бизнес. Многие отрасли фактически были остановлены – например, туризм – или серьезно сократили активность – например, ресторанный бизнес,...

[Перевод] В Google признали, что Kubernetes настолько сложен, что им пришлось выкатить“Автопилот”, чтобы всё делать за вас От переводчика: Как вы можете знать, мы занимаемся разработкой open source фреймворка и средств разработки. Неотъемлемой частью процесса разработки приложений является развертывание, и для нас крайне важно обеспечить простой и понятный механизм выкатки решения, без излишней...

Новое слово в VDI  В сегодняшней нестабильной глобальной среде компании разного профиля всё активнее используют различные методы доступа к критически важным для бизнеса приложениям и данным. В частности, по ряду параметров оптимальным решением становится VDI — инфраструктура виртуальных рабочи...

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

Service Discovery в распределенных системах на примере Consul. Александр Сигачев Предлагаю ознакомиться с расшифровкой доклада Александра Сигачева Service Discovery в распределенных системах на примере Consul. Service Discovery создан для того, чтобы с минимальными затратами можно подключить новое приложение в уже существующее наше окружение. Используя S...

[Перевод] CSS-функции min(), max() и clamp() Поддержка CSS-функций сравнения min(), max() и clamp() появилась в Firefox 8 апреля 2020 года. Это означает, что данные функции теперь поддерживаются во всех основных браузерах. Эти CSS-функции расширяют наши возможности по созданию динамических макетов и по проектированию б...

[Перевод] Исследование CSS-свойства flex Вам когда-нибудь было интересно узнать о том, как работает сокращённое CSS-свойство flex? Оно позволяет задавать значения свойств flex-grow, flex-shrink и flex-basis. Я обратил внимание на то, что данное свойство чаще всего используют в виде flex: 1, что позволяет flex-элеме...

[Перевод] Заменяем User Story на Job Story Всем привет. Перевели еще один интересный материал для студентов курса «Product Manager IT-проектов». Приятного прочтения Раньше, я уже писал о проблемах с user story (пользовательскими историями). В те времена я считал, что лучше просто попросить команду обсудить предлаг...

Think SRE: смотрим на проекты глазами SRE-инженера В отзывах о Слёрме Kubernetes звучала фраза: «Kubernetes оказался проще, чем я думал». Сейчас уже не звучит, мифа о сложности k8s больше нет. Он перешел в разряд инструментов easy to learn, hard to master. Мы хотим повторить то же самое с SRE. Показать, что SRE проще и понят...

Разработчики Perekrestok.ru. Что мы делаем и кого ищем в команды Сегодня мы хотим поговорить о найме людей в IT-команды онлайн-супермаркета Perekrestok.ru и о том, как устроена наша работа «внутри». Ритейл – отрасль со своей интересной спецификой, а сейчас в том числе и от нашей работы зависит, будут ли тысячи людей каждый день обеспечены...

То, чего не может быть: самые необычные версии обычных игровых консолей Мы с вами давно привыкли к тому, что на протяжении своего жизненного цикла игровые консоли остаются практически неизменными. Да, они подвергаются рестайлингу, выходят в разных комплектациях и лимитированных версиях, приуроченных к громким релизам или юбилею платформы, и да...

Как выжить SQL-базе в 21 веке: облака, Kubernetes и PostgreSQL multimaster Привет, хабровчане. Сегодня стартуют занятия в первой группе курса «PostgreSQL». В связи с этим, хотим рассказать вам о том, как проходил открытый вебинар по данному курсу. В очередном открытом уроке поговорили о том, с какими вызовами столкнулись SQL-базы в эру облаков и...

Предварительный обзор OPPO Reno3 Pro 5G. Лучший в своем классе В последнее время буквально каждый смартфон, выходящий на рынок, выглядит как и все остальные. Однако компания OPPO отлично справляется с конкурентами, выпуская достаточно крутые устройства, способные изменить впечатления пользователей о современном рынке. Сегодня мы о данно...

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

Идеальное Vue приложение на Typescript Пока Vue3 официально еще не вышел, а продакшене в основном 2 версия - я хочу поговорить о типизации и том, что она все еще не идеальна во Vue. И сегодня мы попробуем создать идеальное приложение с типизацией на typescript сделав упор на code style, пропагандируя vue style gu...

Как написать расширение для SQLite в примерах Если при работе с SQLite вам встречалась ситуация, когда не нашлось нужного функционала, то добро пожаловать под кат. И нет, хранимые процедуры добавить нельзя. Читать дальше →

[Перевод] Что думают специалисты по роботизированным автомобилям про Автопилот от Tesla Об авторе: Брэд Тэмплтон — инженер-программист, евангелист робоавтомобилей с 2007 года, работал над Гуглокаром в его ранние годы. Основатель ClariNet, почетный председатель Electronic Frontier Foundation и директор Foresight Institute, основатель факультета в Singularity Uni...

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

Записки pentester’а: случаи на охоте – 2 Продолжим разговор за интересные случаи в работе пентестеров. В прошлом посте речь шла о внешних тестированиях на проникновение, сегодня же расскажем о наиболее занимательных внутренних пентестах, реализованных нами за последнее время. Суть их в том, что мы должны были, на...

ILUШA vs Dynamixel. Выбор сервопривода с обратной связью Сервопривод отечественного производства Илюша. Мы разрабатываем робот для сбора мячей для гольфа. Для открытия люка сброса мячей нам требуется сервопривод. Мы опробовали огромное количество и сегодня хотим рассказать Вам об очень интересном аналоге Dynamixel который более...

[Перевод] Как стать DevOps инженером за полгода или даже быстрее. Часть 1. Введение Целевая аудитория Вы разработчик, который хочет повернуть свою карьеру в сторону более совершенной модели DevOps? Вы являетесь классическим Ops-инженером и хотели бы получить представление о том, что означит DevOps? Или же вы не являетесь ни тем, ни другим и, потратив некото...

Создание программного продукта и управление его развитием. Позиционирование продукта Привет Хабр! Сегодня в рамках курса продакт-менеджмента от Acronis мы поговорим о том, как нужно позиционировать продукт, и чем это отличается от позиционирования бренда. Кроме этого речь пойдет об уникальных компетенциях, конкурентных преимуществах и о том, что является сам...

Сезон охоты открыт: разбираемся в тонкостях Threat Hunting Threat Hunting, он же проактивный поиск угроз, регулярно становится предметом дискуссий ИБ-специалистов. Споры возникают как вокруг того, что именно считать хантингом, так и о том, какие методы и подходы лучше использовать. Под катом мы рассмотрим все эти элементы и поделимс...

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

Эволюция конфигурации .NET Каждый программист представлял — ну или может хочет представить — себя пилотом самолета, когда у тебя есть огромный проект, к нему огромная панель датчиков, метрик и переключателей, с помощью которых можно легко настроить всё как надо. Ну, по крайней мере, не бежать самому...

Как конкуренты могут легко заблокировать ваш сайт Недавно мы столкнулись с ситуацией, когда ряд антивирусов (Касперский, Quttera, McAfee, Norton Safe Web, Bitdefender и несколько менее известных) начали блокировать наш сайт. Изучение ситуации привело меня к понимаю, что попасть в список блокировки крайне просто, достаточно ...

Книга «PowerShell для сисадминов» Привет, Хаброжители! PowerShell — это одновременно язык сценариев и командная оболочка, которая позволяет управлять системой и автоматизировать практически любую задачу. В книге «PowerShell для сисадминов» обладатель Microsoft MVP Адам Бертрам aka «the Automator» покажет, к...

Социальная инженерия: а вы точно курьер? В одной из последних статей мы рассуждали об изменениях в сценариях социальной инженерии, которые спровоцировала мировая пандемия COVID-19. Разумеется, все тонкости рассмотреть в рамках одной публикации невозможно, поэтому сегодня продолжим нашу беседу и расскажем об особенн...

[Перевод] Подробности об использовании CSS-функции minmax() в Grid-макетах Существует множество руководств, в которых рассматриваются общие вопросы работы с CSS Grid, с механизмом, позволяющим создавать сеточные макеты. Я и сам немало об этом писал. Но я обратил внимание на то, что у многих разработчиков возникают сложности с использованием CSS-фун...

Магия создания процессоров: травление и осаждение. Разбор Современное производство процессоров иначе как произведением технологического искусства назвать просто язык не поворачивается. Когда начинаешь разбираться с тем какое количество в нем тонкостей и элегантных технологических решений, то просто взрывается мозг. Сегодня мы вам р...

Windows Server или Linux-дистрибутивы? Выбираем серверную ОС Операционные системы — это краеугольный камень современной индустрии. С одной стороны они потребляют ценные ресурсы сервера, которые можно было бы пустить на что-нибудь более полезное. С другой — операционная система выступает оркестратором для приложений сервера и позволя...

Vivaldi 3.6 — Выходим на новый уровень Привет, Хабр! Мы любим, когда все необходимые вещи у нас под рукой. Проблема только в том, что необходимые вещи почему-то имеют свойство накапливаться, а рук у нас всего две, и через некоторое время мы понимаем, что без кардинального решения со всем этим объёмом не справи...

Сбой в работе Почты Mail.ru вызвал сложности с доступом к сервисам Яндекса Сегодня некоторые пользователи Яндекса столкнулись со сложностями в использовании сервисов компании.  Как следует из данных мониторингового сервиса Downdetector,  более половины пользователей (60%) пожаловались на проблемы с Яндекс.Почтой, еще 34% испытали трудности с с...

YARL: как Яндекс построил распределённый Rate Limiter с нулевым влиянием на время ответа сервисов Yandex Rate Limiter (далее просто YARL) — это сервис лимитирования нагрузки для распределённых сервисов. Его особенность в том, что он способен работать с миллионами квот, имея при этом очень низкие накладные расходы на проверку квоты. Если совсем кратко, это система распред...

[Перевод] Веб-технологии, которые могут работать не так, как ожидается Веб-технологии постоянно развиваются, а у разработчиков появляется возможность создавать всё более качественные и совершенные онлайн-проекты. Правда, бывает так, что какие-то новые веб-возможности работают не так, как того можно было бы ожидать. Это может касаться сфер юзаби...

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

[Из песочницы] BoxView — удобный autolayout для iOS Хочу поделиться библиотекой для эффективного построения пользовательского интерфейса iOS приложений на основе autolayout. Хотя с появлением SwiftUI актуальность autolayout быстро уменьшается, пока этот механизм все еще активно используется, и библиотека может быть полезна ...

Фантазия на тему смартфона 2022 года Производители выпускают бесчисленное множество смартфонов, но только единицы могут похвастаться хорошей камерой. А вот несколькими модулями на тыльной стороне — почти каждая модель. И смартфоностроителей не остановишь в их гонке за количеством камер. Чем больше, тем лу...

[Перевод] История о первом параличе Интернета: проклятие сигнала «занято» Многие из первых Интернет-провайдеров, в частности AOL, не были готовы предложить в середине 90-х неограниченный доступ. Такое состояние сохранялось, пока не появился неожиданный нарушитель правил: AT&T. В последнее время в контексте Интернета активно обсуждаются его «...

Использование перехватов операций для бэкапа файлов в macOS “на лету” Привет, Хабр! Меня зовут Денис Копырин, и сегодня я хочу рассказать о том, как мы решали проблему бэкапа по требованию на macOS. На самом деле интересная задача, с которой я столкнулся в институте, выросла в итоге в большой проект по работе с файловой системой в macOS и стал...

[Перевод] Анализ производительности CSS-анимаций Что выбрать для анимирования элементов веб-страниц? JavaScript или CSS? Этот вопрос однажды вынужден будет задать себе каждый веб-разработчик. А может — и не однажды. JavaScript-программисты создали множество библиотек для браузерной анимации. И, похоже, все вокруг оказалис...

[Из песочницы] Критерии оценки российских BI-систем Я уже много лет возглавляю компанию, являющуюся одним из лидеров по внедрению BI-систем в России и регулярно входящую в топ-списки аналитиков по объему бизнеса в области BI. За время работы я участвовал во внедрении BI-систем в компаниях из различных областей экономики – от ...

[Перевод] Умрёт ли FTP? Расцвет и упадок протокола Вот небольшое известие, которое вы могли пропустить, восстанавливая свою жизнь после начала кризиса COVID: из-за того, что вирус перемешал всем карты, Google пропустила выпуск Chrome версии 82. «Да кого это волнует?», — спросите вы. Ну, хотя бы пользователей FTP, или File ...

Учим ASP.NET Core новым трюкам на примере Json Rpc 2.0 Хотите добиться нестандартного поведения от aspnet core? Мне вот понадобилось добавить прозрачную поддержку Json Rpc. Расскажу о том, как я искал решения для всех хотелок, чтобы вышло красиво и удобно. Может быть, вам пригодятся знания о разных точках расширения фреймворка. ...

Как кибербезопасность трансформирует рынок ИТ (Часть 1) Как может измениться структура всей сферы ИТ, если некоторые системы защиты авторских прав, контроля, подтверждения подлинности, мониторинга и криптографии дадут нам не только более совершенные инструменты, но и принципиально новые технологии работы с данными? Это может отра...

VPN с человеческим лицом существует? Нет худа без добра! В очередной раз народная мудрость подтверждается, но только в этот раз с помощью осточертевшего коронавируса. Всех перевели на удалёнку, открыто много подписочного контента и, как следствие, в телекоме произошёл взрывной рост трафика. По разным оценкам, т...

Как мы перевели все внутренние коммуникации в компании в онлайн Как только привычный нам мир перешел в режим home office, IT-компании перевели своих сотрудников на удаленную работу, столкнувшись не только с техническими проблемами. Как поддержать боевой дух сотрудников? Что сделать для того, чтобы коллеги не грустили на «удаленке»? На эт...

Действительно простая графика в R для науки и публицистики R — очень мощный инструмент для работы со статистикой: от предварительной обработки до построения моделей любой сложности и соответствующей графики. Простой гугл-запрос выдаст большое количество литературы по тому, как «легко и быстро» использовать R. Здесь будут и огромные...

Ещё одна статья «Как я сдавал PMP». Online. Лайфхаки Привет! Меня зовут, Дмитрий, и я сдал экзамен PMP в 2020 г., онлайн. В своей статье я хочу поделиться субъективным мнением про методику подготовки к экзамену и тех мелочах, которые я хотел бы знать до начала подготовки. Без воды. Статья не содержит неэтичных способов подго...

[Из песочницы] Теория игр и её применение в жизни Привет, читатель! Некоторые из вас видели набор букв“qwerty”. Qwerty — это раскладка клавиатуры. Посмотрите на вашу клавиатуру. Вы увидите в верхнем ряду буквы «q»«w»«e»«r»«t»«y». А по какой причине нам интересна раскладка клавиатуры? Ещё давно, когда люди пользовались печ...

[Перевод] Что такое Service Mesh? И снова здравствуйте!.. В преддверии старта курса «Архитектор ПО» мы подготовили еще один полезный перевод. Service Mesh – это конфигурируемый инфраструктурный уровень с низкой задержкой, который нужен для обработки большого объема сетевых межпроцессных коммуникаций межд...

[Из песочницы] Академия плохого кода: переводы строк, пробелы и отступы Привет, Хабр! Представляю вашему вниманию перевод статьи «Dark code-style academy: line breaks, spacing, and indentation» автора zhikin2207 Привет, народ! Позвольте мне продолжить рассказ про нашу академию плохого кода. В этом посте мы раскроем другой путь замедления чте...

NLP At Scale: вся правда о предобученных моделях в Почте Mail.ru (часть 1) Антиспам Почты Mail.ru — это симбиоз продуктовой логики и инфраструктурных технологий, про который мы решили более подробно рассказать. В основе конечно же лежит инфраструктура, с помощью которой мы получаем возможности для развития моделей машинного обучения, а также платф...

Доступность — это не так просто Привет, Хабр! В предыдущей статье я рассказывал о простых случаях проблем с доступностью, исправив которые можно сделать свой сайт или web-приложение гораздо доступнее. Я упоминал о правиле 80/20 и писал о проблемах, которые при наименьших затратах дают наибольший результа...

[Перевод] Что делать, если всё ваше существо противится поставленной задаче Вопрос: Кажется, я борюсь с собой. Это происходило несколько раз и серьезно сказывалось на качестве моей жизни. Мне поручают реализовать фbxe, обычно расплывчатую, и что-то, что, как мне кажется, добавляет ненужной сложности в кодовую базу. Я пытаюсь урезонить своих менед...

[Из песочницы] Обзор Лекционного вечера по разработке игр от ВШЭ 29 января в Высшей школе экономики прошли две лекции от специалистов в сфере геймдизайна. На Хабре был анонс сего мероприятия, и я решил посетить и написать обзор. 1. Прототипирование для чайников: как сделать хорошую игру Лектор — Кулешов Степан, продюсер в Banzai Games. ...

Представляем приложение Microsoft Family Safety Автор статьи: Лиат Бен-Зур, корпоративный вице-президент, Modern Life, Search and Devices Сегодня мы рады сообщить, что приложение Microsoft Family Safety, разработанное для защиты вашей семьи в цифровом и реальном мире, доступно для скачивания на iOS и Android. В течение...

Navigation Component-дзюцу, vol. 1 — BottomNavigationView Два года назад на Google I/O Android-разработчикам представили новое решение для навигации в приложениях — библиотеку Jetpack Navigation Component. Про маленькие приложения уже было сказано достаточно, а вот о том, с какими проблемами можно столкнуться при переводе большого...

(Не)стоп-кадр: как создавать видеоконтент удаленно Самоизоляция не означает, что вы не можете создавать видеоконтент для вашей организации. Снимать, монтировать и выкладывать видео можно и удаленно. Главное, найти идеи для роликов и подходящие программы для монтажа. Журналист Теплицы Екатерина Ульянова собрала рекомендации,...

Лучше поздно, чем никогда: Microsoft решила продолжить историю Skype Корпорация Microsoft приобрела VoIP-сервис Skype в 2011 году, можно сказать, на пике его популярности, за $8,5 млрд. И сейчас это огромная даже по меркам IT-отрасли сумма, а в 2011 году она была еще более внушительной. Компания, по словам ее экс-руководителя Стива Баллмер...

Свой личный SMS-шлюз. Часть 2 – создаём API и форму отправки Представляю вам вторую часть из серии статей по созданию своего шлюза. В первой части мы настроили Gammu, рассмотрели особо интересные параметры и успешно произвели отправку SMS сообщения. Сейчас нам предстоит задача посложнее – создать некую программную прослойку (API), дл...

Совершенный цикл for Сегодня необычный для меня формат статьи: я скорее задаю вопрос залу, нежели делюсь готовым рецептом. Впрочем, для инициирования дискуссии рецепт тоже предлагаю. Итак, сегодня мы поговорим о чувстве прекрасного. Я довольно давно пишу код, и так вышло, что практически всегда ...

Сборка, роутинг и обслуживание метрик Введение Неотъемлемой частью любой сложной системы является телеметрия (мониторинг). Она включает в себя сборку логов, сборку различных метрик из разных частей системы, межсервисную трассировку вызовов и в самых критических случаях, если это возможно, — ручное взаимодействие...

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

Что вам нужно знать, если вы поменяете nginx на envoy: впечатления спустя два года Мы используем envoy как front edge proxy, который перенаправляет входящий трафик в несколько кластеров kubernetes (для новых сервисов) и в бэкенды legacy-архитектуры исторического наследия. Т.е. там сочетаются функции как обычного балансировщика и ssl termination point, та...

Бренд ECCO разместил бизнес-критичные сервисы в гибридном облаке КРОК Бренд ECCO в России консолидировал большинство своих инфраструктурных и бизнес-критичных сервисов в гибридном облаке КРОК. Комбинация публичных ресурсов и colocation позволили добиться нужной гибкости, упростить ...

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

3D реконструкция лица, или как получить своего цифрового двойника (Часть 1) Поговорим о методах 3D восстановления лица человека, которое почти не отличить от фотографий. Тема лицевой 3D реконструкции вот уже 2 года практически не освещается на Хабре. Тем временем область 3D digital human не только не теряет свою актуальность, но и переживает бурный ...

Практическое руководство по разработке бэкенд-сервиса на Python Привет, меня зовут Александр Васин, я бэкенд-разработчик. Идея этого материала началась с того, что я хотел разобрать вступительное задание (Я.Диск) в Школу бэкенд-разработки Яндекса. Я начал описывать все тонкости выбора тех или иных технологий, методику тестирования… Получ...

Новые мини-ПК, на которые стоит обратить внимание: системы из Китая и не только Мы регулярно пишем про одноплатники и микроконтроллеры. Но уже давно ничего не писали про мини-ПК, а ведь эти устройства могут быть весьма полезными как для дома, так для офиса. Сегодня это недоразумение будет исправлено — в подборку попали сразу 6 мини-ПК и 1 UPMС в качест...

ChaiScript — скриптовый язык для C++ Когда возникает потребность внедрить скриптовый язык в проект на C++, первым делом большинство людей вспоминает Lua. В этой статье его не будет, я расскажу о другом, не менее удобном и легком в освоении языке под названием ChaiScript. Читать дальше →

Вебинар «Стандарт С++20»: обзор новых возможностей C++, введённых Стандартом C++20 25 февраля Яндекс.Практикум проводит открытый вебинар «Стандарт С++20». Приглашаем разработчиков С++, которые хотят использовать последние возможности языка, а также программистов на других языках, которые хотят узнать, какие преимущества даёт разработка на C++. На вебинаре...

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

Мониторинг сетевого оборудования по SNMPv3 в Zabbix Эта статья посвящена особенностям мониторинга сетевого оборудования с помощью протокола SNMPv3. Мы поговорим об SNMPv3, я поделюсь своими наработками по созданию полноценных шаблонов в Zabbix, и покажу, чего можно добиться при организации распределенного алертинга в большой ...

Тонкости настройки CI/CD: как работает GitLab runner, когда использовать Docker-in-Docker и где пригодится Argo CD В конце прошлого года в «Слёрме» вышел видеокурс по CI/CD. Авторы курса инженер Southbridge Александр Швалов и старший системный инженер Tinkoff Тимофей Ларкин ответили на вопросы первых студентов. В частности, обсудили: Как работает GitLab runner: сколько задач берёт и ск...

Azure Analytics: ясность в мгновение ока Если чему 2020-й и научил нас, так это тому, что мир может измениться в одно мгновение. На протяжении нескольких месяцев мы наблюдали за тем, как в работе каждой индустрии в мире появляются сбои. Заводы застыли, отели пустуют, а транспортные артерии, соединяющие всех нас, у...

Паттерны в Terraform для борьбы с хаосом и ручной рутиной. Максим Кострикин (Ixtens) Казалось бы, разработчики Terraform предлагают достаточно удобные best practices для работы с AWS-инфраструктурой. Только есть нюанс. Со временем количество окружений увеличивается, в каждом появляются особенности. Появляется почти копия стека приложений в соседнем регионе....

[Перевод] Катастрофы, с которыми я столкнулся в мире микросервисов Прим. перев.: автор этой статьи — engineering manager из Испании, работающий в цифровой торговой площадке Adevinta, представленной в 16 странах, — делится своими наблюдениями о частых проблемах, которые он встречал у создателей микросервисов. Об этих вызовах стоит знать зара...

Архитектурные подходы к авторизации в серверных приложениях: Activity-Based Access Control Framework Сегодня поговорим об секьюрити в web (да, наверное, и не только) приложениях. Прежде чем описывать подходы и фреймворки расскажу небольшую предысторию. Предыстория За много лет работы в IT приходилось сталкиваться с проектами в самых разных сферах. У каждого проекта были сво...

Сколько стоит CRM: взгляд покупателя Привет, с вами снова я, админ Иван, который ищет CRM-систему. Откровенно говоря, мой топ сократился до 2,5 —3 вариантов и покупка вполне может завершиться в марте. Но я ни здесь, ни в личке не раскрою «победителя» (тем более что, это не только и не столько мой выбор), потому...

[Перевод] Делаем аппаратную кнопку выключения звука в Zoom Недавно Instagram показал мне рекламу специальной кнопки для выключения звука в Zoom, которая оказалась для меня уж очень актуальной. Да, я каждый день на созвонах в Zoom. Да, у меня есть ребёнок, который часто вмешивается в эти звонки. Алгоритм выдачи рекламы Instagram, ...

Создаём приложение на gtk Я вижу часто отсылки на то, как реализуется то или иное на qt, но gtk тоже хорош. Я пишу на C и не хочу учить каждые три года стандарты C++, чтобы быть на волне. Мне хватает простой сишечки и чтобы делать графический софт, выбор пал на gtk. Читать дальше →

[recovery mode] PlanetScale — Serverless SQL база данных для разработчиков Этим летом я по уши увяз в serverless-тематике и даже решил переписать один из своих pet-проектов целиком на serverless. Движок для сайта, поддерживающий бессерверные вычисления и вендор для кэширующей прослойки были найдены быстро - NextJS (с деплоем на Vercel) и Upstash с ...

Не хочется ждать в очереди? Напишем свой диспетчер для SObjectizer с приоритетной доставкой SObjectizer — это небольшой фреймворк для C++, который дает возможность разработчику использовать такие подходы, как Actor Model, Communicating Sequential Processes и Publish/Subscribe. Одной из ключевых концепций в SObjectizer являются диспетчеры. Диспетчеры определяют где...

Sony рассказала об очень высоком спросе на PlayStation 5 Глава Sony Interactive Entertainment Джим Райан в интервью агентству Reuters рассказал, что спрос на игровую консоль нового поколения PlayStation 5 оказался очень значительным. По его словам, за первые 12 часов предзаказов в США было продано столько же PlayStation 5, скольк...

История разработки одного дозиметра (Часть 2) В продолжении статьи хочу поговорить о тех проблемах, на которые мне указывали люди в комментариях, рассказать о проблеме переноса прошивки с макета на итоговое устройство, т.к. с этим так же возникли проблемы, продемонстрировать работу устройства, и рассказать об изменениях...

Игровые автоматы на деньги онлайн Казино — идеальное место для игры, ведь азартные развлечения онлайн продолжают набирать популярность. В мире существует множество порталов казино и одна из самых известных площадок — игровые автоматы с выводом денег. Сайт создает максимально комфортные условия для своих игро...

Cheney on the M.T.A.: компилятор, в котором стек служит заодно и кучей   Did he ever return? No, he never returned, And his fate is still unlearned, He may ride forever ‘neath the streets of Boston, He’s the man who never returned. “Charlie on the M.T.A.”, 1949 1. Замыкания Одна из удобных возможностей современных языков программирования – вл...

[Перевод] Clang-format тормозит работу программы Сегодня мы будем измерять производительность разных реализаций функции toupper, ведь именно этим и занимаются по вторникам. Вообще-то мне нет никакого дела до функции toupper, просто я недавно писал другой пост и мне нужен был какой-то общий сюжетный стержень, а toupper ка...

Дружим ELK и Exchange. Часть 2 Я продолжаю свой рассказ о том, как подружить Exchange и ELK (начало тут). Напомню, что эта комбинация способна без колебаний обрабатывать очень большое количество логов. На это раз мы поговорим о том, как наладить работу Exchange с компонентами Logstash и Kibana. Читать д...

Крошка сын к отцу пришел и спросила кроха: что такое DDD? Но так, чтобы я понял Есть вопрос, который я никак не могу раскусить. Казалось бы, по нему есть масса информации: книги, статьи, доклады. Но сложность и многогранность темы не позволяет сразу ухватить суть. Поможешь мне в этом?Чтобы действительно понять сложную тему, нужно прочитать и обдумать м...

10 приёмов работы с Oracle В Сбере есть несколько практик Oracle, которые могут оказаться вам полезны. Думаю, часть вам знакома, но мы используем для загрузки не только ETL-средства, но и хранимые процедуры Oracle. На Oracle PL/SQL реализованы наиболее сложные алгоритмы загрузки данных в хранилища, гд...

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

Hi-tech коммуникации, или как мы создаем голосового агента всего на 500 записях На Хабре не раз и не два писали о голосовых роботах, принципах их работы и задачах, которые они способны решать. Соответственно, общие принципы создания таких роботов (их мы предпочитаем называть «цифровыми агентами) понятны многим. И это хорошо, ведь в этой статье мы хотели...

[Из песочницы] «Как жить без стрелок» или не так страшен сплит… "Как жить без стрелок" или не так страшен сплит... Источник Введение В последнее время на Хабре появляется всё больше статей о кастомных клавиатурах вообще и об эргономичных сплит клавиатурах (эргосплит) в частности. И это хорошо, ведь, глядя на ассортимент клавиа...

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

Lightning Talk: Анатолий Вассерман на Слёрме DevOps Изначально и в работе, и в курсах мы делали упор на «как» и избегали «зачем». Мы рассказывали про настройку Kubernetes и молчали про то, где нужен K8s. Если клиент хотел кластер, мы делали ему кластер, не анализируя его business value, мол, это не наше дело, клиент имеет пра...

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

Верите ли вы в бога надежности? Всем привет!В этой статье я хотел бы рассказать о некоторых мерах, которые мы применяем (ну, или почти применяем) в ДомКлик для обеспечения надежности работы наших сервисов. Честно говоря, возможно, какие-то из этих процедур избыточны, но ежегодный аудит и постоянные проверк...

[Перевод] Async/await в Unity Салют, хабровчане. Совсем немного времени остается до старта курса «Разработчик игр на Unity», в связи с этим мы подготовили для вас еще один интересный перевод. async в Unity уже и так работает без каких-либо плагинов или оборачивающих Task корутин, имитирующих асинхронн...

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

Сотовый оператор Tele2 запустил лучший в мире тарифный план для всех Как известно, потребности всех людей сильно отличаются, когда речь заходит об услугах телекоммуникационного характера. Кому-то нужно много сообщений SMS, чтобы каждый день отправлять такие, а кто-то так и вовсе вообще не пользуется таким видом связи, Читать полную версию пу...

[Перевод] Как устроен процесс создания docker-контейнера (от docker run до runc) Перевод статьи подготовлен в преддверии старта курса «Инфраструктурная платформа на основе Kubernetes». За последние несколько месяцев я потратил немало личного времени на изучение работы Linux-контейнеров. В частности, что конкретно делает docker run. В этой статье я соб...

Прикладная некромантия: использование Garmin GPSmap 76S в 2021 году За последнее десятилетие мы почти все привыкли часто обновлять устройства, которыми владеем. Старые устройства либо кладем на полку, либо продаем, либо вообще выбрасываем в помойку. И многие даже не думают о том, что по факту устройства нормально работают и могут продолжать...

[Перевод] Этапы внедрения CI/CD Jason Dorfman, MIT CSAIL Ключевым моментом при разработке и написании кода ПО является скорейший переход на набор эксплуатационных принципов и методов, более известный как CI/CD, который соединяет непрерывную интеграцию с непрерывной поставкой. С помощью CI/CD команды разра...

Клуб Азино777 официальный сайт Что такое виртуальное казино, как оно выглядит и как выбрать лучшее? Стоит начать с того, чтобы дать полноценное понятие о том, что представляет из себя любое виртуальное казино. Фактически виртуальное казино – это специальный сайт с многими программами, которые работают по ...

Пятничный опрос про обновления Всем привет! Сегодня мы решили провести опрос на тему, которая была подсказана разработчиками Vivaldi, отвечающими за процесс обновления браузера. Дело в том, что процедура эта не так проста, как кажется — пользователи нередко демонстрируют удивительную непредсказуемость,...

Random Coffee Habr Edition — нетворкинг для IT-сообщества Полгода назад мы познакомились с ребятами, которые основали Random Coffee — сервис для случайных встреч с незнакомцами, но не дейтинг. Эта идея витала в IT-индустрии несколько лет, пока Константин Шубин и Павел Козлов не оформили её в продукт. Суть проста: людям из разн...

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

[Перевод] Как облако Alibaba Cloud управляет десятками тысяч кластеров Kubernetes с помощью… Kubernetes Куб-на-кубе, метакластеры, соты, распределение ресурсов Рис. 1. Экосистема Kubernetes в облаке Alibaba Cloud С 2015 года Alibaba Cloud Container Service for Kubernetes (ACK) является одним из самых быстрорастущих облачных сервисов в Alibaba Cloud. Он обслуживает многочисле...

Как сохранять фотографии из чатов WhatsApp в «Google Фото» WhatsApp позволяет сразу выгружать фотографии из чатов в облако В эпоху облачных сервисов вопрос хранения фотографий, видеозаписей и другой личной информации перестал стоять так же остро, как раньше. Поэтому сейчас не имеет большого значения, сколько памяти по умолчанию пред...

Измеряем изменения в скорости загрузки сайта в различных сетевых (и не только) условиях. Теперь удобнее Всем, привет. Хочу поделиться своим проектом, который я делал в последние несколько месяцев. Это open-source инструмент командной строки, предназначенный для удобного сбора метрик производительности веб-сайта в различных сетевых (и не только) условиях. Уже реализована эмуля...

[Перевод] Arduino Nano RP2040 Connect: обзор «ардуинки» с WiFi и BLE на борту В середине мая мы писали о появлении новой платы от Arduino, которая получила название Arduino Nano RP2040 Connect. Ее основа — чип RP2040 от Raspberry. В знакомую компоновку Nano весьма аккуратно интегрирован модуль связи Wi-Fi Nina W102 uBlox, который обеспечивает работу ...

[Из песочницы] На что ещё способны шаговые моторы? — Забивать голы в настольном хоккее Создавая своего первого робота (Робот для настольного хоккея), а именно механическую часть, узнал много интересного для себя, чем и хочу поделиться. Примерно половину знаний я «нагуглил» или подсмотрел на Youtube, а вторую половину получил на практике, методом проб и ошиб...

Лямбда-функции на встроенном языке 1С «Анонимные функции, функции как переменные, методы для структур и соответствий, классы/прототипы, наследование! Где это всё для 1С?!» — спросите вы меня. И я уверенно отвечу: «Здесь». В этой теме ключ ко всему. Решение небольшое, элегантное, исключительно на в...

Личный опыт: как мы вышли на американский рынок и с какими сложностями столкнулись О налоговых ставках в разных штатах, тонкостях найма сотрудников и важности планирования.

Чтобы улучшить Госуслуги, нужна простая советская… сода…команда неравнодушных людей! И это может быть непривычным. Потому что в сознании многих gosuslugi.ru — это что-то «чиновническое» и «бездушное», если угодно. Но на самом деле сотрудники портала — граждане страны, которые хотят сделать удобные и человечные сервисы для на...

Что помогло нам быстро перестроиться на онлайн-торговлю в новых условиях Привет!Меня зовут Михаил, я заместитель директора по ИТ в компании «Спортмастер». Я хочу поделиться историей о том, как мы справились с трудностями, возникшими во время пандемии.В первые дни новых реалий привычный формат офлайн-торговли «Спортмастера» замер, и нагрузка на на...

[Перевод] Клон Doom в 13 килобайтах JavaScript В прошлом году я участвовал в соревнованиях JS13K 2019, на которых людям предлагается разрабатывать игры в менее чем 13 КБ кода на JavaScript. Я участвовал с клоном Doom, который назвал… «Ещё один клон Doom» (Yet Another Doom Clone). Поиграть в него можно здесь. Исходный к...

Динамическое хеджирование опционов В комментариях к нашему видео про опционы достаточно быстро возник вопрос "За чей счёт этот банкет?".Если мы говорим про биржевой рынок, то можно сказать что в каждой относительно удачной покупке есть второй участник сделки, который совершил относительно неудачную продажу. ...

Сотни тысяч маршрутов в секунду на ядро. Опыт Яндекс.Маршрутизации Пару недель назад Даня Тарарухин рассказал на Хабре, как появился наш сервис, Яндекс.Маршрутизация, и как он помогает компаниям с логистикой. Создавая платформу, мы решили несколько интересных проблем, одной из которых и посвящён сегодняшний пост. Я хочу поговорить о самом...

Пишем Grafana reverse proxy на Go Очень хотелось назвать статью «Proxy-сервис на Go в 3 строчки», но я выше этого. В действительности так и есть, основную логику можно уместить в трёх строках. Для нетерпеливых и тех, кто хочет увидеть самую суть: proxy := httputil.NewSingleHostReverseProxy(url) r.Header.Se...

Создание приложений на Angular с использованием продвинутых возможностей DI Меня зовут Андрей, и я занимаюсь разработкой фронтенда на Angular для внутренних продуктов компании. Фреймворк обладает обширными возможностями, одни и те же задачи можно решить огромным количеством способов. Чтобы облегчить свою работу и повысить продуктивность, я задался ц...

Как мы внедрили скрытие аккаунтов в Telegram или #ДуровДобавьДвойноеДно Если анимация не воспроизводится, смотрите её здесь. Здравствуйте, Павел Дуров! Мы надеемся, что Вы нашли время ознакомиться с данным открытым письмом. Мы разработали решение для Telegram-клиента, которое позволяет скрывать аккаунты и открывать их только через уникальный к...

[Перевод] Когда клиенты — твои коллеги. Оптимизация веб-производительности внутренних систем Как-то раз у меня был занятный разговор со службой поддержки Департамента международной торговли (DIT). Они хотели повысить производительность одного из своих веб-приложений. Подобные разговоры — это то, что мне больше всего нравится на моей текущей позиции. Я общаюсь на тем...

SOA на Laravel и JSON-RPC 2.0 SOA (Сервис-Ориентированная Архитектура) строится путём комбинации и взаимодействия слабо-связанных сервисов. Для демонстрации создадим два приложения Клиент и Сервер. А их взаимодействие организуем посредством протокола удаленного вызова процедур JSON-RPC 2.0. Читать дал...

Sony не справляется со спросом на датчики изображения Японская компания Sony утверждает, что она не справляется с существующим повышенным спросом на датчики изображения. Более того, подразделение, которое производит модули, не будет останавливать свое производство даже в новогодние праздники. Причем это уже второй год подряд, ...

Apple представила обновления безопасности для iOS. Спойлер: хуже, чем у Google Независимо от степени фанатизма пользователей iPhone, у подавляющего большинства из них сложилось устойчивое мнение о том, что подход Apple к обновлению iOS – лучше подхода Google. Несмотря на то что Apple не могла обновлять свои приложения и сервисы отдельно от операционно...

VPN в домашнюю локалку TL;DR: я устанавливаю Wireguard на VPS, подключаюсь к нему с домашнего роутера на OpenWRT, и получаю доступ к домашней подсети с телефона. Если вы держите на домашнем сервере личную инфраструктуру или у вас дома множество девайсов управляемых по IP, то вы наверняка хотите...

Играть на деньги в казино Вулкан Если вы хотите получить возможность выигрывать реальные деньги, то нужно выбрать для себя тот досуг, который будет предлагать вам такую возможность. Это может быть всё что угодно, но стоит отметить, что очень популярными являются именно азартные игры. Удивительного в этом ни...

ReactJS, Server Side rendering и некоторые тонкости обработки метатегов страницы Одной из проблем, которую придется решать при написании Server Side rendering приложения — это работа с метатегами, которые должны быть у каждой страницы, которые помогают при индексации их поисковыми системами. Начиная гуглить, первое решение, к которому приведут скорее вс...

Как UX/UI-дизайнеру достичь взаимопонимания с разработчиками и проджектами: комбинируем UX-фреймворки В самом начале своего пути на позиции UX/UI-дизайнера, я воспринимал защиту дизайна каждой фичи перед разработчиками и проджектами как битву. Мой внутренний “адвокат пользователя” всегда пытался внедрить в продукт максимальное количество удобных функций, а проджект-менеджер ...

Как устроен Sporth — ЯП для музыкальных live-сессий Один из предыдущих материалов мы посвятили OpenMusic — инструменту для написания музыки на ООП. Мы также говорили о языках программирования, заточенных под создание аудиокомпозиций. Сегодня мы решили продолжить тему и рассказать о языке Sporth. Его разработали специально, ч...

Облако для SOA приложений и не только Привет Хабр.Сегодня я хочу рассказать про своё детище - платформу "qSOA.cloud", которая позволяет запускать приложения построенные по SOA в облаке по разумной цене. Например, стоимость размещения простого HTTP API сервиса, который обрабатывает ~400 000 запросов в сутки, мож...

[Перевод] Retrofit: удобные разработка и тестирование API Если разработчик веб-сервиса хочет дать максимум удобств и пользы клиентам, ему нужно создать общедоступный API для программной работы с этим сервисом. В экосистеме Java есть один подход к разработке API, весьма удобный для программистов. Он заключается в размещении DTO и ин...

Бесплатная накрутка лайков в Инстаграме Инстаграм - это популярная соцсеть, аккаунты в которой сегодня создают пользователи разных возрастов, начиная от школьников и, заканчивая пожилыми людьми. Цель создания аккаунта у каждого человека разная: кто-то создает аккаунт от нечего делать, кто-то хочет похвастаться ...

Как мы ускоряли ввод текста на смартфоне: динамическая сетка в Яндекс.Клавиатуре Нельзя быть полностью довольным своей клавиатурой. Кажется, абсолютное большинство людей недолюбливает этот инструмент и мечтает печатать быстрее. Особенно достаётся клавиатурам мобильных устройств: в набранных с их помощью текстах в два-три раза больше ошибок, чем при дес...

Азартные игры клуба Вулкан Победа На сайте игрового клуба Вулкан Победа играют самые азартные геймеры. Этот портал предлагает невероятное количество стимуляторов, которые способны на крупные и щедрые выплаты. Играть в казино вулкан Победа выгодно и комфортно, ведь клуб создает для этого все необходимые услов...

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

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

Приглашаем на видеокурс по Docker: узнать новое, закрепить старое Что нас побудило создать курс по Docker — хотя на рынке десятки предложений по этой теме, и практически каждая IT-школа отметилась в этом направлении? Побудили нас студенты «Вечерней школы по Кубернетес». В обратной связи мы неоднократно получали запрос, что в ВШК получилась...

Как происходит активация office Пакет Microsoft Office знаком каждому пользователю ПК, этот многозадачный инструмент предоставляет широкие возможности для работы. В пакет входит ряд программ, которые используются в различных сферах. Так, активация office поможет вам получить этот многозадачный и удобный ин...

[Перевод] Исследование: становилась ли Windows 10 медленнее с каждым feature update? Одной из основных причин того, что некоторые люди избегают обновления своих ПК, стало то, что «обновления тормозят систему». Особенно это актуально для Windows 10 с её схемой Software as a Service, при которой ОС дважды в год получает «feature update». Но так ли это на само...

PXE-мультитул на базе Raspberry Pi Инженеры дата-центров часто сталкиваются с задачей первоначальной настройки серверов. Причем, чаще всего настраивать приходится не одну-две единицы оборудования, а несколько десятков или даже сотен. Каждый раз, когда к нам приезжает новое оборудование мы должны его не тольк...

[Перевод] Отлаживайте ваши приложения .NET Core в WSL 2 с Visual Studio Вы разработчик .NET Core, которому нравится работать в Windows и Visual Studio, но вам нужно протестировать свое приложение в Linux? Вы кросс-платформенный разработчик, которому нужен простой способ тестирования большего количества целевых сред? Вы уже открыли для себя преим...

PostgreSQL Antipatterns: обновляем большую таблицу под нагрузкой Как стоит поступить (а как точно не надо), если в «многомиллионной» активно используемой таблице PostgreSQL нужно обновить большое количество записей — проинициализировать значение нового поля или скорректировать ошибки в существующих записях? А при этом сохранить свое время...

Крупнейшая блокировка в истории Amazon: 600 брендов и 3000 магазинов поплатились за платные отзывы. Некоторые уже подались на eBay и AliExpress Amazon регулярно реагирует на нарушения политики интернет-магазинами, стараясь максимально обезопасить потребителей. Компания сообщила, что она закрыла около 3000 интернет-магазинов, принадлежащих примерно 600 китайским брендам. Причина заключалась в том, что эти бренды...

Как наладить юридически значимый электронный документооборот контрагентов России и Казахстана? Работы по расширению трансграничного пространства доверия на базе использования Сервиса валидации электронной подписи (СВЭП) и услуг Доверенной третьей стороны (ДТС) активно продолжаются. На этот раз мы поговорим о пилотном проекте в рамках которого создан сервис по проверке...

Почему 97% программистов 1С мало платят и так будет всегда Внимание: статья — про программистов 1С, соответственно — не про вас. Считайте, что про вомбатов, и для вомбатов (погуглите, это интересные животные). У них есть проблемы, схожие с вашими. Вопрос зарплаты и её повышения волнует большинство работающих людей, которых я встреч...

Как защитить свои активы во время коррекций на фондовом рынке? Изображение: Unsplash Финансовые рынки не могут постоянно расти в течение долгого времени. Цены акций, облигаций и других финансовых инструментов, периодически «откатываются» – такие волны изменений называют коррекциями. Коррекции могут наблюдаться как по одному инструмен...

Хабр ПРО. Мир ИБ: паранойя vs здравый смысл В сфере безопасности легко либо недосмотреть, либо, наоборот, потратить слишком много сил в никуда. Сегодня мы пригласим в наш вебкаст топ-автора из хаба «Информационная безопасность» Луку Сафонова (LukaSafonov) и Джабраила Матиева (djabrail) — руководителя направления защ...

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

[Перевод] Автоматические скриншоты iOS с помощью XCTestplan и XCode 11 В Райффайзенбанке несколько мобильных приложений, которые должны работать на самых разных девайсах и операционных системах, поэтому мы стараемся автоматизировать рутинные процессы в тестировании. Эта статья показалась нам полезной, и мы решили ее перевести. foto source: u...

Ускоряем разработку с помощью сервисов Azure: создаем чат-боты и когнитивные службы средствами платформы Привет, Хабр! Сегодня мы расскажем, как решать с помощью Azure задачи, которые обычно требуют человеческого участия. Операторы тратят много времени, чтобы отвечать на одни и те же вопросы, обрабатывать телефонные звонки и текстовые сообщения. Чат-боты автоматизируют общение ...

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

Вопрос на засыпку – Здравствуйте, @*! Спасибо, что согласились поговорить со мной!– Саша, я к вашим услугам. За миллион долларов в секунду я с вами хоть все десять минут, пока держит канал.– Времени мало, предлагаю писать кратко, чтобы больше успеть. Хорошо?– Кнчн– Ну можно и не так коротко))...

Сколько кода на C++ нужно написать для разбора HTTP-заголовка Authorization с помощью easy_parser из RESTinio? Мы продолжаем развивать бесплатный и открытый встраиваемый в С++ приложения HTTP-сервер RESTinio. В реализации RESTinio активно используются C++ные шаблоны, о чем мы здесь регулярно рассказываем (недавний пример). Одной из точек приложения C++ной шаблонной магии стал easy_p...

[Перевод] Представляем Visual Studio Codespaces: облачная разработка, где бы вы ни были Поскольку все мы внедряем такие практики, как социальное дистанцирование и удаленная работа, команды разработчиков стали более распределенными. Наша собственная команда столкнулась с некоторыми проблемами, которые являются частью этого перехода, и это побудило нас усилить ра...

Эксплуатация Ceph: что такое Scrub и как им управлять Scrub — это процесс фоновой проверки консистентности данных в Ceph. Он позволяет выявить и устранить несоответствия в копиях, а также найти рассыпающиеся диски, чтобы вовремя их заменить. При этом сам Scrub может создавать высокую нагрузку на кластер и мешать другим процесс...

[Перевод] Как pod в Kubernetes получает IP-адрес Прим. перев.: эта статья, написанная SRE-инженером из LinkedIn, в деталях рассказывает о той «внутренней магии» в Kubernetes — точнее, взаимодействии CRI, CNI и kube-apiserver, — что происходит, когда очередному pod'у требуется назначить IP-адрес. Одно из базовых требований...

Специфицируй это. Доклад Яндекса Хорошая спецификация к API помогает клиентам его использовать. Несколько месяцев назад на большом Pytup разработчик Яндекса Александр Брязгин bryazginnn выступил с докладом о том, что собой представляет спецификация REST API на примере OpenAPI + Swagger и зачем нужна такая с...

Почта Mail.ru готовит к запуску сервис звонков и видеосвязи Сервис ориентирован на широкий круг задач: от семейного общения до деловых собраний и онлайн-обучения. Для подключения к групповому звонку достаточно будет нажать на ссылку из приглашения. Создавать онлайн-звонки и приглашать участников смогут все пользователи, у которых ест...

Влияние кризиса на IT: уволят ли нас всех Нередко вижу слова в духе «по другим отраслям коронавирус сильно ударил, а вот IT практически не затронул». Мол, веб-сервисы от карантина только выиграли, писать код можно и удалённо, а раз сейчас ограничения отменяют — значит, всё закончилось хорошо, и нечего тут ныть. По-...

[Из песочницы] Как я избавился от тысячи вкладок… … и опоздал на 3 года. В идеале должно быть так: пользователь запускает браузер, и браузер показывает то, что нужно пользователю. Но пока такого не реализовали приходится пользоваться поисковыми системами. В идеале должно быть так: пользователь открывает поисковую систему, в...

Создаем свою CRUD API на Express и MySQL: часть первая Всем привет. В преддверии старта курса «Fullstack разработчик JavaScript», хотим поделиться небольшим материалом, который был написан нашим внештатным автором. Express один из самых популярных веб-фреймворков, который поддерживает роутинг, миддлвейрс и систему шаблонов. Д...

Практика обновления версий PostgreSQL. Андрей Сальников Предлагаю ознакомиться с расшифровкой доклада 2018 года Андрея Сальникова "Практика обновления версий PostgreSQL" В большинстве своем, системные администраторы и ДБА бояться как огня делать мажорные обновления версий баз данных (RDBMS), особенно если эта база данны...

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

Обзор 7th Sector. Солидный киберпанк Сегодня мы поговорим о достаточно интересной игре, которая разработана всего одним человеком и при этом легко уделывает проекты, которые создаются целыми студиями. Здесь и красивая графика, и достаточно привлекательные уровни, и интересные задания, и отличная атмосфера. Что ...

Хьюстон, у нас проблема с интерпретацией ошибок Привет, сегодня я хочу поговорить о том, с чем мы рано или поздно сталкиваемся, имея много доменной логики — и даже не микросервисную, — а хотя бы просто сервисную архитектуру. В ожидании комбинаторного взрыва Читать дальше →

[Перевод] Создаём линзы для SnapChat с использованием pix2pix Почти такой же заголовок носит и моя предыдущая статья, с той лишь разницей, что тогда я создавал линзы для SnapChat алгоритмически, используя dlib и openCV, а сегодня хочу показать, как можно добиться результата, используя машинное обучение. Этот подход позволит не занимать...

«Здесь нельзя заскучать»: как работается в региональных филиалах Solar JSOC Сегодня наш центр мониторинга и реагирования на кибератаки Solar JSOC отмечает День рождения. Нам исполняется 8 лет! В далеком 2012-м, когда мы были совсем маленькими (команда Solar JSOC насчитывала 6-7 человек в Нижнем Новгороде и столько же в Москве), на рынке ИБ никто тол...

[Перевод] Zero Downtime Deployment и базы данных В этой статье подробно объясняется, как решать проблемы, связанные с совместимостью баз данных при деплое. Мы расскажем, что может произойти с вашими приложениями на проде, если вы попытаетесь выполнить деплой без предварительной подготовки. Затем мы пройдемся по этапам жиз...

Все, что вы хотели узнать об LDPC кодах, но стеснялись спросить (наверное) Предисловие С кодами малой плотности проверок на чётность, которые дальше мы будем именовать коротко LDPC (Low-density parity-check codes), мне удалось познакомиться более или менее близко, работая над семестровым научным проектом в ТУ Ильменау (магистерская программа CSP)....

[Из песочницы] Круглосуточная трансляции своих видео на YouTube Последнее время в качестве хобби снимаю на видео лекции знакомого психолога. Отснятый материал монтирую и публикую на своём сайте. Месяц назад я загорелся идеей организовать круглосуточную трансляцию этих лекций на YouTube в режиме 24/7. Этакий тематический «телеканал», посв...

Поддерживаем разработку нескольких версий продукта в Git. Станислав Лукьянов (GridGain) Всем привет! Меня зовут Станислав Лукьянов. Я работаю в компании GridGain. Сегодня я хотел поговорить о том, как мы поддерживаем старые версии в Git. Читать дальше →

Open-source Antifraud от RBKmoney — на пути к идеалу Привет! Не так давно мы писали в нашем блоге про антифрод и его устройство. В этом посте я хотел бы затронуть критерии идеального антифрода, который бы и клиентам жизнь упрощал, не блокируя платежи и при этом защищая их средства, и платежной системе время и ресурсы экономил...

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

[Из песочницы] Как я создавал очередной конструктор сайтов Всем привет, меня зовут Саша. Я создаю свой конструктор сайтов. Я получил первых платящих пользователей. Все они преимущественно из США и Европы. Я хочу поделиться историей своего пути, который включает включал кодинг, краудфандлинг и продвижение. Читать дальше →

[Перевод] Как линейное время превращается в Windows в O(n²) Недавно я столкнулся с многоминутными задержками на моей рабочей станции. После расследования выяснилось, что причина проблемы заключалась в блокировке, которая могла длиться по пять минут, во время которых источник блокировки в основном крутился в цикле из девяти инструкци...

Подумайте дважды, нужен ли вам Hibernate Я часто видел, как в проекте начинали использовать Hibernate, не особо задумываясь о том, действительно ли он нужен. А через какое-то время, когда сервис разрастался, то появлялся вопрос — не было ли это ошибкой.Давайте порассуждаем о плюсах и минусах Hibernate в целом, чтоб...

Как мы свою helpdesk-систему пилили Еще четыре года назад команда техподдержки студии Plarium Krasnodar пользовалась сторонней тикет-системой, в чем было много минусов. Сегодня у нас появилась не просто своя система, а хелп-деск, подстроенный под нужды компании. Как это произошло — читайте в статье. Читать д...

[Из песочницы] Jungle town: как мы хотели изменить мир к лучшему, создавая детскую игру История нашей игры началась в 2016 году с покупки приставки Apple TV. Это был очень желанный девайс, на котором я обнаружил несколько игр, в том числе детских. Одна из них была от знаменитой студии, и она настолько мне понравилась, что я сказал своей супруге и музе: «Дорог...

Хлебопечь Kitfort KT-305: без усилий выпечет 1,5 кг хлеба В хлебопечь Kitfort KT-305 достаточно загрузить ингредиенты и задать нужную программу — дальше прибор всё сделает сам, а также сообщит, когда нужно добавить сухофрукты в сдобу, когда закончился процесс выпекания или подогрев хлеба после выпечки. Кроме 12 автоматических прогр...

В Google Play станет так же чисто, как в App Store У магазина приложений Google Play существует много плюсов в сравнении с аналогом всеми известной компании: качественные рекомендации, приложения для абсолютно разных сегментов Android устройств, максимально открытая площадка. Google Play уже много лет пытается очистить свой...

IPv6 only сети в государственных учереждениях США Административно-бюджетное управление администрации президента США запросило комментарии к новому руководству по переходу на IPv6 в государственных учереждениях США. Новый вариант руководства отмечает, что поддержка dual-stack создаёт дополнительные операционные сложности и ...

[Перевод] Внутреннее устройство Kubernetes-кластера простым языком Прим. перев.: как многим хорошо известно, Kubernetes — это всего лишь пять бинарников. Об их назначении и рассказывает в этой статье Vedashree Patil, консультант из Deloitte Digital. Когда ей потребовалось изучить Kubernetes, она столкнулась с большим количеством новой инфор...

Защита ядра Linux из ARM Trustzone: как усилить Linux Kernel Runtime Guard и предотвращать последствия zero-day Всем привет! В ОС Аврора мы уделяем большое внимание обеспечению безопасности. Сегодня немного расскажем о перспективном подходе — синергии технологии ARM TrustZone и open-source проекта Linux Kernel Runtime Guard (LKRG) для повышения защищённости девайсов (в том числе от ...

Две трети россиян столкнулись с выгоранием в 2021 году Наука Человек 14.09.2021, 15:18 Две трети россиян столкнулись с выгоранием в 2021 году За время пандемии термин «выгорание» стал появляться все чаще и чаще. Это не просто так. Во-первых, работа на дому сильно повлияла на рабочий день, ...

Мой путь к секционированию в PostgreSQL Когда мы перестаем контролировать размер таблицы — обслуживание и обеспечение доступности данных становится нетривиальной задачей. Я с такой проблемой столкнулся уже в продакшне, данных с каждым днем становится больше, таблица не влезает в память, сервера отвечают долго, н...

Apple не справляется с запросом пользователей на iPhone 12 ... Продукция Apple ожидаемо бьет все рекорды интереса со стороны новых пользователей, но в этот раз компания не справляется с производством нужного количества смартфонов.     С момента презентации iPhone 12 вся линейка столкнулась со значительным спросом. Похоже, что...

На себя или на «дядю»? Открытие своего бизнеса Вот и пятница подкралась незаметно. Самое время для уютной беседы на злободневные темы. Сегодня поговорим про варианты трудоустройства. Как люди приходят к выбору, влияние пандемии 2020 года на взгляды трудящихся. Плюсы, минусы, подводные камни. Весь рассказ основан на реа...

Как пользователям Apple сэкономить на подписке Подписка в приложениях из App Store всегда дороже Подписка сегодня – это основной способ извлечения прибыли практически из любого проекта. Первыми его освоили журналы и газеты, которые были вынуждены нести регулярные расходы на печать и оплату труда журналистов. Однако со вр...

Большая роль «маленького разговора» О чем вы обычно думаете, когда встречаете кого-то впервые на работе / в лифте или когда вам предстоит сложный телефонный разговор с недовольным клиентом? Большинство носителей английского языка ответили бы: small talk. Как говорится, “Good beginning is half the battle!” (Хор...

Golden canon grid: страшилка для фронтендеров Большая часть людей, так или иначе причастных к верстке сайтов, проходят через… Назовем это “путь бутстрапа”. Это такая философская позиция, когда у тебя есть 12 колонок и ничего больше. Ты берешь элементы, кладешь их в определенные колонки и все у тебя хорошо. Можно выключ...

Active Design Review. Как согласовать архитектуру и не разругаться Привет, Хабр! Меня зовут Олег Сало, я ведущий архитектор MTS Digital в центре IT-продуктов клиентского опыта B2C. Уже достаточно давно я занимаюсь разработкой и проектированием корпоративных информационных систем, в основном в области  CRM и Customer Experience. В больш...

Huawei представила EMUI 12. А как же Harmony OS? Когда Huawei представила Harmony OS для смартфонов, все были уверены, что теперь она станет единственной программной основой фирменных смартфонов бренда. Всё-таки нелогично создавать внутреннюю конкуренцию и продолжать поддерживать оболочку для Android, когда у тебя есть це...

[Перевод] Визуализация работы сервис-воркеров (Service Workers) Доброго времени суток, друзья! Вероятно, многие из вас слышали о таком новшестве в экосистеме JavaScript, как сервис-воркеры, которые являются ключевым элементом современной веб-разработки. Сервис-воркеры становятся все более востребованными, в первую очередь, благодаря п...

3D мышка для 3D моделирования Здравствуйте друзья, сегодня я вам расскажу про 3D мышь, «SpaceMouse Enterprise». Она производится компанией «3Dconnexion» и служит для работы с программами для 3D моделирования. Всем кто напишет, что это рекламный пост, будет не прав. Потому что, мне ещё отдавать за неё кре...

Outline эффект с использованием RenderFeature в Unity URP В Universal Render Pipeline, создавая свои RendererFeature, можно легко расширить возможности отрисовки. Добавление новых проходов в конвеер рендеринга позволяет создавать различные эффекты. В этой статье, используя ScriptableRendererFeature и ScriptableRenderPass, создадим ...

Наконец ваши AirPods можно будет сдать в ремонт В 2016 году Apple совершила революцию в мире беспроводных наушников. С тех пор прошло уже 5 лет и до сих пор ни одна компания не может сравниться с известными по всему миру AirPods. Еще в то время огромное количество предприятий задались вопросом ремонта. Вчерашнее чудо тех...

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

Создаем калькулятор на Swift 5 В преддверии старта базового курса «iOS-разработчик» публикуем статью, которую написал наш внештатный автор. Всем привет! Прошло уже больше года с того момента, как появился релиз Swift 5, который принес разработчикам много нового. В этой статье я хочу поговорить о мобиль...

[Из песочницы] AWS Step Functions overview Теория Что такое Step Functions? Из AWS Docs: Step Functions — это сервис бессерверной оркестровки, который позволяет комбинировать функции AWS Lambda и другие сервисы AWS для создания критически важных для бизнеса приложений. С помощью графической консоли Step Functions вы ...

[Из песочницы] Как я сделал электронную очередь за 0 рублей на чистом энтузиазме, чего это стоило и что из этого вышло Добрый день, дорогие мастера своего дела! Это моя первая статья, постараюсь быть интересным. Много лет назад (о ужас) когда я был супер энергичен, молод и глаза горели я хотел автоматизировать все что движется и не движется. Я чувствовал бескрайние свои возможности и был у...

Что такое LLVM и зачем он нужен? Всем привет! Думаю, у многих сразу возник другой вопрос — а зачем вообще нужна ещё одна статья про LLVM, ведь на хабре их и так больше сотни? Моей задачей было написать "введение в тему" for the rest of us — профессиональных разработчиков, не планирующих создавать ...

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

Как добраться до людей, когда тебя нанимает робот Мне жалко своего времени! Тексты вакансий и миловидные девушки, которые приводят меня на собеседования в компании, и раньше были похожи как две капли воды. Но теперь работодатели плодят технологии, которые помогают обращаться ко мне больше и чаще. Я уже не могу спокойно поль...

Зарядное устройство Iconicle для Apple Watch в стиле минимализма Владельцы Apple Watch, которым нужен изящный способ зарядки своих часов на столе или тумбочке, могут быть заинтересованы в минималистичном зарядном устройстве для Apple Watch Iconicle, выпущенном на Kickstarter в этом месяце. Док-станция Apple Watch, обработанная на станке с...

Как и зачем мы создаём собственную курьерскую платформу. Три истории Яндекс.Маркета Всем привет, меня зовут Алексей Остриков, я руковожу разработкой в Яндекс.Маркете. Когда-то я много-много писал код, затем полтора года руководил группой бэкенда одного из сервисов Маркета, а сейчас отвечаю за разработку курьерской платформы Маркета. Сегодня я расскажу, по...

Обзор: как хакеры грабят банки Помните эти эпичные фильмы про ограбления? Где крутые ребята придумывают гениальный план, меняют облики чаще, чем модели на показах, используют невероятные (нереализуемые) психологические трюки и рискуют своей шкурой в погоне за выгодой. Думаю, что помните. Тяжело представ...

[Перевод] Остановитесь!!! Вам не нужны микросервисы Идет 2020 год. Если вам нужно пояснение, что такое микросервисы — лучше потратьте свое драгоценное время на что-то другое. Но если вы впечатлены историями успеха о микросервисах и хотите нырнуть в "панацею" с головой — продолжайте читать. Прошу прощения, будет немн...

ViennaNET: набор библиотек для backend’а Всем привет! Мы сообщество .NET-разработчиков Райффайзенбанка и мы хотим рассказать про набор инфраструктурных библиотек на .NET Core для быстрого создания микросервисов с единой экосистемой. Вывели его в Open Source! Читать дальше →

Как выстроить процесс интеллектуальной обработки документов с помощью RPA: опыт UiPath Не существует компаний, в которых не было бы работы с документами. И это — кропотливый, рутинный, но очень важный процесс. Люди хотят получать зарплату вовремя, а поставщики и контрагенты своевременную оплату за свои услуги. Бухгалтеру в компании регулярно приходится проводи...

[Перевод] Какие изменения нужны языку Rust, чтобы писать асинхронный код стало проще Асинхронное программирование — мощный инструмент. Но экосистема Rust продолжает активно развиваться, и пока язык далёк от идеала. В частности, по этой причине многие считают, что асинхронное программирование в Rust — это боль. Однако некоторые не только критикуют, но и пред...

[Перевод] Terraform, моно-репозитории и compliance as code Всем привет. OTUS открыл набор в новую группу по курсу «Инфраструктурная платформа на основе Kubernetes», в связи с этим мы подготовили перевод интересного материала по теме. Возможно, вы один из тех, кто использует terraform для Infrastructure as a Code, и вам интересно...

Пользователи мобильных приложений остаются недовольны, несмотря на масштабную цифровизацию Только 32% европейских потребителей отметили, что компании, клиентами которых они являются, предоставляют сегодня более качественные цифровые сервисы, чем до пандемии. Результаты нового исследования VMware, в котором приняли участие более 6000 потребителей, показали, что нес...

Предварительный обзор Lenovo ThinkBook Plus. Уникальный гаджет Самое время поговорить об интересных ноутбуках, которые выделяются на фоне конкурентов не только своими характеристиками и производительной начинкой, но и массой других параметров. Начнем с уникального гаджета, аналогов которому на рынке электроники просто нет. Хотя, конечно...

JAM-стэк — нищета на стероидах Создавая сайты для малого бизнеса я сталкиваюсь с двумя крайностями. Но только я, как программист. Пользователи не сталкиваются, ведь нельзя столкнуться с тем чего для тебя не существует. Первая крайность — это когда клиент покупает за 50$ в месяц очередной хостинг для Wordp...

Как я начал выступать на конференциях и не могу остановиться Современный мир разработки, по-своему, прекрасен. Хорошей практикой считается свободное распространение своих знаний и разработок. Стремление к знаниям создает спрос, а habr, toster (ныне qna), github, митапы, конференции и прочее являются отличным предложением. О митапах и ...