Pull to refresh
32
1
Константин @Cerberuser

Разработчик, экспериментатор

Send message

Тинькофф дает противоречащие ответы Роскомнадзору и ЦБ РФ в части дачи клиентом согласия на обработку его биометрии

Reading time 5 min
Views 29K

В ответ на статьи «Тинькофф-банк» собирает согласие на обработку биометрии клиентов при вводе пин-кода в новом приложении или банкомате и Сделаем для вас биометрию. Отказаться не получится хотел бы добавить интересные новости о том, как «Тинькофф» дает противоречащие ответы Роскомнадзору и ЦБ РФ в части дачи клиентом согласия на обработку его биометрии.

Читать далее
Total votes 259: ↑259 and ↓0 +259
Comments 71

Поговорим об оптимизирующих компиляторах. Сказ седьмой: борьба с проверками диапазонов

Level of difficulty Medium
Reading time 10 min
Views 6.1K

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

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

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

Level of difficulty Easy
Reading time 8 min
Views 32K

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

Читать далее
Total votes 79: ↑63 and ↓16 +47
Comments 96

Эйлер, Чёрч и Мандельброт — этюд о красоте и математике

Level of difficulty Easy
Reading time 8 min
Views 12K

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

В начале 90-х годов XX века немецкий информатик Юрген Шмидхубер представил невероятно красивую и математически строгую теорию математической красоты. Согласно этой теории людям кажутся красивыми сложные объекты, обладающие наименьшей алгоритмической сложностью. Эта величина, также известная как колмогоровская сложность, названа в честь впервые описавшего её советского математика Андрея Колмогорова.

Читать далее
Total votes 66: ↑64 and ↓2 +62
Comments 28

Водород

Reading time 14 min
Views 52K

По революционным праздникам в СССР проводились торжественные демонстрации. Для взрослых участие нередко было обязательным. Ну а детям -- им, что ни праздник, всё в радость. Торжественная обстановка, можно помаршировать со взрослыми в стройных колоннах, покричать "ура", поразмахивать красными флажками и надувными шариками...

Шарики. Кажется, именно с них-то всё и началось.

Согласно советским открыткам, демонстрация должна была выглядеть как-то так:

Читать далее
Total votes 293: ↑289 and ↓4 +285
Comments 206

Цветные функции: ищем плохие архитектурные паттерны

Reading time 6 min
Views 15K

Когда у языка нет цветовой дифференциации функций… то у языка нет цели?

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

Если немного расширить понятие функции (ввести атрибут «цвет»), можно описывать паттерны вида «вызывать логгер из performance-critical мест — это плохо» или «ходить в базу при рендеринге шаблонов запрещено».

Идея абсолютно не зависит от языка и применима к любому: хоть JS, хоть Go. Разберу её подробно в статье, и это будет интересно больше с теоретической точки зрения. Хотя мы даже сделали практическую реализацию для PHP, чтобы использовать у себя. Ссылки на GitHub и видео приложу в конце, а пока обо всём по порядку.

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

Как отлаживать bash-script-ы по шагам или, возможно, самая короткая статья о программировании/отладке на Хабре

Reading time 1 min
Views 41K

Мне всегда хотелось иметь возможность отлаживать bash-scripts так же, как и любой другой код, т.е. по шагам, и bash такую возможность предусмотрел, но о ней не все знают. Несмотря на довольно большой опыт использования Linux, я дошёл до неё только недавно.

Читать далее
Total votes 190: ↑189 and ↓1 +188
Comments 37

Властелин структур

Reading time 15 min
Views 10K

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

Читать далее
Total votes 22: ↑22 and ↓0 +22
Comments 42

Среднее степенное, как показатель пессимизма человека

Reading time 2 min
Views 2.3K

Disclaimer: пост пятничный, всерьёз не принимать.

Хронологически всё началось с Wordle. Про эту внезапно популярную игру говорили из каждого утюга, делались ролики на youtube, писались боты (а потом из каждого утюга и youtube рассказывали про этих ботов). Даже на Хабре появилось несколько статей на тему. Я тоже сыграл несколько раз.

