Действительно, при запуске gradle.bat через виндовую консоль интерактивность появилась.
Жаль что gradle (это, по идее, как раз линуксовый вариант) не работает в git-bash под виндой :(
Создался wrapper и два, фактически пустых, файла: build.gradle.kts, settings.gradle.kts.
На сайте про интерактивность тоже ничего не пишут — у меня отработало прямо как в их же доке.
Да, тип проекта можно указать через параметр --type, но это не интерактивность.
В общем случае Comparable это про порядок, а не про идентичность и никто не гарантирует что если x.compareTo(y) == 0, то и x.equals(y) == true.
В JavaDoc Comparable.java описание контракта декларирует It is strongly recommended (though not required) that natural orderings be consistent with equals.
Так что использовать результат compareTo для идентичности так себе идея и правильно что её не используют.
А обёртки могут и появиться в следующих версиях или уже присутствовать в библиотеках. Это мало связано с языком как таковым.
Но нарушают предыдущее Коммит должен иметь форму: номер тикета: название тикета.
Или вы видите смысл в нескольких коммитах с одинаковым комментарием?
И, в реальности, бывает что один коммит может фиксить баги из разных тикетов.
Да, по хорошему, таки тикеты нужно свести в один закрыв остальные как дублирующие.
Но что делать когда каждый тикет описывает свою проблему часть которой фиксит твой коммит?
Есть некоторые приколы. Например == использует equals, который работает совсем не так, как ожидает пользователь, например для BigDecimal. Поэтому BigDecimal("1.00") != BigDecimal("1.0"). В принципе не существенная проблема, но могли бы и обёртки для таких случаев добавить.
Тут всё как раз просто и логично и проистекает из начального тезиса: == использует equals
Всё остальное зависит от реализации equals в конкретном типе.
В данном случае эти действительно два разных числа и, кстати, они не равны по equals с BigDecimal("1"), и пользователь, раз уж использует специфические классы, должен об этом знать.
Это не проблемы языка.
Что-нибудь типа seq.map { it -> foo(it, 1); }.map { it -> bar(it, 2); }.filter { it -> it.getBaz() > 0; }.
Кстати, тут косяк котлина, что он не сказал
что можно написать короче
что вы используете ключевое слово как имя переменной
Это не косяк Kotlin-а — это, в лучшем случае, отсутствие варнинга со стороны IDE. it это не ключевое слово, а дефолтное имя для переменной, попадающей в ламбду, если это имя явно не переопределить самому. И никто не запрещает использовать it где-либо ещё (что как раз является одним из ограничений ключевых слов) и, уж тем более, никто не запрещает использовать его в качестве имени переменной указанной руками.
Но инспекцию на такое поведение со стороны IDE было бы не плохо иметь.
В данном моменте я как раз за Kotlin.
А уж если предположить что поля Point не наследники Number, то в Java и математические операторы использовать нельзя.
В случае такого варианта:
//Java (и то только если X/Y/Z иммутабельны)
point2.setZ(point1.getX().add(point1.getY()).multiply(point2.getX().subtract(point2.getZ())));
//Java (с переменные для "читаемости")
CustomNumber sum = point1.getX().add(point1.getY());
CustomNumber subtr = point2.getX().subtract(point2.getZ());
point2.setZ(sum.multiply(subtr));
//Kotlin
point2.z = (point1.x + point1.y) * (point2.x - point2.z)
Что в первом что во втором варианты Java-кода я не могу сходу опередить что там происходит — код приходится парсить глазами.
При этом Kotlin-код читается без проблем.
Если вам нужны локальные переменные только для упрощения чтения кода — это уже о чём-то да говорит.
Если они нужны где-то ещё далее по коду, то пусть будут конечно. Только в Kotlin рекомендуется использовать val.
А вот кредит на 1000р под 0.5% в день на 3 дня — это 15р сверху, это значительно лучше чем выклянчивать у коллег или друзей косарь до получки.
Может и лучше, но всё равно плохо.
Кредит на 1000р под 0.5% в день стоит 5 рублей в день. Стоит только промахнуться с ожиданиями и уже не 3 дня, а все 5 (из которых 2, например, выходные) и это уже 25 руб. Внезапно задержали ЗП перед выходными — опять копеечка. Да не много, но совершенно пустых трат.
Неужели занимать у коллег/родственников/соседей/друзей лучше?
Не сказал бы — это тоже плохо, так как это ухудшает отношения в первую очередь, а их восстановить сложнее чем состояние кошелька.
Как по мне так лучший вариант это кредитные карты с расширенным грейс-периодом или вовсе карты рассрочки.
Сейчас на рынке вполне достаточный выбор карт, с бесплатным выпуском и обслуживанием, предоставляющих расширенный грейс-период или рассрочку по платежам.
Расширенный грейс-период позволяет отложить погашение долга по кредитке на 30-50 дней — это прекрасно покрывает кейс занять до получки, причём при нулевых расходах как финансовых так и репутационных.
Карты рассрочки (по крайней мере одна) позволяет начать платить с конце следующего периода (купил DD.MM.YYYY (10 ноября), первый платёж 31.(MM+1).YYYY (31 декабря)), да ещё и с пропорциональной разбивкой суммы платежа по месяцам. Но только из списка сетей-партнёров.
Да, нужно понимать что кредитные карты это в первую очередь кредиты, а уже только потом карты.
И в случае несоблюдения правил конкретной карты можно попасть на штраф и/или проценты.
Штраф, скорее всего будет не 15 руб, а около 500-600. Зато проценты не 0.5% в день (182%/год), а 10-15%/год — то есть в 12-18 раз меньше.
Да, конечно штраф в 500 руб это 100 дней при 0.5%/день на займе 1000 руб — вроде карта хуже?
Но если исходный займ будет под чуть другие условия? Для варианта 2000 руб под 1%/день 500 руб набираются уже за 25 дней, а штраф по кредиту выпишут только через 30/50.
Если человек точно уверен что он отдаст эти деньги через X дней (при X < 30) так ли нужно платить безусловный барыш каким-то мутным типам если можно вообще не платить?
P.S.
И, если я правильно помню, 0.5%/день это условия для новых клиентов — для привлечения базы. При повторном займе процент будет скорее больше чем при первых займах.
Если уж браузер решил обратиться на grtatic.com вместо gstatic.com, то и сертификат он будет ждать на имя grtatic.com а получить сертификат на это имя владея сервером, обслуживающим этот адрес совсем не сложно.
Именно по этому я и задал свой вопрос — просто предлагать всем решение работающее в очень ограниченном диапазоне.
Чтобы было намёком на то Помощник Москвы совсем не решение.
Но сарказм понимают не всегда :)
Так в PR можно и просить обоснование, а внесение изменений через веб-интерфейс сейчас там очень простой.
Правда нужно чтобы PDF были в текстовом виде, а в собственно PDF компилировались как-нибудь.
Ну если группа всего из двух, то тут как не вертись а дарить будут друг-другу.
Ваш сайт пропал из списка номинантов: https://yadi.sk/i/sbS2e7h3monRog
Действительно, при запуске
gradle.bat
через виндовую консоль интерактивность появилась.Жаль что
gradle
(это, по идее, как раз линуксовый вариант) не работает вgit-bash
под виндой :(Вам прямая дорога вот сюда: https://github.com/phplego/kotlinlang.ru/blob/master/coding-conventions.md
Я скачал текущую версию Gradle (
7fc6e5abf2fc5fe0824aec8a0f5462664dbcd987
), ноgradle init
ни разу не интерактивный:Создался wrapper и два, фактически пустых, файла:
build.gradle.kts
,settings.gradle.kts
.На сайте про интерактивность тоже ничего не пишут — у меня отработало прямо как в их же доке.
Да, тип проекта можно указать через параметр
--type
, но это не интерактивность.В общем случае
Comparable
это про порядок, а не про идентичность и никто не гарантирует что еслиx.compareTo(y) == 0
, то иx.equals(y) == true
.В JavaDoc Comparable.java описание контракта декларирует
It is strongly recommended (though not required) that natural orderings be consistent with equals.
Так что использовать результат
compareTo
для идентичности так себе идея и правильно что её не используют.А обёртки могут и появиться в следующих версиях или уже присутствовать в библиотеках. Это мало связано с языком как таковым.
Но нарушают предыдущее
Коммит должен иметь форму: номер тикета: название тикета.
Или вы видите смысл в нескольких коммитах с одинаковым комментарием?
И, в реальности, бывает что один коммит может фиксить баги из разных тикетов.
Да, по хорошему, таки тикеты нужно свести в один закрыв остальные как дублирующие.
Но что делать когда каждый тикет описывает свою проблему часть которой фиксит твой коммит?
Так замутите — лицензия на карточки открыта.
Тут всё как раз просто и логично и проистекает из начального тезиса:
==
используетequals
Всё остальное зависит от реализации
equals
в конкретном типе.В данном случае эти действительно два разных числа и, кстати, они не равны по
equals
сBigDecimal("1")
, и пользователь, раз уж использует специфические классы, должен об этом знать.Это не проблемы языка.
Это не косяк Kotlin-а — это, в лучшем случае, отсутствие варнинга со стороны IDE.
it
это неключевое слово
, адефолтное имя для переменной, попадающей в ламбду, если это имя явно не переопределить самому
. И никто не запрещает использоватьit
где-либо ещё (что как раз является одним из ограничений ключевых слов) и, уж тем более, никто не запрещает использовать его в качестве имени переменной указанной руками.Но инспекцию на такое поведение со стороны IDE было бы не плохо иметь.
Вот тут хорошо сказали про ключи компилятора относительно варнингов
В данном моменте я как раз за Kotlin.
А уж если предположить что поля
Point
не наследникиNumber
, то в Java и математические операторы использовать нельзя.В случае такого варианта:
Что в первом что во втором варианты Java-кода я не могу сходу опередить что там происходит — код приходится парсить глазами.
При этом Kotlin-код читается без проблем.
Если вам нужны локальные переменные только для упрощения чтения кода — это уже о чём-то да говорит.
Если они нужны где-то ещё далее по коду, то пусть будут конечно. Только в Kotlin рекомендуется использовать
val
.Название тикета может не отражать изменений которые были внесены для исправления этого тикета.
Если тикет маленький и локальный — конечно да.
А что делать если тикет большой и по логике разбивается на несколько крупных независимых изменений?
Компания рекламирует свой сервис в своём корпоративном блоге.
А сейчас есть возможность запросить такой приёмник бесплатно?
Может и лучше, но всё равно плохо.
Кредит
на 1000р под 0.5% в день
стоит 5 рублей в день. Стоит только промахнуться с ожиданиями и уже не 3 дня, а все 5 (из которых 2, например, выходные) и это уже 25 руб. Внезапно задержали ЗП перед выходными — опять копеечка. Да не много, но совершенно пустых трат.Неужели занимать у коллег/родственников/соседей/друзей лучше?
Не сказал бы — это тоже плохо, так как это ухудшает отношения в первую очередь, а их восстановить сложнее чем состояние кошелька.
Как по мне так лучший вариант это кредитные карты с расширенным грейс-периодом или вовсе карты рассрочки.
Сейчас на рынке вполне достаточный выбор карт, с бесплатным выпуском и обслуживанием, предоставляющих расширенный грейс-период или рассрочку по платежам.
Расширенный грейс-период позволяет отложить погашение долга по кредитке на 30-50 дней — это прекрасно покрывает кейс
занять до получки
, причём при нулевых расходах как финансовых так и репутационных.Карты рассрочки (по крайней мере одна) позволяет начать платить с конце следующего периода (купил
DD.MM.YYYY
(10 ноября), первый платёж31.(MM+1).YYYY
(31 декабря)), да ещё и с пропорциональной разбивкой суммы платежа по месяцам. Но только из списка сетей-партнёров.Да, нужно понимать что кредитные карты это в первую очередь кредиты, а уже только потом карты.
И в случае несоблюдения правил конкретной карты можно попасть на штраф и/или проценты.
Штраф, скорее всего будет не 15 руб, а около 500-600. Зато проценты не
0.5% в день
(182%/год
), а10-15%/год
— то есть в 12-18 раз меньше.Да, конечно штраф в 500 руб это
100 дней при 0.5%/день на займе 1000 руб
— вроде карта хуже?Но если исходный займ будет под чуть другие условия? Для варианта
2000 руб под 1%/день
500 руб набираются уже за 25 дней, а штраф по кредиту выпишут только через 30/50.Если человек точно уверен что он отдаст эти деньги через
X
дней (приX < 30
) так ли нужно платить безусловный барыш каким-то мутным типам если можно вообще не платить?P.S.
И, если я правильно помню,
0.5%/день
это условия дляновых
клиентов — для привлечения базы. При повторном займе процент будет скорее больше чем при первых займах.Если уж браузер решил обратиться на
grtatic.com
вместоgstatic.com
, то и сертификат он будет ждать на имяgrtatic.com
а получить сертификат на это имя владея сервером, обслуживающим этот адрес совсем не сложно.Именно по этому я и задал свой вопрос — просто предлагать всем решение работающее в очень ограниченном диапазоне.
Чтобы было намёком на то
Помощник Москвы
совсем не решение.Но сарказм понимают не всегда :)
Так в PR можно и просить обоснование, а внесение изменений через веб-интерфейс сейчас там очень простой.
Правда нужно чтобы PDF были в текстовом виде, а в собственно PDF компилировались как-нибудь.