Здравствуйте, netch80, Вы писали:
N>То есть добавить должен "\?", а потом могу не добавлять "\\?\". Разные строки. Как это понять?
Это значит что статью кривые ручки аффтароф десятки искурочили.
Более десяти лет там было написано строго про prepend \\?\
N>Мало того, при попытке разъяснить это по ссылке "Naming a file" вижу: N>
Because you cannot use the "\\?\" prefix with a relative path, relative paths are always limited to a total of MAX_PATH characters.
N>То есть и могу, и не могу, на самом деле, потому что действует только для абсолютных путей. Но, раз в 1607 могу не добавлять этот префикс, значит, для относительных путей начнёт работать? N>Потому я и говорю, что нужна 1607, чтобы всё заработало. Хотя...
Это одна из причин почему я считаю авторов десятки маппетами — сломают даже то, что десятилетиями работало.
N>Или префикс "\?" (первый упомянутый) помогает и в случае относительных путей? Объясни, пожалуйста.
Там ашыпка, \? не будет работать вообще никак.
N>И который из двух префиксов работает начиная с XP?
\\?\
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, netch80, Вы писали:
N>знать, что вся эта кухня с алиасами в случае system() и аналогичных вызовов просто не подключается
Это я уже потом вспомнил что если запустить в неинтерактивном режиме то их просто не подтягивают.
N>Но если оно даже придёт к этому через 5-10 лет, это время будет потрачено на полезные действия, а не написание на C/C++/C#... того, что в 10-100 раз пишется быстрее на sh/Perl/Python/etc.
Увы, но на практике это приводит к разрастанию снежного кома скриптовщины. Это пока кажется что "ну, там ж чуть чуть". Как только упустили и дали слабину так в эту брешь тут же ломятся любители "простых" АКА "я так умею" и быстрых решений.
Поэтому есть уже кровью написанные правила безжалосьно мочить хилые ростки скриптовщины и не пущать. Все необходимые скрипты же строго в песочницу без доступа к внешней среде.
Причём никакого "потом поправим" так никогда и не наступает — у всех либо "работает же, не трогай" либо влом, либо вообще некогда.
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, CreatorCray, Вы писали:
N>>То есть добавить должен "\?", а потом могу не добавлять "\\?\". Разные строки. Как это понять? CC>Это значит что статью кривые ручки аффтароф десятки искурочили. CC>Более десяти лет там было написано строго про prepend \\?\
Ясно, спасибо.
N>>То есть и могу, и не могу, на самом деле, потому что действует только для абсолютных путей. Но, раз в 1607 могу не добавлять этот префикс, значит, для относительных путей начнёт работать? N>>Потому я и говорю, что нужна 1607, чтобы всё заработало. Хотя... CC>Это одна из причин почему я считаю авторов десятки маппетами — сломают даже то, что десятилетиями работало.
Так а что они сломали? Неприём пути длиннее MAX_PATH при отсутствии префикса "\\?\" ? А он имел какую-то ценность?
Или они сломали восприятие относительного пути? Очень сомневаюсь — тогда бы вообще всё посыпалось.
Здравствуйте, CreatorCray, Вы писали:
N>>Но если оно даже придёт к этому через 5-10 лет, это время будет потрачено на полезные действия, а не написание на C/C++/C#... того, что в 10-100 раз пишется быстрее на sh/Perl/Python/etc. CC>Увы, но на практике это приводит к разрастанию снежного кома скриптовщины. Это пока кажется что "ну, там ж чуть чуть". Как только упустили и дали слабину так в эту брешь тут же ломятся любители "простых" АКА "я так умею" и быстрых решений.
Видимо, это у вас какая-то странная специфика рабочего места.
Я ни у себя, ни вокруг такое массово не наблюдаю: используется то, что подходит к ситуации, и если шелл перестаёт нормально работать — переводят на Python/etc., если его не хватает — на Java/C#/Go, и так далее.
CC>Поэтому есть уже кровью написанные правила безжалосьно мочить хилые ростки скриптовщины и не пущать. Все необходимые скрипты же строго в песочницу без доступа к внешней среде. CC>Причём никакого "потом поправим" так никогда и не наступает — у всех либо "работает же, не трогай" либо влом, либо вообще некогда.
У вас как-то плохо с организацией рабочего процесса и накоплением техдолга, далеко не только в этом вопросе.
Здравствуйте, Ikemefula, Вы писали:
CC>>Ты можешь запустить хоть 100 вордов но бинарь в памяти будет ровно один. I>Еще раз, для системщиков...
Согласен про системщиков Они/мы (в прошлом) как железячники — имеем некоторые деформации
Здравствуйте, CreatorCray, Вы писали:
CC>Если DLL грузится основным бинарём всегда то надо её просто влинковывать статически и не морочить никому голову.
Qt запрещает себя линковать статически, например.
Здравствуйте, CreatorCray, Вы писали:
I>>Вот такое API СС называет офигенно классным и удивляется, что прикладники не хотят его пользовать. CC>Потому что это и есть API системы. CC>Ты же берёшь левый хелпер, и потом жалуешься что в системе API некошерный.
Наличие вот таких непотнятных вещей и означат, что апи кривое, неоднозначное.
I>>Но если это недо-Си, как было у меня, то даже резолв и конкатенация путей вызывает затруднения. I>> Т.е. приплюсовать \\.\ или, скажем, склеить пути с фрагментами ..\.., или неправильными слешами, или переменными окружения — все это надо тщательно делать ручками и так же тщательно тестировать на каждой из платформ.
CC>Думаешь копирование байтиков в памяти будет по разному работать на разных платформах?
Еще раз, медленно, — все это надо тщательно делать руками, тестировать, майнтейнить под каждую из платформ.
Даже если ты супер-пупер крутой разраб, тестирование и майнтенанс никто не отменял. И коллегам по проекту придется все это прочитать.
Кастомный вариант под каждую из платформ идея обычно так себе. В кроссплатформенном проекте таким нужно заниматься только ради узких мест.
I>>Шелл все это умеет искаропки. CC>CMD.exe это тоже умеет искаропки CC>
CC>MKDIR creates any intermediate directories in the path, if needed.
Именно!
CC>Но тем не менее звать его для создания пути — говнокод.
От тебя по прежнему не поступает аргументов, только мантры. Такое ощущение, что ты в команде не работаешь, а пребываешь в статусе вечного ковбоя-одиночки.
У адекватных девелоперов плохой это такой код, который не удовлетворяет определенным критерями
1 работоспособность
2 читаемость
3 надежность
4 производительность
5 стоимость тестирования
6 стоимость майнтенанса
7 стоимость инфраструктуры
8 потребление памяти
и тд
Вот мой вариант — с ним все в порядке. Назови внятный критерий, который нарушается и обоснуй, почему этот критерий является узким местом для конкретного проекта.
Кастомный нативный хуже моего однострочника в 2,3,4,5,6. Например, потому, что у заказчика из нативных есть ажно два — иос и андроид, да и те шарятся на несколько проектов, и их внимания бывает надо ждать несколько недель.
Так что, будут аргументы или снова к "г..коду" скатишься ?
I>>А вот умеют ли это CreateDirectoryW — а хрен его знает. CC>линуксовый mkdir (2) это тоже не умеет.
Сыграем в бинго ?
docker run -it ubuntu
XXX=/1/2/3; mkdir -p $XXX/bingo; cd $XXX/bingo; printf '%s\n' ${PWD##*/}
Здравствуйте, CreatorCray, Вы писали:
I>>Ты накидай свой вариант, время замеряй. У меня вышло около минуты на функцию. А у тебя сколько выйдет ? CC>Она у меня много лет назад уже написана.
Небось носишь её с проекта на проект, с конторы на контору, шоб не потерять?
Напиши с нуля, кинь сюда, посмотрим.
I>>Пример — ShCreateDirectoryEx и CreateDirectoryW. CC>К WinAPI относится только одна из этих функций. Которая кстати работает точно так же как и POSIX mkdir (2).
Играем в bingo
docker run -it ubuntu
XXX=/1/2/3; mkdir -p $XXX/bingo; cd $XXX/bingo; printf '%s\n' ${PWD##*/}
I>>Предлагаешь мне изучать всё, что я не знаю, без разбору ? CC>Если тебе надо что либо сделать в определённой области, где у тебя нет знаний — да, надо получить эти знания. CC>А ты как думал?
А я думаю, что если можно обойтись без этого, то лучше эти знания получить в профильной области.
I>>Какой мне это профит даст ? Раз в год или раз в три года буду выискивать себе микро-таски на пол-часа работы вида "под виндой глючит буцтраппер" ? CC>Ты продолжаешь подтверждать мой вывод о профнепригодности
Ты продолжаешь хамить.
I>>Эту задачу я сделал примерно за три дня. Т.е. весь слой, со всеми приседаниями на основных платформах. CC>Херак херак и в продакшен, да.
Наоборот.
I>>Или у тебя шелл стал равняться линуксу? CC>unix shell попрошу заметить.
Я так и думал.
I>>Как закончишь пример с CreateDirectoryExW, неси код сюда, у меня есть кейс который его сломает. Гы-гы. CC>Откуда взялся Ex?
Ну может попутал чего, три года прошло. Так что с кодом ?
Здравствуйте, CreatorCray, Вы писали:
CC>>>Для начала надо много времени потратить распутывая их скриптоту. I>>Тебе надо много времени на пример CreateDirectoryEx? CC>Мы всё ещё про git?
Почти. Мы выясняем, насколько твои аргументы адекватны.
Трудновая задача, надо сказать. Пока что у тебя из аргументов "говно", "жопа", "криворучие", "придурки", "профнепригодность"
Как доходит до конкретики ты как то скромно отмалчиваешься.
Здравствуйте, CreatorCray, Вы писали:
I>>Так вот каждый раз, как ты здесь всё называешь говном, всех называешь дебилами — я вспоминаю тот самый баг в САПР, с рекурсивым удалением фолдера. CC> Ну а чем это отличается от шелл вызова rm -rf на переданный путь, который == "/"?
Рассказ про отношение к работе и аргументы "криоручие", "говнокод", "дебилы". Принципиальной разницы нет, рассказ то не про это.
I>>Ты напиши то свой вариант удаления, а мы посмотрим, научимся многому CC>Давно написан много лет назад.
Здравствуйте, CreatorCray, Вы писали:
I>>Ты головой подумай — если я 12 лет не писал на Си и С++, каким чудом сохранятся навыки нативного кодинга ? CC>Да не надо тут каких либо секретных навыков — просто умение думать.
Это иллюзия. Практика показывает, что сиплюсники с большим опытом продолжают лажать в операциях с памятью.
Чего ждать от прикладников, которые возможно вовсе не видели ни си, ни winapi ?
Кроме того, речь то не про одну функцию, а слой для работы с файловой системой в буцтрапере
Во первых, твой кастомный код надо тестировать во всех платформах, и желательно на разных вындоусах.
Во вторых, твой нативный код надо как то скомпилить-слинковать, для чего настроить билды на всех платформах
В третьих, твой нативный код надо как то развертывать, что есть изменение в инсталер каждой платформы
Далее, выплывают "особенности", а это значит, что надо дописывать, подправлять и тд. То есть — быть в курсе всех потенциальных проблем нативной разработки.
То есть — смотри выше.
I>>За 12 лет люди учатся программировать, вырастают в лидов, оттуда в менеджеры, оттуда — в своей бизнес. С какого бодуна можно ждать навыков кодинга? CC>Нет навыков кодить — не лезь кодить
Ты недавно сам сказал, что "надо быть в теме" только для того, что бы правильно с путями работать.
I>>13 лет пилил САПРы на С++ и дотнете. CC>И что, после 13 лет колбашенья под винду не можешь прочитать документацию и по ней сделать нужный функционал?
Ты читаешь вообще ?
Могу — это не повод добавлять код в проект, ни разу!
I>>Для разовой задачи предлаггаешь искать системщика? CC>Да блин просто закажи.
Ну да, и заниматься микро-менеджментом, когда всё решение на скрипте занимает минуты.
I>>Для меня нативный код — раз в год от силы. Надо объяснять, что в этом случае нативный код для меня нерелевантный скилл ? CC>Ещё можно закрыть глаза что ты полез тогда делать то, в чём не разбираешься. CC>Но тыж утверждаешь что плохой код на самом деле хороший просто потому что хорошо сделать ты не сумел
Наоборот, есть определенные критерии, и моё решение ни в одном из них не является узким местом. А вот твое мы пока не видели.
Здравствуйте, Ops, Вы писали:
Ops>А что не на 10 порядков? Я вот не сталкивался последнее время с нехваткой чего-либо в mercurial, наоборот: для гита нет сервисов с бесплатными приватными репами
Здравствуйте, Ops, Вы писали:
Ops>·>А с учётом, что функциональности у гита на порядок больше... ну его в топку этот ваш hg.
Ops>А что не на 10 порядков? Я вот не сталкивался последнее время с нехваткой чего-либо в mercurial, наоборот: для гита нет сервисов с бесплатными приватными репами, а для hg есть bitbucket.
У bitbucket приватные репы для Git появились в 2011 году.
Здравствуйте, Ночной Смотрящий, Вы писали:
Ops>>А что не на 10 порядков? Я вот не сталкивался последнее время с нехваткой чего-либо в mercurial, наоборот: для гита нет сервисов с бесплатными приватными репами
НС>Уже есть.
С 2011, повторюсь, были на том же bitbucketʼе. Я лично пользуюсь с 2014-го.
Ops>>, а для hg есть bitbucket.
НС>Вот из-за того что bitbucket проиграл github git и вылез.
Проигрыш перед Github — это только очередной (предпоследний, похоже) гвоздь в крышку гроба Hg.
Первыми были похуже реклама (без Linux) и отсутствие (или безнадёжная ограниченность) средств правки истории.
Здравствуйте, Ночной Смотрящий, Вы писали:
N>>У bitbucket приватные репы для Git появились в 2011 году.
НС>Они были ограничены, емнип, 5 пользователями.
Это если бесплатно. Платно — ограничений нет и не было, и цена вполне подъёмная.
Здравствуйте, Ночной Смотрящий, Вы писали:
НС>Здравствуйте, netch80, Вы писали:
N>>Это если бесплатно. Платно — ограничений нет и не было, и цена вполне подъёмная.
НС>Платно их нигде не было, но человек сетовал на отсутствие бесплатно.
Так их таких и для Hg не даётся. В этом разницы нет и не было.
Здравствуйте, Ops, Вы писали:
Ops>·>Для работы гита, может и не нужна, но для работы — нужна. Ops>Кому-то, возможно, нужна, а кому-то нет. Ты же отказываешь в выборе, вываливаю всю эту свалку любому.
А в чём проблема-то конкретно? Выбор есть — не хочешь использовать less и прочее из поставки, не используй.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай