All streams
Search
Write a publication
Pull to refresh
4
0
Send message

Ну какие квантовые вычисления, если природа даже не осилила простые электрические соединения. Некоторые сигналы в мозге вообще химическими реакциями (медиаторы) передаются. :)

Везде про проброс портов пишут потому, что обслуживающая программа находится на одной из машин локальной сети а не на роутере. А если програма находится на роутере проброс не нужен. У всех програм в конфигураци есть параметр, указывающий на каком адресе или иногда интерфейсе нужно открыть порт и слушать. Если там указать внешний адрес, то все заработает из коробки без пробросов. Например, у nginx этот параметр называется listen. То есть, написав в конфигурации listen внешний_адрес:80 все сразу заработает.
Я так и не понял, зачем роутить 80 и 443 порты на самого себя? Можно же было настроиь nginx слушать на внешнем wan инрефейсе.
Вы можете попытаться сэмулировать стандартный authorization code grant.
1 Делаем запрос на ендпоинт authorize
2 Реверсиженирим страницу регистрации и смотрим какие запросы для авторизации делает страница. Скорее всего это будет один или несколько POST запросов. В самом последнем в ответе будет authorization code.

ЗЫ: Вся сложность конечно в эмуляции страницы регистрации. Например, keycloak использует куку и POST запросы с параметром состояния их легко сэмулировать скриптом.
У oauth есть password autorization grant. Там никаких редиректов нет, просто REST запрос с логином/паролем клиента и пользователя.
Перемудрен? Наоборот же все упростили — в заголовках пакета, в настройках сети. DHCP не нужен. NAT не нужен.
Первым был if-then-else. Сейчас конечные автоматы. Ждём третий этап — схемы и движки BPM. :)
Вселенная предназначена для того, чтобы человек мог в ней жить. Это основной закон, и все прочие следуют из него.

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

ЗЫ И вобще-то природа не любит бесконечностей. Может приближаясь к скорости света там будет-что то интересное, что не описывается текущими теориями.
которые знают, что программа не должна вызывать сама себя в качестве подпрограммы, массив не может включать сам себя в качестве элемента массива, а переменная не может принимать в качестве значения сама себя

Вообще-то:
— процедура может вызывать саму себя
— ссылка на массив со ссылками на массив может содержать себя
— ссылка на переменную может содержать ссылку на себя
иногда это нужно.
Тут проблема останова а не включения самого себя.
:)
А что это за http сайты в век Let’s Encrypt сертификатов? Может ну их? Да и безопаснее…
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 продвигать в серверные платформы — посмотрим что получится.
Проблема большого количества инструкций только одна — возможность загрузить их в процессор — а это доступ к памяти. С другой стороны если посмотреть на код, то в большинстве случаев там все равно нет длинных кусков, а всегда есть какие-то переходы/вызовы процедур. А это значит что все равно нужно прервать монотонное выполнение инструкций.
Самый красивый набор инструкций был у pdp-11. И его режимы адресации тоже сказка.
Чем меньше кода для преобразования инструкции в микрокод тем лучше. Всякие конвейеры выборки и другая муть не от хорошей жизни придумана а чтобы нагрузить по полной все блоки процессора.

Information

Rating
Does not participate
Registered
Activity