Я так и не увидел желаемого ответа на вопрос в тайтле статьи, и судя по гуглению никто видимо этим больше не заморачивался. У Яндекса действительно оч. неудобный подход к тестированию задач. Нужно пасовать тест через файл или через stdin, из-за чего ты не можешь просто написать функцию main, где прогнать решение по тестам (как я делаю в leetcode), после чего скопировать решение без main.
Поэтому я на днях написал данный скрипт на Питоне, который берёт на вход путь к собранному приложению и файлу с тестами, и запускает приложение на каждом тесте, сравнивая с ожидаемым выводом.
Формат файла с тестами: строка Test:, потом строки которые будут прокинуты в stdin, затем строка Expected: и строки ожидаемые из stdout. Повторяем на каждый тест. Пример файла можно увидеть в строчке --help скрипта.
Хмм, а markdown на хабре перестал работать? Я гуглю, вроде доки на месте https://habr.com/ru/docs/help/markdown/ , написано галочку при наборе текста поставить. Но поля с галочкой нет.
С Арчем ты как бы живёшь на передовой, и нужно быть готовым, что возникнет проблема и её надо репортить. С AMDGPU я дважды натыкался на регрессии и их репортил (их пофиксили). С podman как-то возникали, тоже пофиксили.
Редко, но что-то возникает. Мне льстит мысль, что в частности благодаря мне эти баги не доходят до стабильных дистров.
Dolphin и Nautilus уже поддерживают reflink, но только для btrfs.
Это не совсем так. В дискуссии по ссылке, следующий комментарий после того, на который я сослался, утверждает, что CoW работает и под XFS тоже. Там конфуз был потому что в коде функции имеют префикс btrfs_. Но это просто проблема наименования.
Кстати, просто любопытная информация от себя: изменение по поддержке CoW было сделано не непосредственно в коде Nautilus, а в общем коде Glib, который Nautilus использует (ориг. багрепорт был создан на Nautilus, но потом мигрирован на Glib). По-видимому это подразумевает, что CoW может работать у всех приложений, копирующих файлы средствами Glib. В репо Арча я вижу 393 приложения полагающихся на Glib — хотя не знаю, скольким из них это вообще релевантно.
Автор может пожелать добавить апдейт по поводу того, что ситуация изменилась: патч для дефолта cp на --reflink=autoбыл вмержен в Июне прошлого года. Правда, с тех пор не было нового релиза coreutils (на момент написания этого комментария последний релиз 8.32), изменения будут в следующем. Так же, поддержка в nautilus имеется(точно не знаю с какого момента, но комментарий ссылающийся на код оставлен 6 месяцев назад). И по словам автора багрепорта по ссылке, Dolphin тоже поддерживает reflink (уже не стал искать, с какого момента, но можно сказать, что не меньше 6-ти месяцев).
Давно уже хочу перейти на spacevim/spacemacs, но решил что прежде нужно научиться слепой печати с dvorak раскладкой
Из моего опыта, более продуктивно сделать наоборот: перейти на vim-режимы, и получить слепой набор в подарок. Я когда-то именно так и сделал (правда отмечу, у меня qwerty). vim режимы вынуждают использовать основную часть клавы просто для передвижения по коду, и поскольку ты не можешь постоянно поглядывать вниз при навигации, ты постепенно просто запоминаешь локации клавиш. Причём, включая клавиши с цифрами, т.к. они полезны для быстрых манипуляций сразу множеством строк (или иных текстовых объектов). Единственное, я рекомендую включить hybrid line-numbers, чтобы понимать сколько строк вам надо скопировать или удалить. upd: уточню, в Emacs-derivatives для этого надо выставить (setq-default display-line-numbers 'visual) в конфиге.
Вы репортили данные проблемы? В зависимости от серьезности, они довольно могут быть довольно отзывчивы. У моей девушке на Маке нестабильная версия LO Calc крашилась на одном документе — зарепортили, через два дня пофиксили.
Забавный факт: после заработанного инвайта на хабр/гиктаймс, я долгое время и понятия не имел, что на хабре работает автозамена — длинные тире и пр. специсимволы я ставил уже очень давно через Compose. Точнее: <Compose> + - + <Space> для длинного тире, плюс пробела за ним.
Разумеется, я видел спецсимволы и в чужих комментариях, но я наивно полагал, что хабравчане просто используют нечто схожее.
Я полистал дискуссию, и данный багрепорт, похоже, решен для кучи народа еще в ядре 4.9. Открыт лишь потому, что ОП давно уже не реагирует, а assignee — просто рэндомный чувак, случайно поставивший галочку.
Вообще Убунтовский launchpad — один из самых надежных способов потерять репорт. Имеете проблему — убедитесь, что с ванильным ядром она так же имеется, и репортите сразу на bugzilla.kernel.org.
Я так и не увидел желаемого ответа на вопрос в тайтле статьи, и судя по гуглению никто видимо этим больше не заморачивался. У Яндекса действительно оч. неудобный подход к тестированию задач. Нужно пасовать тест через файл или через stdin, из-за чего ты не можешь просто написать функцию
main
, где прогнать решение по тестам (как я делаю в leetcode), после чего скопировать решение безmain
.Поэтому я на днях написал данный скрипт на Питоне, который берёт на вход путь к собранному приложению и файлу с тестами, и запускает приложение на каждом тесте, сравнивая с ожидаемым выводом.
Формат файла с тестами: строка
Test:
, потом строки которые будут прокинуты вstdin
, затем строкаExpected:
и строки ожидаемые изstdout
. Повторяем на каждый тест. Пример файла можно увидеть в строчке--help
скрипта.Пример запуска:
Мне только что вылезло на Qutebrowser.
Хмм, а markdown на хабре перестал работать? Я гуглю, вроде доки на месте https://habr.com/ru/docs/help/markdown/ , написано галочку при наборе текста поставить. Но поля с галочкой нет.
Например я репортил [вот такой баг](https://gitlab.freedesktop.org/drm/amd/-/issues/1850).
С Арчем ты как бы живёшь на передовой, и нужно быть готовым, что возникнет проблема и её надо репортить. С AMDGPU я дважды натыкался на регрессии и их репортил (их пофиксили). С podman как-то возникали, тоже пофиксили.
Редко, но что-то возникает. Мне льстит мысль, что в частности благодаря мне эти баги не доходят до стабильных дистров.
А у вас оплатить можно только онлайн? Что-то как-то боязно честно говоря. Почему нет возможности картой при встрече?
Ещё интересная статья с техническими деталями, правда на английском, от компании портирующей Linux на M1: https://corellium.com/blog/linux-m1
И спасибо за апдейты!
Это не совсем так. В дискуссии по ссылке, следующий комментарий после того, на который я сослался, утверждает, что CoW работает и под XFS тоже. Там конфуз был потому что в коде функции имеют префикс
btrfs_
. Но это просто проблема наименования.Кстати, просто любопытная информация от себя: изменение по поддержке CoW было сделано не непосредственно в коде Nautilus, а в общем коде Glib, который Nautilus использует (ориг. багрепорт был создан на Nautilus, но потом мигрирован на Glib). По-видимому это подразумевает, что CoW может работать у всех приложений, копирующих файлы средствами Glib. В репо Арча я вижу 393 приложения полагающихся на Glib — хотя не знаю, скольким из них это вообще релевантно.
Fedora 33. По поводу пакета с постфиксом eln103, не уверен на что это, что-то с redhat связанное.
Патч на Fedora имеется начиная с версий
coreutils-8.32-11.fc33
иcoreutils-8.32-11.eln103
.А, и ещё Fedora применяют к пакету coreutils патч для reflink=auto, так что у них это работает уже сейчас.
Автор может пожелать добавить апдейт по поводу того, что ситуация изменилась: патч для дефолта
cp
на--reflink=auto
был вмержен в Июне прошлого года. Правда, с тех пор не было нового релиза coreutils (на момент написания этого комментария последний релиз 8.32), изменения будут в следующем. Так же, поддержка в nautilus имеется (точно не знаю с какого момента, но комментарий ссылающийся на код оставлен 6 месяцев назад). И по словам автора багрепорта по ссылке, Dolphin тоже поддерживает reflink (уже не стал искать, с какого момента, но можно сказать, что не меньше 6-ти месяцев).Из моего опыта, более продуктивно сделать наоборот: перейти на vim-режимы, и получить слепой набор в подарок. Я когда-то именно так и сделал (правда отмечу, у меня qwerty). vim режимы вынуждают использовать основную часть клавы просто для передвижения по коду, и поскольку ты не можешь постоянно поглядывать вниз при навигации, ты постепенно просто запоминаешь локации клавиш. Причём, включая клавиши с цифрами, т.к. они полезны для быстрых манипуляций сразу множеством строк (или иных текстовых объектов). Единственное, я рекомендую включить hybrid line-numbers, чтобы понимать сколько строк вам надо скопировать или удалить. upd: уточню, в Emacs-derivatives для этого надо выставить
(setq-default display-line-numbers 'visual)
в конфиге.Забавный факт: после заработанного инвайта на хабр/гиктаймс, я долгое время и понятия не имел, что на хабре работает автозамена — длинные тире и пр. специсимволы я ставил уже очень давно через Compose. Точнее:
<Compose> + - + <Space>
для длинного тире, плюс пробела за ним.Разумеется, я видел спецсимволы и в чужих комментариях, но я наивно полагал, что хабравчане просто используют нечто схожее.
Вообще Убунтовский launchpad — один из самых надежных способов потерять репорт. Имеете проблему — убедитесь, что с ванильным ядром она так же имеется, и репортите сразу на bugzilla.kernel.org.