Pull to refresh
58
0.1
Alexander @speshuric

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

Send message

Что находится внутри образов distroless-контейнеров

Level of difficultyEasy
Reading time13 min
Views8.1K

Базовые distroless-образы GoogleContainerTools часто упоминаются как один из способов создания (более) маленьких, (более) быстрых и (более) безопасных контейнеров. Но что на самом деле они собой представляют? Зачем они нужны? В чем разница между контейнером, созданным на distroless-базе, и контейнером, созданным с нуля? Давайте разберёмся.

Читать далее
Total votes 44: ↑43 and ↓1+48
Comments2

Тысяча и одна библиотека С++

Reading time65 min
Views27K

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

Столкнувшись много раз подряд с тем, что найти что-то толковое довольно непросто, я решил попробовать распутать это узел и предложить для русскоязычных читателей свой справочник классных библиотек на С++. Я исходил из этого источника. Это очень многогранный и объемный список библиотек языка С++, но, скажем так, у меня были к нему вопросы. Потому я сделал перевод, затем значительно улучшил его в плане содержания (далее объясню, как, почему и зачем). На выходе получилось около 1000 библиотек. Как в сказке). Они, конечно, не покрывают все возможные задачи и предметные области, но поверьте, они затрагивают действительно многое.

Прикоснуться к сокровищнице языка С++
Total votes 82: ↑81 and ↓1+92
Comments23

Как мы работаем со Stateful в Kubernetes: особенности и подводные камни

Level of difficultyMedium
Reading time15 min
Views6.6K

Всем привет! На связи Олег Сапрыкин, технический директор по инфраструктуре и тимлид DevOps-команд во «Фланте». В марте 2024 года мы с Андреем Радыгиным (ex-главный архитектор по внедрению Deckhouse) выступили на конференции DevOpsConf. Эта статья — текстовый вариант нашего доклада о развитии и нашем опыте использования Stateful в Kubernetes.

Мы рассказали, как оценивать Stateful-компонент, прежде чем запускать его в Kubernetes, показали нюансы работы с такими приложениями, а также поделились особенностями конфигурирования и опытом использования некоторых Stateful-операторов — ClickHouse, Redis, Kafka, PostgreSQL и MySQL.

Читать далее
Total votes 37: ↑36 and ↓1+51
Comments4

Реверс-инжиниринг нативно скомпилированных .NET-приложений

Level of difficultyHard
Reading time9 min
Views5K


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


На платформе .NET 7 впервые была представлена новая модель развертывания: опережающая нативная компиляция. Когда приложение .NET компилируется нативно по методу AOT, оно превращается в автономный нативный исполняемый файл, оснащённый собственной минимальной средой исполнения для управления выполнением кода.
Читать дальше →
Total votes 29: ↑26 and ↓3+37
Comments4

Практическое руководство по Rust. Бонус

Level of difficultyMedium
Reading time34 min
Views8.6K



Hello world!


Представляю вашему вниманию бонусную часть практического руководства по Rust.



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


Руководство основано на Comprehensive Rust — руководстве по Rust от команды Android в Google и рассчитано на людей, которые уверенно владеют любым современным языком программирования. Еще раз: это руководство не рассчитано на тех, кто только начинает кодить 😉

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

А в чем проблема работать с файлами?

Level of difficultyMedium
Reading time53 min
Views32K

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

Меня увлекла тема отказоустойчивости, а конкретно - отказоустойчивой работы с файлами. В этой статье я попытался соединить все полученные знания:

Кто участвует в процессе записи

Ошибки, которые могут произойти

Что от нас зависит, а что нет

И самое главное - как это этого защититься

Читать далее
Total votes 141: ↑140 and ↓1+169
Comments23

Большой код. Учимся генерировать F#-исходники с помощью Fantomas. Часть 3. Модули и типы

Level of difficultyHard
Reading time20 min
Views1.2K

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

Мы возьмём сугубо игровую задачу с понятным результатом и на её примере узнаем:

• на какие ноды AST стоит обратить внимание в первую очередь;
• где Fantomas-у нельзя доверять;
• где можно хакать;
• где лучше придерживаться пуризма;
• и как на F# можно строить Fluent API.

В этой части мы сосредоточимся на общей организации генератора, входных данных и основных элементах AST. В следующей сделаем то же самое, но на более сложном уровне, сместив повествование в сторону устройства Fluent API.

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

Практическое руководство по Rust. 1/4

Level of difficultyMedium
Reading time21 min
Views23K



Hello world!


Представляю вашему вниманию первую часть практического руководства по Rust.



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


Руководство основано на Comprehensive Rust — руководстве по Rust от команды Android в Google и рассчитано на людей, которые уверенно владеют любым современным языком программирования. Еще раз: это руководство не рассчитано на тех, кто только начинает кодить 😉

Читать дальше →
Total votes 24: ↑19 and ↓5+22
Comments12

Программисты всё вымирают и вымирают

Level of difficultyEasy
Reading time18 min
Views130K

Да вымереть не могут.

Откуда это всё пошло? Чем так условные «программисты» не угодили? И почему именно программисты?

