Как стать автором
Обновить
1
0
Денис Давыдов @DiveSlip

Архитектор ПО

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

BPF для самых маленьких, часть первая: extended BPF

Время на прочтение51 мин
Количество просмотров27K

В начале была технология и называлась она BPF. Мы посмотрели на нее в предыдущей, ветхозаветной, статье этого цикла. В 2013 году усилиями Алексея Старовойтова (Alexei Starovoitov) и Даниэля Боркмана (Daniel Borkman) была разработана и включена в ядро Linux ее усовершенствованная версия, оптимизированная под современные 64-битные машины. Эта новая технология недолгое время носила название Internal BPF, затем была переименована в Extended BPF, а теперь, по прошествии нескольких лет, все ее называют просто BPF.


Грубо говоря, BPF позволяет запускать произвольный код, предоставляемый пользователем, в пространстве ядра Linux и новая архитектура оказалась настолько удачной, что нам потребуется еще с десяток статей, чтобы описать все ее применения. (Единственное с чем не справились разработчики, как вы можете видеть на кпдв ниже, это с созданием приличного логотипа.)


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

Читать дальше →
Всего голосов 32: ↑32 и ↓0+32
Комментарии5

BPF для самых маленьких, часть вторая: разнообразие типов программ BPF

Время на прочтение26 мин
Количество просмотров12K

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


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


Если вы хотите узнать, как именно BPF помогает эффективно решать задачи защиты от DDoS атак, распределения нагрузки на серверы, реализации сетевого стека kubernetes, защиты систем от нападения, эффективной трассировки систем 24x7 прямо в проде и многие другие, то добро пожаловать под кат.


image

Читать дальше →
Всего голосов 31: ↑31 и ↓0+31
Комментарии8

Собеседование Backend-Java-разработчика: вопросы и где искать ответы. Часть 1

Время на прочтение34 мин
Количество просмотров86K

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


Точно установить сложность всех вопросов не берусь — на разном уровне их потребуется раскрыть с различной степенью подробности. Я написал ответы где-то на плюс-минус middle, щедро приправив ссылками для дальнейших изысканий. На самые популярные вопросы сразу перенаправляю в источники с готовыми ответами. Заодно посмотрим по ссылкам в статье, насколько Хабр может помочь в подготовке к собесам.


Текста получилось много, поэтому пришлось разбить на две части. В первой поговорим про Java и Spring, а обо всём остальном — во второй. Вторая часть тут

Погнали
Всего голосов 13: ↑11 и ↓2+13
Комментарии7

Собеседование Backend-Java-разработчика: вопросы и где искать ответы. Часть 2

Время на прочтение30 мин
Количество просмотров79K

Публикую продолжение сборника вопросов-ответов с собеседований на Backend-Java-разработчика. В первой части мы прошлись по Java и Spring. А в этой поговрим о Hibernate, базах данных, паттернах и практиках разработки, об одной популярной библиотеке, поддержке и сопровождении наших приложений, а также посмотрим на альтернативные шпаргалки и подведём итоги.

Потопали
Всего голосов 15: ↑12 и ↓3+15
Комментарии14

Apache Kafka как основа для велосипедостроения. Николай Сивко (okmeter.io)

Время на прочтение22 мин
Количество просмотров8.6K


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


В своем докладе я расскажу о нашем опыте разработки и эксплуатации специализированной timeseries БД, в основе которой лежит Apache Kafka.

Всего голосов 8: ↑7 и ↓1+9
Комментарии0

Что читать специалисту по Data Science в 2020 году

Время на прочтение6 мин
Количество просмотров5.6K

В этом посте делимся с вами подборкой источников полезной информации о Data Science от сооснователя и CTO DAGsHub — сообщества и веб-платформы для контроля версий данных и совместной работы дата-сайентистов и инженеров по машинному обучению. В подборку попали самые разные источники, от аккаунтов в твиттере, до полноценных инженерных блогов, которые ориентированы для тех, кто точно знает, что ищет. Подробности под катом.
Приятного чтения!
Всего голосов 13: ↑11 и ↓2+15
Комментарии0

Систематизированный список всех функций Java и JVM в Java 8-15

Время на прочтение11 мин
Количество просмотров11K

Последнее обновление: 29.09.2020, чтобы включать изменения до JDK 15 .

С момента выпуска версии 8 до версии 15 Java формируется 163 предложениями по расширению JDK (JEP), каждое из которых вносит некоторые улучшения в платформу. Эта страница представляет собой систематизированный и тщательно подобранный список наиболее важных улучшений.

Читать далее
Всего голосов 14: ↑9 и ↓5+8
Комментарии10

Нормализация отношений. Шесть нормальных форм

Время на прочтение8 мин
Количество просмотров1.4M
В данной теме я затрону 6 нормальных форм и методы приведения таблиц в эти формы.

Процесс проектирования БД с использование метода НФ является итерационным и заключается в последовательном переводе отношения из 1НФ в НФ более высокого порядка по определенным правилам. Каждая следующая НФ ограничивается определенным типом функциональных зависимостей и устранением соответствующих аномалий при выполнении операций над отношениями БД, а также сохранении свойств предшествующих НФ.
Читать дальше →
Всего голосов 37: ↑22 и ↓15+7
Комментарии14

Рубрика «Читаем статьи за вас». Июнь 2020 года

Время на прочтение15 мин
Количество просмотров5.4K


Привет, Хабр! Продолжаем публиковать рецензии на научные статьи от членов сообщества Open Data Science из канала #article_essense. Хотите получать их раньше всех — вступайте в сообщество!


Статьи на сегодня:


  1. PointRend: Image Segmentation as Rendering (Facebook AI Research, 2020)
  2. Natural- To Formal-Language Generation Using Tensor Product Representations (USA, 2019)
  3. Linformer: Self-Attention with Linear Complexity (Facebook AI, 2020)
  4. DetectoRS: Detecting Objects with Recursive Feature Pyramid and Switchable Atrous Convolution (Johns Hopkins University, Google, 2020)
  5. Training Generative Adversarial Networks with Limited Data (NVIDIA, 2020)
  6. Multi-Modal Dense Video Captioning (Tampere University, Finland, 2020
  7. Are we done with ImageNet? (DeepMind, 2020)
Читать дальше →
Всего голосов 23: ↑21 и ↓2+23
Комментарии0

Что делать, если в вашей команде появился «эффективный» менеджер?

Время на прочтение12 мин
Количество просмотров184K

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


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


Читать дальше →
Всего голосов 191: ↑188 и ↓3+242
Комментарии266

Python.org рекомендует: Программирование для НЕпрограммистов

Время на прочтение5 мин
Количество просмотров43K
Предлагаем вашему вниманию подборку материалов от python.org о том, с чего начать первые шаги в программировании.




Если Вы никогда не занимались программированием раньше, эти материалы для вас. Данные туториалы не предполагают, что у вас есть какой-то опыт. (Если у вас уже есть опыт программирования, посетите Beginners Guide).
Читать дальше →
Всего голосов 19: ↑19 и ↓0+19
Комментарии3

Варим байткод на кухне JVM

Время на прочтение8 мин
Количество просмотров15K
Меня зовут Александр Коцюруба, я руковожу разработкой внутренних сервисов в компании ДомКлик. Многим разработчикам, пишущим на Java, с опытом приходит понимание внутреннего устройства JVM. Чтобы облегчить этот путь Java-самурая, я решил простым языком изложить основы виртуальной машины Java (JVM) и работы с байткодом.

Что такое таинственный байткод и где он обитает?

Постараюсь ответить на этот вопрос на примере приготовления солений.


Читать дальше →
Всего голосов 33: ↑30 и ↓3+33
Комментарии0

Понимание (всех) «модульных» форматов и инструментов JavaScript

Время на прочтение19 мин
Количество просмотров44K


Доброго времени суток, друзья!

Представляю вашему вниманию перевод статьи «Understanding (all) JavaScript module formats and tools» автора Dixin.

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

Читать дальше →
Всего голосов 18: ↑18 и ↓0+18
Комментарии6

Что посмотреть на карантине? Подборка материалов от Технострима (часть 3)

Время на прочтение2 мин
Количество просмотров7.1K


Продолжаем нашу подборку интересных материалов (первая часть, вторая часть). На этот раз один образовательный курс Техносферы, выступление про модульное тестирование и одна передача из ток-шоу для айтишников «Oh, my code».
Всего голосов 17: ↑16 и ↓1+30
Комментарии1

Бесплатные образовательные курсы на время карантина: бизнес, менеджмент, маркетинг

Время на прочтение7 мин
Количество просмотров9.7K
image

На Хабр Карьере есть специальный раздел с обучающими программами на разных платформах. Среди них мы отобрали самые внятные и полезные бесплатные курсы — на время изоляции и вообще. Ориентировались на содержание, количество выпускников и репутацию школ. 31 курс на любой вкус: от продвижения в Инстаграме до венчурных инвестиций.
Читать дальше →
Всего голосов 9: ↑8 и ↓1+21
Комментарии0

Видеозаписи всех докладов с восьми конференций Онтико

Время на прочтение5 мин
Количество просмотров31K

Ситуация с тем-самым-вирусом сильно бьёт по организаторам мероприятий. Людям, которые помогают сообществу разработчиков России, сейчас тяжело. Мы в AvitoTech хотим поддержать своих друзей из Онтико, и поэтому открываем доступ к видео с конференций, которые ещё не публиковались. Это доклады за 2019 год с Saint AppsConf, HighLoad++, DevOpsConf, FrontendConf, Product Fest и с последней TeamLead Conf.


Инженеры Авито, которые выступали или были участниками конференций, вспомнили самые интересные доклады. Под катом — ссылки на плейлисты со всеми-всеми видео и наша субъективная подборка.


UPD: добавили в статью плейлисты с UseData и GolangConf 2019.


Всего голосов 48: ↑48 и ↓0+48
Комментарии4

Java-дайджест за 13 апреля

Время на прочтение4 мин
Количество просмотров6.4K


  • Системе контроля версий Git исполнилось 15 лет.
  • Testcontainers исполнилось целых пять лет! Testcontainers — это Java-библиотека, позволяющая делать легкие одноразовые экземпляры популярных баз данных, веб-браузеров Selenium, или чего угодно ещё, что можно запустить в Docker-контейнере.
  • Вышел долгожданный Spring Graal Native 0.6.0. Вот здесь на GitHub есть огромное количество примеров использования вместе с разными технологиями, например, Kotlin и Netty.

Читать дальше →
Всего голосов 23: ↑22 и ↓1+26
Комментарии1

#06 — И целого байта мало… | Метеоризмы

Время на прочтение2 мин
Количество просмотров6.1K
В рамках начавшегося вчера Revision Online 2020 состоялось первое мероприятие — The Meteoriks Awards. Это очень похоже на кинопремию Оскар или музыкальный Грэмми. Сначала проходит этап «номинации», когда все работы за прошлый год участвовавшие в любых демопати выдвигаются в shortlist по нескольким направлениям. Затем жюри определяет победителя направления.

(материал дополняется, пока заносим в закладки, читаем потом)

Сегодня посмотрим на тех, кто взял The Meteoriks Awards в этом году! Эта статья — ваш уникальный шанс стремительно шагнуть в демосцену буквально за один час. Каждый ролик здесь это настоящее золото, а местами даже epic и это всего лишь работы за один, 2019 год…

Начинаем:

BEST LOW-END PRODUCTION
BEST DIRECTION

Сразу в двух номинациях побеждает Eon by The Black Lotus. Дополнительно Eon отмечен как OUTSTANDING TECHNICAL ACHIEVEMENT. Это действительно прорывная работа для старенькой Commodore Amiga 500 и это правда надо посмотреть от начала и до конца, причем несколько раз. До полного усвоения материала…

Всего голосов 17: ↑15 и ↓2+22
Комментарии2

Data Engineer и Data Scientist: какая вообще разница?

Время на прочтение6 мин
Количество просмотров35K
Профессии Data Scientist и Data Engineer часто путают. У каждой компании своя специфика работы с данными, разные цели их анализа и разное представление, кто из специалистов какой частью работы должен заниматься, поэтому и требования каждый предъявляет свои. 

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

В первой статье Елена Герасимова, руководитель факультета «Data Science и аналитика» в Нетологии, рассказывает, в чём разница между Data Scientist и Data Engineer и с какими инструментами они работают.
Читать дальше →
Всего голосов 4: ↑2 и ↓2+4
Комментарии6

Переход от монолитного Data Lake к распределённой Data Mesh

Время на прочтение25 мин
Количество просмотров39K
Привет, Хабр! Представляю вашему вниманию перевод статьи «How to Move Beyond a Monolithic Data Lake to a Distributed Data Mesh» автора Zhamak Dehghani (Жамак Дегани)(все изображения взяты из этой же статьи).

Все крупные компании сейчас пытаются строить огромные централизованные хранилища данных. Или же ещё более огромные кластерные Data Lakes (как правило, на хадупе). Но мне не известно ни одного примера успешного построения такой платформы данных. Везде это боль и страдание как для тех, кто строит платформу данных, так и для пользователей. В статье ниже автор (Жамак Дегани) предлагает совершенно новый подход к построению платформы данных. Это архитектура платформы данных четвертого поколения, которая называется Data Mesh. Оригинальная статья на английском весьма объёмна и откровенно тяжело читается. Перевод так же получился немаленьким и текст не очень прост: длинные предложения, суховатая лексика. Я не стал переформулировать мысли автора, дабы сохранить точность формулировок. Но я крайне рекомендую таки продраться через этот непростой текст и ознакомиться со статьёй. Для тех, кто занимается данными, это будет очень полезно и весьма интересно.

Евгений Черный

Немало компаний инвестируют в следующее поколение Data Lake с надеждой упростить доступ к данным в масштабе всей компании и предоставить бизнесу инсайты и возможность принимать качественные решения автоматически. Но текущие подходы к построению платформ данных имеют схожие проблемы, которые не позволяют достигнуть поставленных целей. Чтобы решить эти проблемы нам необходимо отказаться от парадигмы централизованного Data Lake (или его предшественника – хранилища данных). И перейти к парадигме, основанной на современной распределённой архитектуре: рассматривать бизнес-домены как приоритет первого уровня, применять платформенное мышление для создания инфраструктуры с возможностью самообслуживания и воспринимать данные как продукт.

image
Читать дальше →
Всего голосов 9: ↑7 и ↓2+12
Комментарии18

Информация

В рейтинге
Не участвует
Откуда
Genf, Genève, Швейцария
Дата рождения
Зарегистрирован
Активность