Социальные сети Рунета
Среда, 24 апреля 2024

Реализация целого типа в CPython На Хабре уже были статьи о подробностях реализации менеджера памяти CPython, Pandas, я написал статью про реализацию словаря. Казалось бы, что можно написать про обычный целочисленный тип? Однако тут не всё так просто и целочисленный тип не такой уж и очевидный. Если вам и...

Функциональное программирование с точки зрения EcmaScript. Композиция, каррирование, частичное применение Привет, Хабр! Сегодня мы продолжим наши изыскания на тему функционального программирования в разрезе EcmaScript, на спецификации которого основан JavaScript. В предыдущей статье мы разобрали основные понятия: чистые функции, лямбды, концепцию имутабельности. Сегодня поговор...

Как простой <img> тэг может стать высоким риском для бизнеса? Безопасность на реальных примерах всегда интересна. Сегодня поговорим об SSRF атаке, когда можно заставить сервер делать произвольные запросы в Интернет через img тэг. Итак, недавно занимался тестированием на проникновение одновременно на двух проектах, сразу на двух э...

[Перевод] Разработка простых современных JavaScript-приложений с использованием Webpack и прогрессивных веб-технологий Думали ли вы о том, чтобы воспользоваться при разработке своего очередного веб-проекта простейшим из существующих набором технологий? Если это так — значит материал, перевод которого мы публикуем сегодня, написан специально для вас. JavaScript-фреймворки существуют для того...

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

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

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

Строительные блоки распределенных приложений. Первое приближение В прошлой статье мы разобрали теоретические основы реактивной архитектуры. Пришло время поговорить о потоках данных, путях реализации реактивных Erlang/Elixir систем и шаблонах обмена сообщениями в них: Request-response Request-Chunked Response Response with Request Publis...

[Перевод] Веб-компоненты: 9 проектов, о которых стоит знать в 2019 году Автор материала, перевод которого мы сегодня публикуем, полагает, что если вы собираетесь использовать при проектировании интерфейсов своих приложений веб-компоненты и подыскиваете подходящую библиотеку, независимую от UI-фреймворков, вам стоит взглянуть на те проекты, о кот...

MU-MIMO: один из алгоритмов реализации Предисловие В качестве дополнения к моей недавней статье хотелось бы также поговорить о теме MU (Multi User) MIMO. Есть у мною уже упомянутого профессора Хаардта одна очень известная статья, где он вместе со своими коллегами предлагает алгоритм разделения пользователей по ни...

Обеспечение безопасности в беспроводных протоколах на примере LoRaWAN Привет, Хабр. Мне хотелось бы в очередной раз поговорить о том, как обеспечивается базовый (читай: минимально необходимый) уровень безопасности данных в беспроводных сетях, используемых в IoT-устройствах, на примере LoRaWAN. Почему именно LoRaWAN? Во-первых, потому, что эт...

[Перевод] Чеклист готовности к продакшну Перевод статьи подготовлен специально для студентов курса «DevOps практики и инструменты», который стартует уже сегодня! Вы когда-нибудь выпускали новый сервис в продакшн? Или может занимались сопровождением таких сервисов? Если да, то чем вы руководствовались? Что для п...

[Перевод] Предварительная загрузка в PHP 7.4 Перевод данной статьи подготовлен специально для студентов курса «Backend разработчик на PHP». В PHP 7.4 добавлена предварительная загрузка — возможность, которая позволяет значительно повысить производительность кода. О предзагрузке в двух словах. Для предварительной...

[Перевод - recovery mode ] Использование Union вместо OR Иногда медленные запросы можно исправить, немного изменив запрос. Один из таких примеров может быть проиллюстрирован, когда несколько значений сравниваются в предложении WHERE с помощью оператора OR или IN. Часто OR может вызывать сканирование индекса или таблицы, которая м...

[Перевод] Виды компиляции в JVM: сеанс черной магии с разоблачением Всем привет! Сегодня вашему вниманию предлагается перевод статьи, в котором на примерах разобраны варианты компиляции в JVM. Особое внимание уделено AOT-компиляции, поддерживаемой в Java 9 и выше. Приятного чтения! Читать дальше →

Kubernetes Operator на Python без фреймворков и SDK Go на данный момент является монополистом среди языков программирования, которые люди выбирают для написания операторов для Kubernetes. Тому есть такие объективные причины, как: Существует мощнейший фреймворк для разработки операторов на Go — Operator SDK. На Go написа...

[Перевод] Изучаем Python: модуль argparse Если вы занимаетесь обработкой и анализом данных с использованием Python, то вам, рано или поздно, придётся выйти за пределы Jupyter Notebook, преобразовав свой код в скрипты, которые можно запускать средствами командной строки. Здесь вам и пригодится модуль argparse. Для но...

[Перевод] Выделенная память подов и вмешательство OOM Killer И снова здравствуйте! Перевод следующей статьи подготовлен специально для студентов курса «Инфраструктурная платформа на основе Kubernetes», который запускается уже в этом месяце Начнем. В последние дни некоторые из моих подов постоянно аварийно завершали работу, оставляя...

Смотри меня полностью: выжимаем максимум из live video на мобильных платформах Самый простой способ воспроизвести видео на мобильном устройстве — это открыть ссылку имеющимся в системе плеером, но это не всегда эффективно. Можно взять ExoPlayer и оптимизировать его, а можно вообще написать свой видеоплеер, используя только кодеки и сокеты. В статье ...

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

[Перевод] Как сделать SFINAE изящным и надежным И снова здравствуйте. Делимся с вами интересной статьёй, перевод которой подготовлен специально для студентов курса «Разработчик C++». Сегодня у нас гостевой пост Адама Балаша (Ádám Balázs). Адам является инженером-программистом в Verizon Smart Communities Hungary и зани...

[Перевод] Ускорение instagram.com. Часть 2 Сегодня мы представляем вашему вниманию перевод второго материала из серии, посвящённой оптимизации instagram.com. Здесь речь пойдёт об улучшении механизма заблаговременного выполнения GraphQL-запросов и о повышении эффективности передачи HTML-данных клиенту. → Читать, за...

[Перевод] Реализация PEG парсера Вдохновленный лишь частичным пониманием PEG, я решил попробовать его реализовать. Результат может получиться и не самым лучшим среди парсеров PEG общего назначения — их уже много (например, TatSu написан на Python и генерирует код Python) — но это хороший способ разобраться ...

[Перевод] Понимаем теорему Байеса Перевод статьи подготовлен специально для студентов базового и продвинутого курсов «Математика для Data Science». Теорема Байеса – одна из самых известных теорем в статистике и теории вероятности. Даже если вы не работаете с расчетами количественных показателей, вероятно,...

[Перевод] Примеры C++ кода до и после Ranges Снова здравствуйте. Перевод следующего материала подготовлен специально для студентов курса «Разработчик C++», занятия по которому стартуют уже 27 июня. Библиотека Ranges была принята в C++20 на совещании стандартного комитета в Сан-Диего в ноябре прошлого года. Библиотек...

[Перевод] Новшества JavaScript: итоги Google I/O 2019. Часть 2 Сегодня мы публикуем вторую часть перевода материала о новшествах JavaScript. Здесь мы поговорим о разделителях разрядов чисел, о BigInt-числах, о работе с массивами и объектами, о globalThis, о сортировке, об API интернационализации и о промисах. → Первая часть Читать да...

[Перевод] JWT: Атака на цифровую подпись VS MAC-атака Всем привет. Ни для кого не секрет, что ежемесячно OTUS запускает несколько абсолютно новых уникальных курсов, в этом месяце в их число вошел курс «Пентест. Практика тестирования на проникновение». По устоявшейся традиции, в преддверии старта курса, делимся с вами переводом ...

5 причин для перехода к 3D-печати металлических изделий Если вы занимаетесь проектированием или изготовлением металлических деталей, то вы уже знаете о некоторых возможностях 3D-печати металлом. Возможно, вы даже уже думали об использовании аддитивных технологий для реализации проекта. Так что вас останавливает? Может быть, вы пы...

[Из песочницы] Работа с JSON RPC в Symfony 4 Всем привет, сегодня поговорим о том, как подружить Symfony 4, JSON RPC и OpenAPI 3. Данная статья рассчитана не на новичков, вы уже должны понимать как работать с Symfony, Depedency Injection и другими «страшными» вещами. Сегодня рассмотрим одну конкретную реализацию JSON ...

Инвентаризация от И до Я. Считаем ИТ-активы На этом скриншоте результат работы Quest KACE относительно компьютера бухгалтера одной из российских компаний. Выяснилось, что часть ПО установлена, но не используется. Здесь приведены цены, по которым это ПО закупалось. В вашем случае цена на ПО может отличаться, здесь ва...

[Перевод] Асинхронный PHP. Зачем? Асинхронное программирование сегодня востребовано, особенно в веб-разработке, где отзывчивость приложения особенно важна. Никому не хочется ждать, пока приложение «отвиснет», пусть даже в это время оно выполняет запрос к базе данных, отправляет электронное письмо или работ...

[Из песочницы] Как устроена локализация в Netflix — перевод Привет, Хабр! Представляю вашему вниманию перевод материала «Localization Technologies at Netflix», написанного командой Netflix про внутренние процессы локализации и программы, разработанные специально для этого. Программа локализации в Netflix базируется на трех принци...

[Перевод] 13 полезных однострочников на JavaScript Автор статьи, перевод которой мы сегодня публикуем, говорит, что он программирует на JavaScript уже многие годы. За это время он собрал коллекцию отличных однострочников — фрагментов кода, удивительно мощных, учитывая то, что укладываются они в одну строку. По его словам, бо...

[Перевод] Тренинг Cisco 200-125 CCNA v3.0. День 47. Устранение неполадок OSPF Сегодня мы продолжим тему предыдущего урока о протоколе OSPF, которому посвящен раздел 2.4 тематики ICND2, и рассмотрим устранение типичных проблем реализации этого протокола. Вернемся к примеру Packet Tracer, которым мы закончили последнее видео. Для начала я исправлю обозн...

[Перевод] Примеры использования некоторых новых возможностей JavaScript Автор материала, перевод которого мы сегодня публикуем, говорит, что новые возможности JavaScript, которые попали в стандарт ES2019, уже официально доступны в браузерах Chrome, Firefox и Safari, а также на платформе Node.js. Если нужно поддерживать устаревшие браузеры, то во...

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

[Перевод] API IntersectionObserver и ленивая загрузка изображений Использование ленивой загрузки изображений для улучшения производительности веб-проектов — востребованная техника оптимизации. Всё дело в том, что изображения — это «тяжёлые» ресурсы, которыми переполнены современные веб-сайты. Мы уже кое-что об этом публиковали. Здесь можно...

[Перевод] Возможности Python 3, достойные того, чтобы ими пользовались Многие программисты начали переходить со второй версии Python на третью из-за того, что уже довольно скоро поддержка Python 2 будет прекращена. Автор статьи, перевод которой мы публикуем, отмечает, что основной объём Python 3-кода, который ему доводилось видеть, выглядит как...

Laravel: объясняем основные понятия. Часть вторая: «Практика» Всем привет! Продолжаем серию авторских публикаций в преддверии старта курса «Framework Laravel». В прошлой статье мы с вами посмотрели на теоретические основы Laravel. Однако теорию любого фреймворка можно изучать достаточно долго и ничего не понять, пока сам не напишешь н...

[Перевод] Service mesh для микросервисов. Часть II, основы работы с Istio Перевод статьи подготовлен специально для студентов курса «Инфраструктурная платформа на основе Kubernetes». Настройка базового микросервиса в Kubernetes обманчиво проста. В одной из последних статей мы рассказали, как легко начать работать с контейнерами. Мы скомпоновали п...

[Перевод] Готовьтесь: Angular 8 уже близко Автор материала, перевод которого мы публикуем, предлагает поговорить об Angular 8. Здесь будут рассмотрены некоторые особенно горячие темы, поднятые на мероприятиях NgConf и Google I/O 2019. Поэтому, если вы интересуетесь Angular, но по каким-то причинам не видели докладов ...

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

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

[Из песочницы] Почему нам нужна децентрализация интернета и почему она неизбежна За последний год, а особенно после скандала с Facebook и Cambridge Analytica, в Европе и США начали активно появляться статьи о нарушении конфиденциальности данных IT-компаниями. В особенности со стороны Google и Facebook. Большая часть этих историй преподносится как «вопиющ...

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

Открытый вебинар «Порядок выполнения запроса SELECT и план запроса в MS SQL Server» И снова привет! Коллеги, в последний день января мы запускаем курс «MS SQL Server разработчик», в связи с чем у нас прошёл тематический открытый урок. На нём мы поговорили о том, как MS SQL Server выполняет запрос SELECT, обсудили, в каком порядке и что анализируется, а та...

[Из песочницы] Построение сервис-ориентированной архитектуры на Rails + Kafka Привет, Хабр! Представляю вашему вниманию пост, который является текстовой адаптацией выступления Stella Cotton на RailsConf 2018 и переводом статьи «Building a Service-oriented Architecture with Rails and Kafka» автора Stella Cotton. В последнее время отчетливо виден перех...

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

[Перевод] Реализация анимации в React Native Перевод статьи подготовлен специально для студентов курса «ReactJS/React Native-разработчик». Трудно себе представить мобильное приложение, в котором нет анимации. В вебе анимации обычно простые, если они есть вообще (максимум – одна страница сменяет другую). Анимации же...

ServerLess PHP Накануне запуска курса «Backend-разработчик на PHP» мы провели традиционный открытый урок. В этот раз познакомились с концепцией Serverless, поговорили о её реализации в AWS, разобрали принципы работы, сборки и запуска, а также построили простой TG-бот на PHP на базе AWS Lam...

Безопасность Helm Эмоджи классные, с их помощью можно даже отразить всю суть рассказа о самом популярном пакетном менеджере для Kubernetes: коробка — это Helm (это самое подходящее, что есть в последнем релизе Emoji); замок — безопасность; человечек — решение проблемы. Конечно, построить...

Книга «GraphQL: язык запросов для современных веб-приложений» Привет, Хаброжители! У нас вышла книга по языку запросов GraphQL. Мы решили поделиться переводом главы «Анатомия запросов GraphQL» «Снежный клык» (Snowtooth) — выдуманный горнолыжный курорт. Ради примеров в данной главе мы сделаем вид, что это настоящая гора и мы там работ...

[Перевод] ИИ и 2048. Часть 1: Метод Монте-Карло «2048» через несколько недель исполняется 5 лет, а значит, пора написать что-нибудь, посвящённое этой замечательной игре. Особенно познавательна тема самостоятельной игры искусственного интеллекта в головоломку. Способы реализации есть самые разные и сегодня разберём отно...

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

Корректный ASP.NET Core Специально для любителей книг "С++ за 24 часа" решил написать статью про ASP.NET Core. Если вы раньше не разрабатывали под .NET или под какую-то аналогичную платформу, то смысла заходить под кат для вас нет. А вот если вам интересно узнать что такое IoC, DI, DIP, Intersept...

[Из песочницы] Android preferences delegate В данной статье разобран пример создания делегата для SharedPreferences, который уменьшает boilerplate и делает использование SharedPrefernces более удобным. Те кто хочет посмотреть результат, может перейти к готовому решению, остальным добро пожаловать под кат. Читать дальш...

[Перевод] Почему в основе каждого нового веб-приложения в PayPal лежит TypeScript? Недавно мы опубликовали материал, в котором Эрик Эллиот критиковал TypeScript. Сегодня мы представляем вашему вниманию перевод статьи Кента Доддса. Тут он рассказывает о том, почему в PayPal перешли с Flow на TypeScript. Читать дальше →

Внимание! Опасный баг в реализации C++ std::map::merge в Visual Studio 2017 Если Вы используете стандарт C++17 в MS Visual Studio 2017 — будьте осторожны: текущая реализация содержит критический баг в реализации std::map::merge и std::set::merge. Подробности — под катом. Читать дальше →

Математика в Gamedev по-простому. Кривые и дождь в Unity Всем привет! Меня зовут Гриша, и я основатель CGDevs. Продолжим говорить про математику что ли. Пожалуй, основное применение математики в геймдеве и компьютерной графики в целом – это VFX. Вот и поговорим про один такой эффект – дождь, а точнее про его основную часть, требую...

C/C++ из Python Про то как вызывать Python из C написал в прошлой статье, теперь поговорим как делать наоборот и вызывать C/C++ из Python. Раз начал писать об этом, то раскроем всю тему до конца. Тем более, что ни чего сложного здесь нет тоже. Читать дальше →

(Статический) Подбор оптимальных контейнеров в программах на C++ Здравствуйте. Сегодня хотелось бы поговорить снова про статический анализ. И снова про C++. Только в отличие от PVS-Studio мы будем искать не какие-то ошибки в наших программах (хотя они ищут не только ошибки), а места, которые написаны недостаточно оптимально. И одним из та...

[Перевод] 10 малоизвестных возможностей инструментов разработчика Chrome Автор заметки, перевод которой мы публикуем, пользуется инструментами разработчика Chrome почти каждый день. Здесь он хочет рассказать о малоизвестных возможностях этих инструментов. Он говорит, что если бы знал о них раньше, то ему они точно бы пригодились. Читать дальше ...

[Из песочницы] Почему плохо, когда Интернет знает о вас всё? Привет, Хабр! Предлагаю вашему вниманию перевод статьи "The Dangers of Overpersonalization" авторов Kim Flaherty и Kate Moran. Итог: Излишняя персонализация контента приводит к однородному и безразличному восприятию пользователем информации и может вызывать усталос...

