Как стать автором
Обновить
0
0
Константин Мариненков @dwdraugr

PHP & Golang back-end developer

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

История Android от L до T

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

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

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

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

Действующий процессор на 13 микросхемах стандартной логики

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


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

Действующая модель называется "TD4 CPU", является проектом с открытыми исходниками, реально работает и позволяет понять устройство и принцип работы процессора.
Читать дальше →
Всего голосов 85: ↑84 и ↓1+109
Комментарии54

Книга «Роберт Мартин рекомендует. Код, который умещается в голове: эвристики для разработчиков»

Время на прочтение13 мин
Количество просмотров19K
image Приветствуем Вас, Хаброжители!

Незаменимые практические советы по написанию кода в устойчивом темпе и по управлению сложностью, из-за которой проекты часто выходят из-под контроля. В книге описываются методы и процессы, позволяющие решать ключевые вопросы: от создания чек-листов до организации командной работы, от инкапсуляции до декомпозиции, от проектирования API до модульного тестирования. Автор иллюстрирует свои выводы фрагментами кода, взятыми из готового проекта. Написанные на языке C#, они будут понятны всем, кто использует любой объектно-ориентированный язык, включая Java, C++ и TypeScript. Для более глубокого изучения материала вы можете загрузить весь код и подробные комментарии к коммитам.
Читать дальше →
Всего голосов 16: ↑15 и ↓1+17
Комментарии15

Зачем в Switch SDK три разных sin?

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

