Pull to refresh
10
0

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

Send message

Доктора Кнут, Моррис и Пратт, или Как я перестал бояться и полюбил префикс-функцию

Level of difficultyMedium
Reading time9 min
Views7.6K

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

Я прошел через череду осознаний и озарений, прежде чем достичь просветления, и теперь предлагаю вам пройти этот путь вместе со мной.

Читать далее
Total votes 33: ↑33 and ↓0+43
Comments24

Obsidian — Notion свободного человека

Level of difficultyEasy
Reading time5 min
Views84K

Notion объявили, что уходят из России и 9 сентября блокируют аккаунты пользователей.

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

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

Я сам долгое время пользовался Ноушеном. Первое знакомство было умопомрачительно, захватывающе. Чего только стоят мои конспекты с футбольными тактиками, где я ковертировал видео с матчей и тренировок в гифки, а потом добавлял к конспектам.

Год назад перевёл все свои заметки в Обсидиан. Причина простая: Обсидиан может гораздо больше вещей, чем Notion.

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

Читайте в статье
Total votes 118: ↑112 and ↓6+125
Comments266

Весь бекэнд сталелитейной компании — как это у нас устроено

Reading time6 min
Views9.2K
image

Пять лет назад у нас почти не было собственной разработки бэка: очень многие вещи делались силами подрядчиков, вендорами и командами поддержки. «Почти не было» — потому что всё же было много SAP и легаси-систем, разработанных, например, на Oracle, которые не менялись по многу лет.

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

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

Административно всё устроено так: есть профильные и функциональные центры компетенций, например, есть первые переделы (обработка руды и всё такое), есть прокатное производство, есть выплавка, есть ремонты, есть HR-системы и так далее. Функционально все бекэнд-разработчики объединены в нашем Центре компетенций. Я и лидеры гильдии отвечаем за соответствующие стеки.

Мы не трогаем уровень микроконтроллеров технологического оборудования, не лезем в АСУ ТП (там есть отдельное подразделение со своей атмосферой), поэтому основная часть нашей работы находится на уровне управления производством. Есть ещё системы управления закупками, продажами, логистикой, планирования на различном уровне.

Значительная часть наших задач — разработка цифровых помощников, оптимизаторов производства и многих других вещей, про которые вы уже несколько лет читаете у нас в блоге на Хабре. Мы делаем архитектуру, логику, реализацию под конкретное производство и контрибьютим это в свой набор компонентов.
Читать дальше →
Total votes 34: ↑34 and ↓0+35
Comments12

«Всегда закрывай за собой двери!»: краткое пособие по работе с портами

Reading time9 min
Views24K

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

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

Привет! Меня зовут Иван, я ведущий инженер по информационной безопасности в Selectel. Давно хотели научиться настраивать сетевые интерфейсы? Хорошая новость: мы в Selectel запускаем цикл статей по работе с портами в разрезе ИБ. В этом материале разберем, как с помощью различных межсетевых экранов: локальных, облачных и МСЭ в составе NGFW — обеспечить дополнительную защиту сервисов. Подробности под катом!
Читать дальше →
Total votes 36: ↑35 and ↓1+51
Comments4

Что будет, если скрестить конструирование компиляторов, DDD и Clean Architecture? Опыт HydraScript

Level of difficultyMedium
Reading time12 min
Views5.6K


В этой статье я расскажу о двухлетнем эксперименте, проводимом над моим пет-проектом, интерпретатором ЯП HydraScript. Почему к разработке из области системного программирования были применены промышленные практики, и зачем конструированию компиляторов нужен Domain Driver Design с чистой архитектурой?

Исходники проекта
Читать дальше →
Total votes 33: ↑32 and ↓1+52
Comments10

Как настроить двухфакторную аутентификацию через Telegram для SSH

Level of difficultyEasy
Reading time9 min
Views11K

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

Двухфакторная аутентификация (2FA) – это мощный инструмент, который значительно повышает уровень безопасности, требуя подтверждения вашей личности с помощью второго фактора. В этом контексте, двухфакторная аутентификация через Telegram представляет собой эффективное решение, которое можно легко интегрировать в процесс SSH-подключения.

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

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

Читать далее
Total votes 25: ↑23 and ↓2+24
Comments35

Установка Shadowsocks с обходом блокировок на Keenetic

Reading time8 min
Views109K

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

Читать далее
Total votes 16: ↑14 and ↓2+20
Comments37

Любой может получить доступ к удалённым и приватным данным репозиториев GitHub

Level of difficultyMedium
Reading time6 min
Views49K

Кто угодно может получать доступ к данным из удалённых форков, удалённых репозиториев и даже приватных репозиториев GitHub. И эти данные доступны всегда. Это известно разработчикам GitHub, и они намеренно спроектировали систему таким образом.

Это настолько огромный вектор атак для всех организаций, использующих GitHub, что мы решили ввести новый термин: Cross Fork Object Reference (CFOR). Уязвимость CFOR возникает, когда форк одного репозитория может получить доступ к требующим защиты данным из другого форка (в том числе и к данным из приватных и удалённых форков). Аналогично Insecure Direct Object Reference, при CFOR пользователи передают хэши коммитов, чтобы напрямую получать доступ к данным коммитов, которые иначе были бы для них невидимыми.

Давайте рассмотрим несколько примеров.
Читать дальше →
Total votes 114: ↑106 and ↓8+127
Comments41

Творим дичь с помощью инструментов веб-разработки

Level of difficultyHard
Reading time11 min
Views14K

Или что будет если заставить очень опытного разработчика заниматься не своим делом. Думаю после этой статьи термин «overqualified» заиграет для вас новыми красками.

Читать далее
Total votes 40: ↑40 and ↓0+51
Comments17

Методика «Eat that frog», принцип Парето и матрица Эйзенхауэра: инструменты для управления приоритетами и временем

Reading time9 min
Views19K

Привет, Хабр! Меня зовут Яна, я pre-sale инженер в Selectel. У каждого человека есть свои профессиональные особенности, но не каждому удается грамотно их использовать. Чтобы определить и прокачать сильные стороны, существует способы самоуправления. В тексте начнем с самых азов — с расстановки приоритетов. Поделюсь тремя инструментами, которые помогут вам достичь поставленные цели, но не перейти в достигаторство.
Читать дальше →
Total votes 45: ↑43 and ↓2+59
Comments7

Не статья, а позорище какое-то! Sentiment-анализ комментариев из блога Selectel на Хабре

Reading time12 min
Views8.9K

Каждый месяц в блоге Selectel на Хабре появляется 35-40 публикаций. Сбор статистики по ним мы давно автоматизировали, но до последнего времени не охватывали sentiment-анализ, то есть оценку тональности комментариев средствами машинного обучения.

У нас есть своя ML-платформа, серверное железо и опыт в развертывании IT-инфраструктуры. Вполне логично, что в какой-то момент возник вопрос: что, если проанализировать эмоциональный окрас комментариев в блоге на Хабре с помощью LLM?

Под катом рассказываем, что из этого получилось.
Читать дальше →
Total votes 54: ↑48 and ↓6+62
Comments18

uConsole — гиковский КПК, который надо собирать самому

Level of difficultyEasy
Reading time2 min
Views17K

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

Вскрываем!
Total votes 34: ↑34 and ↓0+51
Comments26

Взлом вашей первой программы

Level of difficultyEasy
Reading time3 min
Views7.6K

Наша задача - сделать так, чтобы программа выводила "Good" в независимости от того, что пользователь ввёл в поле пароля. Если вы захотели декомпилировать данную программу, закинув EXE-файл в программу по типу dotPeek или ILSpy, то у вас ничего не выйдет. Ведь данная программа написана не на C#, исходный код которого можно легко посмотреть, а на C++, декомпилировать который нельзя.

Читать дальше →
Total votes 17: ↑16 and ↓1+20
Comments14

Детки, не учитесь кодить. Вместо этого освойте моделирование

Level of difficultyEasy
Reading time16 min
Views55K

«Я хочу творить, а не быть следствием чужого творчества. Я хочу принадлежать к тем, кто создает смыслы, а не быть плодом этого смысла».

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

Читать далее
Total votes 32: ↑25 and ↓7+26
Comments50

Как мы переехали с Oracle на PostgreSQL в нагруженном сервисе без даунтайма

Level of difficultyMedium
Reading time30 min
Views26K

Всем привет! Я Сергей, работаю в B2B-команде Яндекс Маркета последние 3,5 года. Как уже понятно из заголовка, сейчас я вам расскажу про yet-another-миграцию с базы на базу, которая началась в середине 2021 года и заняла почти год. Получается, мемуары.

Вас ждёт рассказ о том, как мы:

- несколько месяцев чинили тесты и делали трансформер;

- десятки раз переливали данные;

- чинили баги незаметно для пользователей;

- заставили сервис работать на PostgreSQL быстрее, чем он работал на Oracle.

Читать далее
Total votes 90: ↑90 and ↓0+92
Comments15

The Elder Scrolls III: Morrowind: чем цепляет эта нестареющая классика?

Level of difficultyEasy
Reading time20 min
Views15K
image

Попробуйте вспомнить, как вы впервые играли в The Elder Scrolls III: Morrowind. Запустили и, просмотрев заставку, оказались запертым в трюме корабля, проспав почти всю дорогу настолько крепко, что даже вчерашний шторм не разбудил вас. Ступив на берег и оформив бумаги, в которых указали свою расу, под каким созвездием родились и чем промышляете, вы попали в огромный, мрачный и почти безграничный мир, где, как тогда казалось, можно всё. Началось путешествие, и вы, овеянный чувством приключения, под замечательные музыкальные композиции Джереми Соула отправляетесь в дорогу. У ваших ног весь Вварденфелл – место, где джунгли сменяются пепельными пустынями, а зелёные леса – насаждениями гигантских грибов. На вашем пути встретится много интересного, а игра предоставит большое количество возможностей в развитии вашего альтер эго и увлечёт глубокой историей, множеством красивых и живых городов (каждый из которых отличается не только географическим расположением или названием, но даже архитектурным стилем и общим настроением), захватывающими квестами, а также ощущением причастности к чему-то великому.

