sfw
nsfw

Результаты поиска по запросу "the beginning is end текст"

Приобрел тут по случаю недорого путеводитель Бедеккер за 1914 год.
Издание, скорее всего, последнее, вряд ли он издавался в 1915 году и далее.
Много карт, текста с описаниями достопримечательностей.
Если кому какой город надо, пишите, скину, все равно две недели сидеть.


Вслед за Suno AI появилась ещё один сервис генерации музыки Udio AI

В месяц доступно создание 100 кусков песен по 30 секунд и дополнительные 10 кусков по 30 секунд в день в бесплатной версии.
Пример:

AI Dungeon 2 - текстовя rpg, которую пишет нейросеть

В AI Dungeon 2 искусственный интеллект генерирует самые различные сценарии игры. Играть можно в браузере, на выбор доступно четыре сеттинга (+ кастомный) и несколько персонажей в них. Язык игры - только английский.
Разработкой AI Dungeon 2 занимался Ник Уолтон. Он является довольно опытным разработчиком, который "внезапно загорелся желанием сделать что-то одновременно очень простое, но в то же время технологичное и интересное". В своей работе он использовал "всю мощь современной системы случайной генерации текста", которая имеет открытый исходный код, и была создана через OpenAI. Для того, чтобы обеспечить каждому из геймеров индивидуальный, отличающийся от других сюжет, Ник Уолтон обучил искусственный интеллект на самых различных сценариях, текстах, и книгах в стилистике приключений и фэнтези из базы chooseyourstory.com.

Начало Первой Эпохи

