Pull to refresh
0
0

Программист Java

Send message

CompletableFuture. Глубокое погружение

Level of difficultyHard
Reading time20 min
Views29K

java.util.concurrent.CompletableFuture - класс не новый. Он предстал перед нами во всём своём величии в 2014-м году вместе с выпуском Java 8. Много лет с тех пор прошло, а проще он не стал.

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

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

Жизнь, пульсирующая в черной дыре

Level of difficultyHard
Reading time7 min
Views55K

На habr ранее активно обсуждалась теория Вселенной, осциллирующей в черной дыре, которая развивается в ряде работ, в том числе моих с соавторами (но не только). Чего стоит дискуссия от 2018 года на 600 комментариев «Жизнь внутри черной дыры» (отмечу, что я не инициировал этот пост, просто меня спросили — не возражаю ли я, а я, конечно, вовсе нет). Там, конечно, много странных заявлений, но я не принимал прямое участие в этой дискуссии, потому что был слишком занят дальнейшим развитием теории. Но в этом году ситуация изменилась: работа над моделью циклической Вселенной с переменной гравитационной массой для меня практически завершена. Она подробно изложена в книге «Осциллирующая Вселенная», которая опубликована в бумажном и электронном варианте издательством Челябинского государственного университета в феврале 2023 года. Книгу (со свежими уточнениями на 25 сентября 2023 года) можно скачать на сайте Пущинской обсерватории.

Читать далее
Total votes 91: ↑87 and ↓4+104
Comments332

Garbage Collection и JVM

Level of difficultyEasy
Reading time17 min
Views28K

Привет, Хабровчане!

JVM работает как хорошо отлаженный механизм, автоматически распределяя и освобождая память. Это и есть суть Garbage Collection. Это процесс, который автоматически находит и удаляет объекты, которые больше не используются вашим приложением. Благодаря этому, разработчики могут сосредоточиться на логике приложения, не беспокоясь о ручном управлении памятью.

Знание того, как работает GC и JVM, необходимо каждому Java-разработчику. Правильное управление ресурсами напрямую влияет на производительность и стабильность приложений.

Читать далее
Total votes 24: ↑21 and ↓3+21
Comments7

Слышал звон, знаю где он: делаем объёмный звук в наушниках на Windows

Level of difficultyMedium
Reading time7 min
Views15K

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

Используется бесплатное ПО VoiceMeeter и HeSuVi.

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

Spring Data JPA: замена нескольких запросов одним и почему это очень важно

Level of difficultyEasy
Reading time10 min
Views7.7K

Spring Data JPA: замена нескольких запросов одним и почему это очень важно.

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

Читать далее
Total votes 7: ↑0 and ↓7-7
Comments6

Обработка исключений в Java в функциональном стиле. Часть 2

Reading time4 min
Views8.3K

Обработка исключений в Java в функциональном стиле. Часть 2.


В предыдущей статье была рассмотрена функциональная обработка исключений с помощью интерфейса Try<T>. Статья вызвала определенный интерес читателей и была отмечена в "Сезоне Java".


В данной статье автор продолжит тему и рассмотрит простую и "грамотную" (literate) обработку исключений при помощи функций высшего порядка без использования каких либо внешних зависимостей и сторонних библиотек.

Читать дальше →
Total votes 10: ↑10 and ↓0+10
Comments12

Обработка исключений в Java в функциональном стиле

Reading time4 min
Views26K

В данной статье автор предоставит информацию о собственной библиотеке для обработки исключений (Exception) в функциональном стиле.

Предпосылки

В Java начиная с версии 8 появились новые возможности в виде функциональных интерфейсов и потоков (Stream API). Эти возможности позволяют писать код в новом функциональном стиле без явных циклов, временных переменных, условий ветвления и проч. Я уверен что этот стиль программирования станет со временем основным для большинства Java программистов.

Читать далее
Total votes 33: ↑30 and ↓3+34
Comments32

Хакаем CAN шину авто. Виртуальная панель приборов

Reading time14 min
Views217K


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

В этой статье я расскажу как собрать свою уникальную виртуальную или цифровую панель приборов и получить данные с любых датчиков в автомобилях группы VAG (Volkswagen, Audi, Seat, Skoda).

Мною был собран новый CAN сниффер и CAN шилд для Raspberry Pi на базе модуля MCP2515 TJA1050 Niren, полученные с их помощью данные я применил в разработке цифровой панели приборов с использованием 7″ дисплея для Raspberry Pi. Помимо простого отображения информации цифровая панель реагирует на кнопки подрулевого переключателя и другие события в машине.

В качестве фреймворка для рисования приборов отлично подошел Kivy для Python. Работает без Иксов и для вывода графики использует GL.

  1. CAN сниффер из Arduino Uno
  2. Подслушиваем запросы с помощью диагностической системы VAG-COM (VCDS)
  3. Разработка панели приборов на основе Raspberry Pi и 7″ дисплея
  4. Софт панели приборов на Python и Kivy (UI framework)
  5. Видео работы цифровой панели приборов на базе Raspberry Pi

Под катом полная реализация проекта, будет интересно!
Total votes 195: ↑192 and ↓3+189
Comments224

Ученые создали машину для изобретения математики

Reading time4 min
Views14K


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


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


Для этого группа исследователей из института Технион в Израиле вместе с Google создала автоматизированную систему генерации математических гипотез. Её назвали «Машиной Рамануджана» — в честь знаменитого математика начала XX века, разработавшего тысячи новаторских формул почти без формального обучения. Программа уже выдвинула несколько оригинальных и важных уравнений для некоторых математических констант, а вокруг машины уже развивается активное математическое сообщество. Научный труд ученых был опубликован на прошлой неделе в журнале Nature.

Читать дальше →
Total votes 31: ↑25 and ↓6+28
Comments17

Первый опыт с Raspberry Pi или микросервисы для дома

Reading time14 min
Views16K

Данная статья будет полезна тем, кто никогда прежде не экспериментировал с Raspberry, но считает, что этому самое время.

Привет, Хабр! Тенденция приписывать любому техническому устройству эпитет «умный» достигла, кажется, своего апогея (по количеству употребления, разумеется). К тому же, большинство моих знакомых не из IT-сферы до сих пор наивно полагают, что каждый уважающий себя программист живет в самом «умном» доме во всём квартале, у которого вместо стен — серверные стенды исполинских размеров, а в свободное от работы время этот же человек-программист выгуливает «умную» собаку из Boston Dynamics. Дабы не отставать от этих современных стандартов, мы с товарищем решили собственноручно создать что-то «умное», но несложное, поскольку в школе схемотехника и конструирование роботов обошли нас стороной.

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

Запутанная квантовая физика

Reading time13 min
Views36K
image

Феномен квантовой запутанности (entanglement), когда разделенные в пространстве частицы мистическим образом взаимодействуют друг с другом, нахально нарушая запрет на передачу взаимодействий со сверхсветовой скоростью, давно считается частью науки и у научного сообщества не вызывает никаких сомнений. Вполне серьезно изучаются перспективы создания на этой основе квантовых компьютеров. Считается, что их элементы данных — кубиты будут изменять и передавать свое информационное состояние посредством механизма квантовой запутанности. Такая прагматичная организация, как DARPA щедро финансирует эту чудесную науку. А между тем имеет серьезные основания точка зрения, согласно которой квантовая запутанность в смысле парадокса ЭПР — это миф, который прижился в поверхностном слое понимания квантовой механики.
Читать дальше →
Total votes 31: ↑21 and ↓10+11
Comments110
Плох тот солдат, что не мечтает быть генералом, и плох тот разработчик, который не стремится стать Java-чемпионом. Если ты чувствуешь себя в многопоточности как рыба в воде, а на структурах классов и Collections API давно собаку съел — добро пожаловать в наш тест.
Покажи, на что ты способен
Total votes 21: ↑9 and ↓12+15
Comments29

Памятка пользователям ssh

