Pull to refresh
48
0
Artemiy R @Flaker

User

Send message

Strace в Linux: история, устройство и использование

Reading time17 min
Views58K


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


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

Читать дальше →
Total votes 86: ↑86 and ↓0+86
Comments27

BPF для самых маленьких, часть нулевая: classic BPF

Reading time22 min
Views56K

Berkeley Packet Filters (BPF) — это технология ядра Linux, которая не сходит с первых полос англоязычных технических изданий вот уже несколько лет подряд. Конференции забиты докладами про использование и разработку BPF. David Miller, мантейнер сетевой подсистемы Linux, называет свой доклад на Linux Plumbers 2018 «This talk is not about XDP» (XDP – это один из вариантов использования BPF). Brendan Gregg читает доклады под названием Linux BPF Superpowers. Toke Høiland-Jørgensen смеется, что ядро это теперь microkernel. Thomas Graf рекламирует идею о том, что BPF — это javascript для ядра.


На Хабре до сих пор нет систематического описания BPF, и поэтому я в серии статей постараюсь рассказать про историю технологии, описать архитектуру и средства разработки, очертить области применения и практики использования BPF. В этой, нулевой, статье цикла рассказывается история и архитектура классического BPF, а также раскрываются тайны принципов работы tcpdump, seccomp, strace, и многое другое.


Разработка BPF контролируется сетевым сообществом Linux, основные существующие применения BPF связаны с сетями и поэтому, с позволения @eucariot, я назвал серию "BPF для самых маленьких", в честь великой серии "Сети для самых маленьких".

Читать дальше →
Total votes 62: ↑62 and ↓0+62
Comments5

45 youtube-каналов на английском языке для ИТ-специалистов

Reading time4 min
Views24K
Хотела узнать, что смотрят коллеги (кроме нетфликсов и амедиатек), провела опрос. Результат получился неожиданный. Я думала, ну, соберу каналов 10, которые смотрят все ИТ-специалисты. Не тут-то было! Во-первых, каналов получилось в 10 раз больше, чем я предполагала. Во-вторых, 80% из них — на английском языке. В-третьих, смотрят коллеги далеко не только каналы о программировании, но и о математике, науке, космосе, истории.
Вот вам подборка из 45 интересных, по мнению коллег из EPAM, youtube-каналов на английском языке.


Читать дальше →
Total votes 10: ↑10 and ↓0+10
Comments5

Как мы потеряли «Мир»: пожар на космической станции, столкновение с грузовиком «Прогресс», разгерметизация

Reading time23 min
Views86K
20-го февраля 2020-го года исполняется 34 года с момента запуска и ввода в эксплуатацию космической станции «Мир». Станции, которая была обитаема с 13 марта 1986 года по 16 июня 2000 года. И могла быть обитаема ещё, если бы…

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



23 февраля 1997 года на станции «Мир» должен был погибнуть весь международный экипаж – 4 российских космонавта, один немецкий и один американский астронавт. И тогда станцию «Мир» пришлось бы затопить не планово – весной 2001 года, а вынужденно, на 4 года раньше, с мертвым экипажем на борту. Об этой экспедиции до 2006 года принято было молчать, и до сих пор о ней мало что известно, кроме самих космонавтов и руководителей полета, никто не знал подробностей случившегося. В 2006-м, космонавты 23 международной экспедиции согласились рассказать, что же на самом деле происходило на космической станции, заложниками которой они оказались и Первый канал снял отличный документальный фильм об этом — «Некуда бежать. Пожар на космической станции», который сегодня доступен на Youtube, сайт студии Роскосмоса, почему-то выдаёт ошибку. Возможно потому, что там сказали не всю правду или потому, что правда не совсем та.

Пожар потушили, но он имел страшные последствия. Несколько месяцев космонавтам пришлось жить при температуре более +40 С, дышать ядовитыми парами этиленгликоля, а затем спасать станцию от разгерметизации, вызванной столкновением с 10-тонным грузовым кораблем «Прогресс».

И совсем недавно мой друг нашёл версию произошедшего столкновения от американцев (смотреть с 1:18:00), где астронавт Майкл Фоул, непосредственный участник событий, утверждает, что столкновение было результатом эксперимента по ручной стыковке со станцией, а что самого эксперимента не должно было быть.
Читать дальше →
Total votes 152: ↑136 and ↓16+156
Comments526

13 инструментов для обработки текста в командной оболочке

Reading time17 min
Views95K
Здесь представлен фрагмент будущей книги «Основные инструменты и практики для начинающего разработчика программного обеспечения» Бальтазара Рубероля и Этьена Броду. Книга должна помочь образованию подрастающего поколения разработчиков. Она охватит такие темы, как освоение консоли, настройка и эффективная работа в командной оболочке, управление версиями кода с помощью git, основы SQL, инструменты вроде Make, jq и регулярные выражения, основы сетевого взаимодействия, а также лучшие практики разработки программного обеспечения и совместной работы. В настоящее время авторы упорно работают над этим проектом и приглашают всех поучаствовать в списке рассылки.

