Pull to refresh
15
0
Михаил @mshakhan

User

Send message

Делаем RPG на Go: часть 0

Level of difficultyMedium
Reading time7 min
Views13K

Один из самых частых вопросов в нашем сообществе разработке игр на Go — это с чего начать.


В этой серии статей мы будем изучать движок Ebitengine и создадим RPG в процессе.


Читать дальше →
Total votes 32: ↑31 and ↓1+36
Comments8

Docker больше не нужен

Reading time11 min
Views38K

В этой статье мы не будем подробно разбирать базовые функции Podman и отличия этого проекта от Docker.

Такой информации хватает в интернете.

Вместо этого, мы на конкретном примере (простое Java приложение) разберем как можно заменить Docker на Podman в конвейере CI/CD,
и какие это может принести дивиденды.

Читать далее
Total votes 63: ↑14 and ↓49-29
Comments54

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

Reading time14 min
Views22K

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

Я вам предлагаю совершить нечто подобное, разумеется, ненадолго, и если вам за 40, погрузиться в ностальгические воспоминания. А если вы не представляете, как же люди жили раньше без интернета, то узнать, как выглядело рабочее место программиста или студента в далёкие 90-е годы.

Я хочу, чтобы погружение было максимально приближено к реальности, и считаю, что различные эмуляторы и виртуальные машины очень удобны для изучения, разработки и отладки старого программного обеспечения, но для полного погружения лучше работать с программами без них, на реальном компьютере. Вы, к сожалению, уже не ощутите на себе мерцание и размытость монитора с ЭЛТ, не услышите стук дисковода для гибких дисков, громкое шуршание винчестера, но многие эмоции вы переживёте заново.
Читать дальше →
Total votes 70: ↑68 and ↓2+89
Comments233

5 советов, которые помогут при переносе кода на платформы, отличные от х86

Reading time8 min
Views3.5K

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

Читать далее
Total votes 18: ↑17 and ↓1+19
Comments15

Псориаз: что бывает при слишком быстрой регенерации

Reading time6 min
Views23K

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

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

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

  • Что такое псориаз и как он выглядит (чаще всего смотрится не очень).
  • Что обычно сломано в геноме при этом заболевании.
  • Почему ожирение и курение могут сильно ухудшить ситуацию.
  • Что наносить местно и почему стероиды могут быть опасны.
  • Правильная диета доказано улучшает ситуацию.
  • Люди с псориазом — те немногие, кому загорать полезно.

Disclaimer: часть фото я положу под спойлер, если вдруг кого-то такое может тревожить.
Читать дальше →
Total votes 54: ↑44 and ↓10+51
Comments40

Вот так выглядит нейросеть без фреймворков

Reading time5 min
Views20K

Чтобы лучше понять глубокое обучение, Data Scientist из Hewleet Packard написал нейросеть только при помощи NumPy. Знать свои инструменты необходимо любому специалисту, поэтому наш курс по науке о данных включает раздел «Математика для Data Science». Под катом вы найдёте не только реализацию нейронной сети. Статья начинается со знакомства с книгой автора, которая, по его словам, будет полезна, если вы хотите создать достойное портфолио Machine Learning.

Читать далее
Total votes 35: ↑19 and ↓16+4
Comments8

Разбор алгоритмов генерации псевдослучайных чисел

Reading time10 min
Views33K

Я работаю программистом в игровой студии IT Territory, а с недавних пор перешел на направление экспериментальных проектов, где мы проверяем на прототипах различные геймплейные гипотезы. И работая над одним из прототипов мы столкнулись с задачей генерации случайных чисел. Я хотел бы поделиться с вами полученным опытом: расскажу о псевдогенераторах случайных чисел, об альтернативе в виде хеш-функции, покажу, как её можно оптимизировать, и опишу комбинированные подходы, которые мы применяли в проекте.

Читать далее
Total votes 29: ↑29 and ↓0+29
Comments25

5 писателей-фантастов, работавших программистами

Reading time5 min
Views21K

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

Читать далее
Total votes 27: ↑26 and ↓1+35
Comments23

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

Reading time6 min
Views30K

В этой статье вы узнаете простой способ осмысленно создавать аккордовые прогрессии - музыкальную гармонию. Чтобы строить аккордовые прогрессии вовсе не обязательно глубоко изучать теорию. Достаточно пользоваться квинтовым кругом со значениями мажорности аккордов и логически организовать перемещение по нему - плавно, прыжками, чередуя, периодически возвращаясь к тонике. Можно создавать какие угодно гармонические фигуры. Зная все градации изменений при ходах между любыми аккордами можно построить как динамичные(напряженные) так и плавные(спокойные) прогрессии. Также разберем логику множества популярных аккордовых последовательностей, гармонию популярной песни а также раскроем секрет золотой секвенции.

Читать далее
Total votes 11: ↑7 and ↓4+7
Comments114

Пишем оператор Kubernetes с нуля

Reading time7 min
Views22K

image
Фото: Jukan Tateisi | Unsplash


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


Возьмем самый простой пример — приложение HelloApp. Чтобы задеплоить HelloApp, создадим ресурс Kubernetes.

Читать дальше →
Total votes 17: ↑17 and ↓0+17
Comments4

Генерация изображений с помощью echo/printf в 5 строчках кода без библиотек и заголовков

Reading time2 min
Views9.1K
tl;dr: форматы файлов Netpbm позволяют легко выводить пиксели, используя только текстовый ввод-вывод.



Вот весь генерирующий это изображение скрипт bash без зависимостей:

#!/bin/bash
exec > my_image.ppm    # Все инструкции echo будут писать в этот файл
echo "P3 250 250 255"  # формат, ширина, высота, максимальное значение цвета
for ((y=0; y<250; y++)) {
  for ((x=0; x<250; x++)) {
    echo "$((x^y)) $((x^y)) $((x|y))" # r, g, b
  }
}
Читать дальше →
Total votes 28: ↑27 and ↓1+38
Comments8

Полезные консольные Linux утилиты

Reading time13 min
Views109K

В этой подборке представлены полезные малоизвестные консольные Linux утилиты. В списке не представлены Pentest утилиты, так как у них есть своя подборка.


Осторожно много скриншотов. Добавил до ката утилиту binenv.


binenv — cамая интересная утилита для установки новых популярных программ в linux, но которых нет в пакетном менеджере.

Читать дальше →
Total votes 96: ↑92 and ↓4+110
Comments110

Python & оптимизация времени и памяти

Reading time8 min
Views30K

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

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

Изучить статью
Total votes 13: ↑9 and ↓4+6
Comments6

Теория инвестиций для начинающих, часть 2

Reading time22 min
Views29K
Пауль де Вос. Бык, поверженный собаками. 1638–1640 гг. Музей Прадо, Мадрид.

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

  • как составить оптимальный с точки зрения риска и доходности портфель, не углубляясь в суровую математику (посмотреть на рыночную капитализацию активов);
  • как заработать что-то сверх безрисковой процентной ставки (взять на себя риск и на дистанции заработать премию за этот риск);
  • любой ли риск вознаграждается премией (нет, только систематический);
  • от чего зависит ожидаемая будущая доходность отдельной акции (главным образом, от ковариации со всем рынком);
  • сколько зарабатывали инвесторы в рынок акций США (порядка 7–9% в год сверх безрисковой ставки);
  • почему так много (возможно, люди не полностью рациональны и преувеличивают рискованность акций);
  • можно ли предсказать будущую доходность рынка акций (скорее всего, нет);
  • как осадить трейдера на коктейльной вечеринке (спросить, какой у него Шарп).
Читать дальше →
Total votes 30: ↑30 and ↓0+30
Comments18

Лучшие оптические иллюзии 2019

Reading time2 min
Views30K
Вокруг какой оси вращается фигура: вертикальной или горизонтальной?

image


Ломаем мозг на выходных.

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

Канал в телеграм Cognitive Illisions, где я буду делиться самыми вырвиглазными находками, как хакнуть мозг через восприятие.
Total votes 53: ↑41 and ↓12+44
Comments34

Как я сделал себе менеджер паролей

Reading time3 min
Views11K
Пароли — древнейший способ аутентификации в информационных технологиях, повсеместно использующийся и сегодня. Увы, просто невозможно держать в памяти пароли для всех Интернет-ресурсов при условии, что все они будут разными и сложными! Тут на помощь человеку приходят менеджеры паролей, берущие эту задачу на себя: человек запоминает всего лишь один мастер-пароль, дающий доступ ко всем остальным.

Мне не нравились существующие менеджеры паролей: неудобно синхронизировать базу паролей между различными устройствами и операционными системами, к тому же, зачастую программы-менеджеры откровенно плохо защищены. Однажды я читал статьи по криптографии, и мне пришла в голову мысль: а почему бы не сделать менеджер паролей, который вместо хранения паролей будет вычислять их?
Читать дальше →
Total votes 11: ↑10 and ↓1+11
Comments16

Пацаны, так Ruby умер или нет?

Reading time5 min
Views72K


Последнее время, когда я говорю с разработчиками или компаниями, часто слышу одну и ту же историю разными словами — «мы писали на Ruby, но сейчас переезжаем». С одной стороны, ничего удивительного. Разработка — дело изменчивое, всегда появляется что-то новое, каждый день надо тратить кучу мозгов, чтобы оставаться актуальным.

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

Что же не так с Ruby, и куда делась его взрывная популярность? Я поговорил с несколькими рубистами. Например, Максимом Индыковым из Staply, чья команда переезжает с Ruby на Go, и с Алексеем Кузнецовым из GeekBrains, компании, которая начиналась с курсов по Ruby, а сейчас отказалась от них полностью.
Читать дальше →
Total votes 56: ↑46 and ↓10+36
Comments184

Проверяем уровень защищённости Linux с помощью утилиты Lynis

Reading time8 min
Views42K
Разбираемся, как использовать одну из самых мощных свободно распространяемых утилит для аудита Linux-систем.


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

Чтобы получить информацию о системе, то есть проверить общее состояние программного обеспечения, сети и служб, работающих на вашем компьютере с установленной ОС Linux, достаточно выполнить несколько команд. Но что теперь делать с полученной информацией? Как в ней разобраться? Ведь объём данных, которые вам нужно проанализировать, огромен.
Читать дальше →
Total votes 45: ↑45 and ↓0+45
Comments5

Опять про BLE, температуру и датчики Xiaomi — часть 2 — MQTT

Reading time9 min
Views8.8K

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

Читать дальше →
Total votes 17: ↑17 and ↓0+17
Comments2

Zip-файлы: история, объяснение и реализация

Reading time76 min
Views93K


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

В статье очень подробно объясняется, как работают Zip-файлы и схема сжатия: LZ77-сжатие, алгоритм Хаффмана, алгоритм Deflate и прочее. Вы узнаете историю развития технологии и посмотрите довольно эффективные примеры реализации, написанные с нуля на С. Исходный код лежит тут: hwzip-1.0.zip.
Читать дальше →
Total votes 133: ↑132 and ↓1+174
Comments45
1
23 ...

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity