thedeemon: (Default)
У меня теперь английская жена. И дети. Да и сам я. :)



Интересный момент: британское гражданство это такая MLM-схема, ну или частный клуб, как посмотреть. Чтобы доказать, что он достойный приличный человек ("of good character"), каждый кандидат должен предоставить двух человек, которые тут его знают не меньше трех лет, имеют приличные профессии и должности (из официального списка на gov.uk), и хотя бы один из них должен быть гражданином. И каждый референт должен предоставить свои персональные данные, включая адреса проживания за последние 3 года, и подписать бумагу, где подтверждает свое знакомство. Причем если подаешь всей семьей, то эти референты должны быть все разные, нам на четверых нужно было восемь человек найти - детям нужно тоже. Благо, учителя годятся для такой роли и охотно соглашаются помочь. Мне как асоциальному интроверту эта часть казалась самой пугающей, но в итоге ничего, набрали даже с запасом. И из 8 человек лишь один оказался не гражданином - мой начальник, француз, живущий тут с 90-х годов.

А так весь путь включал в себя экзамен по английскому для меня (еще до первого приезда, когда рабочую визу получал), экзамен по английскому для жены (когда рабочая виза истекла и мы делали ВНЖ), очень забавный тест "Life in the UK" для нас обоих (тоже перед получением ВНЖ), ну и кучу всяких анкет, сканов документов, денег и терпеливого ожидания. К счастью, никаких проблем и отказов ни на одном этапе не было.

При подаче на гражданство нужно указать даты всех поездок за пределы UK за последние пять лет (там есть определенные лимиты на то, как много можно отсутствовать, иначе не дадут). Но оказалось, спасибо ковидным локдаунам, быстро текущему времени и общей занятости, что мы всего-то дважды выезжали, из пяти лет только три недели провели не тут.
thedeemon: (Default)
Наслушавшись похвал в адрес оконного менеджера Niri, пару недель назад решился его поставить, консультируясь у ИИ по всем возникающим вопросам. Эта штука управляет окнами, по умолчанию растягивая их по вертикали на весь экран, а по горизонтали - на сколько-то (у меня по умолчанию 50%, с возможнстью переключиться на 100% или 1/3 или 2/3), и при создании новых окон старые не меняют размера, а все выстраиваются в горизонтальный ряд, который обычно шире экрана, и по нему можно скроллить. И таких горизонтальных рядов можно иметь сколько угодно, перемещаясь так в 2D по виртуальному пространству из окон. Управление с клавиатуры очень простое, быстро привыкаешь.

Первое впечатление сразу после установки самое яркое, конечно: серый экран и только памятка про горячие клавиши, которыми можно управлять окошками (но ни одного окна еще не создано), и пара кнопок чтобы запустить шелл alacritty (который у меня не был установлен) и какой-то лончер, которого у меня тоже не было. В итоге ничего запустить вообще было нельзя, только выйти вон можно. Но ничего, поставил какой-то лончер wofi (список программ с поиском для запуска оных), настроил запуск нужного шелла (Warp сначала не хотел работать, но заработал после установки xwayland-satellite), и для всяких удобств и красот я поставил шелл Noctalia, рисующий наверху бар со всякой информацией и менюшками управления тем и сем, и он же за обои отвечает. Получилось весьма приятно:



Еще поначалу оказалось, что не могу на русский переключиться. Оказалось, включается изменением одной строки в файле настроек Niri. Причем закомментированный образец там как раз про русскую раскладку. Потому что автор Niri - некий Иван Молодецких, похоже с моего факультета в МГУ, и участвующий в той же лаборатории машграфики, где я сам был 20 лет назад.

В редакторе Zed, как и в терминале, настроил немножко прозрачности, мне нравится как зелень с фона слегка проступает, так оно приятнее чем на однородную стену пялиться. Так и живу теперь, очень доволен.



Кстати про Zed. Оформил подписку, чтобы разные AI агенты через него использовать. Он там в биллинге показывает, сколько каких токенов потрачено, и порой довольно неожиданные цифры получаются. Например, вот был у меня с GPT-5.2 один диалог, где он работал с одним единственным исходным файлом парсера на 25KB (~3600 "слов" согласно wc), он там не с первого раза нужный результат получил, итерации три ушло, в сумме несколько строк поменялись. При этом контекст был заполнен на 100к токенов, а в биллинге возникли 250к Input Tokens и аж 1.3 миллиона Input Cache Read Tokens. Откуда? Такое ощущение, что он там еще по интернету ходит читает всякую документацию и код, пока над задачей думает. Или это что-то другое, кто знает что за кэш там?



А еще там однажды Gemini ***нулся на отличненько, впав в бесконечный цикл. Весело.

z

