А существуют ли такие программы, даже не знаю как назвать... Суть: на локальной машине имеющей доступ к "толстому" интернету запускается эта программа, эмулирующая как бы прокси. Она открывает у себя вебсервер на каком-то порту. И слабым компам (или с компа через слабый интернет типа мобильного) она бы отдавала запрошенные странички в более "простом" виде, без кучи картинок и скриптов?
К слову. Может кто-нибудь знает, как определить формат отладочной информации в PE? Я знаю про dumpbin, но тот же DWARF от MinGW-w64 он не понимает, насколько я вижу. Или это я косячу?
Основной вектор развития современных процессоров (OoO) скорее в том, что ни программист ни компилятор чаще всего не будут вылизывать код под конкретную микроархитектуру, так что процессор сам пытается проанализировать поток инструкций и загрузить свои порты.
Если программист пишет код как попало, то зачастую это такой код, которому скорость и не нужна. Скриптик там, чтобы файлы перебрать. В остальных случаях вылизывать код рано или поздно приходится. Только почему-то языкам вроде Rust ставить дотошность при разработке во главу угла вполне допускается, а вот VLIW следует непременно смириться и загнуться. Хотя "основной вектор развития современных процессоров" задан прежде всего необходимостью "бежать изо всех сил лишь бы оставаться на месте" - рынок в текущем положении уже не особо привечает любые новации в стратегии вычислений. А повторением пройденного у нас занимается Байкал, а не Эльбрус.
VLIW жёстко заточен на компилятор - в числодробильном коде это в прицнипе работает (и может быть эффективнее за счёт отказа от OoO логики), но в суровом энтерпрайзе, где код с кучей условных переходов через каждые несколько инструкций, эффективная статическая компиляция на уровне раскладки по портам выглядит нереально.
Мне это видится инженерной задачей, причём решаемой - например гиперпоточностью, о чём я сегодня уже писал чуть выше. Хотя да, не скрою, я лицо заинтересованное - уж сильно мне нравится процессор в духе consteval / comptime, ныне весьма модных.
не понял, какое это имеет отношение к vliw? что с ним, что без него, есть только три варианта (и их миксы): или тупой компилятор, выдающий неоптимизированный код, или слишком умный компилятор, генерирующий не тот код, что ты ожидаешь, или ручками на ассемблере
Это имеет отношение к концепции. Современные процессоры как-то сами собой пришли к тому, что программист в подавляющем большинстве случаев не сможет написать asm-код лучше компилятора. Только вот VLIW подразумевал это же самое отношение изначально.
а переносимость кода? так и не забывайте, если компилятору(а он процессору готовит) давать код который с окружением(высокого уровня - чисто сахар компилятора), мы ругаем эту технологию, а на деле она предсказывает переходы-то, но если убрать окружение конечно там сигфолт на сигфолте, но так никто не пишет же на языках высокого уровня
В идеале код под Эльбрус должен затачиваться директивами вроде #pragma, которые на других платформах и других компиляторах просто игнорировались бы. К тому же условную компиляцию никто не отменял, а asm-вставки у Взрослых Дядь встречаются и по сей день.
Это работает, если ваш процессор предназначен для выполнения одной задачи. А если их много параллельно выполняется?
Обычный out-of-order speculative superscalar точно так же сбрасывает конвейер, очищает TLB и лишается кэша при любом переключении контекста, теряя производительность.
Это я хотя бы про гипертрейдинг как способ процессора более эффективно утилизировать свои вычислительные блоки за счёт двух одновременно выполняющихся контекстов потоков.
А есть какие-то непреодолимые препятствия у гиперпоточности на VLIW? Мне кажется, что нет, и даже наоборот: "продавить" часть команд одной инструкции в пустые места другой заведомо проще, чем распиливать команды на уровне железа и распределять их. Команды инструкции по определению независимы, потому что VLIW, сами инструкции тоже независимы, потому что из разных задач.
Гхм, с конца 1990-х к процессорам сбоку прикручивают SIMD-расширения, чтобы предсказуемо дробить числа - и где разница?
Оптимизация одним лишь SIMD не ограничивается. Хотя VLIW, по идее, и здесь обязан справляться лучше - попросту в силу числодробительной природы, выполняя по несколько SIMD-команд за такт.
А там где высокоуровневая бизнес-логика с её нехорошей индирекцией, ветвлениями и промахами кэша - там на одном железе всё равно будет медленно, а в другом - всё равно быстро.
Не могу согласиться. Здесь давно уже решает в первую очередь JIT, а не выраженная в железе стратегия исполнения. Для VLIW можно, например, соорудить всеобщий кэш профилировки на уровне всей операционной системы. А при первом исполнении скрипта собирать профиль, согласно которому затем сочинять готовый код своим же VLIW-компилятором. На уровень системы можно даже унести и сам этот JIT, и кешировать уже код, чтобы не сочинять его многократно. Концептуально это будет то же самое, что делает out-of-order speculative superscalar, но с куда более простым железом и меньшим обогревом вселенной.
Такие сложности будут с любым современным процессором, если задаться целью глубоко оптимизировать код.
Мне кажется, у VLIW (и Эльбруса в частности) здесь даже своеобразное преимущество имеется. На нём ты точно знаешь, что, как и где можно соптимизировать. Ты точно знаешь, что это придётся делать. Но так же точно ты знаешь, что процессор на это закономерно откликнется и покажет рост производительности, то есть твои старания не пропадут втуне.
Это заметно контрастирует с теперешними out-of-order speculative superscalar, где оптимизация уже напоминает игру в догонялки с компилятором и в напёрстки с процессором, поведение которых стали затачивать под высокоуровневые языки. В итоге ты смотришь на код и никогда не уверен: то ли его действительно можно оптимизировать, то ли просто железу сил не хватает, то ли компилятор свинью подложил, то ли сама задача сложная и нет смысла крохи собирать.
Когда я училась в аспирантуре, моей любимой преподавательнице как-то отказали в регистрации на участие в семинаре филологов на основании "извините, но какое отношение человек с вашей фамилией вообще может иметь к русскому языку, имейте совесть". Преподавательница на тот момент готовилась к защите докторской диссертации (и через год успешно ее защитила), а нерусскую фамилию, что самое забавное, преобрела не при рождении, а в браке. Но доказывать что бы то ни было идиотам не стала.
Если преподавательница не смогла отпарировать такое чем-нибудь в духе "позвольте, но Даль - фамилия исходно датская, а Розенталь - еврейская" - значит, правильно отказали.
Национальность - это что угодно, что взбредет в голову оценивающему.
Это личные интимные неприятности белых негров. Действительность от этого не меняется.
Кстати, "фамипия" - это не название домофона. На картинке выше видно, что в оригинале там написано "lakó neve", то есть "имя жителя", а рядом силуэт кнопки и нажатия. Это подсказка о том, как пользоваться. А "világítás" - это "освещение".
Petya Wigan: Gyártó: Megyeszer Vállalat, Pècs («Производитель: Компания Megyeszer, Печ») Gábor Schermann: MKT
На шильдике видно название: HITEKA. И поиск по "hiteka kaputelefon" выводит на искомое: https://www.facebook.com/sulekaputelefon/posts/hiteka-pécs/1852947644789594/ Видим, что HITEKA - это торговая марка некоего завода Hiradástechnikai Gépgyár с тем же адресом. Вероятно, это более раннее название той компании. И оттуда же берётся упомянутый ниже в комментариях тип домофонов HKT, предшествовавший MKT.
Сообщество это, кстати, принадлежит некоей домофонной фирме: http://sulekaputelefon.hu. Можете поизучать через переводчик. Или вот ещё некий венгерский сайт, посвящённый именно домофонам: https://kaputelefongyar.hu.
А табличка венграми писана. Именно отсюда "ФАМИПИЯ", "КНОПКY" и "ДОМОТЕЛЕФОННАЯ АППАРАТYРА" (третье это так совершенно явный надмозг от "házitelefon berendezés" или чего-то подобного). Забавно, что в "домотелефонная" они "л" осилили написать, а в "фамипии" - увы. :)
Régi Pécs - 16 июль 2021 г. · Lyceum utca és a Perczel Miklós utca sarki műemlék épület (Lyceum u 4.). Eredetileg ebben az épületben volt a Pécsi Püspöki Lyceumi Nyomda. A fénykép készítésekor a Megyeszer Vállalat működött az épületben. Fénykép forrása: Tóth Tibor gyűjteménye
Монументальное здание на углу улиц Лицеум и Перчела Миклоша (Лицеум, ул. 4). Первоначально в этом здании располагалась типография епископского лицея Печа. На момент съемки фотографии в здании работала компания «Медьезер». Источник фото: коллекция Тибора Тота.
Это совпадает с наклейкой на трансформаторе. "Megyeszer" - название предприятия, "v." - сокращение от "vállalat", "предприятие", "Pécs" - Печ.
Исходя из данного предположения, удалось найти и рекламу капутелефонов домофонов от этого производителя в виде карточных календариков:
раскрыть и посмотреть.
«Хотите, чтобы ваша квартира была современной и комфортной? Установите домофон на входе!»
https://f1hungary.fw.hu/kartyanaptar/katalogus/kartyanaptar.php?sorszam=2225
https://kartyanaptarak.hu/picture.php?/6005/category/rajzfilm-cartoon
«Современная и комфортная квартира? Домофон.»
https://p2-ssl.vatera.hu/photos/55/d8/kartyanaptar-pecs-megyeszer-kaputelefon-grafikai-noi-modell-1974-5bfc_1_300.jpg
Ещё похоже, что MKT из названия превратилось в обозначение всех подобных домофонов такой системы. По крайней мере, по "Megyeszer MKT-LC" и "MKT kaputelefon rendszer" находится много интересного, например:
Эти истории учат только тому, что человек может поехать кукушкой. И от национальности это не зависит.
У людей не лбу не написано, хорошие они или плохие, вменяемые или нет. Поэтому и остаётся довольствоваться лишь стереотипным восприятием.
И да, национальность - это не этническое происхождение. Это принадлежность к некоей нации (то есть как правило стране), которой сопутствуют common practices в виде языка, религии, культуры и тому подобного. А здесь уже полно корреляций и с уровнем образования, и с общей развитостью, и в том числе - с распространением фанатизма. Вы едва ли хотели бы себе няню из Афганистана или Сомали, какой бы доброй и красивой она ни выглядела.
Один из лучший примеров кода, с которым мне довелось поработать -- библиотека SQLite. Желающие могут причаститься.
У SQLite ещё и очень интересный этический кодекс: https://sqlite.org/codeofethics.html. Без него, боюсь, впечатление может оказаться несколько неполным. :)
До сих пор сижу на Windows 7 в качестве основной рабочей системы. Хорошая добрая новость для меня. К слову, разработчики известного форумного движка Discourse поторопились, и сейчас его новые версии больше не отдают 115.27.0esr ничего, кроме плоского html (и только если разлогинился). Заметил на users.rust-lang.org и internals.rust-lang.org в двадцатых числах августа, до этого всё работало как новое.
Поэтому я решил написать загрузчик для материалов, описанных в простом текстовом формате по типу ini-файлов. В секции Texture описываются используемые текстуры, которые затем подгружаются из пула ресурсов, в RenderStates — напрямую указаны поля в классе Material, а в Combiners — очень-очень примитивная вариация на тему шейдеров!
Изначально я хотел сделать чтобы материалы описывали эдакий набор инструкций как «шейдеры» в Quake 3.
А можете ссылкой поделиться, пожалуйста?
https://github.com/atauenis/webone
https://github.com/ttalvitie/browservice
https://tinkerdifferent.com/threads/http-proxy-and-transcoder-for-vintage-browsers.275/
Замечательная статья, спасибо большое. Стоит упомянуть, что помимо PDB-файлов существовали ещё и DBG-файлы: https://www.debuginfo.com/articles/debuginfomatch.html#dbgfiles.
А про PDB похожую статью видел ещё вот здесь https://scot.tg/2023/05/02/debugging-with-pdbs/.
К слову. Может кто-нибудь знает, как определить формат отладочной информации в PE? Я знаю про
dumpbin, но тот же DWARF от MinGW-w64 он не понимает, насколько я вижу. Или это я косячу?Если программист пишет код как попало, то зачастую это такой код, которому скорость и не нужна. Скриптик там, чтобы файлы перебрать. В остальных случаях вылизывать код рано или поздно приходится. Только почему-то языкам вроде Rust ставить дотошность при разработке во главу угла вполне допускается, а вот VLIW следует непременно смириться и загнуться. Хотя "основной вектор развития современных процессоров" задан прежде всего необходимостью "бежать изо всех сил лишь бы оставаться на месте" - рынок в текущем положении уже не особо привечает любые новации в стратегии вычислений. А повторением пройденного у нас занимается Байкал, а не Эльбрус.
Мне это видится инженерной задачей, причём решаемой - например гиперпоточностью, о чём я сегодня уже писал чуть выше. Хотя да, не скрою, я лицо заинтересованное - уж сильно мне нравится процессор в духе consteval / comptime, ныне весьма модных.
Это имеет отношение к концепции. Современные процессоры как-то сами собой пришли к тому, что программист в подавляющем большинстве случаев не сможет написать asm-код лучше компилятора. Только вот VLIW подразумевал это же самое отношение изначально.
В идеале код под Эльбрус должен затачиваться директивами вроде
#pragma, которые на других платформах и других компиляторах просто игнорировались бы. К тому же условную компиляцию никто не отменял, а asm-вставки у Взрослых Дядь встречаются и по сей день.Обычный out-of-order speculative superscalar точно так же сбрасывает конвейер, очищает TLB и лишается кэша при любом переключении контекста, теряя производительность.
А есть какие-то непреодолимые препятствия у гиперпоточности на VLIW? Мне кажется, что нет, и даже наоборот: "продавить" часть команд одной инструкции в пустые места другой заведомо проще, чем распиливать команды на уровне железа и распределять их. Команды инструкции по определению независимы, потому что VLIW, сами инструкции тоже независимы, потому что из разных задач.
Оптимизация одним лишь SIMD не ограничивается. Хотя VLIW, по идее, и здесь обязан справляться лучше - попросту в силу числодробительной природы, выполняя по несколько SIMD-команд за такт.
Не могу согласиться. Здесь давно уже решает в первую очередь JIT, а не выраженная в железе стратегия исполнения. Для VLIW можно, например, соорудить всеобщий кэш профилировки на уровне всей операционной системы. А при первом исполнении скрипта собирать профиль, согласно которому затем сочинять готовый код своим же VLIW-компилятором. На уровень системы можно даже унести и сам этот JIT, и кешировать уже код, чтобы не сочинять его многократно. Концептуально это будет то же самое, что делает out-of-order speculative superscalar, но с куда более простым железом и меньшим обогревом вселенной.
Мне кажется, у VLIW (и Эльбруса в частности) здесь даже своеобразное преимущество имеется. На нём ты точно знаешь, что, как и где можно соптимизировать. Ты точно знаешь, что это придётся делать. Но так же точно ты знаешь, что процессор на это закономерно откликнется и покажет рост производительности, то есть твои старания не пропадут втуне.
Это заметно контрастирует с теперешними out-of-order speculative superscalar, где оптимизация уже напоминает игру в догонялки с компилятором и в напёрстки с процессором, поведение которых стали затачивать под высокоуровневые языки. В итоге ты смотришь на код и никогда не уверен: то ли его действительно можно оптимизировать, то ли просто железу сил не хватает, то ли компилятор свинью подложил, то ли сама задача сложная и нет смысла крохи собирать.
Если преподавательница не смогла отпарировать такое чем-нибудь в духе "позвольте, но Даль - фамилия исходно датская, а Розенталь - еврейская" - значит, правильно отказали.
Это личные интимные неприятности белых негров. Действительность от этого не меняется.
Кстати, "фамипия" - это не название домофона. На картинке выше видно, что в оригинале там написано "lakó neve", то есть "имя жителя", а рядом силуэт кнопки и нажатия. Это подсказка о том, как пользоваться. А "világítás" - это "освещение".
"Királyi" это "королевский", а домофон времён социалистической Венгрии. Слабо верится.
О, вот сейчас попался на глаза рисунок прям такого домофона:
Эта же картинка нашлась в одном из сообществ ностальгирующих в Facebook, разве что перешакаленная: https://www.facebook.com/retrogarazs/posts/pfbid0nJjH3wJMabRj7yEMbecybGWjYEKbgueVu3d9qVzs7uTNmucvnozb64iQuDny488Dl.
И в комментариях там прямо написали:
На шильдике видно название: HITEKA. И поиск по "hiteka kaputelefon" выводит на искомое: https://www.facebook.com/sulekaputelefon/posts/hiteka-pécs/1852947644789594/
Видим, что HITEKA - это торговая марка некоего завода Hiradástechnikai Gépgyár с тем же адресом. Вероятно, это более раннее название той компании. И оттуда же берётся упомянутый ниже в комментариях тип домофонов HKT, предшествовавший MKT.
Сообщество это, кстати, принадлежит некоей домофонной фирме: http://sulekaputelefon.hu. Можете поизучать через переводчик. Или вот ещё некий венгерский сайт, посвящённый именно домофонам: https://kaputelefongyar.hu.
А табличка венграми писана. Именно отсюда "ФАМИПИЯ", "КНОПКY" и "ДОМОТЕЛЕФОННАЯ АППАРАТYРА" (третье это так совершенно явный надмозг от "házitelefon berendezés" или чего-то подобного). Забавно, что в "домотелефонная" они "л" осилили написать, а в "фамипии" - увы. :)
Что до MKT, то это почти наверняка сокращение от "Megyeszer Kaputelefon".
https://www.facebook.com/photo.php?fbid=4186793704733423&id=360661200680045
Это совпадает с наклейкой на трансформаторе. "Megyeszer" - название предприятия, "v." - сокращение от "vállalat", "предприятие", "Pécs" - Печ.
Исходя из данного предположения, удалось найти и рекламу
капутелефоновдомофонов от этого производителя в виде карточных календариков:раскрыть и посмотреть.
Ещё похоже, что MKT из названия превратилось в обозначение всех подобных домофонов такой системы. По крайней мере, по "Megyeszer MKT-LC" и "MKT kaputelefon rendszer" находится много интересного, например:
https://webshop.biztonsagosotthon.hu/TESLA-MKT-lakaskeszulek - трубка для таких домофонов, интересна приведённым списком моделей:
https://codefonshop.hu/CODEfon-MKT-lakaskeszulek и https://codefonshop.hu/Tesla-MKT-lakaskeszulek - тоже трубки, интересны описанием:
У людей не лбу не написано, хорошие они или плохие, вменяемые или нет. Поэтому и остаётся довольствоваться лишь стереотипным восприятием.
И да, национальность - это не этническое происхождение. Это принадлежность к некоей нации (то есть как правило стране), которой сопутствуют common practices в виде языка, религии, культуры и тому подобного. А здесь уже полно корреляций и с уровнем образования, и с общей развитостью, и в том числе - с распространением фанатизма. Вы едва ли хотели бы себе няню из Афганистана или Сомали, какой бы доброй и красивой она ни выглядела.
У SQLite ещё и очень интересный этический кодекс: https://sqlite.org/codeofethics.html. Без него, боюсь, впечатление может оказаться несколько неполным. :)
Можно ещё проще и без
/print: докиньте?_escaped_fragment_в конец URL и всё. :)Узнал вот здесь: https://meta.discourse.org/t/a-basic-discourse-archival-tool/62614.
До сих пор сижу на Windows 7 в качестве основной рабочей системы. Хорошая добрая новость для меня.
К слову, разработчики известного форумного движка Discourse поторопились, и сейчас его новые версии больше не отдают 115.27.0esr ничего, кроме плоского html (и только если разлогинился). Заметил на users.rust-lang.org и internals.rust-lang.org в двадцатых числах августа, до этого всё работало как новое.
Если кому интересно почитать поподробнее, о чём речь: https://fabiensanglard.net/quake3/renderer.php.
На Хабре был перевод, но ссылка на PDF там сдохла.
Чтобы можно было палитру изменять посреди развёртки кадра, например.