Pull to refresh
48
0
Андрей Кравчук @prefrontalCortex

Software Engineer

Send message

Древняя и новая история цистерцианских цифр

Reading time5 min
Views11K

Арабские цифры являются одной из наиболее долгоживущих и универсальных знаковых систем, распространённых во всём современном мире. Они до сих пор сосуществуют с римскими, конкуренцию у которых окончательно выиграли в Европе к XIV веку, поскольку римские цифры исключительно неудобны для арифметики и алгебры. Принципиально арифметика на римских цифрах возможна, она даже была однажды рассмотрена в статье из журнала «Наука и жизнь» за 1970 год. Именно в XIII-XIV веках римские цифры перестали удовлетворять потребностям бурно растущей европейской цивилизации (в римских цифрах даже отсутствовал феномен «0»). Им на смену пришли заимствованные индо-арабские цифры. Также как раз в период XIII-XIV века в Европе пытались изобрести систему цифр, которая либо устраняла бы недостатки римской, либо сочетала достоинства арабской и римской. Один из наиболее причудливых опытов такого рода — это цистерцианские цифры, о которых будет рассказано под катом   

Читать далее
Total votes 60: ↑58 and ↓2+79
Comments49

Иногда лучше делать, а не планировать

Level of difficultyEasy
Reading time7 min
Views45K

Пожилой рабочий на строительстве «Эмпайр-стейт-билдинг» в 1930 г., источник. Вся стройка от подготовки стройплощадки до торжественного запуска лифтов заняла 410 дней

В последнее время часто приходится слышать про новую модель управления — избыток административных кадров, не имеющих отношения к основному производству. К сожалению, это особенно ярко проявляется в IT-индустрии, где количество менеджеров среднего звена сильно превышает стандартные показатели. Например, в компании Google доля менеджеров уже достигла 15% от общей численности персонала, то есть по одному менеджеру на пять-шесть работников. Это заметно превышает средний показатель в сфере услуг 1 к 15.

Избыток менеджеров в компании ведёт к негативным последствиям:

  • засилье KPI с последующей деградацией продукта, которое по менеджерской логике должно увеличивать DAU;
  • деградация корпоративной культуры из-за офисных интриг и карьеризма;
  • снижение продуктивности разработчиков из-за бесконечных совещаний, созвонов, отчётности и использования ПО для «повышения эффективности» (таск-трекеры, тайм-трекеры, календари и проч.);
  • цифровое истощение и выгорание сотрудников.

Это стандартные издержки от переизбытка менеджеров. Иногда даже единственный менеджер приносит больше вреда, чем пользы.
Читать дальше →
Total votes 149: ↑138 and ↓11+164
Comments103

Зачем? И весь ужас удара бритвой по Оккаму

Level of difficultyEasy
Reading time11 min
Views26K

Самое страшное слово для инноватора или очень уж упёртого студента, который проходит практику у вас в компании: «Зачем?»

Знаете почему? Потому что в 80% случаев ответа вам на этот вопрос не дадут. Давайте разберёмся, причём здесь Оккам и что ему от нас нужно.

Давай, приступай
Total votes 147: ↑136 and ↓11+156
Comments161

Дзэн в искусстве программирования

Level of difficultyEasy
Reading time7 min
Views2.5K

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

Читать далее
Total votes 14: ↑12 and ↓2+11
Comments16

Хороший ретрай, плохой ретрай, или История одного падения

Level of difficultyMedium
Reading time17 min
Views41K

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

Меня зовут Денис Исаев, и я работаю в Яндекс Go. Сегодня я поделюсь опытом решения проблем с отказоустойчивостью из-за ретраев. Основано на реальных инцидентах в системе из 800 микросервисов.

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

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

В {n} раз быстрее Си

Level of difficultyHard
Reading time13 min
Views38K

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

Эта статья публиковалась на главной странице HackerNews, и к её обсуждению вы можете присоединиться здесь.
Читать дальше →
Total votes 117: ↑113 and ↓4+153
Comments300

