- 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());
Открываем стабильный хром и запускаем в консоли.
Наблюдавшиеся мной значения N и M:
134 : 866
131 : 869
132 : 868
262 : 738
263 : 737
UPD:
Просто в плюсах, например, тоже можно понаписать говнокода, который будет выдавать рандомные результаты - это называется undefined behavior. Такой код просто не надо писать.
Возможно сабжевый говнокод - это тоже типа UB?
JS взял "worst from both worlds" просто
Какой тургор )))
Это наследие низкоуровневых языков, когда в переменные попадает неинициализированная память. Нахуя это в и так тормозных скриптовых языках?
А в стандартик таки поднасрали, пользуясь отрицанием этого глубокого утверждения :(
Имел в виду
Но то, что они различаются - говно.
>наследие низкоуровневых языков, когда в переменные попадает неинициализированная память
Лолшто? Большую часть UB в сишках/крестах порождают отнюдь не переменные с мусором, а тот факт что там вокруг UB.
Даже такая тупая штука как сдвиг и та UB-unsafe.
uninitialized линтеры отлично отлавливают. Проблемы браузеров - фатальное сочетание чрезмерной их сложности, хуёвых языков и поистине царских питумизаций.
https://sukofamily.org/wp-content/uploads/2014/02/sochi-toilets-2.jpg
1. Однопоточный недетерминизм.
> typeof null === 'undefined'
2. Прямое копротивление штандарту.
http://codepen.io/anon/pen/JKERaZ
так тоже работает
function foo() { return typeof null === 'undefined'; } for (var i = 0; i < 1000; i++) console.log(foo());
прикольно просто что в глючный вариант добавляешь часть которая вроде ничего не меняет, а глюк пропадает
если добавляешь use strict вначале - то уменя в два раза чаще false появляются
Выходит, что когда выражение без +'', Хром включает какую-то оптимизацию и оптимизатор всё портит?
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-й версии.
Благо у меня:
1. нет автообновления
2. не юзаю хром кроме как реплицировать баги
В vk уже несколько дней срут это
Фуррифокс и Хром матерятся на пробел после слова “numeric” (точнее, они не сообщают, что виноват пробел, они лишь пишут, что значение numeric “out of range”, а лишний пробел можно заметить только при внимательном рассмотрении).
Сафари (в Windows) молча возвращает NaN. Убрав вызов parseInt, я понял, что Сафари игнорирует параметры toLocaleString. В общем, заставить его сменить формат мне не удалось.
А что показывает Эдж?
Ну хоть что-то в Хроме сделали правильно.
В Firefox toLocaleString может выдать питушню на час больше. Я такое видел под линуксом, хотя под виндою у меня всё работает, в отличие от других https://bugzilla.mozilla.org/show_bug.cgi?id=1147872
Лол. Воркэраунд - подождите до ноября.
В общем, в кино нам обещают самошнурующиеся кроссовки и летающие автомобили, а в реальности в 2016-м году нет стандартного способа обновления таблиц часовых поясов, которые пидорасы-правители меняют каждые полгода, хотя каждый раз обещают, что этот раз последний.
Зато удалось обнаружить кое-что другое:
>интервал между постами < 1 мин.
Поделитесь секретом. Какой-нить karma-runner, который запускает тест в N браузерах?
Продолжим шоу. Тест на удалённых машинах в Линуксе:
http://browsershots.org/http://codepen.io/anon/pen/ZOLvGQ
Тест на удалённых машинах в Макоси:
http://browsershots.org/https://jsfiddle.net/yrqh95qs/
Результатов в Макоси пока нет, но вы там держитесь периодически нажимайте кнопку «Extend», пока не дойдёт очередь.
Кстати, у кого-нибудь с Говнокода есть доступ к Макоси? Уже стало интересно, как в ней реализовали toLocaleString в разных браузерах.
Выводы:
1. В Интернет Эксплорере, в Сафари (под Виндой) и в Престо положили прибор на toLocaleString.
2. Вывод toString в разных браузерах может немного отличаться (в IE почему-то год засунули после часового пояса).
3. Результат может зависеть от версии: в Хроме до двадцатой версии toLocaleString совпадала с toString; в Фаерфоксе до ≈ 31 версии toLocaleString была реализована костыльно.
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». Предположил, что Эдж добавляет к числу пробел.
*****
Потом ещё погуглил. Всё оказалось страшнее. Уж лучше бы он добавлял пробел.
Что там?! Не тяни, интересно же!
В Уникоде же решили скрестить ежа с ужом и в результате получилось ни два, ни полтора: и семантика реализована наполовину, и типографика реализована наполовину.
Зачем это всё тащить в toLocaleString, если мне нужно получить только число, а уж как его вывести, я и сам разберусь? Если я сам задал локаль, то по идее я должен знать, слева направо или справа налево должен выводиться результат.
Сафари и старые браузеры (в т.ч. предыдущие ишаки) не поддерживают - это всё. Без полифилов и костылей уже не обойтись.
На самом деле для современных браузеров достаточно было бы написать word-wrap: break-word; и разбавлять текст пробелами не понадобилось бы, но, увы, так сделали. Так что приходится критические фрагменты заворачивать в [code], чтобы не разбавлялись.
Неудачник. Можно и проще
42
Что страшней: самая основа основ языка typeof или расширенная питушня, которую всё-равно не все поддерживают и мало кто пользуется.
И ведь ошибка кроется не в реализации typeof, а в самой основе движка — в JIT-компиляторе. Есть вероятность, что могут поломаться и другие функции.
Потрудитесь, пожалуйста, развернуть сокращение.
делай ап
Напомнило, как в некоторых компиляторах вычисления в плавающем питухе в компилтайме и в рантайме выполнялись с разной точностью. У «Турбопаскаля» где-то были расхождения между компилтаймом и рантаймом, но я уже не помню, где именно.
>TAPAKAH
Это ты включился в предвыборную гонку в Республике Беларусь?
Имеется ввиду конечно 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
Майки умудрились запутать пользователя на пустом месте.
Сука. Зачем?
http://www.botik.ru/~robot/history/chick.htm
http://www.botik.ru/~robot/sale/robot.htm
Что не освоил даже "Дуб".
Но он, однако, не баран -
Просёк он, все же, Таракан.
Какакулин
Немилостива
Я не могу понять, это реальные люди или «Перекур и Совокюпман»?
http://www.botik.ru/~robot/sidorov/pic/ris01.gif
http://www.botik.ru/~robot/ru/books.htm#dhtml
Алгоритм №13 принимал на вход строку, у каждого символа увеличивал кодовую позицию на единицу. Школьники любили ему на вход подавать строку «фти» (по ссылке анимашка):
https://i.imgur.com/ou24e4K.gif
А чему вас еще учили?
Просто интересно: вроде бы школьные программы у всех должны быть похожи, но разброс среди моего поколения огромный: кого-то борланд паскалю учили, кого-то бейсику, кого-то вообще ворду.
А из текстовых редакторов мы изучали «MS Works» для «DOS» (в «Ворксе» кроме текстового редактора ещё были электронные таблицы и ещё какая-то офисная питушня).
Мы ещё сдавали зачёт по «Нортон Коммандеру». Офигеть, в то время файловому менеджеру придавали огромное значение.
Сначала подумал, что ты про «nc(1)». Удивился, зачем его описывать, когда всё уже описано.
>>>
Какой анскилл )))
В общем, что-то написали, часть заданий даже выполнили, но мест не заняли.
После окончания олимпиады нам разрешили записать наши наработки на дискету. Пытаемся открыть файлы из «Кубасика» в своей школе — на экране закорючки. Оказалось, что в той школе был «Quick Basic 4.5», который умел сохранять исходники в зожатом формате, а в нашей был «Quick Basic 1.0», который принимал только plain text. Пришлось искать чувака, у которого был «Quick Basic 4.5», чтобы розжать.
Это был конец 90-х. Где-то в параллельном мире были «Windows 95», «Visual Basic», «Йажа», «Змея», «Яuбу», «Луа», «PHP» но в нашей галактике о них не слышали (слышали разве что только о «Windows»). В учебниках по информатике упоминался «Пролог», который нам даже не показали.
Вполне нормально изучать азы программирования на сраном бейсике образца 1979-го года: благо, print и input с тех пор не сильно-то изменились
Самый удобный язык для школы кмк: по нему куча литературы написана, учебные программы, отточенные годами, внятная типизация, вот это всё.
А на «Бейсике» можно сразу написать «PRINT» и течь.
То есть они еще даже сортировку пузырьком не прошли, а уже срут что-то в браузер, html там, javascript, mysql, php, представляешь, какая у них каша в голове потом?
Потом вопросы типа "я указал переменную в JS, почему она не видна в PHP?"
Именно по этому я против изучения ASP.NET без понимания того, как работает уэб.
Вряд ли нагуглю. Помню, что что-то про отправку форм.
https://govnokod.ru/26698
Эмпирическое правило: если видишь <FORM action=""> или <FORM action="index.php">, жди беды.
Правильные и красивые обращения к БД
https://school-php.com/tricks/5/pravilnyie-i-krasivyie-obrascheniya-k-bd-mysql
Правило №6: все данные, уходящие в таблицу защищать.
Сами читайте, я не могу
А в некоторых, как в 13-м, несколько формул, разделённых символом с кодом ноль. Похоже на паттерн-матчинг:
Что это может быть за язык?
А вообще прикольно, что они прям файлы для каждого уровня готовили. Я думал там все в бинарь захардкожено.
Сама идея того, что алгоритм можно отсоединить от UI, и сделать такой вот движок -- она суперкрутая для каких-то чуваков из заштатного НИИ 80-х, делавших что-то для школы.
...
«Нидлессу» понравится.
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
http://podrezov.com/temp/robotlan.dsk
Распаковщик образов есть на сайте «old-dos.ru».
«Роботландию» для «Агат-7» можно взять тут:
http://agatcomp.ru/Apps/DSK/AOS/Robotlandia.rar
Распаковщик есть на том же сайте (он называется «dos33»).
«Буквоеда» ни там, ни там не нашёл. Вероятно, он появился только в версии для «IBM PC».
В версии для «Ямахи» бинарники, а вот в версии для «Агата» уже исходники на «Рапире». Реальный пример:
Да, именно так, в одну строку без переносов. Можно публиковать отдельным говнокодом.
Это была версия 1996-го года.
А вот версия 1993-го года (там был другой графон):
https://i.imgur.com/CnLVInP.gif
Возможно, авторам разрешение было важнее количества цветов (13h любили за 256 цветов и за «pixel map», которое для гейдева удобнее, чем «plane map»), а возможно, что нужна была поддержка «EGA».
Хотя на «Агате» им приходилось ужиматься в 128×128 при 16 цветах, а на «Ямахе» — в 256×212 (тоже при 16 цветах).
А любил я его именно за pixel map, потому что plane map это ад на земле
Стоимость такого CD-диска (с пересылкой по почте) — 300 руб.
Для заказа диска нужно отправить деньги почтовым переводом
====
Как там было в истории Файка?
Говорит девушка парню: «Приходи сегодня вечером ко мне, дома никого не будет». Парень вечером пришёл, а дома никого нет!
Не, ну в общем справедливо.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
какой 2002-й ))
В более новых движках вроде тоже.
В далёком 1994-м году одному датскому программисту захотелось прикрутить счетчик к своему резюме на сайте
Как будто вчера было ((((((