Dec. 13th, 2025 01:40 pm
thedeemon: (Default)
Из относительно недавних находок и новых привычек, заметно улучшивших ежедневный опыт использования шелла. Программка zoxide добавляет в шелл однобуквенную команду z, заменяющую cd, она запоминает посещаемые папки, и потом в них можно перемещаться, указав только название самой папки, а не выписывать полный абсолютный или относительный путь. Когда есть несколько проектов или мест, где что-то делаешь, потом пишешь просто "z foo" или "z bar" где бы ты ни был, и тебя понимают с полуслова, целиком путь к ним помнить не нужно. А с учетом автодополнения в zsh чаще получается просто "z f<RIGHT ARROW><ENTER>" или "z b<RIGHT ARROW><ENTER>", даже и имя проекта целиком писать не надо. Супер удобно. И да, "z -" возвращает в предыдущую локацию, а "z" - домой.

А, и в рифму, чтоб два раза не вставать. Оказывается, в редактор Zed завезли Helix mode, и в последней версии им уже можно пользоваться. Я раньше для разных проектов использовал то vscode, то Helix. Один хорош для навигации и поиска по большому проекту, второй хорош для непосредственно работы с исходным текстом. Когда-то давно смотрел на Zed, и тогда он был еще молод и проигрывал по обоим применениям. А сейчас развился, оброс темами и расширениями, vim mode и helix mode, и стал объединять в себе хорошие стороны и vscode и Helix. Пусть не идеально, но уже кажется юзабельно. Плюс там есть поддержка ИИ помощников от разных поставщиков - claude, grok, chatgpt, gemini... Я раньше их почти не использовал, в том числе потому что в Helix'e их не было и не ожидается. А тут есть все и сразу. В общем, пробую теперь Zed в качестве основного редактора, посмотрю что получится из этого.
thedeemon: (Default)
Заметил, что уже два года использую компьютер не так, как делал это предыдущие лет 30. А именно, стал использовать auto tiling, когда окна на экране не заслоняют друг друга, а автоматически делят меж собой все пространство экрана. Несколько (переменное количество) виртуальных экранов, меж которыми легко переключаться с клавиатуры. На каждом экране если одно окно - оно занимает его целиком. Если два - делят пополам. Три - 0.5/0.25/0.25, Четыре - опять поровну, и так далее, хотя на практике никакого далее не случается, больше 3-4 окон на одном экране не держу. Ближе к углу экрана, в системной шапке, показана карта рабочих столов и окон на них, например, такая:



Когда к такому режиму привыкаешь (а это довольно быстро происходит), то потом самое интересное случается, когда вдруг оказываешься на системе с традиционными окошками произвольных размеров. Обнаруживаешь, как много ментальных усилий / времени / энергии уходит там на то, чтобы окошки ресайзить, двигать, переключаться. Раньше этого не замечал, а теперь замечаешь. И понимаешь, насколько жизнь проще, когда этого самому делать больше не надо.

Среди нердов-линуксоидов популярны tiling window managers, коих сейчас целая куча (i3, bspwm, sway, awesomewm, xmonad, hyprland, mangowc и пр.), но они обычно выглядят страшно и требуют массу времени на настройку и освоение. У меня же прижился вариант попроще - обычный GNOME (который мне нравится как выглядит) с расширением Forge, которое и делает автотайлинг. Как обычно в tiling WMs, активное окно выделяется цветной рамкой, перемещать фокус между окнами на экране, менять их местами и пр. можно с клавиатуры простыми сочетаниями клавиш, а можно мышкой. В какой-то момент поставил себе его в качестве эксперимента, да вот уже два года так и живу, и на что-то другое менять пока не собираюсь.
thedeemon: (Default)
Про Gullstrand–Painlevé coordinates - систему координат с интересными свойствами для описания решения Шварцшильда для простой статичной черной дыры - я слышал давно. Но только на днях узнал, что Painlevé ее открыл, будучи в промежутке между двумя своими сроками на посту премьер-министра Франции. "Эх, мы о таких премьерах можем только мечтать!" - говорят английские профессора Brian Cox и Jeff Forshaw в своей книжке Black Holes.
thedeemon: (Default)
Интересный момент в корейском языке: там есть чудесный глагол, означающий "дела обстоят таким образом", в инфинитиве это 그렇다 (кырота) - "to be so", "to be that way", где первый слог 그 (кы) значит "вот то", "that".

Много союзных наречий построены на базе этого глагола. Союзы в корейском не стоят отдельными словами, а прикрепляются в конец глаголов, становясь союзными окончаниями. Если союз соединяет два предложения со своими глаголами в одно сложносочиненное, он прикрепляется в конец глагола первого предложения. Но в разговорной речи часто предложения короче, и нужно начать новое предложение с союза, ссылающегося на вышесказанное. Тогда соответствующее окончание прикрепляют к этому глаголу "такие дела", и получаются

그래서 (кыресо) - “So / therefore” - "поэтому / следовательно"
그러니까 (кыроника) - “So / that’s why / I mean” - "из-за этого"
그러면 (кыромён) - “Then / in that case” - "если так"
그리고 (кыриго) - “And / and then” - "и / и потом / а также"
그러나 (кырона), 그렇지만 (кырочиман) - “However / but / still” - "однако / тем не менее"
그런데 (кырондэ) “But / by the way” - "но / однако"
и просто фразы
그래 (кырэ) или 그래요 (кырэё) - "ок, да, это так". Дословно "дела так обстоят".

(и да, в японском есть прямой аналог: それ "сорэ", где そ "со" тоже значит "that", и там получаются слова それで, それなら, それに, それでも, それだから и др.)

В фильмах и сериалах эти все слова очень часто звучат.
Недавно я досмотрел сериал, который на нетфликсе называется Crash Landing on You (в оригинале 사랑의 불시착 - Love's forced landing). Там первая половина происходит в Северной Корее, а во второй половине несколько северных корейцев оказываются в Южной. И я заметил, что северные корейцы там говорят не так, как южные, даже когда слова все те же самые используют. Первое, что замечаешь, это что во всех этих словах вместо "кырэ" у них звучит "кирэ", и в других местах часто "ы" заменяется на "и". Получается, северные корейцы и́кают. Во всяком случае, в этом сериале.

Сериал довольно забавный, особого реализма там ждать не стоит, это скорее такая умилительная сказка с массой позитивных эмоций. Оказывается, в Южной Корее с 1948 года есть закон, запрещающий публичное восхваление Северной Кореи, и создатели сериала очень старались его не нарушить, даже значки на одежде северных корейцев сделали размером поменьше, чем реальные. Однако даже при всех их стараниях все равно Северная Корея там выглядит на удивление опрятно и приятно. Пусть бедно и просто, но все равно какой-то лоск заметен. То ли она правда такая опрятная, то ли южнокорейские киношники просто не способны нужную разруху представить и воспроизвести. А некоторые культурные и визуальные моменты смотрятся очень знакомо для советского человека. Например, когда герой берет у отца-генерала машину со специальными номерами, по которым все местные гаишники понимают, что ее не стоит останавливать, и регулировщики (которые там до сих пор активно работают вместо светофоров) ее везде пропускают.
thedeemon: (Default)
Я очень редко играю в игры, но в этом месяце неожиданно увлекся одной, да так сильно, что потратил там часов 60 пока не дошел до финальных титров. Это Watch Dogs Legion, игра вышла лет 5 назад, и как будто никто о ней ничего хорошего не слышал, вы будете первые. Я помню, несколько лет назал когда услышал какие-то анонсы про нее, подумал "о, это как GTA только в Лондоне, интересно". Потом года 3 назад подписался на сервис игр в облаках GeForce Now, поставил ее там, часик покатался по городу, да забросил. В тот момент как-то не до нее было, и лень было вникать. По сюжету там действие происходит в недалеком будущем в антиутопическом Лондоне, где после серии терактов частная военная компания взялась за обеспечение безопасности, но разумеется переусердствовала, поэтому город заполнен ее солдатами, которые всех обижают, повсюду ее логотипы, дроны, тотальная слежка и т.п. В реальности мы до такого пока не дожили, но если полистать твиттер, то может сложиться ощущение, что уже к тому близко. :) В общем, спустя годы я вдруг решил еще раз попробовать в нее поиграть, и в этот раз сильно протащился.



В первую очередь конечно тем, как здорово там воспроизвели центральную часть Лондона, насколько он узнаваем (ниже скриншотов добавил). Я за годы с начала ковидных времен исходил пешком этот город вдоль и поперек, по крайней мере западную его половину и центр, и радость узнавания реальных улиц и зданий меня в игре ждала на каждом углу практически. Разумеется, почти все самые знаменитые места тут стали вместилищами для миссий, поэтому по мере прохождения побываешь внутри и замка Tower, и моста Tower Bridge, небоскребов The Shard и walkie talkie, наведешь шухер в зданиях MI6 и New Scotland Yard, на территории Buckingham Palace и под ней, внутри телевышки BT tower, внутри и под Battersea power station (из которой сейчас торговый центр сделан кстати, в реальности и в игре), внутри башни с Big Ben и т.д. Пара миссий проходят буквально через дорогу от моего офиса. :) Они не стали копировать все улицы один в один, а сжали все, убрав неважные улочки и оставив важные, но в целом география вполне узнаваемая, поэтому ориентироваться довольно легко.

Read more... )
thedeemon: (Default)
Сыну на лето в школе дали список книг почитать, среди них Six Easy Pieces Фейнмана, где он рассказывает про двухщелевой эксперимент с электронами, дескать если их запускать через забор с двумя дырками и ловить на экране дальше, то каждый конкретный электрон попадет в какую-то случайную точку, а распределение этих точек будет выглядеть как результат интерференции волн. Он много говорит "в эксперименте видим то", "в эксперименте видим сё", но перед этим предупреждает, что вообще-то именно в таком виде эксперимент не делали, и описываемый эксперимент только мысленный. Впрочем, говорит, было много других экспериментов, где подобное квантовое поведение наблюдали.

А недавно я услышал в одном подкасте с Jacob Barandes один интересный момент: он говорит, что если мы захотим посчитать, какое именно должно получиться распределение попадания частиц на экране, казалось бы тривиальнейшая задачка в КМ, то мы до сих пор не знаем как это правильно сделать. Казалось бы, вот начальное значение волновой функции, вот мы ее по уравнению Шредингера эволюционируем во времени, и вот она приходит на экран, и мы там можем взять квадрат модуля ВФ и из него получить распределение вероятностей попадания в разные места. Но! Мы же это делаем, взяв значение ВФ в какой-то момент. А в какой? Когда именно электрон прилетит на экран? Этого мы не знаем. В каждый момент времени он потенциально может быть найден где угодно, ВФ нам говорит вероятности его нахождения в разных местах. Если мы зафиксируем момент и произведем "измерение" координаты, получим какую-то точку. А в какой момент это делать? В каждый конкретный момент частица скорее будет где-то еще, а не на экране. Вот простой пример:



Тут яркость обозначает амплитуду волновой функции, а цвет - комплексную фазу. Исходно частица локализована в небольшое круглое облачко (гауссиан) и в комплексной плоскости ее ВФ закручена так, чтобы иметь испульс для движения вправо. По мере эволюции облачко расплывается в пространстве и сначала в целом движется вправо, встречает представленную потенциальным барьером стенку с двумя щелями, частично проходит через них (а большей частью отражается от стенки), там дальше корридор (я добавил сверху и снизу стенки, чтобы отражения интереснее давали картинку) и в конце стоит голубой экран, на котором мы как бы частицу ловим. Справа от экрана я показываю яркостью квадрат модуля ВФ на самом экране в каждый момент, отнормированный. Видно, что в разные моменты там несколько разные картинки. Можем ли мы какую-то одну из них считать предсказанием? Вряд ли. Можем ли как-то суммировать и усреднять? Тоже непонятно, мы не знаем с какими весами суммировать, каково распределение по времени событий прилета частицы. Оператора времени в КМ нет, время - не observable величина. И если в какой-то момент частица прилетает, то ВФ схлопывается, дальше эволюционировать старую ВФ уже нельзя, поэтому как и что тут суммировать - неочевидно.

Такой вот простой вопрос неожиданно оказался сложным, по крайней мере я не в курсе как его принято решать, а Jacob говорит, что по-хорошему и никто не в курсе.

Исходники симуляции, если что, здесь.
thedeemon: (Default)
Многие читали или слышали про излучение Хокинга, где якобы пары виртуальных частиц разделяются у горизонта, одна из которых улетает и становится тем излучением. Но немногие в курсе, насколько это история обмана, насколько далека эта сказка от того механизма, что Хокинг реально описал в своих работах.

Из старого поста Сабины Хоссенфельдер на эту тему:

One of the particles gets caught behind the horizon and falls in, the other escapes. The result is a steady emission of particles from the black hole horizon. It’s simple, it’s intuitive, and it’s wrong.

Hawking’s is an illustrative picture, but nothing more than that. In reality – you will not be surprised to hear – the situation is more complicated.
...
This simple image that Hawking provided for the non-specialist is not backed up by the mathematics. It contains an element of the truth, but take it too seriously and it becomes highly misleading.


Скопирую сюда, что недавно писал на одном форуме:

В 1974 году Хокинг выпускает сначала короткую заметку на пару страниц, а затем в 1975 более длинную и подробную статью, где описывает рождение частиц в результате образования черной дыры. Реально описанный им механизм звучит примерно так. Берем простейшее скалярное эрмитово поле и сначала смотрим на него в плоском пространстве, где никакой ЧД еще нет. Его можно разложить через Фурье "по частотам", как сумму простых волн, и исходно в разложении там будут положительные и отрицательные частоты во времени. Частота во времени определяет энергию, частиц с отрицательной энергией не бывает, и при переходе к квантовому полю и операторам, положительным и отрицательным модам соответствуют операторы уничтожения и создания частиц положительной энергии.
Вакуумное состояние по определению не содержит реальных частиц, и значит для каждой моды воздействие оператора уничтожения частицы на него дает ноль.

Дальше у нас образуется черная дыра, пространство искривляется, появляется горизонт событий, и в этой новой геометрии базис, по которому мы раскладываем поля, изменяется, это больше не старые простые волны в плоском пространстве, а новый набор базовых решений, с учетом наличия горизонта событий. Преобразование Боголюбова позволяет перейти от старого базиса к новому, выразить новые базисные моды через линейную комбинацию старых и наоборот. И тут можно заметить, что квантовое состояние, которое было вакуумом в старом базисе, в новом базисе уже вакуумом не является: для каждой моды можно посчитать матожидание количества таких частиц в этом состоянии, и оно выражается через коэффициенты пребразования между старым и новым базисом, и оказывается ненулевым. Т.е. если изначально в плоском пространстве у нас был вакуум, то это самое состояние в новом базисе новой геометрии уже содержит реальные частицы, это больше не вакуум. Эти реальные частицы и есть излучение Хокинга. Ни слова о виртуальных частицах.

Дальше идет зубодробительная математика, показывающая нелокализуемый поток негативной энергии через горизонт, от которого ЧД должна худеть.

Тут Хокинг понимает, что это все слишком абстрактно и неинтуитивно, и хорошо бы придумать какую-то операционную картину, что-то более понятное и ощутимое, и выдает в порядке бреда что-то про виртуальные частицы отрицательной энергии, которых вообще вроде как не бывает, но они могут туннелировать через горизонт внутрь ЧД, где время в метрике имеет другой знак, а потому снаружи кажется, что там у них положительная частота и энергия, так эти небывалые частицы своим туннелированием несут снаружи поток негативной энергии. Но добавляет "It should be emphasized that these pictures of the mechanism responsible for the thermal emission and area decrease are heuristic only and should not be taken too literally."

В конце 80-х он выпускает книжку для широкой публики, которую нельзя пугать сложными словами про базисы операторов квантовых полей, и там он выдает еще более примитивную картинку про пары вирт. частиц, еще более далекую от реального механизма из своих работ. Именно эту сказку все запоминают и с тех пор считают описанием излучения Хокинга, хотя и каждый раз удивляются массе несуразностей в ней (что за негативные частицы там и почему именно они падают в ЧД, а не другие).
thedeemon: (Default)
Вдохновившись одной недавней беседой, сделал вчера симуляцию, как свет от одного события (вроде вспышки сверхновой) идет мимо черной дыры и приходит в некоторые места 2-3 раза - разными путями и в разное время. 2Д пространство + время, метрика Шварцшильда. Получились довольно забавные мультики. Видно, как при приближении к массивному телу свет "притормаживает" с т.з. далекого наблюдателя. Shapiro delay вроде как и у Солнца наблюдали - мимо него радиосигналы от космических аппаратов дольше шли.



То же, но в одной картинке. Одинаковый цвет = одинаковое время (coordinate time):


А вот ЧД побольше. Помимо горизонта событий я рисую еще фотонную сферу - по которой теоретически свет может вечно круги наматывать. Если он извне ее пересечет, то непременно упадет на горизонт. А если мимо пролетит, то завернет и даже покружиться вокруг может, но потом все же улетит прочь. Тут это видно как раз:


Исходники: https://gist.github.com/thedeemon/76050df87070fbb51a2ea8ea52fce4c7

1880

Apr. 5th, 2025 03:25 pm
thedeemon: (Default)
Я в детстве классики мало читал, а что читал, то забыл, сейчас частично компенсирую. Недавно добрался до "Братьев Карамазовых" Достоевского. Два неожиданных момента: книга писалась в 1878—1880 годах, когда Эйнштейн только рождался, но уже тогда рядовые люди знали, что свет от Солнца 8 с лишним минут к нам идет, и про неевклидову геометрию Федор Михалыч уже в курсе был. Один из героев говорит:

"Между тем находились и находятся даже и теперь геометры и философы, и даже из замечательнейших, которые сомневаются в том, чтобы вся вселенная или, еще обширнее – все бытие было создано лишь по эвклидовой геометрии, осмеливаются даже мечтать, что две параллельные линии, которые, по Эвклиду, ни за что не могут сойтись на земле, может быть, и сошлись бы где-нибудь в бесконечности. Я, голубчик, решил так, что если я даже этого не могу понять, то где ж мне про Бога понять."

Примечательно, что молодому герою романа хватило мудрости принять и смириться со своим непониманием, а сейчас иные условные retired engineers, не знакомые даже с базовыми идеями и понятиями, продолжают приходить в комментарии и бороться с "неправильной математикой".
thedeemon: (Default)
Мне тут недавно показали одну занятную штуку на тему "квантовой псевдотелепатии", я стал смотреть как оно устроено, и некоторые детали оказались даже неожиданнее и интереснее, чем основной результат.

Вариант игры с двумя игроками звучит так. Есть ведущий и два игрока: Алиса и Боб, разумеется. Есть доска как для крестиков-ноликов, 3х3. Ведущий выбирает наугад строку и столбец, и просит Алису заполнить строку, а Боба - заполнить столбец. Заполнять они должны какими-то значениями 1 или -1, но так, чтобы произведение значений в строке Алисы получалось 1, а произведение значений в столбце Боба - -1. Игроки изолированы друг от друга, общаются только с ведущим и не знают, какой вопрос другой игрок получил и что он ответил. Если на пересечении строки Алисы и столбца Боба оба поставили одинаковое значение, они выиграли. Если значения не совпали, то они проиграли. В одном раунде игры каждый игрок получает лишь один вопрос (с номером строки/столбца) и дает один ответ (3 бита). Всю доску заполнять не нужно, только одну строку и один столбец. Спрашивается, как бы Алисе и Бобу выигрывать почаще?



Отвечать рандомно им не слишком выгодно, лучше заранее выбрать стратегию, можно составить шпаргалку с ответами. У Алисы в шпаргалке в каждой строке произведение чисел равно 1, а потому произведение всех 9 чисел тоже 1. Но у Боба в каждом столбце должно быть произведение -1, поэтому произведение всех 9 чисел у Боба должно быть -1. Нет такой таблицы 3х3, которая бы подходила обоим игрокам, но некоторые подходящие Алисе таблицы совпадают с некоторыми подходящими Бобу в 8 ячейках из 9. Используя такие шпаргалки, игроки могут выигрывать в среднем в 8 играх из 9.

А вот если у них будет по паре запутанных нужным образом кубитов, то теоретически они смогут выиграть в 100% случаев! Лет 30 назад Мермин и Перес описали теорию как это сделать, а пару лет назад китайские экспериментаторы смогли это воплотить на практике. Из-за неидеальности оборудования они выиграли не в 100, а в 93.84% случаев, но это все равно намного больше классического предела в 88.89%.
Read more... )
thedeemon: (Default)
Осенью и весной есть периоды, когда по утрам солнце за моими окнами моргает каждые две минуты или даже чаще. Это по моему дому проносятся тени от самолетов, летящих в Хитроу. Сегодня же утром к этому еще добавилось частичное солнечное затмение. Из фототехники для астрономических наблюдений у меня лишь телефон, но и им удалось снять что-то интересное. Если просто солнце фоткать, то мало что заметно, но вот блики на линзе хорошо выдают форму покусанного луной солнечного диска. Еще эту форму удалось заметить, снимая через фильтр из двух поляризационных очков. А еще когда самолет на фоне солнца пролетает, в блике можно заметить его крыло.


Read more... )
thedeemon: (Default)
Столкнувшись недавно с лимитом запросов к AI в Warp'e, заинтересовался наконец что можно локально у себя запустить, на машине без мощного GPU. И оказалось вовремя, китайцы тут удружили недавно. Теперь есть модели, которые довольно шустро работают на CPU, безо всяких видеокарт. Рецепт такой:
1) ставим программу ollama.
2) в одном табе терминала пишем "ollama serve".
3) в другом табе пишем "ollama run deepseek-coder-v2:16b".

При первом запуске она скачает несколько гигов модели, потом будет запускаться за считанные секунды. Ест до 9 гигов RAM, когда думает. После запуска пишем там вместо промпта сперва "/set parameter num_thread 10" (по умолчанию она использует половину логических ядер, у меня их всего 12, потому 10 отдать ей на размышления - получается неплохо). И потом можно задавать всякие вопросы по программированию и администрированию. Результат не идеальный, конечно, но весьма впечатляет для штуки, работающей локально, без интернета и чужих кластеров.
thedeemon: (Default)
Чё-то потянуло меня на прошлой неделе опять посмотреть на язык Swift и попробовать на нем пописать. Меня интересовало каково это жить, когда всякие массивы и прочие структуры данных это value типы с copy-on-write. Но обнаружил, что сам язык сейчас выглядит весьма симпатично по своему набору фич: тут тебе и обычные классы и структуры, и алгебраические типы с паттерн матчингом, и multiparameter type classes, и всякие мелкие удобства. Думал, что бы такое написать, вспомнил, что давно хотел реализовать Byte Pair Encoding и натравить на enwik8 (100 MB старого дампа английской википедии). Написал. Потом думаю: а интересно сравнить насколько этот Свифт тормозной по сравнению с другими языками. Правда, программа тут получилась такая, где его потенциальные проблемы с подсчетом ссылок и реализацией генериков себя не проявляют, а все упирается в скорость хэш-таблиц и optional/nullable типов. Взял Claude.ai и напильник, и напилил переводы одной и той же программы на восьми языках. И получилось местами довольно любопытно, особенно неожиданно то, что Свифт всех обогнал. Я обычно на JVM-targeted языках не пишу, и допускаю, что что-то или все сделал или запускал неправильно, хотя вроде бы перевод получился довольно прямой, и что в нем не так - неясно. Но в итоге Скала на JVM это какой-то позор. Что Свифт и Раст делают за минуту, то Скала делает за 15. В пять раз медленнее Котлина на той же самой JVM! Который вдвое медленнее чем C#, съедая в 15-30 раз больше памяти. Можно, конечно, меньше памяти им давать, так тоже работает, но дольше. С++ тут проиграл многим языкам, ибо стандартные его хэш таблицы совершенно позорные, это давно известно. А заменять кастомными я не стал, везде брал что есть из коробки.

Табличка результатов на файле в 1 МБ:
| Language      | Time, s    | Max Memory, MB |
| ------------- | ---------- | -------------- | 
| Swift         |  57        |   33           |
| Rust          |  59        |   20           |
| C#            |  73        |   75           |
| D             | 132        |   55           |
| Kotlin*       | 162        | 2057           | 
| Go            | 178        |   35           |
| Kotlin        | 201        | 1070           |
| Java          | 262        |  725           |
| C++           | 270        |   27           |
| OCaml         | 600        |   90           |
| Scala         | 941        |  977           |

(Kotlin* - это тот же jar файл, но запущенный с другими параметрами JVM)

Исходники и ключи сборки тут: https://github.com/thedeemon/bpe-comparison/

Warp

May. 13th, 2024 01:29 pm
thedeemon: (Default)
Когда-то давно слышал что-то про терминал Warp, но раньше он только на маках работал, а вот в феврале этого года вышел и для линукса, произведя некоторый шум (в основном возмущение тем, что посмел вести себя как продукт и предлагать при первом запуске куда-то регистрироваться и логиниться). Любопытства ради, поставил я себе его посмотреть-поиграться. И, неожиданно, так мне погравилась эта игрушка, что теперь только им и пользуюсь.

Во-первых, это красиво:


Во-вторых, он отошел от стандартного подхода "матрица текста" и пользуется тем, что это окно GUI, которым можно распоряжаться с большей фантазией, например показывать текущую выполняемую команду сверху, и вообще последовательность команд и их вывода отображать больше как ноутбук а-ля Jupyter, а какие-то вещи можно нарисовать и поверх, в виде попапов, например историю прошлых команд при наборе новой:


При хождении по истории можно еще рядом показывать подробности последнего вызова данного элемента истории:


Но одна из главных фишек, как и положено в эти дни, это встроенный AI: вместо шелловской команды можно нажать # и дальше писать по-английски чего хочется сделать, а он показывает попапами варианты того, как он это понял, и какой шелловской командой это делается.





В некоторых примерах команд будут плейсхолдеры, куда предлагается подставить значение, например имя файла. При выборе варианта с ними, он подробнее показывает и рассказывает их значение, что туда нужно писать.



Выбор предлагаемой ИИ команды не приводит сразу к ее вызову, она вставляется в основное поле ввода, и ее еще можно отредактировать прежде чем запускать. Я пока совсем мало этой функцией пользовался, но иногда, когда что-то редкое делаешь и не знаешь / не помнишь как это сделать, как замена поисковику вполне себе работает, и очень удобно. И хотя правильность ответов не гарантируется, на моем скромном опыте обычно они неплохие, может быть всего раз он мне нерабочую команду выдал.

Единственное, если долго он запущен (неделями), то многовато памяти ест, и закрытие вкладок с открытием новых не помогает. Нужно целиком его закрыть и запустить заново
thedeemon: (Default)
Недавно ветер кармы алгоритмы ютюба вынесли меня на канал Theories of Everything, где записывают длинные интервью с разными современными учеными, в первую очередь физиками, но не только. С интересом послушал Оппенхайма про его постквантовую гравитацию, Ровелли про реляционную интерпретацию КМ, Френкеля про субъективность и "проблему наблюдателя" в математике, еще кое-кого, но особенно порадовала вот эта беседа с Модлином:



Даже не знаю чем именно, там много разных вопросов затронули, и где-то ясность мысли и изложения, где-то совпадение с моим пониманием и отношением, где-то какие-то новые моменты, сразу несколько факторов сложились.

