Search
Write a publication
Pull to refresh
-1
0
Михаил @MuKPo6

Пользователь

Send message

Принцип единственной ответственности: глубокое погружение

Reading time17 min
Views56K
Про принцип единственной ответственности (The Single Responsibility Principle, SRP) уже было написано множество статей. В большинстве из них даётся лишь поверхностное его описание мало чем отличающееся от информации в википедии. А те немногие статьи что затрагивают ключевые особенности SRP делают это вскользь, не акцентируя на них внимания и не развивая тему дальше.

Эта статья — попытка дать более глубокое объяснение принципу единственной ответственности, а также показать как его всё таки можно применять на практике. Кому интересно — добро пожаловать под кат.
Читать дальше →

Построение графов для чайников: пошаговый гайд

Reading time7 min
Views75K
Ранее мы публиковали пост, где с помощью графов проводили анализ сообществ в Точках кипения из разных городов России. Теперь хотим рассказать, как строить такие графы и проводить их анализ.



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

70 вопросов по JavaScript для подготовки к собеседованию

Reading time43 min
Views1M
Доброго времени суток, друзья!

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

В вопросах, которые показались мне сложнее прочих, приведены ссылки на дополнительную литературу.

Буду признателен за развернутые комментарии. Все замечания будут учтены при редактировании статьи.

Итак, поехали.
Читать дальше →

Мнемотехника: исследуем методы увеличения памяти мозга

Reading time6 min
Views40K


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

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

Однако не все так плохо. Научные исследования показывают[1], что некоторые мнемотехники буквально физически могут поменять структуру мозга и повысить скилл управления памятью. Многие из самых успешных в мире мнемонистов, участвующих в профессиональных соревнованиях по запоминанию, начинали учиться уже в зрелом возрасте, и им удалось значительно усилить возможности мозга.

Методики уменьшения размеров образов Docker

Reading time10 min
Views40K
Задавались ли вы когда-нибудь вопросом о том, почему размер Docker-контейнера, содержащего всего одно приложение, может находиться в районе 400 Мб? Или, может быть, вас беспокоили немаленькие размеры образа Docker, содержащего единственный бинарник размером в несколько десятков Мб?



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

Маджонг с детьми: для чего, когда и как

Reading time18 min
Views29K


Когда мы готовим ребенка к поступлению в школу и помогаем ему адаптироваться к школе, поддерживая его интеллектуальное развитие, то одно из классических игровых средств – это обыкновенные игральные карты. Обучая ребенка карточным играм, мы можем давать нагрузку на все когнитивные функции. Зрительное восприятие понадобится, чтобы различать символы мастей (не путать пики и червы, в частности). Память – чтобы следить за тем, какие карты уже сыграны. Мышление – чтобы составлять комбинации и просчитывать выгодные ходы. Внимание – чтобы не проморгать в своей руке те карты, которые позволят эти выигрышные ходы сделать. Играя по разным правилам одной и той же колодой, мы совершенствуем произвольную регуляцию деятельности и учим гибкому, нелинейному поведению. В общем, игральные карты – это замечательная вещь. Но у них есть существенный недостаток: в нашей культуре они плотно ассоциированы с азартной игрой на деньги и воспринимаются поэтому как нечто порицаемое. Это означает, что специалист, играя в карты с ребенком, будет провоцировать реакции вида «чему вы тут его учите?» со стороны семьи, а ребенок не сможет принести игральные карты в школу, чтобы поиграть на перемене, не провоцируя аналогичных реакций со стороны педагогов. Причем понятно, что этот культурный стереотип к жизни давно уже имеет весьма опосредованное отношение, и какая-нибудь браузерная многопользовательская игра с куда большим успехом приобщит ребенка к игре на деньги, чем колода карт на перемене. Но перед нами все же встает проблема того, что ребенок может начать ощущать, будто делает что-то аморальное и неприличное. Это его либо отвратит от игры (и потеряется смысл игры как самоподдерживающейся развивающей деятельности), либо негативно скажется на самовосприятии – а у нас нет цели заставить ребенка ощущать себя хулиганом и правонарушителем.

Вариант решения этой проблемы – играть с ребенком не в карты, а в маджонг.
Читать дальше →

Распространенные ошибки при работе с промисами в JavaScript, о которых должен знать каждый

Reading time5 min
Views22K
Доброго времени суток, друзья!

Хотел бы я знать об этих ошибках, когда изучал JavaScript и промисы.

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

Поэтому в данной статье я бы хотел поговорить о самых распространенных ошибках при работе с промисами в JS, на которые многие не обращают внимания.
Читать дальше →

Интервальное голодание — как точно вычислить время

Reading time12 min
Views84K

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


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


Интересно. В ходе исследования мы сделали полезное открытие, которое позволяет информировано настраивать индивидуальные циклы еды с максимально полезным результатом и легко внедряемыми интервалами. Статья написана в хронологии проведённого исследования и логика вывода довольно проста и понятна.


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


Читать дальше →

Про установку и использование LineageOS 16, F-Droid

Reading time127 min
Views327K
Предлагаю вашему вниманию инструкцию как оптимально (по моему мнению) перейти на свободное программное обеспечение при использовании смартфона на примере операционной системы LineageOS (далее сокращённо LOS) и приложений из F-Droid.

Я думаю, что это статья будет вам интересна, даже если вы не можете установить себе LOS, так как в данной статье также рассмотрены стандартные настройки Android, настройки и методика использования полезных приложений, магазин приложений F-Droid, разрешения Android, которые нельзя ограничить и другие, возможно полезные для вас нюансы.
Читать дальше →

