Вкратце про GigaChat
Сбер выпустил свою "большую лингвистическую модель" GigaChat. Как видно по самопредставлению, проект сделан на основе OpenAssistant – международной заготовки лингвистических моделей с открытым кодом. Впрочем, команда Сбера явно проводила полноценное дообучение, а не просто придумала промпт (как сделано в продуктах Microsoft, таких как Bing и Skype, в отношении ChatGPT).
Вкратце модель от Сбера вот какую получает от меня оценку:
1. По темам программирования твёрдая двойка. Видимо, модель не обучали специально на коде.
2. Вопрос на ролевую имитацию человека и "проективное" построение элементов ценностной иерархии: справляется вполне неплохо, хоть и не столь гладко и убедительно, как ChatGPT.
3. Метафоры и загадки – хуже, чем ChatGPT, но вообще и у последнего одни слёзы. Впрочем, в следующих версиях вроде должно быть получше.
Количественное отставание от ChatGPT огромное, однако качественный порог преодолён. OpenAI первая ответила утвердительно на вопрос "а что, так можно было?", появлению сравнимых конкурентов технически ничего не мешает.
Впрочем, без подключения к личным базам данных всё это уже выглядит как бестолковая игрушка. Вот если бы в переписке мог бы что-то найти или ответить вместо меня, или в личной библиотеке, тогда да...
#programming
Сбер выпустил свою "большую лингвистическую модель" GigaChat. Как видно по самопредставлению, проект сделан на основе OpenAssistant – международной заготовки лингвистических моделей с открытым кодом. Впрочем, команда Сбера явно проводила полноценное дообучение, а не просто придумала промпт (как сделано в продуктах Microsoft, таких как Bing и Skype, в отношении ChatGPT).
Вкратце модель от Сбера вот какую получает от меня оценку:
1. По темам программирования твёрдая двойка. Видимо, модель не обучали специально на коде.
2. Вопрос на ролевую имитацию человека и "проективное" построение элементов ценностной иерархии: справляется вполне неплохо, хоть и не столь гладко и убедительно, как ChatGPT.
3. Метафоры и загадки – хуже, чем ChatGPT, но вообще и у последнего одни слёзы. Впрочем, в следующих версиях вроде должно быть получше.
Количественное отставание от ChatGPT огромное, однако качественный порог преодолён. OpenAI первая ответила утвердительно на вопрос "а что, так можно было?", появлению сравнимых конкурентов технически ничего не мешает.
Впрочем, без подключения к личным базам данных всё это уже выглядит как бестолковая игрушка. Вот если бы в переписке мог бы что-то найти или ответить вместо меня, или в личной библиотеке, тогда да...
#programming
Вкратце про бессмертный софт
Какие игры-то красочные были!
Не зря "Герои меча и магии" до третьей части стали не умирающей классикой. Особенно привлекает минимализм, чёткость интерфейса. Все кнопки на своих местах, плотно так упаковано, но при этом не без рюшечек для создания атмосферы (книга заклинаний там какая-нибудь – впрочем, пожалуй она-то как раз худший элемент интерфейса).
Для того, чтобы реанимировать игру и попробовать продлить срок её жизни, энтузиасты движок переписали практически с нуля. Написали на C++ логику, сделали сборки под основные операционные системы.
Подход, думаю, стратегически проигрышный. Через 20 лет опять всё переписывать. В идеале надо разработать специализированный язык, на котором уже следом реализовать саму игру. Язык поддерживать, как ни странно, проще, чем конкретный (сложный) продукт на нём.
По этому пути пошла, например, плеяда квестов на ScummVM. Которые теперь автоматически (с поправкой на принцип "дырявых абстракций", конечно, но это детали) поддерживаются на всех платформах с незначительными доработками.
И всегда будут поддерживаться, пока существует человеческая цивилизация, поскольку техника устаревает мгновенно, обратная совместимость софта прекращается очень быстро, вычислительные архитектуры меняются раз в несколько десятилетий, но языки живут вечно. А реализовать поддержку известного хорошо формализованного языка на любой платформе это всегда довольно просто.
#programming #games
Какие игры-то красочные были!
Не зря "Герои меча и магии" до третьей части стали не умирающей классикой. Особенно привлекает минимализм, чёткость интерфейса. Все кнопки на своих местах, плотно так упаковано, но при этом не без рюшечек для создания атмосферы (книга заклинаний там какая-нибудь – впрочем, пожалуй она-то как раз худший элемент интерфейса).
Для того, чтобы реанимировать игру и попробовать продлить срок её жизни, энтузиасты движок переписали практически с нуля. Написали на C++ логику, сделали сборки под основные операционные системы.
Подход, думаю, стратегически проигрышный. Через 20 лет опять всё переписывать. В идеале надо разработать специализированный язык, на котором уже следом реализовать саму игру. Язык поддерживать, как ни странно, проще, чем конкретный (сложный) продукт на нём.
По этому пути пошла, например, плеяда квестов на ScummVM. Которые теперь автоматически (с поправкой на принцип "дырявых абстракций", конечно, но это детали) поддерживаются на всех платформах с незначительными доработками.
И всегда будут поддерживаться, пока существует человеческая цивилизация, поскольку техника устаревает мгновенно, обратная совместимость софта прекращается очень быстро, вычислительные архитектуры меняются раз в несколько десятилетий, но языки живут вечно. А реализовать поддержку известного хорошо формализованного языка на любой платформе это всегда довольно просто.
#programming #games
Вкратце про модель OSI
"Модель OSI" появилась в 70-е годы, разработана французами параллельно с появлением в США протокола TCP/IP.
Вопреки задумке, хорошо подходит для описания как раз локальных сетей, а для интернета не применима.
Прямое сопоставление TCP/IP с OSI при этом, в защиту последней, в большинстве случаев не корректно уже именно потому, что первое это конкретная разработка, а второе абстрактная схема, "как должно быть". Абстрактная схема, тем более появившаяся раньше конкретных реализаций, должна не столько хорошо описывать буквальное положение вещей, сколько помогать развивать текущие и будущие альтернативы.
С этой задачей, конечно, OSI совершенно не справляется.
"Дыры в абстракциях" начинают протекать начиная с самых нижних уровней: в терминах OSI невозможно описать протокол ARP, который 40 лет уже как используется повсеместно для синхронизации "логической" и "физической" топологии локальной сети. Тренированные IT-теоретики так и пишут: находится МЕЖДУ вторым и третьим уровнем OSI.
Если что-то находится "МЕЖДУ" двумя соседними значениями периодической системы элементов Менделеева (или теории о социальных классах, или системе фундаментальных физических взаимодействий, и пр. в любой области науки и техники) это означает, что данная системная схема несостоятельна. Что в лучшем случае она требует доработок и расширения.
Не то с моделью OSI: после фатального провала практически в момент своего рождения (не изучили опыт реализации реального TCP/IP – углубляться не будем, описано в литературе – но к примеру нельзя TCP и IP по-отдельности вульгарно распихать по 3 и 4 уровню, функции этих суб-протоколов не соответствуют описанию этих уровней) и до сегодняшнего дня она в неизменном виде фигурирует на курсах телекома в университетах и на собеседованиях самого широкого круга IT-специалистов (я сам не считаю осведомлённость или неосведомлённость о ней сколь-либо иллюстративной при оценке квалификации программиста).
Про то, как с помощью этой единственной мейнстримной универсальной концепции глобальных сетей анализировать и понимать такие штуки как DNS, BGP, облачные вычисления, блокчейн, виртуализацию-кластеризацию и прочее, и прочее, и прочее – никто не знает и знать не может. Всё перечисленное – за всеми этими аббревиатурами и терминами стоит не просто нечто различное, но нечто живущее именно на разных системных уровнях глобальных сетей – обычно запихивают с чистой совестью на 7-й уровень OSI и на том вопрос закрывают.
Так а зачем нужна концептуальная схема, которая даёт вырожденные (в математическом смысле) выводы и не позволяет порождать полезные для развития систем суждения? На помойку её, в качестве забавного исторического курьёза и примера религиозного мышления в сообществе инженеров.
#programming
"Модель OSI" появилась в 70-е годы, разработана французами параллельно с появлением в США протокола TCP/IP.
Вопреки задумке, хорошо подходит для описания как раз локальных сетей, а для интернета не применима.
Прямое сопоставление TCP/IP с OSI при этом, в защиту последней, в большинстве случаев не корректно уже именно потому, что первое это конкретная разработка, а второе абстрактная схема, "как должно быть". Абстрактная схема, тем более появившаяся раньше конкретных реализаций, должна не столько хорошо описывать буквальное положение вещей, сколько помогать развивать текущие и будущие альтернативы.
С этой задачей, конечно, OSI совершенно не справляется.
"Дыры в абстракциях" начинают протекать начиная с самых нижних уровней: в терминах OSI невозможно описать протокол ARP, который 40 лет уже как используется повсеместно для синхронизации "логической" и "физической" топологии локальной сети. Тренированные IT-теоретики так и пишут: находится МЕЖДУ вторым и третьим уровнем OSI.
Если что-то находится "МЕЖДУ" двумя соседними значениями периодической системы элементов Менделеева (или теории о социальных классах, или системе фундаментальных физических взаимодействий, и пр. в любой области науки и техники) это означает, что данная системная схема несостоятельна. Что в лучшем случае она требует доработок и расширения.
Не то с моделью OSI: после фатального провала практически в момент своего рождения (не изучили опыт реализации реального TCP/IP – углубляться не будем, описано в литературе – но к примеру нельзя TCP и IP по-отдельности вульгарно распихать по 3 и 4 уровню, функции этих суб-протоколов не соответствуют описанию этих уровней) и до сегодняшнего дня она в неизменном виде фигурирует на курсах телекома в университетах и на собеседованиях самого широкого круга IT-специалистов (я сам не считаю осведомлённость или неосведомлённость о ней сколь-либо иллюстративной при оценке квалификации программиста).
Про то, как с помощью этой единственной мейнстримной универсальной концепции глобальных сетей анализировать и понимать такие штуки как DNS, BGP, облачные вычисления, блокчейн, виртуализацию-кластеризацию и прочее, и прочее, и прочее – никто не знает и знать не может. Всё перечисленное – за всеми этими аббревиатурами и терминами стоит не просто нечто различное, но нечто живущее именно на разных системных уровнях глобальных сетей – обычно запихивают с чистой совестью на 7-й уровень OSI и на том вопрос закрывают.
Так а зачем нужна концептуальная схема, которая даёт вырожденные (в математическом смысле) выводы и не позволяет порождать полезные для развития систем суждения? На помойку её, в качестве забавного исторического курьёза и примера религиозного мышления в сообществе инженеров.
#programming
Интернет и телевизор
С момента появления доступного для обывателей интернета и до относительно недавнего времени у пользователей было некое самоощущение причастности к своеобразному эксклюзивному неформальному клубу. В целом это можно сказать и о компьютерной технике вообще: практически любой владелец персонального компьютера был если и не экспертом компьютерных технологий, то, по меньшей мере, продвинутым любителем, интересующимся темой.
Сейчас это выросшее с интернетом поколение людей недоумённо пишет: мол, показал подростку как "винду переустановить", а ему не интересно совсем.
Дело, разумеется, не в каком-то падении нравов или массовом оглуплении. Вопреки известным с античности поговоркам, каждое следующее поколение людей, естественно, умнее предыдущего. Дело в более широком распространении технологий, снятии с них интеллектуального ценза, через который могла пройти лишь небольшая доля населения.
Одновременно меняется и формат работы СМИ. Во время последнего "марша на Москву" ночью, прерывая расписание передач, по первому каналу выходит экстренный выпуск новостей. Миллионы людей включают... нет, не телевизор, конечно, что уже показательно, а сайт телекомпании... и что там видят: выступление одного из первых лиц? Зачитывание официального обращения к гражданам? Стереотипную речь с призывом сохранять спокойствие, подготовленную редакцией канала для любых подобных случаев? Нет, видят СКРИНШОТЫ ТЕЛЕГРАМ-КАНАЛОВ и сайтов государственных ведомств!
Ну и всё, официально нет больше телевизора.
Но на самом деле телевизор есть, просто он в интернете: на Пикабу и Реддите, на Хабре и Стэковерфлоу, во Вконтакте и в Фейсбуке. Одновременно в интернете есть и "интернет номер 2", который, думаю, только формируется, вот например в виде (неудобной и изначально технически неполноценной) системы телеграм-каналов (конечно, и сюда "телевизор" тоже добирается). Идёт эпоха фидонета №2, за которой будет свой WWW №2, а потом и Web2.0 №2 (писал на что это, на мой взгляд, может быть похоже, раньше).
Примечательно, кстати, что в этот раз для попадания в "интернет интернета" нужно пройти не только некоторый интеллектуальный ценз, но ещё и определённый культурный: любителей афоризма "в интернете могут и на ... послать" выбрасывает за борт приоритетного доступа к информации гораздо быстрей, чем тех, кто не может "винду переставить"...
#programming #politics
С момента появления доступного для обывателей интернета и до относительно недавнего времени у пользователей было некое самоощущение причастности к своеобразному эксклюзивному неформальному клубу. В целом это можно сказать и о компьютерной технике вообще: практически любой владелец персонального компьютера был если и не экспертом компьютерных технологий, то, по меньшей мере, продвинутым любителем, интересующимся темой.
Сейчас это выросшее с интернетом поколение людей недоумённо пишет: мол, показал подростку как "винду переустановить", а ему не интересно совсем.
Дело, разумеется, не в каком-то падении нравов или массовом оглуплении. Вопреки известным с античности поговоркам, каждое следующее поколение людей, естественно, умнее предыдущего. Дело в более широком распространении технологий, снятии с них интеллектуального ценза, через который могла пройти лишь небольшая доля населения.
Одновременно меняется и формат работы СМИ. Во время последнего "марша на Москву" ночью, прерывая расписание передач, по первому каналу выходит экстренный выпуск новостей. Миллионы людей включают... нет, не телевизор, конечно, что уже показательно, а сайт телекомпании... и что там видят: выступление одного из первых лиц? Зачитывание официального обращения к гражданам? Стереотипную речь с призывом сохранять спокойствие, подготовленную редакцией канала для любых подобных случаев? Нет, видят СКРИНШОТЫ ТЕЛЕГРАМ-КАНАЛОВ и сайтов государственных ведомств!
Ну и всё, официально нет больше телевизора.
Но на самом деле телевизор есть, просто он в интернете: на Пикабу и Реддите, на Хабре и Стэковерфлоу, во Вконтакте и в Фейсбуке. Одновременно в интернете есть и "интернет номер 2", который, думаю, только формируется, вот например в виде (неудобной и изначально технически неполноценной) системы телеграм-каналов (конечно, и сюда "телевизор" тоже добирается). Идёт эпоха фидонета №2, за которой будет свой WWW №2, а потом и Web2.0 №2 (писал на что это, на мой взгляд, может быть похоже, раньше).
Примечательно, кстати, что в этот раз для попадания в "интернет интернета" нужно пройти не только некоторый интеллектуальный ценз, но ещё и определённый культурный: любителей афоризма "в интернете могут и на ... послать" выбрасывает за борт приоритетного доступа к информации гораздо быстрей, чем тех, кто не может "винду переставить"...
#programming #politics
Вкратце о программистах и системных администраторах
Обоих относят к собирательному классу "IT-специалистов", но разница мышления и подходов радикальная.
Хорошему системному администратору важно, чтобы работало, и работало сейчас.
Хорошему программисту важно, чтобы существовало в соответствии с дизайном.
Системный администратор дёргает ручки, крутит вентили, следит за манометрами.
Программист открывает капот, вываливает детали на пол, и рисует между ними стрелки.
Программист лучше вообще не будет делать, чем сделает плохо. Администратор не понимает, что значит "сделать плохо".
Интересно, есть ли какие-то параллели в более общей области знаний, в философии где-нибудь, к примеру?
Современный ИИ, кстати, похоже делали носители "сисадминского" мышления.
Носители "программистского" склада ума попытались что-то изобразить строгое и красивое, разработали Paradox и LISP, SQL и Semantic Web, и т.д. и т.п. Потом пришли "сисадмины" и сказали: ну, чтобы сгенерировать картинку "девочка с персиками", напишите запрос "девочка с персиками, intricate, elegant, highly detailed, lighting, painting, artstation, smooth, illustration, old painting, beautiful oil painting".
Программист ("по складу характера"), конечно, ни написать такого не сможет, ни разработать систему, которая на такой ввод будет реагировать.
Для программиста не существует категории времени (в отношении своей работы). Для сисадмина не существует категории качества (в отношении своей работы).
(С девопсом всё тоже самое: есть девопс-программисты, а есть девопс-сисадмины. Первые не понимают, как можно деплоить что-то "руками вот через консоль, подправив чарт in-place", а вторые "зачем тут нужен код стайл, и так всё работает ведь, я проверил".)
#programming #philosophy
Обоих относят к собирательному классу "IT-специалистов", но разница мышления и подходов радикальная.
Хорошему системному администратору важно, чтобы работало, и работало сейчас.
Хорошему программисту важно, чтобы существовало в соответствии с дизайном.
Системный администратор дёргает ручки, крутит вентили, следит за манометрами.
Программист открывает капот, вываливает детали на пол, и рисует между ними стрелки.
Программист лучше вообще не будет делать, чем сделает плохо. Администратор не понимает, что значит "сделать плохо".
Интересно, есть ли какие-то параллели в более общей области знаний, в философии где-нибудь, к примеру?
Современный ИИ, кстати, похоже делали носители "сисадминского" мышления.
Носители "программистского" склада ума попытались что-то изобразить строгое и красивое, разработали Paradox и LISP, SQL и Semantic Web, и т.д. и т.п. Потом пришли "сисадмины" и сказали: ну, чтобы сгенерировать картинку "девочка с персиками", напишите запрос "девочка с персиками, intricate, elegant, highly detailed, lighting, painting, artstation, smooth, illustration, old painting, beautiful oil painting".
Программист ("по складу характера"), конечно, ни написать такого не сможет, ни разработать систему, которая на такой ввод будет реагировать.
Для программиста не существует категории времени (в отношении своей работы). Для сисадмина не существует категории качества (в отношении своей работы).
(С девопсом всё тоже самое: есть девопс-программисты, а есть девопс-сисадмины. Первые не понимают, как можно деплоить что-то "руками вот через консоль, подправив чарт in-place", а вторые "зачем тут нужен код стайл, и так всё работает ведь, я проверил".)
#programming #philosophy
Ложная квантовая криптоугроза
Forward secrecy ("секретность наперёд"? русского перевода хорошего не придумали) это принцип криптографии, заключающийся в обеспечении надёжности шифрования даже при условии (потенциального) будущего взлома. Речь идёт, фактически, об использовании случайно сгенерированных одноразовых (сессионных) ключей в такой манере, что утечка в будущем участвующих в шифровании мастер-ключей не скомпрометирует эти сессионные ключи – следовательно, не обеспечит доступа к переписке.
Весь современный интернет невозможен без криптографии. Автоматически подразумевается, когда вы видите иконку замочка в адресной строке, что даже если трафик будет перехвачен (что может сделать любой промежуточный узел, начиная от владельца wi-fi сети и заканчивая частными организациями обслуживающими международные узлы обмена; про полицейские службы и не говорю), никто, кроме отправителя и получателя не сможет получить доступ к содержанию.
Звучат опасения из-за развития "квантовых компьютеров": за счёт "физического параллелизма", возникающего при использовании "квантовых битов" (в отличие от "классических") многие алгоритмы дешифровки перебором получают значительно большую теоретическую скорость. На практике прогресс в реализации квантовых вычислений выглядит, похоже, лишь немного лучше прогресса в холодном термоядерном синтезе ("через 10 лет будет мирный термояд", и так 70 лет). Да и фактор этот малозначимый: многие существующие алгоритмы шифрования не имеют уязвимостей к квантовым вычислениям.
Известно, что в стандартных алгоритмах шифрования есть закладки от разработчиков (частных американских фирм, открыто сотрудничающих со спецслужбами), в средствах криптографии возможны специальные и случайные ошибки. Подобные "недокументированные особенности" имеют эшелонированный характер, при этом обеспечивают не столько "взлом в один клик", сколько радикальное (на порядки) сокращение времени перебора ключа.
Для распространённых алгоритмов даются оценки типа "потребуется 300 триллионов (sic) лет, чтобы взломать перебором". Это на одно универсальное ядро. Что, если на специальной карточке ядер 10000? Что, если есть 100 стоек по 10 устройств с такими карточками? Что, если есть 100 этажей таких стоек? Так уже миллиард набежал. Ещё два-три-четыре порядка осталось на бэкдоры (периодически всплывают), и вот, оказывается, цифры получаются вовсе не астрономические.
Тема квантовых вычислений в криптографии маскирует тот факт, что при желании всё взламывается вовсе без кубитов. Причём нужные, по порядку величины, мощности могут быть сконцентрированы не то что даже у одной инфраструктурной компании, а в руках одного частного арендатора, к примеру разработчика диалогового бота.
#programming
Forward secrecy ("секретность наперёд"? русского перевода хорошего не придумали) это принцип криптографии, заключающийся в обеспечении надёжности шифрования даже при условии (потенциального) будущего взлома. Речь идёт, фактически, об использовании случайно сгенерированных одноразовых (сессионных) ключей в такой манере, что утечка в будущем участвующих в шифровании мастер-ключей не скомпрометирует эти сессионные ключи – следовательно, не обеспечит доступа к переписке.
Весь современный интернет невозможен без криптографии. Автоматически подразумевается, когда вы видите иконку замочка в адресной строке, что даже если трафик будет перехвачен (что может сделать любой промежуточный узел, начиная от владельца wi-fi сети и заканчивая частными организациями обслуживающими международные узлы обмена; про полицейские службы и не говорю), никто, кроме отправителя и получателя не сможет получить доступ к содержанию.
Звучат опасения из-за развития "квантовых компьютеров": за счёт "физического параллелизма", возникающего при использовании "квантовых битов" (в отличие от "классических") многие алгоритмы дешифровки перебором получают значительно большую теоретическую скорость. На практике прогресс в реализации квантовых вычислений выглядит, похоже, лишь немного лучше прогресса в холодном термоядерном синтезе ("через 10 лет будет мирный термояд", и так 70 лет). Да и фактор этот малозначимый: многие существующие алгоритмы шифрования не имеют уязвимостей к квантовым вычислениям.
Известно, что в стандартных алгоритмах шифрования есть закладки от разработчиков (частных американских фирм, открыто сотрудничающих со спецслужбами), в средствах криптографии возможны специальные и случайные ошибки. Подобные "недокументированные особенности" имеют эшелонированный характер, при этом обеспечивают не столько "взлом в один клик", сколько радикальное (на порядки) сокращение времени перебора ключа.
Для распространённых алгоритмов даются оценки типа "потребуется 300 триллионов (sic) лет, чтобы взломать перебором". Это на одно универсальное ядро. Что, если на специальной карточке ядер 10000? Что, если есть 100 стоек по 10 устройств с такими карточками? Что, если есть 100 этажей таких стоек? Так уже миллиард набежал. Ещё два-три-четыре порядка осталось на бэкдоры (периодически всплывают), и вот, оказывается, цифры получаются вовсе не астрономические.
Тема квантовых вычислений в криптографии маскирует тот факт, что при желании всё взламывается вовсе без кубитов. Причём нужные, по порядку величины, мощности могут быть сконцентрированы не то что даже у одной инфраструктурной компании, а в руках одного частного арендатора, к примеру разработчика диалогового бота.
#programming
Срок годности криптографии
У современного нотариуса есть услуга "оцифровать бумажный документ" и "распечатать цифровой документ". В первом случае, после обыкновенных проверок подлинности, нотариус создаёт файл со своей электронной подписью. Во втором, сверяя электронную подпись какого-либо нотариуса, воспроизводит её содержание вместе с текстом документа на бумаге, поверх делая собственную удостоверительную надпись.
Возникает соблазн все документы перевести в цифровой вид и затем печатать по мере необходимости. Услуга дорогая, как и любое нотариальное действие, но перевешивает неудобство хранения килограммов первичных документов. Необходимость возникает всё реже: сделки переводятся в цифровой вид, и даже квартиру можно теперь купить в ипотеку без бумажного договора.
Но следует ли торопиться?
Хороший бумажный документ как хорошее вино, с возрастом становится только лучше. Экспертиза может оценить возраст бумаги, исследовать чернила, и в общем привести изрядное количество аргументов в подтверждение его подлинности.
Конечно, в "большой истории" возникают казусы типа "Краледворской рукописи": в 19-м веке "за шкафом на чердаке церкви" нашли древнечешский эпос, который 70 лет пытались прописать в мировой исторический блокчейн, но в итоге свою ноду-валидатор чехам не утвердили, рукопись окончательно объявили подделкой в начале 20-го века. (Понятно, что через 100 лет весь "национальный эпос" Европы будет считаться подделкой 18-го века. А всех других стран – 19-го.)
В частных делах, однако, где нет мешающего химическому анализу политического фактора, возраст документа установить можно вполне точно. (Подобные вопросы, кстати, фоном ставятся, среди прочего, в недавнем рассказе Д.Е. Галковского.)
А как установить возраст цифрового документа?
Во-первых, где электронный документ хранить? Облака становятся платными, закрываются, сбоят. Флешки и SSD-накопители теряют заряд. HDD размагничиваются. Кассетные системы хранения дорогие, неудобные, стандарты слишком часто обновляются. Остаётся, выходит, пытаться среди казалось бы вышедших из употребления BluRay дисков выбирать хорошие бренды специальных архивных болванок и верить на слово, что заявленный срок хранения в 50 лет они выдержат?
Так 50 лет это срок небольшой. Не уберёшь в шкаф "навечно", надо раз в 30 лет доставать и перезаписывать. Желательно в том же шкафу хранить привод. А к приводу компьютер, т.к. для его подключения не будет разъёмов. А к компьютеру сисадмина нанять, который раз в 10 лет будет перезапись делать.
Во-вторых, как подтвердить подлинность цифрового документа?
Экспертизу намагниченности пластин диска проводить вероятно теоретически возможно, но достаточно бессмысленно, получается ещё более неудобная бумага. А экспертиза цифровой подписи ничего не даст. Через 50 лет текущие алгоритмы, как мы обсудили ранее, не будут считаться стойкими. Следовательно, можно будет задним числом производить подделки, неотличимые от подлинников. Следовательно, никакие старые цифровые документы не будут приниматься к рассмотрению.
Так приходим к несколько неожиданной мысли, что блокчейн это не только модное слово, но и имеющая прикладное значение технология.
О чём в другой раз.
#programming #philosophy
У современного нотариуса есть услуга "оцифровать бумажный документ" и "распечатать цифровой документ". В первом случае, после обыкновенных проверок подлинности, нотариус создаёт файл со своей электронной подписью. Во втором, сверяя электронную подпись какого-либо нотариуса, воспроизводит её содержание вместе с текстом документа на бумаге, поверх делая собственную удостоверительную надпись.
Возникает соблазн все документы перевести в цифровой вид и затем печатать по мере необходимости. Услуга дорогая, как и любое нотариальное действие, но перевешивает неудобство хранения килограммов первичных документов. Необходимость возникает всё реже: сделки переводятся в цифровой вид, и даже квартиру можно теперь купить в ипотеку без бумажного договора.
Но следует ли торопиться?
Хороший бумажный документ как хорошее вино, с возрастом становится только лучше. Экспертиза может оценить возраст бумаги, исследовать чернила, и в общем привести изрядное количество аргументов в подтверждение его подлинности.
Конечно, в "большой истории" возникают казусы типа "Краледворской рукописи": в 19-м веке "за шкафом на чердаке церкви" нашли древнечешский эпос, который 70 лет пытались прописать в мировой исторический блокчейн, но в итоге свою ноду-валидатор чехам не утвердили, рукопись окончательно объявили подделкой в начале 20-го века. (Понятно, что через 100 лет весь "национальный эпос" Европы будет считаться подделкой 18-го века. А всех других стран – 19-го.)
В частных делах, однако, где нет мешающего химическому анализу политического фактора, возраст документа установить можно вполне точно. (Подобные вопросы, кстати, фоном ставятся, среди прочего, в недавнем рассказе Д.Е. Галковского.)
А как установить возраст цифрового документа?
Во-первых, где электронный документ хранить? Облака становятся платными, закрываются, сбоят. Флешки и SSD-накопители теряют заряд. HDD размагничиваются. Кассетные системы хранения дорогие, неудобные, стандарты слишком часто обновляются. Остаётся, выходит, пытаться среди казалось бы вышедших из употребления BluRay дисков выбирать хорошие бренды специальных архивных болванок и верить на слово, что заявленный срок хранения в 50 лет они выдержат?
Так 50 лет это срок небольшой. Не уберёшь в шкаф "навечно", надо раз в 30 лет доставать и перезаписывать. Желательно в том же шкафу хранить привод. А к приводу компьютер, т.к. для его подключения не будет разъёмов. А к компьютеру сисадмина нанять, который раз в 10 лет будет перезапись делать.
Во-вторых, как подтвердить подлинность цифрового документа?
Экспертизу намагниченности пластин диска проводить вероятно теоретически возможно, но достаточно бессмысленно, получается ещё более неудобная бумага. А экспертиза цифровой подписи ничего не даст. Через 50 лет текущие алгоритмы, как мы обсудили ранее, не будут считаться стойкими. Следовательно, можно будет задним числом производить подделки, неотличимые от подлинников. Следовательно, никакие старые цифровые документы не будут приниматься к рассмотрению.
Так приходим к несколько неожиданной мысли, что блокчейн это не только модное слово, но и имеющая прикладное значение технология.
О чём в другой раз.
#programming #philosophy
Идеальная сеть для OSI Base Model
Продолжаем прошлую заметку, где вкратце поговорили про модель OSI. Заметка вызвала некоторую полемику среди программистов, так что разовьём мысль дальше.
OSI создавалась как модель, которая позволила бы на уровне основных понятий общаться разработчикам разных глобальных сетей друг с другом (конкретнее, европейцам общаться с американцами). Сначала на уровне понятий, следующим логичным шагом интеграции была бы унификация конкретных протоколов. Делать этот шаг не понадобилось, потому что на фоне многолетних обсуждений в комитетах американский интернет помножил на ноль всех конкурентов (и слава богу, что европейцы бы устроили можно себе представить – например, даже сейчас практически каждый немецкий сайт должен получать торговую лицензию, регистрироваться в налоговой и добавлять плашку с официальной информацией).
Достаточно развитой оказалась, пожалуй, только французская сеть – Минител. Кто пользовался хоть раз телетекстом может неплохо себе представить, на что был похож этот телетекст с элементами интерактива. Появился в 1982 году, окончательно отключен был только в 2012 году, в 2009 всё ещё были "миллионы запросов в месяц" к минителовскому сайту телефонного справочника.
Сеть была организована поверх телефонных линий, администрировалась государственным телеком-оператором.
И вот для неё модель OSI имеет некоторый смысл:
1. Физический уровень - провод к АТС
2. Канальный - модем
3. Сетевой - система роутинга АТС
4. Транспортный - система магистральных линий между серверами сайтов
5. Сессионный - система логической адресации (перевод символьного имени сайта в маршрут)
6. Презентационный - парсинг языка разметки в текст и картинки (и обратно, обработка ввода пользователя)
7. Прикладной - реализация бизнес-сервиса (функции сайта)
Примечательны следующие ключевые аспекты этих первых глобальных сетей:
1. Топология сети статическая, новые узлы (сайты, как я их называю современным языком – конечно, такого термина ещё не было) добавляются в строгую древовидную структуру
2. Сеть имеет национальный размах (OSI задумывалась для интеграции таких национальных сетей)
3. Протоколы "последней мили" и "магистральные протоколы" чётко разделены: разная скорость и принцип модуляции, конечная линия выделенная а магистральная коммутируется, первым пользуется клиент и звонит на АТС, а вторым частные организации связаны друг с другом и с инфраструктурой телекома и пр.
Т.е. по сути это была не глобальная сеть, а большая локальная. А OSI нужна была для объединения национальных локальных сетей в Большую Мировую Локальную Сеть. Глобальную по размаху, но локальную по принципам работы.
Однако количество перешло в качество и возникли неучтённые (или вышедшие из-под контроля разработчиков) свойства глобальных сетей:
1. Динамическая топология, необходимость её рефлексии и автоматизированного расчета маршрутов, что порождает семейство протоколов на разных архитектурных уровнях от ARP до BGP
2. Полная отвязка "содержания" от "расположения" (глобальная логическая схема практически не связана с физической/географической)
3. Унификация и взаимозаменимость протоколов. Один и тот же вид физического соединения и протокола связи вроде ethernet или оптического канала может использоваться как на "последней миле", так и для магистрального соединения. Что важнее, также используется один и тот же стек протоколов "логической" адресации и передачи информации.
4. "Фрактальность" архитектуры, когда отдельно ethernet воплощает чуть ли не все уровни исходной модели, не говоря уже про современные реалии вроде VPN и прочее
Резюмируя: если вы планируете разработку системы интерактивного телетекста, то модель OSI, несомненно, будет полезным подспорьем.
#programming
Продолжаем прошлую заметку, где вкратце поговорили про модель OSI. Заметка вызвала некоторую полемику среди программистов, так что разовьём мысль дальше.
OSI создавалась как модель, которая позволила бы на уровне основных понятий общаться разработчикам разных глобальных сетей друг с другом (конкретнее, европейцам общаться с американцами). Сначала на уровне понятий, следующим логичным шагом интеграции была бы унификация конкретных протоколов. Делать этот шаг не понадобилось, потому что на фоне многолетних обсуждений в комитетах американский интернет помножил на ноль всех конкурентов (и слава богу, что европейцы бы устроили можно себе представить – например, даже сейчас практически каждый немецкий сайт должен получать торговую лицензию, регистрироваться в налоговой и добавлять плашку с официальной информацией).
Достаточно развитой оказалась, пожалуй, только французская сеть – Минител. Кто пользовался хоть раз телетекстом может неплохо себе представить, на что был похож этот телетекст с элементами интерактива. Появился в 1982 году, окончательно отключен был только в 2012 году, в 2009 всё ещё были "миллионы запросов в месяц" к минителовскому сайту телефонного справочника.
Сеть была организована поверх телефонных линий, администрировалась государственным телеком-оператором.
И вот для неё модель OSI имеет некоторый смысл:
1. Физический уровень - провод к АТС
2. Канальный - модем
3. Сетевой - система роутинга АТС
4. Транспортный - система магистральных линий между серверами сайтов
5. Сессионный - система логической адресации (перевод символьного имени сайта в маршрут)
6. Презентационный - парсинг языка разметки в текст и картинки (и обратно, обработка ввода пользователя)
7. Прикладной - реализация бизнес-сервиса (функции сайта)
Примечательны следующие ключевые аспекты этих первых глобальных сетей:
1. Топология сети статическая, новые узлы (сайты, как я их называю современным языком – конечно, такого термина ещё не было) добавляются в строгую древовидную структуру
2. Сеть имеет национальный размах (OSI задумывалась для интеграции таких национальных сетей)
3. Протоколы "последней мили" и "магистральные протоколы" чётко разделены: разная скорость и принцип модуляции, конечная линия выделенная а магистральная коммутируется, первым пользуется клиент и звонит на АТС, а вторым частные организации связаны друг с другом и с инфраструктурой телекома и пр.
Т.е. по сути это была не глобальная сеть, а большая локальная. А OSI нужна была для объединения национальных локальных сетей в Большую Мировую Локальную Сеть. Глобальную по размаху, но локальную по принципам работы.
Однако количество перешло в качество и возникли неучтённые (или вышедшие из-под контроля разработчиков) свойства глобальных сетей:
1. Динамическая топология, необходимость её рефлексии и автоматизированного расчета маршрутов, что порождает семейство протоколов на разных архитектурных уровнях от ARP до BGP
2. Полная отвязка "содержания" от "расположения" (глобальная логическая схема практически не связана с физической/географической)
3. Унификация и взаимозаменимость протоколов. Один и тот же вид физического соединения и протокола связи вроде ethernet или оптического канала может использоваться как на "последней миле", так и для магистрального соединения. Что важнее, также используется один и тот же стек протоколов "логической" адресации и передачи информации.
4. "Фрактальность" архитектуры, когда отдельно ethernet воплощает чуть ли не все уровни исходной модели, не говоря уже про современные реалии вроде VPN и прочее
Резюмируя: если вы планируете разработку системы интерактивного телетекста, то модель OSI, несомненно, будет полезным подспорьем.
#programming
Apple и хеллоуинский брутализм
Apple выпустила короткую презентацию по поводу рутинного выхода очередной серии чипов (M3). Видно, что заготовки были сделаны давно, прогресс идёт по расписанию. Целевой период использования "макбука", учитывая скорость планомерного роста характеристик, примерно 3-5 лет. Думаю, это вдвое больше, чем для аналогичных ноутбуков других производителей. Это плюс.
А минус в самой презентации. Тренд на мрачные декорации, заданный Фейсбуком (обсуждали два года назад), был взят на вооружение и усилен.
Вся презентация проходит на фоне нарочито врезанных фоновых картинок (отслеживание движения камеры не сглаживает, а лишь усиливает искусственность). Персонаж ходит между нарисованной мебели ("вот до чего техника дошла"), но одновременно не дотрагивается до предметов ("а нет, не дошла"), как бы намеренно придавая неловкости всей картинке.
Основной сюжет разворачивается в бетонном бункере "без окон и дверей". В какой-то момент выясняется, что счастливый дом какой-то парочки музыкантов, эпизодически показываемый в ярких оранжевых тонах, стоит посередине всё того же безликого огромного и пустого ангара. Как в суперлаборатории из "Breaking Bad" :)
Понятно, что люди пошутили, хеллоуин, игривая музыка на фоне. Весёлый карнавал в подземном бетонном бункере. Тянет туда людей, что поделать.
Кстати, вот и архитектор Клио в своём последнем посте о том же ведь!
#programming
Apple выпустила короткую презентацию по поводу рутинного выхода очередной серии чипов (M3). Видно, что заготовки были сделаны давно, прогресс идёт по расписанию. Целевой период использования "макбука", учитывая скорость планомерного роста характеристик, примерно 3-5 лет. Думаю, это вдвое больше, чем для аналогичных ноутбуков других производителей. Это плюс.
А минус в самой презентации. Тренд на мрачные декорации, заданный Фейсбуком (обсуждали два года назад), был взят на вооружение и усилен.
Вся презентация проходит на фоне нарочито врезанных фоновых картинок (отслеживание движения камеры не сглаживает, а лишь усиливает искусственность). Персонаж ходит между нарисованной мебели ("вот до чего техника дошла"), но одновременно не дотрагивается до предметов ("а нет, не дошла"), как бы намеренно придавая неловкости всей картинке.
Основной сюжет разворачивается в бетонном бункере "без окон и дверей". В какой-то момент выясняется, что счастливый дом какой-то парочки музыкантов, эпизодически показываемый в ярких оранжевых тонах, стоит посередине всё того же безликого огромного и пустого ангара. Как в суперлаборатории из "Breaking Bad" :)
Понятно, что люди пошутили, хеллоуин, игривая музыка на фоне. Весёлый карнавал в подземном бетонном бункере. Тянет туда людей, что поделать.
Кстати, вот и архитектор Клио в своём последнем посте о том же ведь!
#programming
Как я пользуюсь докером в быту
(Программистская тема, так что всех не интересующихся прошу скиповать.)
Иногда бывает удобно установить что-то не из brew/apt (или аналога), а напрямую из исходников или скачав бинарник. С другой стороны устанавливать все зависимости времени компиляции и времени выполнения в основную систему неудобно, кроме того возможны конфликты между разными версиями библиотек и т.д.
В таких случаях максимально удобно использовать Docker.
Чтобы вручную не вбивать каждый раз кучу параметров docker build/docker run я пришёл к такой схеме:
* В
* В
* Скрипт
* Скрипт
* Скрипт
Директория
Выложил на github: https://github.com/EugZol/docker-run-script
#programming
(Программистская тема, так что всех не интересующихся прошу скиповать.)
Иногда бывает удобно установить что-то не из brew/apt (или аналога), а напрямую из исходников или скачав бинарник. С другой стороны устанавливать все зависимости времени компиляции и времени выполнения в основную систему неудобно, кроме того возможны конфликты между разными версиями библиотек и т.д.
В таких случаях максимально удобно использовать Docker.
Чтобы вручную не вбивать каждый раз кучу параметров docker build/docker run я пришёл к такой схеме:
* В
~/images
пишу dockerfile для образа очередной программы, например youtube-dl.dockerfile
для youtube-dl* В
~/images/docker-compose.yml
добавляю секцию для сборки и теггирования описанного образа* Скрипт
~/images/build-all
делает docker-compose build
, собирая все образы* Скрипт
~/images/wrap-all
для каждого докерфайла создаёт скрипт запуска данного контейнера в ~/bin
, вызывая ~/bin/docker-run-script
* Скрипт
~/bin/docker-run-scripts
вызывает docker run ...
, передавая параметры командной строки и подключая текущую директорию внутрь образаДиректория
~/bin
добавлена в PATH
, в итоге собранными в докере скриптами можно пользоваться как установленными локально (например, запускать youtube-dl-docker
как если бы это был установленный youtube-dl).Выложил на github: https://github.com/EugZol/docker-run-script
#programming
Ведутся бесконечные споры о том, надо ли на собеседовании программистов спрашивать алгоритмы.
Есть более насущный вопрос: владение алфавитом.
Конечно в идеале было бы сделать, как это сейчас модно, чтобы не просто пункты меню в случайном порядке были перечислены, но и чтобы их порядок менялся после каждого клика и при этом в каждом проекте был свой.
Это в полной мере подошло бы ценностям Гитлаба типа "больше дел, меньше анализа" и пр.
О дивный мир UX-дизайна!
#programming
Есть более насущный вопрос: владение алфавитом.
Конечно в идеале было бы сделать, как это сейчас модно, чтобы не просто пункты меню в случайном порядке были перечислены, но и чтобы их порядок менялся после каждого клика и при этом в каждом проекте был свой.
Это в полной мере подошло бы ценностям Гитлаба типа "больше дел, меньше анализа" и пр.
О дивный мир UX-дизайна!
#programming
Вкратце о математиках, информатиках и маркетинге
ChatGPT выпустил новую модель, o1, построенную на принципе рекурсивного порождения текстов: модель буквально ведёт сама с собой "внутренний диалог", "думает вслух", пытаясь в итоге получить рациональное построение.
Как и во все предыдущие разы, достигнутый успех, мягко говоря, ограниченный. Забавная и в чём-то правдоподобная модель мышления способна выдать рассуждение на общие вопросы, но сыпется на самых простых задачках из, к примеру, абстрактной алгебры.
Подобное положение вещей укрепляет уже в общем-то устоявшееся впечатление, что большие лингвистические модели это больше о болтовне на свободные темы, чем о решении реальных задач.
С чем смириться, конечно, невозможно.
Для подтягивания роботам математики необходимо (хоть и недостаточно) набрать "математического материала". Буквально следует иметь некое промежуточное формальное представление, не допускающее лишних вольностей и галлюцинаций, в которое можно конвертировать запрос пользователя (математическую задачу, формулировку теоремы и т.п.), и из которого потом снова перевести результат на естественный язык. (Такую работу ИИ как специфического "универсального переводчика" вкратце обсуждали ранее.)
Как на основе подобного формального представления довести качество работы бота до приемлемого уровня (ведь в аналогичной задаче — написание программного кода — ещё и близко об этом говорить не приходится) как-нибудь в будущем разберутся.
Сейчас — нужен сырой материал для обучения.
В таком контексте второе дыхание получают proof assistants — "помощники в доказательстве", такие как Lean.
И на сцену выходят агрессивные проповедники (см. предыдущий пост-введение) с практически буквально следующими лозунгами: деды приватизировали математику, да и вообще люди совершают ошибки, формализуем все теории в Lean!
Целевая аудитория: пассионарные undergraduate students (бакалавры). Ну оно и понятно по слову "деды" в риторике (сам Кевин практически подросток, до 60 ещё два года).
Работа по рутинной формализации всяких давно известных вещей скучная, тупая, безблагодатная и в целом в контексте обучения отдельно взятого математика неоднозначная. А ведь нельзя же просто взять денег у Microsoft на честное развитие проекта, нацеленного на совершенствование ИИ... а кстати, почему нельзя?
Агрессивная риторика, впрочем, неизбежно порождает агрессивных фанбоев. Ну знаете, есть пользователи Apple и есть
По неофициальному мнению некоторых профессионалов в области систем формальных доказательств из числа наших подписчиков, началась вся текущая волна беззастенчивой рекламы с того, что... американцам в более зрелых проектах-аналогах не понравилось название... потому что Coq оно по произношению означает... ну, вы знаете, то самое. Не захотели переименовываться по-хорошему, сейчас значит организуем переезд по-плохому! :)
#mathematics #programming
ChatGPT выпустил новую модель, o1, построенную на принципе рекурсивного порождения текстов: модель буквально ведёт сама с собой "внутренний диалог", "думает вслух", пытаясь в итоге получить рациональное построение.
Как и во все предыдущие разы, достигнутый успех, мягко говоря, ограниченный. Забавная и в чём-то правдоподобная модель мышления способна выдать рассуждение на общие вопросы, но сыпется на самых простых задачках из, к примеру, абстрактной алгебры.
Подобное положение вещей укрепляет уже в общем-то устоявшееся впечатление, что большие лингвистические модели это больше о болтовне на свободные темы, чем о решении реальных задач.
С чем смириться, конечно, невозможно.
Для подтягивания роботам математики необходимо (хоть и недостаточно) набрать "математического материала". Буквально следует иметь некое промежуточное формальное представление, не допускающее лишних вольностей и галлюцинаций, в которое можно конвертировать запрос пользователя (математическую задачу, формулировку теоремы и т.п.), и из которого потом снова перевести результат на естественный язык. (Такую работу ИИ как специфического "универсального переводчика" вкратце обсуждали ранее.)
Как на основе подобного формального представления довести качество работы бота до приемлемого уровня (ведь в аналогичной задаче — написание программного кода — ещё и близко об этом говорить не приходится) как-нибудь в будущем разберутся.
Сейчас — нужен сырой материал для обучения.
В таком контексте второе дыхание получают proof assistants — "помощники в доказательстве", такие как Lean.
И на сцену выходят агрессивные проповедники (см. предыдущий пост-введение) с практически буквально следующими лозунгами: деды приватизировали математику, да и вообще люди совершают ошибки, формализуем все теории в Lean!
Целевая аудитория: пассионарные undergraduate students (бакалавры). Ну оно и понятно по слову "деды" в риторике (сам Кевин практически подросток, до 60 ещё два года).
Работа по рутинной формализации всяких давно известных вещей скучная, тупая, безблагодатная и в целом в контексте обучения отдельно взятого математика неоднозначная. А ведь нельзя же просто взять денег у Microsoft на честное развитие проекта, нацеленного на совершенствование ИИ... а кстати, почему нельзя?
Агрессивная риторика, впрочем, неизбежно порождает агрессивных фанбоев. Ну знаете, есть пользователи Apple и есть
пользователи Apple
. В таком же смысле есть пользователи Lean и есть пользователи Lean
:)По неофициальному мнению некоторых профессионалов в области систем формальных доказательств из числа наших подписчиков, началась вся текущая волна беззастенчивой рекламы с того, что... американцам в более зрелых проектах-аналогах не понравилось название... потому что Coq оно по произношению означает... ну, вы знаете, то самое. Не захотели переименовываться по-хорошему, сейчас значит организуем переезд по-плохому! :)
#mathematics #programming