Орган, выпускающий деньги, насколько я помню, гарантирует только, что они чем-то подкреплены (допустим, золотым запасом). Наличие у вас денег совсем не гарантирует того, что вам кто-то что-то за них продаст. Может быть, вернёмся к реальному миру? Биткоин есть? Есть. Торгуется? Торгуется. Товар за него продаётся? Продаётся. Покупается? Покупается. Да, если у вас украдут биткоины — вы ничего не сможете сделать. Но с другой стороны никто не заблокирует ваш кошелёк, и за ним не придут приставы, например. У всего есть свои плюсы и минусы, и, повторяю — то, что вам не нравится биткоин, не означает, что он бесполезен.
Продавец товара, скорее всего, первым делом использует миксер, чтобы было трудно отследить, от кого и к кому ушли деньги. Далее дело техники — в интернете вагон обменников, которые с радостью купят ваши биткоины и переведут в нужной валюте на ваш кошелёк, будь то VISA, QIWI, WebMoney или что-нибудь другое. Более того, обычно в тех же местах можно приобрести левые дебетовые карты (VISA/MasterCard) с привязанными симками и комплектом паспортов, которые успешно можно использовать для обнала минимум один раз (это к вопросу о безопасности).
Это не умаляет того, что те, кому надо — вполне себе успешно используют биткоин. Скажем так, то, что вы не видите в этом целесообразности — не значит, что всё так и есть :)
Я не буду приводить ссылок, но если вы поищете в торе — сами найдёте уйму площадок. И вы не поверите, но они этим и занимаются — обменивают товар на, как вы говорите, «пустой звук». Сильно сомневаюсь, что люди, которым хватает мозгов всё это организовать и не быть при этом пойманными, находятся не в своём уме.
Из более-менее легального можно посмотреть на обменники — например, localbitcoins живёт и здравствует, на нём торгуют люди, пишут ботов, есть вменяемый API. А если обменники скомбинировать с миксерами — получается, что биткоин далеко не такой пустой звук, как вам кажется.
Если в качестве идеи вы имеете ввиду майнинг — то да, так и есть. А сам биткоин умирать не собирается, я вас уверяю :) В сети куча мест (полулегальных/совсем нелегальных), где оплату можно произвести ТОЛЬКО биткоинами, где крутятся в прямом смысле этого слова бешеные деньги (как пример — наркобизнес).
Интересно, какую такую узкую нишу имеет асинхронное программирование. Любое взаимодействие с внешним миром — работа с сетью, чтение/запись на диск и т. д. гораздо проще выражается при использовании асинхронного кода, нежели мешаниной callback'ов. Зависит конечно от самого языка и от того, что конкретно разрабатывается.
Проблема арабского языка — в написании справа налево. А когда в дело вступает форматирование (я имею ввиду подстановку цифр, дат, денежных значений и т. д.) — становится совсем невесело.
Лично я не против вашего подхода, но на мой взгляд он менее универсальный, конечно это не смертельно, если вы не планируете расширять список используемых языков.
Если 200 комментариев по существу на 1000 строк кода — значит задача слишком сложная, и надо давать что-нибудь попроще для начала. Если критика конструктивная (а не в стиле «я бы сделал по-другому») — значит всё правильно, обратную связь нужно давать и лучше сказать, что год говно, на этапе ревью, чем это выяснится после релиза. Если человека уволили из-за того, что он не справляется со своими прямыми обязанностями — это в основном его проблемы. «Каждый должен подтирать свою задницу».
Да, но дело в том, что если вы пишете библиотечный код, то обычно не можете знать, в каком контексте он будет вызван. Обычная рекомендация — добавлять везде .ConfigureAwait(false), но эта конструкция семантически некорректна, и очень легко забыть написать её в каком-то одном месте, и получить дедлок у клиента.
Ещё бывает полезно предоставлять варианты метода с выбрасыванием исключений и с кодом ошибки, грубо говоря:
public CoolResult DoSomethingCool(...); // кидает исключение
public bool TryDoSomethingCool(..., out CoolResult result); // возвращает флаг
Ещё желательно позаботиться об обработке unhandled exceptions (отовсюду, в шарпах это значит, что надо ловить и AppDomain.CurrentDomain.UnhandledException, и TaskScheduler.UnobservedTaskException, и Dispatcher.UnhandledException) или хотя бы предоставить в SDK такую возможность, это несложно и очень упрощает жизнь.
Опять же, если пишете на C# — надо продумать всё, что связано с контекстом, и определить правила, которых вы будете придерживаться. Например, мы у себя не используем ConfigureAwait(false) по ряду причин, и для гарантированного переключения контекста у нас есть специальная небольшая структура.
Также, если у вас есть асинхронный код (а это скорее всего так), и вы его передаёте в диспетчер или Task.Run — лучше сразу позаботиться о том, чтобы в случае чего вы получили грамотный call stack, а не обрывок.
Если у вас большой solution, удобно использовать файл Directory.Build.props для задания свойств и действий, которые будут применяться ко всем проектам — например, вы можете через этот файл подключить один AssemblyInfo.cs ко всем проектам, а также настроить CodeAnalysis и StyleCop в одном месте. Если надо будет на время отключить стайлкоп — достаточно поправить один файл, то же касается версий и т.д.
На сайте AdoptOpenJdk написано: «In addition, every three years one feature release will be designated as the Long Term Supported (LTS) release. We will produce LTS releases for at least four years. This assurance will allow you to stay on a well-defined code stream, and give you time to migrate to the next, new, stable, LTS release when it becomes available. » Разве это не про LTS?
Спасибо, что держите в курсе событий. Вообще в новости написано: «До апреля 2019 года компания Amazon намерена дополнительно сформировать LTS-ветку Corretto 11, основанную на OpenJDK 11. Поддержка Corretto 11 будет осуществляться до августа 2024 года.»
Это не мои слова, а слова, написанные в статье. Я думаю, вам стоит спросить автора статьи об источниках.
Вот, например, по второй ссылке в гугл (http://mail.openjdk.java.net/pipermail/jdk-dev/2018-August/001830.html):
OpenJDK is a community project. It's up to the community to support
it. In practice this means that a group of organizations and
individuals will maintain each OpenJDK LTS release for some period
(TBA for 11, but it's sure to be a *lot* longer than six months.) I am
certain that there will be a jdk11u project, and it will be properly
and professionally run. I think it's likely that I'll be leading the
project, but someone else may be chosen. Given that we don't know when
Oracle will end their support it's hard to say any more.
Из более-менее легального можно посмотреть на обменники — например, localbitcoins живёт и здравствует, на нём торгуют люди, пишут ботов, есть вменяемый API. А если обменники скомбинировать с миксерами — получается, что биткоин далеко не такой пустой звук, как вам кажется.
Лично я не против вашего подхода, но на мой взгляд он менее универсальный, конечно это не смертельно, если вы не планируете расширять список используемых языков.
Ещё желательно позаботиться об обработке unhandled exceptions (отовсюду, в шарпах это значит, что надо ловить и AppDomain.CurrentDomain.UnhandledException, и TaskScheduler.UnobservedTaskException, и Dispatcher.UnhandledException) или хотя бы предоставить в SDK такую возможность, это несложно и очень упрощает жизнь.
Опять же, если пишете на C# — надо продумать всё, что связано с контекстом, и определить правила, которых вы будете придерживаться. Например, мы у себя не используем ConfigureAwait(false) по ряду причин, и для гарантированного переключения контекста у нас есть специальная небольшая структура.
Также, если у вас есть асинхронный код (а это скорее всего так), и вы его передаёте в диспетчер или Task.Run — лучше сразу позаботиться о том, чтобы в случае чего вы получили грамотный call stack, а не обрывок.
Если у вас большой solution, удобно использовать файл Directory.Build.props для задания свойств и действий, которые будут применяться ко всем проектам — например, вы можете через этот файл подключить один AssemblyInfo.cs ко всем проектам, а также настроить CodeAnalysis и StyleCop в одном месте. Если надо будет на время отключить стайлкоп — достаточно поправить один файл, то же касается версий и т.д.
Был неправ, посыпаю голову пеплом. Вот только почему-то у меня так ни разу и не получилось.
Вот, например, по второй ссылке в гугл (http://mail.openjdk.java.net/pipermail/jdk-dev/2018-August/001830.html):
Для ubuntu есть пакет openjdk-lts: launchpad.net/ubuntu/+source/openjdk-lts
Вот тут RedHat обещает, что OpenJDK 11 будет поддерживаться вплоть до октября 2024 года.
Первые три ссылки в google по запросу openjdk lts, что я делаю не так?
P.S. Также обратите внимание на AdoptOpenJDK