- 1
function foo() { return typeof null === 'undefined'; } for (var i = 0; i < 1000; i++) console.log(foo());
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−38
function foo() { return typeof null === 'undefined'; } for (var i = 0; i < 1000; i++) console.log(foo());
Открываем стабильный хром и запускаем в консоли.
Lokich 24.06.2016 14:17 # 0
roman-kashitsyn 24.06.2016 14:29 # +4
Наблюдавшиеся мной значения N и M:
134 : 866
131 : 869
132 : 868
262 : 738
263 : 737
UPD:
6a6yuH 28.09.2019 02:31 # −1
MAKAKA 06.08.2020 23:55 # 0
guest 24.06.2016 14:20 # −15
kurwa-nextgen 24.06.2016 14:33 # −1
Просто в плюсах, например, тоже можно понаписать говнокода, который будет выдавать рандомные результаты - это называется undefined behavior. Такой код просто не надо писать.
Возможно сабжевый говнокод - это тоже типа UB?
guestinho 24.06.2016 14:38 # −15
JS взял "worst from both worlds" просто
MaaKut 27.07.2022 13:02 # 0
Какой тургор )))
3_14dar 24.06.2016 14:42 # −15
Это наследие низкоуровневых языков, когда в переменные попадает неинициализированная память. Нахуя это в и так тормозных скриптовых языках?
kurwa-nextgen 24.06.2016 14:49 # −1
1024-- 24.06.2016 15:50 # 0
А в стандартик таки поднасрали, пользуясь отрицанием этого глубокого утверждения :(
6a6yuH 28.09.2019 02:30 # 0
1024-- 23.01.2020 19:14 # 0
Имел в виду
Но то, что они различаются - говно.
guestinho 24.06.2016 15:13 # −11
3.14159265 25.06.2016 14:15 # +1
>наследие низкоуровневых языков, когда в переменные попадает неинициализированная память
Лолшто? Большую часть UB в сишках/крестах порождают отнюдь не переменные с мусором, а тот факт что там вокруг UB.
Даже такая тупая штука как сдвиг и та UB-unsafe.
uninitialized линтеры отлично отлавливают. Проблемы браузеров - фатальное сочетание чрезмерной их сложности, хуёвых языков и поистине царских питумизаций.
guest8 28.09.2019 02:39 # −999
BATHNK 28.09.2019 06:42 # −102
https://sukofamily.org/wp-content/uploads/2014/02/sochi-toilets-2.jpg
3.14159265 24.06.2016 17:20 # +1
1. Однопоточный недетерминизм.
> typeof null === 'undefined'
2. Прямое копротивление штандарту.
hormand 28.09.2019 11:35 # −90
guest 24.06.2016 14:45 # −15
3_15dar 08.04.2017 19:49 # −26
inkanus-gray 24.06.2016 15:09 # 0
http://codepen.io/anon/pen/JKERaZ
yamamoto 24.06.2016 18:56 # +1
inkanus-gray 24.06.2016 19:20 # +1
bakagaijin 26.06.2016 19:58 # +3
hormand 28.09.2019 11:37 # −89
dm_fomenok 24.06.2016 15:10 # −12
3oJloTou_xyu 24.06.2016 15:40 # +6
inkanus-gray 24.06.2016 19:21 # +5
bormand 24.06.2016 19:52 # −9
Her 24.06.2016 15:15 # −15
zxxc 24.06.2016 16:10 # +1
так тоже работает
inkanus-gray 24.06.2016 16:15 # +1
zxxc 24.06.2016 16:20 # +1
function foo() { return typeof null === 'undefined'; } for (var i = 0; i < 1000; i++) console.log(foo());
прикольно просто что в глючный вариант добавляешь часть которая вроде ничего не меняет, а глюк пропадает
если добавляешь use strict вначале - то уменя в два раза чаще false появляются
inkanus-gray 24.06.2016 16:24 # −1
Выходит, что когда выражение без +'', Хром включает какую-то оптимизацию и оптимизатор всё портит?
inkanus-gray 24.06.2016 16:32 # 0
Iron 50:
typeof null === 'undefined' возвращает 164 раза false и 836 раз true.
С 'use strict' возвращает 333 раза false и 667 раз true.
typeof null === 'undefined'+'' всегда возвращает false.
Iron 49:
typeof null === 'undefined' всегда возвращает false. Воспроизвести глюк не удалось.
Что-то сломали в 50-й версии.
zxxc 24.06.2016 16:13 # +2
3.14159265 24.06.2016 17:22 # +4
Благо у меня:
1. нет автообновления
2. не юзаю хром кроме как реплицировать баги
guest 24.06.2016 22:45 # −13
3.14159265 25.06.2016 14:11 # +2
guest 25.06.2016 22:56 # −14
3_dar 24.06.2016 17:54 # −16
В vk уже несколько дней срут это
guest 25.06.2016 22:57 # −12
gost 26.06.2016 19:59 # +2
hormand 28.09.2019 11:39 # −101
gost 24.06.2016 20:47 # 0
3.14159265 24.06.2016 20:50 # +2
qwemaze 25.06.2016 01:29 # 0
inkanus-gray 25.06.2016 01:55 # 0
Фуррифокс и Хром матерятся на пробел после слова “numeric” (точнее, они не сообщают, что виноват пробел, они лишь пишут, что значение numeric “out of range”, а лишний пробел можно заметить только при внимательном рассмотрении).
Сафари (в Windows) молча возвращает NaN. Убрав вызов parseInt, я понял, что Сафари игнорирует параметры toLocaleString. В общем, заставить его сменить формат мне не удалось.
А что показывает Эдж?
inkanus-gray 25.06.2016 02:27 # 0
Ну хоть что-то в Хроме сделали правильно.
1024-- 25.06.2016 09:44 # +2
В Firefox toLocaleString может выдать питушню на час больше. Я такое видел под линуксом, хотя под виндою у меня всё работает, в отличие от других https://bugzilla.mozilla.org/show_bug.cgi?id=1147872
bormand 25.06.2016 11:02 # −11
Лол. Воркэраунд - подождите до ноября.
inkanus-gray 25.06.2016 12:10 # +3
В общем, в кино нам обещают самошнурующиеся кроссовки и летающие автомобили, а в реальности в 2016-м году нет стандартного способа обновления таблиц часовых поясов, которые пидорасы-правители меняют каждые полгода, хотя каждый раз обещают, что этот раз последний.
bakagaijin 26.06.2016 20:03 # 0
inkanus-gray 25.06.2016 13:55 # +3
Зато удалось обнаружить кое-что другое:
inkanus-gray 25.06.2016 13:56 # +3
inkanus-gray 25.06.2016 13:56 # +2
3.14159265 25.06.2016 15:37 # +2
>интервал между постами < 1 мин.
Поделитесь секретом. Какой-нить karma-runner, который запускает тест в N браузерах?
inkanus-gray 25.06.2016 16:07 # +1
Продолжим шоу. Тест на удалённых машинах в Линуксе:
http://browsershots.org/http://codepen.io/anon/pen/ZOLvGQ
Тест на удалённых машинах в Макоси:
http://browsershots.org/https://jsfiddle.net/yrqh95qs/
Результатов в Макоси пока нет, но вы там держитесь периодически нажимайте кнопку «Extend», пока не дойдёт очередь.
Кстати, у кого-нибудь с Говнокода есть доступ к Макоси? Уже стало интересно, как в ней реализовали toLocaleString в разных браузерах.
inkanus-gray 25.06.2016 16:27 # 0
inkanus-gray 25.06.2016 14:04 # +1
Выводы:
1. В Интернет Эксплорере, в Сафари (под Виндой) и в Престо положили прибор на toLocaleString.
2. Вывод toString в разных браузерах может немного отличаться (в IE почему-то год засунули после часового пояса).
3. Результат может зависеть от версии: в Хроме до двадцатой версии toLocaleString совпадала с toString; в Фаерфоксе до ≈ 31 версии toLocaleString была реализована костыльно.
inkanus-gray 25.06.2016 16:36 # +1
guest 25.06.2016 02:45 # −11
inkanus-gray 25.06.2016 03:24 # +2
I have attached a screenshot to this showing the output. Please note that we are no longer working on IE feature bugs any longer unless they are security related.
All the best,
The MS Edge Team
*****
В общем, я сдался и нагуглил, что, например, для португальского языка IE11 между числом и месяцем вставляет предлог «de». Предположил, что Эдж добавляет к числу пробел.
*****
Потом ещё погуглил. Всё оказалось страшнее. Уж лучше бы он добавлял пробел.
gost 26.06.2016 20:07 # 0
Что там?! Не тяни, интересно же!
inkanus-gray 26.06.2016 20:08 # +1
inkanus-gray 26.06.2016 21:17 # +3
В Уникоде же решили скрестить ежа с ужом и в результате получилось ни два, ни полтора: и семантика реализована наполовину, и типографика реализована наполовину.
Зачем это всё тащить в toLocaleString, если мне нужно получить только число, а уж как его вывести, я и сам разберусь? Если я сам задал локаль, то по идее я должен знать, слева направо или справа налево должен выводиться результат.
3.14159265 25.06.2016 14:31 # +1
Сафари и старые браузеры (в т.ч. предыдущие ишаки) не поддерживают - это всё. Без полифилов и костылей уже не обойтись.
guest 25.06.2016 02:47 # −15
inkanus-gray 25.06.2016 03:28 # +1
На самом деле для современных браузеров достаточно было бы написать word-wrap: break-word; и разбавлять текст пробелами не понадобилось бы, но, увы, так сделали. Так что приходится критические фрагменты заворачивать в [code], чтобы не разбавлялись.
LispGovno 25.06.2016 03:32 # 0
Неудачник. Можно и проще
inkanus-gray 25.06.2016 03:48 # +1
3_15dar 08.04.2017 19:50 # −26
3.14159265 25.06.2016 14:08 # +1
42
3.14159265 25.06.2016 14:20 # +2
Что страшней: самая основа основ языка typeof или расширенная питушня, которую всё-равно не все поддерживают и мало кто пользуется.
inkanus-gray 25.06.2016 14:40 # +1
И ведь ошибка кроется не в реализации typeof, а в самой основе движка — в JIT-компиляторе. Есть вероятность, что могут поломаться и другие функции.
guestinio 07.04.2017 23:31 # −15
AntiSpam 07.04.2017 23:35 # −11
guest 08.04.2017 12:50 # −14
1024-- 08.04.2017 13:12 # 0
AntiSpam 08.04.2017 13:14 # −11
Потрудитесь, пожалуйста, развернуть сокращение.
bormand 08.04.2017 13:20 # −13
guest 08.04.2017 17:38 # −6
guest 08.04.2017 19:48 # −14
IIIyqpymuHckuu_nemyx 28.09.2019 01:30 # −1
6a6yuH 28.09.2019 02:26 # −1
делай ап
ropuJIJIa 28.09.2019 01:43 # 0
gost 23.01.2020 13:29 # +2
HoBorogHuu_nemyx 23.01.2020 15:25 # 0
Напомнило, как в некоторых компиляторах вычисления в плавающем питухе в компилтайме и в рантайме выполнялись с разной точностью. У «Турбопаскаля» где-то были расхождения между компилтаймом и рантаймом, но я уже не помню, где именно.
MAKAKA 06.08.2020 23:58 # 0
TAPAKAH 07.08.2020 00:20 # 0
MAKAKA 07.08.2020 00:21 # 0
>TAPAKAH
Это ты включился в предвыборную гонку в Республике Беларусь?
MAKAKA 07.08.2020 00:24 # +1
Имеется ввиду конечно Portable Executive, но Макака могла подумать, что речь о WinPE
https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/winpe-intro
У него есть свой API, и свой subsystem
https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/winpe-create-apps
Майки умудрились запутать пользователя на пустом месте.
Сука. Зачем?
TAPAKAH 07.08.2020 00:29 # +1
TAPAKAH 07.08.2020 00:25 # 0
http://www.botik.ru/~robot/history/chick.htm
http://www.botik.ru/~robot/sale/robot.htm
MAKAKA 07.08.2020 00:26 # 0
Что не освоил даже "Дуб".
Но он, однако, не баран -
Просёк он, все же, Таракан.
Desktop 07.08.2020 00:33 # 0
Какакулин
Немилостива
Я не могу понять, это реальные люди или «Перекур и Совокюпман»?
TAPAKAH 07.08.2020 00:34 # 0
MAKAKA 07.08.2020 01:00 # 0
http://www.botik.ru/~robot/sidorov/pic/ris01.gif
MAKAKA 07.08.2020 01:05 # 0
http://www.botik.ru/~robot/ru/books.htm#dhtml
TAPAKAH 07.08.2020 01:42 # 0
Алгоритм №13 принимал на вход строку, у каждого символа увеличивал кодовую позицию на единицу. Школьники любили ему на вход подавать строку «фти» (по ссылке анимашка):
https://i.imgur.com/ou24e4K.gif
6a6yuH 07.08.2020 01:45 # 0
TAPAKAH 07.08.2020 01:45 # 0
6a6yuH 07.08.2020 01:49 # +1
А чему вас еще учили?
Просто интересно: вроде бы школьные программы у всех должны быть похожи, но разброс среди моего поколения огромный: кого-то борланд паскалю учили, кого-то бейсику, кого-то вообще ворду.
TAPAKAH 07.08.2020 01:57 # +1
А из текстовых редакторов мы изучали «MS Works» для «DOS» (в «Ворксе» кроме текстового редактора ещё были электронные таблицы и ещё какая-то офисная питушня).
Мы ещё сдавали зачёт по «Нортон Коммандеру». Офигеть, в то время файловому менеджеру придавали огромное значение.
guest8 07.08.2020 02:01 # −999
gost 07.08.2020 02:04 # 0
Сначала подумал, что ты про «nc(1)». Удивился, зачем его описывать, когда всё уже описано.
gost 07.08.2020 02:06 # 0
>>>
Какой анскилл )))
guest8 07.08.2020 02:09 # −999
Desktop 07.08.2020 02:12 # 0
guest8 07.08.2020 02:13 # −999
guest8 07.08.2020 02:09 # −999
TAPAKAH 07.08.2020 02:41 # 0
В общем, что-то написали, часть заданий даже выполнили, но мест не заняли.
После окончания олимпиады нам разрешили записать наши наработки на дискету. Пытаемся открыть файлы из «Кубасика» в своей школе — на экране закорючки. Оказалось, что в той школе был «Quick Basic 4.5», который умел сохранять исходники в зожатом формате, а в нашей был «Quick Basic 1.0», который принимал только plain text. Пришлось искать чувака, у которого был «Quick Basic 4.5», чтобы розжать.
Это был конец 90-х. Где-то в параллельном мире были «Windows 95», «Visual Basic», «Йажа», «Змея», «Яuбу», «Луа», «PHP» но в нашей галактике о них не слышали (слышали разве что только о «Windows»). В учебниках по информатике упоминался «Пролог», который нам даже не показали.
6a6yuH 07.08.2020 02:45 # +1
Вполне нормально изучать азы программирования на сраном бейсике образца 1979-го года: благо, print и input с тех пор не сильно-то изменились
TAPAKAH 07.08.2020 02:47 # 0
6a6yuH 07.08.2020 02:49 # +1
Самый удобный язык для школы кмк: по нему куча литературы написана, учебные программы, отточенные годами, внятная типизация, вот это всё.
TAPAKAH 07.08.2020 03:07 # 0
TAPAKAH 07.08.2020 02:50 # 0
А на «Бейсике» можно сразу написать «PRINT» и течь.
6a6yuH 07.08.2020 03:02 # +1
То есть они еще даже сортировку пузырьком не прошли, а уже срут что-то в браузер, html там, javascript, mysql, php, представляешь, какая у них каша в голове потом?
Потом вопросы типа "я указал переменную в JS, почему она не видна в PHP?"
gost 07.08.2020 03:02 # 0
TAPAKAH 07.08.2020 03:10 # 0
6a6yuH 07.08.2020 03:13 # 0
Именно по этому я против изучения ASP.NET без понимания того, как работает уэб.
TAPAKAH 07.08.2020 03:14 # 0
Вряд ли нагуглю. Помню, что что-то про отправку форм.
TAPAKAH 07.08.2020 03:17 # 0
https://govnokod.ru/26698
Эмпирическое правило: если видишь <FORM action=""> или <FORM action="index.php">, жди беды.
6a6yuH 07.08.2020 03:28 # 0
Правильные и красивые обращения к БД
https://school-php.com/tricks/5/pravilnyie-i-krasivyie-obrascheniya-k-bd-mysql
Правило №6: все данные, уходящие в таблицу защищать.
Сами читайте, я не могу
Desktop 07.08.2020 01:51 # 0
guest8 07.08.2020 01:53 # −999
TAPAKAH 07.08.2020 03:58 # 0
А в некоторых, как в 13-м, несколько формул, разделённых символом с кодом ноль. Похоже на паттерн-матчинг:
Что это может быть за язык?
bormand 07.08.2020 04:33 # 0
А вообще прикольно, что они прям файлы для каждого уровня готовили. Я думал там все в бинарь захардкожено.
6a6yuH 07.08.2020 04:44 # 0
Сама идея того, что алгоритм можно отсоединить от UI, и сделать такой вот движок -- она суперкрутая для каких-то чуваков из заштатного НИИ 80-х, делавших что-то для школы.
TAPAKAH 07.08.2020 04:42 # 0
...
«Нидлессу» понравится.
TAPAKAH 07.08.2020 04:44 # 0
6a6yuH 07.08.2020 04:52 # +1
TAPAKAH 07.08.2020 05:02 # 0
TAPAKAH 07.08.2020 05:17 # 0
TAPAKAH 07.08.2020 05:49 # 0
6a6yuH 07.08.2020 04:43 # 0
TAPAKAH 07.08.2020 04:47 # 0
6a6yuH 07.08.2020 04:48 # 0
TAPAKAH 07.08.2020 04:54 # 0
guest8 07.08.2020 05:24 # −999
TAPAKAH 07.08.2020 05:38 # 0
TEH3OPHblu_nemyx 15.08.2020 06:24 # 0
http://agatcomp.ru/Apps/Robotlandia.shtml
Изначально пакет "Роботлания" был написан под КУВТ Yamaha MSX. Авторы: Дуванов и Первин, но официальной версии под Агат не выпускалось.
В период 1988 по 1991 год под руководством преподавателя информатики 716 школы (Москва, Измайлово) (теперь это гимназия 1811) Алексея Анатольевича Муранова, силами учениками-старшеклассниками был создан пакет обучающих программ по мотивам оригинального пакета "Роботлания".
...
В 1992 году Саша Антонов и Иван Литвин, будучи учениками 10-11 класса, смогли объединить АГАТы-7 в ЛВС при помощи стандартной платы, входящей в стандартную поставку АГАТ-7 - Модуль последовательного и параллельного интерфейса и выпустить сетевую версию Роботландии.
Для обмена информацией использовали выводы параллельного порта + магистральные усилители 109ЛИ1. Был написан свой собственный сетевой протокол. Сервером хранения выступала IBM XT c HDD на 20МБ. Был написан свой "кастомный" BOOT.ROM, который обеспечивал загрузку по сети. Между IBM и сетью из АГАТов стоял еще один буферный АГАТ с двумя принтерными портами. По одному он смотрел в сеть, по другому (всеми 11 линиями параллельного интерфейса) в сторону IBM. На нем крутилась маленькая программа - шлюз. Она брала данные с одного интерфейса и кидала их на другой (запросы к IBM). В ней была основная логика сети - выделение окон времени компьютерам в сети.
Продолжение на форуме:
http://forum.agatcomp.ru/viewtopic.php?id=227
TEH3OPHblu_nemyx 15.08.2020 07:33 # 0
http://podrezov.com/temp/robotlan.dsk
Распаковщик образов есть на сайте «old-dos.ru».
«Роботландию» для «Агат-7» можно взять тут:
http://agatcomp.ru/Apps/DSK/AOS/Robotlandia.rar
Распаковщик есть на том же сайте (он называется «dos33»).
«Буквоеда» ни там, ни там не нашёл. Вероятно, он появился только в версии для «IBM PC».
В версии для «Ямахи» бинарники, а вот в версии для «Агата» уже исходники на «Рапире». Реальный пример:
Да, именно так, в одну строку без переносов. Можно публиковать отдельным говнокодом.
TAPAKAH 07.08.2020 05:12 # 0
Pyatachok 29.08.2020 15:31 # 0
Это была версия 1996-го года.
А вот версия 1993-го года (там был другой графон):
https://i.imgur.com/CnLVInP.gif
guest8 29.08.2020 15:45 # −999
Pyatachok 29.08.2020 15:57 # 0
Pyatachok 29.08.2020 16:04 # 0
guest8 29.08.2020 16:52 # −999
Pyatachok 29.08.2020 17:24 # 0
Возможно, авторам разрешение было важнее количества цветов (13h любили за 256 цветов и за «pixel map», которое для гейдева удобнее, чем «plane map»), а возможно, что нужна была поддержка «EGA».
Хотя на «Агате» им приходилось ужиматься в 128×128 при 16 цветах, а на «Ямахе» — в 256×212 (тоже при 16 цветах).
MAKAKA 29.08.2020 17:28 # 0
А любил я его именно за pixel map, потому что plane map это ад на земле
Pyatachok 29.08.2020 17:30 # 0
MAKAKA 07.08.2020 00:37 # 0
Desktop 07.08.2020 00:38 # 0
Стоимость такого CD-диска (с пересылкой по почте) — 300 руб.
Для заказа диска нужно отправить деньги почтовым переводом
====
Как там было в истории Файка?
Говорит девушка парню: «Приходи сегодня вечером ко мне, дома никого не будет». Парень вечером пришёл, а дома никого нет!
Desktop 07.08.2020 00:40 # +1
Не, ну в общем справедливо.
MAKAKA 07.08.2020 00:41 # 0
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
какой 2002-й ))
guest8 06.08.2020 20:30 # −999
XYPO3BO3 06.08.2020 22:31 # 0
В более новых движках вроде тоже.
MAKAKA 06.08.2020 23:58 # 0
XYPO3BO3 06.08.2020 23:47 # 0
MAKAKA 06.08.2020 23:58 # 0
XYPO3BO3 06.08.2020 23:57 # 0
MAKAKA 06.08.2020 23:58 # 0
MAKAKA 06.08.2020 23:58 # 0
XYPO3BO3 07.08.2020 00:01 # 0
XYPO3BO3 07.08.2020 00:04 # 0
MAKAKA 07.08.2020 00:09 # +3
В далёком 1994-м году одному датскому программисту захотелось прикрутить счетчик к своему резюме на сайте
nOJlKOBHuK_CAHDEPC 23.07.2022 19:44 # 0
Jlou_6JlblKAHAX 26.07.2022 23:05 # 0
nOJlKOBHuK_CAHDEPC 26.07.2022 23:09 # 0
nepekam 27.07.2022 13:00 # 0
MAKAKA 07.08.2020 00:38 # 0
Coq 23.07.2022 18:07 # 0
ObeseYoungPidor 29.07.2022 21:36 # 0
Как будто вчера было ((((((