В какой-то скучный выходной я не выдержал и захотел уже найти оптимальное слово, с которого надо начинать игру. Оптимальное — значит максимально уменьшающее пространство поиска, после которого в среднем останется как можно меньше слов, подходящих под ответ. Про саму программу я писать особо не буду, там все довольно просто, перебирается в лоб, код одноразовый, пишется минут за 10-15, считает секунд 15-20. Нашёл roate, потом оказалось, что можно было просто нагуглить.

Потом решил найти два стартовых слова, это уже считалось подольше, нашло пару carse + doilt, после которой в среднем останется всего четыре слова. И тут Остапа понесло.

Эти слова — оптимальные в среднем. А какие слова будут лучшими даже в самом худшем случае? Чтоб не тянуть интригу — это serai и пара tired + loans. Даже в самом худшем случае, какое бы слово не было бы загадано, после tired loans гарантировано останется не более 16 слов. Это результат для самых отъявленных пессимистов, которые всегда ожидают самого худшего.

Эти программы как перебирают — для каждого возможного слова из множества отгадок (или для каждой пары) перебирают все возможные загаданные слова и считают сколько подходящих слов должно остаться после ответа игры. И считают среднее или берут максимум. Но ведь кроме среднего реалиста и крайнего пессимиста могут быть и всякие промежуточные варианты. Можно ли как-то этот расчет обобщить?

Можно!
Total votes 8: ↑7 and ↓1 +6
Comments 1

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

Reading time 3 min
Views 51K

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

Вероятно, заголовок сбивает с толку, может показаться что это какой-то кликбейт. Но так вы сможете себе лучше представить мои эмоции, когда у меня спросили: «А откуда у нас в проекте котлеты?»

Понятное дело, что проект бы вряд ли от этого погиб, но, когда непонятные ошибки выпрыгивают накануне приёмо-сдаточных испытаний – относишься к ним соответственно. Да и как посмотреть в глаза заказчику, когда у тебя «котлеты»?!

Что там за котлеты ещё?
Total votes 288: ↑285 and ↓3 +282
Comments 108

Ошибки, которые не ловит Rust

Reading time 61 min
Views 19K

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

В конечном итоге, возможности того, что можно сделать при помощи языка программирования, редко ограничены самим языком: нет ничего, что можно сделать на C++, но нельзя повторить на C, при наличии бесконечного количества времени.

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

На самом деле, достаточно лишь команды mov.

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

Кроме того, есть такие аспекты, как производительность, отладкопригодность (если такого слова нет, то его стоит придумать) и дюжина других факторов, которые стоит рассмотреть при «выборе языка».
Читать дальше →
Total votes 74: ↑70 and ↓4 +66
Comments 12

Охотничьи истории

Reading time 10 min
Views 4.1K

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

Так сложилось, что бо́льшую часть своей жизни я провел в финтэке, поэтому все истории связаны с банками и/или финансами, так что иногда удавалось нанести вполне реальный ущерб. Истории в хронологическом порядке, при этом самая "тяжелая" - последняя, что логично, с накоплением опыта инженер может нанести больше вреда. Истории эти старые, так что не исключено, что какие-то детали я забыл или переврал - это не специально.

Читать далее
Total votes 31: ↑31 and ↓0 +31
Comments 8

[Окончание] Новогодний детектив: странный хайзенбаг в «питоньих» часах

Reading time 12 min
Views 3.8K


Здесь лежит окончание "расследования" Новогодний детектив: странный хайзенбаг в «питоньих» часах.
Изначально хотел просто обновить статью и написать соответствующий комментарий, но понял что апдейт выходит чуть не длиннее самой статьи.


Напомню краткое содержание предыдущей части: python, как впрочем и всё на нем написанное, временами прыгает в будущее, а конкретно в 2023-й год в локальной временной зоне, и по некоторым данным в 2024-й в UTC/GMT (но это не точно) и побыв там некоторое время возвращается обратно в настоящее.


Во время прыжка оно ведет себя довольно стабильно (т.е. считает нано-, микро- и миллисекунды, а то и секунды, как будто время идет как ни в чём не бывало) в 2023-м т.е. локально, при том что в результате повторных прыжков время вновь продолжается как будто по возвращению оно (время) течет в какой-то параллельной вселенной. Однако странное его "отражение" в UTC/GMT, ну то что как будто бы в 2024-м, выглядит менее стабильно, ибо для него наблюдается странные дрейфы дополнительно к смещению прыжка.


Хотя куда уж страннее.

