Социальные сети Рунета
Понедельник, 21 июня 2021

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

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

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

Настоящая оптимизация на C/C++ Это продолжение двух постов (первый, второй). В этот раз оптимизация будет произведена на реальной задаче, с правильно построенной методологией тестирования. Задачу возьмем из нашумевшего поста «Алгоритм перевода числа (байтов) в приставку СИ», она интересна тем, что на перв...

Сортировка выбором Всем привет. Эту статью я написал специально к запуску курса «Алгоритмы и структуры данных» от OTUS. Введение Сортировка массива является одной из первых серьезных задач, изучаемых в классическом курсе «Алгоритмы и структуры данных» дисциплины computer science. В связи с э...

[Перевод] Пирамидальная сортировка, сортировка слиянием и выпуклая оболочка Куча (heap) — это не что иное, как двоичное дерево с некоторыми дополнительными правилами, которым оно должно следовать: во-первых, оно всегда должно иметь структуру кучи, где все уровни двоичного дерева заполняются слева направо, и, во-вторых, оно должно быть упорядочено в ...

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

Способы хранения деревьев в реляционных базах данных c использованием ORM Hibernate Здравствуйте! В этой статье, я постараюсь кратко рассказать о четырёх достаточно известных способах хранения деревьев с указанием преимуществ и недостатков. На идею написать подобную статью подтолкнул, когда-то не раз заданный мне вопрос: "А как это будет в Hibernate?", то е...

[Перевод] Собеседования по алгоритмам: теория vs. практика tl;dr За последние десятилетия мода на собеседования программистов менялась несколько раз, и каждая из них выглядит нелепо в ретроспективе. Либо мы наконец-то нашли настоящий секрет эффективных собеседований, либо увлеклись очередным модным течением, которое через десять-два...

