• Столлман покидает FSF
    +1
    Там написано, что он сомневается в том, что педофилия вредит детям. Если бы люди никогда не сомневались в общепризнанных фактах, мы бы до сих пор жили в каменном веке.
  • Прорываемся сквозь защиту от ботов
    +1
    Что-то магическое — это шифр RC4.
  • Кротовые норы в JavaScript
    +4

    Под спойлером — пример массива, который копируется неправильно. Но я предлагаю перед тем, как заглядывать туда, попробовать найти проблему самостоятельно.


    Код
    let input = new Uint8Array(8).fill(255);
    let output = new Uint8Array(8);
    copy(input, output);
    console.log(input, output);

    Объяснение

    При декодировании данных как Float64, получается значение NaN. Это единственное значение, у которого есть несколько различный представлений (хотя значения +0 и -0 выглядят как равные для операторов == и ===, они являются различными). Согласно стандарту, в JavaScript все значения NaN неразличимы:


    The Number type has exactly 18437736874454810627 (that is, 264−253+3) values, representing the double-precision 64-bit format IEEE 754-2008 values as specified in the IEEE Standard for Binary Floating-Point Arithmetic, except that the 9007199254740990 (that is, 253−2) distinct “Not-a-Number” values of the IEEE Standard are represented in ECMAScript as a single special NaN value. (Note that the NaN value is produced by the program expression NaN.) In some implementations, external code might be able to detect a difference between various Not-a-Number values, but such behaviour is implementation-dependent; to ECMAScript code, all NaN values are indistinguishable from each other.

    При кодировании в байты, скорее всего, будет использоваться не то представление NaN, которое было в исходном массиве (стандарт не указывает, какое именно нужно использовать, так что результат зависит от реализации), поэтому скопированные данные не будут совпадать с исходными.

  • Кротовые норы в JavaScript
    0

    Функция copy (та, которая использует Float64Array) иногда копирует данные неправильно. Даже если длина массива делится на 8. Это хороший пример того, как "умная" оптимизация может приводить к появлению трудно обнаруживаемых ошибок.

  • Наши с вами персональные данные ничего не стоят
    +7
    Нигде я не видел предложений подобных «услуг» по Европе, США и другим развитым странам мира. Максимум — пробив по общим базам (вроде Интерпола), к которым имеется доступ из России.

    Ну да, конечно.

  • GitHub превращается… превращается GitHub… в элегантный Windows 95
    0

    Ещё есть 500, 502, 503...

  • Эволюция рендеринга пробок в MAPS.ME
    0
    Пользователи, которым мешает автопереключение, всегда могут его выключить. Мне кажется, что то, что в других приложениях (карты Яндекс, Google и т. д.) автопереключение работает независимо от режима навигации, свидетельствует о том, что пользователи с вами не согласны. Почему нельзя было сделать автопереключение только в режиме навигации как отдельную опцию? Пускай это будет только для тех, кому это надо.
  • Эволюция рендеринга пробок в MAPS.ME
    0
    На iPhone 4s в MAPS.ME и сама карта отрисовывается достаточно медленно, иногда приходится несколько секунд ждать, пока всё отрисуется (обычно это при увеличении масштаба, когда увеличивается уровень детализации). Те же Яндекс.Карты, как мне кажется, работают быстрее (в оффлайн-режиме).
  • Эволюция рендеринга пробок в MAPS.ME
    0
    А почему в MAPS.ME нет работающего автоматического перехода на ночной режим? Каждый раз, когда нужно ночью в машине посмотреть карту, приходится лезть в меню и включать ночной режим, а потом обратно выключать.
  • Пересмотр системы единиц СИ: новые определения ампера, килограмма, кельвина и моля
    +1

    Вообще-то, значение постоянной Планка равно 6,626070040·10–34 кг·м2·с–1. Чтобы получить из него 1 кг, нужно разделить на 6,626070040·10–34 м2·с–1.

  • Страницы 404
  • Как проинвертировать три сигнала двумя инверторами или их роль в истории ЭВМ
    0

    Где описывается, не знаю, я это вывел сам. Идея такая: рассмотрим последовательность переходов 000 → 100 → 110 → 111 (три цифры — значения A, B и C). Эта последовательность монотонная (это значит, что в ней 1 никогда не заменяется на 0). Последовательность значений любой функции, использующая только операции И и ИЛИ, также будет монотонной. Если ни один из инверторов не использует значение другого, то последовательность входных значений будет монотонной — или константой, или сколько-то нулей, затем сколько-то единиц. То есть, будет максимум один переход, где 0 заменяется на 1. На выходе, соответственно, максимум 1 переход, где 1 заменяется на 0.


    Итоговые значения (nA, nB и nC) являются монотонными функциями от A, B, C и выходов инверторов. Чтобы монотонная функция изменила значение с 1 на 0, нужно, чтобы один из параметров изменил значение с 1 на 0. В данной последовательности на каждом из трёх переходов одно из значений nA, nB и nC меняется с 1 на 0, при этом A, B и C не меняют значение с 1 на 0. Значит, это должны делать выходы инверторов, но их всего 2, и каждый меняет значение выхода с 1 на 0 максимум на одном из переходов. То есть, на одном из трёх переходов ни один из двух инверторов не меняет значение выхода с 1 на 0, и на этом переходе значение результата не может измениться с 1 на 0, то есть хотя бы на одном из этих четырёх наборов входных значений выходные значения будут неправильные.


    Если один из инверторов использует значение другого, то это доказательство не работает (вход инвертора уже не является монотонной функцией), и задачу можно решить.

  • Как проинвертировать три сигнала двумя инверторами или их роль в истории ЭВМ
    +1

    Я могу доказать, что в любом верном решении один из инверторов будет использовать выход другого (возможно, опосредовано). В вашем решении это не так, так что дальше можно не смотреть, оно неверное.

  • Как проинвертировать три сигнала двумя инверторами или их роль в истории ЭВМ
    +7

    Решил сам.


    Решение
    D = !((A&B)|(B&C)|(A&C))
    E = !((D&(A|B|C))|(A&B&C))
    nA = (D&E)|(D&(B|C))|(E&B&C)
    nB = (D&E)|(D&(A|C))|(E&A&C)
    nC = (D&E)|(D&(A|B))|(E&A&B)
  • Называем узлы сети: где черпать вдохновение?
    0
    Именование компьютеров — одна из немногих областей информационных технологий, в которой со времён RFC 1178 почти ничего не изменилось.
  • Основатель Freedom Hosting арестован в Ирландии и ждет экстрадиции в США
    0
    Человека из топика мучают за распространение детской порнографии. Детская порнография — материалы сексуального характера с участием детей. Дети — люди, возраст которых меньше 18 лет (или другого значения, в зависимости от законодательства). Половая зрелость тут не при чём совершенно.
  • Основатель Freedom Hosting арестован в Ирландии и ждет экстрадиции в США
    +2
    В обсуждении на Bitcointalk пишут, что скрытые сервисы Tor не обеспечивают должный уровень анонимности, и ссылаются на эту статью. После того, как физическое расположение сервера найдено, можно посмотреть, кто за него платит.

    Есть и другие способы. Возможность выполнять свой PHP-код на сервере позволяет узнать довольно много информации о нём, а с помощью JavaScript-эксплойтов можно загрузить бекдор на компьютер этого самого основателя (и неважно, что он открыл страницу через Tor).