Как стать автором
Обновить
18
0
Арсений Жижелев @primetalk

Scala архитектор

Отправить сообщение

Мой «Евротур» по сектам: путешествие в один конец?

Уровень сложностиПростой
Время на прочтение28 мин
Количество просмотров101K

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

И течение трех лет я целенаправленно ходил во все места, где меня могли обмануть или сломать, ввести в заблуждение, разрушить мою личность и вовлечь в незаконную деятельность. Я внимательно слушал, записывал и даже иногда срывал занятия. Это мой «Евротур» и моя исповедь диверсанта. А в конце вас ждет бонусная история от февраля 2022 года, которая связана с манипуляцией и давлением, но уже не со стороны сект ;)

Очень долго читать
Всего голосов 322: ↑309 и ↓13+368
Комментарии324

Как я намайнил первое* в мире биткоин**-стихотворение

Уровень сложностиПростой
Время на прочтение15 мин
Количество просмотров9.5K

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

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

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

Испить мёда поэзии
Всего голосов 90: ↑84 и ↓6+107
Комментарии46

Железнодорожно-ориентированное программирование. Обработка ошибок в функциональном стиле

Время на прочтение11 мин
Количество просмотров21K

Как пользователь я хочу изменить ФИО и email в системе.

Для реализации этой простой пользовательской истории мы должны получить запрос, провести валидацию, обновить существующую запись в БД, отправить подтверждение на email пользователю и вернуть ответ браузеру. Код будет выглядеть примерно одинаково на C#:

string ExecuteUseCase() 
{ 
  var request = receiveRequest();
  validateRequest(request);
  canonicalizeEmail(request);
  db.updateDbFromRequest(request);
  smtpServer.sendEmail(request.Email);
  return "Success";
}

и F#:

let executeUseCase = 
  receiveRequest
  >> validateRequest
  >> canonicalizeEmail
  >> updateDbFromRequest
  >> sendEmail
  >> returnMessage
Читать дальше →
Всего голосов 18: ↑16 и ↓2+14
Комментарии15

Наиболее распространённые мифы о Scala: сеанс с разоблачением

Время на прочтение9 мин
Количество просмотров5.6K
image

В этом посте развенчивается ряд очень существенных мифов о языке Scala, которые, как нам известно, циркулируют в блогосфере. Для каждого развенчанного мифа мы представим альтернативную точку зрения, подкреплённую данными из надёжных источников.
Читать дальше →
Всего голосов 16: ↑14 и ↓2+17
Комментарии20

Вы неправильно пишете животных

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


Уязвимость рекурсивных алгоритмов навигации муравья: спираль смерти

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

Но пойдём далее. Я не знаю, кто разрабатывал архитектуру ящериц, но они бегают в одном процессе, а дышат в другом. При этом платформа не поддерживает многозадачность, поэтому костыль с максимальной длиной бега в 4-6 секунд просто эпичен.
Читать дальше →
Всего голосов 442: ↑438 и ↓4+434
Комментарии352

Дей-трейдинг и торговля с плечом. Сколько можно заработать?

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров43K

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

Вы можете найти сотни людей выкладывающих фото и видео на дорогих машинах, в окружении красоток и красавцев из США/Милана/Англии и т. д. Такие материалы чаще всего сопровождаются подписью «ещё одна успешная сделка +80% к капиталу» или «поднял за месяц 40%, можно и отдохнуть».

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

Читать далее
Всего голосов 106: ↑101 и ↓5+116
Комментарии199

Руны и лёд: техническое собеседование по TypeScript

Время на прочтение6 мин
Количество просмотров14K

Крисс проводит тебя в комнату для совещаний.

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

«Как дела?», — спрашивает он.

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

«Действительно, как?», — улыбаешься ты.

«… хм, отлично. Ну, приступим?»

Ты утвердительно киваешь.

«Хорошо. Мы займёмся небольшой программной головоломкой, чтобы я понял, как ты умеешь решать задачи. Не волнуйся, если не получится сделать это упражнение, мне главное понять, как ты мыслишь и общаешься».

Волноваться? Ты с трудом вспоминаешь это ощущение. Возможно, оно осталось в твоей юности, когда ты зимовал на Свальбарде* с медведями. Ещё до того, как ты понял сейд.
Читать дальше →
Всего голосов 40: ↑39 и ↓1+47
Комментарии14

GPT-3. Есть проблема побольше, чем потеря рабочих мест

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров74K

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

Поэтому расскажу три прогноза оттуда здесь. Они хорошо перекликаются с хайпом вокруг GPT-3 и позволяют по-новому взглянуть на всё, что происходит.