[Из песочницы] Структуры данных в Java. Полезные методы вспомогательных классов Привет, habr! Я Software Engineer в EPAM. Более 8 лет я работаю с legacy-кодом, написанном на языке Java (предвосхищая комментарии, отмечу, что понимание и терпимость к legacy началась задолго до EPAM, в заключении вы найдёте ответ, почему). Часто в работе я сталкивался с ...

[Перевод] Рекомендации по созданию приложений на React Native. Часть 1 Добрый день, хабровчане. Сегодня делимся с вами переводом статьи, перевод которой был подготовлен специально для первого запуска курса «ReactJS/React Native-разработчик». Приятного прочтения. Если вы новичок в мире React Native, то вы знаете, что в нем есть некоторые по...

[Перевод] «Алгебраические эффекты» человеческим языком Комментарий от переводчика: Это перевод замечательной статьи Дэна Абрамова (Dan Abramov), являющегося контрибутором React. Его примеры написаны для JS, но будут одинаково понятны разработчикам на любом языке. Идея общая для всех. Вы слышали об алгебраических эффектах? Мои п...

[Из песочницы] Англоязычная кроссплатформенная утилита для просмотра российских квалифицированных сертификатов x509 Сегодня использование цифровых сертификатов X509 v.3 стало обыденным делом. Все больше людей используют их для доступа на сайт Госуслуги, ФНС, электронные торги и т.д. И все больше людей хотят знать что же находится в этом «сундуке» под названием сертификат. И если сертифик...

[Перевод] Первое знакомство с AssemblyScript Поддержка технологии WebAssembly (Wasm) появилась в браузерах относительно недавно. Но эта технология вполне может серьёзно расширить возможности веба, сделав его платформой, способной поддерживать такие приложения, которые обычно воспринимаются как настольные. Освоение Web...

[Перевод] Понимаем Property Wrappers в SwiftUI Перевод статьи подготовлен специально для студентов курса «iOS Разработчик. Продвинутый курс v 2.0.» На прошлой неделе мы начали новую серию постов о фреймворке SwiftUI. Сегодня я хочу продолжить эту тему, рассказав о Property Wrappers в SwiftUI. SwiftUI предоставляет нам...

[Перевод] Полное руководство по массивам и срезам в Golang Перевод статьи подготовлен специально для студентов курса «Разработчик Golang», занятия по которому начинаются уже сегодня! Поначалу легко воспринимать массивы и срезы как одно и то же, но с разными названиями: и то и другое является структурой данных для представления ко...

[Из песочницы] Использование SQLite в Unity (Unity + SQLite) Всем привет, данная публикация будет посвящена работе с встраиваемой реляционной базой данных SQLite в Unity. Данная статья написана новичком для новичков с целью показания работы с SQLite, предполагается, что вы знаете основы SQL. Так как в интернете нет ясного тутора для н...

СКУД моего ЖК — безопасность на двух болтах Спешу предупредить читателей: Данная статья написана только для ознакомления, и ни в коем случае не призывает к любым противоправным действием. Автор не несет ответственности за любые неправомерные действия совершенные людьми с использованием информации из данной статьи. Пр...

Изучая Dependency Injection Несмотря на то, что паттерну уже более десятка лет и есть немало статей (и переводов), тем не менее споров, комментариев, вопросов и разных реализаций становится все больше и больше. ПредысторияВ 2004 Мартин Фаулер написал известную статью “Inversion of Control Containers ...

[Перевод] Vue.js: 3 анти-паттерна Вероятно, Vue.js — это один из приятнейших JavaScript-фреймворков. У него имеется интуитивно понятный API, он быстрый, гибкий, им легко пользоваться. Однако гибкость Vue.js соседствует с определёнными опасностями. Некоторые разработчики, работающие с этим фреймворком, склонн...

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

Как ускорить разжатие LZ4 в ClickHouse При выполнении запросов в ClickHouse можно обратить внимание, что в профайлере на одном из первых мест часто видна функция LZ_decompress_fast. Почему так происходит? Этот вопрос стал поводом для целого исследования по выбору лучшего алгоритма разжатия. Здесь я публикую иссле...

Как ускорить шифрование по ГОСТ 28147-89 на процессоре Байкал-Т1 за счет SIMD-блока В статье на примере описания реализации алгоритма шифрования по ГОСТ 28147–89, построенного на сети Фейстеля, показаны возможности двухъядерного процессора BE-T1000 (aka Байкал-Т1) и проведены сравнительные испытания реализации алгоритма с помощью векторных вычислений с сопр...

Как мы создали систему оповещения о ядерной угрозе, или как я обучил нейросеть на заголовках Хабра Заголовок статьи может показаться странным и это неспроста — он прекрасен именно тем, что написал его не я, а LSTM-нейросеть (а точнее его часть перед "или"). (схема LSTM взята из Understanding LSTM Networks) И сегодня мы разберёмся, как можно генерировать заголовки статей ...

[Перевод] Введение в Redis с использованием Spring Boot Перевод статьи подготовлен специально для студентов курса «Разработчик на Spring Framework». В этой статье мы рассмотрим основы использования Redis через Spring Boot с помощью библиотеки Spring Data Redis. Мы создадим приложение, которое демонстрирует, как выполнять CR...

Как технический перевод превращается в минидетектив Представлюсь Я ИТ-переводчик, эпизодически — преподаватель перевода. Занимаюсь переводами я с 2006 года, читаю Habr.com регулярно, но публикуюсь здесь впервые. На проектах, вытягивая из слов технический смысл, я иногда забредаю туда, куда обычно переводчики не заглядываю...

[Перевод] Новшества JavaScript: итоги Google I/O 2019. Часть 1 Материал, первую часть перевода которого мы сегодня публикуем, посвящён новым стандартным возможностям JavaScript, о которых шла речь на конференции Google I/O 2019. В частности, здесь мы поговорим о регулярных выражениях, о полях классов, о работе со строками. Ретроспект...

[Перевод] Оценка влияния искусственного интеллекта на оффшорную нефть и газ Перевод статьи подготовлен специально для студентов базового и продвинутого курсов «Математика для Data Science». Интересно развиваться в данном направлении? Смотрите записи мастер-классов «Линейная алгебра: матрицы и их практическое применение» и «Математика для Data Scienc...

Реализация Kotlin Flow на C# Всем привет! Последние годы я занимаюсь разработкой под Андроид на Котлине. Не так давно, за неимением RxJava на Kotlin multiplatform, мы начали использовать корутины и flow – холодные стримы для Котлина из коробки. До Андроида я много лет провёл с C#, и там свои корутины е...

[Перевод] Тренинг Cisco 200-125 CCNA v3.0. День 11. Основы VLAN Прежде чем мы приступим к основам VLAN, я бы попросил всех вас поставить это видео на паузу, нажать на иконку в нижнем левом углу, где написано Networking consultant, зайти на нашу страничку Facebook и поставить там лайк. Затем вернитесь к видео и нажмите на иконку King в пр...

Кустарная Колыбель Ньютона Здравствуй, дорогой читатель! Я уже написал первую статью с самыми основами Box2D в Eclipse на Java. Сегодня на примере Колыбели Ньютона покажу, как настроить связь объектов в этой чудесной физической библиотеке. Что же мы ожидаем увидеть? Рисунок 1. Слишком хорошо! Читат...

Математика в Gamedev по-простому. Триангуляции и Triangle.Net в Unity Всем привет! Меня зовут Гриша, и я основатель CGDevs. Математика – очень крутой инструмент при разработке игр. Но если скажем без понимания векторов и матриц обойтись в принципе сложно, то алгоритмы триангуляций не столь обязательная вещь, но с помощью них решается достаточн...

Анализ производительности запросов в ClickHouse. Доклад Яндекса Что делать, если ваш запрос к базе выполняется недостаточно быстро? Как узнать, оптимально ли запрос использует вычислительные ресурсы или его можно ускорить? На последней конференции HighLoad++ в Москве я рассказал об интроспекции производительности запросов — и о том, что ...

AMA с Хабром v.10. Последний* выпуск * шутка конечно же — последний именно в июне. Но если хотите задать нам вопрос, то не откладывайте! Привет Хабр! Ну вот и первый «юбилейный» выпуск серии вопросов и ответов к Хабру. Мы публикуем его каждую последнюю пятницу месяца, а значит вот уже 10 месяцев как вы задаёте...

