Первое место. Приэльбрусье, Терскольская обсерватория.
Мой фаворит снова на Кавказе, но чуть с другой стороны. В целом, мне всё Приэльбрусье нравится: это прям мое место силы, чувствую себя там очень спокойно, при этом не могу перестать восхищаться природой вокруг. Когда-нибудь обязательно заберусь на сам Эльбрус, но сегодня расскажу об одном маршруте рядом с ним.
Недалеко от Эльбруса есть поселок Терскол, а от него начинается серпантин в горы. На каждом следующем витке открываются все более невероятные виды, поэтому главная проблема здесь - поддерживать хоть какой-то адекватный темп, а не фотографировать все вокруг каждый свой шаг)
Сначала думал остановиться на водопаде, но этот маршрут какой-то абсолютно наркоманский, после каждого витка серпантина хочется сделать следующий, а потом еще и еще. Так я добежал до местной обсерватории, набрав в сумме 920 метров подъема.
Ощущения были чем-то похожи на Кисловодск, только возведенные в квадрат. Здесь ты чувствуешь себя действительно на вершине мира и в полном, окончательном одиночестве, полностью наедине с величественной местной природой.
Не знаю, может это именно у меня с Приэльбрусьем такой четкий матч, но, пожалуй, это была лучшая моя пробежка из всех. Трек здесь.
—
Такой вот у меня топ-5!
Он, конечно, совершенно не окончательный, каждая следующая моя поездка может его изменить. И в этом и кайф, у пробежки в путешествиях есть все шансы запасть вам в душу очень надолго)
А какой у вас рейтинг топовых мест? Для бега/хайка/прогулки, это в целом про одно и тоже.
#гчкм
Мой фаворит снова на Кавказе, но чуть с другой стороны. В целом, мне всё Приэльбрусье нравится: это прям мое место силы, чувствую себя там очень спокойно, при этом не могу перестать восхищаться природой вокруг. Когда-нибудь обязательно заберусь на сам Эльбрус, но сегодня расскажу об одном маршруте рядом с ним.
Недалеко от Эльбруса есть поселок Терскол, а от него начинается серпантин в горы. На каждом следующем витке открываются все более невероятные виды, поэтому главная проблема здесь - поддерживать хоть какой-то адекватный темп, а не фотографировать все вокруг каждый свой шаг)
Сначала думал остановиться на водопаде, но этот маршрут какой-то абсолютно наркоманский, после каждого витка серпантина хочется сделать следующий, а потом еще и еще. Так я добежал до местной обсерватории, набрав в сумме 920 метров подъема.
Ощущения были чем-то похожи на Кисловодск, только возведенные в квадрат. Здесь ты чувствуешь себя действительно на вершине мира и в полном, окончательном одиночестве, полностью наедине с величественной местной природой.
Не знаю, может это именно у меня с Приэльбрусьем такой четкий матч, но, пожалуй, это была лучшая моя пробежка из всех. Трек здесь.
—
Такой вот у меня топ-5!
Он, конечно, совершенно не окончательный, каждая следующая моя поездка может его изменить. И в этом и кайф, у пробежки в путешествиях есть все шансы запасть вам в душу очень надолго)
А какой у вас рейтинг топовых мест? Для бега/хайка/прогулки, это в целом про одно и тоже.
#гчкм
Тут недавно один юный компиляторщик у видел у нас в рантайме название BIBOB и очень смеялся необычно звучащему для него слову: "что это за названия у вас в рантайме такие смешные?"
Но для рантаймщика то это звучит вполне естественно, это один из самых базовых терминов. Наверное и вы, читатели, если когда-нибудь занимались управлением памятью в виртуальных машинах, узнали здесь небольшую модификацию классической техники BIBOP (BIg Bag Of Pages), которая представляет из себя довольно простую штуку.
В рантайме по любому объекту в памяти нужно уметь быстро понимать его свойства, при том, как instance-специфичные (самое простое: помечен он сейчас GC-ом или нет? Хэшировали уже объект или нет?), так и class-специфичные (это массив или нет? у класса есть нетривиальный финализатор или нет? Размер объекта какой?). И если для instance-специфичной информации в объекте обычно зарезервировано несколько байт в заголовке (за битики в этом заголовке идет настоящая битва, всем надо), то class-специфичная информация обычно хранится отдельно. Для доступа к ней в объект записывают адрес на соответствующую рантайм структуру, в хотспоте, например, это
Но это же получается целое поле под этот адрес для метаинфы в каждом объекте хранить! Объектов миллионы, дороговато получается, дороговато. В общем случае в современных языках этого не избежать, но в некоторых частных случаях может захотеться иметь альтернативный способ получения этой метаинформации об объектах. И тут срабатывает классический трюк: давайте кодировать информацию в адресах объектов. Я сейчас не про то, чтобы записывать что-то в старшие биты адреса и потом маркировать (так тоже делают, конечно, но это скорее instance- или даже pointer-специфичная инфа), а про то, чтобы использовать сам адрес для быстрого поиска нужной вам информации: давайте аллоцировать все объекты с одинаковыми свойствами (например, массивы) рядом, в заранее известных регионах памяти. Тогда вы за пару сдвигов сможете понять по адресу объекта, в каком он регионе и соответственно получить всю необходимую метаинфу.
Если чуть обобщить, то вы просто делаете хэш-таблицу из адресов в объектов в метаинфу, что освобождает вас от необходимости хранить адрес на метаинфу в каждом объекте (но накладывает ограничение на аллокации и перемещения объектов, трейдоф понятен). Вот такая техника и называется BIBOP (BIg Bag Of Pages). Pages там, понятно, из-за того, что обычно хранится информация не конкретно об объекте, а о страничке, в которой он (и похожие на него объекты) аллоцирован.
У нас в рантайме используется похожая техника, но не для конкретных объектов, а для наших собственных блоков памяти (поэтому вместо Pages, у нас Blocks, и аббревиатура превращается в BIBOB).
Забавно, что техника BIBOP один из первых раз описана была в 1977 году, вот здесь, для реализации MacLisp на PDP-10. Хотя даже там автор уже подтрунивает на самим термином и говорит, что так уже называют схему, когда новые страницы под данные выделяют с верхних адресов к нижним, а код, наоборот, загружают в нижние адреса. И вот дырка в середине, которую с двух сторон съедают во время исполнения, называется "BIg Bag of Pages" (автор использует словосочетание "whimsically named"), поэтому и схему с аллокацией объектов вместе и кодированием метаинфы в адресах автор тоже решил назвать BIBOP.
—
В общем, это настолько древняя (почти 50 лет!) и понятная технология, что слово BIBOP не звучит для рантаймщика, как что-то странное, совершенно.
Но я же недавно посмотрел Сowboy Bebop! А дальше уже просто не смог удержаться: пошел и подписал к комменту над нашим бибопом одну строчку в качестве шалости. See you, space cowboys.
#дух_машины
Но для рантаймщика то это звучит вполне естественно, это один из самых базовых терминов. Наверное и вы, читатели, если когда-нибудь занимались управлением памятью в виртуальных машинах, узнали здесь небольшую модификацию классической техники BIBOP (BIg Bag Of Pages), которая представляет из себя довольно простую штуку.
В рантайме по любому объекту в памяти нужно уметь быстро понимать его свойства, при том, как instance-специфичные (самое простое: помечен он сейчас GC-ом или нет? Хэшировали уже объект или нет?), так и class-специфичные (это массив или нет? у класса есть нетривиальный финализатор или нет? Размер объекта какой?). И если для instance-специфичной информации в объекте обычно зарезервировано несколько байт в заголовке (за битики в этом заголовке идет настоящая битва, всем надо), то class-специфичная информация обычно хранится отдельно. Для доступа к ней в объект записывают адрес на соответствующую рантайм структуру, в хотспоте, например, это
Klass*
.Но это же получается целое поле под этот адрес для метаинфы в каждом объекте хранить! Объектов миллионы, дороговато получается, дороговато. В общем случае в современных языках этого не избежать, но в некоторых частных случаях может захотеться иметь альтернативный способ получения этой метаинформации об объектах. И тут срабатывает классический трюк: давайте кодировать информацию в адресах объектов. Я сейчас не про то, чтобы записывать что-то в старшие биты адреса и потом маркировать (так тоже делают, конечно, но это скорее instance- или даже pointer-специфичная инфа), а про то, чтобы использовать сам адрес для быстрого поиска нужной вам информации: давайте аллоцировать все объекты с одинаковыми свойствами (например, массивы) рядом, в заранее известных регионах памяти. Тогда вы за пару сдвигов сможете понять по адресу объекта, в каком он регионе и соответственно получить всю необходимую метаинфу.
Если чуть обобщить, то вы просто делаете хэш-таблицу из адресов в объектов в метаинфу, что освобождает вас от необходимости хранить адрес на метаинфу в каждом объекте (но накладывает ограничение на аллокации и перемещения объектов, трейдоф понятен). Вот такая техника и называется BIBOP (BIg Bag Of Pages). Pages там, понятно, из-за того, что обычно хранится информация не конкретно об объекте, а о страничке, в которой он (и похожие на него объекты) аллоцирован.
У нас в рантайме используется похожая техника, но не для конкретных объектов, а для наших собственных блоков памяти (поэтому вместо Pages, у нас Blocks, и аббревиатура превращается в BIBOB).
Забавно, что техника BIBOP один из первых раз описана была в 1977 году, вот здесь, для реализации MacLisp на PDP-10. Хотя даже там автор уже подтрунивает на самим термином и говорит, что так уже называют схему, когда новые страницы под данные выделяют с верхних адресов к нижним, а код, наоборот, загружают в нижние адреса. И вот дырка в середине, которую с двух сторон съедают во время исполнения, называется "BIg Bag of Pages" (автор использует словосочетание "whimsically named"), поэтому и схему с аллокацией объектов вместе и кодированием метаинфы в адресах автор тоже решил назвать BIBOP.
—
В общем, это настолько древняя (почти 50 лет!) и понятная технология, что слово BIBOP не звучит для рантаймщика, как что-то странное, совершенно.
Но я же недавно посмотрел Сowboy Bebop! А дальше уже просто не смог удержаться: пошел и подписал к комменту над нашим бибопом одну строчку в качестве шалости. See you, space cowboys.
#дух_машины
Хочу до конца семестра сделать 5 новых лекций по 4 разным предметам. Помянем 🫡
This media is not supported in your browser
VIEW IN TELEGRAM
Тут как считать, конечно, но точно не меньше четырех уже было)
This media is not supported in your browser
VIEW IN TELEGRAM
После этого видео захотелось сразу две вещи сделать: вернуться в Скайрим и пересмотреть Интерстеллар