Search
Write a publication
Pull to refresh
1
0
Send message

Про плоскостопие

Level of difficultyEasy
Reading time21 min
Views4.1K

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

Прочитать невроятно нудную статью

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

Reading time4 min
Views37K
Любая система, работающая с платежами, должна быть надежной и отказоустойчивой.

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

Сейчас покажу, как это сделать.
Читать дальше →

Какие проблемы создает использование ИИ программистами

Level of difficultyEasy
Reading time8 min
Views21K

Недавно посмотрел на ютубе видео, в котором поднимается проблема того, что на место классических программистов‑кодеров приходят «программисты»‑prompt‑инженеры.

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

И рассуждения я начну с вопроса — «ну и в чем проблемы?»

Перейти к статье

Зависимость от трейдинга: как миллионы людей теряют годы и состояния на торговле

Reading time16 min
Views37K

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

Читать далее

Postgres как поисковый движок

Reading time12 min
Views11K

Поиск — это сложно. Важная часть многих приложений, которую нелегко реализовать правильно. Особенно в случае с RAG-пайплайнами, где на качество поиска завязан весь процесс.

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

Эрик Закариассон, разработчик и автор блога Anyblockers, рассмотрел в своей статье, как использовать Postgres для создания надёжной поисковой системы. В рамках задачи автор объединил три техники:

1. Полнотекстовый поиск с tsvector

2. Семантический поиск с pgvector

3. Нечёткое сопоставление с pg_trgm

4. Бонус: BM25

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

Читать далее

Как пройти алгоритмическое собеседование: полный гид по алгоритмам, сложностям и стратегиям

Reading time31 min
Views43K

Не тратьте время на задачи – сначала разберитесь в основах. В статье:

1. Как проходят собеседования (ВАЖНО!)
2. Big O, оценка сложности алгоритмов
3. Популярные техники: два указателя, DFS, динамическое программирование и другие
4. Какие задачи решать, чтобы пройти в Яндекс

Читаем, практикуемся, получаем оффер!

Читать далее

Сигма-мужики: как образ гигачада-одиночки завирусился, всех возмутил и превратился в мем зумеров?

Level of difficultyEasy
Reading time12 min
Views20K

В начале 2025 года очередной клип на Тиктоке вызвал новую волну хайпа. Песня «Сигма-бой» российских исполнительниц Betsy и Марии Янковской вышла ещё в октябре 2024-го и собрала огромное количество просмотров, репостов и перепевок. Однако только в январе 2025-го её заметили политики и принялись призывать запретить: этим отметились и особо прогрессивные депутаты Европарламента, и российские ультраконсерваторы из «Сорока сороков», и украинские силовики. Как подростковая песня умудрилась сплотить против себя настолько полярные силы, почему символом сильного и независимого мужика стал карикатурный психопат-убийца, и как получилось, что различные группы обитателей сети понимают под «сигмами» очень разные вещи?
Читать дальше →

Почему нам всем стоит отказаться от соцсетей в пользу RSS

Level of difficultyEasy
Reading time6 min
Views22K
«Вот бы существовал способ попроще...»

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

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

Однако я наткнулся на относительно малоизвестную сегодня старую бесплатную и опенсорсную технологию, которая ДОЛЖНА стать решением проблем современных медиа без потери доступного качественного контента. Это RSS.
Читать дальше →

Ошибки инженеров в больших кодовых базах

Level of difficultyEasy
Reading time6 min
Views9.5K

Работа с крупными устоявшимися кодовыми базами — один из самых сложных навыков, осваиваемых разработчиком ПО. Его невозможно практиковать заранее (нет, опенсорс не даст вам этого опыта). Личные проекты не научат этому, потому что они по определению маленькие и реализуются с нуля. Нужно уточнить, что когда я говорю «крупные устоявшиеся кодовые базы», то имею в виду следующее:

- От одного до десятка миллионов строк кода (допустим, примерно пять миллионов)

- Примерно от 100 до 1000 разработчиков, работающих над одной кодовой базой

- Первая работающая версия кодовой базы была выпущена как минимум десять лет назад

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

Читать далее

Создаем эмулятор Sega Mega Drive на C++

Level of difficultyMedium
Reading time26 min
Views31K

В этой статье описано создание эмулятора 16-битной приставки Sega Mega Drive на C++.

Будет много интересного: эмуляция процессора Motorola 68000, реверсинг игр, графика на OpenGL, шейдеры, и многое другое. И все это на современном C++. В статье много картинок, можно хоть на них посмотреть.

Blast Processing!

Энтропия – это мера того, как мало мы на самом деле знаем

Level of difficultyMedium
Reading time20 min
Views23K

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

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

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

Читать далее

Почему джуны путаются в асинхронном коде (и как научиться с ним работать)

Level of difficultyEasy
Reading time8 min
Views44K

Асинхронный код часто становится камнем преткновения для начинающих разработчиков. Почему функции выполняются не в том порядке, зачем нужны промисы, и что делает async/await? В статье я простыми словами объясняю:

Как работает Event Loop и почему это важно.
Какие ошибки чаще всего допускают джуны при работе с асинхронностью.
Как научиться писать понятный и предсказуемый асинхронный код.

Если асинхронность вызывает больше вопросов, чем ответов, загляните в статью - там всё по шагам. 🙂

Читать далее

Более 14 лет ставлю цели на год: рассказываю, как и почему этот процесс работает у меня

Reading time14 min
Views65K

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

Читать далее

Оптимизация запросов SQL Server V/S PostgreSQL: есть куда расти?

Level of difficultyHard
Reading time15 min
Views9.1K

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

Здесь я привожу четыре случая, когда SQL Server позволяет строить планы запросов значительно более оптимальные, нежели это доступно PostgreSQL используя как более широкое пространство возможных планов, так и более совершенные методы оценок эффективности планов. Эти примеры: использование тредов, расширенная статистика, кэширование промежуточных результатов запроса и внутренняя параметризация. Примеры независимы и все кроме первого содержат скрипт воспроизведения - можно сразу листать на ту часть, которая выглядит интереснее.

Полагаю, знание о таких кейсах может быть полезным. Как минимум уменьшит количество стресса при миграции на PostgreSQL и возможно заинтересует кого-то настолько, чтобы начать свой проект в open-source сообществе разработчиков СУБД.

Читать далее

Фундаментальная математика — теория всего в IT и не только. Теория типов и формализация в Coq

Reading time38 min
Views15K

У нас есть 3 "теории всего" - научная картина мира (все сводится к законам физики), информатика (все сводится к битам) и фундамент математики (все сводится к логике). Именно фундамент математики представляет особый интерес, так как он является фундаментом для двух других фундаментов и имеет глубокий философский смысл. Последние 2 года я сильно им увлекся и проделал довольно большую работу по углубленному изучению теории типов (Calculus of Constructions), и готов поделиться результатами, а также рассказать о девяти направлениях, где можно применить это на практике. Очень многое получилось лучше, чем я планировал. Изначально перспективы были не очень понятными, и поэтому я не рассказывал друзьям и коллегам про мою работу в этом направлении и называл это «Секретный Проект». Но теперь, когда многое прояснилось и получилось, можно поделиться успехом. Собственно, в этой статье я расскажу вам не только про сам фундамент математики, а еще его связь с ежедневной работой программиста, а также с Computer Science/Data Science и AI/ML. Я вам нарисую большую и красивую картину, на которой все понятно и логически следует из маленького набора правил выведений типов (11 штук) и аксиом теории множеств (9 штук).

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

Читать далее

Ошибки, которые я совершил, пытаясь быть «слишком правильным» в разработке

Level of difficultyEasy
Reading time5 min
Views28K

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

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

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

Читать далее

Work Life Balance: Исповедь красноглазика

Level of difficultyEasy
Reading time5 min
Views17K

Сегодня я выхожу в эфир со статьей, которая является неким потоком сознания. Сегодня не будет практической пользы, только мои размышления о Work Life Balance. Те, кто ждёт руководство или призыв к действию, проходите мимо! А те, кто остались, добро пожаловать на борт моего корабля. Мы отправляемся в круиз по волнам Work Life Balance, через рифы ночного кодинга прямиком на остров усталости!

Читать далее

Неочевидные для начинающих тонкости Postgres

Level of difficultyMedium
Reading time15 min
Views47K

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

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

За исключением… Postgres.

Не потому, что официальная документация несовершенна (она прекрасна!), просто её очень много. Если распечатать её как стандартный PDF на бумаге формата Letter, то получится 3206 страниц (для текущей версии 17)1. Разработчик-джун вряд ли сможет сесть и прочитать её с начала до конца.

1. Если печатать на бумаге A4, то получится 3024 страницы; наверно, это ещё один аргумент в пользу стандарта.

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

Надеюсь, это упростит процесс освоения для читателей моей статьи.

Стоит отметить, что многое из описанного может быть применимо и к другим системам управления базами данных (СУБД) SQL и вообще к базам данных в целом, но я слабо знакома с ними, так что не буду утверждать с уверенностью.
Читать дальше →

AI на фронтире кибервойны. Как LLM меняют ИБ-ландшафт

Level of difficultyMedium
Reading time11 min
Views5.4K

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

Представим, что мир ИИ застыл. Никаких революций, никаких сверхразумных AGI на горизонте. Сосредоточимся на анализе больших языковых моделей (LLM) и их влиянии на информационную безопасность. Конечно, выпуск новой мощной модели может разнести вдребезги все эти выкладки, но примем этот риск. Ведь с чего-то надо начинать.

В этой статье я рассмотрю, какие новые возможности открываются перед атакующими и защитниками, и что за вызовы стоят перед отраслью. Под катом вас ждет увлекательное путешествие на ИБ-фронтир.

Поехали!

Уже не джун, но знаний нужно всё больше. Как самостоятельно учиться сложным вещам

Reading time6 min
Views12K

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

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

Читать далее

Information

Rating
4,564-th
Registered
Activity