MVCC в PostgreSQL-8. Заморозка Мы начали с вопросов, связанных с изоляцией, сделали отступление про организацию данных на низком уровне, подробно поговорили о версиях строк и о том, как из версий получаются снимки данных. Затем мы рассмотрели разные виды очистки: внутристраничную (вместе с HOT-обновления...

Как готовят пентестеров? Разбор вступительных испытаний для стажеров «Digital Security» Summer of Hack 2019 в Digital Security уже идёт полным ходом, а значит самое время рассказать, как мы набирали людей. Под катом объемный и интересный материал о том, как мы отбираем молодых специалистов к нам на стажировку «Summer of Hack 2019», а конкретно — в департаме...

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

Tic Tac Toe, часть 5: Бэкенд на С++ Boost.Beast, HTTP В этой статье рассмотрим реализацию бэкенда с применением C++ Boost.Beast библиотеки на примере синхронного сервера. Та же функциональность, что и в прошлой статье — получаем от бэкенда случайное число от 0 до 8 включительно. Оказалось, что поднимать контейнер для Beast ничу...

[Перевод] 10 самых влиятельных языков программирования последних 50 лет и их создатели В IT-вселенной существует множество языков программирования. С каждым годом их становится всё больше и больше. Например, сравнительно недавно появились языки Scala, Kotlin, Go и Closure. Но история говорит нам о том, что выживут лишь немногие из них. Языки, о которых пойдёт...

[Перевод] Руководство по аутентификации в Node.js без passport.js и сторонних сервисов Автор статьи, перевод которой мы сегодня публикуем, говорит, что сейчас можно наблюдать рост популярности таких сервисов аутентификации, как Google Firebase Authentication, AWS Cognito и Auth0. Индустриальным стандартом стали универсальные решения наподобие passport.js. Но, ...

[Перевод] Руководство по Docker Compose для начинающих Автор статьи, перевод которой мы сегодня публикуем, говорит, что она предназначена для тех разработчиков, которые хотят изучить Docker Compose и идут к тому, чтобы создать своё первое клиент-серверное приложение с использованием Docker. Предполагается, что читатель этого мат...

[Из песочницы] Почему вам стоит выкинуть MVP из своих проектов Всем привет! Сегодня я бы хотел поговорить об архитектуре Android-приложений. На самом деле я не очень люблю доклады и статьи на данную тему, но недавно ко мне пришло осознание, с которым я бы хотел поделиться. Читать дальше →

[Перевод] Метрики производительности для исследования невероятно быстрых веб-приложений Есть одно высказывание: «Что ты не можешь измерить, то ты не можешь улучшить». Автор статьи, перевод которой мы сегодня публикуем, работает в компании Superhuman. Он говорит, что эта компания занимается разработкой самого быстрого в мире почтового клиента. Здесь речь пойдёт ...

Бро vs. не бро В этой статье предлагаю совершить экскурс в социобиологию и поговорить о эволюционных истоках альтруизма, родственном отборе и агрессии. Мы коротко (но со ссылками) рассмотрим результаты социологических исследований и исследований с нейровизуализацией, в которых показано, ка...

[Перевод] Node.js: управление памятью, доступной приложениям, выполняемым в контейнерах При запуске Node.js-приложений в контейнерах Docker традиционные настройки памяти не всегда работают так, как ожидается. Материал, перевод которого мы сегодня публикуем, посвящён поиску ответа на вопрос о том, почему это так. Здесь же будут приведены практические рекомендаци...

Стратегическое партнерство: почему ServiceNow объединяются с крупным облачным провайдером Microsoft заключили партнерское соглашение с компанией ServiceNow, внедрением решений которой занимаемся мы в «ИТ Гильдии». Поговорим о возможных целях сделки. Читать дальше →

К вопросу о VNA или японо-китайский прибор «А что, так можно было?» В крайнем посте Джека Гансли был упомянут появившийся недавно на просторах Инета прибор, именуемый NanoVNA, или малогабаритный портативный векторный анализатор цепей (ВАЦ) в диапазоне 50кГц-900МГц со стоимостью 50 долларов США. «Пятьдесят долларов,...

[Перевод] SVG или canvas? SVG и canvas — это технологии, которые можно использовать для рисования чего-либо на веб-страницах. Поэтому их стоит сравнить и разобраться в том, когда стоит применять SVG, а когда — canvas. Даже весьма поверхностное понимание сути этих технологий позволяет сделать вполне...

Взгляд со стороны EcmaScript на общую теорию ООП Привет, Хабр! До сего дня я занимался лишь переводами интересных, на мой взгляд, статей англоязычных авторов. И вот настала пора самому что-то написать. Для первой статьи я выбрал тему, которая, я уверен, будет полезна junior-разработчикам, стремящимся дорасти до «мидлов»,...

Запрос к API c React Hooks, HOC или Render Prop Рассмотрим реализацию запроса данных к API c помощью нового друга React Hooks и старых добрых товарищей Render Prop и HOC (Higher Order Component). Выясним, действительно ли новый друг лучше старых двух. Читать дальше →

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

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

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

Управляем Windows Server из Windows Admin Center В данной статье мы продолжаем рассказывать про работу с Windows Server Core 2019. В прошлых постах мы рассказали как готовим клиентские виртуальные машины на примере нашего нового тарифа VDS Ultralight с Server Core за 99 рублей. Затем показали как работать с Windows Server ...

[Перевод] React Native: Создание анимированного поля ввода с помощью Animated API Всем привет! Сегодня делимся с вами познавательным материалом, перевод которого подготовлен специально для студентов курса «ReactJS/React Native-разработчик». Итак, начнем. Все мы видели такие поля для ввода: Надпись большая и выглядит как плейсхолдер, пока вы не наве...

10. Check Point Getting Started R80.20. Identity Awareness Добро пожаловать на юбилейный — 10-й урок. И сегодня мы поговорим о еще одном блейде Check Point — Identity Awareness. Еще в самом начале, при описании NGFW, мы определили, что для него обязательна возможность регулирования доступа на основе учетных записей, а не IP-адресо...

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

[Перевод] Учебный курс по React, часть 6: о некоторых особенностях курса, JSX и JavaScript Сегодня мы публикуем продолжение учебного курса по React. Здесь речь пойдёт о некоторых особенностях курса, касающихся, в частности, стиля кода. Тут же мы подробнее поговорим о взаимоотношениях между JSX и JavaScript. → Часть 1: обзор курса, причины популярности React, Re...

[Из песочницы] Свой mapper или немного про ExpressionTrees Сегодня мы поговорим про то, как написать свой AutoMapper. Да, мне бы очень хотелось рассказать вам об этом, но я не смогу. Дело в том, что подобные решения очень большие, имеют историю проб и ошибок, а также прошли долгий путь применения. Я лишь могу дать понимание того, ...

Синхронизация клиентских запросов в Spring Сегодня предлагаю Вам разобрать одну практическую задачу о гонке клиентских запросов, с которой я столкнулся в МаксимаТелеком при разработке back-end для нашего мобильного приложения MT_FREE. При старте клиентское приложение асинхронно отправляет «пачку» запросов к API. При...

Маленькие создания, большие деяния: роль листорезов в парниковом эффекте неотропики Какое существо частенько ассоциируется в культуре человека с трудолюбием, выносливостью, коллективностью и даже ответственностью? Если вы подумали про пчел, то вы правы, но сегодня не о них. Сегодня мы поговорим о муравьях, и не о «простых», а о листорезах. С чего это мы в...

Plasma Cash Chain как решение трилеммы масштабируемости в блокчейн Добрый день, уважаемые читатели! Данная статья посвящена Plasma Cash Chain и проливает свет на следующие темы: трилемма масштабируемости и способы ее решения; структуры данных чайлд чейна и их отображение в рутчейне; реализация ввода в рутчейн; реализация вывода из рутче...

Разработка ТамТам-бота на Python Привет, Хабр! Позвольте представиться: меня зовут Сергей Агальцов, и я "программист по жизни". Это значит, что я давно уже IT-менеджер, а вовсе не программист по профессии, но программирование использую постоянно, как в своей основной деятельности, так и как хобби. Как част...

Принимаем участие в недавнем Telegram Contest, пишем крутое OpenGL ES приложение и выигрываем ничего Забегая вперед, хотелось бы обратить внимание на сумбурную ситуацию с победителем первого этапа конкурса. Победитель забрал 50К американских президентов. НО, был как минимум, еще один разработчик, который написал идентичное приложение и не был никак вознагражден. Он даже по...

[Перевод] Неизменяемых коллекций в Java не будет – ни сейчас, ни когда-либо Всем привет! Сегодня вашему вниманию предлагается перевод вдумчиво написанной статьи об одной из базовых проблем Java — изменяемости, и о том, как она сказывается на устройстве структур данных и на работе с ними. Материал взят из блога Николая Парлога (Nicolai Parlog), чей...

[Из песочницы] Что значит unsafe в Rust? Привет, Хабр! Представляю вашему вниманию перевод статьи "What Is Rust's unsafe?" автора Nora Codes. Мне доводилось видеть много недопониманий относительно того, что значит ключевое слово unsafe для полезности и правильности языка Rust и его продвижения как "б...

Domain-driven design: рецепт для прагматика Почему к DDD обычно подходят не с той стороны? А с какой стороны надо? Какое отношение ко всему этому имеют жирафы и утконосы? Специально для Хабра — текстовая расшифровка доклада «Domain-driven design: рецепт для прагматика». Доклад был сделан на .NET-конференции DotNext,...

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

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

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

Семинар по SLS 6 сентября Приглашаем вас на семинар по SLS-3D-печати, который пройдет 6 сентября в технопарке «Калибр»: «Возможности, преимущества над FDM и SLA, примеры внедрения». На семинаре представители Sinterit, приехавшие специально для этого из Польши, ознакомят участников с первой доступно...

Работа с командами APDU на примере EToken "… Путь не так уж сложен для понимания. Силы природы, естественные наклонности, схемы событий… Примитивное миропонимание замечает только четыре стихии и дальше этого не идёт. Словно вселенная сводится к четырём доступным созерцанию понятным явлениям." Стивен Эриксон. «Полноч...

[Перевод] Заложники COBOL и математика. Часть 2 Сегодня публикуем вторую часть перевода материала о математике, о COBOL, и о том, почему этот язык всё ещё жив. → Первая часть Читать дальше →

Как зависит перевод термина trunk от вендора коммутаторов? На эту ошибку (или, если хотите, разночтение) я обратил внимание во время проверки перевода по коммутаторам NETGEAR. Дело в том, что при переводе термина “trunk” нужно обязательно учитывать, чьей трактовки придерживается вендор — Cisco или HP, ибо между ними очень разный тех...

Хватит паранойи или почему вам не светит 100 баллов в Page Speed Йо-йо! Отличная штука SEO. Никто не знает, что делать наверняка, почему сайт «не в топ» и почему онлайн-бизнес не работает. И в поисках истинной причины владельцы сайтов становятся как сорокалетние тётушки, которые верят всякой ерунде цыганок на рынке. И вот взяв в руки клав...

[Перевод] Визуализируем и разбираемся с Hash Match Join Этот пост является третьей частью серии, посвященной операторам соединения (обязательно прочитайте часть 1 — nested loops joins, и часть 2 — merge joins). Перевод статьи подготовлен специально для студентов курса «MS SQL Server разработчик». Hash Match Joins — это надежные ...

[Из песочницы] Секретная программа США по изучению НЛО занималась также исследованиями червоточин и дополнительных измерений Привет, Хабр! Представляю вашему вниманию перевод статьи «The Government’s Secret UFO Program Funded Research on Wormholes and Extra Dimensions» автора Sarah Emerson. Министерство обороны США опубликовало документы, где раскрываются подробности работы печально известной «Пр...

VR\AR на вооружении цифрового ритейла «Я создал ОАЗИС, потому что чувствовал себя некомфортно в реальном мире. Не знал как ладить с людьми. Боялся всю свою жизнь. Пока не понял, что конец близок. Только тогда я понял, что наряду с тем какой жестокой и страшной может быть реальность, она остаётся единственным мес...

[Из песочницы] Пишем VLC плагин для изучения английского В данной статье я расскажу о том, как написать плагин на языке C для медиаплеера VLC. Я написал свой плагин для упрощения просмотра сериалов и фильмов на английском языке. Идея создания этого плагина описывается в разделах Идея и Поиск решения. Технические детали реализаци...

[Перевод] Ускоряем JavaScript-код с использованием типа данных Set Автор материала, перевод которого мы сегодня публикуем, говорит, что уверен в том, что многие JavaScript-разработчики пользуются, в основном, такими типами данных, как Number, String, Object, Array и Boolean. В большинстве случаев этого вполне достаточно. Но если нужно сдела...

[Перевод] Учебный курс по React, часть 5: начало работы над TODO-приложением, основы стилизации Сегодня, в следующей части перевода учебного курса по React, мы начнём работу над первым учебным проектом и поговорим об основах стилизации. → Часть 1: обзор курса, причины популярности React, ReactDOM и JSX → Часть 2: функциональные компоненты → Часть 3: файлы компоненто...

[Перевод] Гид по параллельному масштабированию Amazon Redshift и результаты тестирования Мы в Skyeng пользуемся Amazon Redshift, в том числе параллельным масштабированием, поэтому статья Стефана Громолла, основателя dotgo.com, для intermix.io, показалась нам интересной. После перевода — немного нашего опыта от инженера по данным Данияра Белходжаева. Архитекту...

Логирование HTTP запросов в Spring Boot с использованием Бобины Приветствую, дорогие друзья! Сегодня я хочу продемонстрировать потрясающий пример того, как Бобина может помочь в очень распространённой ситуации — логирование HTTP запросов и ответов в Spring Boot. Даже больше! Мы будем логировать только сообщения HTTP в отдельные файлы. Чи...

[Перевод] Сети Kubernetes: Ingress Сегодня мы публикуем перевод третьей части руководства по работе с сетями в Kubernetes. В первой части речь шла о подах, во второй — о сервисах, а сегодня мы поговорим о балансировке нагрузки и о ресурсах Kubernetes вида Ingress. Читать дальше →

[Перевод] Топ 20 навигационных фич в IntelliJ IDEA Перевод статьи подготовлен специально для студентов курса «Android-разработчик. Продвинутый курс». И хотя в данном материале речь пойдет преимущественно о Java, материал будет полезен Android-разработчикам Продолжая серию статей, в которых я освещаю основные фичи IntelliJ...

Исповедь docker хейтера Я должен признаться. Я ненавижу docker. Всей своей душой. Это самая ужасная софтина, которую я видел за последние 10 лет. С одной стороны, я очень уважаю одноименную компанию. Ребята из Docker Inc. реально популяризировали контейнеризацию. Теперь о ней не знает только ленивы...

[Перевод] Новости из мира OpenStreetMap № 472 (30.07.2019-05.08.2019) How to carve OSM data into a slade plate – by Harald Hartmann 1 | Foto Harald Hartmann | Map data OpenStreetmap contributors Картографирование Продолжаются дискуссии (в Twitter, в списке рассылки) вокруг онлайн-редактора от Facebook — RapiD'a. Если вы хотите серьезно погр...

[Перевод] Современные возможности C++, о которых надо знать всем программистам Автор материала, перевод которого мы сегодня публикуем, говорит, что C++, в его современном виде, если сравнивать его с тем, чем был этот язык несколько лет назад, значительно изменился в лучшую сторону. Конечно, эти изменения произошли далеко не сразу. Например, в былые вре...

[Из песочницы] Domain Driven Design: Value Objects и Entity Framework Core на практике На Хабре и не только написано приличное количество статей про Domain Driven Design — как в общем про архитектуру, так и с примерами на .Net. Но при этом зачастую слабо упоминается такая важнейшая часть этой архитектуры, как Value Objects. В этой статье я постараюсь раскрыт...

[Из песочницы] UICollectionView всему голова: Изменение представления на лету Привет, Хабр! Представляю вашему вниманию перевод статьи "UICollectionView Tutorial: Changing presentation on the fly". В данной статье мы рассмотрим использование различный способов отображение элементов, а также их переиспользование и динамическое изменение. Зде...

[Из песочницы] Помощь и просьба о ней. Статья про информационную безопасность для рядовых пользователей Я предлагаю вам некоторые шаги по повышению безопасности и приватности в интернет сети (и не только) для рядовых пользователей. Обоснование почему это необходимо – в начале статьи. Для тех кто всё знает и недоумевает почему этот текст находится здесь — просьба прочитать пунк...

[Из песочницы] Криптография в Java Привет, Хабр! Представляю вашему вниманию перевод статьи "Java Cryptography" автора Jakob Jenkov. Данная публикация является переводом первой статьи Java Cryptography из серии статей для начинающих, желающих освоить основы криптографии в Java. Читать дальше →

[Перевод] Ускорение instagram.com. Часть 3 Сегодня публикуем перевод третьей части серии материалов об ускорении instagram.com. В первой части мы говорили о предварительной загрузке данных, во второй — об отправке данных клиенту по инициативе сервера. Здесь речь пойдёт о кэшировании. Читать дальше →

[Перевод] Внутренности JVM, Часть 1 — Загрузчик классов Перевод статьи подготовлен специально для студентов курса «Разработчик Java». В этой серии статей я расскажу о том, как работает Java Virtual Machine. Сегодня мы рассмотрим механизм загрузки классов в JVM. Читать дальше →

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

[Перевод] HTTP/3: от корней до кончиков Протокол прикладного уровня HTTP лежит в основе интернета. Он начал свою жизнь в 1991 году как HTTP/0.9, а к 1999 году превратился в HTTP/1.1, который был стандартизирован Инженерным советом Интернета (IETF). HTTP/1.1 долго всех удовлетворял, но растущие потребности Сети п...

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

Некоторые аспекты мониторинга MS SQL Server. Рекомендации по настройке флагов трассировки Предисловие Довольно часто пользователи, разработчики и администраторы СУБД MS SQL Server сталкиваются с проблемами производительности БД или СУБД в целом, поэтому весьма актуальным является мониторинг MS SQL Server. Данная статья является дополнением к статье Использование ...

[Перевод] Добавление Quartz в Spring Boot И снова здравствуйте. Специально для студентов курса «Разработчик на Spring Framework» подготовили перевод интересной статьи. В моей статье «Specifications to the Rescue» я показал как можно использовать JPA Specification в Spring Boot для реализации фильтрации в RESTful ...

Garbage Collector. Полный курс + перевод из BOTR В данной статье вы встретите сразу два источника информации: Полный курс по работе Garbage Collector на русском языке: CLRium #6 (текущий семинар здесь) Перевод статьи из BOTR "Устройство сборщика мусора" от Маони Стевенс. Читать дальше →

Опыт перевода Maven-проекта на Multi-Release Jar: уже можно, но ещё сложно У меня есть маленькая библиотека StreamEx, которая расширяет возможности Java 8 Stream API. Библиотеку я традиционно собираю через Maven, и по большей части меня всё устраивает. Однако вот захотелось экспериментов. Некоторые вещи в библиотеке должны работать по-разному в раз...

[recovery mode] Индустрия 4.0: идеи автономного предприятия от SAP и KUKA Привет, Хабр! Сегодня поговорим об автоматизации технологического «умного» оборудования, которого становится все больше и больше на современных предприятиях. Оно может достаточно легко быть интегрировано с учетными и управляющими системами SAP для создания единого программн...

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

[Перевод] GraphQL и Golang Технология GraphQL за последние несколько лет, после того, как компания Facebook перевела её в разряд опенсорсных, стала весьма популярной. Автор материала, перевод которого мы сегодня публикуем, говорит, что попробовал работать с GraphQL в среде Node.js и на собственном опы...

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

Liveprof покажет, когда и почему менялась производительность вашего PHP-приложения Привет, Хабр! Меня зовут Тимур Шагиахметов, я PHP-разработчик в Badoo. Производительность приложения — один из важнейших критериев качества работы программиста. В вопросах оптимизации PHP-приложений помощником является профайлер. Недавно мы рассказывали о том, какими и...

Гибкая схема хранения данных в MySQL (JSON) Александр Рубин работает в компании Percona и не единожды выступал на HighLoad++, знаком участникам как эксперт в MySQL. Логично предположить, что и сегодня речь пойдет про что-то, связанное с MySQL. Это так, но лишь отчасти, потому что еще мы поговорим про интернет вещей. Р...

Обзор JetX. Гонка на максимальной скорости Сегодня мне удалось протестировать игру JetX и оказалось, что гоночные симуляторы, если можно так сказать, живее всех живых. Я почему-то думал, что даже у крупных студий уже не получается придумать интересную идею и реализовать ее, а здесь у нас яркий пример того, что классн...

Схемы электрические. Типы схем Привет Хабр! Чаще в статьях приводят вместо электрических схем красочные картинки, из-за этого возникают споры в комментариях. В связи с этим, решил написать небольшую статью-ликбез по типам электрических схем, классифицируемых в Единой системе конструкторской документац...

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

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

Пишем XGBoost с нуля — часть 1: деревья решений Привет, Хабр! После многочисленных поисков качественных руководств о решающих деревьях и ансамблевых алгоритмах (бустинг, решающий лес и пр.) с их непосредственной реализацией на языках программирования, и так ничего не найдя (кто найдёт — напишите в комментах, может, что...

[Перевод] Параллельные интеграционные тесты базы данных Postgresql в приложении GO Интеграционные тесты это один из уровней пирамиды тестирования. Обычно они требуют больше времени, т.к. в них мы ничего не подменяем на имитации реальных компонентов. Чтобы уменьшить время на такие тесты мы можем запускать их параллельно. Здесь я специально расскажу о таких...

Обнаружение пересекающихся сообществ в Instagram для определения интересов пользователей Сколько может рассказать о человеке профиль в соцсети? Фотографии, посты, комментарии, подписки – непаханное поле для анализа. Сегодня поговорим о том, как мы определяем интересы пользователей на основе их подписок в сети Instagram. Источник Читать дальше →

Reactor, WebFlux, Kotlin Coroutines, или Асинхронность на простом примере Многие сервисы в современном мире, по большей части, «ничего не делают». Их задачи сводятся к запросам к другим базам/сервисам/кешам и агрегации всех этих данных по различным правилам и разнообразной бизнес-логике. Поэтому неудивительно, что появляются такие языки, как Go...

[Перевод] Исчерпывающий список различий между VB.NET и C#. Часть 2 В первой части статьи тема превосходства VB.NET над C# по рейтингу TIOBE нашла живой отклик в комментариях. Поэтому по совету AngReload посмотрим на тренды StackOverflow. C# все еще силен! Революция, о которой так долго говорили в прошлый раз, отменяется! Ура, товарищи! Или...

Как не промахнуться с бюджетом на серийное производство корпусов: 20 примеров из практики бюро по инженерному дизайну Публикация всего двух статей о том, как самостоятельно оценить стоимость производства корпуса для прибора (первая и вторая) подняла просто волну запросов из серии «А вот сколько будет стоить наш корпус при тираже 5-100-1000- ∞ штук?» Как выясняется в ходе общения, большин...

Новый стандарт на базе PCIe 5.0 «свяжет» CPU и GPU — что о нем известно Консорциум CXL представил новый открытый стандарт — Compute Express Link (CXL). Он поможет организовать высокоскоростную связь между процессором и другими устройствами — GPU, FPGA и памятью. В основу CXL 1.0 лег интерфейс PCIe 5.0, спецификация которого ожидается в этом году...

[Из песочницы] Краткое введение в рекурсию. JavaScript Перевод: Привет, Хабр! Представляю вашему вниманию перевод статьи "A Quick Intro to Recursion in Javascript" Yazeed Bzadough. Примечание. Рекурсия не единожды обсуждалась на хабре, но данная статья даёт базовое понимание рекурсии. Это будет полезно начинающим разр...

Nextcloud внутри, а снаружи OpenLiteSpeed: настраиваем обратное проксирование Как настроить OpenLiteSpeed на обратное проксирование в Nextcloud, находящийся во внутренней сети? Удивительно, но поиск на Хабре по запросу OpenLiteSpeed не даёт ничего! Спешу исправить эту несправедливость, ведь LSWS – достойный веб-сервер. Я люблю его за скорость и модный...

[Перевод] Практический пример использования render-функций Vue: создание типографской сетки для дизайн-системы В материале, перевод которого мы сегодня публикуем, речь пойдёт о том, как создать типографскую сетку для дизайн-системы с использованием render-функций Vue. Вот демонстрационная версия проекта, который мы будем здесь рассматривать. Здесь можно найти его код. Автор этого мат...

[Перевод] Управление стейтом с помощью React Hooks – без Redux и Context API Всем привет! Меня зовут Артур, я работаю ВКонтакте в команде мобильного веба, занимаюсь проектом VKUI — библиотекой React-компонентов, с помощью которой написаны некоторые наши интерфейсы в мобильных приложениях. Вопрос работы с глобальным стейтом у нас пока открыт. Существу...

RBKmoney Payments под капотом — микросервисы, протоколы и конфигурация платформы Привет Хабр! RBKmoney снова выходит на связь и продолжает цикл статей о том, как написать платежный процессинг своими руками. Хотелось сразу погрузиться подробности описания реализации платежного бизнес-процесса как конечного автомата, показать примеры такого автомата с наб...

[Перевод] C# Regex в примерах Перевод статьи подготовлен специально для студентов курса «Разработчик С#». Класс Regex реализует регулярные выражения в C#. В этой статье вы узнаете, как использовать C# Regex для проверки различных пользовательских входных данных. Regex в C# реализует регулярные выра...

[Перевод] Детальный разбор AWS Lambda Перевод статьи подготовлен специально для студентов курса «Облачные сервисы». Интересно развиваться в данном направлении? Смотрите мастер-класс Егора Зуева (TeamLead в компании InBit) «AWS EC2 сервис» и присоединяйтесь к ближайшей группе курса: старт 26 сентября. Все больш...

Тренды сферы финансов: крупным компаниям нужно все больше ИТ-специалистов Сфера финансов — высокотехнологичная отрасль. Для того, чтобы пользователи могли не вставая с дивана подать заявку на кредит или купить акции той или иной компании, задействуются различные протоколы передачи финансовых данных (например, FIX, FAST, Plaza II), терминалы, бро...

Предварительный обзор Acer Swift 3. В новом дизайне Сегодня мы поговорим о достаточно продвинутом устройстве, которое создавали специально для тех пользователей, которые хотят получить доступный ноутбук без лишней производительности. Устройство и правда достаточно интересное, так что советуем изучить информацию более досконал...

Размышления о карьере в ИТ Сделать быструю карьеру в области разработки сегодня не так просто, как кажется. Если начать работать, например, в сфере финансов, то в 30 лет вы почти наверняка будете руководителем. В нашей же отрасли и в 35, и в 40 лет можно оставаться разработчиком. Среди нас много тех, ...

[Перевод] Панели Grafana для администрирования Kubernetes Всем привет! Сегодня мы продолжаем делиться материалом, переведенным специально для студентов курса «Инфраструктурная платформа на основе Kubernetes». Приятного прочтения. Читать дальше →

[Перевод] F# 1: Hello World Этот текст является вольным переводом серии статей Sacha Barber из Brighton, UK , которые мне показались достаточно интересным Это первый пост в моей серии по F#. Итак, что мы собираемся охватить? Как хорошо знают многие программисты, принято начинать с примера «Hello World...

Почему никогда не поздно начать изучение Java (или других ЯП) Автор статьи: Джон Селавски (John Selawsky). Любви все возрасты покорны. Многие соглашаются с этим выражением, однако мы убеждаем себя, что уже поздно учиться или менять профессию. Почему бы нам не использовать этот подход ко всему, что мы бы хотели достичь, особенно когд...

[Перевод] Оборачиваем последовательности в Swift Всем привет. Сегодня хотим поделиться переводом подготовленным в преддверии запуска курса «iOS Разработчик. Продвинутый курс». Поехали! Одним из основных преимуществ протокольно-ориентированного дизайна Swift является то, что он позволяет нам писать общий код, который совме...

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

Haxe и PHP: статическая типизация, стрелочные функции, метапрограммирование и многое другое Привет, Хабр! Предлагаю вашему вниманию перевод доклада Александра Кузьменко с прошедшей недавно (14-15 июня) конференции Hong Kong Open Source Conference 2019. До того, как присоединиться к Haxe Foundation в качестве разработчика компилятора Haxe, Александр около 10 лет пр...

[Перевод] Service mesh для микросервисов. Часть III. Более глубокий взгляд на Istio Перевод статьи подготовлен специально для студентов курса «Инфраструктурная платформа на основе Kubernetes». Это третья статья из серии публикаций, посвященных  Kubernetes и технологии service mesh (также известной как «сеть микросервисов» и «mesh-сеть микросервисов»). В ...

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

[] Парсер 2GIS в семь строчек кода, или почему важно контролировать лимиты запросов на сервер Наверное любому из тех, кто хоть как-то причастен к области анализа данных хотя-бы раз приходилось сталкиваться с поиском сторонних источников получения этих самых данных. Сегодня я хотел бы поделиться с Вами одним из самых неожиданных для меня мест, где эти данные лежат поч...

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

Разбор: что такое внебиржевой рынок, и какие сделки там совершают Изображение: Pexels Биржа – далеко не единственное место, где инвесторы могут совершать операции с акциями и другими активами. В том случае, если два контрагента хотят договориться напрямую на специальных условиях, они могут использовать так называемый внебиржевой рынок (...

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

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

[Перевод] Компьютер на базе вентилей NOR: внутри бортового управляющего компьютера «Аполлона» Недавно мы занимались восстановлением бортового управляющего компьютера «Аполлона» – компьютера, занимавшегося управлением, навигацией и контролем на борту миссий «Аполлон», летавших к Луне. Этот исторический компьютер одним из первых начал использовать интегральные схемы (И...

Генератор простых арифметических примеров для чайников и не только Привет! В этой «статье», а вернее сказать очерке, покажу очень простой способ развлечься зная самые основы latex и python. Читать дальше →

RBKmoney Payments под капотом — логика работы платежной платформы Привет, Хабр! Продолжаю публикацию цикла про внутренности платежной платформы RBK.money, начатую в этом посте. Сегодня речь пойдет про логическую схему процессинга, конкретные микросервисы и их взаимосвязь друг с другом, как логически разделены сервисы, обрабатывающие кажды...

AWS Elasticsearch: фундаментально дефектный продукт Перевод статьи Nick Price В настоящее время я работаю над большим проектом логирования, который изначально был реализован с использованием AWS Elasticsearch. Поработав с крупномасштабными магистральными кластерами Elasticsearch в течение нескольких лет, я совершенно повер...

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

[Из песочницы] PHP: Как разобрать сложный XML-файл и не утонуть в собственном коде Доброе время суток! Сфера применения XML-формата достаточно обширна. Наряду с CSV, JSON и другими, XML — один из самых распространенных способов представить данные для обмена между различными сервисами, программами и сайтами. В качестве примера можно привести формат Commerc...

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

[Перевод] Часто задаваемые вопросы по SELinux (FAQ) Всем привет! Специально для студентов курса "Безопасность Linux" мы подготовили перевод официального FAQ проекта SELinux. Нам кажется, что данный перевод может быть полезен не только студентам, поэтому делимся им с вами. Мы попытались ответить на некоторые наиболее часто за...

[Перевод] AlphaFold: Использование ИИ для научных открытий И снова здравствуйте! Делимся публикацией, перевод которой подготовлен специально для студентов курса «Нейронные сети на Python». Сегодня мы расскажем о первом важном событии в истории развития DeepMind, чтобы показать, как исследования с помощью искусственного интеллекта м...

Гайд по автоматическому аудиту смарт-контрактов. Часть 2: Slither Анализатор: Slither Описание: Open-source static analysis framework for Solidity githib: https://github.com/trailofbits/slither Это статический анализатор кода, написанный на python. Он умеет следить за переменными, вызовами, и детектирует вот такой список уязвимостей. У каж...

[Перевод] [в закладки] Bash для начинающих: 21 полезная команда Материал, перевод которого мы публикуем сегодня, предназначен для тех, кто хочет освоить командную строку Linux. Умение эффективно пользоваться этим инструментом позволяет экономить немало времени. В частности, речь здесь пойдёт о командной оболочке Bash и о 21 полезной кома...

Декларативная схема и что с ней не так в Magento 2 Всем привет. Данная публикация не претендует на звание истины в первой инстанции, а лишь является моим личным мнением, если вы его разделяете отлично, если нет — прошу в комментарии для обсуждения. Так вот, ближе к делу. В версии Magento 2.3 и выше появилась такая «плюшка» ...

Рейтинги, топы, обзоры — все врут? Привет, Хабр! Сегодня мы с вами поговорим о рейтингах, топах, обзорах и разного рода отзовиках, на которые ориентируются наши с вами клиенты, выбирая программное обеспечение. Мне бы в жизни не пришло в голову затеять это мини-расследование о рейтингах CRM, если бы не жёсткая...

Разработка чат-бота (telegram + youtube) Почему это вообще появилось здесь? Недавно я написал статью о разработке бота на php с использование laravel+botman для telegram. Самое первое, что написали, цитирую, “стрельба из пушки по воробьям”. Я согласен с этим, даже осознавал это во время разработки, но мне был инте...

Интересные автотовары с Aliexpress, о которых вы точно не знали Сегодня мы поговорим о сумасшедших и полезных товарах с aliexpress, которые способны вас удивить. Они точно будут вам полезны. Здесь я собрал только самые НИЗКИЕ цены на алиэкспресс

Архитектурные подходы в iOS-приложениях Сегодня поговорим об архитектурных подходах в iOS-разработке, про некоторые нюансы и наработки реализации отдельных вещей. Расскажу, каких подходов придерживаемся мы и немного углубимся в детали. Читать дальше →

Источники вдохновения при разработке под UDB Ну что ж, мы уже знаем всё, что нужно для программирования UDB. Но одно дело – знать, и совсем другое – уметь. Поэтому сегодня мы обсудим, где и как можно черпать вдохновение для повышения собственного мастерства, где набираться опыта. Как видно из перевода документации, там...

История дизайна уровней Duke Nukem (с эскизами Левелорда) В преддверии 22-летия Duke Nukem вчера мы писали об истории игры. Сегодня поговорим о дизайне уровней официальных релизов основной серии игр Duke Nukem, не спин-офф и тем более не сторонних модификаций. По тексту тут и там разбросаны цитаты из нашего интервью с легендарным...

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

Энтропийное кодирование rANS или как написать собственный архиватор Эта статья может быть интересна тем, кто занимается сжатием данных или хочет написать собственный архиватор. Статья написана, в основном, по материалам блога, который ведёт Fabian Giesen. Читать дальше →

Arend – язык с зависимыми типами, основанный на HoTT (часть 1) В данном посте мы поговорим о только что выпущенном JetBrains языке с зависимыми типами Arend. Этот язык разрабатывался JetBrains Research на протяжении последних нескольких лет. И хотя репозитории уже год назад были выложены в открытый доступ на github.com/JetBrains, полноц...

[Перевод] Что есть и чего нет в Go. Часть 2 Всем привет! Cегодня делимся заключительной частью перевода статьи «Что есть и чего нет в Go». Напоминаем, в первой части речь шла о элементах, которые есть в Go, сегодня же поговорим о том, чего в Go нет. Перевод данного материала подготовлен в преддверии старта нового пот...

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

Серый кардинал .NET — Джон Гэллоуэй Знаете ли вы, кто такой Джон Гэллоуэй? А между тем, он есть. Он не только один из авторов «Professional ASP.NET MVC», но и человек, который является исполнительным директором .NET Foundation, по сути – отвечает за весь опенсорс .NET. Основные темы этой статьи: подробности р...

[Перевод] Reflective Shadow Maps: Часть 1 Привет, Хабр! Представляю вашему вниманию перевод статьи «Reflective Shadow Maps» автора Eric Polman. Reflective Shadow Maps (RSM) (отражающие карты теней) ― это алгоритм, расширяющий “простые” shadow map. Алгоритм учитывает свет, рассеянный после первого попадания на пов...

[Перевод] LLVM с точки зрения Go Разработка компилятора — очень тяжёлая задача. Но, к счастью, с развитием проектов наподобие LLVM, решение этой задачи значительно упрощается, что позволяет даже программисту-одиночке создать новый язык, близкий по производительности к C. Работа с LLVM осложняется тем, что э...

[Перевод] Записки фрилансера: разработка первого React Native-приложения Автор материала, перевод которого мы публикуем, недавно выпустил своё первое мобильное приложение, написанное на React Native. Так случилось, что это приложение стало и его первым проектом, который он создал как программист-фрилансер. Здесь он расскажет о том, с чем ему приш...

Записки IoT-провайдера: девять проблем Интернета Вещей, или почему ему на Руси нехорошо Здравствуйте, уважаемые любители Интернета Вещей! Эта статья отличается от моих предыдущих. Здесь не про решения и кейсы. Я написал про девять проблем IoT, которые портят нам жизнь. Предлагаю присоединиться к моим размышлениям и вместе спрогнозировать будущее Интернета Вещ...

[Перевод] Уровень Android API, обратная и прямая совместимость Добрый вечер, друзья. Мы подготовили полезный перевод для будущих студентов курса «Android-разработчик. Продвинутый курс». С радостью делимся с вами данным материалом. Если вы читаете эту статью, значит вас могут интересовать такие вещи, как: Что означает уровень API? К...

Продуктовая аналитика в студии полного цикла В этой статье я расскажу о продуктовой аналитике на примере нашей студии, IT Territory. Статья состоит из трех частей. В первой я расскажу, как устроен отдел продуктовой аналитики, кем являются его сотрудники, чем они занимаются и почему все именно так, а не иначе. Во втор...

[Перевод - recovery mode ] Руководство по SQL: Как лучше писать запросы (Часть 2) Продолжение статьи Руководство по SQL: Как лучше писать запросы (Часть 1) От запроса к планам выполнения Зная, что антипаттерны не статичны и эволюционируют по мере того, как вы растете как разработчик SQL, и тот факт, что есть много, что нужно учитывать, когда вы задумыва...

История типизации на примере одного большого проекта Всем привет! Сегодня я расскажу вам историю развития типизации на примере одного из проектов в Ostrovok.ru. Эта история началась задолго до хайпа о typing в python3.5, более того, она началась внутри проекта, написанного еще на python2.7. 2013 год: совсем недавно был рел...

Опыт интеграции онлайн кассы Атол с собственной торговой CRM Вокруг онлайн касс в последнее время дикий ажиотаж, 1 июля 2019 заканчивается последняя отсрочка, поэтому и мне пришлось заняться этим вопросом. Тем, у кого 1С или другая система особо можно не напрягаться, но если у вас собственная самописная система, то на ваши плечи ложит...

NLP. Основы. Техники. Саморазвитие. Часть 2: NER Первую часть статьи об основах NLP можно прочитать здесь. А сегодня мы поговорим об одной из самых популярных задач NLP – извлечении именованных сущностей (Named-entity recognition, NER) – и разберем подробно архитектуры решений этой задачи. Читать дальше →

[Перевод] Самодельный сборщик мусора для OpenJDK Это перевод статьи Алексея Шипилёва «Do It Yourself (OpenJDK) Garbage Collector», публикуется с согласия автора. О любых опечатках и других багах сообщайте в личку — мы их поправим.Процесс создания чего-нибудь в рантайме языка — весёлое упражнение. По крайней мере, создание ...

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

Документный червь. Эксплуатируем необычную XSS и обходим CSP на примере CodiMD Для подписчиковЕсть такой сервис для совместного редактирования текста — HackMD. Штука сама по себе полезная, но нас сегодня интересует ее реализация для установки на свой сервер — CodiMD. В ней нашли баг, позволяющий сделать код, который будет передаваться от пользователя к...

[Перевод] RxDart: магические трансформации потоков Добро пожаловать — это третья часть моей серии статей об архитектуре Flutter. Введение Основы Dart Streams RxDart: магические трансформации потоков (этот пост) Основы RxVMS: RxCommand и GetIt RxVMS: Службы и Менеджеры RxVMS: самодостаточные виджеты Аутентификация пользова...

Обзор Save Koch. Очень атмосферно Сегодня мы поговорим об игре Save Koch, которая основана на весьма необычном сеттинге и рассказывает нам о параллельном мире, в котором животные умеют разговаривать и ходить. Более того, они занимаются разными секретными операциями и выполняют задания. Атмосфера довольно нео...

Предлагаемые изменения в Chromium нарушат работу uBlock Origin Разработчик uBlock Origin заявил, что его расширение для блокировки рекламы не сможет работать, если будут приняты изменения в Chromium. Речь идёт о внедрении declarativeNetRequest API, которые лишают возможности использовать webRequest API. Google считает, что изменения нео...

Ловушка (тарпит) для входящих SSH-соединений Не секрет, что интернет — очень враждебная среда. Как только вы поднимаете сервер, он мгновенно подвергается массированным атакам и множественным сканированиям. На примере ханипота от безопасников можно оценить масштаб этого мусорного трафика. Фактически, на среднем сервере ...

End2End-подход в задачах Automatic Speech Recognition Что такое End2End-распознавание речи, и зачем же оно нужно? В чем его отличие от классического подхода? И почему для обучения хорошей модели на основе End2End нам потребуется огромное количество данных — в нашем сегодняшнем посте. Классический подход к распознаванию речи Пр...

[Из песочницы] Абстрактная фабрика на пальцах Написать данную статью меня заставили две причины. Совсем недавно я познакомился с паттерном Абстрактная фабрика. Как говорится – «Не умеешь сам, научи товарища». Известно, что один из лучших способов закрепления материала – это объяснение кому-либо ранее изученного. Вторая ...

Криптуем по-крупному. Разбираемся с режимом гаммирования из ГОСТ 34.13—2015 Для подписчиковРежим гаммирования, в отличие от режима простой замены, позволяет шифровать сообщения произвольной длины без применения операции дополнения (паддинга). Сегодня мы поговорим о том, как реализуется такой режим, и напишем все необходимые для его реализации функци...

[Из песочницы] Восстановление когнитивных способностей 100 пациентов (перевод статьи Дейла Бредесена) Привет, Хабр! Представляю вашему вниманию перевод оригинальной статьи Дейла Бредесена, директора отдела нейродегенеративных заболеваний медицинского факультета Калифорнийского университета в Лос-Анджелесе (UCLA), автора «The End of Alzheimer's: The First Program to Prevent...

Последние изменения в IO-стеке Linux с точки зрения DBA Главные вопросы работы с базой данных связаны с особенностями устройства операционной системы, на которой работает база. Сейчас Linux — основная операционная система для баз данных. Solaris, Microsoft и даже HPUX все еще применяются в энтерпрайзе, но первое место им больше н...

[Перевод] Сборщик мусора в V8: как работает Orinoco Не то чтобы работа сборщика мусора — это то, о чём каждый день думает фронтенд-разработчик, но это очень интересно. Если честно, это одна из самых жестоких статей, что я читал за последнее время: тут много про смерть в молодом возрасте, про гонения из одной области памяти в ...

Реализация пользовательского интерфейса OpenStack LBaaS При реализации пользовательского интерфейса балансировщика нагрузки для виртуального приватного облака мне пришлось столкнуться с существенными трудностями. Это привело меня к размышлениям о роли фронтенда, чем хочу поделиться в первую очередь. А далее обосновать свои разм...

[Перевод] 2D-тени на Signed Distance Fields Теперь, когда мы знаем основы комбинирования функций расстояний со знаком, можно использовать их для создания крутых вещей. В этом туториале мы применим их для рендеринга мягких двухмерных теней. Если вы пока не читали моих предыдущих туториалов о полях расстояний со знаком ...

[Перевод] Государственный университет Адамс. Как взламывать веб-сайты. Часть 2 Государственный университет Адамс. Как взламывать веб-сайты. Часть 1 Давайте поговорим о нашей следующей атаке. Расскажу, как серверы вас идентифицируют. Для этого между браузером и сервером используется протокол HTTP без сохранения состояния, когда общение с сервером проис...

[Перевод] Грамматика английского. Who vs. Whom – как понять, какое слово использовать Разобраться в хитростях английской грамматики может быть довольно непросто. Классический пример здесь – выбор между who и whom. Даже носители языка не всегда корректно используют нужное слово, что уж говорить о тех, кто только изучает английского. В блоге одного из сервис...

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

[Перевод] 56 проектов на Python с открытым исходным кодом 1. Flask Это микро-фреймворк, написанный на Python. Он не имеет валидаций для форм и уровня абстракции базы данных, но позволяет вам использовать сторонние библиотеки для общих функций. И именно поэтому это микро-фреймворк. Flask предназначен для простого и быстрого создан...

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

Swift.assert — жизнь после релиза Как часто вы используете Swift.assert() в вашем коде? Я, честно, использую довольно часто (Если это плохая практика, то, пожалуйста, напишите в комментариях — почему это плохо?). В моем коде часто можно встретить, например, такой вызов: Swift.assert(Thread.isMainThread) Не ...

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

[Из песочницы] Swagger – умная документация вашего RESTful web-API — обзор Junior back-end developer-а для новичков Предисловие Команда, в которой я сделала свои первые шаги на поприще написания промышленного кода, занималась разработкой удобного API к функциональности программного продукта на C# (для удобства назовем его, скажем, буквой E), существовавшего уже много лет и зарекомендов...

[Перевод] TensorFlow для начинающих. Часть 1: общие сведения, установка библиотеки TensorFlow — это опенсорсная библиотека, созданная Google, которая используется при разработке систем, использующих технологии машинного обучения. Эта библиотека включает в себя реализацию множества мощных алгоритмов, рассчитанных на решение распространённых задач машинного ...

[Из песочницы] Способы сегментации точек в Point Clouds Введение Некоторое время назад мне потребовалось решить задачу сегментации точек в Point Cloud (облака точек — данные, полученные с лидаров). Пример данных и решаемой задачи: Поиски общего обзора существующих методов оказались неуспешными, поэтому пришлось собирать информац...

Как ускорить работу с API на языке R с помощью параллельных вычислений, на примере API Яндекс.Директ (Часть 2) В прошлой статье я рассказал о том, что такое многопоточность, и привёл примеры её реализации на языке R при работе с API Яндекс.Директ с помощью пакетов doSNOW, doParallel и конструкции foreach. Данная статья является продолжением, но может быть рассмотрена как автономное р...

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

[Перевод] Обучение с подкреплением или эволюционные стратегии? — И то, и другое Привет, Хабр! Мы нечасто решаемся размещать здесь переводы текстов двухлетней давности, без кода и явно академической направленности — но сегодня сделаем исключение. Надеемся, что дилемма, вынесенная в заголовок статьи, волнует многих наших читателей, а фундаментальную рабо...

Введение в Bash Shell Всем привет. Это перевод из книги по подготовке к экзамену RedHat RHCE. На мой взгляд очень доступно рассказывается об основах bash. Сценарии оболочки — наука сама по себе. Не вдаваясь в подробности всего, что происходит «под капотом», вы узнаете, как применять базовые элем...

ML на Scala с улыбкой, для тех, кто не боится экспериментов Всем привет! Сегодня будем говорить о реализации машинного обучения на Scala. Начну с объяснения, как мы докатились до такой жизни. Итак, наша команда долгое время использовала все возможности машинного обучения на Python. Это удобно, есть много полезных библиотек для подг...

[Перевод] Тестирование инфраструктуры как код с помощью Pulumi. Часть 2 Всем привет. Сегодня делимся с вами заключительной частью статьи «Тестирование инфраструктуры как код с помощью Pulumi», перевод которой подготовлен специально для студентов курса «DevOps практики и инструменты». Тестирование развертывания Рассмотренный стиль тестирования —...

[Перевод] Консенсус на репутации ноды. Нужен ли? Знаю-знаю. Криптопроектов тьма, есть куча консенсусов: на основе труда и владения, золота, нефти, выпеченных пирожков (есть и такой, да-да). Что нам ещё от одного? Это и предлагаю обсудить после прочтения перевода "облегченной" технической документации проекта *Созвездие (Co...

10 PostCSS плагинов, которые сэкономят время вашему верстальщику У нас, у фронтендеров, есть такая категория инструментов, которые никак не решают стоящие перед нами задачи, а скорее влияют на сам процесс их решения. Изменяют его. Отношение к таким инструментам самое разное – начиная от мании в духе “давайте эту штуку пихать везде, это ж...

ИТ-гигант уходит с рынка чипов для дата-центров — расскажем, что это значит для индустрии Последний ARM-чип компании Qualcomm для дата-центров — Centriq, вышел чуть более года назад и собрал на старте множество положительных отзывов. Но в середине декабря ИТ-гигант объявил, что закрывает направление, занимающееся производством процессоров для ЦОД. Рассказываем, ...

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

Help Desk за 3 часа. Автоматизация несложных бизнес-процессов в PowerApps, Flow и Teams Всем привет! Мой коллега написал статью по опыту использования различных инструментов О365 для автоматизации небольших бизнес-процессов. Мы взяли за основу кейс по автоматизации HelpDesk на технологиях PowerApps, MS Flow и MS Teams. Подробности под катом. Надеюсь, статья бу...

Основы компьютерных сетей. Тема №9. Маршрутизация: статическая и динамическая на примере RIP, OSPF и EIGRP Всем привет! Спустя продолжительное время возвращаемся к циклу статей. Долгое время мы разбирали мир коммутации и узнали о нем много интересного. Теперь пришло время подняться чуть повыше и взглянуть на сторону маршрутизации. В данной статье поговорим о том, зачем нужна ма...

Реализация моделей seq2seq в Tensorflow Порождение данных с помощью рекурентной нейронной сети становится все более популярным методом и находит свое применение во многих областях компьютерной науки. С начала рождения концепции seq2seq в 2014 году прошло всего пять лет, но мир увидел множество применений, начиная ...

7 вещей, которые вы не знали о поиске в Google Поисковик Google — это уже, практически, неотъемлемая часть нашей жизни. Не даром же возник глагол «загуглить»! Практически каждый день мы используем систему от Google для поиска самой разной информации, однако не все знают, что искать ее можно куда более пр...

Почему для нового проекта я взял Robot Framework Недавно я сменил проект — пришел в новую разработку, где до меня не было никакого тестирования, ни ручного, ни автоматического. Условий на инструментарий (за исключением того, что это Python) заказчик не накладывал, так что я сделал собственный выбор. В этой статье я расскаж...

[Перевод] Топ 20 навигационных фич в IntelliJ IDEA. Часть 2 Перевод статьи подготовлен специально для студентов курса «Android-разработчик. Продвинутый курс». И хотя в данном материале речь пойдет преимущественно о Java, материал будет полезен Android-разработчикам Первая часть тут Читать дальше →

Пришло время Java 12! Обзор горячих JEP-ов Прошло полгода, а значит — время устанавливать новую Java! Это был долгий путь, и до конца добрались немногие. Из интересных JEP-ов отвалились сырые строки, а вот об оставшемся мы поговорим под катом. Читать дальше →

[Из песочницы] Bowers&Wilkins PX. Запоздалый НеОбзор На дворе 2019 год. В мире портативного беспроводного аудио царит тотальный стабилизец. Хорошо звучащие Bluetooth наушники умеют делать считанные компании. А итоговый список моделей не дотягивает и до десятка. Сегодня поговорим как раз о такой модели. Прошлогодний флагман Bow...

[Из песочницы] Сериализация данных на уровне базы Привет, Хабр! Сидел я как-то и пытался отдать фронту JSON с объектами недвижимости, у которых была масса зависимостей. На бэке стояла Symfony 4, knp pagination и JMSSerializer, ну в принципе стандартные вещи, но проблема в том, что когда ты пытаешься отдать объект со всеми ...

[Перевод] Изучаем Docker, часть 1: основы Технологии контейнеризации приложений нашли широкое применение в сферах разработки ПО и анализа данных. Эти технологии помогают сделать приложения более безопасными, облегчают их развёртывание и улучшают возможности по их масштабированию. Рост и развитие технологий контейнер...

C++, FIX, Oracle и PL/SQL: что нужно знать IT-специалисту для получения работы в сфере финансов + реальные вакансии В наши дни, большинство бирж уже давно работают в электронном формате, а сделки совершаются не с помощью выкриков трейдеров из специальной ямы, а в пару кликов через интернет. Для организации торгов и участия в них используется передовой софт, железо, разрабатываются сложн...

Cоздание визуальных компонентов в Unity UI. Система частиц Привет! Эта статья о создании собственных визуальных компонентов в UI на примере компонента для визуализации системы частиц в Canvas’e. Данная информация будет полезна для реализации различных эффектов в пользовательском интерфейсе, а также может использоваться для генераци...

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

Перевод книги «Using Google Analytics with R» (Michal Brys) Электронная книга «Using Google Analytics with R» (Michal Brys) представляет собой практическое руководство по анализу данных из Google Analytics в R. Написана дата-сайентистом в 2014 году, но ничуть не теряет своей актуальности и сегодня. Читать дальше →

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

[Перевод] Как приоритеты pod'ов в Kubernetes стали причиной простоя в Grafana Labs Прим. перев.: Представляем вашему вниманию технические подробности о причинах недавнего простоя в работе облачного сервиса, обслуживаемого создателями Grafana. Это классический пример того, как новая и, казалось бы, исключительно полезная возможность, призванная улучшить кач...

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

Мысленный эксперимент: Flutter на Go Совсем недавно я открыл для себя Flutter – новый фреймворк от Google для разработки кроссплатформенных мобильных приложений – и даже имел возможность показать основы Flutter человеку, который никогда не программировал до этого. Сам Flutter написан на Dart – языке, родившимся...

[Перевод] АЛУ на 12 транзисторах (на самом деле нет) Что можно сделать на 12 транзисторах? Если схема аналоговая, это может быть, например, радиоприёмник или усилитель с достойными характеристиками. Для цифровой же схемы это катастрофически мало. Даже в такой простой микросхеме, как АЛУ К155ИП3 (74181), их значительно больше...

Serverless Telegram бот в Яндекс.облаке, или 4.6 копейки за 1000 сообщений "Whenever you receive a webhook update, you have two options" Из Telegram Bot Api Faq Привет, Хабр! Долгое время концепция serverless (а если говорить точнее — её реализация в виде сервиса AWS Lambda) была для меня относительно понятной, но очень абстрактной идеей. Она ча...

Шпаргалка по аббревиатурам C++ и не только. Часть 2: «и не только» Это вторая и последняя часть моей шпаргалки по аббревиатурам, которые стоит знать C++ разработчику. С++ здесь упомянут только потому, что шпаргалку я составил в первую очередь для себя, а я как раз-таки C++ разработчик. На самом деле в этой части собраны понятия, область пр...

Набор для игры в Лазертаг. Посвящается тем, кто играл в войнушку Лазертаг этим летом стал чрезвычайно популярным, и, если верить запросам в «Вордстате» за год чуть ли не удвоил интерес к себе. Почему бы не иметь свой персональный набор? Читать дальше →

Вижу, значит существую: обзор Deep Learning в Computer Vision (часть 1) Компьютерное зрение. Сейчас о нём много говорят, оно много где применяется и внедряется. И как-то давненько на Хабре не выходило обзорных статей по CV, с примерами архитектур и современными задачами. А ведь их очень много, и они правда крутые! Если вам интересно, что сейчас ...

МегаСлёрм для инженеров и архитекторов Kubernetes Через 2 недели стартуют интенсивы по Kubernetes: Слёрм-4 для тех, кто знакомится с k8s и МегаСлёрм для инженеров и архитекторов k8s. На Слёрм-4 остались последние 10 мест в зале. Желающих освоить k8s на базовом уровне хватает. Для Ops, который знакомится с Kubernetes, запу...

[Перевод] В двух словах о привилегиях Linux (capabilities) Перевод статьи подготовлен специально для студентов курса «Администратор Linux». Привилегии (capabilities) используются всё больше и больше во многом благодаря SystemD, Docker и оркестраторам, таким как Kubernetes. Но, как мне кажется, документация немного сложна для понима...

[Перевод] Метаморфическое тестирование: почему об этой перспективной методике почти никто не знает Должен признаться: я читаю ACM Magazine. Это делает меня «ботаником» даже по меркам программистов. Среди прочего, я узнал из этого журнала о «метаморфическом тестировании». Раньше я никогда о нём не слышал, как и все люди, которых я спрашивал. Но научная литература по этой ...

[Перевод] Порождение событий, CQRS и Laravel Перевод статьи подготовлен для студентов профессионального курса «Framework Laravel» ________________________ Введение Эта статья посвящена основам создания событийных CQRS-систем на языке PHP и в фреймворке Laravel. Предполагается, что вы знакомы со схемой разработки с ...

Зачем вам хелпдеск, если уже есть CRM?  Какое корпоративное ПО установлено в вашей компании? CRM, система управления проектами, хелпдеск, ITSM-система, 1С (тут точно угадали)? У вас есть чёткое ощущение, что все эти программы дублируют друг друга? На самом деле, пересечение функций, действительно, бывает, многие в...

Использование Liquibase для управления структурой БД в Spring Boot приложении. Часть 2 В предыдущей части мы разобрались с основными возможностями Liquibase и написали базовый пример Spring boot приложения, который использует Liquibase для инициализации БД. Полный код базового приложения можно увидеть тут. В этой статье мы поговорим про liquibase-maven-plugin ...

Получение статистики по всем клиентам из API Яндекс Директ в разрезе дней с помощью Python В работе часто использую короткую статистику в разрезе дней чтобы отслеживать отклонения трафика. Более подробно о написании запросов написал в статье « Получение рекламных кампаний Яндекс Директ с помощью API в DataFrame (Python)». В данной статье я в большей степени рас...

[Из песочницы] Динамическое изменение схемы JSON в Go с помощью gob Значимо изменить маршализацию структуры в json можно только через метод MarshalJSON(), написав там полную реализацию маршализации. Как именно? На это документация Go ни ответов, ни рекомендаций не даёт, предоставляя, так сказать, полную свободу. А как воспользоваться этой св...

[Из песочницы] Визуализация времени возрождения Рошана В данной статье рассматривается перехват функций графического API на примере DirectX 9 под x64 применительно к игре Dota 2. Будет подробно рассказано, как внедриться в процесс игры, как изменить поток выполнения, приведено краткое описание внедряемой логики. В конце поговор...

ResNet50. Своя реализация Всем привет. Библиотека нейросети описана в моей прошлой статье. Здесь решил показать как можно использовать обученную сеть из TF (Tensorflow) в своем решении, и стоит ли. Под катом сравнение с оригинальной реализацией TF, демо приложение для распознавания картинок, ну и… в...

[Перевод] Делегаты и события в C# Перевод статьи подготовлен специально для студентов курса «Разработчик С#». Что такое события в C#? Событие может быть использовано для предоставления уведомлений. Вы можете подписаться на событие, если вам нужны эти уведомления. Вы также можете создавать свои собственные...

Беспростойная миграция RabbitMQ в Kubernetes RabbitMQ – написанный на языке Erlang брокер сообщений, позволяющий организовать отказоустойчивый кластер с полной репликацией данных на несколько узлов, где каждый узел может обслуживать запросы на чтение и запись. Имея в production-эксплуатации множество кластеров Kubern...

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

Крадущийся тигр, затаившийся SQLAlchemy. Основы Доброго дня. Сегодня хочу рассказать про ORM SQLAlchemy. Поговорим о том, что это, про его возможности и гибкость, а также рассмотрим случаи, которые не всегда понятно описаны. Данная ORM имеет порог вхождения выше среднего, поэтому я попытаюсь объяснить всё простым языком ...

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

In-App Updates: ускоряем процесс обновления приложения на Android Среди многообразия инструментов, анонсированных на Android Dev Summit, особое внимание хочется уделить механизму обновления приложения In-App Updates (IAUs), который помогает разработчикам ускорить добавление новых фич, баг-фиксов и улучшений производительности. Поскольку ...

[Перевод] Параллельные запросы в PostgreSQL В современных ЦП очень много ядер. Годами приложения посылали запросы в базы данных параллельно. Если это отчетный запрос ко множеству строк в таблице, он выполняется быстрее, когда задействует несколько ЦП, и в PostgreSQL это возможно, начиная с версии 9.6. Понадобилось 3 ...

Текстурирование, или что нужно знать, чтобы стать Художником по поверхностям. Часть 1. Пиксель О чем эта серия уроков? В данной серии статей, которые я собираюсь написать, я постараюсь максимально раскрыть теорию создания текстур для игровой индустрии, начиная от самого понятия «пиксель» и заканчивая построением сложных материалов (шейдеров) в игровом движке на пример...

О чем думать на NALSD собеседовании Я описывал ранее типичное кодинг-интервью. Помимо кодинга почти всегда есть вопрос на проектирование систем. (Large) System Design. В случае собеседований на SRE, это еще более интересный (как по мне) зверь — NALSD. Non-abstract large system design. Главное отличие между SWE...

[Перевод] Введение в детерминированные сборки на С/С++. Часть 2 Перевод статьи подготовлен специально для студентов курса «Разработчик С++». → Читать первую часть Читать дальше →

[Из песочницы] Три парадигмы Привет, Хабр! Предлагаю вашему вниманию перевод статьи «Three Paradigms» автора Robert C. Martin (Uncle Bob). За последние 40 лет технологии аппаратного обеспечения увеличили вычислительную мощность наших устройств более чем на двадцать порядков. Теперь мы играем в Angry ...

[Из песочницы] Редактор блок схем — о дружбе Vue.js и MxGraph С чего все началось? Я фронтенд разработчик, но стремлюсь к развитию, решил написать fullstack приложение и стать миллионером получить бесценный опыт. Так вот, начал планировать бэкенд, выбрал MongoDB для хранения данных, и был готов планировать структуру и связи полей. Н...

Как написать торгового робота: инструменты для начинающих Тема автоматизированных систем для торговли на бирже довольно популярна в рунете в последние несколько лет. Однако начинающим инвесторам создать своего торгового робота может быть нелегко. Сегодня мы расскажем о том, как это можно сделать без лишних затрат. Читать дальше →

13. Check Point Getting Started R80.20. Licensing Приветствую, друзья! И мы наконец-то добрались до последнего, заключительного урока Check Point Getting Started. Сегодня мы поговорим об очень важной теме — Лицензирование. Спешу предупредить, что данный урок не является исчерпывающим руководством по выбору оборудования ил...

Если есть в кармане пачка сигарет… Но если есть в кармане пачка сигарет, Значит всё не так уж плохо на сегодняшний день. Это – знаменитая фраза из знаменитой песни Виктора Цоя. Песня, вроде, вообще не о курении, но не так давно я понял – так мог написать только курильщик. Не знаю и, наверное, никогда уже не ...

[recovery mode] Как я свою онлайн игру создавал. Часть 1: Работа с сетью Привет всем! У меня недавно был отпуск, и появилось время спокойно попрограммировать свои домашние проекты. Захотел я, значит, свою простенькую онлайн игру сделать на Rust. Точнее, простенькую 2D стрелялку. Решил сначала сделать сетевую часть, а там уже видно будет, что да...

[Из песочницы] Кое-что об inode Периодически, с целью переезда в ЦРС собеседуюсь в разных крупных компаниях, в основном питера и москвы на должность DevOps. Обратил внимание, что во многих компаниях (во многих хороших компаниях, например в яндексе) задают два сходных вопроса: что такое inode; по каким ...

[Перевод] Разработка динамических древовидных диаграмм с использованием SVG и Vue.js Материал, перевод которого мы сегодня публикуем, посвящён процессу разработки системы визуализации динамических древовидных диаграмм. Для рисования кубических кривых Безье здесь используется технология SVG (Scalable Vector Graphics, масштабируемая векторная графика). Реактив...

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

[Из песочницы] В чем разница между 4G и 5G? Привет, Хабр! Я учусь по специальности радиотехника. В последнее время многие знакомые спрашивают меня, зачем переходить на технологию 5G и в чем разница между 4G и 5G. Поэтому сегодня представляю вашему вниманию перевод статьи на эту тему. Читать дальше →

Использование DiagnosticSource в .NET Core: практика В предыдущей статье я рассказал про механизм DiagnosticSource и на простом примере показал, как с его помощью можно перехватывать запросы в базу данных через классы SqlConnection и SqlCommand и измерять время их выполнения. В настоящее время DiagnosticSource уже используется...

[Перевод] 27 удивительных инструментов VS Code для современных JavaScript-разработчиков Visual Studio Code (его ещё называют VS Code и VSCode) — это экономичный но мощный кросс-платформенный редактор кода, выполненный в виде настольного приложения. По словам автора материала, перевод которого мы сегодня публикуем, VS Code поддерживает множество инструментов раз...

Видишь данные? Нет. Вот и я не вижу, а они есть. Уничтожаем данные на SSD-накопителях, да ещё и скорость восстанавливаем Любой из нас сталкивался с ситуацией, когда требовалось восстановить данные, будь то что-либо не особо важное или же, наоборот, критически необходимое для достижения определённых целей. Но немногие пользователи задавали себе вопрос: «А что, если кто-то восстановит мои личные...

Как подготовить сайт к большим нагрузкам: 5 практических советов и полезные инструменты Пользователи очень не любят, когда нужный им онлайн-ресурс «тормозит». Данные опросов говорят о том, что 57% пользователей покинут веб-страницу, если она грузится дольше трех секунд, при этом 47% готовы ждать лишь две секунды. Задержка в одну секунду может стоить 7% конвер...

Intel анонсировала Stratix 10 GX 10M на 14-нм техпроцессе Сегодня Intel анонсировали Stratix 10 GX 10M - программируемую логическую интегральную схему (ПЛИС), основанную на 14-нм техпроцессе. Новинка может предложить 43,3 миллиарда транзисторов, что делает ее самой большой матрицей данного типа в мире. Ранее самой большой интеграль...

[Перевод] Интеграционные тесты баз данных с помощью Spring Boot и Testcontainers 1. Обзор С помощью Spring Data JPA можно легко создавать запросы к БД и тестировать их с помощью встроенной базы данных H2. Но иногда тестирование на реальной базе данных намного более полезно, особенно если мы используем запросы, привязанные к конкретной реализации БД. В эт...

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

[Перевод] «Современный» C++: сеанс плача с причитаниями Здесь будет длиннющая стена текста, с типа случайными мыслями. Основные идеи: В C++ очень важно время компиляции, Производительность сборки без оптимизаций тоже важна, Когнитивная нагрузка ещё важней. Вот по этому пункту особо распространяться не буду, но если язык программ...

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

Цифровое радио DAB+ — как это работает и нужно ли оно вообще? Привет Хабр. В последние годы на территории России, Украины и Белоруссии обсуждалось введение цифрового радио стандарта DAB+. И если в России процесс пока не продвинулся, то в Украине и Белоруссии вроде уже перешли к тестовому вещанию. Как это работает, в чем плюсы и мин...

[Перевод] Как посчитать ROI от автоматизации тестирования с Selenium? Перевод статьи подготовлен специально для студентов курса «Python QA Engineer» Кроссбраузерное тестирование – это именно тот тип тестирования, который требует большого количества сил и времени. Тестирование веб-приложения в различных браузерах, на различных операционных си...

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

Предварительный обзор Huawei Nova 6 5G. Шикарный смартфон Сегодня мы поговорим о довольно интересном устройстве, которое при достаточно низкой стоимости способно удовлетворить все запросы потенциального покупателя. Обязательно обратите внимание на данную новинку, ведь за свои деньги она уделывает конкурентов довольно легко и быстро...

[Перевод] Fluent 1.0: гибкая система локализации Fluent — семейство спецификаций, реализаций и практик для локализации, разработанной Mozilla. Сейчас она применяется в браузере Firefox. Используя Fluent, переводчики могут писать более естественные переводы на родном языке. Сегодня мы представляем спецификацию формата фай...

Тесты или типы? — Rust version Пару дней назад 0xd34df00d опубликовал здесь перевод статьи, описывающей, что можно узнать о функции в разных языках, если рассматривать её как "чёрный ящик", не используя информацию о её реализации (но, разумеется, не мешая ей пользоваться компилятору). Разумеется, получаем...

Поваренная книга разработчика: DDD-рецепты (5-я часть, Процессы) Введение В рамках предыдущих статей мы описали: область применения, методологические основы, пример архитектуры и структуры. В данной статье, я хотел бы рассказать как описывать процессы, о принципах сбора требований, чем отличаются бизнес требования от функциональных, как п...

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

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

Xiaomi готовит смартфон на новейшей SoC Qualcomm, представленной две недели назад Компания Xiaomi готовится представить очередной новый смартфон, который будет интересен в первую очередь своей платформой. Новинка, название которой пока не раскрыли, получил SoС Snapdragon 730 или 730G. Если точнее, глава индийского подразделения Xiaomi написал в Twitt...

[Перевод] В чем разница между исследователем данных и статистиком? Всем привет. Открыт набор на новый курс от Otus — "Прикладная аналитика на R", который стартует уже в конце этого месяца. В связи с этим хочу поделиться переводом публикации о разнице между аналитиком по данным и статистиком, который в свою очередь использует R на практике. ...

iFixit оправдала Galaxy Fold Компания iFixit разобрала смартфон Galaxy Fold и постаралась выяснить, почему новинка от Samsung поломалась почти у всех, кто ее получил. Оказалось, что дело не в неряшливости корейской компании, а в том, что смартфон основан на OLED-дисплее, а он сам по себе гораздо тоньше,...

Примеры дичи из заказов «приходите спасать» (разбор десятка инцидентов с примерами) Иногда бывает так: — Приезжайте, у нас упало. Если сейчас не поднять — покажут по телевизору. И мы едем. Ночью. На другой край страны. Ситуация, когда не повезло: на графике показан резкий рост нагрузки на СУБД. Очень часто это первое, на что смотрят администраторы систем...

Почему на современной бирже важна скорость, и как обогнать конкурентов: 3 практических способа Изображение: Unsplash Участники биржевых торгов во все времена стремились обогнать конкурентов, чтобы заключить самую выгодную сделку быстрее всех. Сегодня мы поговорим о том, какие методы сегодняшние трейдеры используют для того, чтобы добиться максимальной скорости рабо...

[Из песочницы] Четырехдневная рабочая неделя. Российский опыт Привет, Хабр! Эту статью меня подвигла написать замечательная история, как одна новозеландская компания 8 недель работала с тремя выходными. И как мы ими как бы гордимся. Контекст Последнее время меня, волнует вот какая тема: как из отличной бирюзовой команды не стать чело...

[Из песочницы] Выбор между XML и SQL для накатывания скриптов LiquiBase на примере Java/Spring/H2 В процессе работы над очередным проектом в команде возникли споры по поводу использования формата XML или SQL в Liquibase. Естественно про Liquibase уже написано много статей, но как всегда хочется добавить свои наблюдения. В статье будет представлен маленький туториал по со...

[Перевод] Проект «Прометей»: поиск пожаров с помощью ИИ Перевод Project Prometheus — An AI-powered fire finding solution Мы с коллегами работаем в проекте Prometheus («Прометей») — это решение для раннего обнаружения пожаров, в котором объединены ИИ, компьютерное зрение, автоматические дроны и сервисы прогноза погоды. Этот ком...

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

[Перевод] Разработка микросервисов с помощью BDD и IOD BDD — разработка через поведение. BDD для микросервисов — это сотрудничество клиента, разработчиков и тестировщиков. BDD — это разработка, которая учитывает и технические интересы и бизнес-требования. Этот подход обычно применяется для описания интерфейсов приложений, а так ...

Методика D.I.Y. проекта. Часть вводная Данная статья написана радиолюбителем, имеющим опыт руководства проектами по разработке и постановке на производство сложной радиоэлектронной аппаратуры. Цель данной статьи: помочь энтузиастам в организации их проектной деятельности, а также обозначить различия в подходах ...

«Замести следы и уйти на выходные»: как удалить себя из большинства популярных сервисов С решением задачи поможет JustDeleteMe — это каталог кратких инструкций и прямых ссылок для удаления пользовательских аккаунтов на популярных сайтах. Поговорим о возможностях инструмента, а также обсудим, как обстоят дела с запросами на удаление персональных данных в целом. ...

Разбор: как на самом деле работает Forex, и что надо знать о торговле валютой на бирже для минимизации рисков Изображение: Unsplash Год назад Центробанк России аннулировал лицензии пяти крупных форекс-дилеров. В их числе оказались известные в нашей стране компании «Альпари Форекс», «Телетрейд Групп» и «Форекс Клуб». В новой статье поговорим о том, почему это должно было произой...

[Перевод] Python 3.8: Что нового и как этим пользоваться? Следующий перевод подготовлен специально для «питонистов», которым интересно наверняка интересно почитать о новых функциях Python 3.8. В преддверии запуска нового потока по курсу «Разработчик Python» мы не смогли пройти мимо этой темы. В этой статье мы поговорим про новые ф...

Как мы заново изобретали IP АТС Askozia, после того как проект был продан и закрыт разработчиком Как было все прекрасно до часа X Мы — небольшая команда разработчиков, которая много лет назад занималась разработкой и внедрением программ 1С. В далеком 2011 году мы хорошо знали программные продукты 1С, и не имели опыта в разработке собственных решений. На тот момент компа...

ScalaConf 2019 — проповедник Джон, Святой Грааль и «Профессор Hаskell» 26 ноября в Инфопространстве пройдет ScalaConf 2019 — профессиональная конференция для Scala-разработчиков. Возможно, первая в России. Накануне события мы попросили Вадима Челышова (dos65), руководителя ПК ScalaConf 2019, рассказать о докладах и концепции конференции. Вот...

[Перевод] Подробности о JavaScript-объектах Автор материала, перевод которого мы сегодня публикуем, говорит, что в JavaScript-объектах содержится много такого, о существовании чего можно и не подозревать, пользуясь ими в повседневной работе. Объекты в JavaScript очень легко создавать, с ними удобно работать, они кажут...

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

Тепловая карта кликов — как пользователи ведут себя на сайте Сегодня у нас в руках множество инструментов, исследований и статей по ux/ui и том как сайт будут читать и идентифицировать. Но главный вопрос остаётся открытым. А знаете ли именно вы, куда пользователи вашего (или сделанного вами) сайта тыкают? Сегодня поговорим о кнопках ...

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

Новый загрузчик Buhtrap Сегодня мы расскажем вам о новом подходе к рассылке ВПО группировкой Buhtrap. Модуль загрузчика 19 декабря нам стало известно о вредоносной рассылке, содержащей исполняемый файл (md5: faf833a1456e1bb85117d95c23892368). Файл принимал различные названия: «Сверка за декабрь....

Обнаружение веб-атак с помощью рекуррентных нейронных сетей Обнаружение атак является важной задачей в информационной безопасности на протяжении десятилетий. Первые известные примеры реализации IDS относятся к началу 1980-х годов. Спустя несколько десятилетий сформировалась целая индустрия средств для обнаружения атак. На данный м...

[Перевод] Node.js для начинающих: основы работы с файлами Сегодня мы поговорим о том, как работать с файловой системой средствами Node.js, рассмотрим базовые операции, выполняемые с файлами. К таким операциям относятся следующие: Создание файла Чтение файла Запись данных в файл Удаление файла Переименование файла Необходимость в...

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

[Из песочницы] Идея, как можно предоставлять сотрудникам временный доступ к ресурсам клиента, не светя лишний раз пароли Небольшая предыстория После лекции на HighLoad++ 2017. Я посмотрел этот доклад, “Как мы админа увольняли”, в записи. Докладчик сказал, что все web компании испытывает проблемы с паролями, и у меня появилась идея как это решить. Скорее всего кто-то уже сделал, но, если честно...

[Перевод] Не читайте, перечитывайте Будет справедливо, если вы спросите меня, почему сегодня утром я читаю письмо, адресованное не мне, или почему я прочитал его дважды, про себя и вслух, или почему я сделал это уже третий раз на этой неделе. «Удивительно, но человек не может читать книгу: он может только пер...

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

[recovery mode] Data as a Service: что это такое, технические сложности и как их обойти с помощью резидентных прокси Data as a Service (DaaS) – относительно новая модель дистрибуции данных, которая подразумевает, что информация сбором, управлением и хранением нужной информации компании и пользователи занимаются не самостоятельно, а делегируют эту задачу специализированным провайдерам. ...

Пересечение тестирования и архитектуры: интервью с Нилом Фордом Что может значить должность «QA architect»? А что значит совсем уж непонятная должность «meme wrangler»? С какого момента при работе над архитектурой надо подключать тестировщиков? Как менять процессы в организации так, чтобы люди при встрече с первой же сложностью не возв...

[Перевод] 12 советов по улучшению производительности JavaScript-приложений Производительность — это один из важнейших вопросов, встающих перед разработчиками веб-страниц или веб-приложений. Никто не будет рад «падающему» от чрезмерной нагрузки приложению, или странице, которая загружается целую вечность. Пользователи веб-сайтов не готовы слишком до...

[Перевод] Доступное объяснение алгоритма коллапса волновой функции Алгоритм коллапса волновой функции (Wavefunction Collapse Algorithm) учит компьютер импровизировать. На входе он получает архетипичные данные и создаёт процедурно генерируемые данные, похожие на исходные. (Источник) Чаще всего он используется для создания изображений, но ...

Быстрая локализация проблем производительности Microsoft SQL Server в Quest Foglight В прошлой статье об инструменте для мониторинга Foglight for Databases мы рассказывали о возможностях контроля из единого интерфейса SQL Server, Oracle, PostgreSQL, MySQL, SAP ASE, DB2, Cassandra и MongoDB. Сегодня разберём подходы к быстрому выявлению причин нештатной раб...

Обзор Fantasy Blacksmith. Делаем свои мечи Сегодня мы поговорим про игру Fantasy Blacksmith, которая привлекла своим сеттингом и геймплеем. Я некоторое время поиграл в нее и понял, что игрушка довольно привлекательная в графическом плане, она легко осваивается и здесь даже есть диалоги, но без недостатков тоже не обо...

Число, лежащее в основе современной музыки Почему двенадцать? Если вы посмотрите на клавиатуру, то увидите, что в каждой октаве содержится 12 полутонов. В случае фортепиано это всего лишь значит, что между, например, "до" первой октавы и "до" второй октавы расположено 11 клавиш. Вместе с одним из "до" (например, до ...

50 советов по UX в виртуальной реальности Этот список был собран на основе нескольких моих статей и заметок, посвященных созданию пользовательского опыта в VR. Материал создавался как своеобразный набор дополнительных рекомендаций для новых специалистов Modum Lab, которые занимаются созданием систем взаимодействия...

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

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

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

Meeting Room L̶i̶t̶t̶l̶e̶ Helper v 2 Данная статья подробно описывает этапы разработки мобильного приложения Meeting Room Helper: от зарождения идеи до релиза. Приложение написано на Kotlin и построено по упрощённой MVVM архитектуре, без использования data binding. Обновление UI-части происходит с помощью LiveD...

[Перевод] Новости из мира OpenStreetMap № 462 (21.05.2019-27.05.2019) Российское отделение GREENPEACE переходит OSM1 | Map data OpenStreetMap contributors, ODbL Mapbox Картографирование Кристофер Беддоу из Mapillary написал пост, в котором рассказал о двух способах использования данных Mapillary для редактирования OpenStreetMap. Джозеф Айзе...

[Перевод] Electron: разработка настольных приложений с использованием HTML, CSS и JavaScript Можно ли, используя HTML, CSS и JavaScript, создавать настольные приложения? Автор статьи, перевод которой мы сегодня публикуем, даёт утвердительный ответ на этот вопрос. Здесь он расскажет о том, как, применяя веб-технологии и пользуясь возможностями фреймворка Electron, со...

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

Делаем UITableView. Для начинающих Новогодние праздники прошли, а мое стремление писать полезные и не очень статьи — нет! Сегодня поговорим о UITableView, работе с UITableViewDataSource и переиспользовании ячеек. Затронем как установить рут контроллер без сториборда, ошибки при работе с таблицей, лейаут и бол...

[Перевод] Тестирование Node.js-проектов. Часть 1. Анатомия тестов и типы тестов Автор материала, первую часть перевода которого мы сегодня публикуем, говорит, что он, как независимый консультант по Node.js, каждый год анализирует более 10 проектов. Его клиенты, что вполне оправданно, просят его обратить особое внимание на тестирование. Несколько месяцев...

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

Опубликованы характеристики смартфона Redmi 7: до 4 ГБ оперативной памяти и экран больше, чем у Redmi 6 В Сети появились новые подробности о бюджетном смартфоне Redmi 7. Новинка засветилась в базе данных Федеральной комиссии по связи США (FCC) под обозначениями M1810F6LG и M1810F6LH. Первые три символа указывают на год разработки смартфона, что целиком и полностью соотнос...

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

Security Week 30: приватность, технологии и общество 12 июля в прессе появились пока не подтвержденные официально сообщения о том, что Facebook пошел на соглашение с Федеральной Торговой Комиссией США по поводу утечки пользовательской информации. Основной темой расследования FTC стали действия компании Cambridge Analytica, еще...

[Из песочницы] Первое, что нужно сделать запуская проект на Django Приветствую сообщество, встала передо мной задача написать социальную сеть. А коль скоро язык программирования, которым я более-менее владею — это Python, я выбрал фреймворк Django для реализации проекта. Чтобы не тратить время на написание HTML шаблонов и CSS стилей, эти фа...

Предварительный обзор ASUS StudioBook S. Тонкая рабочая станция В последнее время мы все привыкли к тому, что для работы есть один ноутбук — MacBook Pro. Конечно, можно взять и более тонкую легкую версию, но она не даст вам такого набора возможностей и производительности в программах. С другой стороны, нужно понимать, что на рынке есть м...

Делаем мессенджер*, который работает даже в лифте *на самом деле мы напишем только прототип протокола. Возможно, вы встречались с подобной ситуацией – сидите в любимом мессенджере, переписываетесь с друзьями, заходите в лифт/тоннель/вагон, и интернет вроде ещё ловит, но отправить ничего не получается? Или иногда ваш прова...

[Перевод] Тренинг Cisco 200-125 CCNA v3.0. День 32. Восстановление паролей, XMODEM/TFTPDNLD и активация лицензий Cisco Сегодня мы поговорим о восстановлении паролей роутеров и свитчей, обновлении, переустановке и восстановлении IOS и о системе лицензирования Cisco для операционной системы IOSv15. Это очень важные темы, касающиеся управления сетевыми устройствами. Как можно восстановить п...

[recovery mode] Agilean — убийца Lean и Agile Гибридная методология управления на основе ценностей В этой статье мы расскажем вам об Agilean («Эджайлин») как методе создания гибридных инструментов на базе Lean и Agile и шире об Agilean как о философии управления бизнесом с плацдарма ценностей. Немного поговорим о нюан...

[Перевод] Ленивая загрузка изображений средствами браузера Автор материала, перевод которого мы сегодня публикуем, Эдди Османи из Google, говорит, что уже в Chrome 75 вполне может появиться поддержка нового атрибута элементов <img> и <iframe> loading. Это означает, что данные элементы будут поддерживать стандартные возмо...

[Перевод] Распределенные системы. Паттерны проектирования. Обзор книги Здравствуйте, коллеги. Сегодня мы публикуем перевод очередного обзора с сайта Бена Нейдела — этот сайт наверняка заинтересует вас и в оригинале. На сей раз мы поговорим о книге "Распределенные системы. Паттерны проектирования", которая дополняет вышедшую у нас в начале этого...

[Перевод] Революция или эволюция Page Object Model? Всем привет! Меня зовут Артём Соковец. Хочу поделиться переводом своей статьи об Atlas: реинкарнации фреймворка HTML Elements, где представлен совершенно иной подход работы с Page Object. Перед тем, как перейти к деталям, хочу спросить: сколько обёрток для Page Object вы зн...

[Перевод] Нет, вам не нужен Express в вашем REST API на Node.js Об альтернативах Express, где и почему стоит отказаться от Express'a и небольшие замеры в переводе под катом Читать дальше →

[Перевод] Кеширование в Laravel: основы плюс tips&tricks Техника кеширования позволяет создавать более масштабируемые приложения, запоминания результаты некоторых запросов в быстрое in-memory хранилище. Однако, некорректно реализованное кеширование может сильно ухудшить впечатление пользователя о вашем приложении. Эта статья содер...

Строительные блоки распределенных приложений. Второе приближение Анонс Коллеги, в середине лета я планирую выпустить еще один цикл статей по проектированию систем массового обслуживания: “Эксперимент VTrade” — попытка написать фреймворк для торговых систем. В цикле будет разобрана теория и практика построения биржи, аукциона и магазина. В...

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

Что необходимо знать о GDPR в 2019 Сегодня поговорим о “великом и ужасном” GDPR (General Data Protection Regulation) или Общем регламенте по защите персональных данных. Не смотря на то, что закон был принят еще в мае 2018 года, многие компании до сих пор не выполняют всех его требований. Мы встретились с н...

Материалы Panda Frontend Meetup #22: плагины, «сложные» данные, тестирование, декларативный Angular Привет! Это пост-отчёт с Panda Meetup #22, который проходил в офисе Авито. Мы обсуждали тестирование на основе свойств, работу со «сложными» данными (объектами с большой вложенностью и хитрой структурой), плагины vue-cli и декларативный Angular (почему бы и нет?). Заходите ...

Кинотеатральный D-ILA-проектор JVC DLA-NX9B: высочайшая контрастность и поддержка разрешения 8К Проектор DLA-NX9B — это следующий шаг в эволюции проекционных устройств, доступных обычному потребителю. Планка в 8К если не преодолена, то уже не выглядит чем-то недосягаемым. Пусть пока разрешение 8К получено путем интерполяции из 4К, и технология e-shift, как мы знаем на ...

[recovery mode] История слона Slonik, логотипа PostgreSQL Привет, Хабр! Всегда думал, что логотип для продукта придумать если не пару пустяков, то дело небольшого количества времени. Однако на примере PostgreSQL видно, что это совершенно не так. Предлагаю вашему вниманию перевод статьи Патрисии Дыбки, комьюнити менеджера компани...

ThingJS v1.0-alpha Последние два года я разрабатывал собственную IoT платформу и сегодня готов показать ее альфа версию. Вместе с партнером мы создаем и поддерживаем IoT устройства. Мы разобрали не один сарай с граблями в процессе этой деятельности. ThingJS родилась не столько из желания, ско...

[Из песочницы] Реализация шлюза P2P операций перевода с карты на карту Для своего проекта мне потребовалось реализовать возможность перевода с карты на карту. Для официального подключения к интерфейсу любого банка необходимо заключение договора и выполнение ряда условий. Поэтому было принято решение сделать шлюз к публичной странице банка. Для ...

Разработка цифровых продуктов с помощью ментальных моделей Привет, Хабр! Предлагаю вашему вниманию перевод статьи Designing Digital Products with Mental Models автора дизайнера Тима Шеинера. Лучший способ добиться взаимопонимания в проектной команде. Перевод — это сложно Когда-то, путешествуя по Индии, я купил недорогую книжку — ...

Сервер, ты меня слышишь? BROP-атака на примере задания NeoQUEST-2019 Как найти уязвимость на сервере, не имея информации о нём? Чем BROP отличается от ROP? Можно ли скачать исполняемый файл с сервера через переполнение буфера? Добро пожаловать под кат, разберём ответы на эти вопросы на примере прохождения задания NeoQUEST-2019! Читать дальш...

Где послушать про Apache Ignite и GridGain в октябре Сделали канал для анонсов офлайн и онлайн мероприятий русскоязычного сообщества Apache Ignite в телеграме. Присоединяйтесь к @apacheigniteRus. Кстати, если вы давно хотите, чтобы разработчики Apache Ignite и GridGain про что-нибудь рассказали, а они всё не рассказывают, дайт...

[Из песочницы] Байесовская сеть, валюты и мировой кризис Эта статья про модель на основе Байесовской сети, которая описывает котировки мировых валют. Я покажу на основе простой метрики, что паттерн поведения котировок мировых валют за последние два года (с начала 2018 по конец 2019) совпадает с тем, который наблюдался в течении ...

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

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

[Из песочницы] Что они думали о программистах Привет, Хабр! Представляю вашему вниманию перевод статьи «What They Thought of Programmers» автора Robert C. Martin. Интересно и познавательно вернуться в прошлое и посмотреть, как программисты были представлены в массовой культуре. Что люди о нас думали? Знали ли они, кто ...

Big data, deus ex machina Источник «Данные — это новая нефть». Эту фразу на выступлении для PopTech произнёс несколько лет назад Джер Торп (Jer Thorp), художник и эксперт в вопросах анализа и визуализации данных, один из основателей «Бюро креативных исследований». Сегодня мы хотим поговорить не прос...

[Перевод] Практический пример создания собственного View-компонента Мне нравится Dribbble. Там есть много крутых и вдохновляющих дизайн-проектов. Но если вы разработчик, то часто чувство прекрасного быстро сменяется на отчаяние, когда вы начинаете думать о том, как реализовать этот крутой дизайн. В этой статье я покажу вам пример такого диз...

Мультимодельные СУБД — основа современных информационных систем? Современные информационные системы достаточно сложны. Не в последнюю очередь их сложность обусловлена сложностью обрабатываемых в них данных. Сложность же данных зачастую заключается в многообразии используемых моделей данных. Так, например, когда данные становятся «большими...

[Перевод] Как написать смарт контракт на WebAssembly в сети Ontology? Часть 2: С++ В этой статье мы разберем на двух примерах, как написать смарт контракт на языке C++, используя WASM на основе блокчейн сети Ontology. Сегодня, после нескольких месяцев стабильной работы в тестовом режиме, Ontology запустила WASM в основной сети, что позволяет безболезненн...

[Перевод] Cтажировка в Haxe Foundation Представляю вам перевод еще одного доклада с HaxeUp Sessions 2019 Linz, считаю что он хорошо дополняет предыдущий, т.к. продолжает тему изменений в Haxe, произошедших в 2019 году, а также немного рассказывает о его будущем. Немного об авторе доклада: Аурел Били познакомился ...

Google: почему сайт может не занимать 1-ю позицию по брендовым запросам Сотрудник Google Джон Мюллер объяснил в Twitter, почему сайт компании может не занимать первую позицию в результатах поиска по брендовым запросам. По его словам, это может происходить в том случае, когда название компании больше похоже на ключевое слово, чем на уникальный бр...

[Перевод] Изучаем Docker, часть 6: работа с данными В сегодняшней части перевода серии материалов о Docker мы поговорим о работе с данными. В частности — о томах Docker. В этих материалах мы постоянно сравнивали программные механизмы Docker с разными съедобными аналогиями. Не будем отходить от этой традиции и здесь. Данные в ...

Предварительный обзор Lenovo IdeaCentre AIO A340. Стильное решение В последнее время пользователи перестали обращать внимание на обычные настольные компьютеры. Дело в том, что не каждый может собрать компьютер из отдельных комплектующих — для этого нужно иметь определенный набор знаний и умений. Кроме того, подобрать и заказать все комплект...

Множественные эксперименты: теория и практика В современном мире сложно представить развитие продукта без A/B-тестирования. Чтобы успешно запустить продукт или новую функциональность — надо грамотно спроектировать A/B, рассчитать и интерпретировать его результаты. Иногда нам требуется тестирование более чем для двух гру...

Умный сервис кэша на базе ZeroMQ и Tarantool Руслан Ароматов, главный разработчик, МКБ Привет, Хабр! Я работаю бэкенд-разработчиком в Московском кредитном банке, и за время работы у меня накопился некоторый опыт, которым я хотел бы поделиться с сообществом. Сегодня я расскажу, как мы писали свой собственный сервис к...

[Перевод] История четырёхкратного ускорения React-приложения Почти 60% посетителей сайта покидают его в том случае, если его загрузка занимает более 3 секунд. 80% таких посетителей на сайт уже не возвращается. Это говорит о том, что успех веб-проекта не в последнюю очередь зависит от его скорости. Автор материала, перевод которого мы ...

Как запустить java-проект на shell-раннере при пуше в репозиторий GitLab’а Меня зовут Иван Сидоренко, я инженер по тестированию в компании Digital Design. Передо мной стояла задача — внедрить запуск автотестов, написанных на Java Selenium. Я новичок в CI/CD, поэтому столкнулся со множеством проблем. Подробных инструкций в интернете по этой задаче ...

Пишем на Rust + CUDA C Всем привет! В данном руководстве хочу рассказать как подружить CUDA C/С++ и Rust. И в качестве примера напишем небольшую программу на Rust для вычисления скалярного произведения векторов, вычисление скалярного произведения будет производиться на GPU с использованием CUDA ...

[Из песочницы] Три неочевидных примера использования шаблонизаторов в backend-е С одной стороны, предмет действительно был квадратным. C другой стороны он был круглым. Но с третьей стороны, с которой должен быть треугольник, предмет вышел кривой и косой. — Алешенька идет на совещанку? — в дверь просунулась Леночкина заинтересованная физиономия. — Алеш...

Напиши свою песню за 10 минут (модуль textgenrnn Python3) Сегодня попробуем обучить свою собственную нейронную сеть, чтобы писала текст для песен. Обучающей выборкой будут тексты группы "Руки Вверх". Ничто не мешает чтобы поменять данные на тексты своих любимых групп. Для извлечения данных с веб-сайтов используем Python3 (модуль B...

[Из песочницы] Три Больших Лжи о JavaScript Привет, Хабр! Представляю вашему вниманию мой перевод статьи "The Three Big Lies About JavaScript" автора Richard Kenneth. Данная статья была написана в мае 2016 года, однако ее актуальность, на мой взгляд, не исчезла. Я начинающий программист, поэтому возможны оши...

Shader — это не магия. Написание шейдеров в Unity. Введение Всем привет! Меня зовут Дядиченко Григорий, и я основатель и CTO студии Foxsys. Сегодня хочется поговорить про шейдеры. Умение писать шейдеры (и в целом работать с рендером) очень важно при разработке под мобильные платформы или AR/VR, если хочется добиться крутой графики. М...

[Из песочницы] MicroPyServer простой HTTP сервер для ESP8266 и ESP32 Всем привет! Хочу рассказать о библиотеке MicroPyServer написанной на Python, которая позволяет взаимодействовать с устройствами ESP8266 и ESP32 посредством простого HTTP сервера. Что такое MicroPyServer? MicroPyServer это простой HTTP сервер предназначенный для проектов на...

[Перевод] Бессерверные вычисления на основе OpenWhisk, часть 2 Эта статья продолжает цикл переводных заметок об OpenWhisk от автора Priti Desai. Сегодня будут рассмотрены примеры развертывания GitHub webhook, периодических сигналов, а также приведено простейшее приложение для отправки сообщений в Slack. Читать дальше →

[recovery mode] Призрачные SQL запросы Взгляните на код PHP: $user->v_useragent = 'coresky.agent'; Такой код может спровоцировать SQL запрос UPDATE или INSERT, а может и не спровоцировать если идентичные данные уже установлены в БД, собственно поэтому этот функционал именуется «Призрачные SQL запросы». Дело в...

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

[Из песочницы] Подписываемся на Kafka по HTTP или как упростить себе Веб-хуки Существует множество способов обработки сообщений из Pub-Sub систем: использование отдельного сервиса, выделение изолированного процесса, оркестрация пулом процессов/потоков, сложные IPC, Poll-over-Http и многие другие. Сегодня я хочу рассказать о том, как использовать Pub-S...

[Перевод] Microsoft Edge – Универсальный XSS Перевод статьи подготовлен специально для студентов курса «Реверс-инжиниринг». Универсальный XSS (uXSS) – это баг браузера, который дает возможность выполнять код на JavaScript на любом сайте. Кажется, будто XSS есть на всех сайтах и выглядит это очень интересно. Что е...

16-дюймовый MacBook Pro получит 3D-карту AMD Radeon RX 5500M и урезанную сенсорную полоску Touch Bar В Сети появились новые подробности о перспективном 16-дюймовом ноутбуке Apple MacBook Pro. Новинка может выйти в любой момент (Apple вообще не утруждает себя в последнее время официальными анонсами с привязкой к какой-то ранее анонсированной дате), но у нас уже есть воз...

[Перевод] Стандартный браузерный API Payment Request Знаете ли вы о том, что во многих современных браузерах имеется встроенный API, который называется Payment Request? Этот API описан в стандарте W3C, который направлен на поддержку работы с платёжной и контактной информацией. Вот обзор стандарта на ресурсе developers.google.c...

Оптимизация запросов базы данных на примере B2B сервиса для строителей Как вырасти в 10 раз под количеству запросов к БД не переезжая на более производительный сервер и сохранить работоспособность системы? Я расскажу, как мы боролись с падением производительности нашей базы данных, как оптимизировали SQL запросы, чтобы обслуживать как можно бол...

Митап по PHP в Иванове Привет, Хабр! Мы рады сообщить, что уже в эту субботу в офисе компании Инвольта состоится митап на тему: “PHP: Неправильный путь. Почему важно знать инструменты Native PHP сегодня. Личный опыт разработчика Rambler.” Как уже понятно из темы, на митапе мы будем говорить про ...

[Перевод] Мертв ли Hadoop? Часть 2 Перевод статьи подготовлен специально для студентов курса «Data Engineer». Читать первую часть Никому не нужна Big Data Когда вы услышите «Никому не нужна Big Data», посмотрите на резюме докладчика. Африканский телекоммуникационный оператор, переживающий удивительные уро...

[Из песочницы] Удаленный мониторинг и управление устройств на базе Lunix/OpenWrt/Lede через 80-ый порт… Всем привет, это мой первый опыт на Хабре. Хочу написать о том, как нестандартно управлять сетевым оборудованием во внешней сети. Что значит нестандартно: в большинстве случаев, для управления оборудованием во внешней сети Вам необходимо: Публичный IP-адрес. Ну, или если...

[Из песочницы] Хранение и автоматическая сортировка фото и других файлов. Работа с файлохранилищем на базе NAS Synology Давно хотел написать про то как я храню свои файлы, как делаю бэкапы, но все никак не доходили руки. Недавно тут появилась статья, в чем-то похожую на мою но с другим подходом. Сама статья. Я уже много лет пытаюсь найти идеальный для себя метод для хранения файлов. Думаю я ...

[Перевод] Низкая связанность, архитектура и организация команд Перевод статьи подготовлен специально для студентов курса «DevOps практики и инструменты». В этой статье обсуждается взаимосвязь между структурой кода и структурой организации при разработке программного обеспечения. Я рассуждаю над тем, почему программное обеспечение и к...

[Из песочницы] Нетривиальная расстановка элементов на flexbox без media-запросов Казалось бы, какой пост может быть о CSS Flexbox в 2019 году? Верстальщики уже несколько лет активно используют данную технологию, и все тайны должны быть разгаданы. Однако, недавно у меня возникло стойкое ощущение, что нужно поделиться одним нетривиальным и, на мой взгляд,...

Интуитивный RL (Reinforcement Learning): введение в Advantage-Actor-Critic (A2C) Это вольный перевод статьи Rudy Gilman и Katherine Wang Intuitive RL: Intro to Advantage-Actor-Critic (A2C).Специалисты по усиленному обучению (RL) подготовили множество отличных учебных пособий. Большинство, однако, описывают RL в терминах математических уравнений и абстрак...

Обзор ISPmanager – панели управления хостингом и сайтами Не так давно мы публиковали обзор «Что нового в веб-консолях 2019», после чего подробно разобрали панель Plesk и вот теперь хотим разобрать ещё одну панель управления сайтами и сервером — ISPmanager.  Читать дальше →

Видео дня: разборка Huawei P30 Pro в официальном сервисе компании Huawei P30 и P30 Pro про пока даже не поступили в продажу, но энтузиасты продолжают изучать эти модели вдоль и поперек. Про незаурядные возможности камеры смартфона мы уже знаем, а сейчас один из пользователей решил отправиться в официальный сервисный центр, чтобы разоб...

[Из песочницы] Мы забыли про делегирование в JavaScript. Event delegation in React Всем привет. Статья о делегирование событий в JavaScript и реализация его в react.js. О чем собственно речь? Зачем и почему? Для начала давайте кратко обсудим: что есть событие; как происходит распространение; обработка DOM Level 2 с примером на JavaScript; И в конце: поч...

Что нужно знать о Red Hat OpenShift Service Mesh Переход на Kubernetes и Linux-инфраструктуры при цифровой трансформации организаций приводит к тому, что приложения все чаще начинают строиться на основе микросервисной архитектуры и, как следствие, очень часто обрастают сложными схемами маршрутизации запросов между сервисам...

Кадровая алхимия: каков оптимальный состав команды центра ГосСОПКА? Эта статья пригодится тем, кто работает в компании, признанной субъектом критической информационной инфраструктуры (КИИ), а значит — обязанной выполнить требования №187-ФЗ и построить центр ГосСОПКА (Государственной системы обнаружения, предупреждения и ликвидации последст...

Peloton: следующая Apple или еще один скам? На Хабре о Peloton пока что знают только по короткой новостной заметке. А зря. Кейс тут очень интересный. Эта компания делает велосипеды с встроенным онлайн-стримингом. Казалось бы, что за бред (и что может быть проще)? Тем не менее она уже оценивается более чем в $9 млрд,...

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

[Из песочницы] Быстрый Яндекс словарь Наверное все знают что у Яндекс есть замечательный бесплатный сервис Яндекс.Словарь где можно посмотреть перевод нужного вам слова, но для лично меня он не удобен тем что постоянно нужно было переключаться на Chrome, вручную вводить текст или вставлять из буфера обмена, даже...

[Перевод] Проблема со связанными переменными: как превратить оптимизатор из врага в друга Автор статьи – Виктор Варламов, OCP. Оригинал статьи опубликован 07.07.2017. Отдельное спасибо автору перевода — brutaltag. В нашей системе подготовки отчетности обычно выполняются сотни длительных запросов, которые вызываются различными событиями. Параметрами запросов с...

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

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

Что такое логическое программирование и зачем оно нам нужно У того, кто в детстве не писал на Прологе — нет сердца, а у того, кто пишет на нём сегодня — нет мозгов. (оригинал) Если вас всегда терзали мучительные сомнения — что за фигня это Логическое Программирование (ЛП) и вообще зачем оно нужно? То это статья для вас. Можно по-раз...

[Из песочницы] Управление состоянием приложения в Flutter Привет, Хабр! Представляю перевод статьи, Let me help you to understand and choose a state management solution for your app, которая попалась мне и заинтересовала в процессе изучения азов управления состоянием во Flutter. Буду рад услышать любую критику касательно данного пе...

[Перевод] Почему я боюсь стать «прокачанным человеком» Вы когда-нибудь слышали о «прокачанном человеке» (augmented human)? Пояснение от переводчицыЯ долго искала подходящий перевод термина «augmented human», так как устоявшегося перевода в русском языке еще нет. Вариант Википедии c глаголом «улучшать» кажется недостаточно перед...

[Перевод] Вся правда об ОСРВ. Статья #25. Каналы передачи данных: введение и базовые службы После небольшого перерыва мы продолжаем публиковать переводы статей «Вся правда об ОСРВ» Колина Уоллса. В этот раз поговорим о каналах передачи данных (далее – каналы), которые были уже были упомянуты в одной из предыдущих статей, а именно в #5. Каналы, по сравнению с почт...

[Из песочницы] Рефакторинга много не бывает Привет, Хабр! Представляю вашему вниманию перевод статьи "Refactoring — oops, I’ve been doing it backwards" автора Джастина Фуллера (Justin Fuller). Я очень завишу от рефакторинга, и не боюсь признать это, но есть только одна проблема: я всегда делал это задом на...

[Перевод] Обратная разработка первоапрельской «Змейки» от Google Возможно, кто-то из вас заметил, что Google на 1 апреля добавила в приложение Google Maps для Android и iOS интерактивную игру «Змейка». Специалисты Check Point обычно заняты исследованием последних киберугроз, но здесь очень увлеклись этой игрой, правда, сильно расстраив...

[Перевод] Тренинг Cisco 200-125 CCNA v3.0. День 23. Передовые технологии маршрутизации Сегодня мы более основательно рассмотрим некоторые аспекты маршрутизации. Прежде чем начать, я хочу ответить на вопрос студентов о моих страничках в социальных сетях. Слева я поместил ссылки на странички нашей компании, а справа – на мои персональные странички. Замечу, что я...

Software Defined Radio — как это работает? Часть 1 Привет Хабр. Продолжая цикл статей про радио, есть смысл рассказать про последние достижения в этой области — Software Defined Radio. Я не знаю адекватного перевода термина на русский, поэтому оставим так, да и термин SDR уже прижился в технических и радиолюбительских круга...

Legacy-сервисы в вашей инфраструктуре Привет! Меня зовут Паша Черняк, я ведущий разработчик в QIWI, и сегодня я хочу поговорить о неизбежном. О Legacy. Начнем с вопроса: что такое Legacy-сервис? Legacy-сервис — это сервис, которого разработчик не касался уже неделю/месяц/год? Или это сервис, который был написан...

[Из песочницы] Как в Microsoft SQL Server получать данные из Google Analytics при помощи R В этом материале я хочу подробно показать, как можно при помощи R в Microsoft SQL Server реализовать получение данных из Google Analytics (и вообще из любого API). Благодарности: Поскольку я ни разу не маркетолог мне требовалась помощь специалиста. Тестовый кабинет и доступ ...

Книга «Прагматичный ИИ. Машинное обучение и облачные технологии» Привет, Хаброжители! Эта книга Ноя Гифта предназначена для всех, кого интересуют ИИ, машинное обучение, облачные вычисления, а также любое сочетание данных тем. Как программисты, так и просто неравнодушные технари найдут тут для себя полезную информацию. Примеры кода даны н...

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

[Перевод] Программная реализация усилителя класса D Best-404-Error интересуется, можно ли получить результат компиляции длиной менее 512 байт, если исходник написан на языке высокого уровня. Можно, если упростить возлагаемую на прошивку задачу. Программная реализация усилителя класса D позволяет менять его параметры (часто...

40 миллионов HTTP запросов/мин на голом Си Введение I/O реактор (однопоточный цикл событий) — это паттерн для написания высоконагруженного ПО, используемый во многих популярных решениях: Node.js Tor Transmission Chromium Memcached ... В данной статье мы рассмотрим подноготную I/O реактора и принцип его работы, нап...

[Перевод] Оптимизация стратегии игры в Блэкджек методом Монте-Карло Перевод статьи подготовлен специально для студентов курса «Machine learning». Обучение с подкреплением штурмом взяло мир Искусственного Интеллекта. Начиная от AlphaGo и AlphaStar, все большее число видов деятельности, в которых раньше доминировал человек, теперь завоевано...

[Из песочницы] Задача классификации глазами школьника: определение наличия автомобиля на парковке по кадрам с камеры видеонаблюдения Здравствуйте, я школьник 11 классов, интересуюсь программированием, около-IT тематикой. Пишу данный пост с целью поделиться своим проектом, занявшим 10 часов моей жизни на выходных и выполненным с целью понять возможности современных методов анализа данных. Публикация может...

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

[Из песочницы] Приложение на ТСД и связь с 1С: Предприятие 8.3 через HTTP-Сервис Для кого Выбор способа обмена. Описание API. Реализация API на стороне 1С. Android. Cтруктура приложения. BroadcastReceiver. Получаем данные ШК на примере АТОЛ Smart.Lite. Реализуем обмен и хранение данных. Используем Retrofit 2, Room, Coroutines. Пользовательский интерфейс...

Текстурирование, или что нужно знать, чтобы стать Художником по поверхностям. Часть 5. Система материалов В предыдущих частях туторов мы рассматривали то, как создаются текстуры. Точнее, то, как всё выглядит под капотом (как выразился Yoooriii в комментариях к 4-ой части). Расставили на свои места термины — пиксели и тексели. Разобрали немного развертку и сетку моделей, PBR и ма...

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

[Перевод] Деревья квадрантов и распознавание коллизий Эта неделя была короткой, в понедельник и вторник я продолжал работать над системой 2D-освещения. Остальное время я потратил на реализацию деревьев квадрантов (quadtree). В этой статье я поделюсь своей реализацией и мыслями, возникшими в процессе её проектирования. Во-пер...

[Перевод] Мониторинг и проверка состояния SSD в Linux И снова здравствуйте. Перевод следующей статьи подготовлен специально для студентов курса «Администратор Linux». Поехали! Что такое S.M.A.R.T.? S.M.A.R.T. (расшифровывается как Self-Monitoring, Analysis, and Reporting Technology) – это технология, вшитая в накопители, та...

[Перевод] Крошечные компоненты: что может пойти не так? Используем принцип единственной ответственности Представляем вашему вниманию перевод статьи Scott Domes, которая была опубликована на blog.bitsrc.io. Узнайте под катом, почему компоненты должны быть как можно меньше и как принцип единственной ответственности влияет на качество приложений. Фото Austin Kirk с Unsplash Чит...

[Перевод] Пирамидальная сортировка (HeapSort) Перевод статьи подготовлен специально для студентов курса «Алгоритмы для разработчиков». Пирамидальная сортировка (или сортировка кучей, HeapSort) — это метод сортировки сравнением, основанный на такой структуре данных как двоичная куча. Она похожа на сортировку выбором, г...

Поиск задач в JIRA (простым языком). Часть 2: Продвинутый поиск Структуру JQL-запросов без примеров сложно понять специалистам, не знакомым ранее с JIRA. Мы уже успели рассказать про быстрый и базовый поиск. Теперь же прейдем к самому мощному из трех методов — к продвинутому поиску. В этом режиме вы можете указывать критерии, которые ...

[Из песочницы] Что нужно знать перед переходом на Akka toolkit для реализации Event Sourcing и CQRS Здравствуйте, уважаемые читатели Хабра. Меня зовут Рустем и я главный разработчик в казахстанской ИТ-компании DAR. В этой статье я расскажу, что нужно знать перед тем, как переходить на шаблоны Event Sourcing и CQRS с помощью Akka toolkit. Примерно с 2015 года мы начали прое...

Все свое: туториал по созданию новых действий для UiPath RPA Данная статья – обучающий материал, который позволяет по шагам пройтись по процессу создания и публикации нового компонента для платформы UiPath RPA. Это удобно в разных случаях, например, для простой интеграции с системами компании или в ситуациях, когда компания хочет помо...

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

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

Как я писал бота с ДЗ и менял базу данных Здравствуйте, Хабровчане! Сегодня я постараюсь поведать вам как школьник может наговнокодить написать бота для хранения домашки для VK. ОсторожноСразу обращу внимание, что для серьёзных проектов так строить инфраструктуру нельзя, весь этот проект создавался только для развл...

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

Битва гиперсозвездий Последние года 3 на давно сложившемся рынке спутниковой связи можно наблюдать приличный хайп вокруг проектов низкоорбитальных (НОО) спутниковых гиперсозвездий — телекоммуникационных систем, состоящих из многих тысяч спутников, дорогих и амбициозных проектов. Мне кажется инте...

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

Системы на основе очередей задач Привет, Хаброжители! Мы решили поделиться переводом главы «Системы на основе очередей задач» Из готовящейся к выходу новинки «Распределенные системы. Паттерны проектирования» (уже в типографии). Простейшая форма пакетной обработки — очередь задач. В системе с очередью за...

[Перевод] Устойчивый нейронный машинный перевод В последние годы нейронный машинный перевод (НМП) с использованием моделей «трансформер» добился необычайных успехов. НМП на основе глубоких нейросетей обычно обучаются с начала до конца на очень объёмных параллельных корпусах текстов (текстовых парах) исключительно на основ...

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

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

[Из песочницы] GridmiAPI — простая и гибкая библиотека Android для работы с REST&RPC Здравствуйте, хабровчане! Когда занимаешься разработкой сетевых приложений под платформу Android, понимаешь, что одно и другое приложение похоже друг на друга. С этой мыслью у большинства разработчиков инициализируется и другая мысль — «Почему бы мне не использовать какие-л...

[Перевод] PostgreSQL и настройки согласованности записи для каждого конкретного соединения Перевод статьи подготовлен специально для студентов курса «Базы Данных». Интересно развиваться в данном направлении? Приглашаем вас на День Открытых Дверей, где мы подробно рассказываем о программе, особенностях онлайн-формата, компетенциях и карьерных перспективах, которые ...

Apache, ViewState&Deserialisation В данной статье рассмотрим уязвимость на основе подмены сериализованного Java-объекта ViewState и метод её эксплуатации на примере web-приложения виртуальной машины с HackTheBox, использующей технологию Apache MyFaces. Читать дальше →

Как превратить приложение на iPad в программу для Mac Презентация macOS Catalina на WWDC 2019 В июне этого года, на WWDC, Крейг Федериги артистично и с примерами рассказал кое о чем очень важном. Благодаря чему в macOS вернулся Twitter, и появились Jira и Asphalt. Но самое главное о причине этих чудес так и не было сказано. Ч...

«Предложили ознакомиться с расчетами одного показателя, а там два листа с интегралами и вторыми производными» Это интервью с Антоном Батяевым (batiaev) из Технологического Центра Дойче Банка. Мы поговорим о том, чем занимаются финансовые математики, откуда берутся данные в банках, как обрабатываются и оптимизируются. О сложности попадания в финансовую сферу, торговле на бирже и обще...

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

[Перевод] Chaos Engineering: искусство умышленного разрушения Прим. перев.: Рады поделиться переводом замечательного материала от старшего технологического евангелиста из AWS — Adrian Hornsby. В простых словах он объясняет важность экспериментов, призванных смягчить последствия сбоев в ИТ-системах. Вы, наверное, уже слышали про Chaos M...

[Перевод] 39 новых фич, которые будут доступны в Java 12 Из замечательного интервью на Хабре: «Саймон Риттер — человек, который работал над Java с самого начала и продолжает делать это в роли заместителя технического директора Azul — компании, работающей над виртуальной машиной Zing JVM и одним из лучших сборщиков мусора, C4 (Cont...

[Из песочницы] Как выглядело бы Московское метро в трехмерном мире Добрый день! Недавно я читал блог одного урбаниста, который рассуждал о том, какая должна быть идеальная схема метро.Схему метро можно рисовать исходя из двух принципов: Схема должна быть удобной и простой для запоминания и ориентирования Схема должна соответствовать гео...

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

TabPy для работы с данными в ClickHouse из Tableau Выстраивание коммуникаций между брендами и людьми — то, чем мы в Dentsu Aegis Network занимаемся каждый день, и неотъемлемой частью этой работы является анализ данных. В ряде случаев этот процесс не требует data science (хотя и он у нас есть), тогда мы используем BI платформ...

Все материалы на данном сайте взяты из открытых источников или присланы посетителями сайта и предоставляются исключительно в ознакомительных целях. Права на материалы принадлежат их владельцам. Администрация сайта ответственности за содержание материала не несет. (Правообладателям)