Как стать автором
Обновить
0
0
Ilya Teterev @remirran

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

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

Хватит на Феррари возить картошку! Исправляем бюджетирование

Уровень сложностиСложный
Время на прочтение18 мин
Количество просмотров3K

В предыдущей публикации мы с вами рассмотрели основные проблемы бюджетирования.

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

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

Перестать возить картошку на Феррари
Всего голосов 9: ↑7 и ↓2+6
Комментарии31

Как работает сеть в контейнерах: Docker Bridge с нуля

Уровень сложностиСредний
Время на прочтение21 мин
Количество просмотров46K

В этой статье мы собираемся разобраться со следующими вопросами:

* Как виртуализировать сетевые ресурсы, чтобы контейнеры думали, что у них есть отдельные сетевые среды?

* Как превратить контейнеры в дружелюбных соседей и научить общаться друг с другом?

* Как выйти во внешний мир (например, в Интернет) изнутри контейнера?

* Как связаться с контейнерами, работающими на хосте Linux, из внешнего мира?

* Как реализовать публикацию портов, подобную Docker?

Читать далее
Всего голосов 71: ↑71 и ↓0+71
Комментарии14

Запускаем игры под Wine c поддержкой Native Wayland

Уровень сложностиСредний
Время на прочтение19 мин
Количество просмотров13K

Wine Wayland


Иллюстрации к статье подготовлены нейросетью freepik.com.


Многие люди на планете играют в видеоигры. Игры помогают улучшить когнитивные способности, провести приятно свободное время. Данная статья посвящена тому, как запустить Windows-игры под Linux в Wayland.


Эта статья могла бы быть: ставим Wine(Proton) и XWayland, запускаем игры, успех, но нет. В данном материале мы будем сами собирать Wine, решать проблемы, а так же наш Wine будет работать напрямую с Wayland композитором без прослойки в виде XWayland. Плюсы такого метода — лучшая производительность и меньше инпут лаг. Благодаря Wine 9.0 это стало возможно, но не все так просто, как может показаться читателю с первого взгляда. Для примера мы запустим игры: Overwatch 2 через Battle.net клиент и Aimbeast, KovaaK's, Apex Legends через Steam.


Если вас заинтересовала статья, то добро пожаловать под cut.

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

Compile Time Dependency Injection в С++: как обуздать зависимости не прибегая к позднему связыванию

Уровень сложностиСредний
Время на прочтение26 мин
Количество просмотров8.3K

Начав свою карьеру в качестве C# разработчика, я постоянно сталкивался с использованием техники внедрения зависимостей (Dependency Injection). За то время, что я работаю с C++, я не заметил здесь такого же широкого распространения этой идеи.

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

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

Читать далее
Всего голосов 14: ↑14 и ↓0+14
Комментарии19

Как работают трансформеры: разбираем математику

Уровень сложностиСредний
Время на прочтение28 мин
Количество просмотров20K

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

Как вы увидите, математика модели не так уж сложна. Сложность возникает из-за количества этапов и количества параметров. Перед прочтением этой статьи я рекомендую прочитать пост Illustrated Transformer (или читать их параллельно) [перевод на Хабре]. Это отличный пост, объясняющий модель трансформера интуитивным (и наглядным!) образом, поэтому я не буду объяснять то, что уже объяснено в нём. Моя цель заключается в том, чтобы объяснить, как работает модель трансформера, а не что это такое. Если вы хотите углубиться в подробности, то изучите известную статью Attention is all you need [перевод на Хабре: первая и вторая части].

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

Прокачиваем навыки в сфере ML — что изучать в 2024-м

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров16K

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

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

Но чтобы грамотно использовать инструменты для работы с AI- и ML-задачами, нужно приобрести необходимо знания и навыки. Поможет разобраться в машинном обучении и инструментах для работы с ML-моделями подборка новых и высокооцененных специализированных курсов, книг и других тематических материалов.

Читать далее
Всего голосов 18: ↑15 и ↓3+17
Комментарии0

Книга «System Design. Машинное обучение. Подготовка к сложному интервью»

Время на прочтение10 мин
Количество просмотров12K
image Привет, Хаброжители!

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

Также она поможет всем, кто интересуется проектированием систем МО, будь то новички или опытные инженеры.

Что внутри?
  • О чем на самом деле спрашивают на собеседовании по System Design в МО и почему (инсайдерская информация!).
  • 7 основных шагов для решения любой задачи МО, предлагаемой на собеседовании.
  • 10 вопросов из реальных собеседований по System Design в МО с подробным разбором ответов.
  • 211 диаграмм, которые наглядно объясняют, как работают различные системы.
Читать дальше →
Всего голосов 17: ↑17 и ↓0+17
Комментарии7

Ужасы японского языка. Письменность

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

Четыре года назад я совершил один из самых безрассудных поступков в своей жизни: начал учить японский язык. Разумеется, прежде чем решиться на такое приключение, я тщательно все продумал и провел подробное исследование на тему. Т.е. погуглил, что другие люди думают об этом экзотическом языке. Отзывы меня весьма приободрили. В них говорилось, что нужны годы и годы тяжелого учения. Люди писали, что, если тебе кажется, что язык очень тяжелый, то ты все еще недооцениваешь опасность раз в десять. Интернет пестрит предупреждениями, что тебе это не нужно; что это тяжело; что "не лезь оно тебя сожрет".

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

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

Читать далее
Всего голосов 165: ↑162 и ↓3+207
Комментарии331

Современный язык международного общения

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров28K

Поводом для написания этого поста стал топик на этом же подсайте.

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

Начну с цитаты из поста: >В чем сила, брат?" У иероглифического письма есть ряд преимуществ по сравнению с более известными нам алфавитными языками...

У иероглифов нет преимуществ, есть огромные огромные недостатки. У нас есть алфавит. ребенок может в день не сильно напрягаясь учить по 5 букв. На изучение алфавита английского языка в этом случае ребенок потратит 5 дней, в русском - 7. Даже без участия учителя, подрюкавшись годик-другой, ребенок научится бегло читать книги. Его грамотность будет околонулевая, без знания правил и словарных слов он будет делать множество ошибок. Но, грубо говоря, для общения с другими носителями языка он получил необходимый базовый минимум за неделю. Написать "мама и папа я вас люблю" ребенок уже сможет. Или любой величины текст, на который ему хватит терпения.

А иероглифы - это "набивка" годами тысяч очень странных знаков, причем логика их рисования очень сложная. Горы - ну ок, это можно запомнить и вспомнить. Слон? Тут уже никакой логики не хватит, чтобы понять, как из упрощенной картинки слона извлечь иероглиф. Получается, что для чтения или написания базового разговорного минимума нам, англичанам, испанцам и т.д. хватит что то в районе недели (ну ок, казахам - 9 дней), а китайцам - несколько лет. Нам не надо знать, как пишется конкретное слово. Нам достаточно уметь разговаривать на языке и знать алфавит. Ребенок после недельного обучения идет по улице и меееедленно начинает читать ЛЮБОЕ слово. А китаец, умея разговаривать на языке, через неделю обучения идет и видит вокруг себя такую же незнакомую белиберду, изредка встречая знакомые 3 десятка слов.

Читать далее
Всего голосов 137: ↑112 и ↓25+118
Комментарии560

REST API/Web сервер на PowerShell

Уровень сложностиСложный
Время на прочтение12 мин
Количество просмотров9.6K

Все привет! В продолжение статьи о возможностях PowerShell, хочу поделиться несложной реализацией создания REST API и простого Web-сервера, используя только PowerShell на базе класса .NET HttpListener. Такая реализация позволяет настроить endpoint (конечные точки) для обработки GET и POST запросов, которые принимают параметры в заголовке запроса, использовать Basic-авторизацию (на основе Base64), обрабатывать любые коды возврата, а так же без лишнего кода, отдавать информацию в разных форматах: json, xml, html, csv.

https://habr.com/ru/articles/782592
Всего голосов 22: ↑22 и ↓0+22
Комментарии3

Как оптимизировать код на С для x86-процессоров: подсистема кэша и памяти, инструкции AVX-512

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

Меня зовут Андрей Бакшаев, я ведущий инженер-программист в YADRO. Моя команда занимается разработкой и оптимизацией математических библиотек под архитектуру x86. До этого я 15 лет работал в Intel. Значительная часть моих задач заключалась в том, чтобы реализовывать некоторые алгоритмы обработки изображений и сигналов в довольно известной математической библиотеке IPP, максимально эффективно используя возможности процессоров. Я также исследовал производительность этих алгоритмов в процессорах на ранней стадии проектирования. 

В статье я поделюсь своим опытом оптимизации низкоуровневого кода на языке C. Рассмотрим подсистему кэша и памяти процессоров и новые инструкции AVX-512. Разберем пример ускорения копирования байтового массива данных и посмотрим, как векторизованный код позволяет сократить время работы широко используемого алгоритма замены байтов по таблице с 619 до 34 мс, то есть примерно в 18 раз. 

