Pull to refresh
-3
0.1
Андрей @volt_dweller

User

Send message

Знакомство со Scratch для детей: как установить программу и создать первую игру

Level of difficultyEasy
Reading time7 min
Views3.6K

Язык программирования Scratch — это относительно молодой язык, который появился в 2007 году как способ обучения детей кодингу. Он прост, интерактивен и доступен для ребят, так как в нем не нужно писать строчки кода, составлять скрипты с тегами и классами, подключать внешние библиотеки. Scratch сравним с детской компьютерной игрой: у вас есть сцена, на которой происходит действие с персонажами. Они могут прыгать, бегать, кидать мяч, гонять на машинках и выполнять любые другие действия. Чтобы создать в Скретч программу, нужно построить её из специальных «кирпичиков» — цветных блоков-операторов. Так, при помощи синих блоков мы перемещаем объект на поле, зеленым блоком проводим все математические действия и настраиваем логику, красным задаем значения переменных и так далее.

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

Использование очередей (Queue/Deque) для решения алгоритмических задач на Java

Level of difficultyEasy
Reading time3 min
Views1.9K

Как всегда, сначала немного базовой теории для понимания того, с чем мы имеем дело. 

Queue - однонаправленная очередь, представляет собой структуру данных, которая строится по принципу FIFO (first-in-first-out). Другими словами, чем раньше элемент был добавлен в коллекцию, тем раньше он оттуда будет удален. 

Выжимка по методам:

Читать далее
Total votes 8: ↑4 and ↓40
Comments16

Не используйте Lombok с JPA, пока не прочтете эту статью

Level of difficultyEasy
Reading time8 min
Views9.7K

Lombok — действительно отличный инструмент. Одна строчка кода, и все ваши JPA сущности перестают корректно работать ;) Но это только в том случае, если вы не знаете, какие фичи Lombok можно использовать вместе с JPA, а какие лучше не стоит. 

В этой статье я расскажу про большинство подводных камней, с которыми можно столкнуться, используя Lombok вместе с JPA, и про то, как их обойти используя Amplicode.

Читать далее
Total votes 17: ↑14 and ↓3+14
Comments23

Управление личными делами в Obsidian (прототип)

Level of difficultyHard
Reading time27 min
Views18K

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

Задачи будут создаваться в дневнике/журнале и агрегироваться в отдельных заметках с использованием плагина Tasks.

Система будет адаптирована для телефонов.

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

Задачи и Obsidian? Звучит интересно!
Total votes 13: ↑11 and ↓2+11
Comments10

Устанавливаем и применяем Docker на Repka Pi

Level of difficultyEasy
Reading time16 min
Views2.8K

Сейчас уже, наверное, трудно найти IT-специалиста, который никогда не слышал про Docker — открытую платформу разработки, доставки и запуска приложений в контейнере. У этой платформы много достоинств, в том числе эффективное использование ресурсов, легковесность, скорость, масштабирование, управление версиями приложений и образов, быстрое развертывание и запуск приложений, а также возможность запуска Docker и его приложений практически на любой платформе.

Если можно на любой, то давайте запустим Docker на микрокомпьютере Repka Pi российской разработки и сборки, оснащенной ОЗУ объемом 2 ГБайт. Прочитав нашу статью, вы научитесь использовать Repka Pi для изучения всех основных возможностей Docker, а также создавать приложения Docker, работающие с оборудованием через GPIO и I2C.

Мы расскажем, как установить Docker на Repka Pi, как с помощью двух команд запустить WordPress, как работать из контейнера Docker с пинами GPIO микрокомпьютера, а также напишем программу, получающую данные с погодной станции BME280 через интерфейс I2C.

Зачем Docker нужен на микрокомпьютерах

Установка Docker на Repka Pi

Установка WordPress

Создаем контейнер для работы с GPIO

Контроль и освобождение ресурсов

Загрузка образа контейнера на Docker Hub

Контейнер для работы с I2C

Полезные ссылки

Итоги

 

Читать далее
Total votes 8: ↑6 and ↓2+5
Comments0

Финансовая арифметика в PostgreSQL

Level of difficultyEasy
Reading time5 min
Views10K

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

Читать далее
Total votes 30: ↑26 and ↓4+28
Comments53

Три основных способа оптимизировать ваши запросы в PostgreSQL

Reading time5 min
Views14K

Привет, Хабр!

Представьте себе, вы приходите домой после долгого рабочего дня, и вас встречает пушистый котик. Вы знаете, что он ждет вас, чтобы вы рассказали ему о своих подвигах на работе. И вот, вы начинаете свой рассказ, а он, этот милый мурлыка, вдруг спрашивает: "А как там у тебя с оптимизацией запросов в PostgreSQL?"

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

Читать далее
Total votes 28: ↑14 and ↓14+4
Comments15

Создание видеоадаптера своими мозгами

Level of difficultyMedium
Reading time8 min
Views4.5K

Меня всегда интересовало, как же реализуются видеоадаптеры и искал примеры как их можно реализовать. Я много занимаюсь разной разработкой, в основном программированием, но периодически вспоминаю радиотехнику/схемотехнику. И, исходя из опыта программирования и не только я вспомнил об одной достаточно важной вещи: если хочешь что‑то реализовать, начни с самого простого и потом дорабатывай полученный результат. Таким образом можно будет понять, что же мы всё‑таки хотим сделать и правильным ли путём идём?

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

Для понимания. Создание видеокарты/видеоадаптера не просто и не сложно. Надо понять что вы хотите, что будет делать ваша видеокарта.

Читать далее
Total votes 13: ↑10 and ↓3+13
Comments20

Grafana — прошлое, настоящее, будущее и альтернативы

Level of difficultyEasy
Reading time4 min
Views17K
image

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

В этом году приложению исполняется десять лет, инструмент по-прежнему востребован в России. Поэтому мы решили поговорить об истории Grafana, а также обсудить роль этого открытого решения в развитии open source сообщества в целом.

Читать дальше →
Total votes 10: ↑9 and ↓1+9
Comments2

Людвиг. Победи прокрастинацию. Как перестать откладывать дела на завтра (инструменты из книги)

Level of difficultyEasy
Reading time3 min
Views29K

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

Читать далее
Total votes 10: ↑8 and ↓2+9
Comments20

Shenandoah GC в JDK

Level of difficultyEasy
Reading time5 min
Views3.3K

Привет, Хабр!

Shenandoah GC — это сборщик мусора для OpenJDK, целью которого является минимизация времени пауз, возникающих в результате сборки мусора, путем выполнения процессов эвакуации памяти параллельно с работающими Java‑потоками. Фичей Shenandoah является то, что время пауз GC не зависит от размера кучи, что означает одинаково короткие времена пауз как для кучи размером в 200 МБ, так и для 200 ГБ. Это достигается за счет использования дополнительного указателя косвенности для каждого Java‑объекта, что позволяет потокам GC компактизировать кучу, пока Java‑потоки продолжают выполняться.

Разработка Shenandoah началась с экспериментального проекта, целью которого было предоставление альтернативы другим сборщикам мусора, которые приоритизируют пропускную способность или размер памяти над отзывчивостью. Уже к 12-й версии JDK Shenandoah был готов к использованию, хотя и оставался помеченным как экспериментальная функция. Это состояние сохранялось, чтобы соответствовать статусу других сборщиков мусора, таких как Epsilon GC и ZGC.

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

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

Создание реактивных сервисов Micronaut и Kotlin

Level of difficultyMedium
Reading time11 min
Views2.4K

В данной статье обсудим создание REST-сервиса в “реактивном” исполнении. Приведу примеры кода на Kotlin в двух вариантах: Reactor и coroutines

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

Постфиксный калькулятор на Haskell

Level of difficultyMedium
Reading time6 min
Views1.9K

Можно ли внедрить в Haskell постфиксный калькулятор?

begin push 1 push 2 add end
begin push 1 push 2 push 3 add mul end

На первый взгляд такой код на Haskell не может работать. Функция begin должна иметь произвольное количество аргументов, а Haskell является языком со статической типизацией. Но на самом деле, для написания вариативных (polyvariadic) функций достаточно полиморфизма.

Читать далее
Total votes 11: ↑11 and ↓0+14
Comments0

Обобщённые типы. Часть 3/3. Применение контейнерных типов

Level of difficultyHard
Reading time46 min
Views2.9K

В последней третьей части обзора продемонстрировано, как на основе обобщённых типов-контейнеров реализуются различные ФП-техники “чистого” построения “эффективных” программ. В заключении будет отмечена роль теории категорий в обосновании важности абстракций, построенных над обобщёнными типами.

Читать третью часть обзора
Total votes 6: ↑6 and ↓0+7
Comments3

Обобщённые типы. Часть 1/3. Полиморфные типы высокого рода

Level of difficultyMedium
Reading time37 min
Views6.3K

В предыдущей статье раскрывались некоторые базовые понятия теории типов. В этот раз мы рассмотрим обобщённые типы (generics) – необходимость появления такой абстракции, ключевые особенности и различные сценарии использования в программировании.

Читать первую часть обзора
Total votes 16: ↑16 and ↓0+18
Comments5

Зонтичный мониторинг на коленке

Level of difficultyMedium
Reading time6 min
Views3.8K

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

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

Основные настройки для управления ресурсами в PostgreSQL: настройка памяти, CPU и I/O

Level of difficultyEasy
Reading time6 min
Views11K

Привет, Хабр!

При работе с PostgreSQL (да и в целом с любой БД) важно правильно настраивать и управлять ресурсами, такими как память, процессорное время и дисковые операции, и так далее для обеспечения лучшей производительности и стабильности работы БД.

В этой статье мы как раз и рассмотрим кратко о том, как управлять ресурсами в PostgreSQL.

Читать далее
Total votes 13: ↑12 and ↓1+14
Comments18

Best Practices по подключению к сторонним API в проекте

Level of difficultyMedium
Reading time6 min
Views16K

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

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

Узнать лучшие практики
Total votes 23: ↑22 and ↓1+25
Comments6

Курс «PostgreSQL для начинающих»: #4 — Анализ запросов (ч.1 — как и зачем читать планы)

Level of difficultyMedium
Reading time16 min
Views29K

Продолжаю публикацию расширенных транскриптов лекционного курса "PostgreSQL для начинающих", подготовленного мной в рамках "Школы backend-разработчика" в "Тензоре".

В этой лекции мы узнаем, что такое план выполнения запроса, как и зачем его читать (и почему это совсем непросто), и о каких проблемах с производительностью базы он может сигнализировать. Разберем, что такое Seq Scan, Bitmap Heap Scan, Index Scan и почему Index Only Scan бывает нехорош, чем отличается Materialize от Memoize, а Gather Merge от "просто" Gather.

Как обычно, для предпочитающих смотреть и слушать, а не читать - доступна видеозапись (часть 1, часть 2).

Читать далее
Total votes 34: ↑33 and ↓1+37
Comments4

Развертывание защищенного dev кластера bitnami/kafka в k8s с помощью helm

Level of difficultyHard
Reading time13 min
Views5.5K

Всем привет. На этот раз хотел бы поделиться материалом, связанным непосредственно с devops работой. Недавно возникла потребность раскатить kafka кластер в kubernetes. В ходе развертывания возникло очень много сложностей, встречено множество подводных камней, и, естественно, в большинстве случаев рецепта в интернете найдено не было, поэтому приходилось искать решения самостоятельно методом проб и ошибок. Все, что здесь будет описано это сугубо личный опыт на одном из проектов. Сегодня я расскажу как с нуля раскатить dev контур bitnami/kafka кластера с помощью helm чартов, как обезопасить ваш кластер kafka и какие сложности могут вам встретиться.

Читать далее
Total votes 6: ↑6 and ↓0+6
Comments9
1
23 ...

Information

Rating
3,071-st
Location
Самара, Самарская обл., Россия
Date of birth
Registered
Activity

Specialization

Backend Developer, Fullstack Developer
Senior
From 300,000 ₽
Git
Linux
SQL
PostgreSQL
Docker
OOP
Java
Hibernate
Junit
REST