Защита вашего GraphQL API от уязвимостей

Reading time5 min
Views7.3K

Привет, Хабр! Представляю вашему вниманию перевод статьи Protecting Your GraphQL API From Security Vulnerabilities.


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


image

Читать дальше →

Изучение нейтрино привело к неожиданному открытию в математике

Reading time9 min
Views40K

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




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

Формула «выглядела слишком хорошо, чтобы быть правдой», сказал Тао, профессор из Калифорнийского университета в Лос-Анджелесе, лауреат Филдсовской премии, один из ведущих математиков мира. «Нечто настолько короткое и простое уже давно должно было оказаться в учебниках, — сказал он. – Поэтому сначала я подумал – нет, этого не может быть».

А потом он подумал ещё немного.
Читать дальше →

Топ 5 книг, которые нужно прочитать геймдизайнеру

Reading time2 min
Views5.2K
image

Роль геймдизайнера — одна из ключевых на проекте. Сделать игровой процесс по-настоящему увлекательным — это настоящая головоломка, решить которую поможет наш топ 5 книг, которые необходимо прочитать каждому геймдизайнеру. Сборник был бережно собран продюсерами Shadow Fight 2 и Shadow Fight 3. Благодаря этим книгам вы узнаете о том, как функционируют видеоигры и почему нам так сложно от них оторваться.
Читать дальше →

Обработка ошибок в Express

Reading time7 min
Views29K
Когда я только начинал работать с Express и пытался разобраться с тем, как обрабатывать ошибки, мне пришлось нелегко. Возникало такое ощущение, будто никто не писал о том, что мне было нужно. В итоге мне пришлось самому искать ответы на мои вопросы. Сегодня я хочу рассказать всё, что знаю об обработке ошибок в Express-приложениях. Начнём с синхронных ошибок.


Читать дальше →

Полное руководство по настройке HTTP-заголовков для безопасности

Reading time7 min
Views37K


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


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


Репутация IP-адреса основывается на данных черных списков и списков спамеров в сочетании с данными о владельце общедоступного IP-адреса. Она, в принципе, должна быть чистой, если ваша компания не рассылает спам и в состоянии быстро определить и остановить вредоносное внедрение. Использование заголовка безопасности НТТР вычисляется аналогично тому, как работает Observatory от Mozilla.


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

Читать дальше →

Задача о трех горах, неуловимая теория ума и проблема периодизации детского развития

Reading time6 min
Views65K


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

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

Примерно до семи лет испытуемые в этом эксперименте выбирали картинку с тем ракурсом, который видели сами.

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

Откуда взялась эта ошибка?
Читать дальше →

Структуры данных для хранения графов: обзор существующих и две «почти новых»

Reading time7 min
Views45K
Всем привет.

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

Итак, начнем. Но не с самого начала – думаю, что такое граф и какие они бывают (ориентированные, неориентированные, взвешенные, невзвешенные, с множественными ребрами и петлями или без них), мы все уже знаем.

Итак, поехали. Какие же варианты структур данных для «графохранения» мы имеем.
Читать дальше →

Откуда берётся квантовая вероятность

Reading time9 min
Views13K

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




Статья Шона Кэрролла, профессора теоретической физики из Калифорнийского технического института

В философском "Эссе о вероятностях", опубликованном в 1814 году, Пьер-Симон Лаплас ввёл печально известное гипотетическое существо: «обширный интеллект», знающий полное физическое состояние Вселенной. Для такого существа, прозванного поздними комментаторами "демоном Лапласа", не будет никаких загадок относительно случившегося в прошлом или того, что случится в любой момент будущего. В рамках описанной Исааком Ньютоном «вселенной как часового механизма», прошлое и будущее определяются настоящим.
Читать дальше →

Так все-таки RAML или OAS (Swagger)?

Reading time7 min
Views13K
В динамичном мире микросервисов измениться может все что угодно — любой компонент можно переписать на другом языке, используя иные фреймворки и архитектуру. Неизменными должны оставаться лишь контракты, для того, чтобы с микросервисом можно было взаимодействовать извне на некой постоянной основе, вне зависимости от внутренних метаморфоз. И сегодня мы расскажем о нашей проблеме выбора формата описания контрактов и поделимся найденными артефактами.


Читать дальше →

Гуляем по городу с умом — 2: ходим по городу кругами с помощью генетического алгоритма

Reading time8 min
Views14K

В прошлой статье я описал алгоритм, позволяющий строить более интересные (в противовес более коротким, как делают всякие яндексы-гуглы) пешеходные маршруты между двумя точками. Алгоритм загружал достопримечательности, парки и прочие приятные и интересные для пешеходов объекты из Open Street Map и прокладывал маршрут через них. В итоге путь мог оказаться на 10-20% длиннее, но гораздо живописнее и интереснее.



Фото города — Alex 'Florstein' Fedorov


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


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

Читать дальше →

Математическая модель раскрывает секреты зрения

Reading time7 min
Views32K

Математики и нейробиологи создали первую анатомически точную модель, объясняющую, как устроено зрение




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

«Многое из того, что, как вам кажется, вы видите, вы на самом деле придумываете, — сказала Лай-Санг Янг, математик из Нью-Йоркского университета. – Реально вы их не видите».

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

Information

Rating
Does not participate
Location
Одинцово, Москва и Московская обл., Россия
Date of birth
Registered
Activity

Specialization

Fullstack Developer, Web Developer
Lead
Git
Linux
OOP
PHP
MySQL