[Перевод] Splay-дерево. Поиск Наихудшая временная сложность таких операций, как поиск, удаление и вставка, для двоичного дерева поиска (Binary Search Tree) составляет O(n). Наихудший случай случай возникает, когда дерево несбалансировано. Мы можем улучшить наихудший результат временной сложности до O(log...

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

[Перевод] 5 алгоритмов регрессии в машинном обучении, о которых вам следует знать Источник: Vecteezy Да, линейная регрессия не единственная Быстренько назовите пять алгоритмов машинного обучения. Вряд ли вы назовете много алгоритмов регрессии. В конце концов, единственным широко распространенным алгоритмом регрессии является линейная регрессия, главны...

[Перевод] «Привет, мир»: разбираем каждый шаг хэш-алгоритма SHA-256 SHA-2 (Secure Hash Algorithm), в семейство которого входит SHA-256, — это один самых известных и часто используемых алгоритмов хэширования. В тексте подробно покажем каждый шаг работы этого алгоритма на реальном примере. SHA-2 отличается безопасностью (его тяжелее взломать,...

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

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

[Перевод] Как я изучал структуры данных и алгоритмы для собеседования в FAANG Продолжая тему устройства в FAANG, которую уже мы поднимали в нашем блоге, и специально к старту нового потока нашего курса по алгоритмам сегодня делюсь описанием пути Эско Обонга, старшего инженера-программиста Uber. Эта история началась в 2015 году, когда стартап, к котор...

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

Под капотом сортировок в STL Стандарт С++ почти никогда не указывает, как именно должен быть реализован тот или иной std алгоритм. Дается только описание того, что на входе, что на выходе и асимптотические ограничения по времени работы и памяти. В статье я постарался прикинуть, какие математические алг...

[Перевод] Go: Должен ли я использовать указатель вместо копии моей структуры? Иллюстрация, созданная для «A Journey With Go», из оригинального гофера, созданного Рене Френч. С точки зрения производительности систематическое использование указателей вместо копирования самой структуры для совместного использования структур многим Go разработчикам пред...

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

[Из песочницы] Web Scraping. Часть 1 Введение Всем привет. Недавно у меня возникла идея о том, чтобы поделиться с интересующимся кругом лиц о том как пишутся скраперы. Так как большинству аудитории знаком Python все дальнейшие примеры будут написаны на нём. Данная часть рассчитана для того, чтобы познакомить те...

Tarantool: взгляд аналитика Всем привет! Меня зовут Андрей Капустин. Я работаю системным аналитиком в Mail.ru Group. Наши продукты формируют единую экосистему для пользователя, в которой данные генерируют множество независимых инфраструктур: службы заказов такси и еды, почтовые сервисы, соцсети. Сегодн...

Алгоритм Джонсона на орграфе с отрицательными дугами Статья подготовлена в преддверии старта курса «Алгоритмы и структуры данных» Алгоритм Джонсона находит кратчайший путь между всеми парами вершин во взвешенном ориентированном графе с отрицательными весами без негативных контуров. О, как звучит! Давайте разберём условие зад...

[Из песочницы] Как сделать тематическое моделирование форума быстро или что беспокоит людей с целиакией В данной статье я расскажу и покажу на примере, о том, как человек с минимальным Data Science опытом, смог собрать данные из форума и сделать тематическое моделирование постов с использованием LDA модели, и выявил наболевшие темы людей с глютеновой непереносимостью. В прошл...

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

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

[Перевод] Go и кэши CPU Источник: unsplash.com По словам Джеки Стюарта, трехкратного чемпиона мира по гонкам Формулы-1, понимание автомобиля помогло ему стать лучшим пилотом: «Гонщику не обязательно быть инженером, но нужен интерес к механике». Мартин Томпсон (создатель LMAX Disruptor) применил ...

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

[Перевод] О реализации структуры данных Map в V8 В стандарте ECMAScript 2015, известном как ES6, появилось много новых JavaScript-коллекций, таких, как Map, Set, WeakMap и WeakSet. Они, судя по всему, стали отличным дополнением к стандартным возможностям JavaScript. Они получили широкое применение в различных библиотеках,...

[Перевод] Splay-дерево. Вставка Перед прочтением этой статьи настоятельно рекомендуется ознакомиться с первой частью: Splay-дерево. ПоискКак упоминалось в предыдущей статье, Splay-дерево — это самобалансирующаяся структура данных, в которой последний ключ, к которому осуществлялся доступ, всегда помещается...

Часть 1. MPI — Введение и первая программа В этом цикле статей речь пойдет о параллельном программировании. Довольно часто самые сложные алгоритмы требуют огромного количества вычислительных ресурсов в реальных задачах, когда программист пишет код в стандартном его понимании процедурного или Объектно Ориентированного...

Сверхсовременные иммутабельные структуры данных Годами эксперты в С++ рассуждают о семантике значений, иммутабельности и разделении ресурсов за счет коммуникации. О новом мире без мьютексов и гонок, без паттернов Command и Observer. На деле все не так просто. Главная проблема по-прежнему в наших структурах данных. Имму...

Всё-таки я не зря учился! Как клёвые алгоритмы и школьные формулы помогают создавать инновационные лекарства Введение Меня зовут Александр Садовников, я выпускник корпоративной магистерской программы ИТМО и JetBrains «Разработка программного обеспечения» и по совместительству старший разработчик биоинформатического ПО в департаменте вычислительной биологии компании BIOCAD. В этом...

[Перевод] Разбираемся с доступом к атрибутам в Python Интересно, сколько людей понимают, что в Python много синтаксического сахара? Я не говорю, что он похож на Lisp-подобные языки, где синтаксис настолько голый, насколько это возможно (хотя и сравнение с Lisp не совсем обосновано), но большая часть синтаксиса Python технически...

[Перевод] История интерпретируемости в распознавании изображений Распознавание изображений (т. е. классификация того, какой объект отображается на изображении) является основной задачей в области компьютерного зрения, так как она позволяет использовать различные последующие приложения (автоматическая маркировка фотографий, помощь слабов...

Ищем максимальную разницу между соседями. User-friendly-разбор задачи по алгоритмам Привет, Хабр! Давайте поговорим про алгоритмы. Новички часто воспринимают их как что-то тяжёлое, сложное и непонятное, и отчасти это правда, но алгоритмы — это базис. А чем лучше вы знаете базис своей специальности, тем с большей вероятностью преуспеете в ней. Сегодня м...

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

Дерево отрезков: просто и быстро Накануне очередного запуска курса «Алгоритмы для разработчиков» мы провели открытый урок. На нём поговорили об известной идее дерева отрезков, обсудили, как его строить, обновлять и быстро O(log n) вычислять сумму чисел любого отрезка данного массива. Алгоритм очень простой ...

[Перевод] Процедурная генерация многоэтажных 3D-подземелий В последнее время я играл в несколько roguelike, поэтому решил попробовать написать собственный процедурный генератор подземелий. Существует множество способов решения этой задачи, и я выбрал алгоритм автора TinyKeep, описанный здесь. Я расширил этот алгоритм, чтобы он рабо...

Сортировки кучей: n-нарные пирамиды Сортировку кучей (она же — пирамидальная сортировка) на Хабре уже поминали добрым словом не раз и не два, но это всегда была достаточно общеизвестная информация. Обычную бинарную кучу знают все, но ведь в теории алгоритмов также есть: n-нарная куча; куча куч, основанная на...

Апгрейд струбцины. Привет всем. Пока делаю свой «большой» проект, расскажу про опыт использования принтера для восстановления работы струбцины и небольшого её апгрейда. Почему считаю нужным описать такой может не значительный проект. Для меня важно чтоб устройство было рабочее, при всём том чт...

Структуры данных: список, который умеет всё* * Под всё имеется в виду относительно быстрое выполнение операций над единичным элементом массива. Структур данных, которые реализуют список полно. У всех есть свои достоинства и недостатки. Например в мире Java — в зависимости от необходимых операций — можно использовать: ...

checkm8 для Lightning-видеоадаптеров Apple Появление эксплойта checkm8 можно назвать одним из важнейших событий прошедшего года для исследователей продукции Apple. Ранее мы уже опубликовали технический анализ этого эксплойта. Сейчас сообщество активно развивает джейлбрейк checkra1n на основе checkm8, поддерживающий ...

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

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

[Перевод] Распределенное обучение XGBoost и параллельное прогнозирование с Apache Spark Привет, Хабр! Уже в конце июля Otus запускает новый курс «Промышленный ML на больших данных». Традиционно, в преддверии старта нового курса, мы подготовили для вас перевод полезного материала. Общие сведения В бустинге (из ансамбля моделей машинного обучения), алгоритмы р...

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

Коты в коробочках, или компактные структуры данных Как быть, если дерево поиска разрослось на всю оперативку и вот-вот подопрет корнями соседние стойки в серверной? Что делать с инвертированным индексом, жадным до ресурсов? Завязывать ли с разработкой под Android, если пользователю прилетает «Память телефона заполнена», а п...

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

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

[Перевод] Введение в ELF-файлы в Linux: понимание и анализ Есть в мире вещи, которые мы принимаем как нечто само собой разумеющееся, хотя они являются истинными шедеврами. Одними из таких вещей являются утилиты Linux, такие, как ls и ps. Хотя они обычно воспринимаются как простые, это оказывается далеко не так, если мы заглянем внут...

[Перевод] Шпаргалка по сортировке для Data Science Сортировка данных является основной задачей для ученых и инженеров по обработке данных. Пользователи Python могут выбирать наиболее удобную из ряда библиотек со встроенными, оптимизированными опциями сортировки. Некоторые даже работают параллельно с GPU. На удивление, неко...

ИИ-алгоритм поможет найти взаимосвязи между предметами искусства MosAIc использует глубокое обучение (deep learning) для анализа базы изображений предметов искусства, представленных в Музее Метрополитен (Нью-Йорк) и национальном музее Амстердама Рейксмузеум. Целью ученых было создать алгоритм, который будет подбирать предметы искусства, п...

[Из песочницы] Чистая архитектура с Typescript: DDD и слоистая архитектура Привет, Хабр! В последнее время уделяю много внимание архитектуре и решил поделиться с сообществом переводом статьи Clean Architecture with Typescript: DDD, Onion автора André Bazaglia. Введение На протяжении более 6 лет моего профессионального опыта, я имел возможность раб...

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

Майнкрафт для геологов: 3D-рендеринг миллиарда ячеек на встроенной видеокарте (часть 1) В одной из прошлых статей с подозрительно похожим заголовком мы показали, как построить модель месторождения и посчитать свойства пласта глубоко под землёй, используя крохи информации о породе, полученной со скважин.В этой статье мы расскажем, как отобразить модель месторожд...

[Из песочницы] Переосмысление DTO в Java Привет, Хабр! Представляю вашему вниманию любительский перевод статьи “Rethinking the Java DTO” Стивена Уотермана, где автор рассматривает интересный и нестандартный подход к использованию DTO в Java. Я провел 12 недель в рамках программы подготовки выпускников Scott Logic,...

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

[Из песочницы] 9 ключевых алгоритмов машинного обучения простым языком Привет, Хабр! Представляю вашему вниманию перевод статьи «9 Key Machine Learning Algorithms Explained in Plain English» автора Nick McCullum. Машинное обучение (МО) уже меняет мир. Google использует МО предлагая и показывая ответы на поисковые запросы пользователей. Netflix...

[Перевод] Находим и устраняем уязвимости бинарных файлов в Linux — с утилитой checksec и компилятором gcc Изображение: Internet Archive Book Images. Modified by Opensource.com. CC BY-SA 4.0 После компиляции одного и того же исходного кода мы можем получить разные бинарные файлы. Это зависит от того, какие флаги мы передадим в руки компилятору. Часть этих флагов позволяет включ...

[Из песочницы] WAL-G: бэкапы и восстановление СУБД PostgreSQL Уже давно известно, что делать бэкапы в SQL-дампы (используя pg_dump или pg_dumpall) – не самая хорошая идея. Для резервного копирования СУБД PostgreSQL лучше использовать команду pg_basebackup, которая делает бинарную копию WAL-журналов. Но когда вы начнёте изучать весь про...

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

Архитектура транзакций в Apache Ignite В этой статье мы рассмотрим, как устроены транзакции в Apache Ignite. Не будем останавливаться на концепции Key-Value хранилища, а перейдем сразу к тому, как это реализовано в Ignite. Начнем с обзора архитектуры, а затем проиллюстрируем ключевые моменты логики транзакций при...

[Перевод] Напишем и поймем Decision Tree на Python с нуля! Часть 5. Информационная энтропия Данная статья — пятая в серии. Ссылки на предыдущие статьи: первая, вторая, третья, четвертая 5.1 Информационная энтропия (Средний объем информации) При создании дерева решений из данных алгоритм ID3 использует индекс, называемый информационной энтропией, чтобы определить, ...

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

Вейвлет деревья Succinct data structures свежее веяние в алгоритмистике. В русскоязычной школе материала мало, нет даже устоявшегося перевода. Будем восполнять этот пробел. На правах первопроходцев терминологию будем вводить налету. Пусть, скажем, компактные структуры данных. На Хабре уже п...

[Перевод] React: наглядное пособие для начинающих. Создаем свой компонент без знаний JavaScript React — это библиотека JavaScript для создания пользовательского интерфейса. Это официальное определение React. Но что если вы не знаете, что такое JavaScript? Что если вы не разработчик? Смогли бы вы тогда понять, что такое React? Однозначно ДА. Именно поэтому я и написал ...

[Перевод] С помощью Python создаём математические анимации, как на канале 3Blue1Brown Вы наверняка когда-то испытывали трудности в понимании математических концепций алгоритмов машинного обучения и для лучшего понимания темы пользовались обучающим ресурсом 3Blue1Brown. 3Blue1Brown — известный математический YouTube-канал, который ведёт Грант Сандерсон. Многим...

[Перевод] Архитектурный шаблон MVI в Kotlin Multipaltform, часть 1 Около года назад я заинтересовался новой технологией Kotlin Multiplatform. Она позволяет писать общий код и компилировать его под разные платформы, имея при этом доступ к их API. С тех пор я активно экспериментирую в этой области и продвигаю этот инструмент в нашей компани...

Как улучшить ваш API сервис на node.js. Часть 1 Сейчас доступно приличное количество материалов по написанию API на node.js. Большинство из них в виде туториалов и демо-примеров в документациях. Этого достаточно, чтобы быстро разобраться и написать что-то свое. Но в них редко найдутся детали, почему это делается именно та...

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

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

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

Делаем хитмап стоимости недвижимости на общедоступных алгоритмах и опенсорсных библиотеках Карта 2gis.ru работает на WebGL-движке, который позволяет визуализировать данные. Когда мы делали слой недвижимости, то решили добавить ещё и тепловую карту стоимости квадратного метра. Во-первых, это красиво. А во-вторых, такие карты могут помочь с выбором квартиры. Под ...

[recovery mode] Типы, где их не ждали Давайте представим себе реализацию модуля Scaffold, который генерирует структуру с предопределенными пользовательскими полями и инжектит ее в вызываемый модуль при помощи use Scaffold. При вызове use Scaffold, fields: foo: [custom_type()], ... — мы хотим реализовать правильн...

[Перевод] Алгоритм AdaBoost Перевод статьи подготовлен в преддверии старта продвинутого курса «Математика для Data Scienсe». Введение Алгоритм AdaBoost можно использовать для повышения производительности любого алгоритма машинного обучения. Машинное обучение стало мощным инструментом, позволяющим д...

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

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

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

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

[Из песочницы] Базовые команды Linux для тестировщиков и не только Предисловие Всем привет! Меня зовут Саша, и я больше шести лет занимаюсь тестированием бэкенда (сервисы Linux и API). Мысль о статье у меня появилась после очередной просьбы знакомого тестировщика подсказать ему, что можно почитать по командам Linux перед собеседованием. Обы...

[Из песочницы] Идея алгоритма для генерации перестановок Введение Здравствуйте! Я хочу рассказать Вам об идее алгоритма для генерации перестановок. Отмечу сразу, чтобы не показаться человеком открывающим Америку, я «гуглил» алгоритмы перестановок и их реализация отличалась. Если такой алгоритм уже существует, то пусть эта статья б...

Фундаментальные основы хакерства. Учимся искать ключевые структуры языков высокого уровня Для подписчиковИсследование алгоритма работы программ, написанных на языках высокого уровня, традиционно начинается с реконструкции ключевых структур исходного языка — функций, локальных и глобальных переменных, ветвлений, циклов и так далее. Это делает дизассемблированный л...

[Перевод] Введение в неблокирующие алгоритмы Неблокирующие алгоритмы широко применяются в ядре Linux когда традиционные примитивы блокировки либо не могут быть использованы, либо недостаточно быстры. Эта тема многим интересна и время от времени всплывает на LWN. Из недавнего — вот эта июльская статья, которая собственн...

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

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

[Из песочницы] Учимся торговать на бирже. Часть первая: настройка тестового окружения В этом цикле статей создадим окружение для работы с тестовой биржей и обмена сообщениями с ней, разберёмся с основными биржевыми терминами и закрепим знания на практике. UPD: Основная цель этого цикла статей — комплексно рассмотреть устройство биржи и базовые понятия (сделк...

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

Особенности практического использования различных алгоритмов Многорукого бандита Большинство статей про алгоритмы, используемые для решения задачи многорукого бандита, очень академичны. Они пестрят формулами, графиками и статистическими таблицами. При этом как будто подразумевается, что у нас есть неизменяемый набор ручек для дёргания и n→∞ попыток. В эт...

Почему Samsung Galaxy Fold вошел в историю и навсегда изменил рынок смартфонов Уже месяц, как я пользуюсь смартфоном Samsung Galaxy Fold. Постоянные читатели gg наверняка помнят о моем отношении к гибким дисплеям вообще (я слежу за этим рынком уже больше 10 лет) и этому смартфону в частности. Обзор Galaxy Fold уже давно есть на сайте — там можно ...

Data Governance: просто об усложненном Давайте разберемся, почему руководство данными – это одна из самых современных, совершенных и востребованных технологий, объединяющих знания и практики из различных областей. Data Governance, руководство данными, управление данными как активом – все эти словосочетания сей...

[Перевод] CSS-переменные CSS-переменные (их ещё называют «пользовательскими свойствами») поддерживаются веб-браузерами уже почти четыре года. Я пользуюсь ими там, где они могут пригодиться. Это зависит от проекта, над которым я работаю, и от конкретных задач, которые мне приходится решать. Работать ...

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

Важнейшее открытие за 50 лет: алгоритм DeepMind научили определять структуру белка Эту структуру белка создал алгоритм на основе нейросети Белок является важной частью жизни любого человека, но несмотря на то, что мы живем в XXI веке, когда нейросети рисуют картины, а 3D-принтеры — полноценные органы, полностью изучить белок ученым пока не представлялось в...

[Перевод] 8 бесплатных инструментов для создания интерактивных визуализаций данных без необходимости написания кода Когда тот, кто работает в сфере Data Science, собирается показать результаты своей деятельности другим людям, оказывается, что таблиц и отчётов, полных текстов, недостаточно для того чтобы представить всё наглядно и понятно. Именно в таких ситуациях возникает нужда в визуали...

[Перевод] Как я модернизировал свою Flash-игру В этом посте я расскажу о том, как перенёс свою Flash-игру Frog Fractions на современную платформу. В результате я создал частично автоматизированный порт на Unity при помощи Haxe. Пост будет интересен всем, кто пытается модернизировать свою кодовую базу на Flash. В посте б...

Самые популярные структуры данных Что такое структура данных? Проще говоря, структура данных — это контейнер, в котором хранятся данные в определенной компоновке (формате, или способе организации их в памяти). Эта «компоновка» позволяет структуре данных быть эффективной в одних операциях и неэффективной в др...

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

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

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

Чужой код — потемки: чем опасно скачивание «безобидного» софта с GitHub Наверное, каждый из тех, кто читает эту статью, хорошо знаком с GitHub — крупнейшим веб-сервисом для хостинга IT-проектов и их совместной разработки. Здесь можно найти почти любой open source-проект. Для компиляции проекта может быть нужен какой-то специфический софт, кото...

Погружение в Charles Proxy Привет, Хабр! Меня зовут Настя, я работаю в команде тестирования мобильных приложений компании FunСorp. При приёмке задач мы уделяем большое внимание проверке клиент-серверного взаимодействия. Опыт проведения собеседований показывает, что новички в тестировании мобильных п...

Функция-конвертер для отправки сообщений на русском языке в Телеграмм из Микротик РоутерОС Мессенджер Телеграмм крайне удобен для уведомления о работе IT-оборудования, чем активно пользуются СисАдмины. Популярные WhatsApp и Viber поддерживают API но в них нет встроенной технологии создания своих ботов. РоутерОС известной компании Микротик не позволяет штатными с...

[Перевод] Разрабатываем и развёртываем собственную платформу ИИ с Python и Django Взлёт искусственного интеллекта привёл к популярности платформ машинного обучения MLaaS. Если ваша компания не собирается строить фреймворк и развёртывать свои собственные модели, есть шанс, что она использует некоторые платформы MLaaS, например H2O или KNIME. Многие исследо...

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

Создаем структуру простого мультиплатформенного бота Регистрация пользователей на мероприятия, автоматический поиск ответов в базе, общение с техподдержкой, обмен контактами — все это часть функций нашего бота Leader-ID. Он «живет» на трёх платформах: VK, Facebook Messenger и Telegram, при этом логика его работы пишется один р...

Как сделать из нейросети журналиста, или «Секреты сокращения текста на Хабре без лишних слов» Только не удивляйтесь, но второй заголовок к этому посту сгенерировала нейросеть, а точнее алгоритм саммаризации. А что такое саммаризация? Это одна из ключевых и классических задач Natural Language Processing (NLP). Она заключается в создании алгоритма, который принимает н...

[Из песочницы] Как заставить Google полюбить вашего автора? В сентябре 2019 года вышел новый алгоритм от Google E-A-T для борьбы с некачественным и не с экспертным контентом. Сильнее всего повлиял на сайты YMYL — Your Money or Your Life (кошелёк или жизнь). Это сильно ударило по маленьким и средним сайтам, большие сайты только в ...

Полевые исследования концепции «Documentation as code» Всем привет! Меня зовут Денис Олейник, я работаю техническим директором в 1Service. В нашей компании мы достаточно много времени уделяем работе с требованиями. По мере обретения опыта мы стали осознавать, что инструменты, обычно используемые при разработке программных проду...

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

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

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

Kotlin Multiplatform. Работаем с многопоточностью на практике. Ч.1 Доброго всем времени суток! С вами я, Анна Жаркова, ведущий мобильный разработчик компании «Usetech» Я давно занимаюсь не только нативной разработкой (как iOS, так и Android), но и кросс-платформенной. В свое время я очень плотно писала на Xamarin (iOS, Android, так и Forms...

[Перевод] Четыре ошибки программистов, которые я осознал, только когда стал CTO Я работал программистом более пяти лет. Не особо впечатляет, ведь кто-то из вас, вероятно, имеет в три раза больший опыт, но мне нравилось думать о себе как о сениор-разработчике. Звучит серьёзно и солидно, правда? Однажды мне предложили стать Chief Technology Officer (CTO...

Как получить по индексу элемент из бинарного дерева за приемлемое время? Привет, Хабр! Полгода назад я задумался, как можно было бы получить элемент из бинарного дерева за O(log(N)). Ответ пришёл довольно быстро — Lazy Propagation. Но реализовать это в коде я поленился. Сейчас надо сдавать дипломный проект в университете, поэтому я занимаюсь чем...

Deep Anomaly Detection Детекция аномалий с помощью методов глубокого обученияВыявление аномалий (или выбросов) в данных - задача, интересующая ученых и инженеров из разных областей науки и технологий. Хотя выявлением аномалий (объектов, подозрительно не похожих на основной массив данных) занимаютс...

Выращивание Nested sets в условиях .Net Привет, меня зовут Антон, и я разработчик. Сына я родил, дом построил купил, осталось вырастить дерево. Так как агроном из меня не очень, пришлось дерево кодить. Наш проект состоит из нескольких микросервисов на .Net Core, в PostgreSQL базе хранятся сущности, которые образ...

[Перевод] Как физика дала математикам новую геометрическую структуру для их игр Симплектическая геометрия – относительно новая область знаний, оказывающая влияние на большую часть современной математики. И вот, в чём она заключается. В начале XIX века Уильям Роуэн Гамильтон обнаружил новое геометрическое пространство с практически волшебными свойствам...

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

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

[Перевод] Программисты, девопсы и коты Шрёдингера Реальность сетевого инженера (с лапшой и… солью?) В последнее время, обсуждая с инженерами разные инциденты, я заметил интересную закономерность. В этих обсуждениях неизменно возникает вопрос «первопричины». Верные читатели наверняка знают, что у меня есть несколько мысле...

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

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

Шифрование TLS-трафика по алгоритмам ГОСТ-2012 c Stunnel В этой статье я хочу показать, как настроить Stunnel на использование российских криптографических алгоритмов в протоколе TLS. В качестве бонуса покажу, как шифровать TLS-канал, используя алгоритмы ГОСТ, реализованные в криптоядре Рутокен ЭЦП 2.0. Но для начала давайте вооб...

Взгляд химика, тестировщика и аналитика данных на чёрную металлургию и большие данные в ней Всем привет. Меня зовут Александр и я химик тестировщик аналитик данных. Как и многие люди моего поколения, я работаю не по специальности. После химфака МГУ и пяти лет работы младшим научным сотрудником в области химической технологии я переметнулся в IT и стал тестировщиком...

В квантовом алгоритме Google нашли ограничения Группа учёных из Deep Quantum Labs Центра по фотонике и квантовым материалам московского Сколковского института науки и технологий во главе с профессором Джейкобом Биамонте обнаружила и количественно оценила слабые стороны алгоритма Google. Американская корпорация Google стр...

Как синхронизировать сотни таблиц базы в Kafka, не написав ни одного продюсера Привет, Хабр! Меня зовут Сергей Бевзенко, я ведущий разработчик Delivery Club в команде Discovery. Наша команда занимается навигацией пользователя по приложению Delivery Club: мы отвечаем за основную выдачу ресторанов, поиск и всё, что с этим связано. Я расскажу про Kafka...

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

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

Cryptex – удобный Bitcoin обменник Многие люди сегодня ищут для себя подходящие варианты заработка, конечно же рано или поздно мы начинаем изучать вопрос крипторынка. А ведь действительно, криптовалюта сегодня очень популярный вид заработка и хранение своих активов, ведь таким образом можно действительно нака...

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

Технологии для проверки «Тотального диктанта»: что можно улучшить? Я состою в жюри World AI & Data Challenge. Это такой международный конкурс для разработчиков технологий для решения разных социальных задач, таких как борьба с бедностью, помощь людям с ограничениями слуха и зрения, улучшение обратной связи между человеком и государствен...

[Из песочницы] Фасетные фильтры: как готовить и с чем подавать О чем речь  Как сделать фасетный поиск в интернет-магазине? Как формируются значения в фильтрах фасетного поиска? Как выбор значения в фильтре влияет на значения в соседних фильтрах? В поиске ответов дошел до пятой страницы поисковой выдачи Google. Исчерпывающей информации н...

[Перевод] Окна будущего: прозрачная древесина вместо стекла История отношений человечества и древесины насчитывает миллионы лет. Из дерева строят дома и корабли, его используют как источник топлива. Древесина, в отличие от нефти и газа, ресурс не только полезный, но и возобновляемый. Кроме того, деревья удаляют избыток углекисло...

[Перевод] Гениальность микропроцессоров RISC-V Войны между RISC и CISC, проходившие в конце 1990-х, уже давно отгремели, и сегодня считается, что разница между RISC и CISC совершенно не имеет значения. Многие заявляют, что наборы команд несущественны. Однако на самом деле наборы команд важны. Они накладывают ограничени...

Kubernetes, микросервисы, CI/CD и докер для ретроградов: советы по обучению Кажется, тема «зачем нужен Kubernetes», уже раздражает. Хочется сказать: «все кому надо — давно уже поняли», однако я разделил бы технических (и околотехнических) работников на тех, кто «понял и знает как использовать», и тех, кто «понял, но хочет знать, как сделать знания а...

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

[Перевод] Почему единственный вид деревьев не победил все остальные? «Лес красив, дремуч, высок», — писал Роберт Фрост. Этот ямб вспоминается мне каждый раз, когда я начинаю путь по расположенной недалеко от моего дома лесной тропе. Тропу назвали в честь Фроста, который провёл несколько лет в этой части Массачусетса, обучая мальчиков в блейз...

Книга «Глубокое обучение в картинках. Визуальный гид по искусственному интеллекту» Привет, Хаброжители! Глубокое обучение стало мощным двигателем для работы с искусственным интеллектом. Яркие иллюстрации и простые примеры кода избавят вас от необходимости вникать в сложные аспекты конструирования моделей глубокого обучения, делая сложные задачи доступными ...

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

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

[Перевод] Дизайн-токены способны на большее: создаем единый источник информации о компонентах UI Термином «дизайн-система» в IT давно никого не удивишь. Компании систематизируют дизайн продуктов, придумывая свои или используя чужие инструменты для управления стилями, паттернами и компонентами.  Badoo не является исключением: с помощью нашей дизайн-системы Cosmos мы подд...

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

Hello, Word! Разрабатываем браузерное расширение в 2021-м Привет! Меня зовут Саша Коновалов, я разработчик в компании Oxonit и наставник на программе «Мидл фронтенд-разработчик» в Яндекс.Практикуме. На примере разработки расширения «Hello, Word» я расскажу, как разрабатывать кроссбраузерное расширение со знаниями современного фро...

[Перевод] Как я создал собственный алгоритм YouTube (чтобы не тратить время впустую) Побег от алгоритма YouTube Я люблю смотреть видео на YouTube, осязаемым образом улучшающие мою жизнь. К сожалению, алгоритм YouTube с этим не согласен. Он любит кормить меня кликбэйтом и прочим мусором. Всё это неудивительно: алгоритм отдаёт приоритет кликам и времени про...

Что может пойти не так с Data Science? Часть 1: сбор данных Сегодня существует 100500 курсов по Data Science и давно известно, что больше всего денег в Data Science можно заработать именно курсами по Data Science (зачем копать, когда можно продавать лопаты?). Основной минус этих курсов в том, что они не имеют ничего общего с реально...

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

Нейросеть — обучение без учителя. Метод Policy Gradient Доброго времени суток, Хабр Настоящей статьей открываю цикл статей о том, как обучать нейронные сети без учителя. (Reinforcement Learning for Neuron Networks) В цикле планирую сделать три статьи по теории и реализации в коде трех алгоритмов обучения нейронных сетей без учи...

[Перевод] Кунг-фу стиля Linux: расшаривание терминала в браузере В заголовке этого материала уже сказано о самой главной возможности программы, о которой я хочу рассказать. Речь идёт о GoTTY. Эта программа позволяет организовывать общий доступ к приложениям командной строки через браузер. Это — простой веб-сервер, написанный на Go. Он зап...

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

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

[Перевод] 5 вопросов по SQL, которые часто задают дата-сайентистам на собеседованиях Хотя составление SQL-запросов — это не самое интересное в работе дата-сайентистов, хорошее понимание SQL чрезвычайно важно для того, кто хочет преуспеть в любом занятии, связанном с обработкой данных. Дело тут в том, что SQL — это не только SELECT, FROM и WHERE. Чем больше S...

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

[Перевод - recovery mode ] Простое обнаружение проблем производительности в PostgreSQL Существует ли в мире очень большая и крупная база данных, которая время от времени не страдает от проблем с производительностью? Держу пари, что их не так уж много. Поэтому каждый DBA (администратор базы данных), отвечающий за PostgreSQL, должен знать, как отслеживать потен...

[Из песочницы] Кастомные QSettings::ReadFunc и QSettings::WriteFunc, или как я написал костыль для русификации файла настроек Введение Привет, Хабр! Часть моей работы заключается в разработке небольших десктопных приложений. В частности, это программы, которые позволяют отследить текущее состояние оборудования, провести его тестирование, задать параметры конфигурации, считать журналы или проверить...

Обзор счётчиков Морриса При реализации потоковых алгоритмов часто возникает задача подсчёта каких-то событий: приход пакета, установка соединения; при этом доступная память может стать узким местом: обычный -битный счётчик позволяет учесть не более событий.Одним из способов обработки боль...

В России впервые издали книгу, переведенную Яндекс.Переводчиком "Будущее без работы. Технологии, автоматизация и стоит ли их бояться" - подробное руководство к новой экономической реальности, где системы автоматического управления могут вытеснить людей с работы в отдельных сферах. Для перевода в Яндексе использовали один из алг...

[Из песочницы] Адекватное MVC для начинающих и не только Небольшое вступление Всем 404! Большинство IOS-разработчиков не понимают как работать с Apple-MVC. Из-за чего появляется необоснованная критика, маленькие проекты стараются писать на архитектурах для этого не предназначенных, ViewController'ы становятся огромными, не читаемы...

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

[Перевод] Трюк с XOR для собеседований и не только Есть целая куча популярных задач для собеседований, которые можно решить одним из двух способов: или логичным применением стандартных структур данных и алгоритмов, или использованием некоторых свойств XOR сложным для понимания способом. Хоть и непривычно ожидать решения с...

SQL HowTo: обрабатываем дерево — упорядочиваем иерархию с рекурсией и без Видимо, это осень так влияет, что за последний месяц на PostgreSQL уже и в «Морской бой» играли, и «Жизнь» Конвея эмулировали… Что уж оставаться в стороне! Давайте и мы потренируем мозг в реализации нетривиальных алгоритмов на SQL. Тем более, сегодняшняя тема родилась из об...

Искусственный интеллект, машинное и глубокое обучение — в чём разница Сейчас много пишут и говорят об искусственном интеллекте (ИИ). Наряду с другими связанными понятиями — такими, как машинное обучение (machine learning) и глубокое обучение (deep learning). Многие люди склонны неправильно понимать термины, используемые в контексте...

Surface Duo 2 может исправить самые серьёзные проблемы оригинальной версии Surface Duo от Microsoft имеет уникальный форм-фактор, который позволяет Microsoft экспериментировать с новым форм-фактором. Несмотря на новаторский дизайн, он не обладает самыми передовыми характеристиками. Он работает на более старом процессоре Snapdragon, не поддерживает ...

Российские сети 5G только на российском оборудовании? Подобный проект есть у Госкомиссии по радиочастотам Источник сообщает, что в проекте решения Госкомиссии по радиочастотам (ГКРЧ), заседание по которому может состояться уже в середине октября, значится требование к российским сотовым операторам, согласно которому они должны будут строить сети 5G миллиметрового диапазона ...

CreateRemoteThread для Linux В WinAPI есть функция CreateRemoteThread, позволяющая запустить новый поток в адресном пространстве другого процесса. Её можно использовать для разнообразных DLL-инъекций как с нехорошими целями (читы в играх, кража паролей, и т. д.), так и для того, чтобы на лету исправить ...

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

[Перевод] Таблицы и CSS-свойство float в современной веб-разработке Больше двадцати лет тому назад таблицы были основным HTML-средством для оформления веб-страниц. Таблицы давали веб-мастерам стабильный механизм для создания сайтов, имеющих некие признаки «дизайна». Содержимое страниц больше не должно было идти строго сверху вниз. Материалы ...

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

Surface Duo 2 исправит ключевые проблемы оригинальной модели В прошлом году Microsoft начала продажи собственного складного смартфона Surface Duo, который имеет отличный дизайн и уникальный форм-фактор. Но в то же время это довольно неоднозначное устройство, так как оно построено на базе устаревшего процессора Snapdragon, не поддержи...

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

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

[Перевод] Погружение в CQRS Эта статья является конспектом материала Clarified CQRS. Прежде чем начать разбираться с CQRS, нужно понять две основные движущие силы, стоящие за ним: сотрудничество и устаревание.Сотрудничество относится к ситуациям, когда несколько участников используют или изменяют один ...

Алгоритм Kosaraju по полкам На самом деле, уже есть статья на Хабре по этому алгоритму, но она не освещает доказательство корректности и некоторых шагов алгоритма. Я решил создать более справочную версию той статьи с полным разбором.Этот пост будет полезен студентам, изучающим дисциплину "Алгоритмы и Т...

Как работает Spot от Boston Dynamics? Возможный ответ Привет, Хабр! Недавно SantrY опубликовал статью Как это устроено: робот Spot от Boston Dynamics. Автор замечает, что устройство весьма успешного алгоритма поддержания равновесия и передвижения по пересеченной местности компания хранит в секрете. К счастью, инженеры Boston ...

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

[Перевод] Руководство по работе с OpenAL на C++. Часть 1: воспроизводим звук Вашей игре нужен звук! Наверно, вы уже использовали OpenGL для рисования на экране. Вы разобрались с его API, и поэтому обратились к OpenAL, потому что название кажется знакомым. Что же, хорошие новости — OpenAL тоже имеет очень знакомый API. Он изначально задумывался для и...

[Из песочницы] Многопоточный линейный список: проблема существования элемента, повышение производительности и соотношение с STL Здравствуйте, уважаемые посетители Хабра! В этой статье речь пойдёт о связном списке, многопоточности и С++. Сразу отмечу, что были все шансы положить эту работу «на полочку» и использовать в небольшом количестве личных проектов. Вместо этого я всё-таки решил выложить её на...

[Перевод] Как протоколы ARPANET повлияли на развитие TCP/IP ARPANET навсегда изменил мир компьютеров, доказав, что компьютеры совершенно различных производителей можно соединять при помощи стандартизированных протоколов. В своём посте об исторической значимости ARPANET я упомянул некоторые из этих протоколов, но не описывал их. Поэт...

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

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

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

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

[Перевод] Алгоритм сортировки quadsort Вступление Эта статья описывает стабильный нерекурсивный адаптивный алгоритм сортировки слиянием под названием quadsort. Четверной обмен В основе quadsort лежит четверной обмен. Традиционно большинство алгоритмов сортировки разработаны на основе бинарного обмена, где две пе...

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

[Перевод] Коды Рида — Соломона в RAID 6 В интернете много статей о восстановлении информации в массиве RAID-6 и о том, как сделать собственную реализацию такого массива. Но большинство этих статей напичканы математическими формулами. Чтобы понять реальный алгоритм, приходится тратить очень много времени. В этой с...

Факторизация чисел и методы решета, часть I В работе рассматривается традиционный подход, который автором в ряде статей критикуется. Здесь я воздержусь от критики, и направлю свои усилия на разъяснение сложных моментов в традиционном подходе. Весь арсенал существующих методов не решает задачу факторизации в принципе...

[Перевод] Что такое «this» и с чем его едят Автор фото — Sebastian Herrmann. Доброго времени суток, друзья! Представляю Вашему вниманию перевод статьи Daniel James «What is 'this'? Why is that?». Что такое «this» и с чем его едят Когда я начинал изучать JavaScript, концепция this показалась мне крайне запутанной. ...

[Перевод] Дэн Абрамов о замыканиях в JavaScript Замыкания вызывают у программистов сложности из-за того, что это — «невидимая» конструкция. Когда вы используете объект, переменную или функцию, вы делаете это намеренно. Вы думаете: «Тут мне понадобится переменная» — и добавляете её в свой код. А вот замыкания — это уже...

Выбор хэш-функции в задаче шардирования данных Мы в Miro работаем над процессом шардирования баз Postgres и используем разные подходы в зависимости от бизнес-требований. Недавно перед нами встала задача шардирования новых баз, в ходе неё мы выбрали новый для нас подход к шардированию, основанный на согласованном хеширова...

Восемь важных аспектов интегрированного управления поставщиками В статье, опубликованной на ресурсе itsm.tools, автор делится своим опытом внедрения мульти-вендорных операционных моделей для департаментов ИТ, предлагая рекомендации в отношении восьми ключевых аспектов интегрированного управления поставщиками (Service Integration and Man...

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

[Из песочницы] Немного о релокациях в ядре Linux Решим простую задачу — выделим в пространстве ядра Linux блок памяти, поместим в него какой-нибудь бинарный код и выполним его. Для этого напишем модуль ядра, в нем определим функцию foo, которая будет играть роль нужного нам бинарного кода, далее при помощи функции module_a...

Что поменялось в Google в марте 2019? Источник изображения: Searchenginejournal.com   Вопрос пользователя: Есть ли понимание, какие факторы изменились в ранжировании Гугл после обновления алгоритма в марте 2019? Большой контентный проект с хорошим трафиком начал плавно терять посещаемость после мартовского...

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

[Перевод] Напишем и поймем Decision Tree на Python с нуля! Часть 1. Краткий обзор Привет, Хабр! Представляю вашему вниманию перевод статьи "Pythonで0からディシジョンツリーを作って理解する (1. 概要編)". 1.1 Что такое Decision Tree? 1.1.1 Пример Decision Tree Например, у нас есть следующий набор данных (дата сет): погода, температура, влажность, ветер, игра в гольф. В ...

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

Вакансия: Теплица социальных технологий ищет редактор/ку медиа-архива сайта Редакция «Теплицы социальных технологий» ищет редактор/ку медиа-архива сайта. Работа удаленная на несколько месяцев, частичная занятость. Заявки ждем до 15.00 (мск) 17 февраля 2021 года. Задачи редактор/ки медиа-арива: Анализ, фильтрация и систематизация материалов са...

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

[Перевод] C и C++: межъязыковые интерфейсы Как известно, C и C++ — это родственные языки, между которыми есть много общего. Но их пути, с годами, расходятся всё сильнее. В общих чертах дело обстоит так: код, написанный на одном из этих языков, не может быть скомпилирован под видом кода, написанного на другом. Этому м...

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

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

Чем занимается главный архитектор в ABBYY? Интервью с Владимиром Юневым Так устроена наша компания, что она не может не развиваться. В прошлом году ABBYY приобрела TimelinePI – разработчика платформы для анализа бизнес-процессов и вышла на новый рынок. А сейчас мы активно переходим на современные облачные архитектуры. Конечно, пока за рубежом ...

[Перевод] Реализация epoll, часть 1 Сегодня мы публикуем перевод первой статьи из серии материалов, посвящённых реализации epoll в ядре Linux 3.16.1*. Автор исходит из предположения о том, что читатели знакомы с API и с использованием epoll. Он уделяет основное внимание реализации подсистемы epoll в ядре Linux...

Интерактивная визуализация алгоритмов на базе Jupyter Jupyter уже давно зарекомендовал себя как удобную платформу для работы в различных областях на стыке программирования, анализа данных, машинного обучения, математики и других. Вот например очень известная книга по анализу данных, состоящая из Jupyter блокнотов. Поддержка , m...

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

[Перевод] 8 наиболее распространенных структур данных в JavaScript Звучит ли это знакомо: «Я начал заниматься веб разработкой после прохождения курсов»? Возможно, вы хотите улучшить свои знания основ информатики в части структур данных и алгоритмов. Сегодня мы поговорим о некоторых наиболее распространенных структурах данных на примере J...

Опыт пяти стажировок: советы начинающим Привет, Хабр! Меня зовут Глеб Евстропов, я работаю в Яндексе руководителем сервиса поисковых подсказок, а ещё читаю продвинутую версию курса по алгоритмам и структурам данных у первокурсников факультета компьютерных наук в Вышке.На дворе уже май, и сезон летних стажировок во...

Tarantool и кодогенерация на Lua Довольно часто на практике попадается класс задач, когда требуется обойти какую-то структуру или преобразовать формат данных из одного в другой. И в самом общем случае выполнение таких действий приводит к большому числу проверок и аллокаций памяти. Одним из примеров является...

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

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

Закон Конвея и его важность при создании команд Закон Конвея (Conway’s Law) имеет большое значение для понимания тех сил, что возникают при формировании команд, и того результата, который они могут оказать на команды в условиях длительного и автономного, неуправляемого и некорректируемого воздействия. И, как следствие, дл...

[Перевод] Докеризация приложения, построенного на базе React, Express и MongoDB Автор статьи, перевод которой мы публикуем сегодня, хочет рассказать о том, как упаковывать в контейнеры Docker веб-приложения, основанные на React, Express и MongoDB. Здесь будут рассмотрены особенности формирования структуры файлов и папок таких проектов, создание файлов D...

Алгоритмы быстрой обработки HTTP-строк В HTTP/2 появилась компрессия стандартных заголовков, но тело URI, Cookie, значения User-Agent по-прежнему могут составлять десятки килобайт и требуют токенизации, поиска и сравнения подстрок. Задача становится критичной, если HTTP-парсер должен обрабатывать интенсивный злон...

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

[Перевод] Алгоритм сжатия Хаффмана В преддверии старта курса «Алгоритмы для разработчиков» подготовили для вас перевод еще одного полезного материала. Кодирование Хаффмана – это алгоритм сжатия данных, который формулирует основную идею сжатия файлов. В этой статье мы будем говорить о кодировании фиксирован...

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

[Перевод] Достоинства и недостатки стратегии Infra-as-Code Repo Отвечая на вопросы, которые я получил после этой публикации, сегодня хотел бы разрешить бесконечный спор о структуре репозитория, а так же затронуть некоторые проблемы и их решения. Здесь я буду пользоваться своим IaC, основанным на Terraform, но по большей части всё будет п...

[Перевод] Как π объединяет сталкивающиеся блоки и квантовый алгоритм поиска Любопытный физик обнаружил неожиданную связь между теорией о столкновении блоков и знаменитым квантовым алгоритмом поиска Что общего у цифр числа π, сталкивающихся блоков и квантовых алгоритмов поиска? Больше, чем вы могли бы подумать. Эту связь обеспечивают две шутливых н...

[Перевод - recovery mode ] Программирование GPU на Java Получение доступ к GPU из Java раскрывает огромную мощь. Здесь рассказывается как GPU работает и как получить доступ из Java. Программирование устройства графического процессора (GPU) является заоблачным миром для Java программистов. Это понятно, так как обычные задачи для ...

Архитектурный шаблон MVI в Kotlin Multiplatform, часть 2 Это вторая из трёх статей о применении архитектурного шаблона MVI в Kotlin Multiplatform. В первой статье мы вспомнили, что такое MVI, и применили его для написания общего для iOS и Android кода. Мы ввели простые абстракции, такие как Store и View, а также некоторые вспомо...

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

[Перевод] Советы по использованию алгоритма коллапса волновой функции В последнее время я много экспериментировал с процедурной генерацией на основе ограничений. В частности, с алгоритмом Wave Function Collapse (WFC, коллапс волновой функции). Я даже написал собственную open source-библиотеку и ассет unity. WFC — это очень гибкий алгоритм, в...

Что должен уметь специалист по Data Science? Будущее за наукой о данных За последние несколько лет технологии интегрировались с многими бизнесами, что сформировало новые профессии, которые стали очень востребованными на рынке. Одним из таких направлений стало Data Science: специалисты в этой области сейчас нарасхват, и...

[Перевод] Учимся читать научные статьи у Эндрю Ына из Стэнфорда Мудрость является не продуктом обучения, а пожизненной попыткой ее приобрести.Альберт Эйнштейн Каждому, кто серьёзно занимается машинным обучением, необходимо научиться понимать то, что публикуется в научных статьях. Подобные публикации делают учёные, находящиеся на передне...

[Из песочницы] Пять причин почему ИИ не сможет заменить людей, а сделает нас только лучше Привет, Хабр! Представляю вашему вниманию перевод статьи «f5 Reasons AI Won’t Replace Humans… It Will Make Us Superhuman». Многие говорят, что ИИ с немыслимой скоростью забирает у нас работу. Заменит ли искусственный интеллект людей и создаст ли он неизбежный мировой кризис...

Samsung не видит, проблем в своих процессорах Exynos. Они слепые? Стоит только написать про один из флагманов Samsung Galaxy, как в комментариях разворачиваются жаркие споры по поводу того, какой процессор в нем должен стоять. Кто-то говорит, что и Exynos не так плох, как про него говорят. Остальные активно с ним спорят и доказывают, что ...

Треть рекрутеров мечтает о «переводчике» для общения с ИТ-специалистами Большинство опрошенных (76%) ИТ-рекрутеров считают, что рынок в этой сфере перегрет, а ожидания кандидатов очень завышены. На рынке не хватает квалифицированных специалистов, полагают 52% респондентов, еще 44% отмечают высокую конкуренцию со стороны работодателей. Более трет...

Первый Pentium, Turbo Pascal и олимпиадная физика: разработчики вспоминают, как учились в школе В День учителя мы вместе с разработчиками вспоминаем школьные годы, любимых учителей и первый компьютерный класс. Правда ли, что успехи в математике и геометрии укорачивают путь в профессиональное программирование? А химия и физика? Андрей Терешко, руководитель фронтенда У...

[Из песочницы] Мое решение — лучшее Привет, Хабр! Предлагаю Вашему вниманию перевод статьи «My solution is the best!» автора John Hotterbeekx. Недавно я смотрел выступление одного докладчика об архитектуре. Беседа вышла увлекательной, концепция и идея определенно имели смысл, но выступающий не понравился. Чт...

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

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

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

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

Нейросеть научили определять пористость почвы на изображениях рентгеновской томографии Результаты исследования, поддержанного грантом Президентской программы Российского научного фонда, опубликованы в журнале Soil and Tillage Research."Добавление в методику обработки изображений почв методов физического моделирования позволяет создать универсальный подход...

[Перевод] Matlab vs. Julia vs. Python Я использовал MATLAB более 25 лет. (А до этого я даже использовал MATRIXx, земля ему пухом.) Это не первый язык, на котором я научился программировать, но это тот язык, с которым я достиг математического совершеннолетия. Знание MATLAB было полезным для моей карьеры. Тем не ...

Сверхдлинное преобразование Фурье на FPGA Всем привет! В этой статье я хочу рассказать про реализацию алгоритма сверхдлинного быстрого преобразования Фурье на ПЛИС. Написать эту статью меня побудило желание поделиться личным практическим опытом, который не хотелось бы потерять, оставив информацию только у себя в го...

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

Генетический алгоритм vs алгоритм роя частиц К задачам поиска лучшего варианта решения (объекта, параметров или других данных) сводятся многие из проблем математики, экономики, статистики и т.д. Эти проблемы возникают, когда приходится строить математическую модель ситуации. При обработке полученной математической моде...

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

[Из песочницы] DLL & Python DLL & Python Недавно меня заинтересовала тема использования DLL из Python. Кроме того было интересно разобраться в их структуре, на тот случай, если придется менять исходники библиотек. После изучения различных ресурсов и примеров на эту тему, стало понятно, что примене...

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

[Перевод] Декодируем JPEG-изображение с помощью Python Всем привет, сегодня мы будем разбираться с алгоритмом сжатия JPEG. Многие не знают, что JPEG — это не столько формат, сколько алгоритм. Большинство JPEG-изображений, которые вы видите, представлены в формате JFIF (JPEG File Interchange Format), внутри которого применяется ...

Алгоритмы на экзамене в ШАД Привет! Меня зовут Александр Курилкин, и я веду курс по алгоритмам в «ШАД Helper». В этом посте я разберу несколько задач из вступительных экзаменов прошлых лет, чтобы вы смогли увидеть, что вас ждет, и понять, чему мы сможем вас научить на нашем курсе. Надеюсь, что вы разде...

SmartData 2020: конференция про data engineering Если ваша должность — data engineer, то вы могли сталкиваться с обидным информационным перекосом. Тему data science освещают активно, по ней много полезных материалов. А вы работаете в смежной области, где тоже возникает много важных вопросов, но об этих вопросах говорят за...

Apache Spark, lazy evaluation и многостраничные SQL запросы Известное об известном: spark работает с “датафреймами” (dataframes), которые являются алгоритмами трансформации. Алгоритм запускается в самый последний момент для того, чтобы "дать больше места" оптимизации и за счет оптимизации максимально эффективно его выполнить. Под кат...

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

Реализация процессорной архитектуры из книги Чарльза Петцольда «Код. Тайный язык информатики» Наверное многие, из тех, кто увлекается изучением того, как работает компьютер на самом низком уровне читали такие книги как: Таненбаум "Архитектура компьютера" или Харрис, Харрис "Цифровая схемотехника и архитектура компьютера", которые безусловного являются объемлющими тру...

В Adobe Photoshop добавлены новые нейронные фильтры с ускорением на GPU Nvidia На проходящем сейчас мероприятии Adobe MAX были продемонстрированы инструменты Adobe Photoshop, работающие по алгоритмам искусственного интеллекта. Их работу ускоряют графические процессоры Nvidia RTX. Речь идет о новых нейронных фильтрах. По словам Nvidia, нейронные фи...

Бинарная совместимость Reaktive: как мы её обеспечиваем Привет! Меня зовут Юрий Влад, я Android-разработчик в компании Badoo и принимаю участие в создании библиотеки Reaktive — Reactive Extensions на чистом Kotlin. Любая библиотека должна по возможности соблюдать бинарную совместимость. Если разные версии библиотеки в зависимостя...

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

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

[Перевод] Как разработать ансамбль Light Gradient Boosted Machine (LightGBM) В преддверии старта нового потока курса «Машинное обучение» представляем вашему вниманию материал о Light Gradient Boosted Machine (далее — LightGBM), библиотеке с открытым исходным кодом, которая предоставляет эффективную и действенную реализацию алгоритма градиентного буст...

Что могут дать нам знания об онлайн-образовании и что можно с этими знаниями сделать. Исследование и инсайты от GetCourse Привет, я Сергей Михайлов, управляющий партнёр GetCourse. Мы — IT-платформа, которая помогает монетизировать авторские курсы. Фактически мы работаем с большинством авторов (на рынке B2B), поэтому если вы за последние 2–3 года проходили курсы онлайн или следите за авторами уч...

[Из песочницы] Deep Reinforcement Learning: как научить пауков ходить Сегодня я расскажу, как я применил алгоритмы глубинного обучения с подкреплением для управления роботом. Вкратце, поведаю о том, как создать «чёрный ящик с нейросетями», который на входе принимает архитектуру робота, а на выходе выдаёт алгоритм, способный им управлять. Осно...

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

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

Прикручиваем ИИ: оптимизация работы банкоматов Всем привет! Это небольшой рассказ про то, как команда Центра компетенции больших данных и искусственного интеллекта в ЛАНИТ оптимизировала работу банкоматной сети. Упор в статье сделан не на описание подбора параметров и выбор лучшего алгоритма прогнозирования, а на рассмот...

Безопасность REST API от А до ПИ Введение Умение реализовать грамотное REST API — полезный навык в наше время, т.к. все больше сервисов предоставляют свои возможности с помощью API. Но разработка REST API не ограничивается реализацией HTTP запросов в определенном стиле и формированием ответов в соответстви...

[Из песочницы] Все о проекте спутниковый интернет Starlink. Часть 1 Проект StarLink компании SpaceX американского миллиардера и энтузиаста космоса Илона Маска хотя и появился достаточно давно, но стал широко обсуждаться в СМИ полтора года назад. Тема спутниковой связи является весьма сложной, так как объединяет в себе не только технические...

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

Partial Update library. Частичное обновление сущности в Java Web Services В структуре веб-сервисов типичным базовым набором операций над экземплярами сущностей(объектами) является CRUD (Create, Read, Update и Delete). Этим операциям в REST соответствуют HTTP методы POST, GET, PUT и DELETE. Но зачастую у разработчика возникает необходимость частичн...

JS и его запретные тайны Так вышло, что наша компания искала разработчиков. В работе мы используем стандартный набор веб-технологий: HTML, CSS, Javascript, PHP, SQL. Во время проведения собеседований я был не то чтобы расстроен, а скорее обескуражен. Вопросы, на которые не могли ответить кандидаты, ...

Docs as Code: введение в предмет В последние несколько лет в среде технических писателей все больше на слуху концепция Docs as Code. Если вы раньше не сталкивались с этим термином, он обозначает подход к разработке технической документации с использованием тех же инструментов и процессов, что и написание ко...

Книга «Ловушка для багов. Полевое руководство по веб-хакингу» Привет, Хаброжители! «Чтобы чему-то научиться, надо применять знания на практике. Именно так мы освоили ремесло взлома» — Майкл Принс и Йоберт Абма, соучредители HackerOne. «Ловушка для багов» познакомит вас с белым хакингом — поиском уязвимостей в системе безопасности. Нев...

[Перевод] React: лучшие практики Разрабатываете на React или просто интересуетесь данной технологией? Тогда добро пожаловать в мой новый проект — Тотальный React. Введение Я работаю с React уже 5 лет, однако, когда дело касается структуры приложения или его внешнего вида (дизайна), сложно назвать какие-т...

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

Вызов кода Go из Dart с использованием cgo и Dart FFI на простом примере Ключевой мотивацией для написания данной статьи является факт сильного недостатка информации (особенно в русскоязычном сообществе) по использованию cgo и Dart FFI для использования Go из языка Dart.Язык Dart, не смотря на свою возрастающую популярность, на данный момент до с...

Возможно ли создание квантового компьютера? Ученые говорят, что нет Возможно ли создание квантового компьютера в реальности? Многим из вас известно, что осенью 2019 года компании Google и IBM начали вести между собой настоящее противостояние: когда представители Google заявили о своем “квантовом превосходстве” ввиду успешно завершенного кван...

[Перевод] Использование алгоритма Прима для генерации соединённых друг с другом пещер Я решил объяснить один из алгоритмов генерации карты, используемых в моей игре In the House of Silence. Главное преимущество этого способа заключается в том, что в отличие от других алгоритмов, он никаким образом не может сгенерировать карту с разделёнными частями. Гене...

[Перевод] Пугающая антиутопия интервью для программистов Эксперименты У меня зазвонил телефон. — Алло, это Джаред. — Здравствуйте. Я звоню вам насчёт телефонного собеседования в Гигантской Поисковой и Рекламной Компании [очевидно, это Google — прим. пер]. — Да! С нетерпением ждал вашего звонка! — Хорошо. Можете написать алгор...

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

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

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

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

Сложности работы с ANTLR: пишем грамматику Ruby В «Ростелеком-Солар» мы разрабатываем статический анализатор кода на уязвимости и НДВ, который работает в том числе на деревьях разбора. Для их построения мы пользуемся оптимизированной версией ANTLR4 – инструмента для разработки компиляторов, интерпретаторов и трансляторов...

Описание основ криптопреобразования AES Доброго времени суток, Хабр! Примерно 3 месяца назад проходил собеседование frontend разработчиком и самый первый вопрос, который мне задали: “Что такое AES?” Ну как бы аморфное представление я все же имел о симметрично блочном шифровании AES, было дело даже использовал в од...

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

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

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

[Из песочницы] Going remote: советы самому себе перед вторым локдауном Привет, Хабр. Меня зовут Женя, я тимлид в компании «Группа Махаон». 2020 год определенно запомнится нам надолго, в том числе благодаря всеобщей вынужденной удаленке. Для многих компаний это стало настоящим испытанием, но мы выдержали его достойно. Благодаря тому, что многие ...

Нейросеть GPT-3 вела мотивационный блог на английском и всем понравилось. Чем это грозит копирайтерам и писателям Компания OpenAI, которую несколько лет назад основал Илон Маск, в июне выпустила новый алгоритм нейросети GPT-3. На сегодня это самая совершенная система, которая умеет работать с естественными языками. Ее возможности просто колоссальны. С помощью GPT-3 можно создавать л...

[Перевод] 32 совета веб-разработчику, который хочет вырасти над собой в 2020 году Ушёл 2019 год. Для нас, для веб-разработчиков, это был год испытаний и возможностей. Вокруг много всего такого, что можно изучить, и такого, в чём можно попытаться достичь мастерства. Например — это JavaScript-инструменты для разработки сайтов, такие, как React, Vue, Angular...

Xiaomi запатентовала смартфон с подэкранной камерой — Mi Mix 4? Ещё в июне Xiaomi показала собственный смартфон с камерой под поверхностью дисплея (прототип Mi 9 без экранного выреза). Ходили слухи, что подобный подход будет использоваться в Xiaomi Mi Mix 4. Однако вместо него мы получили завёрнутый в экран концептуальный аппарат Xiaomi ...

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

[Из песочницы] A* pathfinding на C#: двоичные кучи и борьба с аллокациями Сегодня мы разбираем один из популярнейших алгоритмов поиска пути. Работать будем с двумерным массивом целочисленных координат. Сначала кратко ознакомимся с методами обхода графов, напишем собственно поиск пути, а затем перейдём к самому вкусному: оптимизации быстродействия...

Цена естественности или как обогнать QuickSort Сортировка — такая же «вечная» тема для алгоритмистов, как любовь — для поэтов. Казалось бы, новое слово в этой области сказать трудно, а поди же ты — продолжают придумывать новые алгоритмы сортировок (TimSort...) Есть, однако, базовые факты, которые знает каждый приличный с...

Google добавит в Android 11 продвинутый режим энергосбережения Энергопотребление современных смартфонов настолько высоко, что многие даже не дотягивают до вечера Многие люди очень любят всё обобщать и упрощать сверх меры, приводя, так сказать, дроби к одному знаменателю. Таким образом они просто пытаются подогнать какое-то явление под с...

Особенности масштабирования WebGL-карты Мы выпустили редактор стилей. Подробно о том, как с ним можно настроить карту под задачи сервиса, можно почитать на vc.ru. На Хабре же хотим рассказать о концепции StyleZoom, которую мы используем в том числе и в редакторе стилей. Под катом — небольшой рассказ о зум-левелах...

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

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

[Перевод] Рейт лимиты с помощью Python и Redis В этой статье мы рассмотрим некоторые алгоритмы рейт лимитов на основе Python и Redis, начиная с самой простой реализации и заканчивая продвинутым обобщённым алгоритмом контроля скорости передачи ячеек (Generic Cell Rate Algorithm, GCRA). Для взаимодействия с Redis (pip in...

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

Книга «Совершенный алгоритм. Алгоритмы для NP-трудных задач » Привет, Хаброжители! Алгоритмы — это сердце и душа computer science. Без них не обойтись, они есть везде — от сетевой маршрутизации и расчетов по геномике до криптографии и машинного обучения. «Совершенный алгоритм» превратит вас в настоящего профи, который будет ставить за...

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

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

[Перевод] Низкоуровневое программирование микроконтроллеров tinyAVR 0-series Вы — 8-битный или 32-битный программист? Мы, в компании OMZLO, сосредоточили основные усилия на новых 32-битных ARM Cortex-чипах (STM32 и SAMD), которые, в сравнении с более старыми 8-битными микроконтроллерами (Micro Controller Unit, MCU) обычно предлагают больше RAM, бол...

[Из песочницы] EM-алгоритм для кластеризации EM-алгоритм – полезный инструмент моделирования данных, когда максимизация правдоподобия "в лоб", через дифференцирование, невозможна. Кластеризация – одна из задач, где этот алгоритм приходит на помощь. В статье приведен общий вывод EM-алгоритма для кластеризации....

Батарейки больше не нужны. 5G сигналы как источник беспроводной энергии для IoT IoT уже вышли за пределы домов отдельно взятых людей и начали «завоевывать» города. От концепции «умного дома» мы перешли к «умному городу». Интернет вещей или IoT для краткости — это экосистема, состоящая из интеллектуальных устройств с подключением к Интернету, которые ис...

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

Как работает спутниковая сеть StarLink (собственный анализ) SpaceX не раскрывает данную информацию. С другой стороны, пока я не получил доступа к официальным материалам SpaceX и соответствующие этому ограничения на их публикацию. Поэтому хочу зафиксировать свой взгляд/понимание этого процесса (технологии). Читать дальше →

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

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

[Из песочницы] ECS back and forth Привет, Хабр! Представляю вашему вниманию перевод статьи "ECS back and forth — Part 1 — Introduction" автора Michele skypjack Caini. ECS back and forth Часть 1 — Введение. Когда я в первые узнал про архитектурный шаблон entity component system, я пошёл искать больш...

Единственный флагман 2019 года, который останется без ночного режима съемки В этом году в индустрии смартфонов наблюдалась активная адаптация подэкранных датчиков изображения и дальнейшее улучшение возможностей камер мобильных устройств. В частности, ночной режим съемки появился даже в относительно недорогих смартфонах. Однако флагман Nokia 9 P...

[Перевод] Собеседования в сфере Data Science и распространённые приёмы работы с датами в SQL Поговорим о распространённых приёмах работы с датами, которые находят применение на Data Science-собеседованиях и в обычной работе. При анализе данных весьма часто возникает необходимость извлечения из полей, хранящих даты, их частей, вроде года, дня или месяца. Нередко тому...

Концепт: iPhone 13 без портов Давно ходят слухи, что Apple работает над новым iPhone без каких-либо портов. Источники, близкие к этому вопросу, считают, что запуск может произойти подобного устройства уже в этом году. В то время как технический гигант из Купертино до сих пор молчит обо всем, концепция, о...

О талантах, деньгах и алгоритмах сжатия данных Алгоритмы сжатия — это очень коварная тема, привлекающая многих новичков. Это правда! Часто человеку кажется, что его осенила божественная идея, как сильно сжать данные. Любые, кстати! Без потерь! Рекурсивно! А поскольку данные — это хранение информации и передача, то если...

[Из песочницы] Алгоритм распознавания номера на изображении с низкой вероятностью ошибки второго рода В индустрии существует целый ряд кэйсов, требующих распознавания номера по фотографии (scene number recognition). Часто требуемым условием для алгоритма распознавания является низкое значение ошибки второго рода, а именно случаи, когда распознается неверный номер. В качеств...

[Перевод] Откровения пьяного старшего инженера Я пьян и, наверное, пожалею об этом, но вот пьяный рейтинг вещей, которым я научился как инженер за последние 10 лет. Лучший способ достичь карьерного роста — сменить компанию. Стек технологий на самом деле не имеет значения, потому что в моей области есть примерно 15 б...

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

[Перевод] Искусство компонентов. Пишем карточку контакта Facebook Messenger Вполне возможно оценить компонент и сказать, что он легко пишется на HTML и CSS. Соглашусь, это легко, когда вы работаете, только чтобы практиковаться, но в реальном проекте всё по-другому. Идеальный адаптивный компонент, который вы только что создали, быстро перестаёт работ...

Свой лунапарк TFTP с блэкджеком и С++17 Преамбула Я работаю в команде разработки встраиваемого ПО на базе GNU Linux для телекоммуникационного оборудования. В ходе разработки у нашей команды появляется огромное количество прошивок для нашего оборудования: релизные версии, предрелизные версии, тестовые отладочные с...

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

Теория «лунного заговора» с участием Samsung Galaxy S21 Ultra не подтвердилась. Вряд ли смартфон подделывает фотографии Вчера в Сети распространилась информация о том, что снимки Луны на Samsung Galaxy S21 Ultra со 100-кратным увеличением могут быть подделкой — результатом работы ПО, которое накладывает текстуры Луны.  В своё время подобный сканда...

Как мы ускоряли время разгрузки товара на складе Терминал сбора данных Zebra WT-40 со сканером-кольцом. Нужен для того, чтобы была возможность быстро сканировать товар, при этом укладывать физически короба на паллету (свободные руки). На протяжении нескольких лет мы очень быстро открывали магазины и росли. Закончилось эт...

Разбираемся в источниках Threat Intelligence Согласно отчету 2021 SANS Cyber Threat Intelligence (CTI) Survey, 66,3% компаний используют открытые источники для сбора индикаторов компрометации и стараются работать одновременно с несколькими источниками. Казалось бы, сбор индикаторов из открытых источников — достаточно п...

Отчёт о презентации AMD с Computex 2021 Компания AMD, текущий любимец ИТ-публики, рассказала и показала на Computex 2021 очень и очень много всего. Новые ноутбуки, новую ПОЧТИ сертификацию, наш ответ Чемберлену в виде трёхмерной компоновки процессоров и даже свой ответ DLSS. Видеоматериал о презентации AMD Не хот...

Чем я заменил FaceTime на Android Несмотря на то что многие пользователи Android мечтают получить доступ к фирменным сервисам Apple, которые компания из Купертино сделала эксклюзивом только своих устройств, в экосистеме Google существуют достойные альтернативы. Я обнаружил это, когда выбрал в качестве основ...

Каждый пятый в мире сталкивался с последствиями социальных рейтингов Такие данные опубликовала "Лаборатория Касперского" по итогам глобального опроса.Каждый пятый респондент (21%) отмечал, что уже сталкивался с так называемым "социальным рейтингом" - системой оценки потенциала человека на основе его поведения в сети, круга...

[Перевод] Масштабирование кристалла: как Intel уменьшала масштаб процессора 8086 8 июня 1978 года исполнилось 42 года с того момента, как первые появились революционные микропроцессоры Intel 8086. В честь этого я изучал кристаллы 8086. Мне попались два кристалла 8086 разного размера, и на их примере видно, как работает масштабирование кристалла. Концепци...

[Перевод] Разбираемся в «стиле вождения», заложенном в мозги автономных автомобилей Я освещаю сферу automotive и часто пишу об алгоритмах и методах восприятия. Также я пишу о стилях и методах управления автомобилем. И лишь недавно я поняла связь между стилем вождения и алгоритмами восприятия. Когда я нахожусь за рулем, я могу понять, что водитель рядом с...

Агломеративная кластеризация: алгоритм, быстродействие, код на GitHub Несколько лет назад мне потребовалось очень качественно кластеризовать относительно неплотные графы среднего размера (сотни тысяч объектов, сотни миллионов связей). Тогда оказалось, что алгоритма с подходящим набором свойств просто не существует, несмотря на всё разнообраз...

[Перевод] 5 малоизвестных секретов Pandas Pandas не нуждается в представлении: на сегодняшний день это главный инструмент для анализа данных на Python. Я работаю специалистом по анализу данных, и несмотря на то, что пользуюсь pandas каждый день, не перестаю удивляться разнообразию функционала этой библиотеки. В это...

В фекалиях человека найдены кандидаты в антибиотики будущего Международная группа ученых под руководством Павла Певзнера, руководителя лаборатории «Центр алгоритмической биотехнологии» СПбГУ, создала новый вычислительный метод для поиска циклопептидов — класса веществ, в который входят многие известные антибиотики. С помощью подхода, ...

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

Что такое практическая польза от обучения, и как её получить? Обычно для того, чтобы получить максимум пользы от обучения, рекомендуют выбирать правильного поставщика обучения. Изучить отзывы о компании и её курсах, ознакомиться с накопленным практическим опытом. Это всё, конечно, так. Но давайте попробуем чуть более глубоко разобратьс...

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

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

[Перевод] Перестаньте использовать Page Objects (РО) и начните использовать App Actions Написание поддерживаемых сквозных тестов — это сложная задача. Часто тестировщики создают косвенный слой веб-страницы, называемый page objects, для выполнения общих действий. В этой статье я утверждаю, что page objects — это плохая практика, и предлагаю непосредственно обрат...

[Из песочницы] Ваш C# уже «функциональный», просто позвольте ему это Привет, Хабр! Представляю вашему вниманию перевод оригинальной статьи «Your C# is already functional, but only if you let it» автора Igal Tabachnik. Несколько дней назад я написал в Твиттере фрагмент кода C#, реализующий FizzBuzz, используя некоторые из новых «фичи» в C# 8....

Летние программы 2021. В Intel — за знаниями и будущим Апрель — время подачи заявок на участие в летних программах Intel для студентов, которых в этом году состоится две. Летняя интернатура Intel 0x7E5 — двухмесячная стажировка для российских студентов и недавних выпускников, которая уже 20 лет проводится на базе компании. I...

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

[Перевод] Реализация epoll, часть 4 Это — последний материал из серии четырёх статей (часть 1, часть 2, часть 3), посвящённой реализации epoll. Тут речь пойдёт о том, как epoll передаёт события из пространства ядра в пользовательское пространство, и о том, как реализованы режимы срабатывания по фронту и по уро...

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

Вскрытие трафика в публичных сетях Эта статья о том, как стать кулхацкером (или по-английски Script Kiddie) — условным злоумышленником, который испытывает недостаток знаний в области программирования и использует существующее программное обеспечение, чтобы провести атаку на смартфоны и планшеты своих однокл...

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

Опыт сопряжения Java, JavaScript, Ruby и Python в одном проекте посредством GraalVM В прошлом месяце вышла стабильная LTS-версия многоязычной среды выполнения GraalVM 20.3.0 от корпорации Oracle и мне захотелось испробовать её для решения какой-нибудь интересной практической задачи. Для тех кто не в курсе, приведу краткое описание этой новой платформы. Graa...

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

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

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

[Перевод] Zip-файлы: история, объяснение и реализация Мне давно было интересно, как сжимаются данные, в том числе в Zip-файлах. Однажды я решил удовлетворить своё любопытство: узнать, как работает сжатие, и написать собственную Zip-программу. Реализация превратилась в захватывающее упражнение в программировании. Получаешь огр...

Аппаратная реализация алгоритмов DES и TDES-EDE3 Алгоритм TDES (3DES, Tripple DES) был создан в 1978 году как улучшение алгоритма DES. По сравнению с последним улучшилась криптостойкость, но в три раза увеличилось время вычисления. Несмотря на то, что на сегодняшний день наиболее распространен алгоритм AES, который принят ...

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

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

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

[Перевод] Система хранения данных на основе ДНК: реально ли это и как работает? Системы хранения данных, основанные на ДНК, могут стать выходом для человечества, которое генерирует все большие объемы информации. По сравнению со всеми прочими носителями у ДНК просто феноменальная плотность записи данных. Еще одно преимущество — в случае ДНК для хранения...

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

Информационная безопасность устройств IoT c использованием аппаратной поддержки Интернет вещей, IoT, Internet of Things - сеть электронных устройств, оснащенных встроенными технологиями для взаимодействия друг с другом и внешней средой. Концепция IoT стала неотъемлемой частью нашей повседневной жизни, предоставляя пользователям уникальные возможно...

На планете 6000 языков. Как и почему они появились? Согласно подсчетам лингвистов, на Земле существует около 6000 различных наречий Дар речи — присущее только человеку качество, позволившее ему заметно подняться вверх по эволюционной лестнице. Почему же только человек обладает способностью к речевой коммуникации? Для т...

Создайте отличную презентацию со специалистами компании «TemplateMonster» Для того чтобы создать отличную интерактивную презентацию, которая произведет фурор, необходимо максимально ответственно подойти к её созданию. Следует отметить, что такого рода презентации могут сочетать в себе текст вместе с графиками, гиперссылками, картинками, анимацией,...

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

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

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

Как устроиться в LinkedIn, Facebook, Google в Кремниевой Долине Зачем это читать? В предыдущей статье я рассказал про реальные доходы и расходы, на которые может рассчитывать инженер, работающий в одной из Big Tech компаний. Если вдруг это вас заинтересовало, здесь будут подробности про то, как туда устроиться. Я работаю в LinkedIn, кото...

Сколько же ядер может быть в таком процессоре AMD? Компания рассматривает возможность выпуска CPU со структурой big.LITTLE Компания Intel недавно наконец-то выпустила на рынок свои первые потребительские гетерогенные процессоры Lakefield. Напомним, линейка состоит из двух весьма похожих CPU, каждый из которых содержит одно большое ядро и четыре маленьких. В конце 2021 либо в начале 2022 год...

Книга «Паттерны объектно-ориентированного проектирования» Привет, Хаброжители! Больше 25 лет прошло с момента выхода первого тиража книги Design Patterns. За это время книга из популярной превратилась в культовую. Во всем мире ее рекомендуют прочитать каждому, кто хочет связать жизнь с информационными технологиями и программирован...

Hello World из байт-кода для JVM Скомпилируем простенькую программу выводящую "Hello World" и пройдемся по его структуре Не думаю, что статья будет достаточно информативной для тех, кто поверхностно не знает как выглядит байт-код и как с ним работает JVM (например, хотя бы простейшие инструкции (знание об и...

Google добавила в Chrome функцию проверки файлов на вирусы. Как пользоваться Десктопный Chrome, который, в отличие от того же Safari, всегда имел возможность обновляться независимо от операционной системы, благодаря чему Google удавалось регулярно расширять его функциональность. Расширения, встроенный переводчик, аппаратное ускорение – всё это и мно...

[recovery mode] Пример реализации универсального REST сервиса (Avalanche — application framework for Java) Пример реализации универсального REST сервиса (Avalanche — application framework for Java) "Avalanche — application framework for Java" — реализация технологии стирающей различия между вызовами локального и удаленного кода. Отказоустойчивость, масштабируемость, мод...

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

Большим данным подготовили стандарт Проект нацстандарта подготовили Национальный центр цифровой экономики МГУ имени М.В. Ломоносова и Институт развития информационного общества. Стандарт "Информационные технологии. Большие данные. Обзор и словарь" устанавливает термины и определения основных понятий в области ...

Может ли Вселенная осознанно имитировать собственное существование? Тетраэдры представляюn квазикристаллическую спиновую сеть (QSN) – фундаментальную субструктуру пространства-времени Согласной новой гипотезе, Вселенная имитирует собственное существование в «странной петле». В статье, опубликованной учеными из Института исследовани...

Авторам! [именно так: в дательном падеже и с восклицанием] Хабр создали Авторы. Да, придумали, написали код и профинансировали его другие люди, но Хабр стал Хабром только благодаря статьям Авторов. Именно за Хабра-знанием Авторов пользователи приходили и приходят на ресурс. Это Авторы днями вычитывают свой текст, чтобы грамотнее по...

Укрощаем динамику в задаче о палиндромах Я уже давно не студент, но в свободное время изучаю материалы по Computer Science. Мне нравится получать знания и делиться ими. Недавно я наткнулся на любопытную задачу в известном учебнике "Алгоримы: Построение и Анализ". В этой статье я продемонстрирую принципы д...

Книга «Изучаем Python: программирование игр, визуализация данных, веб-приложения. 3-е изд.» Привет, Хаброжители! Мы выпустили третью версию #1 Best Seller in Python Programming Amazon — популярного в мире руководства по языку Python. Вы сможете не только максимально быстро его освоить, но и научитесь писать программы, устранять ошибки и создавать работающие прило...

«Шутки ради»: пара занимательных RFC Формат RFC существует с 1969 года — его представили во время обсуждения ARPANET. Тогда инженер Стив Крокер написал RFC 1 о работе программного обеспечения хоста. С тех пор прошло более 50 лет, но Request for Comments все еще в ходу — опубликовано ~9 тыс. документов по сетев...

[Перевод] Понимание CSS Grid: Создание Grid-контейнера Перевод «Understanding CSS Grid: Creating A Grid Container» Рейчел Эндрю Хотя технология CSS Grid стала поддерживаться некоторыми браузерами еще в 2017 году, у многих разработчиков пока не было возможности использовать её в своих проектах. Технология CSS Grid привносит множ...

[Перевод] Apache Kafka — скоро без ZooKeeper В основе Apache Kafka находится лог — простая структура данных, которая использует последовательные операции, работающие в симбиозе с оборудованием. Эффективное использование дискового буфера и кэша процессора, prefetch, передача данных zero-copy и много других радостей — в...

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

Низкая доступность корпоративной информации приводит к недополучению выручки За время существования бизнеса накапливаются большие объемы данных и несистематизированной информации, которая часто неудобна для обработки и использования. При этом почти ¾ опрошенных компаний используют документы как в электронном, так и в бумажном виде. Это связано...

Появится ли поддержка SIM-карт в MacBook? Во многих ноутбуках есть SIM-карта, почему в MacBook нет? Нужна ли ноутбукам встроенная поддержка сотовых сетей? Подключиться к таким сетям можно и без этого, с помощью сотового модема или смартфона. Но если бы MacBook Pro или MacBook Air мог бы делать это сам, при необходим...

Выяснилось, являются ли сны являются продолжением реальности Специалист по информатике Алессандро Фогли и его коллеги университета Roma Tre в Италии решили проверить на прочность гипотезу непрерывности сновидений, утверждающую, что сны — это всего лишь продолжение реальной жизни. Для этого они разработали алгоритм, позволяющий быстро ...

Почему ИТ-компании отказались от технологии распознавания лиц и причем тут протесты в Америке Крупнейшие технологических компании – IBM, Amazon, Microsoft – отказались от технологии распознавания лиц. Это случилось в июне 2020 года на фоне протестов в США и давления на гражданских активистов. На решение повлиял общий политический контекст и продолжительная обществен...

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

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

WhatsApp испугался бегства пользователей. Принятие новых правил отложили на 3 месяца На прошлой неделе WhatsApp опубликовал информацию о новых условиях предоставления сервисов и политике обработки пользовательских данных, а также сообщил, что принять новые условия необходимо до 8 февраля, иначе можно потерять доступ к мессенджеру. Это вызвало массовую п...

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

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

[Из песочницы] Product Manager & Product Designer: поиск сходств и отличий Меня зовут Ростислав Салата, я работаю в киберспортивной организации без малого три года. Пришел в компанию на должность проектировщика интерфейсов, дорос до UX-лида, и в настоящее время являюсь продуктовым менеджером. Задачи продуктового менеджера и подход к работе у нас ...

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

Microsoft хочет отделить Панель задач Windows 10 от Explorer.exe Панель задач может быть отделена от Проводника Windows (explorer.exe), при этом функция, возможно, получит отдельный процесс в будущем. Ссылки на эти изменения были замечены в предварительных сборках обновления Sun Valley для Windows 10, также известного как версия 21H2. До ...

Справедливое правительство оказалось искусственным Исследователи американской технологической компании Salesforce представили свою разработку "AI Economist", пишет "КоммерсантЪ". На первый взгляд это простенькая компьютерная игра в жанре экономической песочницы. Несколько компьютерных человечков перемеща...

Анатолий Шалыто: «Если человек сомневается, заниматься ли наукой, ему стоит заняться чем-то другим» Анатолий Шалыто — доктор технических наук, профессор Университета ИТМО, специалист в области автоматного программирования и проектирования алгоритмов логического управления технологическими процессами. C 1970 года он работает в НПО «Аврора», в&n...

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

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

Podlodka #195: алгоритмы и собеседования Нужно ли знать алгоритмы, чтобы быть хорошим разработчиком и работать в классной команде?

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

[Перевод] Переосмысляем «настольный компьютер» как концепцию Мысли о новом направлении пользовательского интерфейса рабочего стола Просто задумайтесь о каком-то серьезном деле, прежде чем выйти на теннисный корт. Из «Macintosh» (1984) компании Apple Computer. Долговечная «настольная» операционная система существует у нас почти 40...

Первый в мире web-сайт заработал 30 лет назад Вчера исполнилось ровно 30 лет с того момента, когда заработал первый в мире web-сайт. Он был создан в Европейском центре ядерных исследований (CERN) и работал на компьютере NeXT, который стал первым web-сервером. Сейчас эта система включена в экспозицию исторического с...

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

[Перевод] Истина прежде всего, или почему систему нужно проектировать, исходя из устройства базы данных Привет, Хабр! Мы продолжаем исследовать тему Java и Spring, в том числе, на уровне баз данных. Сегодня предлагаем почитать о том, почему при проектировании больших приложений именно структура базы данных, а не код Java, должна иметь определяющее значение, как это делается, ...

Шесть степеней свободы: 3D object detection и не только В компьютерном зрении часто приходится работать с двумерными изображениями, и значительно реже - с 3D объектами. Из-за этого многие ML инженеры чувствуют себя неуверенно в этой области: много незнакомых слов, непонятно, куда тут применить старых друзей Resnet и Unet. Поэтому...

Google представила «Быстрые команды» и 3D Touch для Android. Жаль, не для всех Копировать чужие наработки, особенно, если их владельцем является Apple, очень опасно. Samsung в этом уже убедилась на собственном опыте, хотя изначально её планы были поистине наполеоновскими. Поэтому сейчас если кто-то и заимствует идеи компании из Купертино, то старается...

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

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

15 лет ГК «Пожтехника»: от серверных до мегаЦОДов   Для ГК «Пожтехника» самым знаковым стал, пожалуй, 2008 год. Именно тогда произошел качественный скачок — нашу компанию пригласили в крупный проект американской венчурной компании DataSpace Partners (ныне просто — DataSpace). Туда «Пожтех...

[Перевод] Emacs — 6 трюков для продуктивной работы Ранее я уже писал об использовании Emacs в качестве C++ IDE и другом техническом оснащении. Однако, я не обращал особого внимания на то, что использую Emacs и для работы много с чем ещё. Честно говоря, я не смог бы пользоваться этим редактором в полной мере, не будь в нем во...

[Перевод] Как демо Memories умещается в 256 байт Введение Привет! Меня зовут «HellMood», а эта статья посвящена небольшой программе для MS DOS под названием «Memories». Эта программа имеет размер 256 байт, она выиграла в категории «PC 256 byte» соревнований демосцены «Revision» 2020 года, а также получила приз зрительских...

[Перевод] Быстрый градиентный бустинг с CatBoost Привет, хабровчане! Подготовили перевод статьи для будущих учеников базового курса Machine Learning. В градиентном бустинге прогнозы делаются на основе ансамбля слабых обучающих алгоритмов. В отличие от случайного леса, который создает дерево решений для каждой выборки, в ...

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

[Перевод] Адаптивная процедурная генерация при помощи алгоритма WaveFunctionCollapse и априорного распределения вероятностей Что такое процедурная генерация? Процедурная генерация включает в себя множество генеративных алгоритмов, принцип работы которых заключается в создании данных не вручную, а алгоритмически: вместо ручного изготовления того, что мы хотим создать (карты, музыки, рельефа…), пише...

Что представляют собой гигантские космические структуры? Наша Галактика быстро движется к массивной области космического пространства – Великому аттрактору. Хотя это может казаться неочевидным, галактики не просто случайным образом распределены во Вселенной. Вместо этого они сгруппированы в большие нити, разделенные гигантскими пу...

Собираем простейшую ZigBee-сеть, программируем под Mbed, общаемся через MQTT Собираем простейшую ZigBee-сеть, программируем под MBed, общаемся через MQTT Эта статья — большой учебный практикум начального уровня по использованию XBee-модуля в связке с микроконтроллером, имеющим на борту Mbed OS. Стек XBee реализует ZigBee-стандарт и подходит для задач...

Чистая архитектура с Go Меня зовут Эдгар (ZergsLaw), я работаю в компании, которая занимается  финтех-разработкой для b2b и b2c. Когда только устроился в компанию, то попал в команду большого финтех-проекта и получил «в нагрузку» небольшой микросервис. Мне поручили его изучить и подготовить план ре...

Программисты, ходите на собеседования Картинка взята из видеоролика с канала «Воинствующие Аметисты» Около 10 лет я работал системным программистом под Linux. Это модули ядра (kernel space), различные демоны и работа с железом из пространства пользователя (user space), различные загрузчики (u-boot и др.), прош...

Найдено живое ДНК динозавра. Возможно ли это? Идея клонировать динозавра из сохранившихся частиц ДНК уже далеко не нова: одним из наиболее известных тому примеров может послужить знаменитый “Парк Юрского периода” Стивена Спилберга. Основным препятствием реализации культового фильма в реальную жизнь долгое время служило...

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

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

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

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

Immutable Trie: найди то, не знаю что, но быстро, и не мусори Про префиксное дерево (Trie) написано немало, в том числе и на Хабре. Вот пример, как оно может выглядеть: И даже реализаций в коде, в том числе на JavaScript, для него существует немало — от «каноничной» by John Resig и разных оптимизированных версий до серии модулей в NP...

[Перевод] Начало работы с методами JavaScript-массивов .map(), .filter() и .reduce() Когда я разбирался в том, как пользоваться методами JS-массивов .map(), .filter() и .reduce(), всё, что я читал, смотрел и слушал, казалось мне очень сложным. Эти концепции рассматривались как некие самостоятельные механизмы, ни к чему другому отношения не имеющие. Мне тяжел...

n-Queens Completion Problem — линейный алгоритм решения EricGrig Предисловие Я хотел бы начать предисловие со слов благодарности двум замечательным программистам из Одессы: Андрею Киперу (Lohica) и Тимуру Гиоргадзе (Luxoft), за независимую проверку полученных мною результатов, на начальном этапе исследования. 1. Статья «Line...

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

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

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

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

[Перевод] Вы правда знаете о том, что такое массивы? Там, где я тружусь, от веб-разработчиков ожидают знания PHP и JavaScript. Я, проводя собеседования, обнаружил, что достаточно задать всего один простой вопрос для того чтобы узнать о том, насколько глубоко разработчик понимает инструменты, которыми пользуется каждый день. Во...

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

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

[Перевод] Понятность ПО: самый важный показатель, который вы не отслеживаете 2500 лет назад Гераклит сказал: «Все течет, все меняется». Программирование как нельзя лучше подтверждает правильность этого изречения: разработчики ежедневно модифицируют, адаптируют, дорабатывают и даже перерабатывают свои системы. Еще один аспект, который отличает разрабо...

«Хамелеон», которого мы создали и приручили Речь, конечно, пойдет не о харизматичных ящерках, а о нашем собственном инструменте автоматизированного тестирования. Представляем вашему вниманию кейс создания фреймворка «Хамелеон» и рассказ о его функциональности. Его появлению предшествовало 15 лет практики тестирования...

[Перевод] Алгоритм Укконена: от простого к сложному Изучая курс Алгоритмы на строках столкнулся с задачей о построении суффиксного дерева. Перейдя по ссылке на дополнительные материалы наткнулся на рекомендацию "просмотреть этот замечательный комментарий на Stack Overflow". Изучив и реализовав по приведённому вольному описан...

«UML. Взгляд со стороны» или «Как UML удерживает аналитиков в прошлом» Изображение с www.uml.org Статья посвящена UML и особенностям его применения в настоящее время. Немного исторических сведений, совсем немного, только основные моменты: UML зародился в 90-х годах как результат работы по создания языка объектно-ориентированного моделировани...

[Перевод] Алгоритм Беллмана-Форда В преддверии старта курса «Алгоритмы для разработчиков» подготовили очередной перевод интересной статьи. Задача: Дан граф и начальная вершина src в графе, необходимо найти кратчайшие пути от src до всех вершин в данном графе. В графе могут присутствовать ребра с отрицатель...

[Перевод] Критически важная электроника в болидах Formula 1 Болиды Формулы-1 оснащены множеством датчиков и электронных систем, которые команды используют для работы с самыми разнообразными данными. За счет чего можно добиться успеха в Формуле-1 – за счет навыков пилота или точно настроенной машины? Споры на эту темы разгорелись в...

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

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

Какие темы использовали спамеры в прошлом году Чтобы защитить пользователей от спама, Яндекс.Почта 360 применяет технологию "Спамооборона". В 2020 году она обработала 78,3 миллиарда писем, и треть из них были отправлены в спам. Такие письма не только мешают работе, но и могут ввести в заблуждение. Злоумышлен...

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

[recovery mode] Базовые возможности LXD — системы контейнеров в Linux LXD — это системный менеджер контейнеров следующего поколения, так гласит источник. Он предлагает пользовательский интерфейс, похожий на виртуальные машины, но использующий вместо этого контейнеры Linux. Ядро LXD — это привилегированный демон (сервис запущенный с правами ro...

Повторяем когортный анализ, выполненный в Power BI, силами Python Добрый день уважаемые читатели! Поводом для написания данной публикации послужил вебинар, который я посмотрел на Youtube. Он был посвящен когортному анализу продаж. Автор использовал для работы с данными платформу Power BI Desktop. Ссылку на указанное видео приводить не буду...

eSIM от Киевстар: зачем эта услуга нужна украинцам По данным мобильных операторов, за первую половину 2020 года число смартфонов с поддержкой технологии eSIM увеличилось на 60%. Большинство аналитиков мобильного рынка сходятся во мнении, что именно за электронными симками будущее. Они  упрощают дистрибуцию карт операторам, а...

Реализация маневрирования юнитов в играх (избегание столкновений) Задача движения юнитов в играх является одной из ключевых задач, стоящих перед разработчиками игр. От того, как двигаются игровые юниты, во многом зависит восприятие всего геймплея в целом. Традиционно считается, что достаточно реализовать алгоритм поиска пути и дальше всё б...

Каким приложением для SMS на Android я пользуюсь и вам советую Одним из преимуществ операционной системы Android перед iOS является возможность менять почти все предустановленные приложения на сторонние. Благодаря этому пользователи мобильной ОС от Google могут заменить не только браузер, но и голосового ассистента на альтернативного, ...

Дружба на Facebook предсказала вероятность заражения COVID-19 Исследователи изучили распространение заболевания в двух первых горячих точках — в пригороде Нью-Йорка, США, и в провинции Лоди в Италии. Они обнаружили, что распространение было наиболее сильным в тех районах, которые имели значительные связи с регионами через социальную се...

Деревья выражений в C# на примере нахождения производной (Expression Tree Visitor vs Pattern matching) Доброго времени суток. Деревья выражений, особенно в сочетании с паттерном Visitor, всегда являлись довольно запутанной темой. Поэтому чем больше разнообразной информации по этой теме, чем больше примеров, тем легче интересующимся будет найти что-то, что им понятно и полезно...

Китайская Baidu завершила разработку компьютера для самоуправляемых автомобилей, дальше — внедрение Китайский технологический гигант Baidu объявил о завершении разработки «первого в мире готового к эксплуатации» компьютера для самоуправляемых автомобилей Apollo Computing Unit (ACU). Этот компьютер основан на процессорах Xilinx с использованием микроконтроллеров производств...

[Перевод] Контролируем удаление с финализаторами В Kubernetes не так-то просто что-то удалить — вы уверены, что удалили объект, но оказывается, что он все еще присутствует в кластере. Вы, конечно, можете выполнять команду kubectl delete в повседневных операциях и надеяться на лучшее, но знание принципов работы delete кома...

Что такое графовые нейронные сети Графовые сети — это способ применения классических моделей нейронных сетей к графовым данным. Графы, не обладая регулярной структурой как изображения (каждый пиксель имеет 8 соседей) или тексты (последовательность слов), долгое время оставались вне поля зрения классических ...

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

Как клеить по 13 девушек в час используя машинное обучение и Tinder *Исключительно ради изучения Machine Learning, разумеется. Под немного недовольным взглядом любимой жены. Наверное, нет столь простого до уровня спинно-мозговых рефлексов приложений, как Tinder. Для того чтобы им пользоваться достаточно одного пальца, чтобы свайпать и немно...

Нелинейный мир и инструменты для расчета сложных нелинейных задач методом конечных элементов Привет, Хабр! В названии этой статьи есть словосочетание «нелинейный мир»… Думаю, что большинство читателей поняли смысл этого словосочетания, но я всё же расшифрую его. Реальные системы можно рассматривать как линейные только в ограниченном диапазоне нагрузок. Реальный же ...

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

[Перевод] Анализ библиотеки ИИ ботов из Quake 3 Изучение исходного кода ИИ уже выпущенных игр — превосходный способ изучения хитростей на реальных примерах. Quake 3 Arena — интересный образец, потому что код игры полностью выложен в открытый доступ (за исключением инструментов), а сама игра стала примером архитектуры дви...

ARM против x86: В чем разница между двумя архитектурами процессоров? Вы наверняка знаете, что мир процессоров разбит на два лагеря. Если вы смотрите это видео со смартфона, то для вас работает процессор на архитектуре ARM, а если с ноутбука, для вас трудится чип на архитектуре x86. А теперь еще и Apple объявила, что переводит свои Mac на соб...

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

Адаптивный или отзывчивый? Разбираем структуру React-компонентов В этой статье мы разберёмся, в чем сложность написания адаптивных компонентов, поговорим о code-splitting-е, рассмотрим несколько способов организации структуры кода, оценим их достоинства и недостатки и попытаемся выбрать лучший из них (но это не точно). Читать дальше &ra...

Написали 100 микросервисов и не сошли с ума: как мы в Lamoda шарим знания и технологии Привет, Хабр! Меня зовут Даниил Зиненко, руководитель направления разработки Online Shop в Lamoda. Online Shop – это одно из IT-подразделений в Lamoda, которое отвечает за сайт и за мобильное приложение. Всего у нас 121 сервис, 67 из которых мы написали на Go за последние 4...

Собеседование на позицию Data Scientist: 20 типичных вопросов Проверка знаний на собеседованиях — обычная практика. И мы сейчас не о глупых «Где вы видите себя через 5 лет?», а о нормальных вопросах по специальности. В этой статье мы собрали топ-20 вопросов, которые задают дата-сайентистам, чтобы проверить их уровень знаний. Все это ре...

Видеоаналитика в нефтехимии Привет! Как мы уже неоднократно писали, наши объекты — это довольно большие производства, как с точки зрения занимаемой площади, так и количества различных установок и узлов. Чтобы всё это работало и не возникало каких-то ситуаций, способных вызвать остановку производственн...

Продвинутая система авторизации действий с ресурсами в Laravel. Часть 3. Чтение/запись атрибутов, собственные модели Введение Здравствуйте, дорогие Хабровчане. Сегодня я представляю вашему вниманию заключающую часть цикла статей о продвинутой авторизации действий с ресурсами в Laravel. Чтобы лучше понимать о чем пойдет речь в этой статье — необходимо прочесть первую и вторую части. На э...

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

Грамматический разбор для естественных языков. Ч.2: Алгоритм Кока—Янгера—Касами (CYK) (Ч.1: Языки описания языков)В идеале нам хотелось бы разбирать текст за линейное время и за один проход. Регулярные выражения это позволяют, но уже с CFG это не получится: например, S → A | B; A → a | x A; B → b | x B превращает строку x…xa в дерево из уз...

[Перевод] Flutter. Упрощаем компоновку виджетов с помощью Dart расширений В версии Dart 2.7 нам представили расширения, позволяющие разработчикам добавлять новые функциональные возможности в уже существующие типы. Расширения могут быть отличным помощником не только, когда мы пишем бизнес-логику, но и когда у нас есть другие задачи! Примером такой...

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

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

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

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

Компьютер насчитал в пустынях Сахара и Сахель 1,8 млрд деревьев Учёные проанализировали детальные спутниковые снимки, используя алгоритмы машинного обучения. Так исследователи выяснили, что в пустынях Сахара и Сахель насчитывается 1,8 млрд деревьев.

Amazon открывает доступ к своему квантовому компьютеру Amazon делает что-то новое! Такие технологические гиганты, как Google и IBM уже давно борются за то, чтобы стать первой компанией, которая создаст по-настоящему доступный квантовый компьютер. Между тем не менее известная компания Джеффа Безоса Amazon не сильно спешит влезать...

Владимир Путин поручил подготовить новую государственную программу научно-технологического развития При этом следует кардинально изменить подходы к финансированию науки за счёт бюджетных средств. "Это значит обеспечить на деле именно общее планирование и реализацию НИОКРов, задать единые принципы оценки их результативности и проведения научно-технической экспертизы&qu...

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

Квантовое машинное обучение: знакомимся с Tensorflow Quantum На Хабре практически нет информации про квантовое машинное обучение (Quantum Machine Learning), и в этой статье я постараюсь подробнее раскрыть тему. Сразу скажу, что промышленных квантовых компьютеров сегодня не существует, все основные разработки в этой области носят теоре...

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

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

[Перевод] Python: 18 задач на вывод символов по заданному шаблону Подготовка к техническому собеседованию по Python — нелёгкая задача. На таком собеседовании вам, вполне возможно, встретятся задачи на вывод символов по заданным шаблонам. Если вы хотите научиться решать такие задачи — вам может пригодиться подборка способов их решения, прив...

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

Postgresso 20 Жизнь продолжается. Продолжаем знакомить вас с самыми интересными новостями PostgreSQL Главная новость Feature Freeze Функциональность 13-й версии PostgreSQL заморожена. Теперь только доработки и исправления багов. Список нового, вопреки многим ожиданиям, довольно обширный...

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

[Из песочницы] Погружение в Delta Lake: принудительное применение и эволюция схемы Привет, Хабр! Представляю вашему вниманию перевод статьи «Diving Into Delta Lake: Schema Enforcement & Evolution» авторов Burak Yavuz, Brenner Heintz and Denny Lee. Данные, как и наш опыт, постоянно накапливаются и развиваются. Чтобы не отставать, наши ментальные модели ми...

Microsoft разрабатывает собственные чипы, чтобы отказаться от Intel в продуктах Surface Согласно источникам, Microsoft может запустить новый продукт Surface, который будет работать на собственных процессорах на базе ARM. Если это правда, то это будет первый раз, когда собственные чипы Microsoft будут работать на продуктах Surface – поскольку ранее Microsoft все...

[Перевод] Framework vs Platform: в чём разница? Привет, Хабр! Представляю вашему вниманию перевод статьи "Framework Vs. Platform What’s The Difference?" автора G. Harris. Исповедуюсь: я педант. Несмотря на личные неудачи на этом поприще, я глубоко верю, что использование правильного языка добавляет множество пре...

Проект arataga: реальный пример использования SObjectizer и RESTinio для работы с большим количеством HTTP-соединений В последние 4.5 года я много рассказывал на Хабре про такие OpenSource проекты, как SObjectizer и RESTinio. Но вот об использовании SObjectizer и/или RESTinio в реальных проектах пока еще ни разу не удавалось поговорить (была лишь одна статья от стороннего автора).Причина пр...

[Перевод] Сравнение стоимости на Managed Kubernetes (2020) Прим. перев.: Американский DevOps-инженер Sid Palas, пользуясь недавним анонсом Google Cloud как инфоповодом, провёл сравнение стоимости услуги Managed Kubernetes (в разных конфигурациях) от ведущих мировых облачных провайдеров. Дополнительным плюсом его работы стала публика...

Визуализация промисов и Async/Await Доброго времени суток, друзья! Представляю вашему вниманию перевод статьи «JavaScript Visualized: Promises & Async/Await» автора Lydia Hallie. Приходилось ли вам сталкиваться с JavaScript кодом, который… работает не так, как ожидается? Когда функции выполняются в про...

[Перевод] Кунг-фу стиля Linux: упрощение работы с awk Утилита awk — это нечто вроде швейцарского ножа для обработки текстовых файлов. Но некоторые ограничения awk порой доставляют неудобства тем, кто этой утилитой пользуется. Я, для того чтобы упростить работу с awk, создал несколько функций. Но сразу хочу сказать о том, что дл...

OPPO Real-Time Kinematic: Точный алгоритм мобильной навигации Компания OPPO представила высокоточный алгоритм RTK (Real-Time Kinematic), который позволяет навигационным системам смартфонов определять координаты пользователя с точностью до одного метра. «В эпоху 5G разные приложения требуют от навигационных систем более точных данных о...

[Из песочницы] Flask-DJ: Django (mvc) структура для проекта на flask Всем привет! Когда я впервые столкнулся с Flask, у меня сразу возник вопрос по построению архитектуры проекта. Прочитав пару статей на Хабре (https://habr.com/ru/post/275099/ и https://habr.com/ru/post/421887/), я вспомнил свой опыт создания проектов на Django, и решил сде...

Практический курс по Ansible: анонс и предзаказ К 2021 году Ansible уже стал стандартом в администрировании. В трёх из четырёх DevOps вакансий просят знание Ansible. Из них только в одной из четырёх — это преимущество, в остальных — требование. Для тех, кто еще не работал c Ansible или только пользовался ролями и плейбук...

[Перевод] Визуальная теория информации (часть 1) Перевод интересного лонгрида посвященного визуализации концепций из теории информации. В первой части мы посмотрим как отобразить графически вероятностные распределения, их взаимодействие и условные вероятности. Далее разберемся с кодами фиксированной и переменной длины, п...

[Перевод] 5 JavaScript-библиотек для работы со строками Работа со строками может оказаться непростым делом из-за того, что она подразумевает решение множества разноплановых задач. Например, для простого приведения строки к «верблюжьему» стилю понадобится несколько строк кода: function camelize(str) {   return str.replace(/(?:^\w...

Panasonic представил голографический Head-Up дисплей с искусственным интеллектом для автомобилей нового поколения Компания Panasonic Automotive представила на международной выставке CES 2021 новый Head-UP дисплей с дополненной реальностью (AR) для автомобилей нового поколения. Используя последние разработки в области оптики, проекций, обработки изображений, а также искусственного интелл...

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

[Перевод] Генерация подземелий в Binding of Isaac Binding of Isaac и её ремейк Binding Of Isaac: Rebirth — одни из самых любимых для меня игр. Они относятся к жанру roguelite twin stick shooter и очень похожи на Enter the Gungeon. Особенно знамениты подземелья, генерируемые этими играми. В Интернете я видел бесчисленное к...

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

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

[Перевод] Миллион спрайтов при 120 с лишним fps Если вы побродите по форуму DOTS, то можете встретить там подобные посты о том, как автор написал библиотеку, способную рендерить миллион анимированных спрайтов, и всё равно получает только 60fps. Я создал собственный рендерер спрайтов DOTS, который достаточно хорош для наш...

Изучаем английский с помощью Telegram бота Нет, это не одна из сотен статей о том, как написать свой первый Hello World бот на Python. Здесь вы не найдете подробной инструкции, как получить API-токен в BotFather или запустить бота в облаке. Взамен я вам покажу как раскрутить всю мощь Python на максимум, чтобы добить...

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

Алгоритм Ethash В этой статье я расскажу про алгоритм Ethash, который используется для майнинга различных криптовалют, но главная из них это, конечно, Ethereum. Ethash - это Proof of Work (PoW) алгоритм, который является последней версией алгоритма Dagger-Hashimoto, хотя его больше нельзя н...

[Перевод] Использование Grid для макетов страниц, а Flexbox — для макетов компонентов Мой брат недавно отучился на компьютерщика и сейчас завершает стажировку в области фронтенд-разработки. Он узнал и о CSS Grid, и о CSS Flexbox, но в том, как он пользуется этими механизмами создания макетов, я отметил одну особенность, с которой я уже сталкивался. А именно, ...

Как «озадачить» всех инженеров и не перемудрить с правами доступа. Опыт Cloud4Y Наша компания постепенно расширяется, у нас работает всё больше инженеров. А когда их много, надо как-то распределять права и доступы. Почему это важно? У нас есть большое количество скриптов по мониторингу, обслуживанию и т.п., которые обслуживаются просто по крону. Но всег...

Windows 10 20H1: решения проблем высокой загрузки процессора и диска Microsoft представляет новый алгоритм для индексатора поиска Windows, который делает его более эффективным с точки зрения общей производительности системы, использования процессора и диска. Изменения, включенные в Windows 10 версии 2004 (20H1), могут, наконец, устранить жало...

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

[Перевод] Кунг-фу стиля Linux: устранение неполадок в работе incron Возможно, вам знакома утилита cron, которая позволяет планировать запуск различных задач в заданное время. Мы, кроме того, уже говорили о программе incron, которая реагирует не на события, связанные со временем, а на изменения в файловой системе. Возможно, вам когда-нибудь н...

Симуляторы фабрики и управления: лучшие игры в стиле Factorio для iOS и Android На этой неделе на мобильных вышла игра Sandship: Crafting Factory. Она интересна и сама по себе, но привлекает многих, потому что приближается к определению игры «в стиле Factorio», которая пользуется безумной популярностью на компьютерах. Если вы знакомы с последней, то лиш...

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

Проблемы роста SOC: как учесть +100500 хотелок заказчиков и не сойти с ума Когда-то деревья были большими, а Solar JSOC – маленьким. Всех его сотрудников можно было пересчитать по пальцам двух рук и ног, поэтому вопроса о единых правилах игры не стояло. При небольшом тогда числе заказчиков мы и так прекрасно учитывали их разнообразные хотелки по вы...

Как писать книгу в LaTeXe по физике. Cтатья 1 Это моя первая статья на Хабре. Глава 1. Введение 1.1 Позвольте представиться и почему я это пишу    Я — научный сотрудник, физик. Недавно выпустил книгу по спектроскопии объемом 880 страниц и весом 1560 грамм. Эту книгу я писал 9 лет, параллельно читая лекции по...