///

Прогноз первый. Нейросеть-президент.

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

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

Моральная проблема чуть сложнее. Звучит она примерно так: “Чтоооо?! Да никогда мы не позволим компьютеру принимать столь важные решения!”. Давайте все дружно крикнем вслух, как называется решение этой проблемы. Раз! Два! Три! Беспилотное Такси!

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

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

Ещё два предсказания
Всего голосов 165: ↑132 и ↓33+128
Комментарии766

Игра «Жизнь» — как собрать произвольный шаблон всего из 15 глайдеров

Время на прочтение18 мин
Количество просмотров11K

В сообществе игры «Жизнь», изобретённой Джоном Конвеем, отмечали знаковое достижение, совершённое 9 ноября 2022 года. Идея, на воплощение которой ушли годы – проект «обратный шестометатель» — наконец дошла до той стадии, когда в наличии имелись все компоненты для этой сущности, позволявшие достичь заявленной цели.  

Цель проста. Выбираем любой шаблон, который можно собрать в «Жизни» - например, Тихоходку. Начинаем с небольшого количества шаблонов (пока 15), так, чтобы в пустой вселенной для «Game of Life» присутствовали только они. С течением времени из этих глайдеров должен собраться данный шаблон. Никакого остаточного мусора, разбросанной основы – только чистый синтез того, что вы выберете. Данный пост рассказывает, как устроен этот механизм, как мы до него дошли, и почему это так круто.

Читать далее
Всего голосов 56: ↑49 и ↓7+66
Комментарии20

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

Время на прочтение23 мин
Количество просмотров231K

Я люблю давать простые задачки студентам на лекции. Во-первых, понятно, скольких мы потеряли, во-вторых, это переключение из режима потребления информации в режим выдачи результатов, в третьих — возможность проявить себя для шустрых. Сплошные плюсы!

Одна из простых задач звучит так: «При переводе картинки из цветового пространства RGB в YUV мы выполняем прореживание, то есть выкидываем каждый четный столбец и каждую четную строку в компонентах U и V (все компоненты пикселя по 1 байту). Вопрос: во сколько раз меньше данных у нас стало?» Эта операция называется chroma subsampling и широко используется при сжатии видео, например.

Забавно, что когда-то давно, когда винчестеры были меньше, а дискеты больше, студенты реально отвечали на этот вопрос быстро. А в последние годы регулярно народ в ступор впадает. Приходится разбирать по частям: «Если выкинуть каждую четную строку и каждый четный столбец, во сколько раз меньше данных будет у компоненты?» Почти хором: «В четыре». Начинаю подкалывать: «Отлично! У нас было 3 яблока, первое осталось как есть, а от второго и третьего осталось по четвертинке. Во сколько раз меньше яблок у нас стало?» Народ ржет, но, наконец-то, дает правильный ответ (заметим, не все). 

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

И хорошо видно, как эта способность в широких массах студентов заметно плавно падает. Причем не только в нашей стране. Придуман даже специальный термин: «цифровое слабоумие» ("digital dementia") — снижение когнитивных способностей, достаточно серьезное, чтобы повлиять на повседневную деятельность человека. 

Кому интересно как теряют мозг студенты масштабы бедствия и что с этим делать — добро пожаловать под кат!

Читать далее
Всего голосов 324: ↑308 и ↓16+373
Комментарии795

Поиск в глубину, поиск в ширину, алгоритмы Дейкстры и А* — это один и тот же алгоритм

Время на прочтение7 мин
Количество просмотров17K

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

Читать далее
Всего голосов 31: ↑26 и ↓5+29
Комментарии21

Потоковая обработка на go1.18

Время на прочтение7 мин
Количество просмотров5K

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

Читать далее
Всего голосов 7: ↑6 и ↓1+5
Комментарии6

Крякнул софт? Суши сухари

Время на прочтение5 мин
Количество просмотров39K

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

С 1997 года в своде законов российских дремлет статья 273 УК РФ (Создание, использование и распространение вредоносных компьютерных программ), карающая не чтившего уголовный закон наказанием вплоть до семи лет лишения свободы.  Судебную практику по данной статье объективно не назовешь обширной, но изучение реальных случаев её применения должно вызывать дрожь и трепет у всякого, возложившего руки на клавиатуру.

Читать далее
Всего голосов 63: ↑52 и ↓11+54
Комментарии188

Кинотерапия — более 150 фильмов, которые пересматривают

Время на прочтение6 мин
Количество просмотров53K

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

Для начала отделим мух от котлет. Психолог, психотерапевт, психиатр и невролог чем они отличаются? Самое простое отличие в том, что психолог не является врачом. Психотерапевт, психиатр и невролог - это врачи.