Читать дальше →
Total votes 17: ↑15 and ↓2 +13
Comments 9

Погромист. Мои самые эпичные провалы за всю карьеру

Reading time 13 min
Views 103K

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

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

Читать далее
Total votes 287: ↑278 and ↓9 +269
Comments 204

В поиске почти тонкого множества целых

Reading time 4 min
Views 4.3K

Если не бухать, то чем ещё заняться на новогодних праздниках, если у тебя нету девушки, как не абстрактной математикой и теорией чисел в частности?

Я решил с помощью вычислительных и аналитических методов нащупать границу между 'большими' и 'тонкими' бесконечными множествами натуральных чисел. Что это? Объясню под катом.

Читать далее
Total votes 23: ↑22 and ↓1 +21
Comments 6

Хватит совать в детей интерфероны

Reading time 9 min
Views 118K
Интерфероны? Да в задницу их!


Это, как многие думают, концентрат иммунитета. Коротко — нет.

Что происходит:

  1. Ребёнка с симптомами ОРВИ приводят к педиатру.
  2. Педиатр прописывает витамин С, разбавленный сахар и интерферон в форме ректального суппозитория. Если витамин С и дорогой сахар в целом безопасны, то вот с интерфероном это далеко не так.
  3. Уровень интерферона в крови — это сложнейшая система, дающая сигнал к запуску процесса иммунного ответа, связующее звено врождённого и приобретённого иммунитета, но добавление интерферона в организм не означает, что иммунитет будет «сильнее». Упрощая, интерфероны тормозят работу заражённых клеток и дают другим клеткам вокруг поражённой вирусом сигнал, что произошло вторжение, останавливают деление вируса внутри клетки и стимулируют работу Т- и В-лимфоцитов. Так же они способны влиять на деление клеток, что важно при онкологии, например.

Изначально этот класс белков случайно открыли в 1957 году вирусологи Алик Айзекс и Жан Линдеман. У них возникла проблема с мышами, которые не заболевали при введении вируса. Как выяснилось позже, причина была в том, что эти мыши уже болели другой вирусной инфекцией, что приводило к выбросу белков ранее неизвестного класса — интерферонов. Поначалу казалось, что наконец найдено универсальное решение против вирусных болезней, но, как обычно, дальнейшие исследования выявили множество ограничений. Например, при введении серьёзных дозировок интерферона альфа можно получить жёсткую депрессию, биполярное расстройство и другие ментальные нарушения вплоть до бреда и галлюцинаций.

Поэтому сегодня я попробую объяснить, почему этот класс препаратов вовсе не добрые капельки от гриппа, а серьёзное лечение с кучей побочных эффектов. Ну и бесполезность введения его в нос и per rectum тоже затронем.
Читать дальше →
Total votes 196: ↑188 and ↓8 +180
Comments 231

Новогодний детектив: странный хайзенбаг в «питоньих» часах

Reading time 8 min
Views 15K


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


Далее собственно детектив как оно есть, "расследование" которого ещё не окончено, можно присоединиться кстати… Пост будет обновляться, по окончанию (я надеюсь что баг таки найдётся) пост изменит название получив префикс "[SOLVED]"...
Продолжение и надеюсь окончание истории см. в этом посте.


Постучался тут человечек на GH, с ошибкой типа "Fail2ban ведет себя как-будто он временами в будущем". Первой мыслью было — что опять! ну снова кто-то во временных зонах потерялся.
Но нет, всё оказалось несколько хуже — иногда, редко, Fail2ban пишет в логи дату из 2023-го года.
И не только пишет, а по всей видимости действительно начинает считать что он где-то в 2023-м, со всеми вытекающими — снятием бана для блокированных адресов по истечению срока действия и т.д. и т.п.
Причем делает это для всех потоков, а чуть позже возвращается в 2021-й, чтобы позднее снова на короткое время прыгнуть в 2023-й и так снова и снова.

Читать дальше →
Total votes 58: ↑58 and ↓0 +58
Comments 42

Гипотеза Коллатца — самый крутой математический фокус всех времён

Reading time 4 min
Views 115K

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

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

Читать далее
Total votes 84: ↑78 and ↓6 +72
Comments 105

Information

Rating
1,335-th
Location
Новосибирск, Новосибирская обл., Россия
Date of birth
Registered
Activity

Specialization

Fullstack Developer
Senior