Работая в компании Gaijin несколько лет назад, мне довелось поучаствовать в портировании пары игр компании на консоль Nintendo Switch, тогда вовсю завоевывающую новые рынки. Для меня это стало первым крупным проектом на этой платформе. А с учетом, что ни команда, ни разработчик движка с платформой, системой сборки и вообще экосистемой Нинтендо знакомы не были, то все грабли приходилось искать и бережно на них наступать. Чтобы опробовать возможности новой платформы, параллельно с портированием игры, был написан внутренний middleware (связка dagor engine + nxsdk + jam) и код обрастал всевозможными тестами, build matrix, бенчмарками, прогоном стабильности и другими внутренними проверками. Надо отметить что на момент 2018 года, в самом switch sdk не было реализовано часть posix функций вроде poll и send/receive, и большая часть функций для работы с файлами, posix прослойку нужно было писать самим. Дошли тогда руки и до написания различных бенчмарков для функций стандартной библиотеки, и были замечены некоторые аномалии в поведении части тригонометрических функций в различных режимах сборки. Для справки, sdk использует урезанный вариант musl libc (https://www.musl-libc.org/), все статически линкуется в один большой бинарник clang'ом от Нинтендо 9 версии (2018 год), который потом запускается на консоли. Доступа к исходникам самой libc в исполнении Нинтендо у нас не было, но всегда можно посмотреть дизасм и боле менее представить что происходит.

Раскопки на месте
Всего голосов 57: ↑57 и ↓0+57
Комментарии9

Как создатели мемных спин-оффов «Зельды» изменили российскую индустрию игр и анимации

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

Что общего между мемами про Моршу, квестом по Warcraft, «Масяней», «Смешариками» и Jedi Outcast.

Animation Magic Inc. (ООО «АМИ») — одна из первых крупных российских игровых студий. Она была открыта в 1992 году в Санкт-Петербурге и в основном занималась аутсорсом для западных издателей. Ещё это первая отечественная студия, которая на момент открытия имела американское подразделение и команду разработчиков из 50 человек. И это в те годы, когда из известных российских игр был разве что Tetris Алексея Пажитнова, Perestroika Никиты Скрипкина и Color Lines от студии Gamos.

Сегодня об Animation Magic вспоминают только в контексте отменённого квеста по вселенной Warcraft да неканоничных частей The Legend of Zelda, анимационные ролики из которых ещё в нулевые стали популярными интернет-мемами. Обе части Zelda рьяно критикуют и высмеивают уже два десятилетия, но в отрыве от критики — о студии почти ничего неизвестно.

И очень печально, ведь выходцы из Animation Magic серьёзно повлияли на формирование игровой и анимационной индустрии в России. Этим материалом мы хотели бы восстановить историческую справедливость: разобрать полный творческий путь студии, развеять мифы и опубликовать ранее неизвестные факты.
Читать дальше →
Всего голосов 39: ↑36 и ↓3+45
Комментарии4

My4TH — домашний компьютер без процессора

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

Этот обзор посвящен открытому проекту компьютера My4TH по информации от разработчика: Авторский сайт проекта:

My4TH (произносится как "мой четвертый") - это четвертый домашний компьютер без процессора после MyCPU, MyNOR и TraNOR. Автор хотел и построил максимально простой компьютер с дискретным процессором, использующим как можно меньше элементов и компонентов, под управлением операционной системы Forth.

Смотреть обзор
Всего голосов 53: ↑52 и ↓1+66
Комментарии21

Как за полчаса написать простую читалку книг FB2 для десктопа на Java

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

Недавно мне для личных целей понадобилось написать читалку FB2. И сразу я столкнулась с тем, что информации по теме минимум. Палочка-выручалочка под названием ChatGPT выдал что-то невразумительное в ответ на довольно подробный запрос. К тому же, никаких готовых библиотек, чтобы по-быстренькому наваять ридер, я также не смогла обнаружить. Хотя искала долго и упорно, как Чубакка расческу.

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

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

Читать далее
Всего голосов 18: ↑13 и ↓5+13
Комментарии69

5 выводов, сделанных за 3 года работы разработчиком 1С

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

Эта статья будет интересна тем, кто только начинает свой путь и ищет куда податься. В университетское время я периодически читал различные статьи на Хабре и других ресурсах на тему карьеры в IT. Очень часто я встречал снисходительное отношение к «1С-никам» и поддался этому влиянию. Но в середине 3-его курса сам стал программистом-стажёром 1С. Почти за три года работы я сделал для себя несколько выводов. И это только моё субъективное мнение.

Читать далее
Всего голосов 25: ↑20 и ↓5+21
Комментарии160

userver — что мы узнали за полгода в open-source

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров20K
image
Прошло больше полугода с момента выхода фреймворка для C++ ? userver в open-source. За это время мы многое узнали, на многом настрадались, а главное — получили много приятных сюрпризов.

И мы решили об этом написать. Рассказ будет полезен тем, кто ведёт или планирует вести свой open-source проект или занимается контрибьютами. Остальным будет интересно почитать про чужое набивание шишек и что вообще open-source даёт проекту.
Читать дальше →
Всего голосов 55: ↑54 и ↓1+64
Комментарии29

И снова про VGA

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

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

Читать далее
Всего голосов 104: ↑103 и ↓1+132
Комментарии39

Поднимаем Kubernetes с нуля

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

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

Читать далее
Всего голосов 30: ↑27 и ↓3+30
Комментарии55

Полное практическое руководство по Docker: с нуля до кластера на AWS

Время на прочтение39 мин
Количество просмотров1.7M



Содержание



Вопросы и ответы


Что такое Докер?


Определение Докера в Википедии звучит так:


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



Ого! Как много информации.

Читать дальше →
Всего голосов 125: ↑124 и ↓1+123
Комментарии44

Странный мир путей файлов в Windows

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

Пути файловых систем в Windows страннее, чем можно подумать. В любой производной от Unix системе пути на удивление просты: если нечто начинается с /, то это путь. Но всё совершенно иначе в Windows, которая имеет озадачивающее разнообразие схем составления пути.

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

Стоит заметить, что статья ограничивается только тем типом путей, который видит пользователь приложений Windows (обусловленный Win32 API). Под этим слоем есть ещё больше любопытного, в основном касающегося тех, кто пишет драйверы оборудования и тому подобное.
Читать дальше →
Всего голосов 178: ↑178 и ↓0+178
Комментарии100

Wix toolset: не так страшен черт, как Windows installer

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

В статье я хотел бы поделиться своим опытом написания инсталлятора для Windows с использованием инструмента Windows Installer XML Toolset (далее - Wix). К сожалению, несмотря на всю мощь данного инструмента, его использование сильно осложняется куцей документацией, старенькими кукбуками, вялыми ветками форумов и вытеснением .msi и .exe пакетов контейнеризацией. Однако, сегодня продолжают активно развиваться и создаваться программные продукты требующие развертывания на виндовой машине с использованием традиционных установочных пакетов.

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

Программная реализация шифровальной машины «Энигма» на языке Си

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

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

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

Пишем игру от первого лица в 2КБ на Rust

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

Введение


Поначалу кажется, что создать игру от первого лица без движка или графического API практические невозможно. В этом посте я расскажу, как это сделать при помощи алгоритма под названием ray casting.

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

Для начала разберёмся, как работает алгоритм, а затем построчно напишем его. Затем мы пересмотрим код, добавим несколько возможностей и оптимизируем его размер. Я постарался сделать пост максимально доступным и дружелюбным, но вам поможет приличное знание программирования, Rust и основ геометрии.
Читать дальше →
Всего голосов 61: ↑60 и ↓1+76
Комментарии10

Первая микросхема :)

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

Предисловие


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

Кроме того, мои усилия сопровождались лишь самыми положительными отзывами и поддержкой со всего мира. Искренне благодарен всем, кто мне помогал, давал советы и вдохновлял на этот проект. Особенно моим удивительным родителям, которые не только всегда поддерживают и поощряют меня как только могут, но и предоставили рабочее место и смирились с затратами на электроэнергию… Спасибо!



Без дальнейших церемоний представляю первую интегральную схему (ИС), изготовленную литографическим способом в домашних (гаражных) условиях — PMOS-чип двойного дифференциального усилителя Z1.
Читать дальше →
Всего голосов 146: ↑146 и ↓0+146
Комментарии167

Компилятор с полностью гомоморфным шифрованием от Google

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

Ещё в мае 2022 года я переориентировал пару команд в Google на разработку полностью гомоморфного шифрования (вот объявление об этом в рассылке). С тех пор я участвовал в работе над многими проектами в этой области, в частности, руководил поддержкой на github.com/google/fully-homomorphic-encryption – это опенсорсный ПГШ-компилятор для C++. В этой статье даётся вводная информация о том, как при помощи этого инструмента компилировать программы с расчётом на ПГШ. Также пробежимся по тому, из чего этот компилятор состоит.

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

В чем отличие Linux от Windows и почему я перестал пользоваться продуктами Microsoft

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

Тема довольно популярна, особенно в последнее время, из-за блокировки Microsoft собственного сайта для скачивания окон в России. Конечно, это не стало серьезным препятствием для продвинутых пользователей. Многие задумались о переходе на другую операционную систему. MacOS такой же коммерческий проект, как и Windows. И после подобного поведения компании, у которой находится большинство пользователей настольных пк в мире, никто не гарантирует, что в компании Apple не захотят поступить также. Linux на этом фоне стал куда более привлекательным, поскольку относится к открытому программному обеспечению.

Читать далее
Всего голосов 125: ↑32 и ↓93-51
Комментарии558

Введение в нечёткую логику

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

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

Создавая такой алгоритм, вы заметите, что просто замусориваете ваш код логикой if-else (пока он не превратится в кашу), а самим вам начинает казаться, что вот так просто не прокатит.

Итак, если только вас не пробирает дрожь от математики – читайте дальше. Здесь в дело вступает нечёткая логика! Немного контекста: слово «нечёткий» (англ. «fuzzy») в данном случае означает «труднопонимаемый» — таков может быть, например, код вашего коллеги.

В этом посте я постараюсь объяснить нечёткую логику и объяснить, как она работает.
Читать дальше →
Всего голосов 18: ↑15 и ↓3+21
Комментарии20

Информация

В рейтинге
Не участвует
Откуда
Тбилиси, Грузия, Грузия
Зарегистрирован
Активность

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

Backend Developer, Fullstack Developer
Senior
От 5 000 €
Git
PostgreSQL
Docker
SQL
PHP
Yii framework
Symfony
MySQL
Linux
Golang