Читать далее
Всего голосов 42: ↑39 и ↓3+48
Комментарии23

Книги, которые помогут прокачать писательские скилы

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

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

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

Читать далее
Всего голосов 20: ↑16 и ↓4+22
Комментарии22

Практическая магия Istio при построении архитектуры крупных микросервисных систем. Часть 1 — функциональная

Уровень сложностиСредний
Время на прочтение25 мин
Количество просмотров18K

Под Новый Год мы с женой пересматриваем одну популярную магическую сагу — хочется знаете ли в жизни волшебства. В IT волшебства тоже хватает — от танцев с бубнами до самых современных технологий, принцип работы которых проще объяснить тёмной магией. Так, например, бытует мнение, что настройка service mesh — это магия, подвластная лишь волшебникам DevOps. Но у нас в Альфа-Банке разработчики исторически не маглы, а, как минимум, полукровки, поэтому имеют право приобщиться к волшебному миру.

В этой серии статей я хочу поделиться опытом изучения технологии service mesh, а именно Istio, на примере практической задачи, возникшей какое то время назад в одной из систем Альфа Банка, системным архитектором которой я являюсь.

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

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

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

Неочевидные моменты TypeScript и способы их решения

Уровень сложностиСложный
Время на прочтение7 мин
Количество просмотров16K

Разрабатывая на TypeScript, можно столкнуться с ситуациями, в которых код будет работать не так, как ожидается. В статье разберем несколько таких моментов. Часть просто придется иметь ввиду, часть решается обновлением, а часть исправляется – обо всем по порядку.

Если вам будет удобно сразу же проверять каждый пример, читая статью, можно это делать в редакторе. Он удобен тем, что версию TypeScript в нем можно переключать.

Читать далее
Всего голосов 12: ↑10 и ↓2+12
Комментарии11

Helidon 4 вышел, а никто и не заметил

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

Те, кто использует Helidon в проде, наверняка точно знают, зачем им это нужно. Что делать остальным? Основная задача хомячка — объяснить детям концепцию смерти. Кажется, точно так же основная задача Helidon для широких народных масс — посмотреть на самые новые фишки Java и понять, нужно вам это или нет. Посмотрим, что же произошло в версии 4.0.0...

Интересно. Читать далее
Всего голосов 21: ↑19 и ↓2+24
Комментарии8

Architecture as Code: реализуем подход Саймона Брауна

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

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


  1. Модели архитектуры программного обеспечения как код, построенные с использованием Structurizr Lite
  2. Документация, созданная с помощью шаблона Arc42
  3. Журнал решений, созданный с помощью ADR Tools

Предполагается хранение этой документации в репозитории и работа с ней так же, как и с кодом.


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

Самый маленький Docker образ Rust приложения

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

Привет %username%, эта статья про то, как поместить Rust приложение в Docker и получить образ размером с бинарный файл (6 Мб). А также про причины, которые привели к переходу с NodeJS на Rust. Отдельная пара слов о проблемах вначале, переходе на Go, и том, как команда Rust устранила эти проблемы за пол года.

TL;DR Dockerfile в конце статьи и ссылка на example репозиторий

Читать далее
Всего голосов 36: ↑35 и ↓1+43
Комментарии16

Как я проектирую и разрабатываю расширения Python на Rust

Уровень сложностиСредний
Время на прочтение16 мин
Количество просмотров4.7K

В этой статье я хочу рассказать о том, как я проектирую комплексные расширения для Python на Rust с использованием PyO3 и почему я принимаю те или иные проектные решения.

Читать далее
Всего голосов 16: ↑14 и ↓2+15
Комментарии12

Экзамен для начинающих. PWN. bookshelf PatriotCTF 2023

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров2K

Недавно прошел PatriotCTF 2023. Таски хорошие особенно для начинающих.

Зацепил меня таск по разделу PWN. Чтобы его решить необходимы знания в:

1. Реверсе

2. ROP-цепочках

3. Базовых понятиях интов

4. Знать что такое переполнение буффера

Это экзамен для начинающих, потому что в таске включены все базовые уязвимости и атаки, которые должен знать PWN-ер.

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

Active Directory: raz0rblack by THM writeup

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров3.9K

Приветствую, вас, уважаемые кулхацкеры. Данный райт будет посвящен прохождению машины raz0rblack на TryHackMe.

Читать далее
Всего голосов 7: ↑6 и ↓1+5
Комментарии9

Информация

В рейтинге
4 674-й
Откуда
Arizona, США
Зарегистрирован
Активность

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

Fullstack Developer, System Software Engineer
Lead