Как стать автором
Обновить
16
0
Журат Максим @ChessMax

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

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

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

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

Покоцанные, но не сломленные, мы представляем проект, над которым работали полтора года по ночам. Курсы по программированию с задачами в online IDE и прагматичной теорией. Никаких сертификатов и гарантий трудоустройства. Сплошной хардкор и опенсорс!


Читать дальше →
Всего голосов 116: ↑123.5 и ↓-7.5+131
Комментарии76

Про решаемость пятнашек

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

Привет, я создатель известного в узких кругах приложения 15 Puzzle для Android.

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

Читать далее
Всего голосов 72: ↑73 и ↓-1+74
Комментарии46

Энциклопедия контроллеров и обучающий проект (на Хабре)

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров13K


Я давно занимаюсь микроконтроллерной тематикой и делюсь своими изысканиями (частью изысканий) в блоге на Хабре. Делаю я это довольно давно и количество статей уже перевалило за сотню, и, в полном соответствии с воззрениями (старины) Гегеля, количество явно переросло в качество.

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

Настало время как-то систематизировать эту информацию, прокомментировать и поделиться своими мыслями на эту тему. А в практическом плане этот каталог (мини-энциклопедию) можно использовать для выбора DIY контроллеров для своих проектов или, учитывая опубликованные примеры кода и переводы туториалов, как обучающее пособие по их программированию.

Итак…
Читать дальше →
Всего голосов 59: ↑59.5 и ↓-0.5+60
Комментарии11

Xv6: учебная Unix-подобная ОС. Глава 8. Файловая система

Уровень сложностиСредний
Время на прочтение21 мин
Количество просмотров2K

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

Файловая система xv6 предлагает Unix-подобные файлы, директории и пути и хранит данные на virtio-диске.

Глава расскажет, какие задачи решает файловая система xv6.

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

Rust — это не «memory safe C»

Уровень сложностиСредний
Время на прочтение27 мин
Количество просмотров44K

TL;DR:
— в Rust намного больше достоинств, чем просто скорость и безопасность
— в Rust по умолчанию CDD (compiler-driven development, разработка через компилирование). Это как TDD, только CDD
— Rust — не сложный язык, особенно если не гнаться за максимальной производительностью

В этой статье я бы хотел рассказать:
— почему взгляд на Rust как на "memory safe C" очень сильно сужает область его возможного применения
— почему я смотрю на Rust как на очень удобный в разработке язык высокого уровня, которому просто случайно повезло оказаться невероятно быстрым
— почему разработка на Rust быстрее, чем многие думают
— почему Rust — это один из лучших языков общего назначения

Читать далее
Всего голосов 174: ↑169 и ↓5+164
Комментарии552

Как задеплоить сайт в облако. Инструкция для новичков

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров6.7K

Опубликовать сайт можно разными способами. Например, если проект лежит в репозитории на GitHub, можно воспользоваться GitHub Pages. Но если вы не боитесь трудностей, советуем попробовать кое-что поинтересней — разместить сайт на облачном сервере.

Новичкам этот способ может показаться сложным. Но на самом деле он очень удобен, потому что вы сможете легко масштабировать архитектуру проекта и гибко управлять мощностями сервера.
Читать дальше →
Всего голосов 41: ↑36 и ↓5+31
Комментарии18

Делаем код-ревью правильно

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров20K

В начале своей карьеры я как-то работал над одним заказом, создавая платформу сентимент-анализа для социальных сетей. В то время Twitter ещё был Twitter’ом. Наша команда состояла из семи человек, среди которых я был джуниором. Мы были молоды и полны энтузиазма. Наш девиз можно было описать как: «Мы гибкие, быстрые и всё ломаем!». Да, мы действительно гордились своей скоростью. Код-ревью? Я вас умоляю. Мы считали эту практику бюрократическим пережитком корпоративного мира.

И что вы думаете? Через несколько месяцев наша база кода стала подобна минному полю. Причём баги нас волновали меньше всего, хотя их была уйма. Реальная проблема заключалась в том, что никто не мог понять код, написанный другими. У нас во многих местах дублировалась логика, и в модулях использовались разные стили кода. Всё было очень печально.

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

Итак, в двух словах: если вы не проводите код-ревью, или делаете их «для галочки», то обрекаете себя на боль, пусть не сразу, но в конечном итоге однозначно. Это можно сравнить с возведением дома на фундаменте из песка. Какое-то время он, может, и простоит, но явно недолго. А в мире стартапов второго шанса у вас может уже не быть.
Читать дальше →
Всего голосов 74: ↑72 и ↓2+70
Комментарии26

Открываем Adobe Flash в Docker в 2024-м

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров4.3K

Шарился я тут в по Интернету в поисках видео событий 15-летний давности и нашел что-то вроде искомого, но никак не смог посмотреть - требовался Adobe Flash. Погуглил я как мне открыть это видео, но рабочих вариантов не нашел. "Ладно" - подумал я: "Challenge accepted". А нам с читателем лишняя возможность потренироваться в создании Docker-контейнеров.

Дисклеймер: использование устаревших версий браузера и самого Flash-плагина несёт потенциальную угрозу безопасности. Используйте этот метод на свой страх и риск.

Итак, начнём с того, что поддержка Flash-плагина была выпилена в Chromium начиная с версии 89. То есть нам нужно что-то где есть более ранняя версия. Это что-то - это Ubuntu 18.04 - там 65я версия, если без апдейтов,а с апдейтами 112-я. В какой-то момент должна была быть и 88-ая, но не нашел где её добыть - если читатель подскажет, буду безмерно благодарен. И так, поехали - создаём Dockerfile

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

Воплощённые типы

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров2K

Всем привет!

Хочу представить вам подход к определению типов, позволяющий сделать ваш код чище и понятнее. Я называю это "Воплощённые типы"("Embodied types").

Воплощённый тип - тип, для которого определена переменная с одинаковым именем и в которой содержится объект с утилитами для этого типа.

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

Перехват трафика мобильных приложений

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров18K

Часто случается так что на необходимом сайте установлена защита от ботов. Например: QRATOR, Cloudflare, Akamai Bot Manager и пр. Можно потратить множество ресурсов на обход этих систем, но если у вашего ресурса есть мобильное приложение, то можно пойти другим путём. В подавляющем большинстве случаев мобильное приложение остается без защиты т.к. методы актуальные в браузерной разработке в мобильной не актуальны. В этой статье мы совершим атаку MITM на приложение [скрыто], узнаем эндпоинты по которым приложение получает данные и получим данные сами.

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

Где изучать DevOps. Бесплатные курсы, книги и полезные материалы

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров29K

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

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

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

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

Эти источники позволяют выбрать наиболее подходящий подход к обучению и материалы для своего учебного процесса. Некоторые из них включают в себя курсы по Docker, Kubernetes, Ansible, Jenkins, Git и другим инструментам, необходимым для успешной работы в области DevOps.

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

В статье я собрал большой список курсов, книг, репозиториев и ресурсов, которые помогут вам стать DevOps-инженером🧑‍💻.

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

Система рендеринга для космического симулятора в Unity

Уровень сложностиСредний
Время на прочтение20 мин
Количество просмотров5.3K

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

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

Надежный обход блокировок в 2024: протоколы, клиенты и настройка сервера от простого к сложному

Уровень сложностиСредний
Время на прочтение45 мин
Количество просмотров136K

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

Вы, наверняка, помните отличный цикл статей на Хабре в прошлом году от пользователя MiraclePtr, который рассказывал о разных методах блокировок, о разных методах обхода блокировок, о разных клиентах и серверах для обходов блокировок, и о разных способах их настройки (раз, два, три, четыре, пять, шесть, семь, восемь, десять, десять, и вроде были еще другие), и можете спросить, а зачем еще одна? Есть две основные причины для этого.

Читать далее
Всего голосов 506: ↑498 и ↓8+490
Комментарии351

Пути внедрения поддержки скриптов в Dart/Flutter

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

А что, если я скажу вам, что есть ряд способов изменения бизнес-логики мобильных приложений без проверки сторами?

«Бред!»- ответят скептики. «Выкладывай!» - ответят энтузиасты.

В рамках данной статьи я предлагаю вам рассмотреть возможные пути для интеграции функционала выполнения скриптов в ваши Dart/Flutter приложения.

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

Пытаясь композировать некомпозируемое: монады

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

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

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

Как я чтение всего контента на RSS переводил

Уровень сложностиПростой
Время на прочтение13 мин
Количество просмотров5.6K

TL;DR В статье рассказывается о том, как мне удалось перевести чтение лент в ВКонтакте**, Telegram, Facebook*, Instagram**, Reddit и почтовых рассылок в единый сервис InoReader. Причем почти без написания своих велосипедов.

Подписаться на RSS
Всего голосов 41: ↑40.5 и ↓0.5+40
Комментарии32

Как написать свою маленькую ОС

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров37K


Большое начинается с малого. Например, ядро Linux 0.0.1 состояло всего из 10 239 строк кода, из них 20% комментарии. Такой проект вполне может осилить студент в качестве курсовой или дипломной работы, программируя по вечерам на домашнем ПК (собственно, Линус и написал его во время учёбы в университете, когда вернулся из армии).

Если один студент смог это сделать тогда, то почему нельзя повторить? И действительно, в интернете есть даже специальные обучающие ресурсы для написания новых ОС и целые сообщества энтузиастов, которые помогают друг другу в этом непростом деле.
Читать дальше →
Всего голосов 108: ↑103 и ↓5+98
Комментарии25

Самое понятное объяснение Специальной теории относительности

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров98K

Специальная теория относительности - удивительная теория, которая опровергла многие представления о мире, в которых человечество не сомневалось всю историю своего существования.

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

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

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

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

Личное облако на Proxmox

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров19K

В прошлой статье (https://habr.com/ru/articles/794508/) я писал как поставить Proxmox 8 на Orange Pi 5(b). Это даже получилось, но я уперся в то, что производитель железки не выпускает свежие ядра под нее. Для железки есть 5.10.160 и оно устарело для Proxmox 8. Виртуалки работают, но есть проблемы с фаерволом. Производитель обещает вот-вот выпустить новое, но ждать я не стал и решил сделать инфраструктуру по другому. О чем и напишу. Получается уже цикл статей. Эта будет описывать цель и первые шаги к ней.

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

Защита Home Assistant

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

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

И все это дельные советы, ничего плохого в них нет, но хочется чего то большего.

Читать далее
Всего голосов 16: ↑12 и ↓4+8
Комментарии21
1
23 ...

Информация

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

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

Mobile Application Developer
Senior
Flutter
Flutter Bloc
MobX
Mobile
Development of mobile applications