Я в той же ситуации. Прошло несколько дней, и я не могу исправить эту ошибку. Это мой вопрос о Stackoverflow: Как исправить ошибку «Ошибка входа в социальную сеть» для django-allauth, развернутого на Elastic Beanstalk
Редактировать: я видел ваш ответ, но он не работал для меня , вы уверены, что это было единственное, что вы изменили, чтобы заставить его работать?
В любом случае значение «https» должно быть в кавычках:
ACCOUNT_DEFAULT_HTTP_PROTOCOL = 'https'
Можете ли вы дать больше информации о изменения, которые вы сделали в своем коде и конфигурации?
Если бы я писал язык с нуля, то я хотел бы и изменяемые и неизменные определенные строковые типы. Неизменность делает строковые погрузочно-разгрузочные работы намного быстрее, но создает серьезные ограничения, особенно когда дело доходит до конкатенации и т.п..
Неизменная строка, я сохранил бы как завершенный пустым указателем массив значений unicode. Изменяемая строка, я сохранил бы как связанный список unicode символов для более легкой перестановки, разрезания, и т.д.
Я избежал бы струн до. Вычисления длины являются O (n). Совместное использование подстрок почти невозможно. Непрерывное требование к памяти приводит к фрагментации. Любая проблема с разделителем приводит к ошибкам и дырам в системе безопасности. При хранении его как UCS-4 Вы тратите впустую много пространства для строк ASCII (и теряете совместимость C, одно преимущество струн до); при хранении его как UTF-8 индексация является O (n). Тип PDP-11 ASCIZ только действительно имел большой смысл, когда Вы пишете библиотеку для ASCII на пустом PDP-11.
Языки, моложе, чем PDP-11 часто, используют другую структуру:
Я использовал бы что-то как веревки. Конкатенация является постоянно-разовой. Они не требуют непрерывной памяти. Подстрока, совместно использующая, легка. Все операции могут быть выполнены, не привязывая многопоточную среду. Возможно, позвольте и UCS-4 и узлам ASCII делать устройство хранения данных более компактным в общем падеже, и/или иметь его автоматически используют более простую структуру внутренне для действительно коротких строк.
ASCIZ является большим, если у Вас есть мало памяти, короткие строки, 7-разрядные символы, доверяли входу, и Ваш ЦП является столь медленным, что это стоящее Вашего разового программистом, чтобы быть действительно осторожным. В современном мире Unicode, многопоточности, эффективного GC, быстрых центральных процессоров, и большой (возможно недоверяемый) исходные данные, это больше не большой выбор.
Я предполагаю, что Вы имеете в виду, как будто Вы разрабатывали язык? Затем я предполагаю, что пошел бы с моделью C и сохранил бы ее как непрерывную часть памяти, завершенный пустой указатель. Это кажется самым логическим путем ко мне.
Профессионалы: Никакая память не пропала впустую при дисконтировании пустого указателя.
Недостатки: должны вычислить длину строки с помощью метода, и т.д.
Я полагаю, что Вы спрашиваете того, как Вы реализовали бы строковый объект.
По причинам производительности Вы хотели бы сохранить память выделенной для символов в строке как единственный блок. Это ускорило бы операции, выполненные на всех элементах - изменение случая, копия, расчет длины, indexof и так далее. Это также поможет реализовать операции, которые работают над запуском или концом строки - обрезка, подстрока и так далее.
Существуют определенные операции, где структура данных как связанный список помогла бы реализовать, как вставка или удалить символа/подстроки. Однако, учитывая отношение памяти наверху для поддержания такой структуры данных к средней длине строки стоимость перевешивает любые потенциальные усиления.
Должна ли строка быть неизменной или не продиктована двумя соображениями:
Традиционный подход C++ должен предоставить прямой доступ к базовой памяти к коду, который использует строковый объект. Это имеет большой смысл, так как память выделяется и управляется клиентским кодом так или иначе, таким образом предоставление прямого доступа к нему предлагает лучшую производительность. Недостаток состоит в том, что любая операция, которая изменяет длину строки обычно, приводит к перераспределению памяти. Существуют умные строковые классы, что impelemnt их собственный диспетчер памяти для контакта с этой проблемой, как CString ATL.
Подход C# должен инкапсулировать базовую память в объекте и сделать строку неизменной. Это позволяет, чтобы памятью управлял CLR, и объекты собраны "мусор" теми же правилами, которые относятся к любому другому объекту. Из-за этого существует маленький штраф перфекта, но преимущества упрощенного использования и способности предложить стабильную реализацию довольно сложных операций перевешивают стоимость для перфекта. Плюс, существует сопроводительный класс StringBuilder, который предлагает некоторые преимущества прямого доступа к памяти prealocating более крупным буфером и видоизменением экземпляра в нем, пока это не завершено к Строковому экземпляру.
Я запустил бы путем требования кодирования, присоединенного к строке. Если бы не указанный в источнике, строковые литералы имели бы то же кодирование самим исходным файлом.
Конечно, я склоняюсь к UTF-8 и вероятно принял бы меры, чтобы стандартная библиотека работала в том механизме
Кроме того, я рассмотрел бы использование структурного представления, которое немного более умно, чем массив байтов, потому что, кто хочет извести с буферами!
Библиотека шаблонов SGI идет с абстрактным типом 'веревки', который делает это вполне прилично. Итераторы (но не повторение) являются дорогими, но в обмен, вставляет, удаляет, добавляет, поддиапазоны и сравнения являются все довольно дешевыми.
В Руководстве по программированию Lua существует другая хорошая реализация, которое реализует оптимизацию 'Ханойской башни', которая идеально подходит для создания строк от передней стороны до спины многократно, как часто делается при чтении большого файла.
TCL имеет косвенный способ сделать это посредством его виджета текстового поля. Это даже делает аннотирование текста обычно полезным. Единственный недостаток - это дизайнерские работы плохо для последовательностей, которые не имеют ориентированного на строку распределения.
Основная причина, процитированная за использование неизменных строк, состоит в том, потому что динамический или интерпретируемый язык использует строки для себя. Действительно это использует атомы, которые произвольны, но должны быть конвертируемыми к и от строк. Lisp делает это явно с константами символа отделяется от строк. Мне нравится это, даже при том, что я не в других отношениях очарован из шепелявости.
Я скрыл бы Строковый класс.NET и создал бы из этого.