Как стать автором
Обновить
-3
Карма
0.1
Рейтинг
Дмитрий @qrKot

Энтузиаст

«Лучшая задача по математике для школьников, которую я встречал в своей жизни» (Алексей Савватеев)

Блог компании Timeweb Cloud Занимательные задачки Математика *Учебный процесс в IT Научно-популярное
image

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

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

подсказка
Решение надо искать на комплексной плоскости.

еще подсказка
image

Корень 13 степени.


Решение и ответ под катом.
Читать дальше →
Всего голосов 38: ↑23 и ↓15 +8
Просмотры 24K
Комментарии 72

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

Научно-популярное Звук Мозг

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

Читать далее
Всего голосов 252: ↑234 и ↓18 +216
Просмотры 207K
Комментарии 869

Построение микросервисной архитектуры на Golang и gRPC, часть 1

Go *
Туториал
Из песочницы

Введение в микросервисную архитектуру


Часть 1 из 10


Адаптация статей Ewan Valentine.


Это серия из десяти частей, я постараюсь раз в месяц писать про построение микросервисов на Golang. Я буду использовать protobuf и gRPC в качестве основного транспортного протокола.


Стек, который я использовал: golang, mongodb, grpc, docker, Google Cloud, Kubernetes, NATS, CircleCI, Terraform и go-micro.


Зачем мне это? Поскольку мне потребовалось много времени, чтобы разобраться в этом и решить накопившиеся проблемы. Так же я хотел поделиться с вами тем, что я узнал о создании, тестировании и развертывании микросервисов на Go и другие новые технологии.


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


  • грузы
  • инвентарь
  • суда
  • пользователи
  • роли
  • аутентификация
Читать дальше →
Всего голосов 25: ↑17 и ↓8 +9
Просмотры 40K
Комментарии 8

Борьба за ресурсы, часть 1: Основы Cgroups

Блог компании Red Hat Настройка Linux *Open source *Виртуализация *Разработка под Linux *
Компьютеры – это «железо». И сегодня мы вернулись в исходную точку, в том смысле, что сейчас редко найдешь физический хост, на котором выполняется одна единственная задача. Даже если на сервере крутится только одно приложение, оно, скорее всего, состоит из нескольких процессов, контейнеров или даже виртуальных машин (ВМ), и все они работают на одном сервере. Red Hat Enterprise Linux 7 неплохо справляется с распределением системных ресурсов в таких ситуациях, но по умолчанию ведет себя как добрая бабушка, угощающая внуков домашним пирогом и приговаривающая: «Всем поровну, всем поровну».



В теории принцип «всем поровну», конечно, прекрасен, но на практике некоторые процессы, контейнеры или ВМ оказываются важнее других, и, следовательно, должны получать больше.
Читать дальше: Основы Cgroups
Всего голосов 20: ↑19 и ↓1 +18
Просмотры 20K
Комментарии 2

Load Average в Linux: разгадка тайны

Блог компании VK IT-инфраструктура **nix *Сетевые технологии *DevOps *
Перевод


Средние значения нагрузки (Load averages) — это критически важная для индустрии метрика. Многие компании тратят миллионы долларов, автоматически масштабируя облачные инстансы на основании этой и ряда других метрик. Но на Linux она окутана некой тайной. Отслеживание средней нагрузки на Linux — это задача, работающая в непрерываемом состоянии сна (uninterruptible sleep state). Почему? Я никогда не встречал объяснений. В этой статье я хочу разгадать эту тайну, и создать референс по средним значениям нагрузки для всех, кто пытается их интерпретировать.

Читать дальше →
Всего голосов 127: ↑125 и ↓2 +123
Просмотры 175K
Комментарии 24

Пять Docker-утилит, о которых вам стоит узнать

Блог компании Southbridge Системное администрирование *Виртуализация *Серверное администрирование *DevOps *
Перевод

Источник изображения


На просторах сети Интернет можно найти немало полезных утилит для Docker. Многие из них принадлежат к разряду Open Source и доступны на Github. В последние два года я достаточно активно использую Docker в большинстве своих проектов по разработке программного обеспечения. Однажды начав работать с Docker, вы осознаете, что он оказывается полезен для гораздо более широкого круга задач, нежели вы изначально предполагали. Вам захочется сделать с Docker еще больше, и он не разочарует!


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


Давайте посмотрим на утилиты, которые помогают мне в процессе докеризации всего и вся.

Читать дальше →
Всего голосов 32: ↑30 и ↓2 +28
Просмотры 31K
Комментарии 16

MMO с нуля. С помощью Netty и Unreal Engine. Часть 1

Open source *Java *C++ *Разработка игр *Unreal Engine *
Туториал
Всем привет! В нескольких статьях я хотел бы поделиться опытом создания подобия ММО игры используя Unreal Engine и Netty. Возможно архитектура и мой опыт кому-то пригодится и поможет начать создавать свой игровой сервер в противовес unreal dedicated server, который слегка прожорлив или заменить собой фреймворки для разработки многопользовательских игр такие как Photon.

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

Часть 1. Общая картина, сборка библиотек, подготовка клиента и сервера к обмену сообщениями
Часть 2. Наращивание игрового функционала + алгоритм Diamond Square


Всего голосов 17: ↑16 и ↓1 +15
Просмотры 47K
Комментарии 9

JetBrains MPS — IDE для разработки проблемно-ориентированных языков программирования

Программирование *Java *
Из песочницы

Введение


