Ну какие квантовые вычисления, если природа даже не осилила простые электрические соединения. Некоторые сигналы в мозге вообще химическими реакциями (медиаторы) передаются. :)
Везде про проброс портов пишут потому, что обслуживающая программа находится на одной из машин локальной сети а не на роутере. А если програма находится на роутере проброс не нужен. У всех програм в конфигураци есть параметр, указывающий на каком адресе или иногда интерфейсе нужно открыть порт и слушать. Если там указать внешний адрес, то все заработает из коробки без пробросов. Например, у nginx этот параметр называется listen. То есть, написав в конфигурации listen внешний_адрес:80 все сразу заработает.
Вы можете попытаться сэмулировать стандартный authorization code grant.
1 Делаем запрос на ендпоинт authorize
2 Реверсиженирим страницу регистрации и смотрим какие запросы для авторизации делает страница. Скорее всего это будет один или несколько POST запросов. В самом последнем в ответе будет authorization code.
ЗЫ: Вся сложность конечно в эмуляции страницы регистрации. Например, keycloak использует куку и POST запросы с параметром состояния их легко сэмулировать скриптом.
которые знают, что программа не должна вызывать сама себя в качестве подпрограммы, массив не может включать сам себя в качестве элемента массива, а переменная не может принимать в качестве значения сама себя
Вообще-то:
— процедура может вызывать саму себя
— ссылка на массив со ссылками на массив может содержать себя
— ссылка на переменную может содержать ссылку на себя
иногда это нужно.
Тут проблема останова а не включения самого себя.
:)
for(int i=0,…
for(int i=n-1,…
Переложите их на ассемблерных инструкции. Разница вполне очевидна.А теперь помножьте эти дополнительные операции на на то, как часто это нужно делать (как часто эта функция вызывается)…
Для того чтобы что-то прочитать, сначала надо вычислить адрес: для LЕ ничего делать не нужно, для BE взять размер, сложить с начальным адресом и мы получаем младший разряд. То есть на каждую арифметическую операцию нужно доп.телодвижения.
ЗЫ Мы тут говорим про длинную арифметику, а если операнды влазят в размер регистра, то там разницы нет, так как чтение все равно за раз будет происходить.
Все арифметические операции делают с меньших разрядов, а большая часть программы это арифметические операции. Так что для читающего лучше читать с младших разрядов.
Ну вообще можно сказать так — откуда вообще взялся CISC (а pdp-11 это CISC)? А взялся он из-за того что раньше памяти было мало, скорость исполнения маленькая, программы были простенькие, компиляторы и оптимизаторы убогенькие и желательно было (и иногда и нужно) писать все на ассемблере. Поэтому тут для удобства программистов нужен CISC. А потом появились крутые компиляторы куча ресурсов и смысла писать на ассемблере больше не стало. Соответственно и набор инструкций железа уже не имел значения. Поэтому набор инструкций x86 может быть ужасным — никто его не видит. И поэтому реализовал что-то вроде pdp/vax-11 смысла не имеет — никто это не почувствует, только разработчики компилятора. А в разработке компилятора все равно какой набор инструкций — всегда можно что-то подшаманить эффективно исходник переложит на пару кривых инструкций.
Ну кто в те времена думал о расширении команд? Тогда новый процессор — новая архитектура. Для 32 разрядной архитектуры он стал VAX-11.
ЗЫ Хотя оригинальный pdp-11 и расширяли — добавили команды умножения/деления, вещественные числа…
Только x86 это дескоп/сервер и ему можно жрать энергии сколько хочешь — главное производительность, а arm это мобильные устройства и там прожорливость очень не приветствуется. Только недавно начали пытаться arm продвигать в серверные платформы — посмотрим что получится.
Проблема большого количества инструкций только одна — возможность загрузить их в процессор — а это доступ к памяти. С другой стороны если посмотреть на код, то в большинстве случаев там все равно нет длинных кусков, а всегда есть какие-то переходы/вызовы процедур. А это значит что все равно нужно прервать монотонное выполнение инструкций.
Чем меньше кода для преобразования инструкции в микрокод тем лучше. Всякие конвейеры выборки и другая муть не от хорошей жизни придумана а чтобы нагрузить по полной все блоки процессора.
Ну какие квантовые вычисления, если природа даже не осилила простые электрические соединения. Некоторые сигналы в мозге вообще химическими реакциями (медиаторы) передаются. :)
1 Делаем запрос на ендпоинт authorize
2 Реверсиженирим страницу регистрации и смотрим какие запросы для авторизации делает страница. Скорее всего это будет один или несколько POST запросов. В самом последнем в ответе будет authorization code.
ЗЫ: Вся сложность конечно в эмуляции страницы регистрации. Например, keycloak использует куку и POST запросы с параметром состояния их легко сэмулировать скриптом.
А антропный принцип говорит, что вам просто повезло. :)
Да и непонятно, продолжится ли везение или нет.
— пузырь Алькубьерре
— кротовые норы
ЗЫ И вобще-то природа не любит бесконечностей. Может приближаясь к скорости света там будет-что то интересное, что не описывается текущими теориями.
Вообще-то:
— процедура может вызывать саму себя
— ссылка на массив со ссылками на массив может содержать себя
— ссылка на переменную может содержать ссылку на себя
иногда это нужно.
Тут проблема останова а не включения самого себя.
:)
for(int i=n-1,…
Переложите их на ассемблерных инструкции. Разница вполне очевидна.А теперь помножьте эти дополнительные операции на на то, как часто это нужно делать (как часто эта функция вызывается)…
ЗЫ Мы тут говорим про длинную арифметику, а если операнды влазят в размер регистра, то там разницы нет, так как чтение все равно за раз будет происходить.
ЗЫ Хотя оригинальный pdp-11 и расширяли — добавили команды умножения/деления, вещественные числа…