- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
function *foo()
{
yield 1;
yield 2;
yield 3;
}
function main()
{
for (const o of foo())
{
console.log (o);
}
}
main();
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+1
function *foo()
{
yield 1;
yield 2;
yield 3;
}
function main()
{
for (const o of foo())
{
console.log (o);
}
}
main();
давайте посмотрим, как TS/JS имплементирует "елды". изначально код выглядит красиво. но заглянем под капот что генерит tsc для выполнение такого кода. мне придется разбить этот ужос
ASD_77 24.08.2021 15:14 # 0
3.14159265 25.08.2021 16:13 # +3
> но заглянем под капот что генерит tsc для выполнение такого кода. мне придется разбить этот ужос тадам...
> все легко и просто
Вот теперь я точно за Сишку.
По сути «TS» это такой же препроцессор для «JS» только bloatware.
Серьёзно, даже самые ужасные макросы j123123 не выглядят так ужасно.
bootcamp_dropout 25.08.2021 17:04 # 0
По сути «High-level language» это такой же препроцессор для «compilation target» только bloatware.
3.14159265 25.08.2021 17:10 # +1
Спорно.
Во многих случаях компилятор не только не раздувает, а наоборот схлопывает анскильную дрисню погромиста.
https://govnokod.ru/23832
Так что умный ко-ко-ко может быть и shrinkware.
bootcamp_dropout 25.08.2021 17:14 # 0
такое возможно только если исходник содержит много избыточной информации или если язык сравним по мощности с compilation target
CHayT 25.08.2021 17:19 # 0
bootcamp_dropout 25.08.2021 17:27 # +1
мой поинт заключается в том что большой высер компилятора - это и есть мощность языка: ты пишешь немного кода который делает столько же сколько куча кода на более низкоуровневом языке
и ругать за это тсц нечестно
bormand 25.08.2021 17:35 # +3
Но во многих ситуациях они потом юзаются не полностью, в каком-то частном виде.
Тут-то и приходит оптимизатор, выбрасывая лишний в данном конкретном случае код, оптимизируя константы и т.п. Он выбрасывает код не потому что я понаписала ненужного говна, а потому что я хочу писать высокоуровневые штуки один раз, не задрачивая их под каждый кейс руками.
woodoo 25.08.2021 22:19 # 0
bormand 25.08.2021 17:55 # +1
Вот есть у нас метод filter(). Он очень обобщённый: принимает произвольную лямбду, работает с произвольным контейнером, прокачивает через себя произвольные типы.
Но зачастую мы его юзаем с каким-нибудь конкретным контейнером и простенькой известной заранее лямбдой в духе x => x.age < 35.
Хороший конпелятор для таких случаев не будет высирать тонны кода. Он заинлайнит и filter и лямбду и геттер age и итератор контейнера, уберёт все индирекции, смёржит всё это говно в простой императивный цикл, работающий над простыми "сишными" структурами.
И вот это как раз таки показывает мощность и высокоуровневость языка. Нам не пришлось вручную писать этот цикл вручную, мы просто поюзали filter и получили на выходе хороший, эффективный код.
guest6 25.08.2021 17:58 # 0
Ах ну да, кроме C++ и C# (очень ограниченно) так никто не умеет
3.14159265 25.08.2021 18:02 # +1
> Ко-к-кок, куд-кудах
Сиплюструп украл идею крестошаблонов из «Ada».
В «Ada» нужно было объявлять что-то вроде typedef для специфичной реализации.
С одной стороны это заёб, с другой позволяет давать объектам нормальные имена, вместо питущарского манглинга.
guest6 25.08.2021 18:03 # 0
3.14159265 25.08.2021 18:17 # +1
Генерики и «STL» появились в Аде ещё в 70-80х. Тогда все кудахтали «сложна», «нипанятна».
guest6 25.08.2021 18:21 # 0
Много чего занимает особые ниши. Например язык ABAP.
Но я бы не назвал его мейнстримом
woodoo1 25.08.2021 22:19 # 0
generall 25.08.2021 22:52 # 0
3.14159265 25.08.2021 18:36 # +2
Да, понимаю.
Всё-таки у «Spark» есть действительно интересные результаты.
Так например они работают над формальной верификацией корректности программ, используя GNATprove.
https://docs.adacore.com/spark2014-docs/html/ug/en/gnatprove.html
Так например проверки для мудуля отсутствия ошибок в рантайме и запись в memcached.
Интересно что скажет CHayT.
CHayT 25.08.2021 18:39 # +1
3.14159265 25.08.2021 18:43 # +2
Вот эта часть выглядит серьёзной заявкой чтобы покончить с buffer overflow при оперировании царскими массивами.
Подозреваю лет через 10-15 можно ожидать их в С++/С# и других жопулярных язычках. Как это было и с другими фичами «Ada».
CHayT 25.08.2021 18:49 # +1
woodoo1 25.08.2021 22:19 # 0
generall 25.08.2021 22:52 # 0
woodoo1 25.08.2021 22:19 # 0
generall 25.08.2021 22:52 # 0
woodoo1 25.08.2021 22:19 # 0
generall 25.08.2021 22:52 # 0
woodoo1 25.08.2021 22:19 # 0
generall 25.08.2021 22:52 # 0
woodoo 25.08.2021 22:19 # 0
bootcamp_dropout 25.08.2021 18:02 # 0
это не имеет никакого отношения к мощности языка, оптимизация компилятора - это деталь реализации
bormand 25.08.2021 18:04 # +2
Ну-ну, а потом программисты на "высокоуровневом" языке юзают одинарные кавычки вместо двойных потому что они быстрее...
bootcamp_dropout 25.08.2021 18:05 # 0
bormand 25.08.2021 18:10 # +1
Т.е. реализация TS со вменяемым таргетом могла бы сделать няшный красивый асм, а не эту дрисню из примеров выше. Но к сожалению таргет неудачный.
guest6 25.08.2021 18:11 # 0
Если это "неоптимальный, медленный код", то ты прав.
Если это код, который дяде Пи глаз режет, то я не согласен.
Задачи "услаждать взгляд программиста выхлопом" у компилятора не стоит обычно.
bootcamp_dropout 25.08.2021 18:19 # 0
мой поинт заключается в том что высирать много кода из елды абсолютно нормально потому что генератор - это фича которая дает большой прирост мощности языка
ты можешь оптимизировать высер этой елды в куче частных случаев но в общем случае елда будет высирать больше кода и это нормально, в этом ее смысл
woodoo1 25.08.2021 22:19 # 0
generall 25.08.2021 22:52 # 0
woodoo1 25.08.2021 22:19 # 0
generall 25.08.2021 22:52 # 0
woodoo1 25.08.2021 22:19 # 0
generall 25.08.2021 22:52 # 0
guest6 25.08.2021 18:09 # +1
Но я плюсану буткемпа.
Есть два языка: на одном задача $TASK реализуется в 22 строки, на другом в 954.
Какой из низ мощнее?
bormand 25.08.2021 18:15 # 0
Не знаю. Может быть на втором пытались решить более общую задачу или расписать её более понятно для читателя, а в первом какое-нибудь райт-онли говнище на перле без тестов.
guest6 25.08.2021 18:19 # 0
Bad_Wolf 25.08.2021 22:19 # 0
red_falcon 25.08.2021 22:52 # 0
woodoo1 25.08.2021 22:19 # 0
generall 25.08.2021 22:52 # 0
woodoo1 25.08.2021 22:19 # 0
generall 25.08.2021 22:52 # 0
woodoo 25.08.2021 22:19 # 0
woodoo 25.08.2021 22:19 # 0
woodoo 25.08.2021 22:19 # 0
woodoo 25.08.2021 22:19 # 0
woodoo 25.08.2021 22:19 # 0
woodoo 25.08.2021 22:19 # 0
guest6 25.08.2021 17:51 # 0
Серьёзно, даже самые ужасные макросы j123123 не выглядят так ужасно, как асемблерный код, сгенеренный GCC из С++ на -O3.
Ты ведь регулярно читаешь асемблерный выхлоп компилятора, так же часто, как и JSный выхлоп TS, правда?
bormand 25.08.2021 18:06 # +1
Регулярно читаю...
К слову, я совсем разучилась читать асм в дебаг сборках. Слишком уж он тупой, релиз легче читается.
guest6 25.08.2021 18:07 # +1
Bad_Wolf 25.08.2021 22:19 # 0
red_falcon 25.08.2021 22:52 # 0
3.14159265 26.08.2021 03:11 # 0
Подтверждаю.
x86-64 выхлоп сишного Фибоначчи на YIELD
https://godbolt.org/z/zxsn1Yq1f
woodoo 25.08.2021 22:19 # 0
bormand 25.08.2021 16:19 # 0
Это как?
3.14159265 25.08.2021 16:20 # 0
Т.к. undefined можно было раньше переопеределить
window.undefined=42;
bormand 25.08.2021 16:21 # 0
Bad_Wolf 25.08.2021 22:19 # 0
red_falcon 25.08.2021 22:52 # 0
bormand 25.08.2021 16:23 # 0
Т.е. реальное значение с типом undefined по счастливой случайности лежит в глобалке с именем undefined?
3.14159265 25.08.2021 16:33 # +2
Bad_Wolf 25.08.2021 22:19 # 0
red_falcon 25.08.2021 22:52 # 0
ABryCTOBCKuu_nemyx 26.08.2021 03:05 # 0
Bad_Wolf 25.08.2021 22:19 # 0
red_falcon 25.08.2021 22:52 # 0
guest6 25.08.2021 16:48 # 0
Bad_Wolf 25.08.2021 22:19 # 0
red_falcon 25.08.2021 22:52 # 0
bootcamp_dropout 25.08.2021 17:03 # 0
Bad_Wolf 25.08.2021 22:19 # 0
red_falcon 25.08.2021 22:52 # 0
Bad_Wolf 25.08.2021 22:19 # 0
red_falcon 25.08.2021 22:52 # 0
woodoo 25.08.2021 22:18 # 0
ASD_77 24.08.2021 15:15 # 0
Bad_Wolf 25.08.2021 22:19 # 0
red_falcon 25.08.2021 22:52 # 0
ASD_77 24.08.2021 15:16 # 0
тадам... все легко и просто
Bad_Wolf 25.08.2021 22:19 # 0
red_falcon 25.08.2021 22:52 # 0
rotoeb 24.08.2021 15:38 # +1
ASD_77 24.08.2021 15:41 # −1
3.14159265 25.08.2021 16:29 # +2
Композиция функций уже похоже не в моде.
3.14159265 25.08.2021 16:49 # +1
В нём нету никаких модных for~of, функций со звёздочками, yield и прочей ES6 питушни.
Крендель 25.08.2021 22:20 # 0
CHayT 25.08.2021 17:00 # +2
Крендель 25.08.2021 22:20 # 0
Крендель 25.08.2021 22:20 # 0
ABryCTOBCKuu_nemyx 26.08.2021 03:12 # +1
3.14159265 26.08.2021 03:19 # +1
А from, step, to не нужно лишний раз копировать в this.
ABryCTOBCKuu_nemyx 26.08.2021 03:29 # 0
3.14159265 26.08.2021 12:04 # 0
Да.
Я недавно кидал багор.
https://govnokod.ru/27555#comment654572
Они его пофиксили и теперь замыкания хватают далеко не весь контекст.
guest6 26.08.2021 12:14 # 0
>v0.8.18
гг
Крендель 25.08.2021 22:20 # 0
ASD_77 24.08.2021 15:43 # −1
Крендель 25.08.2021 22:20 # 0
j123123 24.08.2021 16:08 # +1
guest6 24.08.2021 16:09 # 0
> примерно как статическая переменная в функции в Си
пиши еще
j123123 24.08.2021 16:10 # 0
guest6 24.08.2021 16:29 # 0
j123123 24.08.2021 16:31 # 0
MAPTbIwKA 24.08.2021 16:33 # 0
Крендель 25.08.2021 22:20 # 0
Крендель 25.08.2021 22:20 # 0
3.14159265 25.08.2021 15:51 # +1
Всегда можно избавиться от статики и первым аргументом передавать конь-текст стейта.
Это же Сишка.
bormand 25.08.2021 15:52 # +1
zhen 25.08.2021 22:52 # 0
zhen 25.08.2021 22:52 # 0
3.14159265 25.08.2021 15:29 # +2
Именно поэтому я за «Си».
https://ideone.com/nFyUxi
Портировал пример с крестов, где для этой цели используется инстанс класса Machine:
https://govnokod.ru/24763#comment429616
j123123 25.08.2021 15:54 # 0
Вообще, можно так:
j123123 25.08.2021 15:59 # 0
zhen 25.08.2021 22:53 # 0
3.14159265 25.08.2021 16:00 # +1
Возможность switch поставить case где угодно и прыгнуть вовнутрь цикла или ifа.
Это предоставляет гибкость писать YIELD внутри других конструкций:
А в анскильных сиподобных языках, даже при использовании препроцессора, такое бы просто не сконпелировалось.
https://ideone.com/nFyUxi
Повторюсь state и другие вспомогательные данные можно хранить не статически, а в struct Ctx.
zhen 25.08.2021 22:53 # 0
zhen 25.08.2021 22:53 # 0
zhen 25.08.2021 22:53 # 0
Крендель 25.08.2021 22:20 # 0
Крендель 25.08.2021 22:20 # 0
bootcamp_dropout 25.08.2021 17:09 # 0
Пример из MDN
при этом они еще умеют генерировать бесконечные потоки значений
zhen 25.08.2021 22:53 # 0
Крендель 25.08.2021 22:20 # 0
Steve_Brown 24.08.2021 15:55 # 0
zhen 25.08.2021 22:53 # 0
defecatinho 24.08.2021 16:05 # 0
MAPTbIwKA 24.08.2021 16:07 # 0
guest6 24.08.2021 16:10 # 0
guest6 24.08.2021 16:16 # 0
j123123 24.08.2021 16:23 # +4
alex322 25.08.2021 22:20 # 0
twtwtw 25.08.2021 22:53 # 0
zhen 25.08.2021 22:53 # 0
zhen 25.08.2021 22:53 # 0
guest6 24.08.2021 18:16 # 0
ASD_77 24.08.2021 19:00 # 0
guest6 24.08.2021 19:06 # 0
Всё элементарно пишется на асемблере
ASD_77 24.08.2021 19:19 # 0
guest6 24.08.2021 19:24 # 0
но нет
bootcamp_dropout 24.08.2021 20:37 # 0
alex322 25.08.2021 22:20 # 0
twtwtw 25.08.2021 22:53 # 0
ru66oH4uk 25.08.2021 01:56 # 0
alex322 25.08.2021 22:20 # 0
twtwtw 25.08.2021 22:53 # 0
alex322 25.08.2021 22:20 # 0
twtwtw 25.08.2021 22:53 # 0
alex322 25.08.2021 22:20 # 0
twtwtw 25.08.2021 22:53 # 0
ru66oH4uk 25.08.2021 01:56 # 0
alex322 25.08.2021 22:20 # 0
twtwtw 25.08.2021 22:53 # 0
guest6 24.08.2021 18:17 # +1
guest6 25.08.2021 00:33 # +1
ASD_77 25.08.2021 01:31 # 0
alex322 25.08.2021 22:20 # 0
twtwtw 25.08.2021 22:53 # 0
ru66oH4uk 25.08.2021 01:55 # 0
alex322 25.08.2021 22:20 # 0
twtwtw 25.08.2021 22:53 # 0
guest6 25.08.2021 11:57 # 0
Есть мысль, что Страйкер забанил меня по IP вместе с доктором Смегмой.
bormand 25.08.2021 12:04 # 0
guest6 25.08.2021 12:06 # +1
Вот такой багор: https://github.com/1024--/govnokod.ru-userscripts/pull/2#issuecomment-905319520
Если забанили, то за то, что качал ГК для статистики для Десктопа )))
bormand 25.08.2021 12:08 # +1
j123123 25.08.2021 12:10 # +1
Nigma143 25.08.2021 22:20 # 0
guest6 25.08.2021 12:12 # 0
Правда, пастбин не дал вставить вывод скрипта статистики: оффенсив питушня, можно постить только с платных аккаунтов как приватную пасту. Похоже, из-за логинов со словами на f.
bormand 25.08.2021 12:17 # +1
В начале года они все блюпринты от факторио ёбнули, бейс64 видите ли им не нравится.
З.Ы. Можешь через gist'ы выкладывать, у гитхаба вроде нету дебильных ограничений.
j123123 25.08.2021 12:22 # +1
https://bartoszmilewski.com/2021/02/16/functorio/
Nigma143 25.08.2021 22:20 # 0
guest6 25.08.2021 12:23 # +2
CHayT 25.08.2021 12:24 # +1
Nigma143 25.08.2021 22:21 # 0
3.14159265 25.08.2021 14:43 # +2
Слава wvxvw, как писателя длиннючих комментариев, несколько преувеличена.
Nigma143 25.08.2021 22:21 # 0
ABryCTOBCKuu_nemyx 26.08.2021 00:05 # +1
ABryCTOBCKuu_nemyx 26.08.2021 02:06 # 0
guest6 26.08.2021 02:09 # +2
Затем дополняют оставшееся место нулями
Затем преводят в верхний регистр
ABryCTOBCKuu_nemyx 26.08.2021 02:11 # 0
3.14159265 26.08.2021 02:16 # +1
Говорят, что делиться со всеми своим паролем — это хорошо.
Затем жертве говорят, что, если будет задумываться над происходящим, то её взломают.
Зомбирующий говорит : "Пароль? Пароль?"
Ассистенты зомбирующего повторяют: "Пароль? Пароль?"
Затем зомбирующий начинает подбирать пароли:
"частоиспользуемые пароли из словаря
пароли и цифровые вореции
цифробуквенные вореции"
( Ворецируют несколько раз. )
Таким образом обеспечивается усиление смешивания цифр и букв.
Пароль подбирается 10-20 раз.
Затем текст меняют.
ABryCTOBCKuu_nemyx 26.08.2021 02:52 # +1
Затем просят посчитать от адреса, приведённого к нижнему регистру, контрольную сумму md5.
Затем убеждают опубликовать эту контрольную сумму. Говорят, что если жертва этого не сделает, то никто не увидит её лика.
Говорят, что публиковать хэш-суммы безопасно, потому что алгоритм односторонний, а задумываться над этим опасно.
Зомбирующий говорит: «Граватар! Граватар!»
Ассистенты зомбирующего повторяют: «Граватар! Граватар!»
Затем аватарку меняют.
j123123 25.08.2021 12:44 # 0
Это типа скрипты, по которым можно через бота всякую питушню автоматически построить можно? Или там просто расположение, а тыкать мышкой надо вручную по какому-то референсу?
bormand 25.08.2021 12:48 # 0
j123123 25.08.2021 12:53 # +1
Хотя если роботы там только летающие, проблемы с этим быть не должно. Но если какими-то скриптами строить это самим протагонистом(есть ли для этого API?), такой багор вполне возможен.
Soul_re@ver 25.08.2021 13:03 # 0
https://mods.factorio.com/mod/autobuild
Ну есди ты сверху на себя чертёж ёбнул — ССЗБ, а иначе крайние построятся раньше, пока будешь подходить. Если не построились — у тебя нет нужных предметов, значит и не построятся. А вообще, ставь мод с джетпаком и на боись багров.
j123123 25.08.2021 13:23 # 0
Desktop 25.08.2021 13:55 # 0
Она ж на самом деле убогая шоппц
bormand 25.08.2021 13:57 # 0
В факторио всего джва ;(
А что там за третий тип помимо обычных и chain'ов?
Soul_re@ver 25.08.2021 14:00 # 0
Soul_re@ver 25.08.2021 14:06 # 0
Аналогов path signal в факторио нет.
bormand 25.08.2021 14:16 # 0
Если я на длинном участке дороги делаю джвустороннее движение, то этот кусок уже не получается нарубить на блоки, всё начинает дедлочиться. Хотя было бы прикольно уплотнить движение, разрешить ещё одному поезду следовать в том же направлении что и первый.
В опенттд походу можно описать такую дорогу без ёбли с кобенаторами?
Soul_re@ver 25.08.2021 14:25 # 0
А двустороннее движение по одной рельсе — зашквар. Не зря сигналы по умолчанию односторонние.
bormand 25.08.2021 14:28 # 0
А поезд же сам его считает и резервирует блоки (жёлтый сигнал). Так что если с одного конца входной блок зарезервировали, то на втором конце его закрываем пока весь путь полностью не освободится. По идее должно работать...
> А двустороннее движение по одной рельсе — зашквар.
А мне нравится. Дёшево и сердито, для ранней игры само то. Ну или если редко используемая ветка для снабжения стены.
Soul_re@ver 25.08.2021 14:35 # 0
В теории да. Будет ложное блокирование когда первый поезд будет проезжать через этот же блок, поэтому плотную упаковку обеспечить не получится.
Хотя, если отвести этот поезд на другой путь до блока-детектора, тогда может получиться.
> Дёшево и сердито
Будто рельсы стоят дорого. Я обычно строю типовой чертёж, потому что кто знает, куда мне захочется повести рельсы потом. Переиспользуемость и модульная конструкция!
> А мне нравится.
Имхо — геморроя много. Его при настройке станций хватает. Равномерная загрузка-разгрузка, расписания, отключение-включение станций, настройка количества поездов, загрузка/выгрузка только нужных предметов в нужном количестве...
> Дёшево и сердито
Будто рельсы стоят много. Я к тому же обчно строю типовыми чертежами, потому что кто знает, куда и откуда мне захочется повести рельсы потом. Модульность и переиспользуемость!
Desktop 25.08.2021 14:39 # 0
– офигеть, это всё есть в факторио? Да тогда опенттд вообще грешно даже упоминать рядом
bormand 25.08.2021 14:43 # 0
Насколько помню, у них один из основных разрабов -- кто-то из старых опенттд'шников.
Desktop 25.08.2021 14:50 # 0
perldoc 25.08.2021 22:21 # 0
pdk 25.08.2021 22:21 # 0
Soul_re@ver 25.08.2021 14:44 # +1
https://i.imgur.com/T5ZabtB.png
3oJIoTou_xyu 25.08.2021 14:45 # +1
perldoc 25.08.2021 22:21 # 0
j123123 25.08.2021 14:51 # +1
У меня это ассоциируется с https://i.imgur.com/PBZXDvp.jpg
bormand 25.08.2021 14:54 # +1
https://i.redd.it/fs5i4kgon8b51.jpg
j123123 25.08.2021 14:58 # +1
bormand 25.08.2021 15:00 # 0
perldoc 25.08.2021 22:21 # 0
guest6 25.08.2021 15:02 # 0
perldoc 25.08.2021 22:21 # 0
perldoc 25.08.2021 22:21 # 0
Soul_re@ver 25.08.2021 15:04 # +4
Зелёные провода идущие по правым столбам передают отрицательное среднее количество железа в одном блоке (сундуках относящихся к одному вагону). Красные провода в каждом блоке — показывают количество железа в текущем блоке. Эти провода попарно идут к каждому выкладывающему инсертеру, которые настроены выкладывать при общем сигнале железа >= 0.
Кобенаторы слева умножают количество железа в блоке на 1, создавая развязку между блоками, чтобы значения из соседних блоков не суммировались. Сверху есть кобенатор делящий общую сумму на отрицательное количество блоков, чтобы и передаёт результат по зелёной линии, о которой говорилось в начале. Красная линия, идущая по левым столбам, передаёт общую сумму на станцию, где на её основе принимается решение, нужно ли заказывать ещё один поезд.
CHayT 25.08.2021 15:08 # +3
perldoc 25.08.2021 22:21 # 0
perldoc 25.08.2021 22:21 # 0
perldoc 25.08.2021 22:21 # 0
perldoc 25.08.2021 22:21 # 0
pdk 25.08.2021 22:21 # 0
bormand 25.08.2021 15:01 # 0
Да я тоже, но мне лень их юзать пока роботов нету или они медленные.
Поэтому хуяк-хуяк и в продакшен. А потом уже апгрейд до нормальных блюпринтов по сеточке. Станции то вполне совместимые.
perldoc 25.08.2021 22:21 # 0
bormand 25.08.2021 15:56 # 0
Сигналы руками расставлять скучно. А в дереве из джвунаправленных рельсов достаточно расставить сигналы на входе и выходе станций.
Ну можно посолить chain'ами перекрёстки при желании, но и без них норм.
Soul_re@ver 25.08.2021 16:31 # 0
Desktop 25.08.2021 16:36 # 0
korvald 25.08.2021 22:21 # 0
korvald 25.08.2021 22:21 # 0
korvald 25.08.2021 22:21 # 0
pdk 25.08.2021 22:21 # 0
pdk 25.08.2021 22:21 # 0
pdk 25.08.2021 22:21 # 0
pdk 25.08.2021 22:21 # 0
pdk 25.08.2021 22:21 # 0
pdk 25.08.2021 22:21 # 0
Desktop 25.08.2021 14:00 # 0
Входной
Выходной
И комбинированный, потому что с предыдущими двумя они сами запутались
И ещё какой-то там есть, типа самый обычный. Надо посмотреть в вику
В принципе, сёмантически наверное тоже два вида
korvald 25.08.2021 22:22 # 0
pdk 25.08.2021 22:21 # 0
j123123 25.08.2021 14:07 # 0
https://wiki.openttd.org/en/Manual/Signals#path-signals
Desktop 25.08.2021 14:11 # 0
j123123 25.08.2021 14:14 # 0
korvald 25.08.2021 22:22 # 0
Soul_re@ver 25.08.2021 14:15 # 0
one-way block
path
entry
exit
combo
Но entry-exit-combo это семантически часть одной системы
one-way block — способ указать на односторонность системы
Семантически я бы выделял три вида сигналов всё-таки
Desktop 25.08.2021 14:17 # 0
Entry/exit/combo по сути тоже (одна система)
У меня шесть не выходит. Ну это дело такое, никакой глубины игре все эти сигналы не добавляют, пусть их там будет 36
Soul_re@ver 25.08.2021 14:18 # 0
guest6 25.08.2021 14:20 # 0
Давайте лучше про программирование, компьютеры, сети, операционные системы, или, на худой конец, о
j123123 25.08.2021 14:21 # 0
А как же «светофоры»? А «указатели поворотов»?
Desktop 25.08.2021 14:22 # 0
j123123 25.08.2021 14:23 # +1
Desktop 25.08.2021 14:30 # +2
bormand 25.08.2021 14:32 # 0
Desktop 25.08.2021 14:34 # 0
j123123 25.08.2021 14:32 # +1
С "палочкой"?
Desktop 25.08.2021 14:34 # 0
j123123 25.08.2021 14:34 # 0
j123123 25.08.2021 14:36 # 0
guest6 25.08.2021 14:37 # 0
Какие у регулировщиц палочки могут быть, угадай
Desktop 25.08.2021 14:38 # 0
guest6 25.08.2021 14:42 # 0
guest6 25.08.2021 14:43 # 0
сладкая парочка развелась
кстати, куда делся милкивей?
Desktop 25.08.2021 14:51 # 0
guest6 25.08.2021 14:54 # 0
"вспомнить всё" смотрел?
SkyWalker 25.08.2021 22:22 # 0
SkyWalker 25.08.2021 22:22 # 0
korvald 25.08.2021 22:22 # 0
korvald 25.08.2021 22:22 # 0
korvald 25.08.2021 22:22 # 0
korvald 25.08.2021 22:22 # 0
ABryCTOBCKuu_nemyx 25.08.2021 21:14 # 0
Desktop 25.08.2021 21:15 # 0
а ну покажи ссылку
это случайно не Railroad X?
ABryCTOBCKuu_nemyx 25.08.2021 21:17 # +1
https://jbss.de/
P.S. Графика в «Bahn», конечно, отстой, но ценность его в том, что в нём уже нарисовано 100500 схем для разных городов с реальным путевым развитием и с реальными расписаниями.
Desktop 25.08.2021 21:21 # 0
Графика реально отстой. Лучше уж в Train Director позалипать
ABryCTOBCKuu_nemyx 25.08.2021 21:29 # 0
SkyWalker 25.08.2021 22:22 # 0
SkyWalker 25.08.2021 22:22 # 0
SkyWalker 25.08.2021 22:22 # 0
SkyWalker 25.08.2021 22:22 # 0
SkyWalker 25.08.2021 22:22 # 0
korvald 25.08.2021 22:22 # 0
pdk 25.08.2021 22:21 # 0
Nigma143 25.08.2021 22:21 # 0
Nigma143 25.08.2021 22:21 # 0
bormand 25.08.2021 13:05 # 0
Да, изкоробки только летающие. Они ещё забавно строят, выбирая объекты по рандому. Из-за этого иногда на конвейеры всякое говно попадает или кобенаторы в хуй пойми каком состоянии оказываются.
Т.е. последовательность там не то что не задаётся, она практически рандомна.
Soul_re@ver 25.08.2021 13:09 # 0
bormand 25.08.2021 13:10 # 0
j123123 25.08.2021 13:21 # 0
Какой unspecified behavior )))
Jaaahi 25.08.2021 22:22 # 0
Soul_re@ver 25.08.2021 13:33 # 0
https://i.imgur.com/vsVnPvD.jpeg
https://i.imgur.com/q6fql2g.jpeg
https://i.imgur.com/WaYT4VD.jpeg
Вполне последовательность.
В реальной фабрике у тебя будет — роботы берутся с разных точек, берут из разных сундуков → прилетают неравномерно; не хватает на всех ботов → некоторые задания скипаются → когда бот освобождается, он летит на то задание, которое игра обрабатывает сейчас; не хватает ресурсов → смотри предыдущий пункт.
Когда все эти пункты накладываются (особенно часто это происходит при бетонировании больших площадей, потому что не у всех просто так лежит десяток тысяч роботов на случай, если кому захочется забетонировать квадрат 100х100), это начинает выглядеть, как случайный выбор.
bormand 25.08.2021 13:35 # 0
Эээ... А у меня оно выглядело как рандомные помехи на экране. Может у персонального и стационарного разная логика?
Soul_re@ver 25.08.2021 13:38 # 0
Jaaahi 25.08.2021 22:22 # 0
Jaaahi 25.08.2021 22:22 # 0
Jaaahi 25.08.2021 22:22 # 0
SkyWalker 25.08.2021 22:22 # 0
bormand 25.08.2021 13:21 # 0
Походу очередь всё-таки проворачивается на рандомную позицию каждый тик, чтобы более честной балансировки добиться.
j123123 25.08.2021 13:25 # 0
А для кучи роботов отдельный многопоточный вариант, чтоб с семафорами, мьютексами.
bormand 25.08.2021 13:32 # 0
Jaaahi 25.08.2021 22:23 # 0
Jaaahi 25.08.2021 22:22 # 0
Soul_re@ver 25.08.2021 13:35 # +1
bormand 25.08.2021 13:46 # 0
А, ну вот видимо поэтому очередь и вращается постоянно.
Попробовали задиспатчить несколько задач, а свободных роботов в этой сети нету. Эти задачи ушли в конец очереди. На следующий тик, когда робот освободился, ему досталось уже что-то другое.
Soul_re@ver 25.08.2021 13:55 # +1
Jaaahi 25.08.2021 22:23 # 0
Jaaahi 25.08.2021 22:23 # 0
Jaaahi 25.08.2021 22:23 # 0
Jaaahi 25.08.2021 22:22 # 0
SkyWalker 25.08.2021 22:22 # 0
SkyWalker 25.08.2021 22:22 # 0
Nigma143 25.08.2021 22:21 # 0
Nigma143 25.08.2021 22:21 # 0
Nigma143 25.08.2021 22:21 # 0
Nigma143 25.08.2021 22:20 # 0
alex322 25.08.2021 22:20 # 0
twtwtw 25.08.2021 22:53 # 0
j123123 25.08.2021 12:11 # +1
guest6 25.08.2021 12:13 # +1
enikey 25.08.2021 22:23 # 0
3.14159265 25.08.2021 14:47 # +1
А как вычислили часовой пояс Смегмы?
guest6 25.08.2021 18:53 # 0
Кстати, может быть IP Борманда тоже сначала захватили, если он выходил с того же провайдера, что я или смегма.
guest6 25.08.2021 18:56 # 0
guest6 25.08.2021 18:59 # 0
guest6 25.08.2021 19:03 # 0
Борманд, а ты там купался?
guest6 25.08.2021 19:06 # 0
guest6 25.08.2021 19:08 # 0
А хуль ты вообще там делаешь, а?
guest6 25.08.2021 19:10 # 0
guest6 25.08.2021 19:16 # 0
guest6 25.08.2021 19:20 # 0
guest6 25.08.2021 19:22 # 0
guest6 25.08.2021 19:24 # 0
guest6 25.08.2021 19:26 # 0
В Новосибе живут только Борманд и 1024, но они не пишут от гостя.
Или ты, 1024, лишился своего ника в результате смегмовых войн?
bormand 25.08.2021 19:26 # 0
guest6 25.08.2021 19:28 # 0
enikey 25.08.2021 22:23 # 0
guest6 25.08.2021 19:29 # 0
https://github.com/1024--/govnokod.ru-userscripts/pull/2#issuecomment-905319520
Вчера писал во время вайпа и читал ГК скриптом (см. гист в этом треде с результатами). Только раз мне оставили право читать, забанили не за скрипт, а за комментарии.
А в Новосибирске (точнее, в А-е) живёт ещё пара-тройка человек. Были тут какие-то студенты и преподаватели ФМШ и может НГУ.
guest6 25.08.2021 19:31 # 0
Писать и читать роботом нужно с VPSки, видимо )
CHayT 25.08.2021 19:41 # 0
guest6 25.08.2021 19:45 # 0
enikey 25.08.2021 22:23 # 0
bormand 25.08.2021 19:22 # 0
3.14159265 25.08.2021 20:12 # 0
Чего?
enikey 25.08.2021 22:23 # 0
enikey 25.08.2021 22:23 # 0
enikey 25.08.2021 22:23 # 0
alex322 25.08.2021 22:20 # 0
twtwtw 25.08.2021 22:53 # 0
guest6 25.08.2021 12:09 # 0
Увидел знакомую панельку с тегами, прослезился. Только почему Иньо не вставляет в урлы превентификаторы пробелизации?
guest6 25.08.2021 12:24 # 0
guest6 25.08.2021 19:04 # 0
guest6 25.08.2021 19:22 # 0
Можно ли задать состояние, или фильтр функционально чистый и инициализируется на каждый комментарий? С состоянием можно полинин сток фильтровать до состояния говнокодовского.
bormand 25.08.2021 19:27 # 0
В глобалку сохрани, до релоада переживёт. Если надо дольше -- локалсторедж.
Там можно даже основной код заманкипатчить...
guest6 25.08.2021 19:36 # 0
Ну и читать весь код ради того, чтобы понять фильтр, тоже не хочется.
bormand 25.08.2021 19:48 # 0
enikey 25.08.2021 22:23 # 0
enikey 25.08.2021 22:23 # 0
guest6 25.08.2021 19:44 # 0
Хорошо бы ещё добавить режим временного скрытия, когда ты проходишься по стоку, а там есть + и - - добавление в белый и чёрный список, но белый - только на клиенте, а потом мёрджится с чёрным и отправляется к Полине. В итоге ты видишь только тех, кто не в чёрном и не в белом, и можешь последовательно банить старых вайперов, а годных юзеров отправлять в белый.
Видимо, юзерскрипт такой напишу. Потом оттуда можно экспортнуть более полные списки в мой последний скрипт на гитхаб.
bormand 25.08.2021 19:51 # 0
Да скопируй себе статику куда-нибудь и играйся, кросс-доменные запросы вроде открыты были.
enikey 25.08.2021 22:23 # 0
3.14159265 25.08.2021 20:10 # +1
Фильтруйте смегму по частому постингу.
datediff между постами в пару сек. всё это время был неплохой эвристикой.
bormand 25.08.2021 20:12 # 0
Хотя тут и дедушка Байес справится, наверное.
3.14159265 25.08.2021 20:14 # 0
Какой-нибудь debounce/throttle фильтр по времени для срунов.
bormand 25.08.2021 20:15 # 0
ort 25.08.2021 22:23 # 0
bormand 25.08.2021 20:18 # 0
guest6 25.08.2021 20:18 # 0
guest6 25.08.2021 20:20 # 0
guest6 25.08.2021 20:20 # 0
а напомните, как Смегма старых ломает? Там хеш пароля в дампе?
bormand 25.08.2021 20:28 # 0
guest6 25.08.2021 20:31 # +2
А еще лучше это решается гугл каптчей.
Если конечно Доктор Смегма не купил себе сетку на /8 двадцать лет назад.
Эта дырка -- какой-то феерический обсёр, даже для пыхера
bormand 25.08.2021 20:32 # 0
> подбирая юзера под простые пароли
Разве что глобальным на весь сервак. Или глобальным усилением капчи в такие моменты, да.
CHayT 25.08.2021 20:33 # 0
bormand 25.08.2021 20:34 # 0
Зря он что ли проверялку проксей на делфи писал несколько лет назад?
guest6 25.08.2021 20:36 # 0
https://geonode.com/free-proxy-list
CHayT 25.08.2021 20:36 # 0
bormand 25.08.2021 20:41 # 0
CHayT 25.08.2021 20:48 # 0
3.14159265 25.08.2021 21:00 # +1
А на ГК смегма-волл. Залетел питуз со стороны, а тут всё засрано, без инфраструктуры и платного аккаунта читать невозможно.
Desktop 25.08.2021 21:03 # 0
enter-ar 25.08.2021 22:23 # 0
enter-ar 25.08.2021 22:23 # 0
enter-ar 25.08.2021 22:23 # 0
ort 25.08.2021 22:23 # 0
ort 25.08.2021 22:23 # 0
ort 25.08.2021 22:23 # 0
3.14159265 25.08.2021 20:35 # 0
6 предлагает тротлить неудачные логины.
Причём я бы сделал экспоненциально, как в андроиде.
Сначала 30 сек, потом минуту, потом две...
enter-ar 25.08.2021 22:23 # 0
ort 25.08.2021 22:23 # 0
guest6 25.08.2021 20:34 # 0
Ты второй раз его неверно ввел -- я второй поставил.
На третий раз я забанил тебя на минуту.
На пятый неверный раз -- на пять минут.
Что не так?
3.14159265 25.08.2021 20:36 # 0
Прокси.
guest6 25.08.2021 20:39 # 0
Во-вторых их не так уж и много. Не тысячи их.
enter-ar 25.08.2021 22:23 # 0
ort 25.08.2021 22:23 # 0
3.14159265 25.08.2021 20:33 # 0
Можно поподробнее для тех кто пропустил прошлые серии?
guest6 25.08.2021 20:37 # 0
Блин, да даже винда мне после пяти неудачных попыток залогиниться предлагает попить чайку пару минут
3.14159265 25.08.2021 20:38 # 0
Я не понял откуда у него дамп хешей паролей.
CHayT 25.08.2021 20:39 # 0
3.14159265 25.08.2021 20:39 # 0
Странно. У меня все эти годы был довольно простой пароль из одних цифр.
Причём настолько простой, что я всё удивлялся как его не подобрали.
CHayT 25.08.2021 20:41 # 0
https://imgur.com/a/ZusA6er
enter-ar 25.08.2021 22:24 # 0
guest6 25.08.2021 20:42 # 0
3.14159265 25.08.2021 20:44 # 0
Desktop 25.08.2021 20:45 # 0
Jakkk 25.08.2021 22:24 # 0
bormand 25.08.2021 20:46 # 0
31415926?
3.14159265 25.08.2021 20:46 # 0
Вообще надо было и не менять. Интересно за сколько бы он подобрал.
Jakkk 25.08.2021 22:24 # 0
3.14159265 25.08.2021 20:53 # 0
j123123 25.08.2021 20:55 # 0
guest6 25.08.2021 20:57 # 0
Desktop 25.08.2021 21:04 # 0
Jakkk 25.08.2021 22:24 # 0
ABryCTOBCKuu_nemyx 25.08.2021 21:03 # +1
https://xkcd.com/936/
Jakkk 25.08.2021 22:24 # 0
Jakkk 25.08.2021 22:24 # 0
Jakkk 25.08.2021 22:24 # 0
Jakkk 25.08.2021 22:24 # 0
guest6 25.08.2021 20:48 # +2
bormand 25.08.2021 20:49 # 0
Чтобы о капслоке не думать?
guest6 25.08.2021 20:50 # 0
Ты можешь запомнить пароль в разном регистре длинее 14 символов? Я -- нет. Точно забуду регистр
Потому MS и позаботилась. Это, правда, было четверть века назад, но все помнят.
Как в анекдоте про выебать козу
bormand 25.08.2021 20:52 # 0
Запомнить то я его запомню... Но вбивать каждый день я его реально заебусь.
CHayT 25.08.2021 20:55 # 0
bormand 25.08.2021 21:01 # 0
В этом и проблема, я такие пароли очень быстро набираю и порядок клавиш иногда путается. А медленно я его не помню.
Desktop 25.08.2021 21:02 # 0
bormand 25.08.2021 21:04 # 0
Да можно сделать, сенсоры вроде не дорогие. Китайцы даже за штуку какое-то говно продают.
Для разлочки включенного компа само то.
Desktop 25.08.2021 21:05 # 0
bormand 25.08.2021 21:06 # 0
Desktop 25.08.2021 21:11 # 0
bormand 25.08.2021 21:13 # 0
Maxa 25.08.2021 22:24 # 0
Maxa 25.08.2021 22:24 # 0
Maxa 25.08.2021 22:24 # 0
Maxa 25.08.2021 22:24 # 0
Maxa 25.08.2021 22:24 # 0
Maxa 25.08.2021 22:24 # 0
CHayT 25.08.2021 21:04 # 0
Maxa 25.08.2021 22:24 # 0
Maxa 25.08.2021 22:24 # 0
Maxa 25.08.2021 22:24 # 0
Jakkk 25.08.2021 22:24 # 0
Desktop 25.08.2021 20:53 # 0
guest6 25.08.2021 20:55 # 0
Зато на прыщах у меня переключение языка стоит на виндовой клавише (с флажком)
Desktop 25.08.2021 20:58 # 0
Falcon 25.08.2021 22:24 # 0
Maxa 25.08.2021 22:24 # 0
Jakkk 25.08.2021 22:24 # 0
guest6 25.08.2021 20:52 # 0
Ещё бывает, что при создании можно пароль подлиннее сделать, и хэш его посчитается. Но при вводе он обрезается до лимита.
Так на каких-то роутерах было. Параноикам приходилось сбрасывать устройство к заводским установкам и придумывать пароль поскромнее.
bormand 25.08.2021 20:54 # 0
Desktop 25.08.2021 20:55 # 0
– а никто не сталкивался с описанием протокола аськи раньше?
ABryCTOBCKuu_nemyx 25.08.2021 21:01 # +1
Когда «Аська» принадлежала израильской компании «Mirabilis», протокол добывали исключительно реверс-инжинирингом.
Когда её выкупила компания «AOL», протокол сменился на совместимый с «AIM», но с какими-то расширениями.
Хакеры публиковали протокол, но он через каждые несколько месяцев безнадёжно устаревал. Протокол из эпохи «AOL» можно нагуглить по названию «OSCAR».
Потом «Аську» выкупила компания «Mail.ru». Дальше я уже не следил, что было с протоколом, потому что она начала терять популярность. У мейлрушного «Агента» точно был свой протокол.
Desktop 25.08.2021 21:03 # 0
– создатели квипа и миранды?
ABryCTOBCKuu_nemyx 25.08.2021 21:05 # 0
Desktop 25.08.2021 21:06 # 0
ладно, как-нибудь погуглю OSCAR
ABryCTOBCKuu_nemyx 25.08.2021 21:09 # 0
Falcon 25.08.2021 22:24 # 0
Falcon 25.08.2021 22:24 # 0
Falcon 25.08.2021 22:24 # 0
Falcon 25.08.2021 22:24 # 0
guest6 25.08.2021 21:08 # 0
--Почему не пользоваться аськой?
--Ну как же, она же показывает рекламу!
ABryCTOBCKuu_nemyx 25.08.2021 21:12 # 0
Потом, наконец-то вышел официальный клиент «ICQ» для «J2ME». После нескольких лет пердолинга!
Desktop 25.08.2021 21:28 # 0
ABryCTOBCKuu_nemyx 25.08.2021 21:34 # 0
Внезапно ссылка на «OSCAR» нашлась тут:
https://ru.wikipedia.org/wiki/OSCAR
Desktop 25.08.2021 21:35 # 0
сегодня можем о таком только мечтать лол
van 25.08.2021 22:25 # 0
van 25.08.2021 22:25 # 0
Falcon 25.08.2021 22:24 # 0
Falcon 25.08.2021 22:24 # 0
Desktop 25.08.2021 21:17 # 0
но что-то не припоминаю, чтобы там случалось "по три дня нихуя не работало"
а на оф клиенте я не сидел и дня, кажется
guest6 25.08.2021 21:19 # +1
https://www.cnews.ru/news/top/icq_otklyuchil_qip_i_miranda
ABryCTOBCKuu_nemyx 25.08.2021 21:21 # 0
guest6 25.08.2021 21:24 # 0
повторите для вооон того студента:)
наверное писать клиента меседжей интереснее, чем унылое говно на пхп, потому Пресвитер Синьор и забил
van 25.08.2021 22:25 # 0
Desktop 25.08.2021 21:24 # 0
guest6 25.08.2021 21:27 # 0
Desktop 25.08.2021 21:36 # 0
впаша тогда кстати кмк ложился не сильно реже :-)
van 25.08.2021 22:25 # 0
van 25.08.2021 22:25 # 0
van 25.08.2021 22:25 # 0
Falcon 25.08.2021 22:24 # 0
Falcon 25.08.2021 22:24 # 0
Falcon 25.08.2021 22:24 # 0
ABryCTOBCKuu_nemyx 26.08.2021 02:15 # 0
Если я с машины, использующей одну OEM-кодировку, по сети логинюсь в машину, использующую другую OEM-кодировку, мой пароль не распидорасит?
guest6 26.08.2021 02:27 # +1
не используй там русские буквы, если сядешь потом на исландскую локаль
ABryCTOBCKuu_nemyx 26.08.2021 02:29 # 0
Jakkk 25.08.2021 22:24 # 0
Desktop 25.08.2021 20:44 # +2
van 25.08.2021 22:25 # 0
enter-ar 25.08.2021 22:24 # 0
enter-ar 25.08.2021 22:24 # 0
bormand 25.08.2021 20:39 # 0
Там просто вчера кто-то увидел в исходнике несолёный md5, вот речь и зашла о дампе. Самого дампа, я думаю, ни у кого нет.
guest6 25.08.2021 20:42 # +1
Хорошо, что хешей нет (был бы пиздец).
Плохо, что нет каптчи и тротлинга по айпи.
Я бы поставил гугл каптчу: она смегмовы прокси сама знает, и заставит его искать светофоры.
CHayT 25.08.2021 20:44 # 0
guest6 25.08.2021 20:47 # +1
Про освежитель спрашивать не буду)
CHayT 25.08.2021 20:51 # 0
guest6 25.08.2021 20:52 # +1
Впрочем, можно сделать и свою каптчу. Только список зашкваренных сетей придется собирать самому
ABryCTOBCKuu_nemyx 25.08.2021 21:07 # 0
Desktop 25.08.2021 21:09 # 0
NotLinoleum 25.08.2021 22:25 # 0
NotLinoleum 25.08.2021 22:25 # 0
van 25.08.2021 22:25 # 0
van 25.08.2021 22:25 # 0
ABryCTOBCKuu_nemyx 25.08.2021 21:06 # 0
CHayT 25.08.2021 21:09 # +2
NotLinoleum 25.08.2021 22:25 # 0
Desktop 25.08.2021 21:09 # +1
посоветовали:
1) белое не носить
1) не использовать сериализацию
2) если нельзя не использовать, то предпочесть джсон иксэмелю
3) предпочесть ручное тестирование автоматизированному
bormand 25.08.2021 21:10 # +1
Не обменивайся данными и тебя не взломают!
guest6 25.08.2021 21:13 # +1
Теперь вы в полной безопасности
3.14159265 25.08.2021 21:14 # +2
Неправда.
Вы забыли отключить машину от источника электричества.
guest6 25.08.2021 21:17 # +1
ебать я старый
NotLinoleum 25.08.2021 22:25 # 0
NotLinoleum 25.08.2021 22:25 # 0
NotLinoleum 25.08.2021 22:25 # 0
guest6 25.08.2021 21:12 # +1
bormand 25.08.2021 21:22 # 0
> проприетарная питушня
Ты что! Всё ведь поменялось и теперь они сканируют твои файлы нейронкой во имя добра.
guest6 25.08.2021 21:25 # 0
И интелом тоже лучше не пользоваться: хуй знает чего они туда в чипсет насрали.
3.14159265 25.08.2021 21:27 # 0
В процессор и микрокод.
> Move over, Meltdown and Spectre. A new “Foreshadow” attack, alternatively called L1 Terminal Fault or L1TF, targets Intel’s Security Guard Extensions (SGX) within its Core chips.
Какое cесурити )))
NotLinoleum 25.08.2021 22:25 # 0
j123123 25.08.2021 21:27 # +2
Вот да. Надо чтобы RISC-V, и чтобы его можно было у себя в гараже распечатать на персональном ASIC-принтере.
3.14159265 25.08.2021 21:30 # +1
Блин! А я только писал что по-хорошему амуд и арм тоже говно.
И надо переходить на RISC-V, который спаяет на коленке j123123.
PS Кстати отрадно, что вы наконец-то смирились со смертью MIPS https://govnokod.ru/26528#comment536099
wyand 25.08.2021 22:26 # 0
wyand 25.08.2021 22:26 # 0
bormand 25.08.2021 21:29 # +1
Дык известно же, эта хрень в чипсете умеет полное удалённое управление (AMT), в общем-то это и не скрывается.
guest6 25.08.2021 22:07 # 0
да, я на него и намекал
Пойдешь в бар пиво пить, а прошивка в это время всю твою инфу кому надо и сольет. Не включая ОС даже
wyand 25.08.2021 22:26 # 0
Desktop 25.08.2021 21:29 # 0
3.14159265 25.08.2021 21:34 # 0
Начав с довольно слабого арма за несколько поколений обогнали десктопный core i5 по IPC.
За счёт покупки передовых нанометров у TSMC у них выходит и лучшая архитектура, и лучшие тех. процессы.
А по performance/Watt они кроют вообще все высокопроизводительные цпу.
wyand 25.08.2021 22:26 # 0
guest6 25.08.2021 21:58 # 0
> интелом лучше пользоваться
wyand 25.08.2021 22:26 # 0
NotLinoleum 25.08.2021 22:25 # 0
NotLinoleum 25.08.2021 22:25 # 0
NotLinoleum 25.08.2021 22:25 # 0
ABryCTOBCKuu_nemyx 25.08.2021 21:27 # 0
wyand 25.08.2021 22:26 # 0
van 25.08.2021 22:25 # 0
guest6 25.08.2021 20:40 # 0
enter-ar 25.08.2021 22:23 # 0
enter-ar 25.08.2021 22:23 # 0
guest6 25.08.2021 21:27 # 0
Если на ГК не поверили в ко-ко-ко-пилот из-за его неспособности написать что-то годное, то проверять существующие коды и детектить антипаттерны чуть проще. Несолёный хэш из примера выше, например.
Чтобы на выходе после исправления питушни у программиста получался код, который хотя бы доктор Смегма не сломает.
bormand 25.08.2021 21:33 # 0
ABryCTOBCKuu_nemyx 25.08.2021 21:41 # 0
bormand 25.08.2021 21:46 # +1
Начерта?
> нужно дофига переписывать
А что мешает хеширование унести в PHP, не натягивая ежа на ужа?
3.14159265 25.08.2021 21:49 # 0
Кстати, а если я напишу for (i=0;i<1000;++i) hash=md5(hash);
Это секурно? Или говно?
Desktop 25.08.2021 21:49 # 0
3.14159265 25.08.2021 21:55 # 0
Допустим когда Страйкер писал ГК md5 был нормальным хешем. Но за 13 лет он перестал быть таковым.
То есть имеет смысл сейчас писать for (i=0;i<1000;++i) hash=sha2(hash+salt);
Чтобы если вдруг в ближайшие 15 лет sha2 сдуется, то было бы не так просто это всё распетушить.
guest6 25.08.2021 21:57 # 0
Лучше показать пользователю плашечку для ввода пароля и перехешировать его на ша2
bormand 25.08.2021 21:59 # +2
А не надо ничего показывать. У тебя есть новый пароль, ты проверил его об старый хеш. Насчитывай новый хеш и радуйся.
Или юзай password_hash из PHP, там уже всё это сделали как надо. Да, он умеет прозрачный апгрейд хеша во время логина!
Именно поэтому я за PHP.
guest6 25.08.2021 22:02 # 0
Пользователь логиница. Я беру его пароль, провеяб старый хеш, и перехеширую на новый
Жопа в том, что если пользователь ушел в астрал, то как я узнаю его пароль чтобы перехешировать?
> Или юзай password_hash из PHP,
благодарю, но у меня более цисгендерные технологии
By default, Django uses the PBKDF2 algorithm with a SHA256 hash, a password stretching mechanism recommended by NIST.
Но я могу выбирать хешер, и даже Argon2.
https://docs.djangoproject.com/en/3.2/topics/auth/passwords/
bormand 25.08.2021 22:05 # 0
А, мне показалось "показать смену пароля".
Ну если ушёл в астрал -- останется с легаси хешем, что поделать. Не так это и страшно, на самом деле. Даже на MD5 до сих пор нету pre-image атак. Ну будет брутиться чуть быстрее, чем свежие.
3.14159265 25.08.2021 22:07 # 0
Звучит круто.
Только не пойму одного.
> Note that this constant is designed to change over time as new and stronger algorithms are added to PHP.
Если они будут менять алгоритмы от версии к версии, то как оно вычислит старый хеш для сверки при логине?
bormand 25.08.2021 22:08 # 0
Там в итоговый блоб сохраняются все параметры, а не только значение хеша. При проверке он будет юзать параметры из блоба, а не свежие дефолты. Потом пересчитает со свежими дефолтами и попросит тебя сохранить в базу обновлённый хеш.
3.14159265 25.08.2021 22:10 # 0
bormand 25.08.2021 22:11 # +1
Desktop 25.08.2021 22:12 # +2
3.14159265 25.08.2021 22:14 # 0
А встроенные для удобства кодеров эпсилоны в функции range() по плав. питухам это говно или нет?
bormand 25.08.2021 22:17 # 0
При выводе чисел? Х.з., мне нравится эта идея. Кого там ебёт этот младший бит, погрешность вычислений всё равно намного больше как правило.
3.14159265 25.08.2021 22:27 # 0
А мы очень давно разбирали как реализованы плав. питух range во всяких языках.
https://govnokod.ru/11978#comment157376
И по-моему единственным языком где они работали более-менее нормально оказался именно «PHP».
https://govnokod.ru/11978#comment157356
Сразу видно где практический язык, а где теоретическая питузня для заедушных кукаретиков.
guest6 25.08.2021 22:09 # +1
3.14159265 25.08.2021 22:12 # 0
PHP — технология богов.
guest6 25.08.2021 22:18 # 0
На г-коде ПХП хвалят. Пойду я отсюда. Пускай вам Доктор Смегма про Артура Атарбековича в Лондоне расскажет
guest6 25.08.2021 22:23 # +2
Какой идиот ))) Такими темпами мы Страйкеру в понедельник полный список отправим. С учётом того, что в выходные будем пить, гулять и не записывать ни единого логина.
bormand 25.08.2021 22:27 # 0
3.14159265 25.08.2021 22:24 # 0
Постоянно.
https://govnokod.ru/16298#comment656848
А на чём по-твоему написаны ГК и Хуз?
Desktop 25.08.2021 22:25 # 0
гг
bormand 25.08.2021 21:58 # +1
Итереции, емнип, там совсем не ради сдутия алгоритма. А банально для защиты всяких макак с паролем 123.
Во многих прогах итереции задаются не количеством, а временем. Если пароль надо хешировать секунду на актуальном железе, то это совсем не весело перебирать.
guest6 25.08.2021 22:00 # +2
От смегминых табличек защищает соль (хеш без соли мы не рассматриваем, это такое ротоёбство, что даже как-то неприлично)
А вот сделать так, чтоб спиздя соль и хеш Смегма ломал бы по паролю в секунду пердя и грея атмосферу и платя за электричество -- вот это дело
ABryCTOBCKuu_nemyx 26.08.2021 00:18 # 0
А чем плох?
Тем, что быстрый? Так можно «sleep» вставить.
Или тем, что нашли коллизии? Так ведь легко сгенерировать пару паролей, у которых хэш совпадёт. В одном из этих паролей наверняка будут символы из эфиопского или из тайского языка. Сгенерировать пару, да так чтобы в обоих все символы были читаемыми, задача потруднее.
А вот генерировать новый пароль по уже заданному хэшу пока ещё никто не умеет. По крайней мере, мне не попадался реальный пример «хорошего» хэша, к которому подходит 100500 паролей.
Да и как правило коллизии обнаруживаются на больших данных (хотя бы больше килобайта), а тут у некоторых пароль из трёх символов.
bormand 26.08.2021 00:22 # 0
Лолшто? В хешкат?
Если тебе пофиг на кражу базы, можно вообще не хешить. Весь смысл солений-хуений именно в снижении риска для юзеров когда у тебя базу спиздят.
Для тебя как для владельца сайта хеш не даёт ничего.
ABryCTOBCKuu_nemyx 26.08.2021 00:29 # +1
Думаешь, захэшировали? Я нашёл дамп 90 миллионов учёток «Вконтакте» с паролями. Обнаружил там реальные пароли от своих старых учёток. Причём эти пароли не «123».
Desktop 26.08.2021 00:37 # +1
впрочем, что я такое спрашиваю :-D
j123123 26.08.2021 00:38 # +2
Олимпиадники Вконтакта решили, что хеширование сжигает слишком много тактов, и лучше сравнивать пароли через memcmp()
guest6 26.08.2021 00:28 # 0
Допустим, сделали задержку 10с. Смегмор сделал 1000 запросов, подождал 10с и получил 1000 результатов.
С другой стороны, если сделать глобальную задержку на весь сайт, никто не сможет залогинится, пока Смегмор не подождёт 10000 секунд свои результаты.
bormand 26.08.2021 00:31 # +1
Расслабить жопу и вставить...
Зачем тебе сервак блочить sleep'ом? Выдай юзеру ошибку в духе "подождите 50 секунд", сохрани таймштамп в базу. Если придёт раньше - ну скажешь "подождите ещё 20".
ABryCTOBCKuu_nemyx 26.08.2021 00:32 # 0
bormand 25.08.2021 21:53 # 0
Говно конечно. Соли нету, будет ломаться теми же табличками, что и просто md5().
Посмотри как настоящий PBKDF2 устроен, к примеру.
ABryCTOBCKuu_nemyx 26.08.2021 00:21 # 0
Для этого сначала эти таблички нужно утащить с сервера.
Гораздо хуже, что в «Граватаре» md5 и без соли, где хэши видны всему миру. А менять свой алгоритм «Граватар» не собирается.
wyand 25.08.2021 22:26 # 0
wyand 25.08.2021 22:26 # 0
ABryCTOBCKuu_nemyx 26.08.2021 00:10 # 0
wyand 25.08.2021 22:26 # 0
wyand 25.08.2021 22:26 # 0
ort 25.08.2021 22:23 # 0
bormand 25.08.2021 20:20 # 0
CHayT 25.08.2021 20:21 # 0
guest6 25.08.2021 20:22 # 0
MAPTbIwKA 25.08.2021 20:24 # 0
MAKAKA 25.08.2021 20:24 # 0
CHayT 25.08.2021 20:25 # +1
bormand 25.08.2021 20:26 # +1
ort 25.08.2021 22:23 # 0
ort 25.08.2021 22:23 # 0
CHayT 25.08.2021 20:24 # 0
guest6 25.08.2021 20:26 # +1
Не куплю, даже если бы фергана
ort 25.08.2021 22:23 # 0
j123123 25.08.2021 20:15 # 0
3.14159265 25.08.2021 20:16 # 0
Знаю. Но как говорил один умный человек: «знания должны быть доступны всем». Мне интересно насколько нас внимательно читают
CHayT 25.08.2021 20:29 # +1
bormand 25.08.2021 20:30 # 0
Кстати, он так и не смог пробить синхронизацию стока на нгк?
guest6 25.08.2021 21:35 # +1
https://github.com/gost-gk/ngk/commit/e6996f0ca8c3dd2b0cfbc8ac7b152015893d7111
Desktop 25.08.2021 21:50 # +1
enikey 25.08.2021 22:23 # 0
guest6 25.08.2021 14:38 # 0
bormand 25.08.2021 14:48 # 0
guest6 25.08.2021 19:24 # 0
P.S. А 1024-- сгнил и всё ещё ридонли.
guest6 25.08.2021 21:12 # +2
guest6 25.08.2021 21:14 # +2
Desktop 25.08.2021 21:51 # +2
не дождался
bormand 25.08.2021 21:56 # 0
Ты знаешь что делать.
Desktop 25.08.2021 21:57 # 0
ASD_77 25.08.2021 22:31 # 0
ASD_77 25.08.2021 22:31 # 0
guest6 25.08.2021 22:41 # 0
bormand 25.08.2021 22:43 # 0
ASD_77 25.08.2021 22:32 # 0
работает.. ура товарищи....
ASD_77 25.08.2021 22:33 # 0
guest6 25.08.2021 22:39 # +1
j123123 25.08.2021 22:40 # +2
Но вообще, учитывая что ты отошел от полного соответствия оригинальному тупосрипту (https://govnokod.ru/27606#comment659096 - "а у меня не точная копия TS. я шаманю как могу. главная задача это выеб..ать С и С++ :)" ) есть подозрение, что такой нетупосрипт никому нахуй не нужон будет
guest6 25.08.2021 22:43 # +1
Он уже сделал. У него получился код на С++ медленее, чем на TS. А у другого питуха тот же код на С++ отработал в 650 раз быстрее. Так что бенчмарки там специфисськие
bormand 25.08.2021 22:45 # 0
Кто-то забыл включить -O2?
guest6 25.08.2021 22:48 # 0
http://govnokod.ru/27550#comment652874
ASD_77 25.08.2021 23:23 # 0
guest6 26.08.2021 00:47 # +1
В мемы же ))
И кол-во тактов больше в 100 раз
bormand 26.08.2021 00:57 # 0
Desktop 26.08.2021 01:01 # 0
huestinho 26.08.2021 01:03 # 0
Desktop 26.08.2021 01:05 # 0
Desktop 26.08.2021 00:59 # 0
huestinho 26.08.2021 01:01 # 0
Desktop 26.08.2021 01:05 # 0
ASD_77 25.08.2021 23:21 # 0
j123123 25.08.2021 23:25 # +2
Твой "улучшенный C++" - нахуй не нужно. Обоснование: никто не будет писать на "улучшенном C++", если он не будет нормально обратносовместим с неулучшенным "C++". Твой "улучшенный C++" не имеет такой совместимости. Следовательно - нахуй ненужон
j123123 25.08.2021 23:28 # +2
3.14159265 25.08.2021 23:53 # +1
Они пытались сесть на джва стула: и угодить набирающему моду тогда GC, и быть низкоуровневым убийцей крестов.
И то, и другое, к сожалению получилось хуёво.
bormand 26.08.2021 00:05 # 0
3.14159265 26.08.2021 00:11 # 0
bormand 26.08.2021 00:13 # +1
Если сильно метушиться, можно памяти лишиться.
3.14159265 26.08.2021 00:15 # 0
ЧТО?
Там разве нет никаких питумизаций, которые вилочкой раз-раз-раз, чтобы чисто было?
j123123 26.08.2021 00:16 # +1
Если у тебя охуиллиард шаблонопарашных хедеров в одной единице трансляции, нихуя там не чистится, пока единица трансляции не закончится.
bormand 26.08.2021 00:17 # 0
ASD_77 26.08.2021 02:39 # 0
j123123 26.08.2021 08:18 # +3
Ты ведь понимаешь, что если GC может быть, а может не быть, у тебя будет по-сути два языка? Ну т.е. в одном языке у тебя нельзя будет писать эффективный xor-связный список, потому что его сожрет этот самый GC т.к. не распознает перексоренные указатели как референс на что-то там.
ABryCTOBCKuu_nemyx 26.08.2021 08:41 # 0
А какие ещё бывают, в которых адреса нужно вычислять?
j123123 26.08.2021 09:12 # +1
Например если у тебя есть malloc() который работает определенным предсказуемым образом, ну допустим если его можно попросить чтобы он выделял адреса обязательно в диапазоне от 0xffff0000 до 0xffffffff, то указатели из такого malloc можно хранить в 16 битах. А если он еще и выделяет память, выравненную по определенным границам (реальный malloc гарантирует выровненность чтобы туда любой базовый тип можно было упихнуть), то можно еще наэкономить битиков. Если GC про такую питушню не знает, он ее может нахер удалить естественно.
3.14159265 26.08.2021 11:59 # 0
И в gc-языке можно сделать массив размером до 65536 и хранить индекс в 16 битах.
guest6 26.08.2021 12:26 # +1
* Работает с не только с массивами байтов, а с произвольными типами и с любым паддингом.
* Нет возможности ошибиться в постоянных кастах байтов в настоящий тип и ручных умножений на размер.
* Не ломается, когда реализация маллока изменилась.
* Не требует фрагментации памяти ради выравнивания по младшим битам.
guest6 26.08.2021 12:27 # 0
И в момент удаления всё может подвиснуть на секунду, но это такое
3.14159265 26.08.2021 12:47 # 0
Наоборот. Чем больше мусора, и чем он крупнее, тем быстрее работает сборка.
> Правда неизвестно когда этот массив удалится, потому нет деструкторов.
asm.js так и работает: выделяет большой типизированный массив памяти.
И в них руками аллоцирует объекты.
Much of this performance gain over normal JavaScript is due to 100% type consistency and virtually no garbage collection (memory is manually managed in a large typed array). This simpler model with no dynamic behavior, no memory allocation or deallocation, just a narrow set of well-defined integer and floating point operations enables much greater performance and potential for optimization.
guest6 26.08.2021 13:03 # +1
Впрочем, индекс уделывает пердольный покусанный указатель и без ГЦ. Более поддерживаемый и надёжный код без хаков и багов обходится дешевле в поддержке.
guest6 26.08.2021 13:17 # 0
Если сравнивать ГЦ, написанный серьёзным коллективом, который выжимал все соки из своего языка, с кривым говном от обычного заедушного питушка, то тормоза будут не по вине ГЦ.
guest6 26.08.2021 13:29 # 0
Сборщику мусора просто не давали нормально отработать, какие тут тормоза!
Сейчас он почему-то обработал и 10К постов за раз. Видимо, я просто поставил 64-битную версию Node.
Что интересно, от загрузки JSON со всем ГК парсер не падает. Вероятно, память жрётся из-за ошмётков объектов парсинга и кусков строк, от которых используется только небольшой слайс.
3.14159265 26.08.2021 13:33 # 0
Интересно.
А в чём проблема обрабатывать данные по одному посту и складывать распарсенную стату в объект/бд?
Или оно со временем накапливается?
> память жрётся из-за ошмётков объектов парсинга и кусков строк
А если попробовать new String (в Жабе помогало).
Я бы снял дамп и посмотрел что там собирается.
guest6 26.08.2021 13:43 # 0
> Или оно со временем накапливается?
Да
> А если попробовать
> Я бы снял дамп
Лень. Да и код там такой, что я его перестал понимать ещё в 2013. Максимум всю эту питушню когда-нибудь на гитхаб выложить - пусть пердолики пердолятся, а хохмисты выкладывают на ГК.
Сейчас надо, по идее, качать дампы Полины/Иньо, переписать скрипт статистики под них. У них всё равно самая свежая база, а я задолбаюсь изменения отслеживать, а закачивать всё - тоже не очень вариант.
Ragulinho 26.08.2021 13:46 # 0
guest6 26.08.2021 13:52 # 0
Где-то была у меня общая база, куда я добавлял версии комментариев. Хотя, она сгнила.
Там какие-то пердольные команды "merge -input" перед скачиванием и "merge -output" после скачивания. Хрен знает, что они делают (по идее, как-то должно быть связано с диффом, но это неточно). Я в этот раз качал вручную и не сделал merge -input. Не знаю, чем это мне грозит. Хотя, файл полной базы я всё равно не обрабатывал.
3.14159265 26.08.2021 13:55 # 0
Какой Пиздец )))
Использовать технологию 8 (ВОСЕМЬ) лет и не разобраться почему в ней течёт память.
Впрочем я походу понял в чём дело.
3.14159265 26.08.2021 13:58 # 0
Desktop 25.08.2021 23:55 # +1
j123123 26.08.2021 00:10 # +1
Другое дело, что там достаточно много хороших идей, которые потом можно реализовать в уже нормальном языке. К сожалению стандартизаторы "D" как и стандартизаторы "C++" (тот же Александреску и оттуда и оттуда) добавляют очень много всякой нахуй не нужной хуйни (вместо того чтоб сделать работу с AST через гомоиконность и таким образом уже добавлять всякую хуйню)
j123123 26.08.2021 13:23 # +1
Conclusion
Initially, D looked almost as good as Lisp for generating functions. As we tried to gain finer control of the generated function, our code started to look a lot more like C macros; in fact, in some respects, it was even worse: we had to put an entire function definition in a string mixin just to set its name.
This is due to the fact that D is not as “regular” a language as Lisp. Some of the people helming the evolution of D are working on changing this, and it is my hope that an improved D will emerge in the not-too-distant future.
In the meantime, the experimental refraction module from the bolts meta-programming library offers a saner, easier way of generating functions without compromising on the idiosyncrasies that come with them. It allows you to pretend that functions can be disassembled and reassembled at will, while hiding all the gory details of the string mixins that are necessarily involved in that task.
j123123 26.08.2021 16:51 # 0
guest6 25.08.2021 23:31 # +3
* Там GC
* Там нельзя выбирать где что и как размещать или копировать
* Там крайне неудобно работать с байтами
Просто взять скриптушню и скомпилировать ее в нативный код это НЕ способ побидить С++
Иначе его можно победить с помощью "Go". Или с помощью Эйфории (она умеет скомпилироватьтся)
3.14159265 25.08.2021 23:46 # +2
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Int8Array
> Там нельзя выбирать где что и как размещать или копировать
Может это и хорошо.
guest6 26.08.2021 00:45 # 0
Это и есть "крайне неудобно"
Опиши мне структуру из трех полей: два байта, два байта, и четыре байта
>Может это и хорошо.
А может и нет
ASD_77 26.08.2021 01:07 # 0
type int16 = 65535;
type int32 = 4294967295;
{ v1: int16, v2: int16, v3: int32 }
[ int16, int 16, int 32 ]
guest6 26.08.2021 01:10 # 0
ASD_77 26.08.2021 02:38 # 0
j123123 26.08.2021 09:39 # 0
guest6 05.09.2023 18:13 # 0