MPS — это среда разработки языков программирования на платформе Intellij Idea. Она предоставляет возможность моделировать языки программирования, описывать структуры, сосредотачиваясь конкретно на дизайне и бизнес-логике, не отвлекаясь на парсеры, лексеры и различные сторонние фичи языка. Что нужно сразу обозначить: язык, который разрабатывается с помощью MPS, не компилируется в рабочую программу. Чаще всего он генерируется в модели других языков либо в текстовую форму.

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

Документация очень подробная, описывает все возможности, но если нет осознания «что я делаю и зачем мне это делать», то она вряд ли будет полезна. Также есть серия уроков от JetBrains на YouTube, но опять же, я более-менее начал понимать, что происходит, только после двух просмотров всей серии и досканального изучения предлагаемых sample проектов.

Я планирую написать серию постов об этой замечательной среде, чтобы по окончанию прочтения у энтузиастов оставалось как можно меньше вопросов «как сделать эту штуку», и как можно больше понимания структуры, чтобы можно было эффективно пользоваться документацией. Познавать MPS мы будем во время создания языка для описания закономерностей погоды. Почему, собственно говоря, и нет?
Читать дальше →
Всего голосов 26: ↑25 и ↓1 +24
Просмотры 14K
Комментарии 28

Как программисту получить свой первый оффер

Учебный процесс в IT Читальный зал
image

Этот вопрос, пожалуй, волнует многих людей, особенно выпускников ВУЗов. В данной статье я опишу, как и какими способами можно получить ваш первый оффер программиста. Я искала позицию java-developer, однако не думаю, что алгоритм поиска работы будет сильно отличаться в зависимости от выбранного вами языка программирования.

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

  1. Выбор языка программирования
  2. Усиленное чтение документации с последующим решением задачек, разбором примеров и чтение подходящих статей.
  3. Когда хоть какая-то база уже есть, следует придумать себе какой-нибудь несложный проект, в котором вы будете использовать все то, чему научились.
  4. Придумываем проект сложнее, параллельно не забываем о том, что надо изучать сопутствующие технологии.
  5. Желательно все это выкладывать на гит, чтобы в будущем работодатель видел, что процесс обучения у вас шел. О пользе гита я расскажу чуть ниже.
  6. Заведите себе друга программиста, который время от времени мог вам давать советы или менторить вас (это, конечно, кому как повезет). В целом, лучше не надеятся на чью-то помощь, а делать и развиваться самим.
Читать дальше →
Всего голосов 29: ↑21 и ↓8 +13
Просмотры 37K
Комментарии 77

Сила минимализма в UX дизайне

Блог компании Productivity Inside Веб-дизайн *Интерфейсы *Usability *Дизайн мобильных приложений *
Перевод
Просто — не значит примитивно. Мало — не значит непонятно. Вкратце можно выразить многое. Свободное пространство — не то же самое, что пустота. Сегодня мы поговорим о минимализме.


Как сказал в своей книге «The More of Less» Джошуа Бекер:

«Вам нужно не больше пустого пространства, а меньше всего остального».

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

Что такое минимализм?


Вообще, минимализм — это широкое понятие, которое употребляется в разных сферах человеческой деятельности. В словаре Merriam-Webster оно определяется как «стиль или техника (в музыке, литературе или дизайне), которые характеризуются крайне малым количеством элементов и простотой». К каким бы областям ни применялось понятие, оно сохраняет свои базовые отличительные свойства: простота и смысловая насыщенность.
Читать дальше →
Всего голосов 17: ↑11 и ↓6 +5
Просмотры 22K
Комментарии 3

Инфраструктура простой электронной подписи. Часть 3: Системы обработки персональных данных

Анализ и проектирование систем *IT-стандарты *Разработка под e-commerce *


В первой и второй частях была рассмотрена инфраструктура ПЭП в системах контрагента и агента, как участниках электронного взаимодействия. Важную роль в этой инфраструктуре играют персональные данные(ПД) контрагента. Системы агента не создают ПД, они используют данные, предоставленные другими системами. Что это за системы, как происходит первичная передача и обработка ПД – эти вопросы будут предметом третьей части статьи.
Читать дальше →
Всего голосов 12: ↑11 и ↓1 +10
Просмотры 5.9K
Комментарии 4

Создание и тестирование Firewall в Linux, Часть 1.3. Написание char device. Добавление виртуальной файловой системы…

Информационная безопасность *C *Разработка под Linux *
Туториал
Содержание первой части:

1.1 — Создание виртуальной лаборатории (чтобы нам было где работать, я покажу как создать виртуальную сеть на вашем компьютере. Сеть будет состоять из 3х машин Linux ubuntu).
1.2 – Написание простого модуля в Linux. Введение в Netfilter и перехват трафика с его помощью. Объединяем все вместе, тестируем.
1.3 – Написание простого char device. Добавление виртуальной файловой системы — sysfs. Написание user interface. Объединяем все вместе, тестируем.

Содержание второй части:

Скрытый текст
2.1 — Введение во вторую часть. Смотрим на сеть и протоколы. Wireshark.
2.2 — Таблицы Firewall. Transport Layer. Структуры TCP, UDP. Расширяем Firewall.
2.3 — Расширяем функциональность. Обарабатываем данные в user space. libnetfilter_queue.
2.4 — (*Опиционально) Изучаем реальную Buffer Overflow атаку и предотвращаем с помощью нашего Firewall'а.
Читать дальше →
Всего голосов 31: ↑31 и ↓0 +31
Просмотры 15K
Комментарии 26

Информация

В рейтинге
2,460-й
Откуда
Бийск, Алтайский край, Россия
Дата рождения
Зарегистрирован
Активность