Logitech Cordless TrackMan Optical, о да, сколько я с ним времени провел...
Недавно в связи с переустройством рабочего места решил заново купить трекбол, нашел вот такой:
Картинка
Это видимо идейный наследник HUGE трекбола который упоминали выше. Я попробовал и HUGE тоже, но не почувствовал у него сильных преимуществ над DEFT PRO, но у последнего зато три способа подключения — через приемник, через bluetooth и проводом. Приемник и bluetooth переключаются рычажком на самом трекболе, что очень удобно для переключения между личным и рабочим ноутбуком.
Сам трекбол довольно удобный (хотя почему-то мне кажется что годы назад Trackman Optical был удобнее :)), но я, по советам в интернете, поменял ему стандартные подшипники из "искусственного рубина" на керамические, из оксида циркония. Шар сразу стал крутиться лучше, и что интересно, он перестал плохо вращаться из-за грязи! Не знаю как это работает, но чистить его стало нужно гораздо реже, разве что из гигиенических соображений.
UTF-16 не является кодировкой с постоянным размером «символа». Например, популярные сейчас эмодзи всегда будут занимать в тексте 4 байта а не 2. Поэтому c UTF-16, точно так же как и с UTF-8, нельзя «вырезать, вставлять, сравнивать части строки» с помощью байтовых индексов.
Отступы будут автоматически убираться. Почитайте JEP по этой фиче — он довольно короткий и простой. Мне уже попадались случаи где функциональность из него была бы удобнее того, что сейчас сырые строки в котлине предоставляют.
Пожалуй, самое заметное ограничение с записями в том, что нельзя объявлять собственные поля. Что в свою очередь означает, что нельзя сделать "ленивые" свойства, по аналогии с lazy val в Scala или by lazy в Kotlin. И в скале, и в котлине я регулярно пользуюсь этими фичами, очень жаль что в джаве эквивалент с записями сделать не получится :(
Вероятно, здесь не имелось в виду что это один и тот же адрес; имелось в виду что и тот и другой адрес — это примеры конкретных адресов а не адресов сетей.
кстати, почему Optional.of() бросает NPE если на входе null?
Потому что Optional<T> сделан как обертка над нуллабельным полем типа T, соответственно отличить пустой Optional от Optional.of(null) нет возможности. Наверное в теории можно было бы сделать так чтобы Optional.of(null) возвращал пустой Optional, но вероятно для дополнительной null-безопасности решили этого не делать.
Вообще хз, когда мы с женой ходим в кафе и прочие публичные места здесь в США, к нам обоим регулярно обращаются как "guys". Слегка режет слух до сих пор, но похоже это все-таки нормальное обращение к группе со смешанным полом.
Если при рефакторинге классы не менялись так, чтобы getMelodies() возвращал Stream, то этот код не скомпилируется, т.к. flatMap() требует чтобы функция возвращала Stream, а здесь она вернет List или другую коллекцию. Про правки класса в условии задачи ничего нет, да и вообще — возвращать стримы из геттеров это мягко говоря не самая распространённая практика. Тест же утверждает что правильный ответ — скомпилируется и будет работать.
Более того, getMelodies() не мог изначально возвращать Stream т.к. в первом куске кода результат getMelodies() используется в for, что не скомпилируется для стримов (они не Iterable => нельзя foreach).
Чтобы скомпилировалось, нужно явно вызвать stream() на результате getMelodies():
Git это по факту блокчейн и есть :) по крайней мере, структура данных (Merkle tree) одна и та же.
И конкретно в гите можно править историю. Более того, если копия репозитория только одна (или все копии доступны для прямого контроля), это можно сделать не оставляя следов вообще.
США — очень плохой пример для сравнения в плане количества бумаг при подаче налоговой декларации.
В РФ мне приходилось один раз отправить форму 3-НДФЛ, и там все ее заполнение обошлось несколькими кликами в личном кабинете.
В США мы отправляем две формы tax return, для федерального и для местного, и в каждой по много листов и под-форм с отдельными номерами. А если посмотреть сколько их там всего возможных, то волосы дыбом встанут.
Я не знаю ничего насчет различий и преимуществ/недостатков бюрократии в двух странах конкретно для юрлиц, но что касается конкретно деклараций для НДФЛ, с этим в РФ гораздо проще.
Мне кажется, что zetroot имел в виду, что аббревиатура SQL расшифровывается как Structured Query Language, а не как Simple Query Language. Что есть абсолютная правда, см. например https://en.wikipedia.org/wiki/SQL
В оболочке fish, которой не надо было следовать легаси-интерфейсам, этот механизм первоначальной настройки шелла работает, имхо, гораздо логичнее и понятнее. В fish всегда, вне зависимости от того, login это шелл или interactive, читается один и тот же набор конфигов (~/.config/fish/config.fish, /etc/fish/config.fish, /usr/share/fish/config.fish). Если есть необходимость разделять конфигурацию шеллов, можно проверить тип оболочки с помощью команд status --is-login и status --is-interactive:
if status --is-login
for f in ~/config/fish/login.d/*.fish
source $f
end
end
for f in ~/config/fish/init.d/*.fish
source $f
end
if status --is-interactive
for f in ~/config/fish/interactive.d/*.fish
source $f
end
end
Logitech Cordless TrackMan Optical, о да, сколько я с ним времени провел...
Недавно в связи с переустройством рабочего места решил заново купить трекбол, нашел вот такой:
Это видимо идейный наследник HUGE трекбола который упоминали выше. Я попробовал и HUGE тоже, но не почувствовал у него сильных преимуществ над DEFT PRO, но у последнего зато три способа подключения — через приемник, через bluetooth и проводом. Приемник и bluetooth переключаются рычажком на самом трекболе, что очень удобно для переключения между личным и рабочим ноутбуком.
Сам трекбол довольно удобный (хотя почему-то мне кажется что годы назад Trackman Optical был удобнее :)), но я, по советам в интернете, поменял ему стандартные подшипники из "искусственного рубина" на керамические, из оксида циркония. Шар сразу стал крутиться лучше, и что интересно, он перестал плохо вращаться из-за грязи! Не знаю как это работает, но чистить его стало нужно гораздо реже, разве что из гигиенических соображений.
Я очень далек от фронтенда и просто мимопроходил, но вот эта библиотека: https://crank.js.org/guides/getting-started очень напоминает ваши фракталы :)
Яхз, может у нас нетипичный случай, но мы со 130к, в Купертино, с маленьким ребенком (садик) не то что не выживали, но наоборот, получалось копить.
Отступы будут автоматически убираться. Почитайте JEP по этой фиче — он довольно короткий и простой. Мне уже попадались случаи где функциональность из него была бы удобнее того, что сейчас сырые строки в котлине предоставляют.
Смена пароля с периодом кстати признана многими специалистами по безопасности бессмысленной и вредной:
https://www.schneier.com/blog/archives/2016/08/frequent_passwo.html
https://www.sans.org/security-awareness-training/blog/time-password-expiration-die
https://cryptosmith.com/password-sanity/exp-harmful/
Пожалуй, самое заметное ограничение с записями в том, что нельзя объявлять собственные поля. Что в свою очередь означает, что нельзя сделать "ленивые" свойства, по аналогии с
lazy val
в Scala илиby lazy
в Kotlin. И в скале, и в котлине я регулярно пользуюсь этими фичами, очень жаль что в джаве эквивалент с записями сделать не получится :(В IRC есть каналы с книгами.
Вероятно, здесь не имелось в виду что это один и тот же адрес; имелось в виду что и тот и другой адрес — это примеры конкретных адресов а не адресов сетей.
Потому что
Optional<T>
сделан как обертка над нуллабельным полем типаT
, соответственно отличить пустойOptional
отOptional.of(null)
нет возможности. Наверное в теории можно было бы сделать так чтобыOptional.of(null)
возвращал пустойOptional
, но вероятно для дополнительной null-безопасности решили этого не делать.Где вы 35% налогов нашли? Даже с большей суммы выходит в районе 27%, и то это с запасом, в следущем году IRS с гарантией что-то вернет.
Но 120к в bay area действительно может быть маловато, особенно с детьми.
Вообще хз, когда мы с женой ходим в кафе и прочие публичные места здесь в США, к нам обоим регулярно обращаются как "guys". Слегка режет слух до сих пор, но похоже это все-таки нормальное обращение к группе со смешанным полом.
Облака облаками, а приложения для мобильников у BofA совершенно отвратные, да и личный кабинет на сайте тоже.
Характерная особенность англоязычной публицистики ¯\(ツ)/¯
Ответ в задаче про стримы неправильный.
Если при рефакторинге классы не менялись так, чтобы
getMelodies()
возвращалStream
, то этот код не скомпилируется, т.к.flatMap()
требует чтобы функция возвращалаStream
, а здесь она вернетList
или другую коллекцию. Про правки класса в условии задачи ничего нет, да и вообще — возвращать стримы из геттеров это мягко говоря не самая распространённая практика. Тест же утверждает что правильный ответ — скомпилируется и будет работать.Более того,
getMelodies()
не мог изначально возвращатьStream
т.к. в первом куске кода результатgetMelodies()
используется вfor
, что не скомпилируется для стримов (они неIterable
=> нельзя foreach).Чтобы скомпилировалось, нужно явно вызвать
stream()
на результатеgetMelodies()
:Git это по факту блокчейн и есть :) по крайней мере, структура данных (Merkle tree) одна и та же.
И конкретно в гите можно править историю. Более того, если копия репозитория только одна (или все копии доступны для прямого контроля), это можно сделать не оставляя следов вообще.
США — очень плохой пример для сравнения в плане количества бумаг при подаче налоговой декларации.
В РФ мне приходилось один раз отправить форму 3-НДФЛ, и там все ее заполнение обошлось несколькими кликами в личном кабинете.
В США мы отправляем две формы tax return, для федерального и для местного, и в каждой по много листов и под-форм с отдельными номерами. А если посмотреть сколько их там всего возможных, то волосы дыбом встанут.
Я не знаю ничего насчет различий и преимуществ/недостатков бюрократии в двух странах конкретно для юрлиц, но что касается конкретно деклараций для НДФЛ, с этим в РФ гораздо проще.
Мне кажется, что zetroot имел в виду, что аббревиатура SQL расшифровывается как Structured Query Language, а не как Simple Query Language. Что есть абсолютная правда, см. например https://en.wikipedia.org/wiki/SQL
В оболочке fish, которой не надо было следовать легаси-интерфейсам, этот механизм первоначальной настройки шелла работает, имхо, гораздо логичнее и понятнее. В fish всегда, вне зависимости от того, login это шелл или interactive, читается один и тот же набор конфигов (
~/.config/fish/config.fish
,/etc/fish/config.fish
,/usr/share/fish/config.fish
). Если есть необходимость разделять конфигурацию шеллов, можно проверить тип оболочки с помощью командstatus --is-login
иstatus --is-interactive
: