- 1
- 2
- 3
- 4
- 5
- 6
import execjs
js = '{"1": "2", "3": [4,5]}'
default = execjs.get()
print default.eval(js)
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−267
import execjs
js = '{"1": "2", "3": [4,5]}'
default = execjs.get()
print default.eval(js)
Раз уже астрологи объявили неделю ебанутого парсенья json.
j̢s̢ =̴ '{"1": "2", "3": [4,̶5]̵}'̕
d̡éfaưl͠t͞ ̕= ͟execj̴s.ǵe̡t()͘
̶́p̶̨͢r̀i͜n̷͟t d̨̛e̷͢f̸̀͠a̕u҉͏̸l̷t͞.̢̢͟ev̢i͡l̢͡͝(j̕͜s)͡ ̴ ҉h̨͜e͜͢͡ ͏c̀ó͘m̧̧e̷̵҉s̨͠ ͜͟HE̶̡ ̶CO̵ME͏S̴͟
̫̦̺̲̭̣ͅП̛͉͇̗ͅо̧̳̬̪̤̼̼л̥̦̩̞̝̗у̴̠̮̯̫͇̠ч̸̺̭ и̖̺л͍̩̮ ͎̬п̟̦̰̱͔а̫̳͍̝̪р͉̪͇̠͇͞о̳͍̲̗͜л͓͉͘ь͙̮ ̦̩о̪̤̗͚̺̤̳͜т̪̙ ͖̣у̘̼͙͙чё̲̣̥́т̘̜͔͕к̟̱͝и ̡̱̮͔̦̩С̰̯т̦̥̺͚͉р̤̭͚̠͜а̮̠й̙̝̼͔̺͎̺͜к̪̘͇̬̗̼ е̭̘̩р̩͚а̶͎.̻̬̱̠͝
͈̲̩̗͜С̸͖д̀ел͕͝ал̥̘̥̣̣ ̡ͅс̴̟͇͎̝̪е̢̗̯͍̝̯б͟я̛͉͈̟ ҉͈̠̫͚̹а̴̣̙̳д̴̖̯̣̭м̪͕̞͖͝и̺̲͢н̶̦̮о̷̲м̸̩̼̟. ̬
͢И̸ ͔̞п̗̟р̗̭̰̭и̟͈͡шё̴̫͚͍͕̯л̷.̛͍̤̠͚̬̹
И чтоб два раза не вставать, можно погуглить по parse html regex, первая ссылка будет my eyes на стековерфлоу, вот там he comes шикаааарный первый eating flesh ответ на вопрос, как парсить he comes хтмл регексами zalgo comes he comes
Правильный ответ: use composite characters, Luke!
http://www.alanwood.net/unicode/combining_diacritical_marks.html
Кстати, у нас без Уникода было тяжело. Приходишь в дисплейный класс, а там вместо chcp 866 стоит какой-нибудь малоизвестный русификатор, в котором нет буквы ё. Смотришь на экран и плю±шься. ≡баные нестандартные кодировки...
К чему это я? Ах, да, в Уникоде есть специальные символы, которые при растеризации накладываются на предыдущие. И самое интересное, что процесс наложения можно повторять неограниченное количество раз.
Вот поэтому. У кого у нас и к чему ты это вообще спросил?
Ты, наверно, про это: "Самое интересное, правильный ответ так никто и не дал.". Это относилось к вопросу на SO про то почему нельзя парсить html регулярками. В одном ответе ответили что регулярки - это конечный автомат без хранения состояния и бесконечный html с конечным количеством состояний не распарсить, но в коментах ему сказали, что в некоторых языках регекспы тянут на машину Тьюринга.
В 90-х я еще был у вас, но указанных проблем не наблюдалось. Может, у вас всякое ебанько админило? Чистого доса не было, был уже 95
> бесконечный html с конечным количеством состояний не распарсить
> регекспы тянут на машину Тьюринга
Задроты-теоретики какие-то собрались и всё засрали. Чёрт, как же невыносимы теоретики.
Даже по их любимой теории конечный HTML хорошо описывается регулярной грамматикой (правда, описание экспоненциально длиннее текста, но что остановит теоретиков?).
Зачем описывать свойства регулярных грамматик, когда регулярное выражение используется внутри полного по Тьюрингу языка, из-за чего система "регулярка-программа" может распарсить даже неограниченную грамматику?
Гееретики постоянно строят какие-то геемодели нашего мира, забывая про существенные моменты. То у них на брейнфаке можно написать больше, чем на C++; то все задачи решаемы, но про бесконечную память они вежливо молчат.
Интересно, есть там ответ, где советуют учесть 1. опыт программиста 2. накладные расходы на полноценный парсер 3. длину и сложность регулярки 4. частоту и внезапность изменения задачи и другие параметры и понять, что выгоднее в данном случае.
Читай определение. Надо парсить бесконечный.
Кстати, a.*b - это какая машина? НКА или что-то дрогое.
>Зачем описывать свойства регулярных грамматик, когда регулярное выражение используется внутри полного по Тьюрингу языка, из-за чего система "регулярка-программа" может распарсить даже неограниченную грамматику?
Потому что у тебя к регулярке будет добавляться и логика на ЯП. А хочется вхуярить регулярку и будет заебись.
Теоретики собрались по простой причине - если html нельзя парсить даже теоретически, то и практически тоже (или с костылями выше)
>Гееретики постоянно строят какие-то геемодели нашего мира, забывая про существенные моменты. То у них на брейнфаке можно написать больше, чем на C++; то все задачи решаемы, но про бесконечную память они вежливо молчат.
То же самое.
>Интересно, есть там ответ, где советуют учесть 1. опыт программиста 2. накладные расходы на полноценный парсер 3. длину и сложность регулярки 4. частоту и внезапность изменения задачи и другие параметры и понять, что выгоднее в данном случае.
Да, там был ответ, что ограниченный набор парсить вполне выгодно (например, выкусывать куски текста). Но когда нужно выкусывать структуры текста, не имеющие к тому же четкой регулярки (вроде парсенья коментов говнокода), то dom парсер становится на порядок проще.
Я не теоретик, не знаю. Но если КС-грамматики парсят тоже какими-то автоматами, но посложнее (предположу, что как раз НКА), то буду утверждать, что каноничная регулярка - ДКА.
> Надо парсить бесконечный.
Памяти на вас не напасёшься.
> если html нельзя парсить даже теоретически
...то у нас нет парсеров и браузеров. А значит теория неверно моделирует реальность, фтопку её.
> А хочется вхуярить регулярку и будет заебись.
Хочется писать простой поддерживаемый и быстрый код. Скажем, если сначала заменить все пробелы на один, регулярка станет проще и быстрее. И читать приятно, и пирфоманс.
Лучше я плюну на теории и напишу две простых регулярки, которые будут работать в цикле, чем одну большую или, не дай Бог, КС-грамматику ещё писать.
Память в автоматах с памятью как раз может быть бесконечной.
> если html нельзя парсить даже теоретически
... с помощью регулярок...
>регулярка станет проще и быстрее.
Не факт.
>Лучше я плюну на теории и напишу две простых регулярки, которые будут работать в цикле, чем одну большую
Скорость работы регулярки зависит от размера?
Семен то говорил, что это даже теоретически невозможно
Наверно, имелось в виду, что ты регуляркой не можешь заменить xpath.
повезло. крупно повезло
> регулярка станет проще и быстрее.
> Не факт.
Ну тогда не заменять. Если она простая и быстрая, пусть используется.
> Скорость работы регулярки зависит от размера?
Да, как от одного из параметров. (1) Размер связан с содержанием (2) В длинных регулярках человеку легче наговнять какую-нибудь фигню.
Вон в стерторовском случае что-то вида домен\s*[:;]\s*\d{2,5}. Если пробелы отфильтровать, фигни вида "example.com : lol" будут быстрее забраковываться, не надо будет ждать, пока оно прогонит по \s*.
Как простота согласуется со скоростью работы?
>(1) Размер связан с содержанием
Сложные, но небольшие регулярки типа a.*b имеют больший класс сложности чем str1|str2|...
Простая часто быстрее. Я уже писал про человеческий фактор и о том, что это не напрямую связано.
> Сложные, но небольшие регулярки типа a.*b имеют больший класс сложности чем str1|str2|...
А вот на первый взгляд, первая требует не более одного прохода и хранение O(1) данных, а вторая - либо несколько проходов, либо дерево с ворециями.
Так что да, первый вариант короче, проще и быстрее.
> больший класс сложности
Опять теория, фтопку её. Нужна только практика, только результат взвешивания N факторов.
Угу.
Пример не очень удачно, но какой-нибудь (.*)* будет явно дольше.
Есть прога которая позволяет смотреть во что компилируются регексп?
>Опять теория, фтопку её.
Вот начнём регулярку переписывать и удалять из неё говно - скорее всего будет короче и быстрее. Короткую легче осознать.
Но обратный эффект никто не отменял, это да.
Не знаю. Но занятная была бы прога. Может, у Кегдана есть.
Нет.
regex buddy мб? в фитоне есть флаг в re.compile
re.compile('.*', re.DEBUG)
такой бы тоьлко почитаемее
http://ideone.com/K08g0k
http://referencesource.microsoft.com/#System/regex/system/text/regularexpressions/Regex.cs,bbe3b2eb80ae5526
Я 95 увидел только в 2001-м году.
В школе вообще видел «Агат» с интерпретатором Бейсика вместо операционной системы.
Я не знаю на чем. Я в украшке в ~97 уже на винде 95 сидел в школе, правда, это был лицей. Мухосранск?
В вузе мне сначала пришлось работать на каком-то клоне IBM PC XT (NEC или типа того), у которого было около мегабайта оперативки. Потом пересел на 486. В 2001-м году на эти «четвёрки» какой-то пидорас (в плохом смысле этого слова) поставил Windows'95 и всё начало тормозить, было видно как по линейкам рисуются окна. Вообще странные машины: то ли кэш у них не работал, то ли планки памяти были древние, но «четвёрки» так тормозить не должны.
А на Украине в ~97 уже на винде 95 сидели в школе. Какими кретинами надо быть, чтобы настолько опережать рашку и всё просрать!
В поздние 90е я ходил на кружок информатики, там было вполне нормальное оснащение - нфс3-4 на минимальных настройках шла.
По винде никто не ограничивал, застал машины от NT 4.0 до 2000/Me в последние месяцы (а так 98 в основном).
А в родной школе да, какие то монохромные терминалы были (я точно не могу сказать, т.к. меня в школе освободили от информатики, ведь заведение с кружком было вполне официальным с корочкой, программой и объемом часов).
мухосранск на 40к жителей
Не в каждой. В старой я то самое советское чудо видел.
Но дос... Это пиздец какой-то, товарищи. Такое разве что в детской колонии было, где я был на экскурсии(там наверняка были уже PC).
Не в каждой. В старой я то самое советское чудо видел. Я не знаю опережала ли украшка рашку (нефти все-таки нет), но ты наверно хочешь вбросить что виноват майдан а не бандюковичи, кучмоиды и ко.
Но дос... Это пиздец какой-то, товарищи. Такое разве что в детской колонии было, где я был на экскурсии(там наверняка были уже PC).
В вузе в 2000 у нас в универе были p2-350, первые компы которые я видел где уже все было в материнке - сетевуха, звуковуха, может и видюха даже. Универ был самый обычный, так что у вас в московии какой-то нереальный уровень попила должен был быть. Четверки у нас были в лицее, тогда я узнал, что дум2 может тормозить. И там тоже стояла windows 95 (частота 100 мгц была), но работать было можно, сильных тормозов не было.
Не угадал. Я не могу отрицать очевидного. Не могу отрицать, что грабили общими усилиями несколько поколений. Но также не могу отрицать того, что Майдан качественно ничего не изменил. Но об этом в другой теме.
> Но дос... Это пиздец какой-то, товарищи.
Зато благодаря воспитанию на ДОСе я не боюсь ко-ко-ко-консолечки.
http://govnokod.ru/15804#comment288736
>Зато благодаря воспитанию на ДОСе я не боюсь ко-ко-ко-консолечки.
На 95 мы и проходили и дос, и нортон. А ко-ко-ко-ко-ко-ко-консолечка в чистом досе даже в повтор команд не умеет. Помню я винкей нажал, вылетел в винду и не знал как вернуться в нортон (у меня комп через год появился)
Дискетки это вообще отдельный разговор. Помню как таскал проги/игори из комп класса и у меня вечно не хватало места на винте (даже после того как drivespace в винде поставил). Вполне нормальной была ситуация, когда дискета толком не читается, проверка не спасает. Отформатировал - как новенькая. Может, магнитное поле в лифте, может, еще что-то. Мне эникей лицейский рассказывал как анекдот, что к нему школьник принес дискету, которая лежала в сумке со сменкой и не читалась. Сейчас флешки быстрее, больше, бесшумнее и без этих ёбаных закидонов.
ты думаешь у других тут детства не было? Думаешь никто в децтве принца персии на дискету не переписывал? DOS 6.22 не трогал? Перемычкой на саунд бластере IO не выбирал? На MASM не писал? На TurboC? Не знает что такое egavga.bgi? Шарик у мышки не чистил? Все, блядь, народились сразу с айфоном шестым? Все тут 1997го года рождения?
>Думаешь никто в децтве принца персии на дискету не переписывал?
Я его даже на осциллографе видел, году в 95.
>Перемычкой на саунд бластере IO не выбирал?
Не выбирал, слава богу, у меня уже все pnp было.
>На MASM не писал?
На каком-то асме писал.
> На TurboC?
Только пасцаль.
>Не знает что такое egavga.bgi?
Мы даже 800*600 заюзали для танчиков.
>Шарик у мышки не чистил?
Постоянно, ибо гамал.
>Все тут 1997го года рождения?
Некоторые.
да-да, я тоже в 95 стрелкой от осцилограффа веб сайты делал
Use DOSKEY, Luke! А вообще, когда есть Нортон, и DOSKEY не нужен.
А благодаря отсутствию в винде
а вместо него
я понял, что жизнь - не сахар
А зачем тебе миллисекундная точность в говноскриптах?
В батниках не эксперт, так по мелочи
Не поверишь, но MySQL даже соцсети и другие крупные компании используют. Так что это совсем не шутки.
Другое дело — высоконагруженные системы AI на .bat файлах.
просто когда у тебя на нём система с десятилетним пробегом то конечно стремно что-то менять. Других оснований для использования отсосно-уебищного говнища без нормальных констреинтов, профайлинга и нормального оптимизатора нет.
Для новых проектов нужно выбирать минимум постгрю. Если человек выбирает mysql для нового проекта то оно или тупое пидрилло, не способное освоить постгрю по причине неумения читать, или просто тупое пидрилло без всякий причин.
Не существует *ни одной* причины по которой можно выбрать mySQL
А вот про хостинг я согласен: если бюджет проекта не может превышать 5 баксов в месяц, то MySQL + PHP наш выбор. Но если проект хотя-бы 15 баксов, то можно уже AWS, Postgres и RoR или Django
С квадратичной сортировкой - кагбэ тоже :)
> если бюджет проекта не может превышать 5 баксов в месяц, то MySQL + PHP наш выбор.
Ну что за пездеж. За 5 можно VPS снять.
А про VPS ты прав: ну окей, MySQL отличное решение для проектов дешевле 3 долларов
• http://spb-borodin.livejournal.com/596.html
• http://spb-borodin.livejournal.com/779.html
Что-то двигало вконтактоблядями, когда они выбрали MySQL, хотя на тот момент Postgre уже стукнуло N лет...
а что выбирали бляди, выбравшие пых в 2007м я даже думать не буду
кому ты заливаешь, петушок
в универе в 2000 - это означает, что тебе сейчас 30+ лет
откуда на ГК люди 30+?
тут только прыщавая пубертатная школота 17ти лет
Прыщеандр-ы?
Справа нас рать.
И с раной Мамай
Убежал в Сарай.
Справа кусты
Сьешь шаурму
И там будешь и ты
Зато целуется хорошо.
или типа если живут 120 лет вместо 60, то и развитие в 2 раза медленнее?
тогда ок
пидарок в 30 с гаком лет всё еще лузер-нищеброд без работы? охлол.
Когда почувствуешь власть мужчины над собой, не думай, однако, что из тебя сделали пидара. Ты был им ранее.
>Слишком сложный код.
Дык. Не просто модуль, а внешний js интерпретатор
'1'+1? Опять исключение.
Пишешь скрипт, а он падает, сучара. Программист должен сам стрелять себе в ногу, а не получать от языка по поводу и без повода.
{}.get('a', None)
>'1'+1? Опять исключение.
Нахуй
NaN
Фиолетовое сердце, блеать!
Ты, наверное, удивишься, но бывает даже аниме по фигуркам. А по играм, особенно визуальным новеллам - вообще частое явление.
Даже фильм пытаются снять нарисовать
http://www.youtube.com/watch?v=JjaYW5Cnr5k
Например?
Трансформеры и прочая ранняя мехота?
Хотя есть и исключение, например, Little Busters, хотя ВН - это и не совсем игра, но всё же.
Как же я хочу её трахнуть.
Кстати, а сколько у тебя тайтлов, няша?
NaN
undefined же.
Вот, например, недавний наш пример с созданием папки в Node.js. Какие-то исключения, какой-то бред. А ведь вполне бы хватило кодов возврата. Нужно точное описание ошибки - проверяешь код возврата (ну или возвращённый объект типа Error). Хочешь просто либо прочитать файл, либо то, что прочиталось, либо пустую строку - игнорируешь. Всё равно внутри обёртка и проверки кто-то гоняет, это же не malloc.
Расмус тоже так думал. Не секрет, что из этого вышло.
Падать нужно только тогда, когда нет ни единого шанса для продолжения, иначе выйдет псевдонадёжное говно, которое на самом деле нисколько не надёжное, падает от дуновения ветра.
Бюрократия. Нет справки? Не важно, что стоял день в очереди. Возьми справку и постой столько же завтра.
Самая безумная и подлая фигня - падать по получении NaN. Вышел NaN? Давайте упадём и похерим все хорошие вычисления за последние два дня.
Угу, работает http://raz0r.name/vulnerabilities/simple-machines-forum/
Ты сравниваешь show must go on с необрабатываемыми исключениями, а их еще можно и обрабатывать. Скажи ты реально такой дебил или это все же троллинг?
Исключения не нужны, когда есть вменяемая реакция по умолчанию на исключение, позволяющая работать дальше, но она есть довольно редко (например, equals для null не должен бросать NPE)
Оба варианта неверны.
Ну или эрланговская модель актеров - она ня
/0? SMGO это и есть фурычить при ошибках без вмешательства программиста
магия вуду? Если не ты - так другой программист прописал. Так что либо ошибка отслеживается руками либо на нее кладется болт.
- а что будет если я попробую в твоей проге поделить на ноль?
- я не знаю, лол
Определение "мелочей".
Исключения сосут, возвращаемые обёртки универсальны и удобны.
Всё это связано с обработкой ошибок, да. И с программированием.
Но у меня в простом варианте не надо ничего ловить, чтобы код просто работал. А в сложном варианте нужно писать примерно столько же кода, сколько и с исключениями.
Исключение можно и вручную вбросить, если это действительно нереальный случай, которого быть не должно и никогда не будет, если кто-то не ошибётся.
А то повадились языки сами вбрасывать на каждый чих.
Со сторонними ресурсами (сервис, бд) без исключений никак - 100%ые AP не делают
Файл не существует? Похуй, будем считать, что в нём пустая строка. Пустая строка не бьётся на три части по табу? Похуй, вернем массив из одного элемента. Нету второго элемента? Да похуй, пусть будет undefined. Undefined + 1? NaN! Его и покажем юзеру. Ничто не остановит бульдозер.
Можно и исключения не ловить в пистоне. Тоже выйдет фигня.
Не надо смешивать "нет файла" и "строка не соответствует заданной грамматике". В тех местах, где ошибки важны, они обрабатываются, в тех, где не важны - не обрабатываются.
В описанном выше примере мы можем отказаться от проверки на существование файла, но ветвиться по формату строки, чтобы не показывать NaN. Удобный подход.
Можно, но это нужно хотя бы делать осознанно. По умолчанию они прерывают работу, а коды ошибок по умолчанию игнорируются.
>В тех местах, где ошибки важны, они обрабатываются, в тех, где не важны - не обрабатываются.
Все это можно и с исключениями сделать.
Это и плохо. При неважной ошибке падает всё множество программ, когда как с кодами возврата и их безопасными модификациями падают только те, которые пошатнули специально.
>> прога не должна падать от мелочей.
> Определение "мелочей".
Мелочи определяются программой. Для одной NaN - нормальный разультат. Для другой в этом случае отправляется письмо разработчику, а все изменения откатываются. Индивидуальный подход.
Ага, таки программист? А что ему мешает игнорить неважные исключения?
Так упадёт всё. Исключение придётся обрабатывать, пусть и обработчик будет пустым.
Меня настолько это не волнует, что я напишу об этом 1000 комментариев. Пусть все знают, что не волнует. Пусть все знают, что я игнорирую исключения. Игнорирую, слышите? try{} catch{} на каждый вызов. Игнорирую в каждой строке.
Happy case - главный показатель? Кстати, с исключениями он чище, т.к. отделяется код и обработка ошибок
govnokod.ru
>> в простом варианте не надо ничего ловить
>> в сложном варианте <...> примерно столько же кода
Интегрально выгодно.
>govnokod.sru
А чего ты сидишь в инторнете, а не в чебурашке?
С каких пор ты стал на си кодить?
У нас - у тебя, у меня, у васи пупкина у всех пользователей пк
Их было бы в 5 раз больше. Управление ресурсами через try/finally - это унылая тоска. Например, C++ с исключениями, но без деструкторов - это адовая бомба.
Ну вот в жавке есть исключения. Типичная жабопрограмма генерит гигабайты стэк трейсов. Да, ошибок стало в 5 раз меньше.
Кому-то это мешает? Все же лучше кодов возврата и сегфолтов
Впрочем, у меня тоже. Только в другую сторону.
вы приняты.жпг