Огромная свобода как для ролевого отыгрыша, так и поведенческая, побуждала к изучению всех окрестных земель и возможностей, предоставляемых игрой. Поэтому я убеждён, что большинство из вас, попробовав The Elder Scrolls III: Morrowind на релизе, просто не могло не влюбиться в этот проект компании Bethesda Game Studios и в наши дни вспоминаете её с огромным пиететом. Да, в 2002 году Morrowind казался чем-то невозможным, чем-то, что способно увлечь на десятки и сотни часов, и, скажу вам, с годами мало что изменилось. Игра воистину глубока и масштабна, в неё не играют, а в ней живут. Поэтому, если вы услышите от кого-то, что он прошёл Morrowind, не верьте ему, он наркоман бредит =)
Читать дальше →
Total votes 46: ↑44 and ↓2+54
Comments62

Конец программирования, как мы его знаем, или Что нас ждёт с LLM

Level of difficultyMedium
Reading time5 min
Views60K

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

Читать далее
Total votes 62: ↑40 and ↓22+32
Comments233

Создание PDF размером с Германию

Level of difficultyEasy
Reading time7 min
Views26K

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

Подобное утверждение появилось на просторах интернета ещё в 2007 году. Этот твит является характерным примером постов с аналогичным заявлением, в которых оно преподносится как твёрдый факт без каких-либо подтверждающих свидетельств или объяснений. То есть мы должны просто принять, что один PDF может покрыть лишь около половины площади Германии, и нам никак не объясняют, почему его магический предел составляет 381 километр.

Тут мне стало интересно – а создавал ли кто-нибудь такой большой PDF? Насколько это сложно? А можно ли сделать документ ещё больше?

Несколько лет назад я из праздного любопытства немного поигралась с PostScript, предшественником PDF, и это оказалось очень увлекательным! Ранее мне не доводилось изучать внутреннее устройство PDF, так что здесь у меня возник для этого хороший повод.

Приступим!
Читать дальше →
Total votes 93: ↑90 and ↓3+120
Comments57

Отопление в ИЖС с помощью сплит-кондиционера «на тепло». Так ли это выгодно на самом деле?

Reading time30 min
Views17K

Отопление тепловыми насосами

Продолжим обсуждение способов экономичного отопления в ИЖС без использования трубного газа.

Ранее были рассмотрены варианты отопления электричеством и отопления с применением СУГ.

Экономика загородного дома. Как утеплить дом и не разориться?

По желанию читателей решил рассмотреть и вариант отопления с помощью «кондиционеров на тепло».

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

Изначально предполагается использовать именно самую дешёвую версию сплит‑кондиционера, у которого компрессорно‑конденсаторный блок (далее ККБ) установлен на улице.

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

Рассмотрением этих незаметных или преднамеренно скрываемых препятствий мы и займёмся в этой статье.

Читать далее
Total votes 48: ↑45 and ↓3+47
Comments139

Вышел Firebird 5.0

Reading time18 min
Views11K

11 января 2024 года, выпущен Firebird 5.0 — восьмой основной выпуск СУБД Firebird, разработка которого началась в мае 2021 года. В Firebird 5.0 команда разработчиков сосредоточила свои усилия на повышении производительности СУБД: параллельное выполнение backup, restore, sweep, создания и перестроение индексов, улучшение масштабирования в многопользовательской среде, ускорение повторной подготовки запросов (кеш компилированных запросов), улучшение оптимизатора, улучшение алгоритма сжатия записей. Кроме того, появились и новые возможности в языке SQL и PSQL.


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


Базы данных, созданные в Firebird 5.0, имеют версию ODS (On-Disk Structure) 13.1. Firebird 5.0 позволяет работать и с базами данных с ODS 13.0 (созданные в Firebird 4.0), но при этом некоторые возможности будут недоступны.


Для того чтобы переход на Firebird 5.0 был проще, в утилиту командной строки gfix был добавлен новый переключатель -upgrade, который позволяет обновлять минорную версию ODS без длительных операций backup и restore.


Также хочется отметить тот факт, что новый релиз Firebird доступен сразу на 11 платформах, включая ARM для Linux и Android. Скачать готовые сборки и дистрибутивы можно по адресу https://firebirdsql.org/en/firebird-5-0/.


Далее я перечислю ключевые улучшения, сделанные в Firebird 5.0, и их краткое описание. Подробное описание всех изменений можно прочитать в Firebird 5.0 Release Notes. Кроме того подробный разбор новых функций Firebird 5.0 вы можете найти в серии статей на ресурсе ibase.ru.


Читать дальше →
Total votes 36: ↑36 and ↓0+36
Comments21
1
23 ...

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity