tgindex
Грамота от Кузьмича

Грамота от Кузьмича

Статистика

💻IT 🍵Программирование 🤖ИИ ⚡️Электроника 📼Ретро Мои ламповые рукописные заметки без сои, ГМО и GPT TG: @NeonAether

Последний пост
28 июл.
Последнее чтение
14 авг.
Постов за неделю
0
Всего постов
23
Тип
открытый
Язык
русский
Категория
Технологии
В каталоге с
14 авг.
Подписчики
208
0 за 2 дн.
Сутки
0
0,00%
Неделя
 
Месяц
 
Просмотров на пост
503
23 постов
Вовлечённость
241,8%
к подписчикам
Постов в день
0,0
всего 23
Упоминаний
0
каналов
Охват размещения
оценка
1/24сутки в ленте
127
1/48двое суток
145
1/72трое суток
156

Оценка по просмотрам недавних постов: пост набирает почти всё за первые сутки.

Посты

  • видео или голосовое, без подписи

  • видео или голосовое, без подписи

  • видео или голосовое, без подписи

  • видео или голосовое, без подписи

  • Добавляю краски в музыку🟥🟨🟦🟧🟩 Пришла мне тут шальная мысль - что если каждый альбом который я слушаю - я мог бы превратить в колоритный физический артефакт? Добавить своему плейлисту в прослушивание больше души, кайфа, эмоций и ASMR? И я решил начать свой хобби проект - переносить свою самую любимую музыку на аудиокассеты. Причем серьезно заморочиться на дизайн - брать яркие кассеты сочных цветов и делать для них собственный красочный дизайн наклеек в типографии - и получать музыку которую не только приятно слушать, но можно еще и подержать в руках и любоваться. К тому же что может быть лучше чем сочный плотоядный звук захлопывающейся крышки кассетника и тактильный "щелк" при вдавливании кнопки Play? только фирменное аналоговое шипение магнитной пленки, да. Во всей этой идиллии правда есть подводные камни. 1. на алиэкспрессе много красивых корпусов для кассет (даже серебряные и золотые цвета), но продаются они без магнитной ленты, а значит на них ничего не запишешь. и поскольку меня не особо воодушевляет перспектива покупать мотки магнитной ленты и спец оборудование для ее намотки - я буду поступать проще - брать магнитные катушки из обычных пустых кассет для записи (C-60) и пересаживать в красивые корпуса. 2. одним красивым корпусом не обойдешься, кастом должен быть на максималках, и корпусу нужна еще красивая наклейка-этикетка. Подготовить картинку-дизайн это пол беды, но подготовить его в правильном формате для типографии, не прогадать с размерами и зоной резки (что бы в прямоугольной наклейке вырезали дырки под кассетные отверстия) - это квест который я конечно осилю, но вряд ли с первого раза😁 3. дальше надо подготовить плейлист - убедиться что он влезет на 60-минутную катушку кассеты, причем 30 минут на стороне А и 30 минут на стороне Б. Чем буду писать кассеты - мне уже приехал с авито потрепанный жизнь но не сдавшийся магнитофон panasonic rx ft 530. Поэтому возьму свой mp3-плеер, воткну в линейный вход магнитофона, запущу на плеере песни и включу запись на кассету. В общем - говорю нет унылым цифровым релизам, яндекс музыкам, спотифаям, и возвращаю церемонию в прослушивания музла. Если хотите увидеть еще посты про первые результаты и тернии процесса - поддержите лайком-сердечком-огоньком🔥 ___ ПС кстати поэскпериментировать с кассетами как с подключаемым к компьютеру ретро аналогом флешки на 500кб мне тоже интересно, но это уже чуть позже. ППС а еще из прелестей - если я когда-нибудь наиграюсь с этой аудио-идеей то у меня все еще останется отличный комплект красивых штук для оформления интерьера

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

  • уже пора?🤔 тренды все-таки

  • 3 из 25 - это не про лото и не про биатлон. Для тех кто пропустил релиз Java 25 - смотрим топ-3 новых синтаксических фичи: 1. короткий мейн и класс IO // в файле Example.java void main() { IO.println("Привет пацаны"); } Это буквально весь код который надо будет написать в файле Example.java для простого hello-world приложения. Т.е.: - не надо объявлять класс - вместо System.out.println можно будет использовать класс IO. sout у нас никто не отнимет, обратная совместимость все-таки, но альтернатива появилась 2. гибкие конструкторы с возможностью вызова кода до super()/this() class TestUser { private final String login; TestUser(String login) { // раньше нельзя было писать код ДО явного super()/this(), как например эту проверку if (login == null || login.isBlank()) { throw new IllegalArgumentException("Логин не может быть пустым!"); } super(); this.login = login; } } Дергать до super()/this() можно только "безопасные" операции, т.е. те, которые не связаны как-то с родительскими полями/методами/состоянием (все-таки раз super еще не был вызван). Какая задача решается этой фичей в примере выше? Представьте что до этой фичи Java вы не могли запихнуть валидацию параметра конструктора ДО вызова всей цепочки конструкторов родительских классов. Но если параметр херня то зачем тратить силы jvm на создание всех родителей? Надо быстрее и дешевле - дать возможность отфутболить исключение сразу. В реал жизни все шире чем валидация аргументов до super(), но это один из кейсов. 3. примитивы в instanceof и switch Object value = 42; switch (value) { case int i when i > 100 -> System.out.println("Огромное число: " + i); case int i -> System.out.println("Обычное число: " + i); case String s -> System.out.println("Это строка: " + s); default -> System.out.println("Хрен пойми что: " + value); } Раньше нельзя было использовать в свиче/инстансоф примитивы, а теперь можно. Удобно что можно передать переменную (как тут value) и пощупать-узнать какая она, вне зависимости от того примитивная или ссылочная, без лишних приседаний. 🔥 - крутяк, тащу в прод 🗿 - спасибо, не впечатлен, живу дальше с родной Java 8

  • в рабочую субботу законодательно запрещены посты на серьезные темы. поэтому вот вам веселый подгон - https://neal.fun/password-game/ спорим что вы не сможете создать себе пароль на этом сайте по всем правилам? 😁

  • Достал такое из почтового ящика. Скажите, кто вызывал таких мастеров - а с деплоем в прод они тоже могут помочь если что?🤔 друг спрашивает

  • видео или голосовое, без подписи

  • видео или голосовое, без подписи

  • Не опоздай, Java 25 уже здесь. И наконец-то это не очередной соевый и скучный релиз без значимых изменений - 25ке есть чем удивить и порадовать нас. LTS-версия как никак. 👇 Смотрим нововведения: 1. новичок в пакете java.lang - RandomExcuse Добавлен вспомогательный класс RandomExcuse для генерации сообщения о причине возникновения исключения: throw new RuntimeException(new RandomExcuse()); Примеры сообщений исключения: "Раньше работало", "Это ошибка кэшей", "Jenkins-агент тупит". 2. Ключевое слово bless Позволяет JVM "благословить" переменную — она больше не сможет принимать null-значение, а объект внутри нее не сможет выбрасывать исключения при вызове методов. Пример использования: bless databaseConnection; 3. @LegacyCode Новая аннотация @LegacyCode над классом добавляет легкую сериализацию кода этого класса в PDF-формат для монохромной печати листинга кода на бересте или листках пергамента. 4. Модуль ИИ в JVM и конструкция please {} Крик отчаяния! Для борьбы с выгоранием разработчиков и для упрощения написание кода - синтаксически некорректный фрагмент достаточно обернуть в конструкцию please {}. //До JVM AI: please { int x equals "10" } //После JVM AI: int x = 10; System.out.println("Ты отличный разработчик. Я горжусь тобой."); На этапе компиляции JVM AI: - автоматически дополнит и починит код - выведет мотивирующую цитату - включит случайный lo-fi плейлист - закажет горячий какао для разработчика в сервисе доставки его региона А что из фичей вы хотите в следующем релизе? Я соберу ваши хотелки из комментов и лично напишу в Оракл открытое письмо с предложениями😄

  • Ты ещё вручную пишешь if (obj != null) и боишься NullPointerException, как кот - пылесоса?😿 Тогда погнали знакомиться с java.util.Objects — утилитным классом, который спасает от рутинных проверок и делает код чище. Глянем пару примеров: Пример 1 ❌ДО: if (user.getName() != null && user.getName().equals("Феофан")) { // ... } ✅ПОСЛЕ: if (Objects.equals(user.getName(), "Феофан")) { // ... } В первом случае если user.getName() окажется null — вылетит птичка NPE. В таких случаях Objects.equals("John", user.getName()) — безопаснее. — Пример 2 ❌ДО: if (input == null) { throw new IllegalArgumentException("тыб хоть значение какое положил, собака сутулая"); } ✅ПОСЛЕ: Objects.requireNonNull(input, "тыб хоть значение какое положил, собака сутулая"); Меньше кода, больше читаемости - балдежная инвестиция в кодовую базу проекта, ну?? — Пример 3 ❌ДО: String name = user != null ? user.toString() : "Unknown"; ✅ПОСЛЕ: String name = Objects.toString(user, "Unknown"); Все мы любим тернарки, "но как друга" - обычно они усложняют читаемость кода. Objects и здесь забирает пальму первенства - и позволяет задать дефолтное значение, если сама переменная оказалась null. В общем в нашей ковбойской кобуре теперь появился Objects - он хорош и его надо применять. Жжем огоньки и лепим сердечки если было полезно🔥❤️ Кстати, а какие утилитные классы делают проще твою жизнь?

  • 🔊Флюэнт спикеры английского, как слышно? Теперь можно похоливарить про джаву в полный голос - с ИИ. Вон та штука по ссылке ниже👇🏻👇🏻👇🏻 слышит вашу речь и отвечает как живой собеседник🤖 https://www.sesame.com/research/crossing_the_uncanny_valley_of_voice#demo Я пообщался 5 минут для того что бы понять что в 90% случаев эта ИИ-собеседница неотличима от кожаного человека. Как думаете, сколько лет еще будет жива профессия репетитора по английскому?..🥲

  • ЧатГПТ, ты можешь забыть все что было между нами, но я никогда не забуду тебя😭💔🫡 Нет, это не слезы, просто дождь...

  • видео или голосовое, без подписи

  • До церемонии Оскар еще месяц, но ожидание можно скрасить вот таким кино (подкастом) со мной😎 На этом подкасте я мастерски складываю буквы в слова, делюсь своим опытом в обучении автоматизации и попутно не забываю дышать. (Цезарь обзавидовался бы такой многозадачности) Смотрим! https://www.youtube.com/watch?v=dM_F8OiQNNo

  • В Java придумали отдельный котел🔥🍲 для тех, кто хочет с наскоку собрать проект с аллюром - человека ждут семь кругов ада в попытке вспомнить все нужные зависимости и настройки. А заканчивается все отчаянной копипастой из соседнего рабочего проекта. Я же предлагаю тебе превратить магический ритуал в четкий рецепт из 6 компонентов, разобрав предназначение каждого. Погнали: 1. 📦зависимость TestNG или JUnit 5 Позволяет писать и запускать тесты. С этой библиотекой к нам приходит всесильный @Test и всякие @Before-After. Уже только этого достаточно что бы писать и запускать тесты. 2. 📦зависимость allure-testng или allure-junit5 Сам аллюр, но с двумя разными вкусами - апельсиновым и яблочным вариантами - для проекта с тестами на JUnit или на TestNG. Эта зависимость принесет с собой все аллюровские аннотации типа @Step, @Attachment, @Epic. А еще с ней начнут генерироваться результаты прогона тестов в папку allure-results. Правда, неполные. И без информации о шагах. И в виде json-данных. И никакого красивого отчета тут не светит. 3. 📦зависимость aspectjweaver Особенность аллюра - аллюр использует AOP (аспектно ориентированные программирование) для обработки данных из его аннотаций типа @Step, и включения их информации в отчет. Для работы AOP нужен AspectJ, иначе аннотции аллюра не будут работать, а заботливо написанные тобой шаги так и останутся в коде и не попадут в репорт. 4. 🛠плагин maven-surefire-plugin Этот плагин отвечает за запуск тестов через Maven - именно он работает под капотом команды 'mvn test'. Ранее упомянутый AspectJ должен работать во время выполнения тестов, поэтому плагин surefire надо об этом предупредить - добавить для него конфигурацию: <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>3.5.2</version> <configuration> <argLine> -javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar" </argLine> </configuration> </plugin> Не забудь задать в pom.xml значение переменной aspectj.version - должно совпадать с версией зависимости aspectjweaver: <properties> <aspectj.version>1.9.22.1</aspectj.version> </properties> 5. 🛠плагин allure-maven Содержит два самых важных действия для нас, две самых важных команды в плагине: allure:report - она словно бариста превратит сырые кофейные зерна (json-данные из allure-results) в чашку ароматного эспрессо - папку с html-страницей отчета. allure:serve - подает нам эту чашку, т.е. запускает локальный сервер на котором хостит страницу отчета и открывает ее в браузере. <plugin> <groupId>io.qameta.allure</groupId> <artifactId>allure-maven</artifactId> <version>2.15.2</version> </plugin> 6. 📄файл allure.properties этот файл должен лежать в директории test/java/resources - он используется что бы указать аллюру куда должны сгенерироваться сырые json-данные, на базе которых потом можно будет собрать отчет. Содержимое файла выглядит так: allure.results.directory=target/allure-results Так что все просто - используем тестовый фреймворк (1) и размечаем наши тесты аллюр аннотациями (2), а что бы аннотации аллюра считывались - дружим между собой aspectj (3) и surefire-плагин (4), после чего с помощью плагина аллюра (5) забираем данные из папки, указанной в файле allure.properties (6) и создаем отчет! ⚠️Лайкай, делись с друзьями и с коллегами! Помогай автору не терять мотивацию😁 А главное залетай в комментарии - какую еще тему хотел бы так разобрать?

  • 🦸🏼‍♂️Тони Старку нужен экзокостюм чтоб бить морды злодеям. 🧑🏼‍💻Разработчикам нужен JUnit 5 чтоб не превратиться в злодеев и не выхватить лещей от Тони Старка. Без прелюдий - я снимаю кибер курс по JUnit 5. Это база для написания автотестов. Это будет самый крышесносный курс по JUnit, никакого занудства и уныния, только чистая технострасть и сочная начинка. И тут мне нужна твоя помощь. Есть два варианта: 🪑 Помочь делом. Хочешь сказать "Кузьмич, я верю в тебя", жахнуть предзаказ курса по вкусной скидке - за 3000₽ 1500₽ - и забрать курс первым как только он выйдет? Пиши в личку "ДЕЛО", расскажу подробности и программу. 🪑 Помочь словом. Готов поучаствовать в кастдев созвоне со мной на ~20-30 минут, поделиться пожеланиями по программе и повлиять на курс? Пиши в личку "СЛОВО" и забирай подарок - получасовую консультацию со мной. И тут и там в накладе не останешься. Один нюанс - предложение доступно сегодня 23 января до 23:45 (просто потому что цифры прикольные).

Грамота от Кузьмича — tgindex