- 1
https://stackoverflow.com/questions/51521158/in-python-why-does-0xbin-return-false
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−1
https://stackoverflow.com/questions/51521158/in-python-why-does-0xbin-return-false
Свежий обосрамс питона
KOHTPArEHTTBOEuMAMKu 26.07.2018 13:26 # 0
vistefan 26.07.2018 14:11 # 0
Я тоже, потому что у "PHP" не бывает свежих обосрамсов, все они древние как говно, их все давно знают и никто с этим ничего не делает. )))
https://govnokod.ru/23384
666_N33D135 26.07.2018 13:33 # 0
guest8 26.07.2018 13:46 # −999
guest8 26.07.2018 13:48 # −999
666_N33D135 26.07.2018 13:56 # −1
guest8 26.07.2018 13:58 # −999
AHAJlbHblu_xyu 26.07.2018 15:49 # −2
Потому что я там часто в гостях бываю.
guest8 26.07.2018 14:07 # −999
vistefan 26.07.2018 14:22 # 0
roman-kashitsyn 26.07.2018 15:33 # 0
Ну не знаю... А что если по профессии ты унылый сишкошлёп ракетных прошивок, а после работы ты из программиста на языке калькуляторов превращаешься в «PHP»-бога?
Desktop 26.07.2018 15:36 # +1
- достаточно переодеться в телефонной будке
roman-kashitsyn 26.07.2018 15:38 # 0
vistefan 26.07.2018 15:46 # 0
defecate-plusplus 26.07.2018 16:08 # +1
roskomgovno 26.07.2018 16:35 # 0
AHAJlbHblu_xyu 26.07.2018 15:47 # −5
Desktop 26.07.2018 16:33 # 0
roman-kashitsyn 26.07.2018 16:52 # 0
рhрванилу
Desktop 26.07.2018 17:04 # 0
roman-kashitsyn 26.07.2018 17:22 # +1
> щас в продакшене используются лиспы?
Да. Common Lisp используется в Grammarly [1] и в Google Flights [2]. Clojure много где используется, на фронтенде и бэкэнде. Cisco написали компилятор Scheme [3] в натив, наверное, тоже для прода.
[1] https://tech.grammarly.com/blog/running-lisp-in-production
[2] https://www.reddit.com/r/IAmA/comments/396zhp/were_the_google_flights_team_makers_of_f light/
[3] https://developer.cisco.com/codeexchange/github/repo/cisco/ChezScheme
> Реально ли лисп взять в качестве scripting language?
Можно, но зачем? Нужны макросы? Или просто лисп ради лиспа?
roskomgovno 26.07.2018 17:31 # 0
Desktop 26.07.2018 17:36 # 0
- интересуюсь практиками встраивания DSL'ей
roman-kashitsyn 26.07.2018 18:38 # 0
Если скрипты будут писать программисты, они тебя задолбают вопросом "а почему не X?" и поменяют язык скриптования как только ты отвернёшься.
bormand 26.07.2018 18:54 # 0
roman-kashitsyn 26.07.2018 19:06 # 0
Кстати, в Dyalog APL они есть.
Desktop 26.07.2018 19:29 # 0
roman-kashitsyn 26.07.2018 20:00 # +2
Читать доки полезно, но гораздо менее полезно, чем делать что-то самому.
Desktop 26.07.2018 20:08 # 0
Меня в своё время соблазнила модульная модель, но ты как-то сказал, что в ML (кажется?) она намного лучше, но ещё и на ML моих моральных сил не хватит после
и всякого такого.
А вот найти какую-то клёвую штуку для скриптования в перспективе было бы полезно. В мобайле оно практически не нужно, конечно, за пределами гейдева, но всё же. Но сходу ничего, кроме AngelScript, на ум не приходит.
Кстати, кто-то щупал MPL от JetBrains?
roskomgovno 26.07.2018 23:14 # 0
MPS мож?
Imho, идея DSLей, столь популярная в нулевые, не выстрелила.
Ибо создать язык программирования (пусть даже и урезанного) -- сложно. Очень мало у кого это получается сделать красиво. Потому все DSL неюзабельное говно.
Попытки же сделать DSL из fancy языка (Vagrant и Puppet на Ruby, Gradle на Groovy) еще более пичальны: получается не "простой и красивый язык конфигурации" а неебически сложное API, использующее редкоземельные и сложные конструкции языка, писать на котором обдуманно можно только очень хорошо зная язык.
Высокоуровневый заембеженный язык типа lua это ок.
А синтаксис грэдла или вагранта это буэээ
(это всё было имхо)
Desktop 26.07.2018 23:26 # 0
Не понял, чем "высокоуровневый заембеженный язык типа lua" принципиально отличается от "DSL из fancy языка". Впрочем, сам считаю, что брать для DSL очередной мунспик значит не уважать своих пользователей (и +1 причина, почему я не люблю, например, cocoapods). Значит ли это, что DSL должен быть декларативным?
roskomgovno 26.07.2018 23:48 # 0
Кроме того он достаточно простой, потому месяца ковыряний с lua достаточно чтобы прочитать на нем любой код.
DSLже который сделал программист Вася используя прикольные средства Ruby или Groovy обычно выглядит вот так:
.
Чтобы понять что здесь написано надо знать Ruby, иначе не понятно что такое do с палочками и что вообще происходит.
Я-то понимаю что вызывается post_install, ему передается блок от параметра installer который делает require и вызывает patch у класса Patcher в модуле Amimono.
А если бы я руби не знал то это был бы кромешный песец.
Вот язык конфигурации nginx или apache или postgres обычный пользователь может понять потому что он простой. А эти языки не простые, не логичные, не консистентные. Потому что их создавали не дизайнеры языков.
>>. Значит ли это, что DSL должен быть декларативным?
Если у тебя полностью декларативный, не тьюрингполный язык типа языка ini файлов или JSON/TOML/YAML то всё отлично.
Его поймет пользователь. Но тогда это не будет DSL, имхо.
DSL это полноценный ЯП, просто заточенный для решения каких-то определенных задач, имеющий для них столько сахара что в итоге простые вещи можно описывать декларативно.
Вот еще пример (без знания гредла выглядит как набор букв): почему где-то есть скобки, а где-то нет?
Desktop 27.07.2018 00:12 # 0
- откровенно говоря, замени здесь lua на ruby и смысл не изменится. Наверное, дело всё же в синтаксисе, в первую очередь
> месяца ковыряний с lua
- многовато ты взял. Ты думаешь, что руби/лисп/питон за месяц ковыряний невозможно выучить до той степени, чтобы понимать install-файлы? Вот если ты берёшь тулзу и можешь её скрипты поправить через час ковыряния, то это показатель.
Я не знаю, может в lua действительно всё настолько просто, а ты банально преувеличиваешь ради красного словца.
roskomgovno 27.07.2018 00:30 # 0
Ну, на самом деле изменится потому что синтаксис lua проще чем у ruby или perl, например. Но в целом же любой полноценный язык изучить проще (и помощь по нему найти проще) чем DSL который вчера придумали.
>>Вот если ты берёшь тулзу и можешь её скрипты поправить через час ковыряния, то это показатель
Строковые литералы можно научиться менять через 2 минуты, но вот всерьез понять что написано и поправить -- это сложнее. И я считаю что никакие известные мне DSLи такой возможности не давали.
Ты же сам видел pods, разве не знающий Ruby может в них всерьез что-то понять? Ну мунспик же.
>> может в lua действительно всё настолько просто
Lua создавался как язык для конфигурирования изначально, так что мне кажется что он проще чем Ruby:) И уж точно конфиг на луа будет проще обычному (не знающему ни Lua ни Ruby) программисту чем те же pods кмк.
Desktop 27.07.2018 00:41 # 0
- пиздатый термин, мне нравится.
Ну да, я ж в принципе не спорю с основной твоей идеей, тот же Podfile обычно просто копипастят и потом строчки добавляют, не вникая. Вот у Carthage уже всё намного проще (но там и формат совсем тривиальный). А так я тоже когда-то такое делал, только на Питоне. Делаешь скрипт, который грузится твоим фреймворком, прямо система плагинов ёпта. В некоторых случаях может быть оправдано.
Кстати, читал недавно, что Naughty Dog по слухам используют Racket в качестве скриптового языка для своих игр. Интересный выбор. Правда, я подозреваю, что там не чистый Racket, а какой-то язык на его основе, который они замутили макросами и парсером.
roskomgovno 27.07.2018 01:03 # 0
Это не я придумал, это сам автор языка его так называет: его придумали чтобы конфигурировать на нем софт, потому там и таблицы чтобы удобнее описывать:
>>, тот же Podfile обычно просто копипастят и потом строчки добавляют, не вникая
вот да:)
>> по слухам используют Racket в качестве скриптового языка для своих игр
Будет забавно если в какой-то момент все люди начнут использовать диалекты лиспа в качестве конфигов. Вернутся, так сказать, к истокам (вспоминая emacs)). Не думаю что будет хуже чем DSLи на руби:)
roman-kashitsyn 27.07.2018 13:39 # 0
JaneStreet так делают, у них sexp это основной формат сериализации и конфигурации. Это, в частности, послужило причиной того, что билд-файлы для OCaml (система сборки dune) описываются в виде sexp [1]. Разумеется, билд-файлы для Common Lisp (система сборки ASDF) всегда использовали sexp [2].
guest8 27.07.2018 15:36 # −999
3oJIoTou_xyu 28.07.2018 07:00 # +1
Изначально этот язык разрабатывался по заказу petrobras для их них ПО.
roskomgovno 28.07.2018 22:10 # 0
roman-kashitsyn 27.07.2018 01:19 # 0
roskomgovno 27.07.2018 01:29 # 0
Вот ты сейчас описал примерно все известные мне DSLи:)
Особенно бывает прикольно когда берешь CLion (Intellij для сей) и хочешь сделать проект из трех .c и одного .h файла. И кажется на обычном Make это написать в 2 строчки, но CLion хочет CMake (он по нему конфигурируется, так же как Android Studio по gradle) и начинается все эти target_include_directories.
С другой стороны нормальные, кросс-платформенные, и при этом декларативные по большей части способы описания сборки проекта мне не известны. Все говно
bormand 26.07.2018 21:35 # 0
roman-kashitsyn 27.07.2018 01:26 # 0
Связка Emacs с CL просто офигенно, крестам такая крутизна и не снилась. Инкрементальная компиляция, компиляция отдельных функций, просмотр кода, сгенерированного компилятором из функции, офигенский дебаггер, ИНТЕРАКТИВНОЕ РАСКРЫТИЕ МАКРОСОВ, КАРЛ.
Ты использовал paredit или lispy? Требуется время, чтобы к ним прывыкнуть, но оно того стоит. Без них редактировать лисп это как питон в блокноте пробелами выравнивать.
bormand 27.07.2018 06:16 # 0
bormand 26.07.2018 21:44 # +2
Мне было бы влом писать демона аниме, cli для отладки arm'овской платы и ассемблер для своего проца под циклоняшку на чём-то с типизацией... А на питоне хуяк-хуяк и можно юзать. Правда лучше этот код никому не показывать...
vistefan 26.07.2018 21:46 # 0
bormand 26.07.2018 21:49 # 0
Мне же лень сходить и купить нормальный планшет...
vistefan 26.07.2018 21:52 # 0
P.S. А почему демон? Он что, в фоне работает и ждёт когда ты с торрентов докачаешь тайтл?
bormand 26.07.2018 21:53 # 0
vistefan 26.07.2018 21:59 # 0
Ух ты, в честь Тараса борду назвали.
bormand 26.07.2018 22:03 # 0
Скорее из-за его уёбищной веб-морды. Ждать докачки следующей серии можно было бы и в шелл скрипте.
666_N33D135 26.07.2018 22:08 # 0
Лень – двигатель прогресса, но она же может его тормозить. Главное, чтобы было не лень запилить телепорт, который телепортнёт тебя в магазин електронеки, а ещё лучше – который телепортнёт планшет к тебе домой.
roskomgovno 26.07.2018 22:19 # 0
Вот о чем я и говорю: скриптовые языки идеальны для написания скриптов автоматизации и glue кода, а не для сложной бизнеслогики высконагруженного приложения
roman-kashitsyn 27.07.2018 11:38 # 0
vistefan 27.07.2018 11:44 # 0
>…
>I can do web design pretty well (see this website)
)) >Skills
roman-kashitsyn 27.07.2018 11:46 # 0
(ノ◕ヮ◕)ノ*:・゚✧
madskillz
vistefan 27.07.2018 11:51 # 0
roman-kashitsyn 27.07.2018 12:26 # 0
Тут чтоли http://govnokod.ru/22444 ?
Что-то снова перечитал, ничего не нашёл.
Я поработал с ней пару месяцев на работе, потом купил такую же домой, юзаю со всеми компьютерами, за которыми работаю.
Если коротко, то
+ Компактная, занимает мало места, удобнее тянуться до мыши.
⇒ Удобно носить на хакаторы.
+ Backspace (Delete) рядом с Enter, очень удобно, быстро привыкаешь.
+ Topre доставляет, приятные ощущения и звук от нажатия (субъективно).
- Поначалу сильно не хватает второго Ctrl, не все хоткеи удобно набирать вслепую.
• Нужно время, чтобы привыкнуть к работе со стрелками, Home, End, вот это всё.
В общем, сильно на любителя, кто-то боготворит, кто-то обсирает. Если тебе хочется выбросить кучу бабла на клавиатуру с Topre, тебе, наверное, больше подойдёт Real Force [1].
vistefan 27.07.2018 15:24 # 0
Вот же
https://govnokod.ru/24063#comment422500
Спасибо, что ответил.
> Если тебе хочется выбросить
Да у меня денег-то нет, но ххкб мне очень нравится по всем признакам.
guest8 27.07.2018 13:37 # −999
vistefan 27.07.2018 15:35 # 0
> I haven't done much of this. (Consider how lousy this web page is.) Consult the appropriate webpage.
Как же смешно. Особенно 404 по ссылке на «my Perl page».
Desktop 27.07.2018 16:53 # 0
- генереция ASM'а из Хачкеля для работы с NES? Я правильно прочитал?
roman-kashitsyn 27.07.2018 17:03 # 0
Именно. Там ещё предыдущая статья есть с мотивацией
http://www.wall.org/~lewis/2013/10/03/inverting.html
Rather than using a compiler for a low level language to generate a low level program, it is possible to use a high level language as the compiler itself, creating a high level program that outputs the low level program when it runs.
bormand 27.07.2018 17:23 # 0
У этого подхода плюс ещё в том, что можно юзать циклы и функции high-level языка в качестве макросов. И это намного удобнее, чем учить/писать очередной говно-макро-препроцессор для асма... В общем-то поэтому я и пилил асм как DSL на питоне а не как транслятор из текста.
666_N33D135 27.07.2018 18:04 # 0
bormand 27.07.2018 18:06 # 0
Да ну. Макросы там намного слабее какого-нибудь "PHP" (в плане библиотек и читабельности, если не по тьюрингу). Да и всякие таблички с синусами, портянки кода для криптушни и прочую хрень через нормальный язык генерить всяко удобнее чем через макросы.
bormand 27.07.2018 16:59 # 0
Хм, выглядит даже проще, чем на питоне.
guest8 27.07.2018 14:24 # −999
vistefan 27.07.2018 15:38 # 0
Восстание машин?
guest8 27.07.2018 15:44 # −999
vistefan 27.07.2018 15:52 # 0
bormand 27.07.2018 16:55 # 0
Можно, но на время конфигурирования она отключится от внешнего мира и потеряет состояние регистров. Т.е. в одиночку она сама себя не сможет законфигурить, что-нибудь снаружи должно помогать (флешка, коконтроллер, вторая циклоняша и т.п.).
guest8 27.07.2018 17:40 # −999
bormand 27.07.2018 17:55 # 0
Вполне определёнными. LUT'ы (таблички с N входами и 1 выходом из которых на FPGA строят логику), оперативка и роутинг между элементами настраиваются согласно прошивке. А все триггеры тупо резетятся на 0.
В теории, если бы оно могло не резетить триггеры на время конфигурирования, можно было бы и кусочками патчить... Один хер на FPGA строят только синхронные схемы, а для них достаточно было бы притормозить clock на время перезаливки, чтобы в триггеры мусор не попал. Ну и i/o отключить от внешнего мира, чтобы там ничего не распидорасило. Но по спеке -- только полностью и со сбросом.
bormand 27.07.2018 18:29 # +1
Если я правильно понимаю устройство FPGA, то конфиг там хранится в длинной цепочке триггеров, размазанной по всему чипу. Ну и конфиг вдвигается в неё бит за битом с одного конца этой цепочки.
Вряд ли разрабы стали тратить вдвое больше триггеров для атомарного коммита всей этой цепочки в конце заливки. Это дорого и никому нинужно (на моей циклоняшке конфиг весит 700Кб, на старших моделях там мегабайты). Поэтому все соединения между элементами и LUT'ы пидорасит по полной во время заливки. Но при штатной заливке на это всем похуй -- триггеры в резете, i/o в отключке.
И трабла в том, что у триггеров (которые юзаются при нормальной работе, а не для хранения конфига) есть входы асинхронного сброса. Во время загрузки на них может пробиться единичка и мы потеряем стейт.
vistefan 26.07.2018 15:46 # 0
На какие жертвы только не приходится идти настоящим программистам в душе ради денег, даже для работы писать на языках калькуляторов…
[1] — в данной формулировке очень важно ставить именно такие кавычки: "PHP"