1.1, Онаним (?), 23:27, 20/07/2022 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
"на тесте с около 21k файлов, время теста сократилось с 18 секунд до 20k микросекунд"
Как они смогли перекрёстно проверять 21k имён за 18 секунд? Просто два вложенных цикла с strcmp штoле, хеши не модно?
| |
|
2.2, Онаним (?), 23:28, 20/07/2022 [^] [^^] [^^^] [ответить]
| –1 +/– |
Вопрос снят. Посмотрел коммит. Не, ребята, я мимо. Не вложенные циклы конечно, но...
| |
|
|
|
5.26, pashev.ru (?), 10:12, 21/07/2022 [^] [^^] [^^^] [ответить]
| –2 +/– |
Changelog нельзя изменять в одном коммите с кодом. Я запрещаю и проклинаю всех, кто так делает.
| |
|
6.27, A.Stahl (ok), 10:46, 21/07/2022 [^] [^^] [^^^] [ответить]
| +/– |
А какая выгода от изменения ченджлога отдельным коммитом от кода, который этот ченджлог описывает?
Кто-то читает диффы ченджлогов? Ну, в данном случае диффы всегда сверху файла.
| |
|
7.33, topin89 (ok), 12:55, 21/07/2022 [^] [^^] [^^^] [ответить]
| +2 +/– |
Черри-пикать удобнее. Из-за этого в коммитах лучше держать минимальные изменения, после которых код может компилироваться/выполняться. Ну и временами читать, как код менялся, удобнее по маленьким коммитам.
Диффы читают на ревью PR'ов. Может не всегда, но время от времени так удобнее.
| |
|
|
|
|
3.9, topin89 (ok), 00:35, 21/07/2022 [^] [^^] [^^^] [ответить]
| +1 +/– |
Зря ты так. Видно, что человек учится, набивает шишки. Уже понял, что юникод -- это магия и пусть специальная библиотека с этим возится. Даже понял, что вложенные циклы в 1000 раз хуже, чем использование специальных структур для поиска.
Зачем делать новость из софта уровня "я сделаль" я не понимаю, но автору кода желаю учиться и развиваться, а также читать документацию. Та же проверка, что вставка в map удалась через проверку размера карты когда тот же insert уже выдаёт, прошла вставка или нет -- это неправильно.
| |
|
2.5, Аноним (5), 23:43, 20/07/2022 [^] [^^] [^^^] [ответить]
| –14 +/– |
Кто они? Эту шляпу пилит какой-то даун с лора, который думает, что занимается программированием :3
| |
|
3.18, Онаним (?), 09:06, 21/07/2022 [^] [^^] [^^^] [ответить]
| +/– |
Ну я фиг знает, он, она, оно, или их там вообще двое - поэтому они.
| |
|
|
1.3, Аноним (3), 23:33, 20/07/2022 [ответить] [﹢﹢﹢] [ · · · ]
| +4 +/– |
А я в шелле с помощью "for i in ...; do mv $i $(echo ... | sed 's/.../.../'); done" переименовываю
| |
|
2.16, myhand (ok), 06:22, 21/07/2022 [^] [^^] [^^^] [ответить]
| +/– |
Ты поц.
Главное rename 's/.../.../' * - и никаких C++сов, прости Г-ди. Аминь.
| |
2.19, 1 (??), 09:07, 21/07/2022 [^] [^^] [^^^] [ответить]
| +/– |
тогда уж find . -exec
А то рекурсивно не получится
| |
|
1.6, Аноним (5), 23:51, 20/07/2022 [ответить] [﹢﹢﹢] [ · · · ]
| –12 +/– |
Автор, у меня много вопросов. Какой номенус? Какое переименование и покрытие тестами? Ты отдаешь себе отчёт, что пилишь программу, которая заменяется однострочником на баше? Ты поехавший? Когда ты повзрослеешь?
| |
|
2.7, Аноним (5), 00:04, 21/07/2022 [^] [^^] [^^^] [ответить]
| –18 +/– |
Не подумай, что я с наездом. Просто если ты реально поехавший со справкой, то есть тема выбить тебе финансирование в рамках какого-нибудь transparency program для дауничей, в европке такое любят. Оформим тебе полный пансион с трехразовым питанием и тёплым халатом. По вечерам игры в пасьянс и литературный клуб. Вмиг про переименования забудешь!
| |
|
1.10, topin89 (ok), 00:54, 21/07/2022 [ответить] [﹢﹢﹢] [ · · · ]
| +2 +/– |
Всем, кто пытается забить программу за ненужность, плохой код и прочее: ну зачем вы так? Все же новичками были. Пусть учится, прогресс есть, хоть и медленный.
А автору, если он тут внезапно сидит, рекомендую начать учить основы структур и алгоритмов. Хэши там, бинарные деревья с бинарным поиском, самую базу. Посмотреть на распараллеливание, может переименование в несколько потоков быстрее будет. И бенчмарки. Тупо сравнить по скорости конкретное правило с однострочниками на баше. Сравнить с альтернативами, типа perl-rename.
| |
|
2.20, Онаним (?), 09:09, 21/07/2022 [^] [^^] [^^^] [ответить]
| +/– |
Фак, я даже в фильтре базара под MaNGOS (давно это было) сразу догадался, что надо как минимум деревья выстраивать.
| |
|
3.37, topin89 (ok), 14:02, 21/07/2022 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Фак, я даже в фильтре базара под MaNGOS (давно это было) сразу
> догадался, что надо как минимум деревья выстраивать.
Но для этого нужно или учить теорию (что любители делают редко) или чтоб кто-то сказал. Или быть мегаталантом и догадаться о деревьях самому, но шансов лишь слегка больше, чем выиграть в лотерею.
Я помню, лет десять назад делал нормировку массива чисел на диапазон [0..1] с двумя вложенными циклами. Чтобы догадаться до адекватного варианта мне потребовалась лишь фраза "неэффективно, можно лучше". Такой лёгкий пинок, но без него я бы ещё долго писал код O(N^2) вместо O(N) или даже O(1).
| |
|
|
1.12, Аноним (12), 03:14, 21/07/2022 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Кстати о файлах. Как скопировать директорию с кучей симлинков вовне этой директории, чтобы эти симлинки не протухли? Или переместить. Этот королевский безменюх так умеет?
| |
|
|
3.40, Аноним (-), 16:20, 21/07/2022 [^] [^^] [^^^] [ответить]
| –1 +/– |
1. cp --help не копирует файлы
2. решётка -- это коммент => тем более не копирует
3. но ты ведь про --preserve=links? Не работает. Она иногда может ругаться в консоль о том, что после копирования ссылка стала висящей. Иногда не ругается, а молча оставляет её висеть.
4. ты прикинь, я не только в man cp заглядывал, я заглядывал в гугл и искал там способа. я не нашёл. Единственное что работает -- это тупое напрашивающееся костылерешение: после копирования пройтись find'ом по дереву, выбрать все симлинки, прочитать их readlink'ом, удалить, создать заново в исправленном варианте.
5. Иди умничай перед мамкой своей.
| |
|
4.49, iCat (ok), 02:21, 22/07/2022 [^] [^^] [^^^] [ответить]
| +/– |
>[оверквотинг удален]
> 2. решётка -- это коммент => тем более не копирует
> 3. но ты ведь про --preserve=links? Не работает. Она иногда может ругаться
> в консоль о том, что после копирования ссылка стала висящей. Иногда
> не ругается, а молча оставляет её висеть.
> 4. ты прикинь, я не только в man cp заглядывал, я заглядывал
> в гугл и искал там способа. я не нашёл. Единственное что
> работает -- это тупое напрашивающееся костылерешение: после копирования пройтись find'ом
> по дереву, выбрать все симлинки, прочитать их readlink'ом, удалить, создать заново
> в исправленном варианте.
> 5. Иди умничай перед мамкой своей.
Ну вот сколько умных мыслей сразу из тебя прорвалось-то.
А то завели обыкновение - ставить вопрос таким образом, что из него вообще непонятно что человек спрашивает...
Теперь почитай вывод команды
#rsync --help
И не раздражайся по пустякам - глупо это.
| |
|
5.50, Аноним (-), 05:23, 22/07/2022 [^] [^^] [^^^] [ответить]
| +/– |
> А то завели обыкновение - ставить вопрос таким образом, что из него вообще непонятно что человек спрашивает
Отмазывайся теперь
> #rsync --help
Может ты сразу перечислишь все хелпы, которые ты считаешь нужным для меня прочитать? Чтобы я мог сразу на все ответить оптом, а не по очереди?
| |
|
6.51, iCat (ok), 05:25, 22/07/2022 [^] [^^] [^^^] [ответить]
| +/– |
>> А то завели обыкновение - ставить вопрос таким образом, что из него вообще непонятно что человек спрашивает
> Отмазывайся теперь
>> #rsync --help
> Может ты сразу перечислишь все хелпы, которые ты считаешь нужным для меня
> прочитать? Чтобы я мог сразу на все ответить оптом, а не
> по очереди?
"Слона надо есть по кусочку" ;)
Так ты нашёл как копировать rsync-ом линки?
| |
|
7.59, Аноним (-), 23:24, 22/07/2022 [^] [^^] [^^^] [ответить]
| +/– |
> Так ты нашёл как копировать rsync-ом линки?
Нет. Там столько букф в мане, что проще find'ом и readlink'ом сделать, как я и делал всегда, чем читать весь этот словесный понос. Или, я вот думаю, ещё проще будет патч на cp из uutils наложить, чтоб тот следил бы за симлинками.
| |
|
|
|
|
|
2.22, Онаним (?), 09:12, 21/07/2022 [^] [^^] [^^^] [ответить]
| +/– |
Симлинк на то и симлинк, что цель ни х**на не знает о том, что он вообще есть.
Искать все симлинки и править :D
| |
|
3.39, Аноним (-), 16:07, 21/07/2022 [^] [^^] [^^^] [ответить]
| +/– |
Я имею ввиду обратную ситуацию. Обратное направление ссылок: изнутри копируемого дерева внаружу его.
mkdir tmp
pushd .
cd tmp
ln -s ../hello/world .
popd
mkdir container
cp -a tmp container/
ls -l container/tmp
total 0
lrwxrwxrwx 1 user group 8 Jul 21 15:58 world -> ../hello/world
Хотя чтобы всё работало должно быть:
ls -l container/tmp
total 0
lrwxrwxrwx 1 user group 8 Jul 21 15:58 world -> ../../hello/world
| |
|
4.61, Онаним (?), 10:06, 24/07/2022 [^] [^^] [^^^] [ответить]
| +/– |
Этот вопрос решается куда проще - вместо ../ - абсолютные сцылки.
| |
4.62, Онаним (?), 10:07, 24/07/2022 [^] [^^] [^^^] [ответить]
| +/– |
Если же у вас ситуация с хитровыделанными .. по отношению к расположению дерева - ну, ни FS, ни копировщик об этом не знают. Так что find/grep/rm/ln в руки :)
| |
4.63, Онаним (?), 10:12, 24/07/2022 [^] [^^] [^^^] [ответить]
| +/– |
Вообще у меня для себя есть уже много лет хорошее правило по симлинкам: избегать каких-либо относительных симлинков за пределы самодостаточных деревьев. Самодостаточное - это такое, которое определяется одной сущностью (проектом/софтом/...), и соответственно может перемещаться куда-то только целиком.
| |
|
|
|
|
2.23, Онаним (?), 09:12, 21/07/2022 [^] [^^] [^^^] [ответить]
| +1 +/– |
Да никто не мешает заниматься. Пиариться-то зачем? Вот пиар на полностью пустом месте - этого да, не отнять.
| |
|
3.32, Тот Самый (?), 12:50, 21/07/2022 [^] [^^] [^^^] [ответить]
| +/– |
Огромное количество проектов на GitHub написаны исключительно ради строчки со ссылкой в резюме. Их главная задача состоит совсем не в заявленной функциональности (как правило, это пятое колесо), а в увеличении продажной стоимости автора на рынке труда.
>Пиариться-то зачем?
Реклама - двигатель торговли.
| |
|
|
1.24, pashev.ru (?), 09:30, 21/07/2022 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
Утилита массового переименования файлов называется bash с плагинами sed, find, xargs, rename.
| |
1.28, Косой (?), 11:35, 21/07/2022 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
жду с нетерпением трудоустройства автора сей нетленки в микрософт
микрософт - это сила
| |
1.34, Аноним (34), 13:46, 21/07/2022 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Ну как бы пусть, пусть. Напишет человек звездолет, намучается за несколько лет его поддерживать, и тогда уже поймет, что однострочник (да, однострочник) на перле дает не меньшую производительность и пишется по памяти проще, чем конфиг к звездолету с помощью документации.
| |
1.43, InuYasha (??), 16:33, 21/07/2022 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Это мимимшнее и кавайнее GUIшного FlexibleRenamer-а под винду? Скринов бы или примеров использования...
Вот, 90% моего варианта использование - это вынимание DATETIME из EXIF, MKV и MP4 и запихивание в начало имён файлов. Тут так можно?
| |
|
|
3.52, InuYasha (??), 11:12, 22/07/2022 [^] [^^] [^^^] [ответить]
| +/– |
> Нет, программа не умеет работать с "контейнерами".
Ясно. Ну, всё равно интересная прога. А вопрос с метаданными - это извечная дилемма: должна ли утилита знать формат или формат знать утилиту...
| |
|
4.53, adolfus (ok), 12:03, 22/07/2022 [^] [^^] [^^^] [ответить]
| +/– |
Написано же, что файл -- это последовательность байт (октетов), а также что семантику и формат определяет приложение. Также имя файла никак не связано ни с метаданными (размер, права,...) и, тем более, его содержимым.
| |
|
|
|
1.44, Аноним (44), 16:59, 21/07/2022 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
> должно исправить основные проблемы с Юникодом
Что значит «должно»? Типа код написали, а протестировать забыли? Ну и в целом, в 2022 иметь проблемы с юникодом надо уметь. Софт уровня c:\laba1.
| |
|
2.46, A.Stahl (ok), 17:41, 21/07/2022 [^] [^^] [^^^] [ответить]
| +/– |
>Что значит «должно»? Типа код написали, а протестировать забыли?
Если бы можно было написать такие тесты, которые корректно покрывали бы все случаи, то и багов бы не существовало.
>в 2022 иметь проблемы с юникодом надо уметь.
Это легче чем кажется. А Юникод коварней чем кажется.
| |
|
3.47, Аноним (44), 18:41, 21/07/2022 [^] [^^] [^^^] [ответить]
| +/– |
> Если бы можно было написать такие тесты, которые корректно покрывали бы все случаи, то и багов бы не существовало.
А все и не надо, для начала достаточно микса из узких и широких.
| |
|
4.48, A.Stahl (ok), 19:11, 21/07/2022 [^] [^^] [^^^] [ответить]
| –1 +/– |
Если у тебя достаточно опыта с Юникодом чтобы предложить хорошие тесты -- предлагай. Программа использует Юникод лишь при смене регистра и сортировке.
| |
|
|
2.54, adolfus (ok), 12:12, 22/07/2022 [^] [^^] [^^^] [ответить]
| –1 +/– |
Проблем с юникодом куча, особенно с LC_COLLATE. Гном, например, вообще не поддерживает. По крайней мере установить LC_COLLATE=C на выдачу списка из файлов в его листбоксах невозможно, соответсвенно, и в приложениях, которые используют его листбоксы, невозможно этого сделать. Пример -- тотже файкрфокс. Попробуйте при сохранении файла в его панели установить произвольную LC_COLLATE.
| |
2.60, Аноним (-), 22:49, 23/07/2022 [^] [^^] [^^^] [ответить]
| –1 +/– |
> в целом, в 2022 иметь проблемы с юникодом надо уметь.
Чтобы в 2022 иметь проблемы с юникодом, надо работать с юникодом на практике, а не быть мамкиным икспердом. Особенно если речь идёт про имена файлов в unix'е, про которые никто не обещал никогда, что они в юникоде: они произвольный набор байт, про который ядром гарантируется лишь отсутствие символов '\0' и '/' внутри. Пойди попробуй сравни лексикографически два таких набора байт как utf8, когда твой декодер utf8 не может разбить их на символы. Или попробуй вывести их в консольку так, чтобы потом в консольке не надо было бы reset делать.
| |
|
1.55, Anybody (??), 14:53, 22/07/2022 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
ИМХО "автору" сего поделия лучше удался бот, набросавшие минусы тем, кто усомнился его гениальности.
| |
|
2.57, Аноним (-), 15:10, 22/07/2022 [^] [^^] [^^^] [ответить]
| +/– |
Генитальности.
А по теме - он сам плодит таких ботов с кьютимаркой на попе.
| |
|
|