Содержание


Читать дальше →
Total votes 46: ↑43 and ↓3+50
Comments65

Отлаживаем сетевые задержки в Kubernetes

Reading time17 min
Views11K


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

По сути, в приложениях происходит будто случайная сетевая задержка до 100 мс и более, что приводит к тайм-аутам или повторным попыткам. Ожидалось, что службы смогут отвечать на запросы гораздо быстрее 100 мс. Но это невозможно, если само соединение отнимает столько времени. Отдельно мы наблюдали очень быстрые запросы MySQL, которые должны были занимать миллисекунды, и MySQL действительно справлялась за миллисекунды, но с точки зрения запрашивающего приложения ответ занимал 100 мс или больше.
Читать дальше →
Total votes 44: ↑42 and ↓2+40
Comments2

Популярно об артиклях в английском языке

Reading time8 min
Views54K
Артикли — это самые распространенные слова в английском языке. Эти невзрачные a, an и the занимают около 8,5% объема любого текста. Если немного утрировать, то из каждого часа работы с текстом вы пять минут тратите только на прочтение артиклей.

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

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


Читать дальше →
Total votes 59: ↑59 and ↓0+59
Comments94

Centrifugo — новости не в реальном времени

Reading time7 min
Views11K

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


Total votes 24: ↑24 and ↓0+24
Comments13

Пишем поиск подстроки лучше, чем в учебниках

Reading time9 min
Views17K


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

// Для использования String.repeat нужен JDK 11 и выше:
final var needle = "A".repeat(500000) + "B";
final var haystack = "A".repeat(1000000) + "B";
System.out.println(haystack.indexOf(needle));

Мы ждем, ждем, ждем… По крайней мере, на моем ноутбуке 2015 года c OpenJDK 13 поиск иголки в стоге сена занимает около минуты. Наша старая добрая JVM прошла сквозь десятилетия перформанс-тюнинга, в ней эффективно реализованы интринсики для String.indexOf и так далее. Что же могло пойти не так?
Это начало серии из нескольких статей, любезно предоставленных их автором, Linas Medžiūnas, и изначально опубликованых в блоге WiX Engineering.

Читать дальше →
Total votes 24: ↑22 and ↓2+29
Comments11

Трансформеры как графовые нейронные сети

Reading time10 min
Views15K
TL;DR: перевод поста Chaitanya Joshi "Transformers are Graph Neural Networks": схемы, формулы, идеи, важные ссылки. Публикуется с любезного разрешения автора.

Друзья-датасаентисты часто задают один и тот же вопрос: графовые нейронные сети (Graph Neural Networks) — прекрасная идея, но были ли у них хоть какие-то настоящие истории успеха? Есть ли у них какие-нибудь полезные на практике приложения?



Можно привести в пример и без того известные варианты — рекомендательные системы в Pinterest, Alibaba и Twitter. Но есть и более хитрая история успеха: штурмом взявшая промышленную обработку естественного языка архитектура Transformer.


В этом посте мне бы хотелось установить связи между графовыми нейронными сетями и трансформерами (Transformers). Мы поговорим об интуитивном обосновании архитектур моделей в NLP- и GNN-сообществах, покажем их связь на языке формул и уравнений и порассуждаем, как оба "мира" могут объединить усилия, чтобы продвинуть прогресс.

Читать дальше →
Total votes 9: ↑9 and ↓0+9
Comments2

Нормализация текста в задачах распознавания речи

Reading time4 min
Views11K

При решении задач, связанных с распознаванием (Speech-To-Text) и генерацией (Text-To-Speech) речи важно, чтобы транскрипт соответствовал тому, что произнёс говорящий — то есть реально устной речи. Это означает, что прежде чем письменная речь станет нашим транскриптом, её нужно нормализовать.


Другими словами, текст нужно провести через несколько этапов:


  • Замена числа прописью: 1984 год -> тысяча девятьсот восемьдесят четвёртый год;
  • Расшифровка сокращений: 2 мин. ненависти -> две минуты ненависти;
  • Транскрипция латиницы: Orwell -> Оруэлл и т.д.

Normalization


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


Как вишенка на торте, мы решили выложить наш нормализатор на базе seq2seq в открытый доступ: ссылка на github. Он максимально прост в использовании и вызывается одним методом:


norm = Normalizer()
result = norm.norm_text('С 9 до 11 котики кушали whiskas')

>>> 'С девяти до одиннадцати котики кушали уискас'
Читать дальше →
Total votes 32: ↑32 and ↓0+32
Comments8

Методы Монте-Карло для марковских цепей (MCMC). Введение

Reading time10 min
Views11K
Привет, Хабр!

Напоминаем, что ранее мы анонсировали книгу "Машинное обучение без лишних слов" — и теперь она уже в продаже. Притом, что для начинающих специалистов по МО книга действительно может стать настольной, некоторые темы в ней все-таки затронуты не были. Поэтому всем заинтересованным предлагаем перевод статьи Саймона Керстенса о сути алгоритмов MCMC с реализацией такого алгоритма на Python.
Читать дальше →
Total votes 17: ↑17 and ↓0+17
Comments2

