Как стать автором
Обновить
14
0
Vladimir Zhilin @vzhilin

Программист

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

Единица по Бурбаки. Красота запредельной абстрактности

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

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

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

Аккуратный расчет (здесь вы найдете ссылку на статью) показывает, что, если развернуть эти сокращения, то длина этого знакосочетания представляет 2 409 875 496 393 137 300 000 000 000 000 000 000 000 000 000 000 000 000 знаков и 871 880 233 733 949 100 000 000 000 000 000 000 000 000 000 000 000 000 связей. Это безумное число. Если бы мы попробовали записать его обычным шрифтом, то это заняло бы сто миллиардов квинтиллионов квинтиллионов книг.

Первое впечатление (и, согласитесь, обоснованное) - дичайший формализм, доведенный до абсурда.

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

Читать далее
Всего голосов 44: ↑43 и ↓1+42
Комментарии63

Дональд Кнут: как я занялся анализом алгоритмов и ради этого поехал в СССР (37,91,97/97)

Время на прочтение10 мин
Количество просмотров31K
«Андрей (Ершов), представь, как было бы здорово организовать что-то вроде паломничества, где программисты со всего мира могли бы приехать в Хорезм и отпраздновать рождение этого понятия.»
— Дональд Кнут уговаривает Ершова организовать международный симпозиум

image
Кнут и Ершов

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

— Я думаю, я собираюсь стать программистом.
— О, так ты занимаешься численным анализом?
— Не совсем.
— Аааа, искусственный интеллект.
— Нет, и не искусственный интеллект.
— Тогда должно быть ты занимаешься языками программирования?
Всего голосов 58: ↑56 и ↓2+54
Комментарии13

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

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

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

Читать далее
Всего голосов 22: ↑22 и ↓0+22
Комментарии42

Применение онтологии к решению практических задач ИБ (часть 1)

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

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

Познакомиться с онтологиями
Всего голосов 7: ↑6 и ↓1+5
Комментарии9

Экосистема React в 2022 году

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

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

Читать далее
Всего голосов 28: ↑25 и ↓3+22
Комментарии60

Шесть уровней метавселенной математики

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

Когда я был маленький, я думал, что математика - это очень формальная наука. Как бы не так! Когда о нас, математиках, говорят как о сухарях — это ложь! (с) 17 мгновений весны.

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

Читать далее
Всего голосов 98: ↑95 и ↓3+92
Комментарии168

Знакомство с p-адическими числами. Часть 2, практическая

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


Эта часть продолжает неформальный рассказ о p-адических числах и она посвящена практическим аспектам работы с этой числовой системой и, в частности, некоторым деталям реализации p-адической алгебры на языке Haskell. О том, что это за система и зачем она может понадобиться, читайте в предыдущей части.


Мы поговорим об эффективном внутреннем представлении p-адических чисел, о базовых алгоритмах и методах работы с ними, а также о двух классных инструментах в системе типов языка Haskell: о типах-литералах (type literals) и семействах типов (type families).

Читать дальше →
Всего голосов 13: ↑13 и ↓0+13
Комментарии1

Как я пишу конспекты по математике на LaTeX в Vim

Время на прочтение9 мин
Количество просмотров123K
Некоторое время назад на Quora я отвечал на вопрос: как успевать записывать за лектором конспект по математике на LaTeX. Там я объяснил свой рабочий процесс по конспектированию в LaTeX с помощью Vim и Inkscape (для рисунков). Но с тех пор многое изменилось, так что я хочу опубликовать несколько постов в блоге с описанием нового процесса. Это первая из статей.

Я начал использовать LaTeX для конспектирования во втором семестре курса математики, и с тех пор написал более 1700 страниц. Вот несколько примеров, как выглядит конспект:


Читать дальше →
Всего голосов 222: ↑220 и ↓2+218
Комментарии133

Как графы помогут создать идеальный шифр

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

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

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

Если мошенники украли деньги с банковской карты — не спешите в полицию

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

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

