Как стать автором
Обновить
36
0
Евгений @reforms

Back-End Разработчик

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

Увеличивает ли соседство простых чисел количество делителей числа?

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

В последнее время я думал о числе 60.

Вавилонские счетоводы и землемеры основывали свою арифметику на шестидесятеричном счислении, возможно потому, что эта система помогает в работе с дробями. Если упорядочить объекты в группы по 60, их можно делить на половины, на трети, четверти, пятые, шестые, десятые, двенадцатые, пятнадцатые, двадцатые, тридцатые и шестидесятые части. Ни одно меньшее число не имеет такого количества делителей, и благодаря этому число 60 относится к элитному классу высокосоставных чисел (этот термин и его определение были предложены в 1915 году Сринивасой Рамануджаном.)

Но у числа 60 есть и другая особенность, которую я заметил только несколько недель назад, хотя о ней могли знать вавилоняне, а уж Рамануджан знал точно. Число 60 с его выдающимся количеством делителей тесно расположено между двумя другими числами, вовсе не имеющими делителей, за исключением 1 и самого себя: и 59, и 61 являются простыми. Такие пары простых чисел, разделённые одним промежуточным целым, называются числами-близнецами. Примерами таких чисел являются пары (5, 7), (29, 31) и (1949, 1951). На протяжении многих лет исследователи теории чисел внимательно изучали числа-близнецы. Меньшего внимания удостоилось число посередине — непрошенный гость, отделяющий близнецов друг от друга. Рискуя выглядеть немного слащавым, я назову это число посередине братом близнецов, или просто братом.
Читать дальше →
Всего голосов 74: ↑74 и ↓0+74
Комментарии2

Возможные способы организации атак на киберфизические системы

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

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

Читать далее
Рейтинг0
Комментарии0

Как увидеть ℼ? Нужно швырнуть ℼ в стену

Время на прочтение2 мин
Количество просмотров48K
Лучший способ объяснить школьникам и самому себе, что такое фазовое (конфигурационное) пространство.

image


Дано: Два блока массой 1 кг и 100 (10 000, 1 000 000,… 100x) кг. Трение в системе отсутствует, удары абсолютно упругие (потерь энергии нет). Более массивный блок ударяет менее массивный и тот отскакивает от него, а потом от стенки слева. Справа стены нет, тела могут двигаться в бесконечность.

Вопрос: Сколько столкновений совершит маленький блок, пока система не придет в состояние, когда столкновения невозможны (скорость маленького тела меньше скорости большого, двигающегося в бесконечность)?

Ответ невероятен:

image


В очередной раз поражаюсь изящности объяснений от 3Blue1Brown. Предлагаю читабельный конспект с небольшими сокращениями и дополнениями.
Всего голосов 215: ↑206 и ↓9+197
Комментарии111

Максимальное количество значений в enum Часть II

Время на прочтение21 мин
Количество просмотров3.6K
Часть первая, теоретическая | Часть вторая, практическая



Продолжаем поиск максимального возможного количества значений в перечислении.
На этот раз сосредоточимся на практической стороне вопроса и посмотрим, как на наши достижения будут реагировать IDE, компилятор и JVM.
Читать дальше →
Всего голосов 11: ↑11 и ↓0+11
Комментарии7

Хабрастатистика: как Хабр пережил самоизоляцию

Время на прочтение5 мин
Количество просмотров5.9K
Привет, Хабр.

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



Для тех, кому интересно, что получилось, продолжение под катом.
Читать дальше →
Всего голосов 59: ↑58 и ↓1+57
Комментарии40

Пост хвастовства домашними офисами

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

Привет, это ваша дорогая редакция. Мы тут все на удаленке, а к вечеру стало немного грустненько. Поэтому этот материал мы объявляем постом хвастовства домашними рабочими местами. Начать предлагаем с хоум-офисов команды Хабра — попробуйте по должности, хобби и увлечениям угадать, кто где работает. А потом заходите в комментарии и оставляйте свои фотки.
Читать дальше →
Всего голосов 116: ↑111 и ↓5+106
Комментарии426

10 отличных Github репозиториев, которые должен знать каждый веб-разработчик

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

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


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


image


А я его перевел, т.к. показалось, что пост многим будет интересен. Перевод очень вольный: я опустил нерелевантные промо-ссылки и гипер эмоциональные похвалы автора оригинала, чтобы оставить только суть. Еще, обновил цифры, чтобы информация была более актуальной к моменту публикации этого перевода. Итак, перейдем к списку.
Читать дальше →
Всего голосов 76: ↑69 и ↓7+62
Комментарии8