YAML из Ада

Reading time9 min
Views63K

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

Данный пост является нытьём и он более субъективен, чем мои обычные статьи.
Читать дальше →
Total votes 172: ↑169 and ↓3+215
Comments186

Cloudflare положил наш сайт после того, как мы отказались выплатить 120 000 $ в течение 24 часов

Reading time9 min
Views124K
Я работаю системным оператором в довольно крупном онлайн-казино (мне представляется, что материал статьи может быть полезен читателям вне зависимости от их позиции касательно этичности казино в целом – упоминаю об этом просто для контекста). У нас около четырех миллионов активных пользователей в месяц. С Cloudflare мы охотно сотрудничаем с 2018 года по тарифу «Бизнес», который стоит 250 $ в месяц и предоставляет неплохие возможности, включая безлимитный трафик.

Нужно признать, 250 $ — невеликие деньги за те объемы трафика, которые мы прогоняли через Cloudflare. В основном мы используем Cloudflare для CDN (кэшируем весь свой статический контент) и для защиты от DDOS-атак – с этими задачами сервис хорошо справляется. Работать с ним просто, и обычно ни о чем не приходится особенно задумываться.

Я читал несколько статей на Hacker News, где рассказывалось, как в какой-то момент Cloudflare связывается с компаниями и начинает агрессивно навязывать корпоративный тариф на персональных условиях. Но я не ожидал, что всё будет настолько плохо.
Читать дальше →
Total votes 221: ↑213 and ↓8+247
Comments399

Что нужно знать, чтобы успешно пройти System Design Interview

Reading time16 min
Views36K

Для любого разработчика глубокое понимание основных принципов системного проектирования является необходимым условием для создания стабильных и масштабируемых программных систем, способных обеспечивать высокую производительность. Системное проектирование (System Design) включает разработку архитектуры и структуры программной системы, направленную на удовлетворение специфических требований и обеспечение требуемых показателей производительности.

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

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

Читать далее
Total votes 49: ↑47 and ↓2+56
Comments26

Сложнейшая проблема компьютерных наук: центрирование

Level of difficultyMedium
Reading time7 min
Views32K

Заявляю: «Мы, как цивилизация, разучились использовать центрирование». Ну то есть мы, конечно, знаем, как это делать — очень просто:

display: flex;
justify-content: center; /* Горизонтальное центрирование */
align-items: center; /* Вертикальное центрирование */

Не спрашивайте, почему вам нужно запомнить четыре слова вместо просто горизонтальное/вертикальное; всё равно лучше, чем было до этого.

Ещё можно использовать сетку:

display: grid;
justify-items: center; /* Горизонтальное центрирование */
align-items: center; /* Вертикальное центрирование */

Также не спрашивайте, почему выражение justify-content стало justify-items.
Читать дальше →
Total votes 194: ↑189 and ↓5+227
Comments56

Я скучаю по механикам из старых игр

Reading time13 min
Views74K

За время существования индустрии разработки игр формул разных механик, способных развлечь нас, придумали не одну сотню. Что-то умерло засветившись в паре игр, что-то ушло со временем, какие-то существуют до сих пор. Есть и такие, которые не просто выжили, но стали мейнстримом, хотя только портят нервы игрокам. Игровой дизайн большинства старых игр, от второго фолыча до первого FarCry и пятью активными перками, пусть и не был вершиной искусства - затягивал не хуже современных песочниц с миллионом активностей. Редкую игру захочется пройти второй раз, а как вспомню, что на прохождение можно потратить под сотню и больше часов - думаю, а оно мне действительно было надо? Можно же было заняться чем-то более интересным. Я знаю, чем закончился второй фолыч, знаю это уже четвертый раз, но каждый раз игра удивляет меня чем-то новым. А вот нового "Аватара" бросил на половине, слишком много всего и все недоделанное, и прозрачные стены... просто бич игры. И тут вопрос, чего-то не хватает в этой раздутой, перекачанной сотней механик игре? Только задумайтесь - в аватаре больше сотни основных механик, которые влияют на окружение. Может в играх что-то потерялось? Хотя "потерялось" - звучит странно - за столько лет индустрия только создала просто море всего нового. Статья ориентирована на "побурчать", так что не ждите каких-то великих секретов и тонкостей мастерства.

Раньше и флешки квадратнее были...
Total votes 135: ↑130 and ↓5+150
Comments457

Экзокосмонавтика и точки Лагранжа или держитесь подальше от суперземель

Reading time9 min
Views19K

Романтическая научная фантастика XX века, а тем более космооперы, по-видимому, почти не учитывали фактор существенного отличия гравитации у разных планет, на которые приходится эпизодически высаживаться или колонизировать их. Как я уже писал в некоторых публикациях, в особенности, «Суперземля как иллюзия» и «Гикеаны, потомки нептунов», мы в настоящее время настолько одержимы идеей, что среди экзопланет найдётся множество жизнепригодных или даже обитаемых, что на месте мининептуна всегда готовы увидеть суперземлю. Впрочем, такое заблуждение характерно не только для нашего времени. Ещё в начале XX века Венера считалась «юной сестрой» Земли (так как предполагалось, что, чем ближе планета к Солнцу, тем позже она сформировалась), что там может царить тропическая эра, подобная мезозою, шуметь экзотические леса, а обширные океаны из-за сильной минерализации могут быть наполнены «зельтерской водой». Климат Венеры и её парниковый эффект – тема для отдельной публикации, и пока ограничусь ссылкой на это исследование 2019 года, в котором выдвигается гипотеза, что бесконтрольный парниковый эффект на Венере существует лишь чуть более 700 миллионов лет, а до этого там могли существовать вполне комфортные для жизни условия. А в этой статье попробуем обсудить феномен гравитационных колодцев и их опасность при сближении с суперземлями. Отдельно поблагодарю уважаемого @ilmarinen за его интереснейшие публикации о гравитационных манёврах в ныне закрытом корпоративном блоге «Маклауд», под впечатлением от которых я взялся писать эту статью.     

Читать далее
Total votes 112: ↑110 and ↓2+139
Comments114

Лучшие практики для надёжной работы с RabbitMQ

Level of difficultyEasy
Reading time13 min
Views23K

Привет, Хабр! Я Женя, архитектор интеграционной платформы в Точке, отвечаю за асинхронный обмен сообщениями между внутренними сервисами, за ESB и за брокеры сообщений.

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

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

Следуй за белым кроликом
Total votes 58: ↑58 and ↓0+59
Comments16

Не исправил, а проработал принятие: как некоторые баги в играх стали фичами

Level of difficultyEasy
Reading time8 min
Views3.7K

Многие психологи советуют проработать принятие. Например, принятие своих ошибок. Некоторые разработчики игр восприняли это всерьёз и решили: "А почему бы и нет?", — и сделали свои промахи частью геймплея. Попробуем научиться на их опыте!

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

Ограничения в телеграм-бот (Bot API), о которых никто не расскажет

Level of difficultyEasy
Reading time2 min
Views21K

Привет! Меня зовут Оля, я программист учебного центра компании «Тензор».

В декабре 23-го мне поступила творческая задача разработать телеграм-бот для проведения новогоднего марафона-тренинга по личностному росту.

В этой статье расскажу о проблеме, с которой столкнулась при разработке телеграм-бота. Разберем ошибку 429 (Too Many Requests) и лимиты на доступ к API.

Читать далее
Total votes 78: ↑77 and ↓1+85
Comments37

Рекомендации при работе с PostgreSQL

Level of difficultyMedium
Reading time10 min
Views26K

Доброго времени суток. Основываясь на своём опыте хочу представить некоторые рекомендации при разработке кодовой базы на SQL.

