Обновить
0
Иван@sivolob93read⁠-⁠only

Пользователь

Отправить сообщение

Кодирование и декодирование данных

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели49K


Автор статьи: Артем Михайлов

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

Зачем нужно кодировать и декодировать данные? Ответ состоит в том, что нам нужно сократить объем информации и передать ее за минимальное время и с минимальными потерями. Кодирование позволяет компрессировать данные до необходимого уровня, а декодирование — восстановить их при получении.

Важным примером применения кодирования и декодирования данных является цифровое телевидение и интернет-трансляции. Например, H.264 — это технология кодирования видео, которая позволяет получить максимально высокое качество с минимальным объемом данных. При этом, при передаче через Интернет, данные сжимаются, и после достижения адресата автоматически декодируются.
Читать дальше →

Ваш Main() — это бомба замедленного действия: Как MOPP позволит вам избежать катастрофы в вашем коде?

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели7.4K

MOPP: Main-Only-Programming-Pattern

В программировании существует множество различных паттернов, которые помогают упростить и ускорить процесс написания кода. Один из таких паттернов - Main-only programming pattern (MOPP), который предлагает разработчикам поместить весь код в метод Main, который является точкой входа в приложение.

Что это такое?

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

Читать далее

Вскрываем средство для DDoS-атак на российскую ИТ-инфраструктуру

Уровень сложностиСредний
Время на прочтение33 мин
Охват и читатели29K

Привет, Хабр! В начале апреля 2023 года на одном из хостов был обнаружен подозрительный файл mhddos_proxy_linux_arm64 (MD5: 9e39f69350ad6599420bbd66e2715fcb), загружаемый вместе с определенным Docker-контейнером. По открытым источникам стало понятно, что данный файл представляет из себя свободно распространяемый инструмент для осуществления распределённой атаки на отказ в обслуживании (DDoS), направленный против российской ИТ-инфраструктуры.

После запуска программа получает все необходимые настройки и автоматически
инициирует массированные сетевые подключения к целевым хостам на различных
уровнях TCP/IP для осуществления отказа в обслуживании.

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

Читать далее

Как рождается и умирает программа, или И один в поле воин

Уровень сложностиПростой
Время на прочтение12 мин
Охват и читатели8.8K

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

Читать далее

Автоматический майнинг изображений

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели4.9K

В предыдущих статьях мы рассказали, как создать фотогалерею с собственной поисковой системой [1,2]1. Но где нам найти изображения для нашей галереи? Нам придется вручную искать источники «хороших» изображений, а затем вручную проверять, является ли каждое изображение «хорошим». Можно ли автоматизировать обе эти задачи? Ответ — да.

Читать далее

Занимательные задачи для любителей ML

Время на прочтение2 мин
Охват и читатели2.5K

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

Задача #1

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

Читать далее

Не только VNC и RDP.  Удаленный рабочий стол Linux с X2Go

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели50K

В этой статье ищем и находим решение задачи по организации удаленного доступа к Ubuntu: минусы VNC и RDP, история альтернативного протокола — NX, преимущества и работа с X2Go

Читать далее

MariaDB, фрагментация, varchar и печалька

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели6.4K

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

Читать далее

Что для вас Linux? Или как устроен запуск процессов

Уровень сложностиСредний
Время на прочтение15 мин
Охват и читатели47K

Как бы вы ответили на вопрос, что такое операционная система?

Скорее всего, вы легко сможете ответить на этот вопрос человеку далекому от IT, но подобный вопрос вам может задать, например, HR - в попытке переманить вас в какой-нибудь Facebook или Google. С одной стороны, ответить на этот вопрос очень легко и в интернете можно найти много определений, но относится ли, например, конфигурация DNS и файл /etc/resolv.conf к ОС ? Или в какой области памяти работает ОС - в памяти с безграничными возможностями для кода, называемой kernel space, или все же в лимитированной user space?

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

Читать далее

Анизотропия времени

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели8.8K

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

Большинство других богов — это вполне понятные боги: Венера - богиня любви, Юпитер - главный начальников начальник, Арес - бог войны и тп, и тд. Эти боги олицетворяют идеалы качеств людей и ведут себя как люди. Устраивают пиры и склоки, соблазняют чужих жен, сплетничают, в общем занимаются обычной жизнью селебрити, полной интриг и пиара. В отличие от всей этой богемы, Двуликий Ваня никогда не принимал участия в светской жизни, хотя и был главным богом. Он был первым кто сформировался из хаоса, создал время и нанизал на него все события, которые были есть и будут. Поэтому он знает все, что было, есть и будет. Двуликий, он так как смотрит и в прошлое, и в настоящее одновременно. В какой-то момент времени ему видимо надоело смотреть на своих глупых родственничков или он осознал, что придет время, и даже бессмертные боги исчезнут, поэтому он удалился на пенсию, уступив престол карьеристу Юпитеру. И стал богом дверей и переходов. Ведь каждый раз, открывая дверь, мы совершаем переход из прошлого в неизвестное будущее. И только Двуликий создатель времени знает, что нас ждет впереди.

Читать далее

Пишем первый ML-пайплайн на Airflow: подробный туториал

Время на прочтение13 мин
Охват и читатели28K

В этом туториале мы пошагово разберем, как создать с нуля и запустить локально свой первый пайплайн на Airflow.

Данный пайплайн специально адаптирован под задачи машинного обучения.

План:

1. Примеры применения Airflow в проектах с машинным обучением.

2. Знакомство с Airflow: основные понятия и инструменты.

3. Написание тасок для загрузки данных и получения предсказания модели.

4. Запуск Airflow локально через Docker Compose.

5. Знакомство с веб-интерфейсом Airflow.

Код доступен на GitHub.

Читать далее

Новые инструменты для работы c ML-моделями и обзор MLOps от CERN

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели5.6K

Привет всем, кто работает с ML-моделями и занимается аналитикой данных! В новом дайджесте для вас много интересных обзоров по инструментам — как говорится, ни ClearML и Airflow едиными. Рынок решений стремительно развивается, и наши подборки помогут вам держать руку на пульсе. Еще больше полезных текстов по DataOps и MLOps публикуем в Telegram-сообществе «MLечный путь».

Как вам, кстати, ренессансная GPU на обложке, которую сгенерила нейросеть для блога Andreesen and Horowitz? Что тут сказать — просто поделитесь промтом.
Читать дальше →

Slovo и русский жестовый язык

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели11K

Всем привет! В этой статье мы расскажем о непростой задаче распознавания русского жестового языка (РЖЯ) для слабослышащих. Насколько нам известно, в открытом доступе не существует универсального набора данных для распознавания РЖЯ. Поэтому мы решили выложить небольшую часть нашего датасета в открытый доступ. В статье мы затронем основные особенности РЖЯ, поговорим о проблемах и сложностях самого языка, и процессе его сбора и разметки. Расскажем, где искали экспертов и как нам в итоге удалось собрать самый большой и разнородный жестовый датасет для РЖЯ. В конце статьи представим набор предобученных нейронных сетей и небольшое приложение, демонстрирующее распознавание жестового языка. Часть датасета и веса моделей мы выложили в открытый доступ — все ссылки вы можете найти в конце статьи или в нашем репозитории.

Интересно?

Исчерпывающее руководство по различным типам API

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели78K

API (Application Programming Interface, программный интерфейс приложения), является жизненно важным компонентом в современном ландшафте разработки программного обеспечения, обеспечивая строительные блоки для взаимодействия приложений друг с другом. В этой статье рассмотрим пять основных типов API: REST, SOAP, WebSocket, gRPC и GraphQL, чтобы получить более четкое представление об их функциях, особенностях и идеальных сценариях использования.

Читать далее

Обучите YOLO NAS пользовательскому набору данных

Время на прочтение13 мин
Охват и читатели9.2K

На данный момент YOLO-NAS является новейшей моделью обнаружения объектов YOLO. С самого начала он превосходит все другие модели YOLO по точности. Предварительно обученные модели YOLO-NAS обнаруживают больше объектов с большей точностью по сравнению с предыдущими моделями YOLO. Но как нам обучить YOLO NAS пользовательскому набору данных? Это и будет нашей целью в этой статье – обучить различные модели YOLO NAS пользовательскому набору данных.

Читать далее

Как оседлать бесконечный поток дел

Уровень сложностиПростой
Время на прочтение11 мин
Охват и читатели11K

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

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

Что же делать? Как снять эту боль?

Нужен простой советский…

Миф о комбинаторике в тестировании

Время на прочтение8 мин
Охват и читатели11K

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

Развенчать!

Ключевое звено всего производства: прокатный стан длиной 1,5 км — и как мы его немного доработали

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели11K

У нас есть прокатный Стан-2000. 2 000 — это не год создания, а длина бочки рабочего валка в миллиметрах, а значит, ширина стальной полосы. Стан раскатывает металлический слиток под названием сляб (примерно 25 тонн, толщиной 25 см и длиной — 10–12 м) в стальную полосу длиной до 1,5 км.

Всё, что входит в стан с одной стороны, проедет целых 1 500 метров до самых моталок, будет раскатано и смотано в готовый рулон. На выходе толщина полосы — минимум 1,45 мм, а в среднем — около 3 мм. Поскольку стан длиннющий, на нём едет сразу несколько слябов/полос: пока одна полоса в конце стана сматывается в рулон, другая катается, и ещё пара слябов уже выходит на стан из печи.

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

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

1) Чтобы слябы не догоняли друг друга, потому что тогда будет пробка и всё остановится.

2) Чтобы разрыв между слябами был минимальным, то есть подаваться они должны почти впритык.

Задача сводится к пониманию того идеального момента, когда надо подавать на стан следующий сляб.

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

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

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

Читать далее

Как правильно проектировать электронику

Время на прочтение15 мин
Охват и читатели35K

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

Читать далее

Шпаргалка: fixture в pytest

Уровень сложностиСредний
Время на прочтение15 мин
Охват и читатели55K

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

Читать далее

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность

Специализация

Инженер по обеспечению качества
Средний
Python
Linux
SQLite
OpenCV
Git
Docker