Читать далее
Всего голосов 48: ↑24 и ↓24+6
Комментарии141

Некомпетентные компетенции

Время на прочтение44 мин
Количество просмотров59K

Поводом для написания этой статьи послужил случай, когда сотрудники нашего HR-отдела предложили мне взять в нашу проектную группу Департамента разработки программного обеспечения ЛАНИТ на производственную практику выпускника одного из московских техникумов.  Кандидат обучался четвертый год по специальности «Прикладная информатика» и, судя по резюме, претендовал на должность «стажера-разработчика SQL, С#, HTML, CSS». Он уже прошел предварительные собеседования и, по словам наших кадровиков, показал себя наиболее адекватным из 15 других претендентов. Поскольку у меня это был не первый случай руководства практикой у студентов и предыдущие прецеденты имели положительный результат, я согласился.

Читать далее
Всего голосов 162: ↑149 и ↓13+168
Комментарии309

Потоковая обработка данных в go

Время на прочтение5 мин
Количество просмотров7.8K

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

С выходом Go 1.18 появилась возможность реализовать библиотеку потоковой обработки данных goio, вдохновлённую превосходными Scala-библиотеками cats-effect и fs2.

Читать далее
Всего голосов 15: ↑13 и ↓2+13
Комментарии4

Как врать с помощью статистики

Время на прочтение4 мин
Количество просмотров22K

"Существуют три вида лжи:

- ложь

- наглая ложь

- пропаганда статистика

- источник цитаты в интернете"

Марк Твен (ну или не он)

В данной статье мы рассмотрим, как можно быстро доказать следующие утверждения, смотря на один и тот же источник данных:

- Лошади бегают по часовой стрелке быстрее чем против

- Лошади бегают против часовой стрелки быстрее чем по часовой

- Лошади бегают на более дальние дистанции быстрее (с большей скоростью), чем на короткие

- Лошади бегают на более дальние дистанции медленнее (с меньшей скоростью), чем на короткие

На картинке изображена лошадь на плато (что очень важно для текста статьи)

Read more
Всего голосов 78: ↑78 и ↓0+78
Комментарии26

Лямбда-исчисление в 397 байтах

Время на прочтение22 мин
Количество просмотров15K

Лямбда-исчисление — это язык программирования с единственным ключевым словом. Это асфальтовая топь Тьюринга, обнаруженная научным руководителем Тьюринга. В этом посте я расскажу о совершенно новой 397-байтной реализации двоичного лямбда-исчисления в виде Linux ELF для x86-64. Также в нём представлены удобно портируемый код на C и собранные двоичные файлы APE для других платформ.
Читать дальше →
Всего голосов 51: ↑50 и ↓1+68
Комментарии13

Ложь из солидарности: как Thawte убила «систему доверия» в Интернете

Время на прочтение6 мин
Количество просмотров97K

Отзыв TLS-сертификатов у российских подсанкционных банков – это конец «системы доверия» в Интернете в том виде, как мы ее знаем. Ящик Пандоры открыт.
Читать дальше →
Всего голосов 166: ↑136 и ↓30+147
Комментарии348

Нет, Open Source не означает «бесплатная поддержка»

Время на прочтение6 мин
Количество просмотров29K
Год назад разработчик опенсорсной программы Raccoon APK Downloader заявил, что отныне приём баг-репортов — это часть платной поддержки. Идея обсуждается до сих пор и вызывает споры по понятным причинам. С одной стороны, это как-то контринтуитивно… С другой стороны, определённая логика тоже есть… В общем, судите сами, вот оригинальная заметка Патрика Альбрихта, её бурное обсуждение и пояснение позиции по итогам обсуждения.

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

Юзер:	Здравствуйте, хочу зарепортить баг в вашей программе.
Я:		Отлично! Для этого откройте тикет, пожалуйста.
Юзер:	Но тикеты вроде входят в платный пакет?
Я:		И?
Юзер:	Просто хочу сказать, что ваша программа сломана, чтобы вы могли починить её.
Я:		Да, с вашей стороны это запрос на поддержку. Пожалуйста, откройте тикет.
Юзер:	…бл%$#%$...
Читать дальше →
Всего голосов 149: ↑146 и ↓3+185
Комментарии74

Информация

В рейтинге
Не участвует
Откуда
Воронеж, Воронежская обл., Россия
Зарегистрирован
Активность

Специализация

Backend Developer, Software Architect
Lead
От 700 000 ₽
Git
Linux
Docker
PostgreSQL
Golang
Scala