SSE — расширение команд сопроцессора? Так вот в SSE2 (Pentium 4) есть целочисленная SIMD арифметика, да не совсем 128, а 2x64, но это лучше чем считать на CPU.
Далее, не трогал, но знаю что есть AVX, там как раз расширение до 128 бит, 2011 год, не сказать что что то супер новое и редкое.
А, тут да, есть лишнее, согласен. У меня какая то своя не любовь в индексации строк как массивов именно в JS, наверное со времен когда с не латиницей было совсем туго, и длинна одной и той же строки в разных браузерах была разной, надо отучать себя.
Во-первых. В коде статьи создается массив arrOpenSymbols с ровно таким же предназначением и не меньшей размерностью во время работы. Я не знаю всех тонкостей работы интерпретаторов ECMAScript и их внутренних структур данных, но опыт подсказывает что хранить в этом массиве строки и их сравнение дороже чем тем же операции для чисел.
Во-вторых. every перебирает элементы именно последовательно от 0, и прекращается если результат для очередного элемента лож или достигнут конец. То есть «для каждого» только в худшем случае. Не измерял, и every действительно может оказаться хуже цикла, из за вызова коллбека в цикле, из за чего будет происходить дорогая смена контекста, но пример был направлен именно на то что не надо перебирать все, и такой код демонстрирует это лучше, правда только если вы знаете как работает every.
9. ресет стилей делается не для того что бы не делать каждый раз, а потому что в разных браузерах значения по умолчанию разные, раньше с этим была вообще беда.
38. Совсем велосипед, зачем перебирать все? Зачем считать совпадения? Все проще же:
function validBraces(str) {
var st = [];
return str.split('').every(function(br){
var idx = '[{(]})'.indexOf(br);
if(idx < 3){
st.push(idx + 3);
return true
}
return st.pop() == idx;
}) && st.length == 0;
}
49. Забудьте про eval, вообще. Это дорого, и не хилый шанс выстрелить себе в ногу.
Время жизни ключа. Не время жизни куки. Кроме IP добавляете к ключу время создания, в PHP при проверке определяете время создания ключа, если с момента его создания прошло некоторое время — считаете его не действительным.
привязка к IP адресу очень упрощает техническую реализацию. У вас для запросов с одного IP отдается одна и та же кука!
Вы поди за отражение атак ещё и деньги берете?
1. ab это очень синтетика, как минимум потому что без keep-alive, если нападающий будет держать соединение, бекэнд у вас очень быстро закончится
2. кука в JS ставится так топорно что с парсером справится даже начинающий, и нет больше вашей защиты
3. зачем пользователя задерживают на 3 секунды? только для того что бы он прочитал о вашей крутой системе?
4. в описанном вами случае достаточно было настроить кеширование на несколько минут на стороне nginx по любой статье из поисковика. На той странице нет персонализированных данных, данные обновляются относительно редко, нет смысла дергать бекэнд на каждый запрос.
Что бы сделать LE сертификат, надо что бы LE либо проверил файл на сервере, либо DNS запись. Если их автономка далеко от скомпрометированной, ничего бы не вышло. Возможно так и было. Но они могли бы анонсировать IP центров сертификации, и тогда ssl превратился бы в тыкву. Хотя корневые сертификаты вроде зашиты в браузер.
Потому что как не старайся, а большинство коллоидных растворов не стабильны. Тут ещё и условия далеки от нормальных, магнитное поле и дисперсные частицы реагирующие на него.
Бывает широкая фум лента, она из фторопласта, он же тефлон. А бывают просто большие белые фторопластовые листы, для изготовления уплотнителей. Но мне кажется эффект будет, но не сильный. Проблема в том что выпадают твердые частицы, они обладают абразивными свойствами из за чего закрепятся и на фторопласте. Надо что то тверже и с шероховатостью меньшей чем у частиц.
Кроме того, в статическом магнитном поле, эти частицы будут сцепляться и между собой, образую ещё большие частицы. Надо «растрясывать» их, меняя полярность магнитного поля.
далек от темы, но мне кажется определить на какой отражатель попал луч можно.
там же не один отражатель, и отраженных сигналов может быть несколько, по их задержкам и зная конфигурацию положения отражателей между собой можно вычислить положение объекта точно.
Далее, не трогал, но знаю что есть AVX, там как раз расширение до 128 бит, 2011 год, не сказать что что то супер новое и редкое.
Во-вторых. every перебирает элементы именно последовательно от 0, и прекращается если результат для очередного элемента лож или достигнут конец. То есть «для каждого» только в худшем случае. Не измерял, и every действительно может оказаться хуже цикла, из за вызова коллбека в цикле, из за чего будет происходить дорогая смена контекста, но пример был направлен именно на то что не надо перебирать все, и такой код демонстрирует это лучше, правда только если вы знаете как работает every.
38. Совсем велосипед, зачем перебирать все? Зачем считать совпадения? Все проще же:
49. Забудьте про eval, вообще. Это дорого, и не хилый шанс выстрелить себе в ногу.
jsfiddle.net/Lv92r008
Вы поди за отражение атак ещё и деньги берете?
2. кука в JS ставится так топорно что с парсером справится даже начинающий, и нет больше вашей защиты
3. зачем пользователя задерживают на 3 секунды? только для того что бы он прочитал о вашей крутой системе?
4. в описанном вами случае достаточно было настроить кеширование на несколько минут на стороне nginx по любой статье из поисковика. На той странице нет персонализированных данных, данные обновляются относительно редко, нет смысла дергать бекэнд на каждый запрос.
Кроме того, в статическом магнитном поле, эти частицы будут сцепляться и между собой, образую ещё большие частицы. Надо «растрясывать» их, меняя полярность магнитного поля.
там же не один отражатель, и отраженных сигналов может быть несколько, по их задержкам и зная конфигурацию положения отражателей между собой можно вычислить положение объекта точно.
Кто его закрыл???