Народ жалуется на Tinkoff, Альфа-банк и прочие банки, на операторов сотовой связи. Портал banki.ru ввёл драконовские правила, что у него решения судов без оценок в народном рейтинге, на форуме нельзя написать, что itsoft выиграл дело у ВТБ — это реклама itsoft видите ли, то есть видно надо писать одна компания, но не скажем какая выиграла суд у ВТБ.

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

К написанию данной статьи меня ещё подвиг наш конфликт с хостером Leaseweb. 7 лет мы платили одну цену в месяц за аренду серверов там. А потом она внезапно выросла в 70 раз. Leaseweb решил, что за действия злоумышленников деньги надо списать с нашей корпоративной карты.

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

Читать далее
Всего голосов 199: ↑179 и ↓20+159
Комментарии210

Разновидности «игровых» багов

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

Было бы странно, если в такой комплексной системе как видео игры не было багов. Они есть, встречаются часто и этот бестиарий здесь крайне разнообразен. Ознакомившись с вышеприведёнными видами тестирования для игр, думаю вы догадываетесь, что и баги в видео играх встречаются далеко не только "404 not found" и "game crashed". Давайте же пробежимся по самым часто встречающимся из них в игровой индустрии!

Продолжать поглощать знания!
Всего голосов 12: ↑12 и ↓0+12
Комментарии5

Популярная лингвистика. Книги про языки, которые мне нравятся

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

cover


Наш телеграм канал


14.11.2021 — Upd 7. В японский язык добавил Путь бесхвостой птички Адиля Талышханова (Shinrin), в английский — The Mother Tongue — English And How It Got That Way Билла Брайсона (alexey-m-ukolov) и Приключения английского языка Мелвина Брэгга, Введение в прикладную лингвистику Анатолия Баранова к серьезной лингвистике (darkTux)


Upd 6. Добавил Атомы языка Марка Бейкера (9_pm) и The Language Instinct (Язык как инстинкт) Стивена Пинкера (alex518 и snvtr). Проставил у рекомендаций значок 👉


Upd 5. Добавил раздел 'Лингвистические задачи'. Лингвистические задачи Зализняка, "Три склянки пополудни" Бердичевского и Пиперски (книга только вышла!) (middle), и еще одни "Лингвистические задачи" от коллектива авторов, включая Алпатова и Зализняка (AlexKarpan и DinaPy). Спасибо всем, кто рекомендует!


Upd 4. Добавил раздел 'Полевая лингвистика'. Не спи — кругом змеи! Дэниела Эверетта (9_pm), добавил "Слово о словах" Льва Успенского (Temmokan и saboteur_kiev)


Upd 3. Добавил раздел 'Серьезно о лингвистике'. Человек говорящий. Эволюция и язык Хомского и Бервика (alex518) и Значение и структура языка Чейфа Л. Уоллеса (darkTux)


Upd 2. Добавил "The Unfolding of Language" Гая Дойчера и "Our Magnificent Bastard Tongue" Джона Макуортера (etoropov)


Upd 1. Добавил раздел 'Грамотность и стиль'. "Слово живое и мертвое" Норы Галь (darkTux) и "The Sense of Style" Стивена Пинкера (9_pm)


Количество атомов в наблюдаемой Вселенной — где-то 10^80, число Дэвидов на картинке к статье — 2. Количество книг в этой подборке находится между этими ориентирами и будет пополняться (всегда рад рекомендациям). Что же это за книги?

Читать дальше →
Всего голосов 53: ↑52 и ↓1+51
Комментарии72

Распознаём позу прямо в браузере в реальном времени

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


Сегодня показываем и рассказываем, как прямо в браузере при помощи ИИ распознать сложную позу человека. Это пригодится, например, в разработке приложений для физических упражнений. Ранее с этой задачей не справлялись даже лучшие детекторы. За подробностями приглащаем под кат, пока у нас начинается флагманский курс Data Science.
Читать дальше →
Всего голосов 8: ↑7 и ↓1+6
Комментарии3

