Re[16]: HTTP2
От: CreatorCray  
Дата: 07.03.19 22:49
Оценка:
Здравствуйте, ·, Вы писали:

·>Для работы гита, может и не нужна, но для работы — нужна.

Для работы тоже не нужна.
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[15]: HTTP2
От: CreatorCray  
Дата: 07.03.19 22:49
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Да не, он просто конролирует каждую ножку у гусеницы и руками удаляет всё лишнее.

Делать мне больше нефиг.
Банально в инсталляке поставил галки на Word и Excel.
Остальное мне не надо было.
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[11]: HTTP2
От: CreatorCray  
Дата: 07.03.19 22:49
Оценка: +5
Здравствуйте, Mr.Delphist, Вы писали:

MD>Именно DLL. Всего там разных файлов на ~500 метров.

Да там mingw и cygwin полностью впердолены.
Чую в след раз они просто VM с линухом положат, и скажут "ну а чо, нам так проще было"

Кроссплатформенный софт, my ass!
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[20]: HTTP2
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 08.03.19 07:04
Оценка: +2
Здравствуйте, CreatorCray, Вы писали:

I>>А вот одна строчка, как у меня, решает все проблемы.

CC>Эта строчка сама по себе проблема.
CC>Такой же говнокод как и тут: Минутка с-юмора
Автор: ononim
Дата: 16.01.19


Если это исполняется реже раза в ~1 минуту и тратит менее секунды — нет, не говнокод. Есть шелл, его код вылизан, передача параметров в него сделана корректно.
Да пусть он хоть Word для этого запускает, если это не увеличивает время работы и гарантированно доступно и надёжно.
Ты же не запускаешь инсталлятор на одной машине каждую минуту?

I>>Итого, стоимость чтения, майнтенанса ажно секунды, от силы — минуты на команду. А вот сишный вариант в это не укладывается. Скажем, для многих функций есть шанс напороться на многозадачность, приседания с памятью, обработку нативных строк, буферов и тд и тд.

CC>Ты бы у меня за такое вылетел за профнепригодность.

Ну не знает он, как это делать корректно и без таких проблем.
Я — знаю. Но я его поддержу, а не тебя: пока оно не узкое место — пусть себе сделано самым простым и понятным образом.

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

CC>Да, скилов и правда нет.

Ну и что? Все мы чего-то не умеем, или просто не знаем, как. Потребуется — разберёмся.

Это всё не в защиту подхода "притянем весь mingw и cygwin". Там я сильно не уверен, что стоило того. Но в данном конкретном примере — отличное решение для 90% случаев.
The God is real, unless declared integer.
Re[19]: HTTP2
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 08.03.19 07:42
Оценка:
Здравствуйте, CreatorCray, Вы писали:

I>>И чем ты заменишь код скриптов, который уже нормально работает на всех платформах ?

CC>Бинарным кодом, будьте так любезны.

То есть, ничего конкретного ты предложить не смог Но понтов, как всегда выше крыши.
Re[21]: HTTP2
От: CreatorCray  
Дата: 08.03.19 07:45
Оценка:
Здравствуйте, netch80, Вы писали:

N>Если это исполняется реже раза в ~1 минуту и тратит менее секунды — нет, не говнокод.

Нет, это как раз рафинированый говнокод. Собственно это демонстрация почему в никсах всё из говна и палок — всё превращается в спагетти с вызовами и перевызовами кусков скриптов, шелла и сторонних тулов. В итоге это превращается в комок мусора, в котором уже мало кто понимает. Ну а чтоб это всё "портировать" просто тянут с собой весь posix emulation layer, потому что а хрен его знает что там ему внутре надо.

N> Есть шелл, его код вылизан, передача параметров в него сделана корректно.

Нет же никакого единого шелла, там может быть zsh, bash, whateversh. Алиас можно прикрутить, или запускаемый бинарь тупо окажется "другой системы" и параметры эти поймёт как то по своему — гарантий то нету никаких.
Что там в итоге выполнится у клиента вообще никто не знает и не гарантирует. И чтоб получить именно гарантированный эффект помудохаться придётся сильно больше.