Простые числа — насколько велико наше бессилие?

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

image

Эту метафору будет проще понять, если провести аналогию с черной дырой: мы не знаем, что находится под ее горизонтом событий, и чтобы это узнать нам нужно придумать способ, как туда добраться. Нечто подобное существует в мире математики. Данное уравнение — это настоящая «формула» простого числа, но чтобы ею пользоваться, нам нужно придумать, как искать подходящие {a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, w, v, x, y, z}.

Черная дыра и данное уравнение — это предельные состояния чего-то реального и абстрактного. И, если о первом существует достаточно догадок и представлений, то о втором, практически ничего не известно. Но, что если это действительно «математическая» черная дыра? Разве вам не интересно что может произойти, если мы попадем под горизонт?
Под горизонт.
Всего голосов 154: ↑154 и ↓0+154
Комментарии82

Заметка о void в JavaScript и TypeScript

Время на прочтение3 мин
Количество просмотров45K
Если вы, до того, как заинтересовались JavaScript, писали на традиционных языках с сильной типизацией, то вы, возможно, знакомы с концепцией void. Это — тип, использование которого сообщает программисту о том, что соответствующие функции и методы при их вызове ничего не возвращают.



Сущность void имеется также в JavaScript и TypeScript. В JS это — оператор. В TS это примитивный тип данных. И там и там void ведёт себя не так, как могли бы ожидать многие из тех, кто сталкивался с void в других языках.
Читать дальше →
Всего голосов 47: ↑41 и ↓6+35
Комментарии16

Жизнь на частицах

Время на прочтение4 мин
Количество просмотров64K
Всем привет! Сегодня я расскажу о своих экспериментах с системами частиц. Основной целью было нахождение простых правил, которые бы порождали интересное поведение.

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

Под катом много мегабайт гифок.

Читать дальше →
Всего голосов 269: ↑267 и ↓2+265
Комментарии67

Чистая прагматичная архитектура. Мозговой штурм

Время на прочтение25 мин
Количество просмотров26K
Закрадывалась ли вам в голову идея переписать своё жирное энтерпрайзное приложение с нуля? Если с нуля, то это ж ого-го. Как минимум кода будет раза в два меньше, верно? Но ведь пройдёт пара лет, и оно тоже обрастёт, станет легаси… времени и денег на переписывание не так много, чтобы делать идеально.

Успокойтесь, начальство всё равно не даст ничего переписать. Остаётся рефакторить. На что лучше всего потратить свои невеликие ресурсы? Как именно рефакторить, где проводить чистки?

Название этой статьи — в том числе отсылка к книге Дяди Боба «Чистая Архитектура», а сделана она на основе замечательного доклада Victor Rentea (твиттер, сайт) на JPoint (под катом он начнёт говорить от первого лица, но пока дочитайте вводную). Чтения умных книжек эта статья не заменит, но для такого короткого описания изложено весьма хорошо.

Идея в том, что популярные в народе вещи вроде «Clean Architecture» действительно являются полезными. Сюрприз. Если нужно решить вполне конкретную задачу, простой изящный код не требует сверхусилий и оверинжиниринга. Чистая архитектура говорит, что нужно защищать свою доменную модель от внешних эффектов, и подсказывает, как именно это можно сделать. Эволюционный подход к наращиванию объема микросервисов. Тесты, которые делают рефакторинг менее страшным. Вы ведь уже знаете всё это? Или знаете, но боитесь даже подумать об этом, ведь это же ужас что тогда делать придётся?

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



Читать дальше →
Всего голосов 42: ↑40 и ↓2+38
Комментарии24

Создаем своих криптокотиков (Часть 1)

Время на прочтение7 мин
Количество просмотров26K
В первых числах декабря 2017 года, пользователи блокчейн-проекта Ethereum столкнулись с неприятным открытием — любые их транзакции просто перестали подтверждаться. Фактически, вся сеть перестала функционировать из-за неожиданно разросшегося в размерах мемпула.

Совсем скоро стало понятно в чем же дело — во всем виноват оказался проект CryptoKitties. Это забавная игрушка, работающая на блокчейне Ethereum и позволяющая пользователям разводить «котят», скрещивать их и продавать как обычные критовалютные токены. В какой-то момент 15% всех транзакций в Ethereum приходились на криптокотят! А к моменту написания этой статьи, игроки потратили на котят уже 23 миллиона долларов!

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

cryptocat
Хочу криптокотика
Всего голосов 28: ↑27 и ↓1+26
Комментарии13

61 способ улучшить SEO вашего сайта

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


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


Для кого эта статья:


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

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


Читать дальше →
Всего голосов 46: ↑36 и ↓10+26
Комментарии61

Магия SSH

Время на прочтение11 мин
Количество просмотров487K
С SSH многие знакомы давно, но, как и я, не все подозревают о том, какие возможности таятся за этими магическими тремя буквами. Хотел бы поделиться своим небольшим опытом использования SSH для решения различных административных задач.

Оглавление:

1) Local TCP forwarding
2) Remote TCP forwarding
3) TCP forwarding chain через несколько узлов
4) TCP forwarding ssh-соединения
5) SSH VPN Tunnel
6) Коротко о беспарольном доступе
7) Спасибо (ссылки)
Читать дальше →
Всего голосов 115: ↑106 и ↓9+97
Комментарии75

Основы Docker за Х часов и Y дней

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

0. Вступление


Цель данной статьи собрать в небольшую кучку основную информацию, минимально достаточную для того, чтобы начать работать с докер на ежедневной основе и удалить с рабочей машины локально установленные apache, mysql, virtualenv, python3, mongodb, memchaced, redis, php5, php7 и весь остальной зоопарк, который мы используем при разработке, и который зачастую еще и конфликтует между собой от версии к версии.
Читать дальше →
Всего голосов 43: ↑41 и ↓2+39
Комментарии16

Лекция Виталия Харисова «10k»

Время на прочтение9 мин
Количество просмотров14K
Виталий vithar Харисов — один из ключевых разработчиков и руководителей Яндекса. На московском Я.Субботнике по фронтенду Виталий рассказал про лёгкую версию поиска для медленных соединений и способы оптимизации кода, позволяющие уложиться в 10 килобайт.

Читать дальше →
Всего голосов 39: ↑37 и ↓2+35
Комментарии22

Погружение в разработку на Ethereum. Часть 1

Время на прочтение11 мин
Количество просмотров96K
Технология блокчейна завладела умами. Покупаются фермы, ICO собирают миллионы долларов. Наша компания тоже захотела приобщиться. Решили начать с малого. В серии статей будет описан наш путь от новичков в сфере блокчейна до общепризнанных гуру. На момент написания этих слов мы все еще на этапе новичков, предлагаем следить за нашим развитием и развиваться с нами.

Читать дальше →
Всего голосов 46: ↑34 и ↓12+22
Комментарии26

Публикация артефакта в Maven Central через Sonatype OSS Repository Hosting Service

Время на прочтение23 мин
Количество просмотров22K
На написание этой статьи меня сподвигла некоторая разрозненность источников информации по такой
важной, на мой взгляд, теме, как публикация своих артефактов в Maven Central. Конечно, следует
отдать должное сотрудникам Sonatype: их официальный гайд (ссылка в конце статьи) достаточно полно
описывает весь процесс. Но в нём нет некоторых неочевидных тонкостей (вроде проблемы хранения
паролей), и он сам выглядит немного неряшливо. На русском же языке на эту тему ресурсов я не нашёл в
принципе. Лично для меня это не страшно, но многих это может остановить.

Внимание, много текста
Всего голосов 5: ↑5 и ↓0+5
Комментарии12

Malware + Blockchain = ❤️

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

Эта статья является продолжением цикла о написании умных контрактов на платформе Ethereum. В первой части я пообещал показать, как создать новую криптовалюту на Solidity (в мире блокчейна это является чем-то вроде аналога "Hello, world!"). Но на самом деле в этом нет смысла, так как об этом уже написано несколько хороших статей (пример из доков Solidity, пример с главной страницы Ethereum).


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


BTW все написанное ниже имеет чисто образовательный характер.


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

Пишем умный контракт на Solidity. Часть 1 — установка и «Hello world»

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

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


Smart Contract & Gas


Если на пальцах, "умный контракт" — это некоторый код, живущий внутри блокчейна. Любой участник сети может его вызвать за небольшую плату. Эта плата и называется Gas, дословно "топливо". Зачем это нужно? Для защиты майнера от злоупотребления мошенником его ресурсов.


Немногие знают, но даже в биткоине есть возможность писать эти самые контракты, но в силу некоторых причин этим мало кто занимается. Одна из главных проблем — язык Script не Тьюринг-полный и написать что-то более менее серьезное непросто (чтобы вы понимали масштаб проблемы — нет даже возможности добавить цикл). В случае с Ethereum все чуть по другому, языки Тьюринг-полные, и есть риск, что кто-то напишет контракт вида


// Это псевдокод
foo = 0;
while (True) {
    foo++;
}

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

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

Информация

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