Reading time13 min
Views1.5M
abstract: В статье описаны продвинутые функций OpenSSH, которые позволяют сильно упростить жизнь системным администраторам и программистам, которые не боятся шелла. В отличие от большинства руководств, которые кроме ключей и -L/D/R опций ничего не описывают, я попытался собрать все интересные фичи и удобства, которые с собой несёт ssh.

Предупреждение: пост очень объёмный, но для удобства использования я решил не резать его на части.

Оглавление:
  • управление ключами
  • копирование файлов через ssh
  • Проброс потоков ввода/вывода
  • Монтирование удалённой FS через ssh
  • Удалённое исполнение кода
  • Алиасы и опции для подключений в .ssh/config
  • Опции по-умолчанию
  • Проброс X-сервера
  • ssh в качестве socks-proxy
  • Проброс портов — прямой и обратный
  • Реверс-сокс-прокси
  • туннелирование L2/L3 трафика
  • Проброс агента авторизации
  • Туннелирование ssh через ssh сквозь недоверенный сервер (с большой вероятностью вы этого не знаете)
Читать дальше →
Total votes 360: ↑352 and ↓8+344
Comments148

Коронавирус Novel nCOV/2019-nCoV/NCP/COVID19: Прогнозы, Статистика, Новости[Часть 1, ред.03.02

Reading time43 min
Views177K
Тут только первая часть статьи с новыми новостями. (Изменение 8.03.2021)
Создание собственного сайта провалилось. Большинству не интересен коронавирус.
Из принципа буду продолжать менять только новости и таблицу.
Прошло больше года с написания этой статьи. Итог:: Мои надежды не оправдались.
Полная версия без обновлений новостей тут
Не обновляемая английская версия: тут

Независимые от меня обстоятельства повлияли на текущую ситуацию, мои извинения

Перейти сразу к новостям

Многие люди не выполняют рекомендаций.Все пошло по «тяжелому сценарию». У систем здравоохранения есть куда увеличивать количество коек, врачей:
Качество: Высокое
1уровень: Инфекционные койки. 10-20% ## Инфекционисты

Качество: Среднее
2уровень: Перепрофилирование больниц 30-60% ## Любые врачи. Возвращают врачей пенсионного возраста.

Качество: Удовлетворительное
3 уровень Частные клиники и военные госпитали 10-20% ## все врачи даже без опыта, снятие из институтов. Военврачи.

Качество: Низкое
4 уровень: Временные больницы 10-20% (Обычно отправлять больных в более легкой форме.Более тяжелые будут в больницах) ## Быстро обученный персонал. (Будут давать более простые задачи, разгрузка врачей от пары задач). Альт. вариант армия для выполнения части задач.

Китай было:2 из 4 /4 из 4 (временные больницы)Италия: Врачи: по 3 из 4.
Качество: Абсолютное (Не бойтесь 5lvl. придумал я, до этого не дойдет)Сарказм: 5 ур.: Больницы не понадобятся.Подробно Dr. Morty.
Статистикshorturl.at/pEY09

Читать дальше →
Total votes 68: ↑52 and ↓16+48
Comments101

Y-метод — действительно простой способ собрать кубик Рубика

Reading time7 min
Views327K

Введение


В статье рассматривается «Y-метод» сборки кубика Рубика — его легко понять и запомнить. Он основан всего на одной последовательности, которая называется «Y-движение». Поняв этот алгоритм, вы навряд ли забудете как собрать кубик самостоятельно.
Читать дальше →
Total votes 86: ↑85 and ↓1+116
Comments78

Протоны и нейтроны: столпотворение внутри материи

Reading time10 min
Views69K
В центре каждого атома находится ядро, крохотный набор частиц под названием протоны и нейтроны. В этой статье мы изучим природу протонов и нейтронов, состоящих из частиц ещё мельче размером – кварков, глюонов и антикварков. (Глюоны, как и фотоны, являются античастицами сами себе). Кварки и глюоны, насколько нам известно, могут быть по-настоящему элементарными (неделимыми и не состоящими из чего-то мельче размером). Но к ним позже.

Как ни удивительно, у протонов и нейтронов масса почти одинаковая – с точностью до процента:

  • 0,93827 ГэВ/с2 у протона,
  • 0,93957 ГэВ/с2 у нейтрона.

Это ключ к их природе – они на самом деле очень похожи. Да, между ними существует одно очевидное различие: у протона положительный электрический заряд, а у нейтрона заряда нет (он нейтральный, отсюда и его название). Соответственно, электрические силы действуют на первый, но не на второй. На первый взгляд это различие кажется очень важным! Но на самом деле это не так. Во всех остальных смыслах протон с нейтроном почти близнецы. У них идентичны не только массы, но и внутреннее строение.

Поскольку они так похожи, и поскольку из этих частиц состоят ядра, протоны и нейтроны часто называют нуклонами.
Читать дальше →
Total votes 26: ↑22 and ↓4+18
Comments47

Подборка полезных слайдов от Джулии Эванс

Reading time1 min
Views52K
Перевели новую порцию слайдов. Права доступа в Unix, файловые дескрипторы, потоки, магия proc. И на закуску пара советов о том, как общаться, когда ты не согласен. А вдруг пригодятся =)



