SILLYFEED

Программирование — страница 3

Лента темы

internet-lab.ru
⌨️ Как перезагрузиться из initramfs?Initramfs (initial RAM file system) — это временная файловая система, которая загружается в оперативную память (RAM) вместе с ядром Linux на начальном этапе загрузки системы.Зачем нужен initramfs?Когда компьютер включается, ядро должно получить доступ к настоящей корневой файловой системе (там, где лежат ваши программы и настройки, например /, /home, /usr). Но чтобы прочитать эту корневую файловую систему, ядру часто нужны драйверы (например, для жесткого диска NVMe, RAID-массива, LVM или шифрования). Возникает парадокс: драйверы лежат на корневой файловой системе, но чтобы их прочитать, ядру нужно уже знать, как работать с диском.Initramfs решает эту проблему: она содержит минимальный набор утилит, драйверов и скриптов, который ядро может запустить сразу. Эта мини-система обнаруживает диски, загружает нужные модули, открывает шифрование (спрашивая пароль), находит настоящую корневую файловую систему и монтирует её. После этого initramfs передаёт управление реальному процессу init (например, systemd), а сама выгружается из памяти.Пишу reboot, — не работает.#linuxhttps://internet-lab.ru/initramfs_reboot
Библиотека джависта | Java, Spring, Maven, Hibernate
🗓 Выброси Date и забудь Calendar Если ты работал с java.util.Date или Calendar, то сталкивался с этими проблемами. Мутабельные объекты, месяцы с нуля, запутанный API. В Java 8 появился java.time (JSR-310), и это то, что должно было быть с самого начала.🔹 Instant — source of truthInstant now = Instant.now(); // 2024-01-15T19:00:00Z// Из Unix timestampInstant fromSeconds = Instant.ofEpochSecond(1705341600L);// Получить timestamplong epochMilli = now.toEpochMilli();// АрифметикаInstant later = now.plusSeconds(3600); // +1 час// Наносекундная точность (не то что Date с миллисекундами)long nanos = now.getNano();Храни в БД именно Instant. Никакой TZ-зависимости и никаких сюрпризов.🔹 LocalDateTime, когда TZ не нужнаLocalDateTime dt = LocalDateTime.of(2024, 1, 15, 19, 0, 0);LocalDateTime parsed = LocalDateTime.parse("2024-01-15T19:00:00");// ✅ Юзер ввёл дату без TZ// ✅ Бизнес-логика без мультирегиональности// ❌ Хранение в БД — используй Instant// ❌ API-ответы — неоднозначно без TZ🔹 ZonedDateTime для пользователейZonedDateTime ny = ZonedDateTime.now(ZoneId.of("America/New_York"));ZonedDateTime tokyo = ZonedDateTime.now(ZoneId.of("Asia/Tokyo"));// Конвертация между TZ — один и тот же момент времениZonedDateTime london = ny.withZoneSameInstant(ZoneId.of("Europe/London"));DST обрабатывается автоматически:// 10 марта 2:30 AM не существует (переход на летнее время)LocalDateTime nonExistent = LocalDateTime.of(2024, 3, 10, 2, 30);ZonedDateTime adjusted = nonExistent.atZone(ZoneId.of("America/New_York"));// → автоматически станет 3:30 AM EDT🔹 ZonedDateTime vs OffsetDateTime// ZonedDateTime — знает правила DST, для будущих датZonedDateTime zdt = ZonedDateTime.now(ZoneId.of("America/New_York"));// OffsetDateTime — просто смещение, без DST. Для прошлых событий и APIOffsetDateTime odt = OffsetDateTime.now(ZoneOffset.ofHours(-5));🔹 DateTimeFormatter для форматирования и парсингаLocalDateTime dt = LocalDateTime.of(2024, 1, 15, 19, 0, 0);// Predefineddt.format(DateTimeFormatter.ISO_LOCAL_DATE_TIME); // "2024-01-15T19:00:00"dt.format(DateTimeFormatter.BASIC_ISO_DATE); // "20240115"// CustomDateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");dt.format(fmt); // "2024-01-15 19:00:00"// Парсинг с обработкой ошибокpublic static Optional<LocalDateTime> parse(String s) { try { return Optional.of(LocalDateTime.parse(s, fmt)); } catch (DateTimeParseException e) { return Optional.empty(); }}🔹 Шпаргалка по токенамyyyy → 2024 MM → 01 dd → 15HH → 19 (24h) hh → 07 (12h) mm → 00ss → 00 SSS → 123 a → PMz → EST Z → -0500 VV → America/New_York🔹 Duration vs Period // Duration — точный временной интервалDuration duration = Duration.ofHours(24); // ровно 86400 секунд// Period — календарный интервалPeriod period = Period.ofDays(1); // 1 день (может быть 23 или 25 ч. при DST!)// Оба работают с LocalDateTime, но семантика разная:dt.plus(Duration.ofHours(24)); // +86400 секdt.plus(Period.ofDays(1)); // +1 календарный день🔹 Миграция с легаси// Date → InstantInstant instant = oldDate.toInstant();// Instant → DateDate date = Date.from(instant);// Date → LocalDateTimeLocalDateTime ldt = oldDate.toInstant() .atZone(ZoneId.systemDefault()) .toLocalDateTime();══════ Навигация ══════Вакансии • Задачи • Собесы🐸 Библиотека джависта #Enterprise
Айтишник в ватничке
Админское-бытовое. У нас была кружка пива, беспаечная макетная плата, контроллер ESP8266, высокочастотный преобразователь напряжения, пара высокотоковых драйверов двигателей постоянного тока, два электронных гироскопа, лабораторный блок питания и мощный линейный блок для конечной конструкции, а также коробка проводов dupont разных цветов и размеров (буквально). Не то, чтобы это был необходимый запас для создания рабочего стола. Но если уж начал собирать управляющую электронику для подъёмного механизма - сложно остановиться. Единственное, что вызывало у меня опасения - включение этой схемы в систему умного дома. Нет ничего более беспомощного, безответственного и испорченного, чем человек собирающий устройства IoT в какой-нибудь богомерзкий Home Assistant. Я знал, что рано или поздно мы перейдём и на эту дрянь.📱 Айтишник в ватничке
Здравые мысли
123apps — мультитул для файлов, который заменит кучу сервисов 🛠Мы нашли сервис, в котором собрано вообще все, что только может понадобиться для работы с видео, аудио, PDF, картинками и кучей других форматов. Выглядит как скромный сайт-конструктор, но а внутри — настоящий цифровой швейцарский ножЧто умеет:➡️ Видео — обрезать, склеить, добавить музыку/текст/картинку, убрать логотип или водяной знак, замедлить, ускорить, стабилизировать трясущееся видео и даже записать экран➡️ Аудио — сделать рингтон, наложить голос, поиграть с эквалайзером, повысить/понизить тон, извлечь звук из видео и склеить треки➡️ ПДФ — конвертировать из/в Word, Excel, JPG, объединить и разбить, сжать, поставить или снять пароль, добавить номера страниц➡️ Конвертеры — больше 300 форматов (видео, аудио, фото, документы, электронные книги, архивы). Можно гибко выбрать качество➡️ Архиватор — открывает более 60 типов архивов и пакует в ZIPСам сервис предлагает хороший бесплатный набор: до 5 файлов, каждый до 500 МБ в день, что для разовых задач и большинства бытовых нужд хватает с головой#ПРОсервисы
Python Academy
Модуль warningsМодуль warnings предоставляет возможность управления предупреждениями, которые могут быть выведены во время выполнения программы.Модуль warnings полезен, когда необходимо предупредить пользователя о каком-либо условии в программе и это условие не требует создания исключения и завершения программы.Кроме того, вы можете настроить различные параметры для управления предупреждениями, такие как фильтрация предупреждений определенного типа или их преобразование в ошибки. #python
Senior Python Developer
Реализуйте алгоритм сортировки слиянием (Merge Sort) на Python. Напишите код и объясните, как работает этот алгоритм. Расскажите о его сложности и возможных оптимизациях.Объяснение:Алгоритм сортировки слиянием (Merge Sort) использует стратегию «разделяй и властвуй». Он состоит из двух основных шагов:Разделение (Divide): Массив разделяется на две равные (при четном числе элементов) или почти равные (при нечетном) части. Этот процесс рекурсивно выполняется для каждой из подпоследовательностей.Слияние (Merge): Отсортированные подпоследовательности сливаются обратно в один отсортированный массив.Сложность:Временная сложность: O(n log n) в худшем, лучшем и среднем случаях.Пространственная сложность: O(n).Оптимизации:— При реализации можно использовать вставочную сортировку для маленьких подмассивов, так как у нее меньшая константа в асимптотике.— Если массив уже отсортирован, можно добавить проверку и пропустить шаг сортировки.— Вместо копирования подмассивов при каждом рекурсивном вызове можно использовать вспомогательный массив для слияния, что уменьшит использование памяти.
Телеграм Маркетинг
Говорят, куча корпоративных ТГ-ботов упала, т.к. хостинги массово закрыли доступ к BotAPI. Ожидаемо.Могу сказать, что на эту тему у меня был еще в начале года разговор с теми, кто хотел устроить обходной гейт.Но из последующих событий я сделал понятный вывод, что так или иначе, их принудят передавать все данные туда, где их можно сормить, да еще и на мощностях компании, которая явно является конкурирующей для многих, кто использует ТГ-ботов для бизнеса, поэтому данная опция не имела никакого практического смысла.Порекомендовать могу только два надежных варианта:1. Деплой бэкенда ботов на не-российские сервера.2. Если уж надо вписаться в законодательство, например хранить данные в РФ, прокиньте гейт с российского сервера на европейский, например, а оттуда уже работайте с ТГ. Можно на ЕС сервере и кастомное ботапи поднять, например (но оно прожорливое и для большинства лишено смысла).
RetroStation 🧨
⚡️Mac OS X портировали на Nintendo WiiИнженер-программист Брайан Келлер объявил об успешном портировании Mac OS X 10.0 Cheetah на игровую консоль Nintendo Wii.В Wii установлен процессор PowerPC 750CL – улучшенная версия PowerPC 750CXe, который использовался в ноутбуках Apple G3 iBook и некоторых iMac G3. “Я был уверен, что с процессором проблем не будет”, – пишет инженер.А вот с оперативной памятью всё сложнее: Wii имеет 88 МБ ОЗУ (24 МБ 1T-SRAM + 64 МБ GDDR3), тогда как официальные требования Mac OS X Cheetah – 128 МБ. Однако Келлер выяснил, что система реально запускается и с меньшим объёмом: он протестировал Cheetah в QEMU с 64 МБ – всё работало.Теперь на Wii можно запустить не только порты Linux, NetBSD и Windows NT, но и полноценную Mac OS X Cheetah с работающей USB-клавиатурой и мышью. Исходный код загрузчика и драйверов доступен на GitHub.тыцПоддержать каналПредложить новость
Бизнес-анализ | ИТ | ИИ
👨‍⚖️Проектируем сервис HTTP-запросов: Kafka, PostgreSQL, Redis-очередь и миллионы логических партицийСложность: ★★☆ | Время чтения: 11 минВ статье рассказывается, как спроектировали сервис Requester: контекст, контракты запроса/ответа, движение данных, внутренние воркеры, graceful shutdown, детали rate limit / retry / cache / отложенных задач, wake-up, тестирование и узкое место с большими payload в Redis.📎 Читать статью💙Бизнес-анализ | ИТ | ИИ💬Бизнес-анализ | ИТ | ИИ
Кофейные заметки
Буду всю неделю писать про AI, он же - LLM. Крепитесь. Начну со своих программистских порывов. Сделал я тут проектик, месяц в свободное от работы время с Claude Code. Три десятка независимых модулей-парсеров, каждый под свой источник, PostgreSQL, слой core с абстракциями над базой, пару тысяч тестов, end-user аналитика, документация с архитектурой, моделью данных и гайдом по верификации. Без фанатизма, но как учили мудрые. Все работает на виртуалке, все покрыто тестами, новый модуль подключается за полдня. Показал знакомому, правда, гуманитарию. И этот знакомый произнес фразу, которая запустила этот пост: «Слушай, ну зачем тебе все это? Достаточно было написать промпт - Claude бы сам все правильно сделал». Меня прямо накрыло. Дело даже не в том, что вопрос по сути неверен. А то, что за последний год таких фраз я слышу все чаще. И есть у меня подозрение, что мы имеем очередной разводняк имени успешного успеха.Но чтобы вы меня сразу клевать с отменой этого праздника "любой нуб может запилить свой виндовс" не стали, я покопал статистику. Получается, так. Karpathy в феврале 2025-го придумал термин vibe coding - описать в промпте что хочешь, принять сгенерированное без чтения диффов, жить с вайбом (извините, перевода тут нет). Collins English Dictionary назвал это словом года. Сегодня, в апреле 2026-го, 85% профессиональных разработчиков в мире используют AI-инструменты хотя бы раз в неделю, 92% американских - ежедневно, а 41% кода в мире уже генерирует машина. Выглядит как замена инженерной культуры. Выглядит как момент, когда любой менеджер или маркетолог за выходные собирает себе продукт без разработчиков. И кто я такой, чтобы спорить с этими цифрами.Хотя давайте посмотрим иначе. Что видим? Ага, значит AI-генерация в 50-ти крупнейших компаниях США дает в 3-4 раза больше коммитов (то есть кода пишут кратно больше) и, одновременно, в десять раз (!!!) больше "находок в области безопасности". Неуправляемый AI-код к концу второго года жизни стоит в поддержке вчетверо дороже обычного, потому что техдолг растет быстрее. То есть строк кода больше - проблем больше. Логично. И дело, на самом деле, не в том, что LLM пишет плохо. Он пишет нормально. Дело в том, что у человека, который нажал "принять", не читая, в голове нет модели системы. Он не держит граф взаимодействий между очередью, кэшем, миграциями и внешними API. Когда через три месяца оно сломается в сцепке, где никто не строил ментальной схемы, то даже сам LLM не найдет, потому что LLM видит ошибку в файле, а не в системе.Я же не один такой умный в отрасли, верно? Давайте изучим, что пишут крутые парни. Опаньки, в прогнозах на 2026-й rescue engineering называют главной дисциплиной следующего года. Потому что, по оценкам индустрии, уже сейчас восемь тысяч стартапов запилили приложения через vibe coding, которые нуждаются в полной или частичной пересборке. Цена одной - от 50 до 500 тысяч долларов. Суммарная оценка клининга - от 400 миллионов до 4 миллиардов. Отмечу, что это счета, которые уже выставлены, просто еще не все оплачены. Нас ждет небывалые спрос на айтишников в бригады rescue engineers. Правда, там на собеседованиях спрашивают про TDD, ветки в git, транзакционную целостность и почему ты отключил внешние ключи в базе, когда тебе "посоветовал агент". Знаете такие слова?Вангую, что 2026 год будет годом первой массовой волны экономических разочарований: закрытые стартапы, заброшенные репозитории с зеленой эмблемой "работает на AI". А 2027 будет годом, в котором миллионы людей поймут простую вещь, которую в нормальных программах по computer science повторяют двадцать лет: инженерная культура - это не анахронизм, это иммунитет. Без нее MVP живет ровно до первого платящего клиента. Просто раньше это знание стоило времени, а теперь еще и денег, которые нубы уверенно занесли в Claude API. Праздник продолжается, пока платит кто-то другой. А когда платишь ты, праздник перестает быть праздником. Вопрос только в том, успеешь ли ты понять это до того, как внесешь полную оплату?
CG Kung Fu
И снова в шоках в какое время живем. Заканчиваем фриланс проект мощный сериал для рф где я супервайзер. И я тут все эти 3 месяца проекта тестировал разные пайплайны включая наш илм решил попробовать чуточку внедрить в гудини создав разные ассеты и тулзы для удобного и автоматического импорта версий юсд слоев и апдейта и подгрузки и тд. Очень эффективно оказалось и артистам зашло! Будем тестить дальше.Но речь даже не про это, а про вайбкодинг (новое слово дед для себя открыл). Мало того что напитонил все эти тулзы в гуде за считанные минуты дак пошел дальше и намутил отдельные софтинки чисто для проекта. Всякие сортировщики, переименовщики в винде с темных интерфейсом, удобные капец.И самое крутое воссоздал некий шот менеджер, типа шотгрид или серебро или фтрак и тд. Но такой который видит именно нашу структуру папок и файлов, в которой уже несколько десятков шотов, и внутри каждой папки своя структура и дейлизы и рендеры и тд. И не нужно ее менять под менеджер! Прикол в том что потратил я может полчаса на эту софтинку но получил то что хотел! Папки открываются тыкая на шоты, файлы и последние версии рендеров и дейлизов видит и открывает, даты показывает, обновления, не соответствия подсвечивает зеленым и красным и можно пометки делать и статусы менять и куча всего. Не меняя структуру файлов, не загружая никуда ничего! Просто описал ему условия что мне нужно и дал нашу структуру файлов и готово Карл! Это ли не ахуеть в какое время живем? То есть понимаете что им ввиду? Когда проще и быстрее написать свой менеджер нежели разбираться в существующих (я посмотрел пару туторов призм и прочих и плюнул)! Всякие призмы и серебро, куда надо загружать и заводить все это вручную, тут просто дал скрин папок и описал задачу и все бля!Я не знаю как вы но я честно в ахуях сижу. Кстати чатгпт и гемини сильно обосрались в таком кодинге софтов, а вот клауде удивил, с первого раза выдавал мне все что нужно и анализировал грамотно и предлагал и все работает. А те два даже близко не смогли то что просил. Только простое что то для гудини, мини панельку еще норм, но прям такую софтину со сложными условиями ноуп.Как там говорит не мало известный уже нам канал и человек «За прогеров не чокаясь!»
Шонов говорит
Вайбкодинг от Бати, завел агенту учетку на гитхабе: Воскресный апдейт по вайбкодингу 👋1. Настроил все основные инструменты. Open Claw и Claude Code работают через телегу. Что позволяет быть гибким в формате работы с ними. Сами сессии живут на макмини 24/7. 2. За вечер создал первую MVP сервиса, который позволяет работать с терминальным Claude code и Open Claw чисто через Airpods. Без единого использования клавиатуры. Терминальные запросы зачитываются встроенным голосом от Apple. А мой голос воспринимают Whisper. Turbo v3 локальная на макмини и tiny для быстрого отклика на слова триггеры — Клод, Стоп, Повтори и тдВообще этот проект я сделал как решение своей боли. Я провожу вечера после работы со своей дочерью — времени посидеть-повайбкодить мало, ближе к ночи. Чтобы освободить руки и перестать отлучаться от Марго собрал решение, которое переводит весь вайбкодинг в аудио интерфейс. Собрал за 4 часа, в этот раз использовал гитхаб. Заставлял каждый импрув записывать и тестировать перед заливкой. И вроде получилось, оно работает ⚡⚡⚡Дальше хочу сделать прилу, которая удаленно подключается с айфона к моему claude code или open claw по SSH и также дает мне ВО ВРЕМЯ ПРОБЕЖКИ или ПРОГУЛКИ С КОЛЯСКОЙ ВАЙБКОДИТЬ Изучаю сейчас как работать с несколькими агентами одновременно в проекте. К примеру, claude пишет архитектуру, заводит таски на репе в гитхабе и проверяет, что сделал агент на deepseek с openclaw. Но возможно это Франкенштейн и не надо? Пока копаю вопрос дальше. @edtechhacker
Java
⚡️ Java совет: перестань терять производительность из-за boxingКогда используешь Stream<Integer>, JVM создаёт объект Integer для каждого значения.Это лишние аллокации, нагрузка на GC и замедление кода.Если работаешь с примитивами — используй primitive streams.❌ Boxing (медленнее)Stream<Integer> boxed = Stream.of(1, 2, 3, 4, 5);int sumBoxed = boxed.reduce(0, Integer::sum);✅ Без boxing (быстрее и эффективнее)int sumPrimitive = IntStream.of(1, 2, 3, 4, 5).sum();Другие primitive streams:IntStreamLongStreamDoubleStreamКогда это критично:• большие коллекции• high-load сервисы• data processing• performance-sensitive кодПравило простое: Если работаешь с числами - используй primitive streams, а не обёртки.⚡️ Полезные ресурсы по Java 🚀 Max@javatg
iOS Makes Me Hate
🧬 Я запустил свой сайт 🧬Тот самый, который анонсировал почти год назад...На сайте будет как открытый, так и закрытый контент. Это будет полноценная замена Notion. Лонгриды, тесты, тренажеры. Все то, что плохо вписывается в формат тг канала. От Notion отказываюсь полностью. Теперь всё, что не помещается в канал, будет жить там.Дизайн лаконичный, под современный тренд. Фокус на содержании, а не на визуале.Сайт пока в бете. Пишите пожелания, все читаю.💎 Посмотреть сайт можно тут
📚Системный Администратор (RTFM)
В чем разница между adduser и useraddОбе команды создают нового пользователя в системе. Но они очень сильно отличаются.Adduser - утилита для добавления пользователей и групп в систему. Программа учитывает политики дистрибутива по желаемому UID и GID, создает домашний каталог, копирует туда файлы по умолчанию и запускает специальные сценарии.Useradd - это низкоуровневая утилита для добавления пользователей. Создается только пользователь без каких-либо дополнительных настроек, вам придется все делать вручную, в том числе создавать домашний каталог.📚@IT_obrazovach
Всё про Алгоритмы и Структуры данных
Почему баг в imageproc потребовал изменения API в image-rsРечь пойдет о двух крейтах: imageproc и image. imageproc - библиотека обработки изображений, основанная на библиотеке image.При рендере текста в imageproc я столкнулся с багом: алгоритм корректно работал для RGB, но ломался для RGBA.Попытка исправить его привела к неожиданному результату - фикс оказался невозможен без изменения API image-rs.Разберём, почему так произошло.https://habr.com/ru/articles/1023514/Алгоритмы и Структуры данных
Инструментарий психолога
✔️Упражнение «Цифровой детокс»🎯 Цель: помочь клиенту снизить зависимость от телефона, развить осознанность и научиться находить радость в реальной жизни без постоянного отвлечения на гаджеты.📌 Инструкция к действиям клиента:1️⃣ Подготовка:🔹 Выберите один день в неделю, который станет вашим «днем цифрового детокса». Это может быть выходной или любой другой день, когда вы можете позволить себе быть без телефона.🔹 Заранее предупредите близких, друзей и коллег, что в этот день вы будете недоступны по телефону. Если это необходимо, оставьте телефон включенным, но отключите уведомления и положите его в недоступное место (например, в ящик стола).2️⃣ Утро без телефона:🔹 Проснувшись, не берите телефон в руки. Вместо этого начните день с осознанного ритуала: сделайте зарядку, приготовьте вкусный завтрак, почитайте книгу или просто посидите в тишине, наслаждаясь утренним покоем.🔹 Если вам сложно удержаться от привычки проверять телефон, замените это действие на что-то приятное: например, выпейте чашку чая, посмотрите в окно или запишите свои мысли в блокнот.3️⃣ День без гаджетов:🔹 В течение дня старайтесь заниматься делами, которые не требуют использования телефона. Это может быть прогулка на природе, встреча с друзьями, чтение книги, рисование, готовка или любое другое хобби.🔹 Если вам захочется взять телефон, остановитесь и задайте себе вопрос: «Зачем мне это нужно? Что я хочу получить?» Часто это просто привычка, а не реальная необходимость.🔹 Если вы чувствуете тревогу или скуку, попробуйте осознать эти эмоции и прожить их, не пытаясь «заглушить» телефоном. Это поможет вам лучше понять свои чувства и научиться справляться с ними без гаджетов.4️⃣ Вечерний анализ:Вечером, перед сном, выделите 10-15 минут, чтобы записать свои ощущения от дня без телефона. Ответьте на вопросы:🔻 Что я почувствовал(а), когда не мог(ла) пользоваться телефоном?🔻 Какие моменты дня были самыми приятными?🔻 Что я узнал(а) о себе и своих привычках?Постарайтесь найти хотя бы три положительных момента, которые вы испытали благодаря этому дню.5️⃣ Регулярность:Повторяйте это упражнение каждую неделю. Со временем вы заметите, что зависимость от телефона уменьшается, а вы становитесь более осознанным и спокойным человеком.❗️ Если вам сложно сразу провести целый день без телефона, начните с нескольких часов. Постепенно увеличивайте время, пока не сможете обходиться без гаджета целый день.📎 Попробуйте сделать детокс от гаджетов сами, предложите его клиентам и коллегам. #самопомощь #самопознание #зависимость❗️Мы в MAX
Pro Mixing and Mastering. Сведение и мастеринг из первоисточников
Pulse Width Modulation (PWM, широтно-импульсная модуляция)** — технология управления компрессией, где модуляция ширины импульса используется для триггеринга gain reduction. Даёт очень гладкое, "блестящее" звучание.Суть компрессора в работе детектора, который реализован уникальным образом. В отличие от полностью цифровых компрессоров, PWM - это всё-таки аналоговый детектор, а не алгоритмический, поэтому имеет свой характер, не похожий на классические схемы типа vari-mu, fet, opto, vca.При своей прозрачности компрессор обладает аналоговым поведением. Чисто цифровые компрессоры типа FabFilter не эмулируют PWM детектор, поэтому нельзя сказать что они взаимозаменяемы+ помимо детектора в эмуляции аналоговой схемы могут быть и другие переменные.Компрессор достаточно редкий как в реальности так и в мире плагинов. Я знаю только Waves и Mixwave DW Fearn https://mixwave.com/products/dw-fearn-vt-7Зачем оно надо? Попробовать можно на вокале, акустических гитарах, полном миксе вместо традиционного VCA компрессора, если не нужен окрас, а нужен контроль, но не нужна стерильность чисто цифрового компрессора.
MISTER SOSISTER ~ CHINESE TIME OF MY LIFE
Новая имба по B2B аутричу: Сиквенсеры имейлов и линкдина на самом деле не такие дешевые, особенно на объеме, если тупо закупать все в лоб, отдельно для имейла и отдельно для ЛИ, по ситам, то легко набежит зарплата еще одного сейлза. Тот же аполло дает 5 имейлов за $100, линкдин по рынку стоит тоже в среднем $100/аккаунт. Иногда омничанел сервисы дают бандлы 1 ли + 1 имейл (хуйня), или 1 ли + 5 имейлов (то чем мы пользовались). Я искал как это дальше оптимизировать для 30+ имейлов и 3-4 ЛИ аккаунтов, чтобы это не выросло за $500, и нашел эти замечатльные сервисы. Лимиты и цены нереальные, всякие instantly и heyreach тихо курят в сторонке. С вами делюсь по дружбе, без рефок. (В описании нашего стека обновил, чтобы никого не путать)
Гайды по Python | Программирование
📌 Объединение словарей без update()Нужно быстро объединить два словаря, не изменяя исходные? Используй оператор |, начиная с Python 3.9.🎯 ИтогОператор | объединяет словари в один, не изменяя оригиналы. Это удобно, читаемо и декларативно.Гайды по Python & Max
Библиотека собеса по PHP | вопросы с собеседований
❓ Что такое WeakReference и WeakMap? WeakReference — ссылка на объект, не увеличивающая счётчик ссылок. Объект может быть уничтожен GC, тогда ->get() вернёт null.WeakMap (PHP 8.0) — map с объектами в роли ключей, тоже не удерживает объекты от GC. При уничтожении объекта-ключа запись автоматически исчезает.$map = new WeakMap();$obj = new stdClass();$map[$obj] = 'data';unset($obj);// запись в $map исчезла самаМожно применять: кэши метаданных об объектах (атрибуты, вычисленные значения), без риска утечки памяти. Активно используется в Symfony, Doctrine.
Библиотека собеса по Java | вопросы с собеседований
❓ Как работает G1 GC?G1 делит heap на равные регионы (~2048 штук) вместо фиксированных Young/Old/Perm зон. Каждый регион динамически назначается как Eden, Survivor или Old.Ключевые фазы→ Initial Mark — STW, помечает GC roots→ Concurrent Mark — параллельно с приложением строит граф достижимости→ Remark — STW, дочищает concurrent-фазу (SATB-алгоритм)→ Cleanup / Evacuation — копирует живые объекты из регионов с наибольшим мусором (отсюда "Garbage First")🐸 Библиотека собеса по Java#core
CyberGarage
Продолжение истории с контролем высоты осцилляциям по тангажу в режимах с удержанием высоты.https://t.me/CyberGarage/680Есть еще параметр TECS_SPDWEIGHT, по умолчанию =1. Это микс, как именно удерживать высоту.Если значение 0, то удержание высоты только с помощью руля высоты, игнорируя ошибку в скорости.Установка значения 2,0 приведет к тому, что контур управления тангажом будет контролировать скорость и игнорировать ошибки высоты. В указанном ранее аппарате, который раскачивается по высоте приемлемые результаты получены при значенииTECS_SPDWEIGHT = 0.3, т.е. уменьшен вес для контроля скорости с помощью тангажа. #arduplane
Java | Вопросы собесов
🤔 Расскажи что такое inversion of ConrolInversion of Control (IoC) — это принцип проектирования, при котором управление созданием и жизненным циклом объектов передаётся внешней системе. 🟠Почему нужен IoC? Без IoC код сильно зависит от конкретных классов, что усложняет тестирование и поддержку. class Car { private Engine engine; public Car() { this.engine = new Engine(); // Прямое создание зависимости ❌ }}С IoC (зависимость передаётся извне) class Car { private final Engine engine; public Car(Engine engine) { // Зависимость передаётся через конструктор this.engine = engine; }}🟠Как реализуется IoC? IoC достигается через паттерны проектирования, такие как: Dependency Injection (DI) – передача зависимостей извне (через конструктор, поле или метод). Factory Method – создание объектов через фабрики. Event-driven подход – реакция на события вместо явного вызова методов. 🟠IoC в Spring Spring реализует IoC через контейнер IoC, который управляет созданием объектов (бинов) и их зависимостями. @Componentclass Engine {}@Componentclass Car { private final Engine engine; @Autowired public Car(Engine engine) { // Spring автоматически передаст нужный объект this.engine = engine; }}Ставь 👍 и забирай 📚 Базу знаний
РадиоЛоцман
Si и SiC MOSFET - принцип работы, технологии, перспективы развитияhttps://www.rlocman.ru/news/new.html?di=688279От классического кремния до карбида кремния: как развивалась архитектура силовых транзисторов и почему за SiC — будущее? Разбираем структуру, паразитные элементы и механизмы работы современных MOSFET...
Senior Java Developer
Реализации исключения при делении на нольВ этом примере мы создаем собственное исключение DivideByZeroException, которое наследуется от класса Exception. Затем, в блоке try мы проверяем, если делитель равен нулю, то мы бросаем это исключение с соответствующим сообщением. В блоке catch мы перехватываем исключение и выводим его сообщение об ошибке.Обратите внимание, что если вы пытаетесь поделить ноль на ноль, будет брошено исключение типа ArithmeticException, которое уже предусмотрено в Java для обработки ситуаций деления на ноль.