Например, DAO в стандарте де факто для взаимодействия с Apache Cassandra и ScyllaDB (точнее кодогенератор com.datastax.oss:java-driver-mapper-processor) при маппинге ResultSet в entity выполняет линейный поиск соответствия имени колонки её индексу на каждое поле для каждой строки. Вместо вычисления этого маппинга ровно один раз на запрос.
То что jackson потребляет тонну времени на форматировани дат (используя java.time.format.DateTimeFormatter) не очень удивляет, это действительно довольно дорогая операция. Но когда увидел что большую часть времени чтения из базы занимает подозрительный метод DefaultRow#firstIndexOf(String fieldName) -- очень удивился.
Не нужно разбираться с десятками подходов к concurrency — есть горутины
А поверх них кто-то будет данные будет передавать через chan, кто-то через shared memory (и будем надеяться что под корректным mutex'ом), кто-то побежит в нативный shm. И понеслась..
В scala такое тоже было, постфиксными операторами, но местами оно тоже не очень. Тот же 10 days может быть и Period, и Duration (в терминах java.time/jsr310 или joda-time): календарные дни vs. сутки
За такое тоже линейкой по рукам бьют. dateOfBirth: LocalDate ещё может прокатить в зависимости от домена, но иногда лучше String (или он же обернутый в new type), т.к. даты рождения типа 00.01.1944 вполне существуют.
Gradle daemon по умолчанию не завершается, это будет проявляться вне зависимости от ide. То же самое будет с mvnd.
Я несколько раз пробовал VSCode и Fleet с Gradle и это было больно и ужасно. Т.е. в тривиальном случае оно работает, но шаг в сторону -- не видит исходников/зависимостей и работать невозможно. Например при наличии custom configurations, source sets, плагинов типа того же io.quarkus..
речь там про установку какой-нибуть Slackware, Arch или Gentoo не шла
Как известно, Gentoo ставить очень просто, всего три команды /s
Но, вспоминая, как выглядел школьный админ, набивающий команды в терминале одним пальцем по записям в тетради после того как нормального преподавателя/админа в школе ушли, не удивлюсь что в большинстве даже хороших школ с приличным финансированием будет грусть и неподъемная печаль при использовании чего-либо мало-мальски отличающегося от привычного/массового (будь то 95/4.0/98, 2к, хр, 7 или 10/11 с соотв VSyyyy/C::B/Borland C++B)
Из моей практики это сильно зависит от ОС. На линуксе, например, для более-менее обычных проектов (рабочие проекты, Apache Tika) идее вполне хватает 1.5-2G xmx. Ради достаточно крупных (типа Quarkus, Apache Flink, Spring) я поднял xmx до 4G, но обычно куча держится на уровне 1-2G. Правда я не отправлял ноут в сон, а регулярно включаю.
В противоположность этому на маке у коллеги поделия от jetbrains писаются нетонкой струйкой, особенно при переключении на внешний монитор и обратно и вполне могут отожрать 20G RAM за неделю (большая часть -- нативный off heap).
Но это больше проблема не столько idea, сколько jbr runtime
Это было есть много лет как, возможно несколько в другой формулировке. Исторически вызвано наличием специальных классов по экспортному контролю типа крипто алгоритмов. И множество проектов в рамках ASF указано на специальной страничке с кодом ECCN (класс по экспортному контролю) и соотв. зависимостями типа BouncyCastle. IIRC подавляющее большинство попадало под 5d002 (т.е. софт использует криптографию доступную в виде open source библиотек) для которого были исключения разрешающие экспорт несмотря на то что это криптография.
Причем на igg уже есть похожие штуки, как на 7840HS, так и на более новом 8845HS. В том же ценовом диапазоне. А на рынке есть и с более новым HX370/890M.
Сейчас потихоньку сравниваю со своим ноутбучным i7-10875H на том что мне лично интересно. По некоторым параметрам ещё планирую сравнить с MBP16 с M1 Max. Если интересно -- могу потом поделиться.
Учитывая что на рынке есть и железки с Ryzen 9 HX370 + Radeon 890M, и с Ryzen 7 8845HS + Radeon 780M за вполне гуманные деньги, в компактной корпусовке, не очень понятна целевая аудитория.
Для условного NAS можно брать камень слабее, для "игрового" мини-пк нет смысла брать камень с iGPU прошлого поколения. Если к этим $350 добавить память, SSD и корпус оно уже будет ближе к $600, где можно просто взять 8845HS в корпусе, с 32G RAM + 1TB SSD за те же $600.
Почему ребут? Обычно silent memory corruption или, в хорошем раскладе, попадание в соответствующий обработчик (который запросто может быть бесконечным циклом с nop и только при включенном wdt уже ребут)
Стандартные библиотеки иногда тоже творят дичь.
Например, DAO в стандарте де факто для взаимодействия с Apache Cassandra и ScyllaDB (точнее кодогенератор
com.datastax.oss:java-driver-mapper-processor) при маппингеResultSetв entity выполняет линейный поиск соответствия имени колонки её индексу на каждое поле для каждой строки. Вместо вычисления этого маппинга ровно один раз на запрос.То что jackson потребляет тонну времени на форматировани дат (используя
java.time.format.DateTimeFormatter) не очень удивляет, это действительно довольно дорогая операция. Но когда увидел что большую часть времени чтения из базы занимает подозрительный методDefaultRow#firstIndexOf(String fieldName)-- очень удивился.Шутка про алгоритм Шлемиэля, как всегда, актуальна.
Хотя сам такую дичь тоже творил, что уж тут.
Помниться что Eclipse специально переформатировал такое в что-то вида:
А поверх них кто-то будет данные будет передавать через
chan, кто-то через shared memory (и будем надеяться что под корректным mutex'ом), кто-то побежит в нативный shm. И понеслась..В scala такое тоже было, постфиксными операторами, но местами оно тоже не очень. Тот же
10 daysможет быть иPeriod, иDuration(в терминах java.time/jsr310 или joda-time): календарные дни vs. суткиЗа такое тоже линейкой по рукам бьют.
dateOfBirth: LocalDateещё может прокатить в зависимости от домена, но иногда лучшеString(или он же обернутый в new type), т.к. даты рождения типа00.01.1944вполне существуют.Он полезен тем у кого нет доступа к редактированию dns rr и по каким-либо причинам недоступен 80 порт. Что сильно не массово.
Wildcard в этом случае (как и с
http-01) и не должен поддерживаться, т.к. проверяется один хост.В nginx нет нативной поддержки, но внешний респондер (типа acme.sh/lego) +
ngx_stream_ssl_preread_moduleпозволяют реализовать нужный функционал, см https://github.com/acmesh-official/acme.sh/wiki/TLS-ALPN-without-downtime#nginx.Apache httpd поддерживает через
mod_md.HAProxy поддерживает, опять же, с внешним респондером.
https://letsencrypt.org/docs/challenge-types/#tls-alpn-01
Gradle daemon по умолчанию не завершается, это будет проявляться вне зависимости от ide. То же самое будет с mvnd.
Я несколько раз пробовал VSCode и Fleet с Gradle и это было больно и ужасно. Т.е. в тривиальном случае оно работает, но шаг в сторону -- не видит исходников/зависимостей и работать невозможно. Например при наличии custom configurations, source sets, плагинов типа того же io.quarkus..
Как известно, Gentoo ставить очень просто, всего три команды /s
Но, вспоминая, как выглядел школьный админ, набивающий команды в терминале одним пальцем по записям в тетради после того как нормального преподавателя/админа в школе ушли, не удивлюсь что в большинстве даже хороших школ с приличным финансированием будет грусть и неподъемная печаль при использовании чего-либо мало-мальски отличающегося от привычного/массового (будь то 95/4.0/98, 2к, хр, 7 или 10/11 с соотв VSyyyy/C::B/Borland C++B)
Из моей практики это сильно зависит от ОС. На линуксе, например, для более-менее обычных проектов (рабочие проекты, Apache Tika) идее вполне хватает 1.5-2G xmx. Ради достаточно крупных (типа Quarkus, Apache Flink, Spring) я поднял xmx до 4G, но обычно куча держится на уровне 1-2G. Правда я не отправлял ноут в сон, а регулярно включаю.
В противоположность этому на маке у коллеги поделия от jetbrains писаются нетонкой струйкой, особенно при переключении на внешний монитор и обратно и вполне могут отожрать 20G RAM за неделю (большая часть -- нативный off heap).
Но это больше проблема не столько idea, сколько jbr runtime
Это было есть много лет как, возможно несколько в другой формулировке. Исторически вызвано наличием специальных классов по экспортному контролю типа крипто алгоритмов. И множество проектов в рамках ASF указано на специальной страничке с кодом ECCN (класс по экспортному контролю) и соотв. зависимостями типа BouncyCastle. IIRC подавляющее большинство попадало под 5d002 (т.е. софт использует криптографию доступную в виде open source библиотек) для которого были исключения разрешающие экспорт несмотря на то что это криптография.
Тот же reddit не любит адреса из пулов хостеров и не пущает
Причем на igg уже есть похожие штуки, как на 7840HS, так и на более новом 8845HS. В том же ценовом диапазоне. А на рынке есть и с более новым HX370/890M.
Сейчас потихоньку сравниваю со своим ноутбучным i7-10875H на том что мне лично интересно. По некоторым параметрам ещё планирую сравнить с MBP16 с M1 Max. Если интересно -- могу потом поделиться.
Учитывая что на рынке есть и железки с Ryzen 9 HX370 + Radeon 890M, и с Ryzen 7 8845HS + Radeon 780M за вполне гуманные деньги, в компактной корпусовке, не очень понятна целевая аудитория.
Для условного NAS можно брать камень слабее, для "игрового" мини-пк нет смысла брать камень с iGPU прошлого поколения. Если к этим $350 добавить память, SSD и корпус оно уже будет ближе к $600, где можно просто взять 8845HS в корпусе, с 32G RAM + 1TB SSD за те же $600.
В таких случаях всегда вспоминается старый добрый комикс
На МГТС/MTS Home соединение устанавливается, но идёт дроп пакетов после некоторого объёма трафика, даже на
/.Там глубже сравнивать надо, в идеале. IIRC, у докера digest стабилен только в рамках одного репозитория
Особо хорошо что https://hub.docker.com/support/contact/ показывает ту же заглушку с 403
Почему ребут? Обычно silent memory corruption или, в хорошем раскладе, попадание в соответствующий обработчик (который запросто может быть бесконечным циклом с nop и только при включенном wdt уже ребут)
И что в java не так с типизацией если не брать type erasure в generics?