FishHook, я тебе скажу, почему они постят код в архивах и в картинках.
Дело в том, что на каждом форуме свои погремушки. Где-то есть передача кода, а где-то нет, где-то она через одну жопу, где-то - через другую; можно очень долго изучать все особенности всех движков, но проще уж точно защитить передаваемый файл от изменений путём его архивирования. Здесь передача кода есть, но даже она не спасает, потому что все теги кода с именем языка вносят изменения в отображаемый код (дебильный пробел в начале всех кодов на питоне - известная проблема, и если ты такой код напрямую скопируешь и вставишь в пустой линуксовый скрипт с расширением .py , то этот файл не запустится - та-дам!).
Вот просто код обычно и правильно вписан вот так
#!/usr/bin/env python3
print('hello')
В теге “code python” отображается он с пробелом и без второй пустой строки
#!/usr/bin/env python3
print('hello')
При прямом копировании в файл t.py и его запуске выдаётся следующее
[guest@localhost py]$ cat t.py
#!/usr/bin/env python3
print('hello')
[guest@localhost py]$ ./t.py
./t.py: строка 2: синтаксическая ошибка рядом с неожиданным маркером «'hello'»
./t.py: строка 2: `print('hello')'
[guest@localhost py]$
Что человеку, скопировавшему это и запустившему, думать на этот счёт? Что ему код неправильный передали?
Это пример того, как архив спасает от такой канители и пустой траты времени на выяснение того, что, оказывается, люди-то тут ни при чём и всё правильно выкладывают, а это случай, когда движок форума неправильный и что-то там коверкает по дороге.
Вот пропуская этот момент и не пися все подробности, я просто напишу: они пытаются код передать точно. На картинках они код передают, потому что винда не даёт нормально копировать с консоли, там нужно быть академиком, чтобы просто с консоли всё точно скопировать благодаря микрософтовским идиотам, которые свой обыкновенный идиотизм, в результате которого там нет того, этого, пятого и десятого из того, что должно быть, ещё и в ранг грамотного программирования возвели на весь мир. Также в архивах они передают ещё и потому, что файл .py может запуститься случайно, а архив не даст этого сделать. Если архивированный код запустился, то человек его сам разархивировал и запустил. Это у них антивирусная защита “если заражённая програма в архиве, то она никак не запустится и вирус ничего не заразит”. Почему они пакуют в RAR, а не в ZIP. Потому что на сегодняшний день RAR - это лучший упаковщик. Он не только сжимает максимально и сожмёт даже то, что другие упаковщики не сожмут, но и скрывает всю информацию в архивах, защищённых паролем. Если тебе нужно что-то быстро зашифровать, то ты используешь RAR с паролем и кладёшь это на флешку. Никто это не вскроет и не узнает даже, что там за файлы внутри и в каком количестве, в отличие от ZIP'а, у которого тоже типа пароль есть. Поэтому они используют лучший упаковщик, какой у них есть.
Дальше, для индексации, о которой ты пишешь, я всегда, когда отвечаю, кладу на форум текст в теге, который вытащил из их архива, и решение своё. Когда же у меня несколько файлов получается, я их тоже кладу на форум в теге. Но когда у меня получается дерево файлов, которое я хочу передать так, чтобы он скачал, распаковал и запустил именно в том виде, в котором я его приготовил, чтобы все файлы во всех директориях находились всеми скриптами в этом дереве, то я пакую это в архив tar и сжимаю компрессором gzip. Почему я делаю так - потому что и tar, и gzip появились раньше ZIP'а в
его общем понимании. Не знаю, застал ли ты тот момент, когда ZIP'ов было два - досовский и виндовый. И виндовый ZIP имел точно такое же расширение .zip, но при этом в DOS'е не распаковывался, потому что pkunzip.exe не могла распаковать его и писала, что это неизвестный формат. Для распаковки .tar.gz человек точно найдёт способ распаковки и бесплатный. А с .zip он ещё может поебаться неслабо, если тот .zip окажется не таким уж и .zip'ом и каким-то не таким .zip'ом. Даже в лине есть gzip, а есть ещё и zip, и это две разные вещи.
Тут вот есть разные ZIP'ы. Так они друг друга не распаковывают. Чаще всего чем запаковал, тем и распаковывать надо.
[guest@localhost ~]$ .rpmq zip
minizip-1.2.11-2.fc26.x86_64
zip-3.0-18.fc26.x86_64
unzip-6.0-33.fc26.x86_64
bzip2-libs-1.0.6-22.fc26.i686
perl-Compress-Raw-Bzip2-2.074-1.fc26.x86_64
bzip2-libs-1.0.6-22.fc26.x86_64
libzip-1.2.0-1.fc26.x86_64
zziplib-0.13.62-8.fc26.x86_64
bzip2-1.0.6-22.fc26.x86_64
bzip2-devel-1.0.6-22.fc26.x86_64
p7zip-plugins-16.02-3.fc26.x86_64
gzip-1.8-2.fc26.x86_64
p7zip-16.02-10.fc26.x86_64
[guest@localhost ~]$
[guest@localhost ~]$ .rpmq zip | grep -E '^(zip|gzip)-'
zip-3.0-18.fc26.x86_64
gzip-1.8-2.fc26.x86_64
[guest@localhost ~]$
Поэтому когда я пакую в .tar.gz, я всегда уверен в том, что это за архив и чем он распаковывается. А когда я даже в файловом менеджере вижу “запаковать в ZIP”, то я даже приблизительно не могу сказать, чем он это паковать будет и распакуется ли это потом на той стороне тем же виндовым встроенным ZIP-распаковщиком.
Так что я предпочту либо .tar.gz либо .rar для упаковки, так как это строго определённые форматы и в них не будет двусмысленностей. Но упаковщика RAR у меня нет (так как формат платный и его надо крякать), поэтому он идёт на хуй уже давно и надолго, так как я крякерством
больше не занимаюсь. Остаётся только .tar.gz .
P. S.
Ещё вот забыл написать, почему мне похуй на их архивы. Да потому, что если им будут отвечать, код всё равно вылезет (я так и делаю, я уже писал выше), а если им никто не ответит, то и находить его не надо, так как никакой ценности весь его топик не несёт, в нём нет решения.