В телефоне у меня подписка на ютюб позволяет слушать звук, выключив экран и положив его в карман, но с некоторых пор почему-то это перестало стабильно работать, и через несколько минут воспроизведение останавливается. Возможно, андроид решает, что нефиг приложению в фоне так много работать. Зато оказалось, что ссылку на видео или плейлист можно засунуть в YT Music, и там все играет хорошо и долго, и тоже можно поставить скорость побольше.
thedeemon: (Default)
В начале лета ездили на неделю в Сингапур. Пару дней у меня получилось просто погулять по городу по жилым кварталам, вдали от туристических стандартных мест. Встретил выдру, котов и куриц. Попал на буддийский праздник. Поглазел на интересные дома, которые до этого лишь на картинках видел.



thedeemon: (Default)
В начале лета оформил таки подписку на GPT-4 в ChatGPT. Полгода назад некоторые предрекали, что он всех нас тут заменит и понаделает революций в разных областях, но что-то пока это не произошло. Однако игрушка очень занятная и нередко полезная, stack overflow неплохо заменяет. Рассказывает мне как что-то сделать в шелле и гите, пишет небольшие программки на разных языках, переводит с одних на другие. Если бесплатная v3.5 при кодинге все норовила мне задействовать несуществующие библиотеки и даже спорить о том, что такие-то вещи есть в стандартной библиотеке языка (а их там нет), то 4-я уже так обычно не делает.

В начале июля был ICFPC, решил делегировать немного железке, попросил код, вычисляющий расстояние от точки до прямой. Нейронка сначала показала формулы, потом аккуратно написала по ним код. Но формула была неверной. Потом я понял, что это все равно не совсем то, что мне было нужно, попросил код, определяющий пересекает ли данный отрезок данную окружность. Железка выдала решение с ошибкой. Указал ей на ошибку, извинилась, выдала сильно другое решение, на этот раз рабочее.

Но там где думать особо не нужно, а нужно что-то знать и немножко уметь, она справляется неплохо. Недавно старые клиенты нарисовались, просили мой старый видеокодек в новой форме, нужно было и на C# немного написать, с обращением к нативной DLL-ке, и потом на JavaScript'e немного, с асинхронным получением данных, скармливанием их моему декодеру (JS сгенеренный из Haxe) и отображением в картинке. А я на C# уже много лет не писал, а на JS и вовсе никогда. Тут ChatGPT очень пригодился, попросил у него примеров того-сего, он все показал и объяснил вполне адекватно.

Еще из забавного, попросил ее кусочек кода переписать с Котлина на Flix. Она мне накатала вежливый ответ о том, что такое Flix и чем он интересен, но по состоянию на сентябрь 2021, где ее кругозор кончается, во Flix'e еще нет таких-то вещей, потому перевести не получится. (сейчас они там есть и перевести можно, но ИИ тут не помощник) А в другом диалоге, когда я задал базовый вопрос про тип Char там, она мне заявила про Flix что такого языка и нету вовсе.

Еще для телефона сейчас понаделали интерфейсов к ChatGPT, я поставил себе один из них - Whisper - там можно голосом к ней обращаться и она голосом же отвечает. Обращаюсь я все равно текстом, так удобнее, зато очень приятно так во время прогулки на улице задать вопрос, убрать телефон в карман, а оно чуть потормозит и потом в наушники голосом ответ говорит. Можно так гулять да образовательные диалоги вести на разные темы. Будущее наступило!

Helix

Aug. 13th, 2023 12:58 pm
thedeemon: (Default)
Недавно задался вопросом какие сейчас вообще есть текстовые редакторы, работающие в терминале, чтобы использовать когда логинишься на сервер или там в докер контейнер или на телефоне. Раньше обычно vim для этих целей использовал, но настраивать его везде каждый раз лень, плагины там ставить и конфиги править, а из коробки там щастья немного. Обнаружил Helix, про который раньше чуть-чуть слышал, но не слушал. А он очень даже ничего. По сути похож на вим, тоже разные режимы, большинство операций делаются последовательностью нажатий букв, не требуя сложных сочетаний, и многие команды похожи на вимовские (но не все), но есть важное отличие: вместо формата <что сделать> <с чем сделать>, там наоборот <с чем сделать> <что сделать>, за счет чего можно увидеть выделенной ту часть текста, над которой будет проведена операция, до того, как запустишь саму операцию, соотвественно есть шанс передумать. Намного разумнее.

Плагинов там пока нет, и то, что в виме требовало бы установки и настройки плагинов, в хеликсе уже есть сразу, в том числе раскраска синтаксиса массы языков и поддержка LSP.

Небольшой обзор-введение:



И что приятно, helix можно поставить и в Termux на андроиде, отлично работает и на телефоне.
Во многих дистрибутивах запускается командой hx. Но в Arch-based это helix.

Profile

thedeemon: (Default)
Dmitry Popov

April 2026

S M T W T F S
   1 234
567891011
12131415161718
19202122232425
2627282930  

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Apr. 24th, 2026 12:37 am
Powered by Dreamwidth Studios