Pull to refresh
271
-7
Иван Сорокин @unxed

веб

Send message

Однако за саму наводку — спасибо! Буду знать. Мне после веба с его типичными языками, конечно, очень непривычно, что можно сделать функцию стандартной библиотеки, принимающую int, с которым она при этом работать не в состоянии (проверил у себя: на INT_MIN вообще сегфолтится!), и прописать эту особенность где-то в самом конце её описания, как какую-то малозначимую деталь, чтоб дочитали только самые настойчивые. Это очевидная ловушка, и, конечно, сейчас, когда трудочасы разработчиков стоят куда дороже мегагерцев, никто так уже не делает.

Однако когда имеешь дело с кодом на сях, о таких ловшуках и правда лучше бы помнить. В моём случае ни на что не влияет (проверил ещё раз, нет у wx таких кодов, на которых под glibc оно врало бы), а в каких-то других вполне могло бы.

Что вы, какое там читать до конца! Я эту документацию даже не начинал читать до текущего момента :) Более того, C/C++ не входят в число моих основных языков, в чём я честно признаюсь публично. Плохой код? Наверняка! Весьма вероятно, он даже ужасный!

Однако сосредоточимся ещё раз на очень важном тейке, который, видимо, придётся проговорить прямо, потому что с пониманием метафор, похоже, наблюдаются сложности: в open source комьюнити никто никому ничего не должен! Ни гарантировать качество кода, которое бы лично вас устроило, ни читать документацию настолько тщательно, насколько вам кажется правильным.

Я решал свою персональную проблему (и в процессе получал удовольствие ещё), и решил её. А заниматься тщатильным вычитыванием доков и полировкой кода до идеального состояния, когда у меня и так всё работает, да ещё и бесплатно, мне ни с какой стороны не интересно. Если вам интересна эта игра в идеальный код, или у вас что-то сломается, или если кто-то вам оплатит потраченное время — киньте PR чувакам из wx, дело хорошее. Есть люди, которых прёт такая шлифовка, у нас в far2l тоже есть такой человек, много полезных коммитов сделал в своё время. Но вот с фактом, что такая работа интересна далеко не всем, придётся смириться и как-то дальше жить :)

У isalpha() параметр int, а не unsigned char. Ещё был код ревью перед мержем. И ещё в таком взрослом проекте как wx имеются автоматизированные тесты, для прохождения которых код пришлось несколько раз дорабатывать.

И, кстати, в open source разработке есть только два подхода — либо мой, когда just for fun, либо когда зарплату какая-нибудь корпорация платит. Если хотите предложить мне финансирование, можем обсудить условия :)

В завершение этого очень философского треда не могу не вспомнить бессмертное:

Если же нас интересует степень абстрактности мышления, на которую способна конкретно ChatGPT 4, то вот вам пример. Я попросил её написать код на языке Си, который бы рисовал кота. Код запустился с первой попытки, картинка получилась такая

Тогда я попросил нарисовать слона. Вышло вот что

Тогда я попросил нарисовать кусочек сыра. Вот результат:

А кота на html/css она рисует так:

Я был немало удивлен таким результатам, и спросил: «расскажи, пожалуйста, как у тебя получается придумывать код, генерирующий рисунки. ведь для этого недостаточно работать с текстом, надо представлять рисунок в своей голове». Ответ: «Я обученный на большом объеме данных искусственный интеллект. Я использую свои знания о программировании, геометрии и композиции для генерации кода, создающего приближенное изображение объекта, без человеческого воображения и сознания, основываясь на анализе и обобщении информации, полученной во время обучения».

Тогда я спросил «А откуда у тебя знания о композиции и геометрии таких объектов как кот, слон или кусочек сыра?». Ответ: «В ходе обучения я обрабатывал множество текстов, которые содержат описания внешнего вида животных, включая котов. Эти тексты могут содержать описания особенностей анатомии кота, расположения его частей тела, их пропорций и соотношений. Хотя я не могу "видеть" изображения, мои знания об особенностях кота основаны на информации, которую я "прочитал" в текстах».

Я спросил его об этом, и вот что он ответил: «Да, я способен на логическое мышление. Я был разработан для того, чтобы использовать искусственный интеллект для обработки естественного языка и выполнения различных задач, которые включают в себя логическое мышление, такие как анализ, рассуждения и выводы на основе заданных условий и правил. Я использую алгоритмы и статистические методы, чтобы извлекать информацию из текста и обрабатывать ее для решения задач, которые требуют логического мышления».

Но на самом деле у нас (человечества) нет строгого определния понятия «логическое мышление». Если это способность к логическим конструкциям «если, то», то и кошка логически мыслит, и модуль условных переходов в микропроцессоре. Точно так же как нет строгих определений для понятий «сознание», «самосознание» и т.д.

Всё, что мы можем, это давать ИИ разные задачки, и смотреть, решает ли он их лучше или хуже людей. Мою вот он решил примерно на том же уровне, на котором бы её решил помощник-джун при постановке задачи «поройся в манах на X11 API, и накидай пример, как получить символ по сканкоду в латинский раскладке, если она даже не установлена», если бы у этого джуна не было возможности самому проверить результат своего труда на реальном компиляторе и приходилось бы через меня это делать.

