Ну ткс умеет и без этого блокировать счета. Недавно перекинул из другого банка через сбп себе денег на тинькофф, чтобы снять в их банкомате у магазина. Пытаюсь снять, получаю отлуп и блокировку всех счетов. Поддержка пытается рассказывать о том как злые мошенники просят снять и отдать им денег у банкомата, разблокировать можно было только после получасового, блджад, общения с оператором, десяток раз повторив что снимаю свои деньги по собственной воле и никто меня не просил из снять и "внести на безопасный счёт". Надо учитывать что сумма заподфтшная, анонимно не внесёшь. Если не дослушать (у меня успел сесть телефон) операцию надо повторять сначала. Что-то в безопасности, да.
С какой стати это vendor lock-in? Это просто часть требований к системе в относительно узком домене, где нужна реальная дата из бумажного документа. И если в ДУЛ написано 29.02.1961, то хрен что с этим сделаешь без довольно непростого административного решения (уровня государства), т.к. эта дата могла протечь в тонну других документов.
Большинство же систем будет использовать вполне простой и человеческий LocalDate
Я прекрасно это ощутил возвращаясь из похода, когда старая маска радостно умерла под дождями, а новую можно было купить в аэропорту в киоске после входа. Но для входа, очевидно, нужна маска. Благо, баф, натянутый на морду, в качестве маски срабатывал
Как повезёт. В моём случае это не так, добавлял исключение чтоб роутить реддит напрямую, т.к. через чужой пул он работает только для авторизованного акка в приложении. Вне зависимости от используемого протокола
Согласен, пример старенький. Тут еще не хватает аннотаций AspectJ и Dagger, так бы получилось добавить еще 4 штуки.
Сатира, конечно, хорошо. Но использование конструкции языка 20-летней давности, имхо, слишком уж уводит в гротеск и отвлекает. На деле, конечно, аннотиции jaxb и jackson будут висеть на dto и смотреться это всё будет не столь ужасно
Иногда это повод мягонько быть аналитиков тяжелыми ботинками чтоб всякая дичь не прорывалась в проектные артефакты.
Но я в целом очень за использования доменной терминологии в бизнес-логике (как минимум на верхнем уровне). Сильно упрощает общение как между разработкой и аналитикой, так и внутри разработки. При наличии разумного общего глоссария/единого языка (ubiquitous language в DDD) поддержка упрощается и некоторые логические ошибки просто не пролезают в код. Правда, это тоже достаточно дорогое удовольствие((
Например, 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)
Космические рейнджеры 2 HD у меня в стиме установлены (которые с доп. пиратский фракцией)
Спасибо за статью, существенно более содержательно чем привычно видеть от некоторых российских вендоров.
О, на разрешеном ркн ресурсе, удобно. Про прекращение поддержки alce они на своём форуме пару лет назад упоминали, емнип
Ну ткс умеет и без этого блокировать счета. Недавно перекинул из другого банка через сбп себе денег на тинькофф, чтобы снять в их банкомате у магазина. Пытаюсь снять, получаю отлуп и блокировку всех счетов. Поддержка пытается рассказывать о том как злые мошенники просят снять и отдать им денег у банкомата, разблокировать можно было только после получасового, блджад, общения с оператором, десяток раз повторив что снимаю свои деньги по собственной воле и никто меня не просил из снять и "внести на безопасный счёт". Надо учитывать что сумма заподфтшная, анонимно не внесёшь. Если не дослушать (у меня успел сесть телефон) операцию надо повторять сначала. Что-то в безопасности, да.
С какой стати это vendor lock-in? Это просто часть требований к системе в относительно узком домене, где нужна реальная дата из бумажного документа. И если в ДУЛ написано 29.02.1961, то хрен что с этим сделаешь без довольно непростого административного решения (уровня государства), т.к. эта дата могла протечь в тонну других документов.
Большинство же систем будет использовать вполне простой и человеческий
LocalDate
с мыслью оставить подобный комментарий и зашёл в коменты)) Но если б назвались quagga/frr был бы ещё больший вопрос про сквоттинг и трейдмарки
Я прекрасно это ощутил возвращаясь из похода, когда старая маска радостно умерла под дождями, а новую можно было купить в аэропорту в киоске после входа. Но для входа, очевидно, нужна маска. Благо, баф, натянутый на морду, в качестве маски срабатывал
Как повезёт. В моём случае это не так, добавлял исключение чтоб роутить реддит напрямую, т.к. через чужой пул он работает только для авторизованного акка в приложении. Вне зависимости от используемого протокола
Использовать
objdump
/readelf
на результате, про ld script можно скзать, что это такой специфичный конфиг.Ну и не могу не посоветовать про низкоуровневый мир для души почитать (и чисто поржать xD) https://www.usenix.org/system/files/1311_05-08_mickens.pdf (в переводе: https://habr.com/ru/articles/203276/)
Сатира, конечно, хорошо. Но использование конструкции языка 20-летней давности, имхо, слишком уж уводит в гротеск и отвлекает. На деле, конечно, аннотиции jaxb и jackson будут висеть на dto и смотреться это всё будет не столь ужасно
Иногда это повод мягонько быть аналитиков тяжелыми ботинками чтоб всякая дичь не прорывалась в проектные артефакты.
Но я в целом очень за использования доменной терминологии в бизнес-логике (как минимум на верхнем уровне). Сильно упрощает общение как между разработкой и аналитикой, так и внутри разработки. При наличии разумного общего глоссария/единого языка (ubiquitous language в DDD) поддержка упрощается и некоторые логические ошибки просто не пролезают в код. Правда, это тоже достаточно дорогое удовольствие((
Стандартные библиотеки иногда тоже творят дичь.
Например, 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)