Инструкция простая — выполнить штатный перевыпуск. При заказе напрямую это делается на сайте, при заказе через партнёра можно перевыпустить на сайте партнёра или на централизованном https://products.websecurity.symantec.com/orders/orderinformation/authentication.do (работает и для rapidssl/geotrust/thawte).
Стоит отметить, что Symantec ещё 12 июля разослал инструкции по тому, как бесплатно перевыпустить сертификаты, выпущенные до 2016 года, чтобы предупреждение не появлялось.
И самый важный и очевидный (даже прописанный в FAQ тора) совет: не будьте выходным узлом со своего домашнего интернета, который вы подключали по паспорту.
Честно, вот не понимаю, как это уродство без переноса скобки вообще могло появиться на свет — единственная теория, что мало было строк на первых терминалах и их пытались экономить всеми силами. Но вот как оно кому-то может нравиться сейчас, когда нет, вроде, никаких проблем уже давно с количеством строк на мониторе??..
Человек хорошо концентрируется на том коде, который у него перед глазами без использования прокрутки. Поэтому сохранять вертикальное место важно.
Так никто и не просил бы проводить инициализацию OpenGL на листочке или вспоминать значения констант на доске. Дали бы задачу уровня школьной олимпиады по программированию и следили бы за ходом мысли и способностью написать пару циклов.
Я уверен, что к им на собеседование приходят тонны мусора. Чтобы не тратить время инженеров на собеседования с ними, должен быть способ отсеивания этого мусора рекрутерами. Мне кажется, что этот тест будет правильно работать в 99% случаев. И я сомневаюсь, что человек с указанным опытом и должностью этого не понимал.
Следовательно, у него и в мыслях не было проходить это интервью с хорошим результатом, и он старался дать максимально неожидаемые и формально корректные ответы (что особенно видно в ответе про stat() и про TCP).
Посмотрите, как сделан istream_iterator сейчас. Он выполняет сразу две функции — функцию "нормального" итератора, который позволяет считать что-то из потока, и функцию "нулевого", стандартно-сконструированного итератора, чья задача — только сравниваться с "нормальным" через == или !=.
Видимо, для избежания подобного дублирования и введена такая конструкция. Теперь в аналогичном месте с range-for end() сможет возвращать какой-нибудь end_iterator_t, который будет обладать специальной семантикой сравнения.
В этом случае речь, скорее, об оптимизации вызовов вроде
factorial 0 = 1
factorial x = x * (factorial (x - 1))
square x = x * x
result = square (factorial 1000000)
Что кажется вполне естественным для «императивного» программиста: вызов факториала написали один раз, отложенные вычисления как-то прокинули этот вызов дальше из своих соображений, но в результате вызов функции всё равно должен получиться один.
Я почему-то из контекста статьи понял, что хаскель будет оптимизировать код такого вида:
factorial 0 = 1
factorial x = x * (factorial (x - 1))
result1 x = (factorial x) * (factorial (x - 1)) * x
result = result1 1000000
Вычисляя factorial 999999 только один раз. А тут, как я понимаю, этого не случится.
Haskell запоминает вычисленный однажды результат, и при повторном вызове функции с теми же аргументами не вычисляет его снова, а подставляет ранее вычисленный.
Так он тоже не делает. Кроме того, так как описанная оптимизация не является «чистой» (процесс вычисления функции может идти по-разному в зависимости от окружения, а при первом выполнении окружение изменяется), в «чистом» языке для реализации мемоизации нужны костылиспециальные техники.
Все CA сейчас подписывают свои корневые сертификаты другими корневыми. Достаточно установить один общепризнанно доверенный, а он уже подпишет все остальные. Этот общепризнанно доверенный назовут CA/B Forum Root Certificate и ничего не изменится.
Человек хорошо концентрируется на том коде, который у него перед глазами без использования прокрутки. Поэтому сохранять вертикальное место важно.
Следовательно, у него и в мыслях не было проходить это интервью с хорошим результатом, и он старался дать максимально неожидаемые и формально корректные ответы (что особенно видно в ответе про stat() и про TCP).
Видимо, для избежания подобного дублирования и введена такая конструкция. Теперь в аналогичном месте с range-for end() сможет возвращать какой-нибудь end_iterator_t, который будет обладать специальной семантикой сравнения.
Но если бы стиль был менее быдловатым, читать было бы в разы приятнее.
Что кажется вполне естественным для «императивного» программиста: вызов факториала написали один раз, отложенные вычисления как-то прокинули этот вызов дальше из своих соображений, но в результате вызов функции всё равно должен получиться один.
Я почему-то из контекста статьи понял, что хаскель будет оптимизировать код такого вида:
Вычисляя factorial 999999 только один раз. А тут, как я понимаю, этого не случится.
Так он тоже не делает. Кроме того, так как описанная оптимизация не является «чистой» (процесс вычисления функции может идти по-разному в зависимости от окружения, а при первом выполнении окружение изменяется), в «чистом» языке для реализации мемоизации нужны
костылиспециальные техники.