Метатабличный / Говнокод #19957 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
do
	local name = {"Маша ","Алиса ","Анджела ","Настя ","Петровна ","Василиса ","Олег "}
	local beauty = {"Супер ","Так себе ","Очень даже ничего ","Ужас! "}
	local len_n, len_b = #name, #beauty
	math.randomseed(os.time())

	local kurwa = {}

	function kurwa:cr()
		local t = {}
		t.money = math.random(1000,100000)
		t.name = name[math.random(1,len_n)]
		t.b = beauty[math.random(1,len_b)]
		return setmetatable(t, {__index = self})
	end
	
	function kurwa:say()
		local x
		if self.name ~= name[7] then
			x = " она "
		else
			x = " он "
		end
		print("Имя: "..self.name.."Оплата труда: "..self.money..x..self.b)
	end
	
	for i=1, 5 do --заказываем 5 курв
		table.insert(kurwa, kurwa:cr())
	end
	
	for cv,kw in ipairs(kurwa) do
		print("№"..cv)
		if type(kw) == "table" then
			kw:say()
		end
	end
end

Симулятор Случайных шлюх

Запостил: Sfabrikan Sfabrikan, (Updated )

Комментарии (65) RSS

  • Чо за хуйня, заказал шлюх, а пришло 5 Олегов
    Ответить
      • Чо за хуйня, я уже джве недели жду, но не кто не пришел
        Ответить
            • Вот однажды не меня так наебали, только с пиццой, не я 2 недели ждал когда привезут и не я здох от голода
              Ответить
  • я посмотрю кто то решил игры писать и на говнокоде тренируется

    к чему это здесь?
    Ответить
            • Раньше это в порядке вещей было. Сейчас тоже дистрибьютят запакованными, но SFX и с установкой. Причём иногда с явной стадией распаковки. Но раньше каноничнее было. Просто архив и есть дистрибутив. Ну раньше и геймеры были другие, могли открыть архив, распаковать, поправить конфики и запустить.
              Ответить
            • Хуй знает. Я вот, когда мне надо послать какие-то файлы в архиве человеку, использующего винду, завёл за правило паковать в zip.
              Ответить
                      • Не только может, но и хочет. А в заголовке то нету поля с кодировкой...
                        Ответить
                          • В утф-8 сохраняет (или это потому что текущая локаль утф-8?).
                            Ответить
                            • В зипе имя файла встречается два раза: один раз непосредственно перед потоком (заголовок PK\003\004), второй раз в конце архива в сводном каталоге (заголовок PK\001\002).

                              Какой-то из архиваторов для Винды сохранял в одном месте имя в текущей кодировке Windows (ANSI/cp1251), а в другом месте в текущей кодировке DOS (ΟΕΜ/cp866). Это вызывало проблемы с другими архиваторами, у которых было другое соглашение о кодировках (халявный Info-ZIP в обоих местах использует одну кодировку, если я не ошибаюсь).

                              В общем, надо тестировать. У меня такое подозрение, что архиватор тупо сохраняет в текущей кодировке и не парится.
                              Ответить
                              • Хуле тестить, если в стандарте не прописано что там юникод - все хуйня.
                                Ответить
                                • Я понял. Если в стандарте не написано про Юникод, то реализовывать его не обязательно и глупо надеяться на то, что он где-то будет работать.

                                  Однако, люди присылают архивы с именами файлов, содержащими символы за пределами ASCII. Архиватор (даже фирменный PKZIP) не фильтрует эти символы, поэтому это говно с нестандартными символами приходится распаковывать. Вот и тестирую.
                                  Ответить
                                  • > реализовывать его не обязательно
                                    А как его реализуешь то? Разве что частотным анализом пытаться угадать кодировку (а это и для одного языка с трудом работает). Ну либо поступить как в никсах - положить хуй на все эти legacy кодировки и таки придти к стандарту utf-8...
                                    Ответить
                                    • > А как его реализуешь то?

                                      В Винраре придумали «проприетарщину»: свой тег с именем файла, продублированном в UTF-8.
                                      Ответить
                                        • Не знаю. Из перечисленных в этом ГК ни один не поддержал. Придётся протестировать всё говно, имеющее встроенную поддержку зипа.
                                          Ответить
                                        • > А кто-то ещё эту идею поддержал?

                                          У WinZIP и WinRAR формат совпал: они понимают комментарии в UTF-8, созданные друг другом.
                                          Ответить
                            • ╔═════════╦════════════╤════════════╗
                              ║         ║ PK\003\004 │ PK\001\002 ║
                              ╠═════════╬════════════╪════════════╣
                              ║PKZIP    ║ 1251       │ 866        ║
                              ╟─────────╫────────────┼────────────╢
                              ║Info-ZIP ║ 1251       │ 1251       ║
                              ╟─────────╫────────────┼────────────╢
                              ║7za      ║ 866        │ 866        ║
                              ╚═════════╩════════════╧════════════╝


                              В Винде три указанных архиватора игнорируют CHCP и уникодные символы сохранять отказываются.
                              Ответить
                              • Проверяем распаковку в Винде:
                                1. Info-ZIP портит имена файлов, упакованных пэказипом и семьзипом. Он ожидает, что сводный каталог (PK\001\002) будет в кодировке ANSI/1251.

                                2. 7-zip распаковывает архивы, созданные пэказипом, но портит имена файлов в архивах, созданных инфозипом.

                                3. PKZIP распаковывает архивы, созданные семьзипом, но портит имена файлов в архивах, созданных инфозипом.

                                Итого: Info-ZIP в Винде соснул.
                                Ответить
                                • Снёс я его в рамках борьбы с нелицензионным ПО... Сейчас поставлю...

                                  Консольный WinRAR делать зипы не умеет, а оконный WinRAR оба заголовка добавляет в кодировке 866 с комментарием (собственным тегом) в кодировке UTF-8.

                                  PKZIP и 7-zip его файлы распаковывают (с потерей символов, не уложившихся в восьмибитную кодировку), а Info-ZIP снова соснул. Винраровский комментарий в UTF-8 не понимает никто.
                                  Ответить
                                • Не могу проверить: она у меня перестала работать. Придётся в очередной раз пытаться починить.
                                  Ответить
                                • Починил. Оба заголовка в 866. Файлы с «нерусскими» символами упаковывать отказывается.

                                  И да, она не встроенная. Это фильтр для Проводника. У некоторых сторонних архиваторов есть такие же фильтры.
                                  Ответить
                                  • А если файл с кириллическим именем запакован на винде с русской локалью а распакован с некириллической - получишь козюбрики.
                                    Ответить
                                    • Это общая проблема всех неюникодовских кодировок...

                                      В примерах я для простоты указал 1251 и 866, а в реальности могут быть разные кодировки. Мне страшно представить, как распакуется архив, упакованный в Греции.
                                      Ответить
                                      • Я поэтому и ответил http://govnokod.ru/19957#comment328334 . Соседка не смогла скачать файлы с мылрушечки, лол. Ну зашел, скачал файлы в зипе, открыл на семерке с немецкой локалью - а там козабры. Пришлось по файлу скачивать.
                                        Ответить
                                        • Да, кстати, хороший вопрос, в какой кодировке упаковывают файлы онлайн-сервисы, предлагающие всё скачать одним архивом.

                                          Где-то (уже не помню точно, где) натыкался на файлы, имена которых состояли только из знаков подчёркивания.
                                          Ответить
                                        • Кстати, а в Германии из восьмибитных распространены 850/858 и 1252 или ещё куча кодировок ходит?
                                          Ответить
                              • Обновляем табличку:
                                ╔════════════╦════════════╤════════════╗
                                ║            ║ PK\003\004 │ PK\001\002 ║
                                ╠════════════╬════════════╪════════════╣
                                ║PKZIP       ║ 1251       │ 866        ║
                                ╟────────────╫────────────┼────────────╢
                                ║Info-ZIP    ║ 1251       │ 1251       ║
                                ╟────────────╫────────────┼────────────╢
                                ║7za         ║ 866        │ 866        ║
                                ╟────────────╫────────────┼────────────╢
                                ║zipfldr.dll ║ 866        │ 866        ║
                                ╟────────────╫────────────┼────────────╢
                                ║WinRAR      ║ 866 + UTF-8│ 866 + UTF-8║
                                ╚════════════╩════════════╧════════════╝

                                * WinRAR хранит имена в UTF-8 в собственном теге, не поддерживаемом другими архиваторами.
                                Ответить
                            • То есть этот зип будет только на прыщах работать.

                              >или это потому что текущая локаль утф-8?
                              Или даже не на всех прыщах.
                              Ответить
                              • Ну тип того.

                                Но хотя бы почти на всех никсах (изкоробки сейчас везде utf-8, чтобы выбрать какой-нибудь koi8-r надо попердолиться). На маках вроде тоже должно открыться. А архивы, созданные виндой, даже в другой стране не почитаешь...

                                З.Ы. Бесит эта привязка кодировки к локали.
                                Ответить
                    • УМВР
                      http://i.imgur.com/3e7dvzZ.png
                      Вот при открытии проводником - не работает, юникод заменяется на ASCII - http://i.imgur.com/5Yqk4ko.png. Но файлы открываются, а это всяко лучше, чем "Ой, а что это вы мне прислали такое, какие-то rar непонятные...".
                      Ответить
                      • > УМВР
                        Пиздец. Лучше бы не работало.

                        З.Ы. Или файл именно так и должен называться, как на скрине с венраром?
                        Ответить
                    • Кстати, недавно заметил, что гуглопочта предлагает выбрать кодировку для скачивания нескольких файлов, чтобы запилить в архивчике понятные имена.
                      Ответить
                • ZIP — это формат, а не архиватор. О каком архиваторе речь: об оригинальном PKZIP, о WinZIP, об Info-ZIP (известном линуксоидам как просто zip/unzip), о «плагине» для Проводника zipfldr.dll или вообще об архиваторе, встроенном в 7-zip/WinRAR/что-то ещё?
                  Ответить
                  • Дык в этот формат поле для кодировки завезли? Или стандарт, в котором жёстко прописана одна кодировка, например utf-8, раз уж поля нет?

                    Вот и каждый дрочит так как хочет...
                    Ответить
                    • Скажу больше: ZIP — это не жёсткий формат, а коллекция тегов, как TIFF. Любой разработчик может добавлять свои теги, которые будут проигнорированы остальными реализациями.

                      Так, например, Info-ZIP для каждого файла хранит три даты (дату создания, дату изменения и дату последнего доступа), а PKZIP только одну. Некоторые реализации добавляют специальный тег, содержащий юниксовые атрибуты и права доступа (типа как в tar). Чисто теоретически можно было бы добавить и тег с кодировкой.

                      > Вот и каждый дрочит так как хочет...
                      Угу. PKZIP пошёл по странному пути и стал хранить в одном заголовке имена в досовской кодировке, в другой — в виндовой, чтобы ничего не потерялось (хотя сам и не умеет восстанавливать потерянные символы, если архив распаковывается на машине с другой системной кодировкой).

                      Info-ZIP вообще отказался от совместимости с DOS и решил сохранять всё в той кодировке, которая для данной системы считается дефолтной (в Винде — в виндовой кодировке, в Линуксе — в UTF-8 или в какой-то ещё).
                      Ответить
                      • У RAR'а вроде только алгоритм разжатия открытый. А алгоритом зожатия секретный.
                        Ответить
                      • unrar в жопаэльке с ограничением на реверс инжиниринг алгоритма сжатия, так что на кодировку имен файлов стандарт таки есть.
                        Ответить
                    • http://xkcd.com/927/

                      По идее обладателем «стандарта» на ZIP является компания PKWARE. Но мы живём в мире, в котором существует более 9000 реализаций зипа, и с этим приходится как-то жить.
                      Ответить
                    • Ещё одно замечание по стандартам: W3C выпускает стандарты для веба, однако, разработчики Интернет Эксплорера и Хрома им не следуют.

                      Что делать? Натравить Мизулину, чтобы она заблокировала за пропаганду извращений сайты, распространяющие Интернет Эксплорер и Хром?
                      Ответить
  • Смеяться тут.
            ___
            \_/
             |
             |
             |
             |
             |
             |
             |
           __|__
          |  ^  |
          |     |
          \ \_/ /
           '._.'
    Ответить
  • мальчик, а ты уроки на завтра сделал? Смотри, папа ремня всыпит
    Ответить

Добавить комментарий

Семь раз отмерь — один отрежь, guest!

    А не использовать ли нам bbcode?


    8