Pull to refresh
4
0
Максим @makdoc

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

Send message

RGB Дерево-ночник

Reading time15 min
Views9.8K

Представьте, сумерки, зимнее время, зажигается праздничная иллюминация, всё красиво, будто в сказке. Гирлянды всюду: на столбах, зданиях, деревьях. Есть желание забрать этот кусочек сказки с собой? Нет, вандализмом заниматься не будем. Но можем создать осколок такой сказки у себя дома.

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

Основы Java Bytecode

Reading time29 min
Views32K

Внимание, статья содержит довольно много картинок и получилась довольно тяжелой и объемной

Как и многие базовые вещи на habr уже были статьи о bytecode, основные же отличия данной статьи - в попытке визуализировать, что происходит внутри, и краткий справочник инструкций (может кому пригодиться), многие с примерами использования.

В данной статье будут рассмотрены только основы Java Bytecode. Если вы уже знакомы с его основами, статья вряд ли будет вам интересна.

Вглубь
Total votes 14: ↑14 and ↓0+14
Comments5

Попытка создать java Framework для телеграм ботов

Reading time8 min
Views5.1K

У меня иногда появлялось желаение делать ботов для телеграм, так мой основной язык Java - выбор не велик и он меня не устраивает. Каждый раз нужно было придумывать какие-то схемы обработки приходящих апдейтов и мучаться с этим всем. Либо был другой выбор - всякие непонятные Abilities / Replies, по которым нет информации нигде, а еще они используют внутри свою странную БД.

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

Читать далее
Total votes 5: ↑4 and ↓1+3
Comments2

Как сделать ОС для микроконтроллера

Reading time33 min
Views25K

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

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

Читать далее
Total votes 35: ↑31 and ↓4+37
Comments45

Как spring-kafka обрабатывает сообщения и не мешает ли этому auto-commit?

Reading time6 min
Views27K

В предыдущей статье мы рассмотрели как работает KafkaConsumer и как реализован механизм auto-commit. 

В этой статье я хочу остановиться на том как получает и обрабатываются сообщения spring-kafka. 

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

Разработка системы аутентификации на Java+Tarantool

Reading time23 min
Views7.6K
Системы аутентификации есть везде. Пока вы скучаете в лифте по пути с седьмого этажа на первый, можно успеть проверить баланс в приложении банка, поставить пару лайков в Instagram, а потом проверить почту. Это минимум три системы аутентификации.

Меня зовут Александр, я программист в отделе архитектуры и пресейла в Mail.ru Group. Я расскажу, как построить систему аутентификации на основе Tarantool и Java. Нам в пресейле очень часто приходится делать именно такие системы. Способов аутентификации очень много: по паролю, биометрическим данным, SMS и т.п. Для наглядности я покажу, как сделать аутентификацию по паролю.

Статья будет полезна тем, кто хочет разобраться в устройстве систем аутентификации. На доступном примере я покажу все основные части архитектуры, как они связаны между собой и как работают в целом.
Читать дальше →
Total votes 27: ↑27 and ↓0+27
Comments6

Делаем сервер из Android-телефона

Reading time8 min
Views125K

Некоторое время назад мне пришла в голову интересная идея — превратить свои старые телефоны (их скопилось немало за десять лет) в серверы, в качестве альтернативы покупке Raspberry Pi.


image


На то было несколько причин: во-первых, у телефонов есть батарея, что для сервера практически бесплатный мини-UPS, во-вторых, внутренняя память смартфона (UFS) работает быстрее и надёжнее, чем SD-карта. В-третьих, у телефонов имеется экран, по которому можно отслеживать состояние сервера.


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


TL;DR: в этом посте будут разобраны вопросы установки PostmarketOS на смартфон,
поднятия на нём в качестве примера Docker и веб-приложения в нём.

За длинной версией под кат
Total votes 99: ↑98 and ↓1+128
Comments97

Памятка по жизненному циклу Android — часть I. Отдельные Activity

Reading time3 min
Views16K

Android спроектирован так, чтобы использование приложения пользователем было максимально интуитивным. Чтобы обеспечить такое взаимодействие с пользователем, вы должны знать, как управлять жизненными циклами (ЖЦ) компонентов. Компонентом может быть Activity, Fragment, Service, класс Application и даже сам процесс приложения. Компонент имеет жизненный цикл, в течение которого он проходит через различные состояния. Всякий раз, когда происходит переход, система уведомляет вас об этом при помощи методов жизненного цикла. В этой статье мы разберем то, как устроен ЖЦ Activity на основе нескольких распространенных сценариев использования.

Читать далее
Total votes 5: ↑4 and ↓1+3
Comments0

Дополнение к умному дому: автоматические жалюзи

Reading time5 min
Views14K

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

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

Как стать Java разработчиком в 35+

Reading time6 min
Views25K

Всем привет!  Хочу написать свою первую статью о моём пути из менеджера по продажам / руководителя департамента одного из крупных банков / индивидуального предпринимателя в разработчики, который длился без немногого 2 года. Я постараюсь предоставить некоторые советы и рекомендации тем, кто в начале или середине пути в освоении разработки. Искренне надеюсь, что эта статья будет полезна тем, кто сейчас изучает Java или только планирует заняться ее изучением.

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

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

Ассемблер RISC-V для начинающих

Reading time12 min
Views42K

Если вы не знаете ни одного ассемблера, или, возможно, не имеете большого опыта кодинга как такового, то ассемблер RISC-V может быть одним из лучших вариантов для того, чтобы погрузиться в эту тему. Конечно, материалов по ассемблеру x86 гораздо больше. Больше людей, которые могут в этом помочь. Но x86 - это чудовище, имеющее более 1500 различных инструкций.

Архитектура RISC-V, напротив, придумана специально для того, чтобы быть простой в изучении и вместе с тем, практически эффективна для реализации высокопроизводительных микропроцессоров.

Если вам необходим хороший старт, и вы не знаете ничего о микропроцессорах, вы можете прочесть мою статью "Как работает современный микропроцессор?" (How Does a Modern Microprocessor Work?).

Если вы хотите чего-нибудь простого и весёлого, можете начать с различных игр, в основе которых лежит программирование на ассемблере: Learn Assembly Programming the Fun Way.

Другим может понравиться ретропроцессор, такой, как 6502, использовавшийся в Commodore 64. Но проблема в том, что он окончательно устарел. При его разработке не учитывались реалии сегодняшнего дня.

Большой плюс RISC-V состоит в том, что он обладает современным и простым набором команд, спроектированным с учётом современных требований, таких как медленный доступ к памяти, использование предсказателя переходов, суперскалярного out-of-order выполнения команд и т.д.

Если вам интересно всё это, прочтите: Why Is Apple’s M1 Chip So Fast?

Перед тем, как мы начнём, можете распечатать это: James Zhu RISC-V Reference.

Читать далее
Total votes 35: ↑34 and ↓1+50
Comments33

DI не из ада

Reading time4 min
Views16K

Год назад я написал статью про DI в Spring/Java EE. Мой тезис звучал довольно категорично: "DI через конструкторы является единственно правильным. Все остальное – от лукавого". Прошло время, я пообщался с разными разработчиками на эту тему, сменил проект, компанию, провел множество собеседований, отсмотрел большое количество строк на code-review и сейчас могу сказать, что не все так однозначно. Давайте наконец разберемся, как же все-таки инжектить правильно.

Читать далее
Total votes 3: ↑2 and ↓1+1
Comments12

Разработка однофазного измерительного прибора на ESP32

Reading time10 min
Views9.6K

Ранее рассказывал о разработке 3х фазного измерительного прибора ИРИС. Недавно мы выпустили однофазную версию этого устройства. Изначально задача звучала «По-быстрому, сделать однофазную версию с минимальными изменениям: вырезать же проще, чем разрабатывать новые функции». Но потом прозвучала фраза «А давайте все сделаем на ESP32, зачем нам 2 микроконтроллера в таком простом приборе». В итоге, поменялась как аппаратная, так и программная платформа проекта.

Читать далее
Total votes 6: ↑5 and ↓1+5
Comments44

Формирование объектов PL/SQL для выгрузки отчётов в формате XLSX с помощью Java и пакета AS_XLSX

Reading time3 min
Views5.1K

Часто приходится делать различные выгрузки отчётов в формате XLSX из Oracle, используя PL/SQL developer (Oracle 11g2). Так часто, что решил автоматизировать этот процесс на Java. Язык Java изучаю сам по книгам и видеокурсам уже четвёртый год, поэтому если будут какие-то дополнения или замечания по коду, то опишите их здесь.

Выгрузка из PL/SQL делается при помощи библиотеки AS_XLSX.

Gui создан для удобства. Скачал jar, открыл его (должна быть установлена Java на компьютере), указал параметры и столбцы, нажал кнопку, получил готовый код для вставки в пакет PL/SQL (сэкономил нервы и время).

Читать далее
Total votes 4: ↑2 and ↓2+4
Comments21

Общаемся с дисплеем SSD1306 по i2c

Reading time4 min
Views17K

Все любители электронных самоделок когда-нибудь приходят к желанию отобразить работу своей поделки на экране в виде текста или графики. Самый бюджетный способ сделать это — обратиться к алфавитно-цифровому дисплею типа LCD1602 или LCD2004, общение с которыми происходит либо по параллельному интерфейсу, либо через переходник-конвертор в I2C. Второй способ — использовать графический дисплей, их множество, например SSD1306 с размером матрицы 128x64 пикселя.

Читать далее
Total votes 7: ↑6 and ↓1+9
Comments18

Делаем лампочку вечной и суперэффективной

Reading time3 min
Views92K
Я нашёл новую отличную светодиодную лампу, которую можно за пять минут превратить в вечную.
Получится лампа, дающая 816 лм, с рекордной эффективностью почти 150 лм/Вт и почти неограниченным сроком службы.

Читать дальше →
Total votes 110: ↑106 and ↓4+135
Comments170

Регулярные выражения. Всё проще, чем кажется

Reading time7 min
Views114K

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

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

Читать далее
Total votes 40: ↑36 and ↓4+41
Comments71

Ультразвуковой дальномер на Arduino

Reading time5 min
Views21K

Не так давно я начал увлекаться Arduino и разработкой под микроконтроллеры. Собравшись делать проект дальномера с выводом информации на OLED-дисплей, я так и не нашел полноценного и качественного гада в Сети. Поэтому решил написать его сам.

Поехали!
Total votes 21: ↑11 and ↓10+7
Comments29

Spring Boot + ControllerAdvice + ResponseBodyAdvice или как обернуть ответ контроллеров

Reading time10 min
Views29K

Всем привет, друзья! Сегодня хочу рассказать про способ использование Controller Advice для оборачивания объекта, возвращаемого контроллерами, в новый класс на уровне DispatcherServlet.

Читать далее
Total votes 6: ↑5 and ↓1+7
Comments6

Information

Rating
Does not participate
Location
Ташкент, Ташкентская обл., Узбекистан
Date of birth
Registered
Activity