Данные рекомендации получены горьким опытом, так что надеюсь, они Вам помогут :)

Читать подробнее и больше не косячить
Total votes 51: ↑48 and ↓3+51
Comments53

Абсолютный минимум об Unicode на 2023 год (всё ещё — никаких оправданий!)

Level of difficultyMedium
Reading time18 min
Views15K

Двадцать лет назад Джоэл Спольски написал: «Не существует такой штуки, как «обычный текст». Если имеется строка, но неизвестно, какую кодировку символов она использует — смысла в этой строке нет. Больше нельзя спрятать голову в песок и притвориться, что «обычный» текст имеет кодировку ASCII.»

Многое изменилось за 20 лет. В 2003 году главный вопрос звучал так: «Что это за кодировка?». В 2023 году такой вопрос больше не стоит: с вероятностью в 98% это — UTF-8. Наконец то! Можно снова спрятать голову в песок!

Читать далее
Total votes 40: ↑39 and ↓1+51
Comments47

Гений 21 века. Чем сейчас занимается Фабрис Беллар

Level of difficultyEasy
Reading time9 min
Views55K
Некоторые программисты настолько хорошо известны, что не нуждаются в особом представлении. Наверное, Фабрис Беллар — самая яркая звезда современности. Автор мультимедийного комбайна FFmpeg, эмулятора QEMU и десятков других полезных программ — абсолютный гений и пример программиста 100х, который в одиночку принёс больше пользы миру, чем многие корпорации с сотнями разработчиков. В общем, все знают Фабриса — про него ещё была статья на Хабре двенадцать лет назад…

… Но по просьбам молодых читателей мы решили вернуться к этой теме. Оно и к лучшему, ведь Фабрис многое сделал за это десятилетие, особенно в области нейросетей.
Читать дальше →
Total votes 156: ↑153 and ↓3+197
Comments49

Вы точно хотите пойти программистом в gamedev?

Level of difficultyEasy
Reading time17 min
Views74K

Хочу вас огорчить, программисты не делают игры - их делают дизайнеры и арт. Можно уволить программиста и на его место придет другой и через условные месяц-два-полгода начнет закрывать таски не хуже. Если увольняется дизайнер, его монстр, пушка или контент повисает без хозяина и без "видения". Если её не перехватил сосед (а у соседа свой монстр), то в большинстве случаев его работа просто уходит в стол и монстра пишут заново на тех же ассетах и принципах, но заново.

Если увольняется арт-директор, который несет "видение" проекта, то проекту становится очень плохо, в большинстве случаев визуально он изменится до неузнаваемости, хотя ассеты могут быть те же самые. Программисты делают всё, кроме самой игры: рендер, звук, физику, сеть, AI, инверсную кинематику, поиск пути и т.д. Можем подискутировать в комментариях.

O, тепленькая пошла!
Total votes 218: ↑214 and ↓4+259
Comments229

Как рисуется карта в Фараоне

Level of difficultyEasy
Reading time10 min
Views13K

В свободное время я восстанавливаю старенькую, но довольно известную игру Pharaoh. Это ситибилдер, выпущенный в прошлом веке и разработанный Impressions Games. Технология рендеринга в этой игре была значительным достижением для своего времени и способствовала созданию впечатляющей атмосферы Древнего Египта, которая погружает игрока в проработанное окружение, удивляет вниманием к мелким деталям и передает богатство и разнообразие древнеегипетских пейзажей. В этой статье я опишу алгоритм отрисовки города, зданий, объектов, анимации и формат карты оригинальной игры.

Городу нужно больше рабочих...
Total votes 83: ↑83 and ↓0+83
Comments56
1
23 ...

Information

Rating
Does not participate
Location
Подгорица, Подгорица, Черногория
Works in
Date of birth
Registered
Activity

Specialization

Software Developer, Fullstack Developer
Senior
From 5,000 €
Lisp
Clojure
Unix
Linux
Docker