Читать дальше →
Total votes 115: ↑111 and ↓4+107
Comments42

Что должен делать тимлид: роли, обязанности и навыки

Reading time3 min
Views107K


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


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


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

Читать дальше →
Total votes 73: ↑71 and ↓2+69
Comments28

Век живи — век учись. Часть 2. Вуз: 5 лет или 5 коридоров?

Reading time18 min
Views31K
Высшее образование в России — это тотем, фетиш, пунктик и идея фикс. С детства нам внушалось, что «поступить в институт» это джек-пот: все дороги открыты, работодатели выстроились в очередь, зарплата летит на карту. У этого явления есть исторические и социальные корни, но сегодня вместе с популярностью вузов высшее образование стало обесцениваться, и на то также есть причины. На такой почве отлично приживаются истории про бросивших вуз Билла Гейтса и Стива Джобса, которым «отсутствие образования» не помешало стать главными в своей сфере на этой планете. Между тем я берусь утверждать: высшее образование нужно, полезно, формирует специалиста более высокого уровня, ну а с Джобсом и Гейтсом не всё так просто, как пишут в мемах и на каких-нибудь «фишках». Давайте сегодня обсудим, как пройти 5 (6) курсов, а не коридоров и выжать из них профессиональный и личностный максимум. Gaudeamus igitur juvenes dum sumus, друзья!


С незабвенного Башорга по мотивам цитаты

Это вторая часть цикла «Век живи — век учись»

Часть 1. Школа и профориентация
Часть 2. Вуз
Часть 3. Дополнительное образование
Часть 4. Образование внутри работы
Часть 5. Самообразование

Делитесь своим опытом в комментариях — может быть, благодаря стараниям команды RUVDS и читателей Хабра чьё-то первое сентября окажется немного осознаннее, правильнее и плодотворнее. 
Читать дальше →
Total votes 45: ↑43 and ↓2+41
Comments80

Как работает реляционная БД

Reading time51 min
Views541K
Реляционные базы данных (РБД) используются повсюду. Они бывают самых разных видов, от маленьких и полезных SQLite до мощных Teradata. Но в то же время существует очень немного статей, объясняющих принцип действия и устройство реляционных баз данных. Да и те, что есть — довольно поверхностные, без особых подробностей. Зато по более «модным» направлениям (большие данные, NoSQL или JS) написано гораздо больше статей, причём куда более глубоких. Вероятно, такая ситуация сложилась из-за того, что реляционные БД — вещь «старая» и слишком скучная, чтобы разбирать её вне университетских программ, исследовательских работ и книг.

На самом деле, мало кто действительно понимает, как работают реляционные БД. А многие разработчики очень не любят, когда они чего-то не понимают. Если реляционные БД используют порядка 40 лет, значит тому есть причина. РБД — штука очень интересная, поскольку в ее основе лежат полезные и широко используемые понятия. Если вы хотели бы разобраться в том, как работают РБД, то эта статья для вас.
Читать дальше →
Total votes 232: ↑229 and ↓3+226
Comments134
1

Information

Rating
Does not participate
Location
Россия
Registered
Activity