Pull to refresh
118
0
Щекн-Итрч @sheknitrtch

User

Send message

А если у меня открыто несколько окон одного приложения (например несколько проектов в IntelliJ IDEA), то клика по иконке в доке недостаточно. В Windows переключение между окнами проще реализовано.

do{}while цикл, наверное, можно заменить поиском ненулевого значения в массиве:

var millisecond = t1.Millisecond;
do
{
	if (_milliseconds[millisecond] > 0)
	{
		return new DateTime (t1.Year, t1.Month, t1.Day, t1.Hour, t1.Minute, t1.Second, millisecond);
	}

	millisecond--;
} while (millisecond >= 0);
Заболеваемость в Израиле растёт последние 2 недели. И пока рано делать какие-либо выводы. Надо получить статистику: какой процент вакцинированных среди заражённых и какой процент заражённых среди вакцинированных? сколько людей госпитализируют с поражением лёгких? сколько заболевшиъ скончается? сколько людей получит осложнения от нового штама? как быстро новая волна пойдёт на спад?
Если Израиль сможет пройти новую волну без локдаунов и проблем для экономики, то значит — вакцина работает. Будем наблюдать.
Насколько Я знаю, первоначально факт расширения вселенной определили по красному смещению. См Закон Хаббла.
Остался сущий пустяк — соль. Но какая соль правильная? Придется ее перебирать и проверять — но это возможно только если вы точно знаете, что пароль правильный.
Если взломщику известны логин и пароль, то перебор секретного слова почти ничем не отличается от обычного перебора пароля. Просто вместо одного запроса к серверу нужно делать два: 1) запрос соли по логину и секретному слову 2) запрос на вход с посоленным паролем.

Современные алгоритмы хеширования достаточно быстрые. Можно генерировать 70 000 SHA-512 хэшей в секунду. Сервер будет дольше обрабатывать запросы, чем хакер отправлять варианты. Можно взять медленную функцию ALG2, но всё равно если пароль известен, то слабое место — это секретное слово.
Правильно ли Я понял, что пользователю для входа на сайт нужно вводить два пароля? То есть вместо классических Логин+Пароль вы требуете Логин+Секретное слово+Пароль (при регистрации и при входе с нового браузера). Во-первых, не совсем понятно, какие ограничения накладываются на секретное слово. Может это быть пустая строка, может ли секретное слово совпадать с паролем? Во-вторых, вход на сайт будет состоять из нескольких страниц: сначала страница для ввода логина и секретного слова, а потом отдельная страница для ввода пароля?
С точки зрения взломщика, перебор конечно усложняется, но не становится невозможным. Просто вместо N паролей из словаря придётся перебирать N*N паролей из того же словаря. И для каждой пары будет делаться два запроса: сначала запрос на получения соли, потом запрос на вход с паролем.

Идея интересная, но боюсь будет сложно объяснить среднестатистическому пользователю зачем ему вводить два пароля, когда на всех других сайтах достаточно одного.
По-моему некорректно сравнивать Threema.ch с сервисами openfire, tox, xmpp. Threema — платный сервис с закрытым исходным кодом клиентов Android и iOS. Серверный код тоже закрытый. Установить на свой сервер его невозможно. В то время как openfire сервер открытый, клиентов много, протоколы открыты.
Насчёт обратной совместимости в инструментах Apple Я бы поспорил. Apple регулярно требует от разработчиков поддержки последний версий iOS угрожая не пропускать такие программы в App Store. А про их новый язык программирования Swift, который обновляет major версию каждый год:

Module stability (being able to compile against binaries compiled with a different Swift version) is also only coming in Swift 5.1, which means that you still can't link against a library (system or third party) compiled with Swift 5.0 or earlier. So replacing the Swift version in current releases with 5.1 could be a big, breaking change.
Если Epic Games нарушила лицензионное соглашение Apple, то можно за это их аккаунт забанить.
Здорово, что Apple повернулась в OpenSource сообществу лицом. Но у меня есть претензии к тому, как они организовали свой Github репозиторий:

1. Зачем создавать tag и release каждый день? Для кого эта информация? Например если открыть теги Go, то можно понять какая сейчас самая свежая версия и увидеть, что 1.15 уже в статусе Release Candidate.

2. Как понять, в какой ветке ведётся разработка новых фич, а в какой только багфикс? В репозитории Swift 335 веток. В чём разница между "master-next" и "master-rebranch"? Ветка "release/5.3" — это ветка следущего релиза? Почему она отстаёт от "master-next" на 5224 коммита?

Помимо этого меня конечно смущает, что у языков Go (2009 г.р.) и Kotlin (2017 г.р.) всё ещё версия 1.x, а у Swift (2014 г.р.) уже v5.3.
Я проверил утверждение №5 по поводу того, что Давид Гильберт опубликовал свою работу раньше Эйнштейна. Википедия говорит:
Двое учёных при подготовке своих рукописей вели оживлённую переписку, часть которой сохранилась; из неё ясно видно, что оба исследователя оказывали друг на друга взаимное и плодотворное влияние. В литературе уравнения поля называются «уравнения Эйнштейна».

А ещё:
В 1997 году были обнаружены новые документы, а именно корректура статьи Гильберта, датированная 6 декабря. Из этой находки сделавший её Л. Корри с соавторами сделали вывод, что Гильберт выписал «правильные» уравнения поля не на 5 дней раньше, а на 4 месяца позже Эйнштейна. Оказалось, что работа Гильберта, подготовленная к печати раньше эйнштейновской, в двух отношениях существенно отличается от своего окончательного печатного варианта

Остальные утверждения из вашего комментария не проверял. Но хочу заметить, что СТО и ОТО прекрасны тем, что объясняют экспериментальные отклонения от Ньютоновских законов с помощью набора непротиворечивых аксиом, из которых выводятся все остальные законы и формулы. Например Лоренц вывел знаменитые преобразования, относительно которых уравнения Максвелла остаются инвариантными в любом порядке по скорости v. Но сам автор не изобрёл физических законов (аксиом), объясняющих эти преобразования.

Теория Эйнштейна же пошла гораздо дальше формул, и объясняет фундаментальные свойства вселенной: причинность, относительность законов движения, взамиосвязь между материей и пространством («Space-time tells matter how to move; matter tells space-time how to curve»). За это ему и поставили прижизненный нерукотворный памятник.
Вопрос в том, сколько лет нужно, чтобы получить такое количество мутаций? В лабораториях удаётся получить несколько десятков мутаций в год. Это меньше 0.01% от всего генома (Я опираюсь на ту же статью из N+1). Если люди заразились при контакте, у них не может быть разница в 1-2% в геноме возбудителя.
В статье на N+1 ”Сам ты искусственный” есть примеры утечек вируса сибирской язвы в 79-м и SARS-COV в 2003. Такие утечки обычно быстро локализуют, а виновных вычисляют. Я не исключаю версию утечки, но считаю её маловероятной.

И ещё в статье приводится сравнение геномов RaTG13 и SARS-CoV-2. Есть отличающиеся участки по 2-3 нуклеотида, которые объяснить простой склейкой не получается. Это результаты мутации.

image
Выглядит футуристично, как в научнофантастическом кино. Но боюсь многие привычные действия превратятся в таком UI будут делаться дольше. Как, например открыть две папки одновременно и перетаскивать файлы между ними? В случае с окнами это просто и понятно.
Вроде бы цифры в статье убеждают меня в том, что софт с большим количеством фич зарабатывает больше чем софт с меньшим количеством, даже не смотря на баги. Но когда мне надоело мириться с очередным багом Lastpass, Я перенёс свои данные в 1Password и был несказанно рад. Пусть в 1Password нельзя создать вложение к записи, нет простого шаринга с другими пользователями и генератор паролей не такой продвинутый. Зато работает стабильно во всех браузерах, на десктопе, телефоне и iPad.
Мне кажется, на конкурентном рынке отсутствие багов может перевесить обилие фич.
Если вы про case classes в Scala, то они всегда иммутабельные. Records в Java таким свойством не обладают. А в остальном похожий подход.
По поводу проблемного кода, когда вместо полного имени программист может вызывать функцию, передав только имя или только фамилию:

function get_user(name) {
  db_load_user_or_die(name)
}


Здесь как раз система типов может помочь подстелить соломку. Пример на Scala:
//Класс с 4 полями, 3 из которых имеют тип String
case class User(id:Long,
                firstName: String,
                lastName: String,
                email: String)

//Функция, которая принимает то ли имя, то ли фамилию, то ли всё сразу
def findUserByName(name: String) = ???


Чтобы отличать firstName от lastName и от email введём специальные классы, которые под капотом представляют из себя обычный String:
//Вспомогательные классы
case class FirstName(firstName: String)
case class LastName(lastName: String)
case class EmailAddress(emailAddress: String)
case class FullName(fullName: String)

case class UserEnhanced(id: Long,
                        firstName: FirstName,
                        lastName: LastName,
                        email: EmailAddress)

def findUserByName(name: FullName) = ???

//Пример использования
val x: FirstName = FirstName("Mike")
val y: FullName = FullName("Mike Smith")

findUserByName(x) //Ошибка компиляции
findUserByName(y) //Нет ошибки компиляции


В Scala 3 появятся Opaque Type Aliases, которые упростят синтаксис. Это пример, когда проверка типов не даёт 100% гарантии, но однозначно помогает отлавливать логические ошибки.
Samsung как раз анонсировал прототип домашнего робота. Посмотрим, что скажут потребители, и появится ли волна подражателей.
Мне кажется, byko3y, вы неправильно позиционируете язык Python. Вы критикуете фичи языка, которые лежат в основе Python. Нельзя ругать динамически типизированный язык за то, что он динамически типизированный.

Однако же, по логике вещей, x[0].append(0) должно было бы создать новый или взять уникальный список из нулевого элемента и добавить в него нуль
Откуда такая логика? Потому что каком-то другом языке так? Не стоит по умолчанию тянуть концепции из других языков в Python.

Оператор присвоения и статическая типизация… Ожидается вывод
С чего вы это решили? Если меняете значение переменной, то поменяется результат вычислений. Это работает во всех языках.

Стоит помнить, что смысл питона был в том, чтобы избавить пользователя от мороки явного описания структуры объектов.
Наверное, это самое странное утверждение в статье. Смысл Python зафиксирован в The Zen of Python. Всё остальное — ваши домыслы.
Julia — интересный язык с понятным синтаксисом и удобной многопоточностью (привет пайтоновскому GIL). Позле ознакомления с туториалом возник вопрос: что они натворили со строками?

julia> s = "\u2200 x \u2203 y"
"∀ x ∃ y"

julia> s[1]
'∀': Unicode U+2200 (category Sm: Symbol, math)

julia> s[2]
ERROR: StringIndexError("∀ x ∃ y", 2)
[...]

julia> s[3]
ERROR: StringIndexError("∀ x ∃ y", 3)
Stacktrace:
[...]

julia> s[4]
' ': ASCII/Unicode U+0020 (category Zs: Separator, space)


Почему операция s[i] возвращает ошибку для индексов 2 и 3? Почему программисту нужно помнить внутреннюю кодироку строки и количество байт в каждом символе? В Python 3 эту проблему давно решили раз и на всегда.

Information

Rating
Does not participate
Location
Одесса, Одесская обл., Украина
Date of birth
Registered
Activity