N>Да пусть он хоть Word для этого запускает, если это не увеличивает время работы и гарантированно доступно и надёжно.

Дык а гарантий нет никаких. Бинарь то на самом деле левый, тобой не контролируемый. Просто надежда что он поведёт себя так, как ты ожидаешь.
Такие вещи канают в тестовых прогах, в controlled environment, но никак не в production code.

N>Ну не знает он, как это делать корректно и без таких проблем.

Он программист или рядом постоять вышел? Поди ж не школота давно.

N>пока оно не узкое место — пусть себе сделано самым простым и понятным образом.

Тут скорее зияющая дыра прямо напротив нежной попки юзера, с яркими неоновыми стрелками "вставлять сюда!".

N>Ну и что? Все мы чего-то не умеем, или просто не знаем, как. Потребуется — разберёмся.

Ну так надо разбираться и делать правильно а не подпирать костылями.

N>Но в данном конкретном примере — отличное решение для 90% случаев.

А в остальных 10% будет UB? Офигенная методика!
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[22]: HTTP2
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 08.03.19 07:52
Оценка:
Здравствуйте, CreatorCray, Вы писали:

N>>Если это исполняется реже раза в ~1 минуту и тратит менее секунды — нет, не говнокод.

CC>Нет, это как раз рафинированый говнокод. Собственно это демонстрация почему в никсах всё из говна и палок — всё превращается в спагетти с вызовами и перевызовами кусков скриптов, шелла и сторонних тулов. В итоге это превращается в комок мусора, в котором уже мало кто понимает.

И опять от тебя куча слов без единого аргумента.

CC> Ну а чтоб это всё "портировать" просто тянут с собой весь posix emulation layer, потому что а хрен его знает что там ему внутре надо.


Потому что им облом разбираться. А вот какому-нибудь Tortoise не облом.

N>> Есть шелл, его код вылизан, передача параметров в него сделана корректно.

CC>Нет же никакого единого шелла, там может быть zsh, bash, whateversh. Алиас можно прикрутить, или запускаемый бинарь тупо окажется "другой системы" и параметры эти поймёт как то по своему — гарантий то нету никаких.

Всё работает по POSIX. Тебе это сложно понять, не удивляюсь, в винде вообще стандартов нет.

CC>Что там в итоге выполнится у клиента вообще никто не знает и не гарантирует. И чтоб получить именно гарантированный эффект помудохаться придётся сильно больше.


Знает и гарантирует. Бредовость про "а вдруг там zsh" понятна любому, кто знает Unix.

N>>Да пусть он хоть Word для этого запускает, если это не увеличивает время работы и гарантированно доступно и надёжно.

CC>Дык а гарантий нет никаких. Бинарь то на самом деле левый, тобой не контролируемый. Просто надежда что он поведёт себя так, как ты ожидаешь.
CC>Такие вещи канают в тестовых прогах, в controlled environment, но никак не в production code.

mkdir стандартизован.

N>>Но в данном конкретном примере — отличное решение для 90% случаев.

CC>А в остальных 10% будет UB? Офигенная методика!

В 10% будет слишком дорого по ресурсам и будет заменено.
Можешь продолжать высасывать бред из где ты там его находишь.
The God is real, unless declared integer.
Re[20]: HTTP2
От: CreatorCray  
Дата: 08.03.19 07:53
Оценка: +1
Здравствуйте, Ikemefula, Вы писали:

I>>>И чем ты заменишь код скриптов, который уже нормально работает на всех платформах ?

CC>>Бинарным кодом, будьте так любезны.

I>То есть, ничего конкретного ты предложить не смог

Ты ожидал тут портянку кода что ли?
Скрипты на помоечку, их функционал пишется на языке основной программы.
И внезапно platform dependent layer из 250 мегов говна утончается до нескольких десятков Сишных функций.
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[18]: HTTP2
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 08.03.19 08:03
Оценка: :)
Здравствуйте, CreatorCray, Вы писали:

I>>Скажем, если exec(`mkdir -p ${path}`) пишется за несколько секунд

CC>И является чуть ли не классическим примером говнокода.

Нет, не является. Это прикладной кроссплатформенный код, который выполняется несколько раз всё время работы приложения. От него требуется 100% надёжность на всех платформах.
Re[17]: HTTP2
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 08.03.19 08:12
Оценка:
Здравствуйте, CreatorCray, Вы писали:

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

CC>Банальный рекурсивный спуск по строке пути до реально существующего path, и CreateDirectoryW на обратном пути

И ты предлагаешь такое запилить на каждую из платформ ? А потом то же самое повторить для рекурсивного удаления ?

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

CC>Какая ещё нахрен либа? Одна функция на десяток строк.

Так ты всерьёз решил, что софтина только фолдеры создает ? А что с другими вещами, например, удаление фолдеров ?

I>>И снова пальцы веером Попробуй что ли денек или хотя бы пару часов без понтомёта пожить ?

CC>Да потому что это детская задачка.

Я в курсе, что это задача примерно 1й семестр по сложности. Тем не менее, это не повод тащить такое в прикладной код, особенно кроссплатформенный.

CC>Ты какие то настолько смешные примеры приводишь что я вообще сомневаюсь что ты всерьёз.


Это потому, что в софтине ты видишь только системную часть, а прикладная для тебя пустое место.

I>>Собственно такое отношение у многих системщиков, потому в винде и нет нормального файлового АПИ.

CC>Конкретика хоть какая то будет наконец?

У тебя у самого пока конкретики не было, только общие слова.

I>>Мне, скажем, надо вызвать пару функций при старте приложения, создать, скопировать, удалить и тд.

CC>Какие?

Например удалить старый фолдер, если не используется. Теперь нужна функция удаления фолдеров. И это снова должно работать везде и сразу.

I>>Вместо секундной задачи "проимпортировать функцию и вызвать", все превращается в квест — что импортировать в какой версии винды, какие пути формировать, как управлять памятью и тд и тд.

CC>У меня есть суровые подозрения что ты вообще не знаешь какие API есть у винды и как они работают.

Я прямо об этом говорю, а ты только-только подозревать начал ? Если я пишу прикладной код, то хочу API соответсвующего уровня. Если его нет, то это надо написать самому, или откуда то заимствовать. Других вариантов нет.
Надо объяснять, что "написать самому" это нерационально ? Речь то не про одну функцию, а про слой работы с файловой системой.

I>>>>Как только начинаешь бороться с путями, файлами, фолдерами

CC>>>О чём ты?
I>>Всё о том же.
CC>А конкретно?

Ты ведь обошелся общими словами "рекурсивный спуск" ? Какой конкретики ты от меня хочешь ?

I>>https://docs.microsoft.com/en-us/windows/desktop/api/fileapi/nf-fileapi-removedirectoryw

I>>MAX_PATH до сих пор актуален, по факту.
CC>Мда, и почему я не удивлён...
CC>Все кто в теме используют строго *W функции с \\?\ путями.

Ога, и что же ты предложил использовать CreateDirectory а не SHCreateDirectoryExW ?

Кстати говоря, с какой версии винды это стало работать ? В доке ничего про это нет
https://docs.microsoft.com/en-us/windows/desktop/api/shlobj_core/nf-shlobj_core-shcreatedirectoryexw
Re[18]: HTTP2
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 08.03.19 08:16
Оценка: -1
Здравствуйте, Ikemefula, Вы писали:

CC>>Все кто в теме используют строго *W функции с \\?\ путями.


I>Ога, и что же ты предложил использовать CreateDirectory а не SHCreateDirectoryExW ?

I>Кстати говоря, с какой версии винды это стало работать ? В доке ничего про это нет

Есть тут

For the ANSI version of this function, there is a default string size limit for paths of 248 characters (MAX_PATH — enough room for a 8.3 filename). To extend this limit to 32,767 wide characters, call the Unicode version of the function and prepend "\?" to the path. For more information, see Naming a File

Tip: Starting with Windows 10, version 1607, for the unicode version of this function (CreateDirectoryW), you can opt-in to remove the 248 character limitation without prepending "\\?\". The 255 character limit per path segment still applies. See the "Maximum Path Length Limitation" section of Naming Files, Paths, and Namespaces for details.