iOS. UI. Приёмы. Часть 2

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

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

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

Написание компилятора на Haskell + LLVM

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

На работе я пишу почти исключительно на Python, с университетской скамьи остались некоторые знания C/C++, в одном pet-project использовал Haskell. С таким багажом знаний я взялся за написание компилятора на основе LLVM - зачем и что получилось я уже рассказывал в предыдущей статье.

Эту статью я пишу для тех, кто, как и я, заинтересован в изучении Haskell, создании собственных языков программирования, или хочет поиграться с LLVM - но не знает с какого конца подойти к задаче.

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

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

Карманное руководство по Z3

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

Преамбула


image


"Человеческий мозг это пустой чердак. Дурак так и делает: тащит туда нужное и не нужное. И наконец наступает момент, когда самую необходимую вещь туда не запихнешь, или наоборот не достанешь..."

В.Б. Ливанов (из к/ф "Шерлок Холмс и доктор Ватсон")

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

Читать дальше
Всего голосов 16: ↑14 и ↓2+12
Комментарии3

Arend – язык с зависимыми типами, основанный на HoTT (часть 2)

Время на прочтение13 мин
Количество просмотров3.1K
В первой части статьи про язык Arend мы рассматривали простейшие индуктивные типы, рекурсивные функции, классы и множества.

2. Сортировка списков в Arend


2.1 Упорядоченные списки в Arend


Определим тип упорядоченных списков как пару, состоящую из списка и доказательства его упорядоченности. Как мы уже говорили, в Arend зависимые пары определяются при помощи ключевого слова \Sigma. Определение типа Sorted дадим через сопоставление с образцом, вдохновившись определением из уже упомянутой статьи про упорядоченные списки.

\func SortedList (O : LinearOrder.Dec) => \Sigma (l : List O) (Sorted l)

\data Sorted {A : LinearOrder.Dec} (xs : List A) \elim xs
 | nil => nilSorted
 | :-: x nil => singletonSorted
 | :-: x1 (:-: x2 xs) => consSorted ((x1 = x2) || (x1 < x2)) (Sorted (x2 :-: xs))

Обратите внимание: Arend сумел автоматически вывести, что тип Sorted содержится во вселенной \Prop. Это произошло потому, что все три образца в определении Sorted являются взаимно исключающими, а конструктор consSorted имеет два параметра, оба из которых принадлежат \Prop.
Докажем какое-нибудь очевидное свойство предиката Sorted, скажем, что хвост упорядоченного списка сам является упорядоченным списком (это свойство пригодится нам в дальнейшем).
Читать дальше →
Всего голосов 19: ↑19 и ↓0+19
Комментарии0

Примеры представления смысла документа через действия

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

Всем привет!

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

В этой статье, на примерах, посмотрим как могут выглядеть модели представляющие смысл текста (а также вопросы к содержанию текста!) с использованием данного подхода.

Читать далее
Всего голосов 3: ↑3 и ↓0+3
Комментарии0

Как превратить книгу о Гарри Поттере в граф знаний

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

Обработка естественного языка — это не только нейронные сети, а данные — это не только строки, числа и перечисления. Область работы с данными простирается намного дальше. К старту флагманского курса по Data Science представляем вашему вниманию перевод из блога разработчиков графовой базы данных neo4j о том, как при помощи SpaCy и Selenium извлечь из книги граф взаимоотношений героев. Подробности и код, как всегда, под катом.

Читать далее
Всего голосов 21: ↑16 и ↓5+11
Комментарии0

Тест библиотек построения диаграмм классов, исследуя исходный код популярных js библиотек

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

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

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

Читать далее
Всего голосов 10: ↑9 и ↓1+8
Комментарии2

Информация

В рейтинге
Не участвует
Откуда
Черногория
Дата рождения
Зарегистрирован
Активность

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

Backend Developer