Pull to refresh
0
0
Send message

Прокачиваем бюджетный семиструн

Level of difficultyEasy
Reading time7 min
Views8.2K


Привет, Хабр! Сегодня я продемонстрирую на примере электрогитары Harley-Benton R-457MN, насколько широкую палитру звучаний можно получить, имея в распоряжении всего-навсего два дешёвых китайских хамбакера.

Причём встраивать активную электронику, дополнительные тумблеры и «пуш-пул» потенциометры с подъёмной ручкой не понадобится. Внешняя эстетика инструмента не меняется от слова «совсем», батарейки или аккумуляторы не требуются, а интуитивно понятный пикгард не превращается в запутанный космический пульт.

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

Туториал по Spring Data Envers для начинающих

Level of difficultyEasy
Reading time9 min
Views7.6K

Команда Spring АйО перевела статью, которая отлично подойдёт тем, кто ещё не знаком со Spring Data Envers. В статье на простых примерах объясняется, как отслеживать изменения данных в приложении, используя этот инструмент.

Читать далее

Лучший способ создания нескольких окружений для Spring Boot приложения с помощью Docker Compose

Level of difficultyEasy
Reading time10 min
Views5.6K

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

Читать далее

1001-ый способ миграции на асинхронный Python

Level of difficultyMedium
Reading time5 min
Views8.6K

Если вы пишите на Python, то наверняка давно хотите все свои сервисы переписать на asyncio. Вот и я хотел, но не из‑за того, что стильно‑модно‑молодёжно, а потому что уже болело.

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

Читать ещё одну статью про GIL и asyncio

Django приложение в докере. Логирование и мониторинг (тоже в докере)

Level of difficultyEasy
Reading time2 min
Views2.3K

Обещанная вторая часть. Первая часть здесь.

Основной идеей было настроить все с минимальным количеством ручных действий для работы легирования и мониторинга.

Одно ручное действие все же потребуется — указать хост (или ip), по которому Prometheus будет собирать метрики. В остальном все заработает просто по docker-compose up.

Читать далее

Подготовка Django приложения для локальной разработки и деплоя

Reading time3 min
Views2.6K

Поговорим про настройку приложения для двух сред «разработки» local и условного прода. Локально приложение будет запускаться с установкой всего необходимого на компьютер, то, что дальше я буду именовать продом будет представлять из себя запуск через docker-compose.

Что это за приложение по сути значения не имеет, из особенностей — там будет celery поверх redis и Postgres, как персистентное хранилище. Код приложения можно посмотреть здесь.

Настроим переменные окружения для двух разных сред и подготовим код под это.

Настроим логирование через Loki и Grafan-у. Настроим мониторинг через Prometheus в ту же Grafan-у.

Поехали

Как паровой человек не пришёл к успеху

Reading time5 min
Views7.7K
image
Источник

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

Казалось бы — ну, паровая машина. Дальше-то что?

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

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

Которые его особо никуда не привели.
Читать дальше →

Тестирование лучших self-hosted аналогов Notion

Level of difficultyEasy
Reading time6 min
Views33K

image


Хабр, в связи с уходом Notion выросла потребность в аналогичном решении, которое бы было сопоставимо удобной Wiki, Task Manager — платформе. 


Я испробовал десять self-hosted решений и нашел несколько почти идеальных! Вы можете развернуть их у себя на сервере, при работе над совместными проектами с командой или для ведения личных записей.

Читать дальше →

Автоматизируем проверку содержимого PDF-файлов с помощью pdf-test

Level of difficultyMedium
Reading time5 min
Views6.1K

Многие сервисы в различных отраслях генерируют печатные формы счетов, отчётов и прочего в формате PDF. И, конечно, перед специалистами тестирования встаёт вопрос о проверке этих документов.

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

В этой статье мы познакомим вас с инструментом, который достаточно просто может закрыть потребность в проверке содержания PDF-файлов. Это инструмент с открытым исходным кодом — pdf-test. Он по сути является обёрткой pdfbox и позволяет из коробки использовать основные мэтчеры, не задумываясь о том, чтобы писать свои или о том, как именно парсить документ. Рассмотрим далее его применение на языке Java.

Читать далее

Проверка содержимого PDF-файлов средствами Python и pdfminer. Часть 1

Level of difficultyMedium
Reading time12 min
Views6.8K

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

Читать далее

Почему ты не можешь просто начать меньше есть, чтобы снизить вес? 3 главные причины

Level of difficultyEasy
Reading time6 min
Views27K

“Все решено, завтра начинаю меньше есть!”

Если с этого обычно начинается твое стремление к лучшей фигуре и здоровому телу, то я буду тем тренером, который остановит тебя от этого.

“Да просто жрать надо меньше” — самая простая и распространенная рекомендация, которой в какой-то момент хочется просто взять и начать следовать.

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

Читать далее

Взаимодействие микросервисов между собой

Level of difficultyMedium
Reading time5 min
Views9.4K

Следующий возникающий в голове вопрос, когда разобрался с тем, как работать с данными в данной архитектуре (а может у кого то этот вопрос стоит первым) - как микросервисы будут взаимодействовать между собой?

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

Читать далее

Структурное логирование в Spring Boot 3.4

Level of difficultyEasy
Reading time5 min
Views9.3K

С выходом Spring Boot 3.4 логирование стало ещё удобнее: теперь логи можно записывать в более унифицированном формате, что упрощает их анализ и обработку.

В новом переводе от команды Spring АйО мы разберем основные шаги для настройки и использования этой технологии в проекте.

Читать далее

Раскрываем секреты роя: оптимизация на Python с помощью PSO

Level of difficultyMedium
Reading time13 min
Views9.2K

Начну с небольшой шутки:

"Знаете ли вы, что до изобретения часов людям приходилось активно ходить повсюду и спрашивать время?"

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

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

Индивидуально оптимальная позиция: то, что особь считает наилучшим для себя.

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

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

Данный алгоритм известен как оптимизация роем частиц (Particle Swarm Optimization, PSO). Возможно, это звучит несколько сложно. Что подразумевается под "оптимизацией"? Какова роль математики в этом процессе? Что именно оптимизируется? В статье я постараюсь подробно разъяснить все эти моменты. Более того, мы применим ООП на Python для создания собственного класса ParticleSwarmOptimizer(). И таким образом, мы пройдем путь от теоретических основ PSO до их практической реализации.

Итак, приступим! Желаю приятного чтения.

Читать далее

В помощь разработчику: 6 полезных библиотек визуализации данных

Reading time5 min
Views7.6K

Привет, жители Хабра! Я Саша Пиманов, ведущий iOS-разработчик в МТС Диджитал. В прошлый раз я рассказывал, что почитать начинающим разработчикам. А сегодня поделюсь подборкой из шести библиотек, которые помогут в ежедневной работе. Среди них простые и сложные, с возможностью глубокой кастомизации и без нее. Все они могут здорово облегчить работу программиста, когда нужно визуализировать какие-то данные. Подробности — под катом.

Читать далее

Что не так со статьями о выгорании

Level of difficultyMedium
Reading time26 min
Views17K

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

Читать далее

Обходим блокировку VPN

Level of difficultyMedium
Reading time2 min
Views76K

Мой провайдер помимо замедления (читай полная блокировка) YouTube так-же стали блокировать соединения с моими рабочими VPN. Работодатель не очень любит, когда на встречах на вопрос о прогрессе, я неделю отвечаю, что у меня не работает VPN! Своими действиями, мой провайдер сам меня подтолкнул к поиску обходных путей.

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

Добавлю, я использую nftables и nfqws, если этот вариант работает у меня — это не значит, что оно заработает и у вас! Возможно, вам придётся изменить некоторые параметры.

Читать далее

Статический анализ структуры базы данных в проекте GitLab

Level of difficultyEasy
Reading time4 min
Views2.3K

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

Читать далее

Улучшаем python код в пару кликов

Level of difficultyEasy
Reading time7 min
Views3.3K

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

В статье научимся писать код в единой стилистике и даже делать это автоматически.

Улучшать проекты!

GPT — технология добра/зла

Level of difficultyMedium
Reading time10 min
Views2.1K

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

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

Ближе к делу.

Читать далее

Information

Rating
5,519-th
Registered
Activity