Конспект по методам классификации данных

Reading time7 min
Views14K
При изучении Data Science, я решил составить для себя конспект по основным приемам, используемым в анализе данных. В нем отражены названия методов, кратко описана суть и приведен код на Python для быстрого применения. Готовил конспект для себя, но подумал, что кому-то это также может быть полезно, например, перед собеседованием, в соревновании или при запуске нового проекта. Рассчитано на аудиторию, которая в целом знакома со всеми этими методами, но имеет необходимость освежить их в памяти. Статья под катом.
Читать дальше →
Total votes 12: ↑12 and ↓0+12
Comments1

Введение в SSD. Часть 4. Физическая

Reading time8 min
Views23K

Прошлые части цикла «Введение в SSD» поведали читателю про историю появления SSD-накопителей, интерфейсы взаимодействия с ними и популярные форм-факторы. Четвёртая часть расскажет о хранении данных внутри накопителей.
Читать дальше →
Total votes 17: ↑15 and ↓2+18
Comments11

Когда фильтр Блума не подходит

Reading time9 min
Views15K


Я ещё с университета знал о фильтре Блума — вероятностной структуре данных, названной в честь Бёртона Блума. Но у меня не было возможности её использовать. В прошлом месяце такая возможность появилась — и эта структура буквально очаровала меня. Впрочем, вскоре я нашёл у неё некоторые недостатки. В этой статье — рассказ о моей краткой любовной связи с фильтром Блума.
Читать дальше →
Total votes 37: ↑36 and ↓1+48
Comments15

Как сжать модель fastText в 100 раз

Reading time12 min
Views21K

Модель fastText — одно из самых эффективных векторных представлений слов для русского языка. Однако её прикладная польза страдает из-за внушительных (несколько гигабайт) размеров модели. В этой статье мы показываем, как можно уменьшить модель fastText с 2.7 гигабайт до 28 мегабайт, не слишком потеряв в её качестве (3-4%). Спойлер: квантизация и отбор признаков работают хорошо, а матричные разложения — не очень. Также мы публикуем пакет на Python для этого сжатия и примеры компактной модели для русских слов.


Читать дальше →
Total votes 43: ↑43 and ↓0+43
Comments4

Применяем Data Science в мирных целях покупки дома

Reading time9 min
Views25K
Чтобы продать что-нибудь ненужное, нужно сначала купить что-нибудь ненужное, а у нас денег нет.
— Трое из Простоквашино

Введение


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


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

Читать дальше →
Total votes 24: ↑24 and ↓0+24
Comments35

Рекуррентные нейронные сети (RNN) с Keras

Reading time11 min
Views83K
Перевод руководства по рекуррентным нейросетям с сайта Tensorflow.org. В материале рассматриваются как встроенные возможности Keras/Tensorflow 2.0 по быстрому построению сеток, так и возможности кастомизации слоев и ячеек. Также рассматриваются случаи и ограничения использования ядра CuDNN позволяющего ускорить процесс обучения нейросети.


Читать дальше →
Total votes 14: ↑14 and ↓0+14
Comments0

Сверхсовременные иммутабельные структуры данных

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



Иммутабельные структуры данных не меняют своих значений. Чтобы что-то с ними сделать, нужно создавать новые значения. Старые же значения остаются на прежнем месте, поэтому их можно без проблем и блокировок читать из разных потоков. В итоге ресурсы можно совместно использовать более рационально и упорядоченно, ведь старые и новые значения могут использовать общие данные. Благодаря этому их куда быстрей сравнить между собой и компактно хранить историю операций с возможностью отмены. Все это отлично ложится на многопоточные и интерактивные системы: такие структуры данных упрощают архитектуру десктопных приложений и позволяют сервисам лучше масштабироваться. Иммутабельные структуры — секрет успеха Clojure и Scala, и даже сообщество JavaScript теперь пользуется их преимуществами, ведь у них есть библиотека Immutable.js, написанная в недрах компании Facebook.

Под катом — видео и перевод доклада Juan Puente с конференции C++ Russia 2019 Moscow. Хуан рассказывает про Immer — библиотеку иммутабельных структур для C++. В посте:

  • архитектурные преимущества иммутабельности;
  • создание эффективного персистентного векторного типа на основе RRB-деревьев;
  • разбор архитектуры на примере простого текстового редактора.

Total votes 84: ↑84 and ↓0+84
Comments57

Calico для сети в Kubernetes: знакомство и немного из опыта

Reading time9 min
Views51K


Цель статьи — познакомить читателя с основами сетевого взаимодействия и управлением сетевыми политиками в Kubernetes, а также со сторонним плагином Calico, расширяющим стандартные возможности. Попутно будут продемонстрированы удобство конфигурации и некоторые фичи на реальных примерах из опыта нашей эксплуатации.
Читать дальше →
Total votes 38: ↑38 and ↓0+38
Comments0

Information

Rating
Does not participate
Works in
Date of birth
Registered
Activity