Читать далее
Total votes 335: ↑323 and ↓12+373
Comments583

Самый старый код в MSSQL

Level of difficultyEasy
Reading time2 min
Views9.1K

Ваш покорный слуга работал с MSSQL с версии 6.5, но в качестве экзотики застал версии 6.0 и 4.2. Да, я супер стар!

Но осталось ли в MS SQL что-либо с тех времен?

Читать далее
Total votes 28: ↑28 and ↓0+28
Comments18

Ещё раз про алгоритм сжатия Хаффмана

Level of difficultyHard
Reading time21 min
Views17K

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

Читать далее
Total votes 33: ↑32 and ↓1+37
Comments13

CP/M-80 на клоне Спектрума «Кворум»

Reading time16 min
Views19K
У меня на окне на память лежит большая стопка пятидюймовых дискет от компьютера, который мне подарили родители в три года, и с которого я смог перелезть на PC только в 14. Это «Кворум-128», наш, уральский клон Спектрума. Клон довольно интересный и существенно отличавшийся от, например, уральского же «Магика». С магнитофоном он работал, как любой другой Спектрум, но при подключении Кворумовского же контроллера дисковода — не так-то просто его было достать! — он умел работать в ОС CP/M-80. Вот об этой ОС и ее реализации на «Кворуме» я и хочу сегодня рассказать.



Читать дальше →
Total votes 83: ↑80 and ↓3+77
Comments33

Как запускать старые игры в 2023 — VmWare/Wrapper/GoG… Или PCeMv17

Level of difficultyEasy
Reading time6 min
Views19K

Ещё один способ играть в старые игры на современном железе. Шок от первого использования PCeM v17. И то, как он вернул радостные ощущения от игры с настоящим «Voodoo» без NGlide Wrapper.

Как и всегда, полно дилетантства, непрофессионализма и прочей ереси.

? Устанавливать все игры! ?
Total votes 36: ↑35 and ↓1+47
Comments48

Критерий Келли

Reading time9 min
Views14K

От умного риска до победы близко. Кто не рискует, тот не пьет шампанского. Без риска и жизнь пресна.

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

Читать далее
Total votes 31: ↑29 and ↓2+37
Comments11

Умные рисовалки. Бесплатные аналоги MidJourney

Reading time15 min
Views31K


▎Добрый день, дорогие хабражители!


Сегодня должно было выйти продолжение серии Анатомия игры, но у Вселенной оказались свои планы на мой компьютер. С другой стороны, где-то что-то убыло, где-то что-то прибыло. Так же можно сказать и о сегодняшнем объекте нашего внимания.
Читать дальше →
Total votes 28: ↑26 and ↓2+38
Comments15

Численно решаем волновое уравнение разностной схемой

Level of difficultyMedium
Reading time10 min
Views7.6K

Для меня уравнения в частных производных -- это очень красивая история из студенчества. Почему? Это невероятно красиво. Но что особенно стало для меня захватывающим, так это то, что дифуры в широком смысле прикладной математики -- это тот самый пример, когда математика и компьютер используются вместе, чтобы представить некоторую компьютерную модель вполне реальных процессов. Как вы уже, наверное, догадались, речь пойдёт про то, как вообще можно попробовать решать дифференциальные уравнения в частных производных на компьютере. Мы попробуем это сделать на примере волнового уравнения и с использованием уже ставших привычными python, scipy и numpy. Если вы примерно помните математику, но панически боялись дифуров или они просто как-то обошли вас стороной, то добро пожаловать.

Читать далее
Total votes 20: ↑19 and ↓1+27
Comments15

Assembler в Go: техники ускорения и оптимизации

Level of difficultyHard
Reading time8 min
Views6.1K

Привет, Хабр!

В прошлой статье я рассказывал об ускорении копирования элементов одного слайса в другой с помощью средств Go. В этот раз я решил пойти дальше и посмотреть, что можно достичь, начав разговаривать с процессором на его языке. Я выбрал одну из оптимизированных версий функции Copy в качестве объекта исследования из решения задачи VK Cup'22/23, которая копирует только синий компонент RGBA в Paletted картинку. Если интересно узнать как её ускорить почти в 10 раз, прошу под кат.

Читать далее
Total votes 22: ↑21 and ↓1+28
Comments1

Алгоритмы быстрого умножения чисел: от столбика до Шенхаге-Штрассена

Level of difficultyMedium
Reading time26 min
Views42K

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

И уж конечно, никогда при написании a * b мы не задумываемся о том, как реализовано умножение чисел a и b в нашем языке. Какие вообще есть алгоритмы умножения? Это какая-то нетривиальная задача?

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

Скорее к формулам!
Total votes 173: ↑173 and ↓0+173
Comments30

Хватит использовать [a-zа-яё]: правильная работа с символами и категориями Unicode в регулярных выражениях

Level of difficultyMedium
Reading time14 min
Views8.6K

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

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

?
Total votes 20: ↑20 and ↓0+20
Comments8
1
23 ...

Information

Rating
3,024-th
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity