Идею передачи «Яндекса» под госуправление неоднократно высказывали чиновники и силовики. На высшем уровне проходили совещания на эту тему. Причина — большая медиаактивность и невозможность контролировать систему, говорит человек, знающий об этом от другого чиновника. «Процесс [укрощения «Яндекса»] есть», — резюмировал он.
Ну раз «человек» говорит, то скоро Яндекс отожмут и передадут под госуправление.
Ставить их предполагается в местах помеченных красным, т.е. на выходе BRAS. BRAS это та железка, где собственно проходит и обрабатывается абонентская сессия. Большинство абонентов получают тут «серый» IP-адрес. Такой адрес не маршрутизируется в Сети, он обязательно должен быть странслирован на сервере NAT (Network Address Translation) в «белый» IP-адрес. Т.о. атаковать «серые» адреса из Интернета затруднительно (не будем вдаваться в технические детали, те кому интересно спросят или погуглят), куда как проще атаковать «белые» адреса серверов NAT или даже пограничных маршрутизаторов.
Теперь внимание! Вопрос: «Почему выбрана такая точка установки ТСПУ? Кто у нас для кого главная угроза?»
Я как бы не очень понимаю что провайдер «МАРТ» понимает в приведенной схеме под «выходом» BRAS и в какой точке у них большинство абонентов получает серые адреса, но в табличке приложения 1 прямо сказано что ТСПУ ставятся до NAT. А теперь внимание вопрос…
Ну отлично, всё выяснится: что это не просто так оказывается, служба печати называется spooler, а командная строка — cmd. Не расширяясь до темы «как космические корабли на QP ОС бороздят просторы будущих тендеров», мы так и останемся приземлённо в рамках технического топика «разработка ОС» и вместе посмеёмся.
Готовы поспорить, да? А как вы предполагаете должен разрешиться ваш спор: готовы взять дистрибутив по договору, сделать тест-обзор и рассказать нам «болгенос» это или нет?
Для полноты представления о результирующей установке не могли бы вы добавить еще список пакетов на свежеинсталлированной системе. (И заодно, для понимания потерь в изначальном доступном функционале системы, пакеты группы @Core и @Base, исключаемые ключами --nocore --nobase.) Спасибо.
Я имею ввиду не синтаксическую преемственность VB из QB, а конечное состояние в его расцвете, именно VB6/VBA/VBS, где строки это указатели на BSTR, переменные типа Variant — это VARIANT structure, тип Decimal — это DECIMAL structure, массивы реализованы через SAFEARRAY structure, и прочее.
COM и OLE Automation создавались для использования с WordBASIC и Visual Basic
Но ничто из перечисленного, даже пролог, не казалось мне настолько инопланетянским, как VBA.
:) Ну если разобраться как устроены типы в VBA — вокруг стандартных типов COM и OLE Automation, то он перестаёт выглядеть непонятным и странным. Много энтузиастов в своё время углублялись в тему, как устроен VB под капотом и как взаимодействовать с Win32 API, и поэтому VB (вкупе со своей средой разработки) приобрел большую популярность. Информацию можно почерпнуть, например, здесь (bytecomb.com) и здесь (cpearson.com), а официальную спецификацию VB от Майкрософт здесь. А COM и сейчас является ключевой технологией в Windows и основой современного WinRT API.
То, с какой таинственностью и пафосом подается эта и вся подобная информация наводит на мысль, что в компанию к «неуловимому Джо», которого никто не может поймать, необходимо добавить нового супергероя — «секретного КиберДжо», который наносит тайные сокрушительные киберудары, о которых никто не знает.
Суть в том, что вычеркивать числа через k в массиве совсем не то же самое, что пройтись по всем числам в списке и вычеркнуть с нулевыми остатками.
Поясните на примере. Есть массив последовательных чисел начиная строго с единицы (а у нас в исходной задаче именно такие условия), допустим вот: [1 2 3 4 5 6 7 8 9 10 11]. Нужно вычеркнуть каждый третий элемент. В чем суть отличия от вычеркивания чисел с нулевым остатком от деления на 3? (Кроме производительности операции конечно.)
Так-то, есть еще такой очень элегантный алгоритм для проверки числа на простоту:
return x > 1 && (x == 2 || x % 2 == 1);
В ФП стиле еще красивее будет. И очень просто и элегантно. И вау-эффектно. Но есть ньюанс для достаточно больших x.
Я смотрел эту статью давно. Суть в том, чтобы улучшить производительность фильтра, генерирующего входящий поток, т.к. числа делящиеся на k есть каждое k-тое число, и нам просто не нужно к нему применять операцию деления и тестировать остаток. Это как колесо с шипами, которое катится по ленте целых чисел и выбивает каждое k-тое число, причем радиус колеса и количество шипов увеличивается после каждого полного оборота из-за нового найденного простого (не выбитого) числа. Это улучшение наивной реализации алгоритма решета Эратосфена. Суть представленной наивной реализации алгоритма (рассчитанной прежде всего на вау-эффект от элегантности рекурсивного решения) это не меняет. Это всё тот же алгоритм решета, каждое k-тое входное число там определяется наивно с помощью операции mod k.
Заходим на haskell.org. Рядом с большим логотипом наблюдаем:
primes = filterPrime [2..]
where filterPrime (p:xs) =
p : filterPrime [x | x <- xs, x `mod` p /= 0]
Что в переводе на человеческий означает, что из потока целых чисел [3 ..] автоматом отфильтровываются делящиеся на 2, из полученного таким образом потока выбрасываются числа делящиеся на 3, из этого потока далее выбрасываются все числа делящиеся на 5, и т.д.
Процесс как на картинке из википедии, где кресты разного цвета соответствуют разным уровням рекурсии:
Вызовы filterPrime в хвосте формируемого списка при его рекурсивном раскрытии накладываются друг поверх друга, образуя вложенную матрёшку, а ленивость вычислений делает так, что следующий уровень рекурсии вызывает вычисления на предыдущем уровне рекурсии (и далее по цепочке на всех более ранних уровнях) только тогда, когда ему требуются новые данные из своего входного параметра xs для вычеркивания из этого (уже просеянного) списка следующего числа.
Статья хорошая. Затронут аспект, что от инженера требуется понимание того объекта, с которым он имеет дело, и как это все работает в сборе в виде готового изделия, и определена проблема как это представить и описать в понятном виде и способом, дающим полезные результаты. Это одна из важных составляющих инженерной культуры, так не хватающей выпускникам привыкшим формально применять изученные формальные методы, вместо того чтобы отталкиваться от живой физики и исследования процессов и явлений. (Другой аспект — важность понимания своих инструментов — математических методов их ограничений и исходных предпосылок в рамках которых они правильно работают.)
Пожалуйста разделите абзацы пропуском строки, а то читать сплошной текст из сложносочинённых предложений со множеством уточняющих вставок не совсем приятно.
Просто из этого ничего не следует, что можно применить по отношению к определению множества.
Если мы возьмем нулевую матрицу 3х3, то множество значений val будет V={0}, множество элементов mat_el_t, определяющих эту матрицу будет A={x11, x12, x13, x21, x22, x23, x31, x32, x33}.
Добавив ещё один ноль в множество V={0} никто не получит какое-то иное множество, оно останется таким же = {0}. Точно также, добавив ещё один элемент х11 в множество A, даже если начать теперь всегда скрупулёзно выписывать, что A={x11, x11, x12, x13, x21, x22, x23, x31, x32, x33}, никто не получит множество, определяющее какую-то другую матрицу чем та, что определялась до этого.
Ок, дайте тогда определение матрицы, например. Вас сильно смущает, к примеру нулевая матрица? Там одни нули. Но вы их можете различить.
Вы не путайте, что относится к самой математике, а что — к ее применению. В определении множества есть требование к различимости элементов. Но нет требования к равенству. Накладываю на множества дополнительное свойство: упорядоченность. И спокойно так различаю одинаковые, на первый взгляд, элементы.
Если теперь в множестве A={x11, x11, x12, x13, x21, x22, x23, x31, x32, x33} начать различать один x11 от другого, то мы получим что на самом деле в множество был добавлен элемент, который отличается от всех остальных элементов, которые были в нём до этого, т.е. что был добавлен не x11, что противоречит изначальному действию.
chkconfig network on
' (эмулируемого тем же systemd) — интересная идея, надо попробовать.@Core
и@Base
, исключаемые ключами --nocore --nobase.) Спасибо.Так, но только с точностью до наоборот :)
А «достаточно большие» x начинаются уже с 9?
Что в переводе на человеческий означает, что из потока целых чисел [3 ..] автоматом отфильтровываются делящиеся на 2, из полученного таким образом потока выбрасываются числа делящиеся на 3, из этого потока далее выбрасываются все числа делящиеся на 5, и т.д.
Процесс как на картинке из википедии, где кресты разного цвета соответствуют разным уровням рекурсии:
Вызовы filterPrime в хвосте формируемого списка при его рекурсивном раскрытии накладываются друг поверх друга, образуя вложенную матрёшку, а ленивость вычислений делает так, что следующий уровень рекурсии вызывает вычисления на предыдущем уровне рекурсии (и далее по цепочке на всех более ранних уровнях) только тогда, когда ему требуются новые данные из своего входного параметра
xs
для вычеркивания из этого (уже просеянного) списка следующего числа.Пожалуйста разделите абзацы пропуском строки, а то читать сплошной текст из сложносочинённых предложений со множеством уточняющих вставок не совсем приятно.
Если мы возьмем нулевую матрицу 3х3, то множество значений val будет V={0}, множество элементов mat_el_t, определяющих эту матрицу будет A={x11, x12, x13, x21, x22, x23, x31, x32, x33}.
Добавив ещё один ноль в множество V={0} никто не получит какое-то иное множество, оно останется таким же = {0}. Точно также, добавив ещё один элемент х11 в множество A, даже если начать теперь всегда скрупулёзно выписывать, что A={x11, x11, x12, x13, x21, x22, x23, x31, x32, x33}, никто не получит множество, определяющее какую-то другую матрицу чем та, что определялась до этого.
Если теперь в множестве A={x11, x11, x12, x13, x21, x22, x23, x31, x32, x33} начать различать один x11 от другого, то мы получим что на самом деле в множество был добавлен элемент, который отличается от всех остальных элементов, которые были в нём до этого, т.е. что был добавлен не x11, что противоречит изначальному действию.