Диагноз по аватарке поставлен абсолютно верно! Я весёлый шалопай, опенсорс программирую для удовольствия, а вовсе не для того, чтобы воспитывать в себе усидчивость. И мне совсем не интересно часами читать маны по технологии, которая мне понадобится единственный раз в жизни. Если бы у меня был живой человек-помощник, я бы попросил это сделать его :)

К счастью, нейронка стоит гораздо дешевле живого человека-помощника.

Ещё его можно спрашивать, чем он может помочь в такой-то работе и решении такой-то задачи.

Тут интересно именно то, что задачку невозможно было решить просто по аналогии. Мне не удалось найти в сети примеры исходников, где по скан-коду клавиши получают код символа в раскладке, которая может быть даже не установлена в системе (и я думаю, если бы такие примеры гуглились, то баги в wxWidgets закрыли бы давным-давно). То есть нельзя просто сделать «как у тех парней», надо осознать, что именно я хочу, и как этого достичь. Я не знаю, имеем ли мы дело с осознанием или очень правдоподобной имитацией, но у неё в итоге получилось.

Это важно для нас, а не для них.

О, это серьёзная штука, надо багрепорт писать срочно (и образец файлика приложить):
https://github.com/elfmz/far2l/issues

Можно и на английском и на русском, как вам проще.

Кстати о линуксовых терминалах с табами. Вы в качестве такового, случаем, не kitty ли используете?

Если по умолчанию отправка в фон при обрыве соединения вам мешает, запускайте с ключём --mortal

screen и табы любимого терминала вам никто, собственно, использовать и не запрещает, если удобно.

Про документацию. Вы же знаете, как работает опенсорс :) Если вам не хватает документации за пределами встроенной справки — напишите и отправьте Pull Request!

Это всё работает через файл настроек custom.ini плагина multiarc. Так открывается куча форматов, от MSI до образов SQUASHFS.

Экзотический формат архивов можно добавить через редактирование файла настроек custom.ini плагина multiarc. VFS через скрипты — хорошая идея, предложите в багтрекере! Можно по-русски, если с английским сложно.

libarchive в far2l поддерживается, а вот поддержка rar там довольно ограниченная.

У Far действительно много сложных хоткеев. А как именно вы настраиваете putty? Что и где там надо прописать, чтобы, скажем, выделение в mcedit по shift-стрелкам заработало?

Про частичную замену screen. Если у вас какая-то задачка выполняется во встроенном терминале far2l, в случае обрыва связи процесс не прервётся, а продолжит выполняться в фоне. При повторном запуске на том же хосте far2l спросит: подхватить фоновый процесс (если их несколько, он даст выбрать из списка), или запустить новый? Можно и вручную кидать долгие задачки в фон, нажимая Ctrl+Alt+Z во встроенном терминале far2l во время их выполнения. А вот нескольких окон с отдельными процессами — такого [пока?] нет.

Мне кажется, тред вышел достаточно токсичный, предлагаю его свернуть :) Я, вероятно, написал не очень понятно: так, будто far2l уже в текущем Дебиане есть. Сожалею! Общаться в пренебрежительном тоне из-за этого едва ли стоит. Все ошибаются! И, да, людям лень читать инструкции, это нормально :)

Это немного из серии «не читал, но осуждаю». Никаких проблем с хоткеями, кроме экзотических (типа Ctrl+цифры) ни в каких терминалах, кроме ванильной путти, нет. А в ванильной путти в любом консольном приложении с хоткеями всё плохо, это не специфическая для far2l проблема. Под screen работает, хотя на практике не нужно — far2l сам себе терминальный мультиплексор (Ctrl+Alt+Z кидает текущий far2l вместе с выполняющейся в его терминале задачей в фон, восстановить можно запуском нового far2l --tty, он предложит). Зависимости мешают — ставьте из ppa чисто консольный или используйте portable. Не доверяете ppa или portable? Дождитесь следующего дебиана или осенней убунты, появится в местных репозиториях. Уязвимости в библиотеках? far2l сетевые порты не слушает, кто и как будет их эксплуатировать? Хочется гонять в любимом терминале? Гоняйте себе! Хочется гонять в любимом терминале и чтоб ещё более комфортный UX был? Используйте ttyxi или portable far2l на десктопе, из-под него ssh на сервер, там ставите чисто консольный far2l (вообще никаких иксовых либ не надо), «внутренний» far2l «договорится» с внешним с помощью хитрых escape последовательностей, и UX удалённого консольного far2l будет такой же, как у локального: и кнопки все будут работать, и буфер обмена.

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

Можно почти без зависимостей поставить, если вам важна компактность! Насчёт VFS — есть плагин-обвязка вокруг GVFS, можно и под KIO переделать, но пока такого запроса ни у кого не было, потому что встроенный плагин NetRocks умеет практически всё.

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity