- 1
IT Оффтоп #109
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
0
IT Оффтоп #109
#79: https://govnokod.ru/27254 https://govnokod.xyz/_27254
#80: https://govnokod.ru/27270 https://govnokod.xyz/_27270
#81: https://govnokod.ru/27280 https://govnokod.xyz/_27280
#82: https://govnokod.ru/27284 https://govnokod.xyz/_27284
#83: https://govnokod.ru/27296 https://govnokod.xyz/_27296
#84: https://govnokod.ru/27336 https://govnokod.xyz/_27336
#85: https://govnokod.ru/27381 https://govnokod.xyz/_27381
#86: https://govnokod.ru/27405 https://govnokod.xyz/_27405
#87: https://govnokod.ru/27429 https://govnokod.xyz/_27429
#88: https://govnokod.ru/27432 https://govnokod.xyz/_27432
#89: https://govnokod.ru/27435 https://govnokod.xyz/_27435
#90: https://govnokod.ru/27439 https://govnokod.xyz/_27439
#91: https://govnokod.ru/27449 https://govnokod.xyz/_27449
#92: https://govnokod.ru/27460 https://govnokod.xyz/_27460
#93: https://govnokod.ru/27463 https://govnokod.xyz/_27463
#94: https://govnokod.ru/27466 https://govnokod.xyz/_27466
#95: https://govnokod.ru/27473 https://govnokod.xyz/_27473
#96: https://govnokod.ru/27478 https://govnokod.xyz/_27478
#97: https://govnokod.ru/27484 https://govnokod.xyz/_27484
#98: https://govnokod.ru/27495 https://govnokod.xyz/_27495
#99: https://govnokod.ru/27504 https://govnokod.xyz/_27504
#100: https://govnokod.ru/27508 https://govnokod.xyz/_27508
#101: https://govnokod.ru/27511 https://govnokod.xyz/_27511
#102: https://govnokod.ru/27518 https://govnokod.xyz/_27518
#103: https://govnokod.ru/27526 https://govnokod.xyz/_27526
#104: https://govnokod.ru/27534 https://govnokod.xyz/_27534
#105: https://govnokod.ru/27544 https://govnokod.xyz/_27544
#106: https://govnokod.ru/27552 https://govnokod.xyz/_27552
#107: https://govnokod.ru/27554 https://govnokod.xyz/_27554
#108: https://govnokod.ru/27557 https://govnokod.xyz/_27557
Этот оффтоп сгенерирован автоматически.
Индекс оффтопов: https://index.gcode.space/.
Зеркала Говнокода и полезные ресурсы:
* https://govnokod.xyz/ (альтернативный Говнокод)
* https://gcode.space/ (read-only зеркало Говнокода)
* https://t.me/GovnokodBot (Говнокод-бот в «Telegram»)
* https://t.me/GovnokodChannel (Тематический канал в «Telegram»)
* https://vorec.space/ (глоссарий Говнокода)
* https://app.element.io/#/room/#govnokod:matrix.org (резервный чат)
Примечание: автоматические перекаты в настоящее время осуществляются только с аккаунта nepeKamHblu_nemyx.
Остерегайтесь подделок. Берегите себя и своих близких. Кок!
Хотя если упарываца, то и потоки-то использовать не безопасно.
Оно не на процесс разве?
The only system calls that the calling thread is permitted to make are read(2), write(2), _exit(2)
[/quote]
Вот я думаю, что в случае форканья я могу и чужие дескрипторы позакрывать и вообще будет скурно
The seccomp() system call operates on the Secure Computing (seccomp) state of the calling process.
Блядь, дока как всегда сама себе противоречит...
А вообще, запрет на уровне треда выглядит как-то глупо. Что мешает треду пойти и насрать в память своим соседям?
З.Ы. Но да, я попробовала позвать, работает оно именно на уровне треда. Ёбаное решето... Возможно про процесс вторая часть, где более навороченный фильтр.
Как это работает проще конечно проверить
> решето
лол да)
Да вообще идея
> applications that may need to execute untrusted byte code
в своем адресном пространстве мне не нравится.
Форкнись, обрежь всё до минимума, чрутнись, там не знаю setuidнись если можешь, закрой все дескрипторы, и потом запускай чужой код.. не?
postfix так делает, например
Ну и вообще чрут -- довольно слабая мера, сокеты не запрещает и т.п.
Открыл сначала все нужные файлы, форкнулся, секкомпнулся, и всё.
Кстати хуёво, что беркли сокеты сделали не как нормальные юниксовые девайсы, на которые можно было бы ставить пермишены, а как какое-то говно.
Вроде SysV стримы были сделаны нормально (но могу пиздеть), и в Plan9 тоже что-то пытались с этим сделать.
В стрикте даже памяти себе добавить нельзя.
>памяти
Патому что `sbrk` и ``mmap`` не работают?
А реально malloc приведет к SIGKILL?
какой багор )))
Второй режим с BPF всё-таки поинтереснее.
BPF превратитлся в язык для программирования для встроенной в ядро виртуальной машины, Бля
Я другую задачу решаю, просто вспомнил, что Борманд вчера про это говорил, и решил попробовать.
Паранойа никогда не бывает лишней
Если упарываца, то можешь спиздить код из моей blankvm. Там через KVM создаётся окружение, в котором есть только твой код и ком порт.
gcc'шным линкером бинарь для такого окружения несложно собрать.
Ты что, это же грех..
GPL всё-таки для серьёзных проектов, которые ты планируешь развивать годами.
какой багор )))
>))
Лолжно наталкивать на мысли: что-то тут не так.
Когда вижу такое — появляется желание убрать одну лишнюю пару.
Ну и присваивание в условии, это безусловно хорошая идея, которая помогает писать программы без ошибок.
Есть смешной кейс, где они заставляют конпелятор не ругаться if ((x = f())).
да, это классика
Ты опять тот паттерн с удалением-через-зануление пропагандируешь?
Был какой-то петух, который предлагал вместо удаления из кучи менять указатель на null, и думал, что оно само как-то удалится.
На самом деле там так: есть N серверных сокетов. Моя задача каждому их них заассептить клиентский. Клиенты цепляются в случайном порядке, по одному рылу на серверный сокет (кстати, его нужно после этого закрыть)
Соответственно есть массив структур с серверным и клиентским сокетом.
В цикле у структуры для select включаются битики для тех серверных сокетов, у которых еще нет клиентских (то есть у кого они ноль)
Use a Primary Password
Formerly known as Master Password
Дочерние процесс могут быть black (когда работают со стейджингом) и white (когда работают набело, на продакшене).
Дочерние процессы можно передавать между мастерами
Соответственно, есть комманды
«Ниттер» — фронтенд к «Твиттору»:
https://github.com/zedeus/nitter
Список работающих экземпляров:
https://github.com/zedeus/nitter/wiki/Instances
Реальный пример:
https://nitter.fdn.fr/govnokod
«Библиограм» — фронтенд к «Инстаграму»:
https://sr.ht/~cadence/bibliogram/
Список работающих экземпляров:
https://git.sr.ht/~cadence/bibliogram-docs/tree/master/docs/Instances.md
Реальный пример:
https://bibliogram.art/u/fish
«Инвидиус» — фронтенд к «Ютубу»:
https://github.com/iv-org/invidious
Список работающих экземпляров:
https://docs.invidious.io/Invidious-Instances.md
Реальный пример:
https://yewtu.be/watch?v=mOgEQmC2s2w
«Теддит» — фронтенд к «Реддиту» (список экземпляров там же):
https://codeberg.org/teddit/teddit
Реальный пример:
https://teddit.net/u/bormandt
«Либреддит» — другой фронтенд к «Реддиту» (список экземпляров там же):
https://github.com/spikecodes/libreddit
Реальный пример:
https://libredd.it/user/bormandt
Пидоры ебаные.
Причём поисковикам показывают, а при переходе по ссылке - хуй.
Такое явление «Клоакинг» называется: https://en.m.wikipedia.org/wiki/Cloaking
а зачем тебе этот сайт? ты и линкедин – ну что-то не сходится
http://bugmenot.com/view/linkedin.com
это даже не ответ нихуя а вопрос
Король Алтынный насупился.
— За кого ты меня принимаешь, приятель? Что ты там болтаешь на арго венгерских евреев? Я не говорю по-еврейски. Я больше не граблю, я выше этого, я убиваю. Перерезать горло — да, а срезать кошелек — нет!
Гренгуар силился вставить какие-то оправдания в этот поток слов, которым гнев придавал все большую отрывистость.
— Простите меня, ваше величество, — бормотал он, — я говорил по-латыни, а не по-еврейски.»
Кто угадает, откуда эта цитата, тому ничего.
Вообще интересное движение. Оказывается, не только у «Говнокода» 100500 фронтендов. Но к «Линкедину» альтернативных морд пока не нашёл.
https://codeberg.org/Shinkirou/frontends
Front-ends for evil sites/platforms
Кроме уже упомянутых там есть фронтенд к «Гуглопереводчику»:
https://sr.ht/~yerinalexey/gtranslate/
Реальный пример экземпляра:
https://gtranslate.metalune.xyz/
К поиску «Гугла»:
https://github.com/benbusby/whoogle-search
Реальный пример экземпляра:
https://whoogle.sdf.org/
Последний не работает. Показывает такую страницу: «Our systems have detected unusual traffic from your computer network. This page checks to see if it's really you sending the requests, and not a robot». Значит, «Гугл» показывает капчу.
https://github.com/RSS-Bridge/rss-bridge
Supported sites/pages (examples)
Bandcamp : Returns last release from bandcamp for a tag
Cryptome : Returns the most recent documents from Cryptome.org
DansTonChat: Most recent quotes from danstonchat.com
DuckDuckGo: Most recent results from DuckDuckGo.com
Facebook : Returns the latest posts on a page or profile on Facebook
FlickrExplore : Latest interesting images from Flickr
GoogleSearch : Most recent results from Google Search
Identi.ca : Identica user timeline (Should be compatible with other Pump.io instances)
Instagram: Most recent photos from an Instagram user
OpenClassrooms: Lastest tutorials from fr.openclassrooms.com
Pinterest: Most recent photos from user or search
ScmbBridge: Newest stories from secouchermoinsbete.fr
ThePirateBay : Returns the newest indexed torrents from The Pirate Bay with keywords
Twitter : Return keyword/hashtag search or user timeline
Wikipedia: highlighted articles from Wikipedia in English, German, French or Esperanto
YouTube : YouTube user channel, playlist or search
Output format
RSS-Bridge is capable of producing several output formats:
Atom : Atom feed, for use in feed readers
Html : Simple HTML page
Json : JSON, for consumption by other applications
Mrss : MRSS feed, for use in feed readers
Plaintext : Raw text, for consumption by other applications
You can extend RSS-Bridge with your own format, using the Format API!
Сервис Invidious проксирует всё, кроме самого видеопотока. Видеопоток он берёт с Ютуба.
Сервис Piped проксирует всё, даже видеопоток.
Реальный пример инстанса Piped:
https://kavin.rocks/
Очень хорошо зделали. Малаца.
В ютубе чтобы этим управлять нужно было либо в флагах браузера копаться (отключая для всех сайтов), либо ставить говнорасширения.
Интересно можно ли «stats for nerds» включить?
По прямым линкам мне посты даёт смотреть, а список постов (местная стена) конкретного юзера без регистрации не показывает.
Я как-то делал дамп группы, скачивая мобильную версию страниц (m.facebook.com). Там в коде каждой страницы ссылки на следующую страницу и на предыдущую.
https://github.com/thedaviddelta/lingva-translate
Реальный пример работающего экземпляра:
https://lingva.ml
Пока медиум анимирует пустое окошко, там уже можно прочитать пол статьи.
Пример использования:
https://scribe.rip/@libertas_justitia_veritas/faq-28387fa224e7
блядь, даже в такой несвязанной статье круглоземельщики окопались
> прямой линией
Не, это какие-то двоечники, у которых радиоволны в атмосфере всегда распространяются по прямой...
https://frau-helga.ru/wa-data/public/shop/products/89/14/231489/images/98666/98666.970.jpg
А на ваших ссаных 5Ghz уже через дверь волна не праходит
https://en.esmailelbob.xyz/
https://vern.cc/
При этом музыку я слушаю не так часто (пульса ничего не микшит). А вот иксы активны всегда.
И там не звук, а графика.
Процесс пульсы я за это время пару раз уже килял. Там cpu time был по 500h.
А иксы наверное больше полугода работают.
А какой это дистр?
В пульсе что-то со временем происходит и она начинает жрать 50% (!) от ядра.
Обычно когда программа зацикливается то 100%, а тут как-то половинчато.
ЕМНИП тут борманд говорил что программный микшинг заебись, а вот хуйня выходит.
Даже без этого глюка со временем в пульсе набегает довольно большой cpu-time, сопоставимый с иксами.
Програмный микшинг наверное заебись когда у тебя три разных источника, один из них по сети.
А вот мне это ничего не надо. Почему я не могу вежливо отказаться от этого говна в пользу чистой ALSA или даже OSS?
Зачем вот мне это все сложности?
Имеется в виду 50% от одного cpu-ядра.
CPU% - 49.3
> по идее можно посмотреть какие он сисколы шлет straceом или профильнуть даже.
Да насрать. Её проще прибить и запустить заново. Тогда она ещё месяц работает нормально.
Просто я всё забывал на ГК стату выложить, перед тем как кильнуть эту хрюкню.
хочу срать в /dev/dsp и течь, как раньше
> PipeWire has received much praise. Particularly, it fixes many problems that PulseAudio had experienced, including its high CPU usage, Bluetooth connection issues, and its JACK backend issues.
Я всё хочу попробовать, но что-то меня останавливает
> PipeWire is a server for handling audio and video streams and hardware on Linux. It was created by Wim Taymans at Red Hat.
>> created by Wim Taymans at Red Hat.
>>> Red Hat.
>Initially the project was called PulseVideo.
>>called PulseVideo.
>>> PulseVideo
А ещё на виндузятников, которые проблемы перезагрузкой решают, гонят.
Так проблемы именно из-за большого аптайма.
Вся остальная система работает ок. Исключение только это уродливое поделие красной шапки.
Пиздец, наконец-то изобрели технологию, чтобы клиент и сервер можно было писать на разных языках!
Язык-то где?
With gRPC we can define our service once in a .proto file and generate clients and servers in any of gRPC’s supported languages
Ничо се! Никогда ведь такого не было!
Дык это протобуф поверх хттп/2.
> построили аэрационную станцию
скорее ЗАПАХ
pros:
+ бахатый культурный слой, музеи, остатки имперской роскоши (но это в основном для туристов и понаехов, коренные как-то не алё)
+ шикарная природа вокруг, леса, озёра (в самом городе в некоторых районах с зеленью не оч)
+ близость заграницы, если ты белоленточный либерал
+ мосты
cons:
- ебанутый климат
- чучмеки
- коренные
- зенит
- близость заграницы, если ты кровавый путинист
- мосты
https://vk.com/blog/datatsentr-vkontakte
``Санкт-Петербург, Ленинградская обл., Всеволожский р-н, кемская Заневская волость, Новосергиевка д., 2 км.``
Нахуй держать ДЦ в историческом центре города, где земля стоит как самолёт, кондиционер без разрешения правительства не поставишь, и еще небось электропроводка времен Кирова
Вряд-ли пользователи ВК из Владивостока ходят в Питер:)
Но в Питере вот вроде бы этот. Хотя пишут, что у них еще есть место в дата-центре Xelent (там они вероятно арендуют, а этот чисто их)
Удалённость тоже может быть важна, они же хотят чтобы всё моментально открывалось.
Я думаю при таком БП уже не до вконтакта будет...
Он всё равно хотят пользоваться ВК
Представляешь сколько охулионов стоят сутки неработы вк?
Станция, от которой запитан этот датацентр, между прочим.
Ничего. Вот перепишут управление РБМК ЛАЭС на rust, тогда заживём.
Надо писать на надёжном языке, без сборщика мусора.
Желательно отсутствие UB и математически доказанная корректность программ и компилятора.
Одним из таких языков является Rust.
https://ideone.com/XwGdHt
В "Python", няпример, нят никакого "числа Тараса", и имення поэтому...
Но сделать мне это не удалось.
В разных компиляторах функция abs лежит в разных местах.
https://stackoverflow.com/a/55944670
MIN тоже непонятно как работает. Есть актуальный, но оно не работает в ideone (v.1.33)
https://doc.rust-lang.org/std/i32/constant.MIN.html
Пришлось брать deprecated-way. Не язык, а пиздец.
https://ideone.com/mHFfPz
tarasNumber:-2147483648
https://ideone.com/jXbxxV
Это тот язык, который предлагают в атомные реакторы совать, да?
Мне понравилось как в коде остался abs, который ни на что не влияет и развращает отрицательного питуха.
> который предлагают в атомные реакторы совать, да?
Не предлагают, а требуют.
Я предполагаю что компилятор (программа, переводящая дrustню в машинный код) для Раста не имеет огромного числа ошибок.
Конечно же нет! Он же написан на Расте — надёжном и безопасном языке программирования.
так будет с каждой "илитой"
Свойство числа Тараса: если вычесть из него единицу, результат будет другого знака.
Зато конпеляторы няшной и крестов начинают считать, что оно знак поменяло и все инварианты идут по пизде...
До сих пор?
А можно реальный пример?
А почему они должны перестать? UB же. У меня в профиле вроде был реальный пример про наивный вывод числа. Можешь пересобрать чем-нибудь свежим.
Я думаю да, UB'тимизатор то тот же самый, что и в крестах.
В языке вроде быть не лолжно.
Но случаются. Но в основном из-за использования шланга, который был сделан под сишки и кресты.
А вот в нём полно такой срани.
Кстати, а аппроксимацию while (true) через UD они уже пофиксили?
Но у них на это ушло чуть ли не 6 лет.
В начале этого года ещё репортили:
https://github.com/rust-lang/rust/issues/28728#issuecomment-771086278
Логично. Няшная и кресты полагают, что все well-formed программы завершаются* (казалось бы, при чём тут coq?) Так что это правило там во все кишки LLVM зашито, скорее всего.
* Шах и мат, Тьюрингисты.
Пусть себе работает.
Чтобы такие функции можно было оптимизировать в ущерб бесполезным и зависающим.
Если программа не нужна в данный момент, ОС просто может не выделять ей процессорное время и другие ресурсы.
Условно pkill --signal STOP.
Я наверное, криво сформулировала, забыв о сайд-эффектах.
Проги, которые не завершаются и при этом не совершают сайд эффектов ня нужны. Какой-нибудь сервер тоже не завершается, но у него есть сайд-эффекты: какой-нибудь sleep() или poll().
З.Ы. Даже в ядре оси в idle loop будет стоять какой-нибудь wfi или halt, цикл не будет пустым. Пустые бесконечные циклы нинужны.
UB -- это просто-напросто ситуации, в которых исходная программа, которую мы оптимизируем не может продолжить исполнение. В семантике тупо нет описания для такой ситуации, прога застряла и не может идти дальше, прогресса никогда не будет.
Когда в исходном коде встречается "while (1);", мы находимся в той же ситуации с точки зрения сёмантики. Она никогда не выйдет, она никогда не совершит сайд-эффект, прогресса никогда не будет. Именно поэтому это такой же UB, как какое-нибудь переполнение числа.
Ну и собственно оптимизатор не парится о семантике программ, которые застряли на UB'ах. Он аппроксимирует оригинальный код каким-то другим, что работает быстрее в нормальных кейсах.
Но ведь этот код не похож на цикл без сайд-эффектов.
Почему шланг его зацикливал?
Значит в него всего-навсего прокрался UB 😉
Хотя я не вижу тут никаких проблем на глаз, даже в крестах u32 без UB'ов.
> сайд-эффектов
А где они, кстати?
while (true) есть, внешних сайд-эффектов тоже нет. Но это же полезный расчёт.
Автор говорит что нужно вместо .filter(|&i| i < end) писать .take_while(|&i| i < end). Тогда всё хорошо.
Но если компилятор/язык действительно ма-тем-ати-чны, то он должен понять что i, а вслед за ним i² монотонно возрастающая функция.
И как только найдётся i, который превысит end, то последующие i<end никогда не будет истинным. Это следует из принципа математической индукции.
Соответственно filter в данном случае эквивалентен take_while.
Нет! У нас же тут не натуральные числа, а кольцо (или как там его в математике) u32.
i бегает по кругу, а filter в отличие от take_while не является условием остановки.
А, я поняла почему... Тут же нет условия выхода из цикла, в отличие от примера с take_while() где всё ок. filter() просто выбирает элементы, он не прерывает исполнение.
Т.е. тут написано суммируй от 0 пока не заебёшься. Сайд-эффектов нету. Условия остановки нету. UB.
Нет. Я выше написал почему.
Если язык математичен он докажет что filter на бесконечном списке вычисляется за конечное время.
И результат эквивалентен take_while.
i бесконечно бегает по кругу, на каждом заходе мы выфильтровываем несколько элементов.
Математически там ответ inf. Ну или 0 если нихуя не фильтруется никогда.
Там же не написано "для всех u32" там написано "от 0 пока не заебёт".
> а кольцо (или как там его в математике) u32.
А, блять. Я почему-то подумал что эти анскильные мрази сделали нормальный математичный язык и (0..) это генератор 0..∞
Ну глядя на код интуитивно ощущение именно такое.
>i бесконечно бегает по кругу
Это точно? Они не осилили длинную арифметику для бесконечных списков в 2к20?
Поди тупо вывели u32?
Именно поэтому я за coq.
А у растишек все типы конечные, если верить доке.
Но там 1024-- выдаёт топ-контент, чтением которого я хочу насладиться в сей воскресный вечер.
И потому совсем не хочется тратить время на пuтушню.
В любом случае мы понимаем что:
а) если там u32/u64, то в генераторе зашито неявное переполнение и это говно
б) если там 0..∞, то программа работает некорректно — это опять говно
Либо так, либо эдак rust — говно.
По-моему выбор очевиден.
Та не. Ну они же не полные отбросы. Чтобы намеренно тащить в язык UB.
Портированный код gosta
https://ideone.com/WST2TX
Хотя может там O3 какое-то не включено.
Фиг знает... LLVM большой, легко забыть отключить какую-то UBтимизацию, которая твою прогу зааппроксимирует невменяемой хуйнёй.
З.Ы. Хотя я без оптимизаций собирала. С оптимизациями ошибку не выдаёт и правильно показывает "< 0". Возможно надо более хитрый пример.
- даёшь задачку о поиске питушни
- питух приводит пример такой питушни
- а я же говорил нужно «нетривиальную» найти, а ты какую нашёл?
Не проще было сказать «кроме нуля»?
Обладает занимательными свойствами, в частности, его мудуль ня меняет знак и остаётся отрицательным, а деление его ня единицу приводит к переполнению.
Происходит так из-за two's complement: в этом представлении можня представить числа от -2^(N-1) до 2^(N-1) - 1, где N — это размер инта в битах. Как нятрудно заметить, -2^(N-1) — единственное отрицательное число, у которого нят соответствующей положительной пары.
https://govnokod.ru/12304#comment164658
http://govnokod.ru/3117
Причём это не какой-то «Тарас» написал. Тут код прямо из сорцов .NETa.
В Math.Abs одни разрабы кинули исключение.
В другом месте функцией Abs воспользовались какие-то индусы для генерации вореционного семечка.
Итог: рандомные краши софта.
И всё в сорцах промышленного языка.
Но я не помню, где так сделали.
– п, т прнс?
Тебе какие супермассивы нужны?
В обычное время Гаити выглядит так
Одно существо толстое, усатое и воняет рыбой. А другое входит в парвотряд "Ластоногие".
Ну как, провели?
Моноблок Lenovo S200z
Эконом-вариант. Младшим школьникам обещают дополнительную скидку.
Цена: 9 500 рублей
Купить
Неттоп HP 260G2
Компактный, тихий и легкий.
Цена: 15 000 рублей
Купить
Настольный комплект в сборе
Системный блок, монитор, клавиатуры, мышь и даже стол с креслом.
Цена: 18 000 рублей
Купить
Ноутбук Lenovo S145
Легкий и удобный ультрабук, который раскладывается на 180 градусов.
Цена: 23 000 рублей
Купить
>HDD
>Penitum
> 2 Gb RAM
Ну такое: -/
SSD 128 стоит 1800 рублей, ну могли бы уже не издеваться над ребёнком
--------
Один мой знакомый, далекий от компов человек, купил себе новый дорогой комп, а старый отдал ребёнку
ну и ребёнок пирдолился там запуская игрушки на видеокарте, встренной в core 2 duo и на четырёх гигах памяти, а чувак пафосно запускал Word и проверял почту на свежем i5 с 16 гигами памяти
> большую помойку
Сёмская битва тогда уже.
`config.sys` и `autoexec.bat` должен по памяти написать
Спектрумисты именно так и делали
В СССР была популярна микросхема КР580ВМ80А. Оказывается, она была не единственной. До неё была КР580ИК80 с тем же набором инструкций, но на другой базе. А после неё было несколько микросхем с увеличенной сеткой инструкций (правда, софта, использующего новые инструкции, кажется, не было, все ориентировались на 8080).
Ещё какую-то питушню косплеили, вроде 8085, 4040, 4004.
Были ещё интересные разработки NEC V20 и NEC V30, которые стартовали в режиме 8088, но у них была инструкция для переключения сетки опкодов на 8080 (BRKEM) и для возврата обратно (RETEM). Аппаратные прерывания они обрабатывали в режиме 8088.
Кстати:
http://speccy.info/Zilog_Z80#Клоны
З.Ы. А, это уже клон 8051, походу.
P.S. Написано так, будто я песок роняю ))) На самом деле у меня просто книжица была про сборку такой пекарни.
есть игры и кроме кукурузиса
Которого не парит рестарт прог с нуля, когда он переключается между ними?
Другое дело - компьютер/ноутбук. Когда Alt+Tab или Ctrl+Tab, которые я жму кучу раз в день, тормозят, рабочее настроение уходит.
> не издеваться
Это в охулион раз лучше, чем слушать как пирдит и хрустит HDD
Обычно компьютер как дженерал пёрпоз девайс имеет более цивильный интерфейс и более-менее предсказуемый юикс. Потому, что иначе пользователь установит программу конкурентов, которая вообще может быть свободной и написанной кем-то бесплатно.
А всякая спецпитушня имеет рандомный интерфейс, который не сильно зависит от цены устройства, но при экономии на продукте могут сэкономить и на программистах и дизайнерах. Если в ПК стоит нормальный процессор, под который могут писать и крестухи, и скриптухи, и можно запускать кучу программ одновременно, то с спецтушне могут поставить ко-ко-контроллер, на которым будет крутиться только то, что конкретный j-циферки смог написать. И производитель может решить, что средняя задержка в одну секунду - не повод закупать новые ко-ко-контроллеры и вызывать нового j-циферки+1.
Иначе сейчас даже олигарх может попасть на тормознутое говно или питушню с неудобным интерфейсом.
Процессор большого значения не имеет. Там отличие в пирфомансе ну раз в 10-15, то есть где-то на порядок.
Под любой процессор могут писать хоть крестухи, хоть скриптухи,
Условный gost на питоне с numpy под какой-нибудь Celeron-600™ может написать алгоритм эффективнее O(N) чем ruster под core i9 O(N²).
И при не очень больших N ruster сольётся как последний отброс.
>более-менее предсказуемый юикс.
Прочитал как «более-менее предсказуемый юникс»
https://govnokod.ru/13405#comment187553
Там даже борманд ниже это подтвердил.
> Братуха запускает этот код у себя на хасвеле - и бам - он в 5раз медленее, чем у меня на коре2. В чём же проблема? Отгадай?
Вот именно об этом я и говорю!
Анскильная лалка с тредриппером всегда сольёт Царю с коре2.
И дrustня на хасвеле всё-равно будет собираться дольше Сишки на кор2.
> gost на питоне с numpy под какой-нибудь Celeron-600™ может написать алгоритм эффективнее O(N) чем ruster под core i9 O(N²).
Скилльный кодер даже на скриптухе уделает анскильного с низкоуровневой питушнёй и на более мощном железе.
Скилл важнее процессора и языка.
Я привёл реальный пример с лажовой асимптотикой rustа (казалось бы низкоуровневый язык).
У Царя другой, более хитрый пример, когда на малых N невыгодно вызывать какую-то функцию и решает константа.
Царь и на Селероне 600 — останется Царём. А питух и на Тредриппере — анскильным питухом.
потому что у скильного будет O(N), а у анскильного -- O(n!)
>когда на малых N невыгодно вызывать какую-то функцию и решает константа.
Сплошь-и-рядом такое. Массив из трех элементов можно и пузырьком сортировать, и итерацией в нем что-то искать
2. Какие у них вообще приоритеты? Производители всяких тесел и водородоходов делают высокотехнологичную начинку и вставляют ИИ, а чтобы музычку послушать, надо попердолиться с тормозной и глючной магнитолой. То же с телевизорами: главное - чтобы показывал, надо продать квантовые точки, ненужный апскейл в 8К@240FPS, а на интерфейсе можно сэкономить. И на инфракрасном светодиоде в пульте. Пусть раб не отходит от телевизора дальше, чем на три метра!
Тут какой процессор не бери, одно собирается быстро, другое медленно, а третье ОЧЕНЬ медленно.
За последние 10 лет IPC процессоров увеличился ну в 1.5-2 раза. Ну ещё число ядер раза в 2.
И всё-равно этого не хватает, чтобы компенсировать анскильное отличие на порядки.
https://govnokod.ru/27610
https://govnokod.xyz/_27610/