Наверняка ни для кого не секрет, что большинство отечественных «толкинистов» искренне считает, что Первая Эпоха Средиземья началась с первого восхода Солнца и, таким образом, длилась всего-то около шестисот лет. Многие даже заявляют, что это якобы очевидный факт… естественно, без какой-либо опоры на конкретные текстуальные источники.
Тем не менее, на самом деле Дж. Р. Р. Толкин неоднократно подчёркивал, что Первая Эпоха была несоизмеримо более продолжительной, и как минимум дважды упоминал в рукописях, что в действительности она началась с пробуждения эльфов у вод Куивиэнен.
Что ж, давайте пройдёмся по текстам. Начнём, пожалуй, с текста двенадцатой главы Квенты Сильмариллион, «О людях»:
Отныне и впредь вёлся отсчёт Лет Солнца. Короче и быстротечнее были они, нежели долгие Годы Древ Валинора. В ту пору воздух Средиземья наполнило дыхание рождающейся и умирающей жизни; старение и смена всего живого ускорились неимоверно; цвела Вторая Весна Арды, в почве и водах бурлила жизнь; множилось число эльдар, и под лучами вновь рождённого Солнца Белерианд превратился в дивный зелёный край.
From this time forth were reckoned the Years of the Sun. Swifter and briefer are they than the long Years of the Trees in Valinor. In that time the air of Middle-earth became heavy with the breath of growth and mortality, and the changing and ageing of all things was hastened exceedingly; life teemed upon the soil and in the waters in the Second Spring of Arda, and the Eldar increased, and beneath the new Sun Beleriand grew green and fair.
Как видите, никаких упоминаний о якобы начале Первой Эпохи в этот момент (строго говоря, в опубликованном «Сильмариллионе» вообще нет дат). Сказано лишь, что первый рассвет ознаменовал начало нового способа летоисчисления, Лет Солнца, которые пришли на смену Годам Древ.
Идём дальше и обращаемся к Приложению F во «Властелине Колец» (а это, на минуточку, железобетонный канон):
Из эльдаринских языков в этой книге встречаются два: высокоэльфийский, или квенья, и сероэльфийский, или синдарин. Высокоэльфийский был древним языком Эльдамара за Морем, что первым обрёл письменную форму. К тому времени он уже перестал быть родным языком, вместо этого превратившись, можно сказать, в "эльфийскую латынь". Высшие эльфы, которые вернулись в Средиземье изгнанниками в конце Первой Эпохи, по-прежнему употребляли его для таких возвышенных понятий, как поэзия и сохранение знаний.
Of the Eldarin tongues two are found in this book: the High-elven or Quenya, and the Grey-elven or Sindarin. The High-elven was an ancient tongue of Eldamar beyond the Sea, the first to be recorded in writing. It was no longer a birth-tongue, but had become, as it were, an ‘Elven-latin’, still used for ceremony, and for high matters of lore and song, by the High Elves, who had returned in exile to Middle-earth at the end of the First Age.
Под «высшими эльфами» здесь очевиднейшим образом подразумеваются нолдор-изгнанники. Не кажется ли вам странным: как они могли вернуться в Средиземье в конце Первой Эпохи, если она якобы только началась с первым восходом Солнца? Правильно, никак.
Поэтому возникает вопрос: если начало исчисления Лет Солнца относится к концу Первой Эпохи, то когда же она в действительности началась? Смотрим текст Анналов Амана из десятого тома «Истории Средиземья»:
После того миновало одна тысяча четыре сотни и девяносто пять лет Валар (или четырнадцать тысяч наших лет и ещё три сотни и двадцать два года), когда свет Древ озарял Валинор. То были Дни блаженства. В то время, в году одна тысяча пятидесятом по счету Валар, эльфы пробудились у Куивиэнен, и началась Первая Эпоха Детей Илуватара.
Thereafter one thousand and four hundred and five and ninety Valian Years (or fourteen thousand of our years and three hundred and twenty-two) followed during which the Light of the Trees shone in Valinor. Those were the Days of Bliss. In those days, in the Year one thousand and fifty of the Valar, the Elves awoke in Kuiviénen and the First Age of the Children of Ilúvatar began.
Началом Первой Эпохи названо пробуждение эльфов. Здесь, конечно, справедливо заметить, что понятия «Первая Эпоха Детей Илуватара» и «Первая Эпоха» могут быть не тождественны друг другу. Снова смотрим, на этот раз в текст семнадцатой главы первой части «Природы Средиземья»:
Первая Эпоха начинается с пробуждения [эльфов] и подходит к концу с Низвержением Анбанда.
The First Age begins with the Awaking [of the Elves] and ends with the Downfall of Angband.
Как видите, Толкин не видел различий между этими двумя понятиями. Есть ещё один такой момент в тексте семнадцатой главы третьей части «Природы Средиземья»:
Здесь [в Эриадоре], особливо вблизи Хитаэглир (по обеим сторонам хребта), они [синдар] обнаружили разбросанные поселения нандор, тэлеринских эльфов, которые во времена Первой Эпохи так никогда и не завершили путешествие к берегам моря. Тем не менее, оба народа признали своё родство как эльдар.
There [in Eriador], especially near the Hithaeglir (on either side), they [Sindar] found scattered settlements of the Nandor, Telerin Elves who had in the First Age never completed the journey to the shores of the Sea; but both sides recognized their kinship as Eldar.
Великий поход эльдар на Запад, продолжавшийся с 1105 по 1132 Г. Д., отнесён ко временам Первой Эпохи. Что ж, тогда получается, что она была, мягко говоря, весьма и весьма продолжительной. Упоминал ли об этом Толкин? Да, в своём письме №131, адресованном Мильтону Уолдману:
Сильмариллион — это история Войны эльфов-Изгнанников против Врага, все события которой происходят на северо-западе мира (в Средиземье). В него включено еще несколько преданий о триумфах и трагедиях, однако заканчивается это все катастрофой и гибелью Древнего Мира, мира долгой Первой эпохи.
The Silmarillion is the history of the War of the Exiled Elves against the Enemy, which all takes place in the North-west of the world (Middle-earth). Several tales of victory and tragedy are caught up in it ; but it ends with catastrophe, and the passing of the Ancient World, the world of the long First Age.
Как видите, Толкин использует прилагательное «долгая» по отношению к определению Первой Эпохи. Всё это согласуется с озвученными выше цитатами и замечаниями. К слову, это письмо можно найти в предисловии опубликованного «Сильмариллиона» в переводе С. Лихачёвой.
В довершение всего, будет уместно обратить внимание на слова Кристофера Толкина в предисловии «Войны Самоцветов», одиннадцатого тома «Истории Средиземья»:
Заглавие этой второй части, Война Самоцветов, является выражением, которое мой отец часто использовал по отношению к последним шести веками Первой Эпохи — истории Белерианда после возвращения Моргота в Средиземье и прихода нолдор вплоть до конца Эпохи.
The title of this second part, The War of the Jewels, is an expression that my father often used of the last six centuries of the First Age: the history of Beleriand after the return of Morgoth to Middle-earth and the coming of the Noldor, until its end.
Обратите внимание: последние шесть веков. Если не включать режим конспиролога, то в совокупности всё выглядит следующим образом: на самом деле Первая Эпоха началась с пробуждения эльфов и в целом длилась 450 Лет Древ и 590 Лет Солнца, что в общей сложности составляло 4902 солнечных года (450 * 9,582 = 4312 + 590 = 4902). Это согласуется с выдержкой из письма №131, процитированной выше.
Таким образом, первые шесть веков Лет Солнца являются финальным отрезком Первой Эпохи, которая завершилась поражением Моргота в Войне Гнева, его изгнанием в Пустоту, затоплением Белерианда и уходом большинства эльдар за Море.