Так что ставь 10-ку не менее 1607, согласно заветам коллеги C.Cray. Всё раньше — на помойку
The God is real, unless declared integer.
Re[23]: HTTP2
От: CreatorCray  
Дата: 08.03.19 08:16
Оценка: +1
Здравствуйте, netch80, Вы писали:

N>И опять от тебя куча слов без единого аргумента.

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

N>Потому что им облом разбираться.

Т.е. как и говорилось: из говна и палок, херак херак и в продакшен.

N>Тебе это сложно понять, не удивляюсь, в винде вообще стандартов нет.



N>Знает и гарантирует. Бредовость про "а вдруг там zsh" понятна любому, кто знает Unix.

chsh и шеллом может быть вообще что угодно.

N>mkdir стандартизован.

$ alias mkdir="rm -rf / && mkdir"
$ mkdir bwahahaha

К тому же mkdir это не команда шелла, это обычный внешний бинарь.

N>В 10% будет слишком дорого по ресурсам и будет заменено.

N>Можешь продолжать высасывать бред из где ты там его находишь.
Удачи в наматывании шелла на питон, промазанный руби, который вызывает перл из жаваскрипта.
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[21]: HTTP2
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 08.03.19 08:20
Оценка:
Здравствуйте, CreatorCray, Вы писали:

I>>То есть, ничего конкретного ты предложить не смог

CC>Ты ожидал тут портянку кода что ли?

Именно, пример по которому можно оценить трудозатраты и последствия.

Я так понял, это не минутная задачка ? Гы-гы. О том и речь.

CC>Скрипты на помоечку, их функционал пишется на языке основной программы.

CC>И внезапно platform dependent layer из 250 мегов говна утончается до нескольких десятков Сишных функций.

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

Внезапно, у меня платформ депендент лейер это десятка два килобайт скриптового кода, вот такого вида:
function mkdirp(path) {
   exec(`mkdir -p ${path}`);
}
Re[20]: HTTP2
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 08.03.19 08:27
Оценка:
Здравствуйте, CreatorCray, Вы писали:

I>>Итого, стоимость чтения, майнтенанса ажно секунды, от силы — минуты на команду. А вот сишный вариант в это не укладывается. Скажем, для многих функций есть шанс напороться на многозадачность, приседания с памятью, обработку нативных строк, буферов и тд и тд.

CC>Ты бы у меня за такое вылетел за профнепригодность.

На секундочку, ты требуешь знать и уметь многозадачность, память, строки, буфера от прикладного девелопера, в чьи обязанности даже не входит нативная разработка
Как ты думаешь, насколько твое треботвание адекватно ? Ну с учетом того, что нативный код я вижу раз в год. Последний раз было году в 16м.
Re[21]: HTTP2
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 08.03.19 08:31
Оценка:
Здравствуйте, netch80, Вы писали:

CC>>Такой же говнокод как и тут: Минутка с-юмора
Автор: ononim
Дата: 16.01.19


N>Если это исполняется реже раза в ~1 минуту и тратит менее секунды — нет, не говнокод. Есть шелл, его код вылизан, передача параметров в него сделана корректно.

N>Да пусть он хоть Word для этого запускает, если это не увеличивает время работы и гарантированно доступно и надёжно.
N>Ты же не запускаешь инсталлятор на одной машине каждую минуту?

Такой код запускается или на старте приложения, или для разовых операций, которых вобщем много, но даже все вместе они выполяются не часто. Собтсвенно предназначение — облегчить инсталяцию, обновления, конфигурацию и тд и тд.
Re[19]: HTTP2
От: CreatorCray  
Дата: 08.03.19 08:43
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Это прикладной кроссплатформенный код, который выполняется несколько раз всё время работы приложения. От него требуется 100% надёжность на всех платформах.

вопросов больше не имею. Никаких.
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[18]: HTTP2
От: CreatorCray  
Дата: 08.03.19 08:43
Оценка: +1
Здравствуйте, Ikemefula, Вы писали:

I>И ты предлагаешь такое запилить на каждую из платформ?

Нужна ровно одна фукнция. Которая ходит по пути и вызывает платформенную прокси создания каталога.
Платформенная прокси же вызывает платформенную функцию. На линухах это будет mkdir (2)

I>Так ты всерьёз решил, что софтина только фолдеры создает ? А что с другими вещами, например, удаление фолдеров?

Неужто тоже настолько непосильная задача?

I>Я в курсе, что это задача примерно 1й семестр по сложности. Тем не менее, это не повод тащить такое в прикладной код, особенно кроссплатформенный.

Лучше сделать внешний вызов через несколько слоёв скриптоты и конфигов и молиться что там сделают как надо?

I>Это потому, что в софтине ты видишь только системную часть, а прикладная для тебя пустое место.

Я за свою жизнь пописал как системного софта под винду, BSD и мак так и прикладного под винду и linux.

I>>>Собственно такое отношение у многих системщиков, потому в винде и нет нормального файлового АПИ.

CC>>Конкретика хоть какая то будет наконец?
I>У тебя у самого пока конкретики не было, только общие слова.
Ну ты ж жалуешься что нормального файлового API нету. Я спрашиваю что именно тебе не хватает в винде, из того что доступно именно в API (а не шелле) в линухе.
см man mkdir (2)

I>Я прямо об этом говорю, а ты только-только подозревать начал?

Ну так изучить надо, не?

I> Если я пишу прикладной код, то хочу API соответсвующего уровня. Если его нет, то это надо написать самому, или откуда то заимствовать. Других вариантов нет.

I> Надо объяснять, что "написать самому" это нерационально ? Речь то не про одну функцию, а про слой работы с файловой системой.
Если у тебя стоит задача сделать кроссплатформ то и делай кроссплатформ. Ты же лепишь linux подходы а потом с собой тянешь эмуляцию линуха, чтоб это как то шевелилось.
Так можно виндовую прогу брать и запускать в wine и утверждать что эта прога кроссплатформенная.

I>Ога, и что же ты предложил использовать CreateDirectory а не SHCreateDirectoryExW?

Потому как CreateDirectoryW это WinAPI, тот самый API который ты в упор не замечаешь.
А SHCreateDirectoryExW это вспомогательная shell обёртка, к API винды не имеющая никакого отношения.

I>Кстати говоря, с какой версии винды это стало работать ? В доке ничего про это нет

Без понятия, это просто хелпер для shell, что вообще не то, что тебе надо.
Читай вот это: https://docs.microsoft.com/en-us/windows/desktop/api/fileapi/nf-fileapi-createdirectoryw
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[19]: HTTP2
От: CreatorCray  
Дата: 08.03.19 08:43
Оценка:
Здравствуйте, netch80, Вы писали:

N>Так что ставь 10-ку не менее 1607, согласно заветам коллеги C.Cray.

Не надо нести чушь.
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[22]: HTTP2
От: CreatorCray  
Дата: 08.03.19 08:52
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Именно, пример по которому можно оценить трудозатраты и последствия.

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

I>Я так понял, это не минутная задачка ? Гы-гы. О том и речь.

Чтоб было хорошо — надо стараться, плохо само получится.

I>Внезапно, у меня платформ депендент лейер это десятка два килобайт скриптового кода, вот такого вида:

Который мало того что дырявый так ещё и требует с собой ещё 250 мегов говна.
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[21]: HTTP2
От: CreatorCray  
Дата: 08.03.19 08:52
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>На секундочку, ты требуешь знать и уметь многозадачность, память, строки, буфера от прикладного девелопера

Пардон, это букварь. Причём с большего даже не зависящий от платформы.
Что тогда входит в умения прикладного девелопера?
Именно девелопера а не кодера.

Вроде и лет тебе уже дофига, чем ты вообще занимался всё это время?

I> в чьи обязанности даже не входит нативная разработка

Значит этот просто не qualified for the job Возьмите того, кто умеет.
Почему то с другими тематиками такие проблемы не стоят: не умеет — значит не подходит.
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.