Урок ОСдева №8: основной загрузчик, вводная.

Дисклеймер: эта серия постов не про UEFI. Это не значит, что я не знаю о существовании UEFI.
Про UEFI будет отдельная серия постов. Почему я не пишу про UEFI прямо сейчас? Потому что
UEFI - это уровень абстракции над железом, а мне интересно именно железо и работа с ним.

Итак, мы закончили писать первичный загрузчик. Что дальше? Дальше - немного пугающая
свобода. Если в случае ПЗ ограничения на объём памяти ставят разработчика в жёсткие рамки
и ограничивают полёт фантазии, то теперь вы можете строить архитектуру программы
по своему усмотрению и добавлять фичи сколько душа пожелает. Те решения, которые принял
я, могут быть не самыми разумными и правильными. Не буду вам их навязывать. Считаете,
что сможете сделать лучше - пробуйте. В любом случае стоит держать в голове минимальный
набор задач, который должен будет выполнять ваш загрузчик:

- Переключать процессор из 16-битного в 32-битный или 64-битный режим.
- Включать доступ к расширенной памяти.
- Составлять карту RAM и передавать её ОС.
- Минимально взаимодействовать с устройствами ввода-вывода, чтобы показать сообщение об ошибке
или принять ввод пользователя.
- Находить, считывать и обрабатывать файл конфигурации (опционально, делает загрузчик более гибким).
- Находить на диске и загружать в указанную область памяти ядро ОС.
- Находить на диске и загружать в указанные области памяти дополнительные файлы (опционально).
- Предоставлять ОС базовую GDT (об этом позже).

Важный момент: рано или поздно перед вами встанет вопрос совмещения в одной программе
16-битного и 32-битного (или 64-битного) кода. Лично я предпочёл с этим не заморачиваться и
разбил загрузчик на отдельные файлы. Тем более, что это соответствует любимой мной аккуратной
модульной структуре. Если вы всё-таки хотите запихать весь код в один файл, стоит заранее
выбрать ассемблер, который это поддерживает.

Ещё один важный момент: достоверное определение аппаратных ресурсов может быть (было до
появления UEFI - вставят тут апологеты) сложной задачей. Там, где это можно сделать
простым способом - я буду использовать его. Там, где для этого нужно будет полагаться
на технологии, рассказ о которых выйдет слишком объёмным для одного-двух постов (ACPI, UEFI) -
пока я буду заявлять наличие устройства как обязательное. Например, для работы ОС на этом
этапе будет обязательно наличие VGA-совместимых видеокарты и дисплея.

На этом вступление закончено и можно начинать писать. 16-битный модуль загрузчика будет
в некоторых местах повторять первичный. Такие участки кода я буду давать без объяснений.
Ну и - этот пост можно назвать вводным в новый этап программы, так что кода будет
немного. Поехали.Если вы вместе со мной писали ПЗ, то сейчас, запустив машину, получите вот такое
сообщение:

Plex86/Bochs UGABios (PCI) 0.7b 03 Jan 2020 This UGA/UBE Bios is released under the GNU LGPL
Please visit :
. http://bochs.sourceforge.net . http //www.nongnu.org/vgab ios
Bochs UBE Display Adapter enabled
Bochs 2.6.10.svn BIOS - build: 01/05/20
^Revision: 13752 $ $Date: 2019-12-30 14:16:18

Создайте в папке boot папку stage2, а в ней - текстовый файл loader.asm. Заголовок и конец
модуля выглядят почти идентично ПЗ:

.386p
CSEG segment use16
ASSUME cs:CSEG, ds:CSEG, es:CSEG, fs:CSEG, gs:CSEG, ss:CSEG
LOCALS @@

begin:

CSEG ends
end begin

Добавилась только директива LOCALS @@. В TASM эта команда разрешает использование локальных
меток. Начинающаяся с символов @@ метка или переменная будет работать только в границах
процедуры или модуля, в котором прописана. Это позволит нам создавать в разных местах
переменные и указатели с одинаковыми именами. Вы оцените полезность фичи, когда начнёте писать
большие программы. Идём дальше. Первое, что нам нужно сделать - это установить значения
сегментных регистров. Совсем как в ПЗ, изменилось только значение. Если помните, loader.bin
у нас был загружен в 0050h:0000h. Выглядит так:

begin:
     ;DS, ES, FS, GS.
          mov ax,0050h     ;Сегмент загрузчика.
          mov ds,ax     ;Поместить это значение во все сегментные регистры.
          mov es,ax
          mov fs,ax
          mov gs,ax

     ;СЕГМЕНТ СТЕКА.
          cli     ;Запретить прерывания перед переносом стека.
          mov ss,ax     ;Поместить в SS адрес сегмента загрузчика.
          mov sp,0FFFFh     ;Указатель стека - на конец сегмента.
          sti     ;Разрешить прерывания.

          cli
          hlt

Регистр CS мы не трогаем, так как его значение было корректно установлено ПЗ. Для комфортной
работы нам понадобится информация из блока параметров BIOS. Мы знаем, что он был загружен в
память вместе с ПЗ, поэтому обращаться к диску нужды нет. Собственно, я мог бы просто
скопировать всю структуру вместе со значениями из него, но это не кажется мне правильным.
Будет лучше считать структуру из RAM. Для этого нам понадобится неинициализированный
дубликат BPB и процедура, которая его заполнит. Добавьте эти переменные в конец модуля:

;=======================================;
;Блок параметров BIOS, 33 байта.;
;Здесь хранятся характеристики;
;носителя.;
;=======================================;
BPB:BPB_OEMnamedb ?,?,?,?,?,?,?,?     ;0-7. Имя производителя. Может быть любым.
BPB_bytespersecdw ?     ;8-9. Размер сектора в байтаx.
BPB_secperclustdb ?     ;10. Количество секторов в кластере.
BPB_reserveddw ?     ;11-12. Число зарезервированныx секторов (1, загрузочный).
BPB_numFATsdb ?     ;13. Число FAT.
BPB_RDentriesdw ?     ;14-15. Число записей Корневой Директории.
BPB_sectotaldw ?     ;16-17. Всего секторов на носителе.
BPB_mediatypedb ?     ;18. Тип носителя. 0F0 - 3,5-дюймовая дискета с 18 секторами в дорожке.
BPB_FATsizedw ?     ;19-20. Размер FAT в сектораx.
BPB_secpertrackdw ?     ;21-22. Число секторов в дорожке.
BPB_numheadsdw ?     ;23-24. Число головок (поверxностей).
BPB_hiddensecdd ?     ;25-28. Число скрытыx секторов перед загрузочным.
BPB_sectotal32dd ?     ;29-32. Число секторов, если иx больше 65535.

;===============================================;
;Расширенный блок параметров BIOS, 26 байт.;
;Этот раздел используется в DOS 4.0.;
;===============================================;
EBPB_drivenumdb ?     ;0. Номер привода.
EBPB_NTflagsdb ?     ;1. Флаги в Windows NT. Бит 0 - флаг необxодимости проверки диска. Бит 1 - флаг необходимости диагностики ;поверхности.
EBPB_extsigndb ?     ;2. Признак расшренного BPB по версии DOS 4.0.
EBPB_volIDdd ?     ;3-6. "Серийный номер". Любое случайное число или ноль, без разницы.
EBPB_vollabeldb ?,?,?,?,?,?,?,?,?,?,?     ;7-17. Название диска. Устарело.
EBPB_filesysdb ?,?,?,?,?,?,?,?     ;18-25. Имя файловой системы.
db ?     ;Еще один байт для того, чтобы структура занимала 15 32-битных слов.

Как видите, в этом варианте переменным не присвоены значения. Кроме того, в конце
зарезервирован ещё один байт. Он нужен для того, чтобы размер таблицы делился на 4
и её можно было загрузить как последовательность 32-битных слов, не перетерев
ничего лишнего. Теперь нужна процедура.

read_BPB proc
     push cx     ;Сохранить регистры.
     push di
     push si
     push ds

     push 07C0h
     pop ds     ;DS=07C0h, сегмент первичного загрузчика.
     mov si,3     ;SI=смещение BPB в ПЗ.
     mov di,offset BPB     ;DI=смещение BPB в loader.bin
     mov cx,15     ;CX=счётчик для копирования.
     rep movsd     ;Скопировать 15 32-битных слов, размер BPB+1 байт.

     pop ds     ;Восстановить регистры.
     pop si
     pop di
     pop cx
     ret     ;Завершить процедуру.
read_BPB endp

Тут в общем всё просто. Устанавливаем пару регистров DS:SI на начало BPB в первичном загрузчике,
а ES:DI - на нашу неинициализированную структуру. Потом командой rep movsd копируем всю
конструкцию + 1 байт. Вызовите процедуру инструкцией call после установки сегмента стека -
и готово. Кстати, вопрос знатокам: что быстрее выполнит 32-битный процессор в 16-битном
режиме - копирование 15 32-битных слов или 30 16-битных?

На этом пока всё. Сделайте новый батч файл с примерно таким текстом, чтобы не возиться
с инструкциями вручную:

tasm project\boot\stage2\loader.asm
tlink loader.obj
exe2bin loader.exe

Слинкуйте файл, закиньте на дискету - и готово. Сообщение о том, что loader.bin
не найден, должно пропасть. В следующий раз - установка видеорежима и методы вывода
текста.

Ссылка на полный полный текст модуля: https://drive.google.com/file/d/1rFc3OcEDmf7Rs_hEJ6iX98-1SimN_dx_/view?usp=sharing

Третьи сутки в голове крутится мелодия из песни, которую слышал давно и хочется услышать снова, но кроме слов "never go easy (или easiest) way" в начале песни и несколько раз повторяющиеся слова "hallowed be my (или your) name" в припеве, не вспоминается. Песня в жанре метал/рок. Не Iron Maiden, не HammerFall. Заранее благодарен.
,поиск песен,поиск музыки,пидоры помогите,реактор помоги
ПРОБЛЕМАТИЧНО
БЫТЬ ПРОГРАММИСТОМ
Мама сказала:
"Сынок, сходи в магазин и купи 1 бутылку молока. Если в продаже есть яйца, купи 6."
Я вернулся с 6 бутылками молока.
Она сказала: "Зачем ты купил 6 бутылок молока?!"
Я ответил: "ПОТОМУ ЧТО У НИХ В ПРОДАЖЕ ЕСТЬ ЯЙЦА!!!",программист,логика
Прриветствую, потребитель!!!Это я, твоя любимая детская франшиза!
Что-то не так?
Подойди поближе.

Отличный комментарий!

Кэээп?
Здесь мы собираем самые интересные картинки, арты, комиксы, мемасики по теме the beginning is end текст (+1000 постов - the beginning is end текст)