GNU GUIX (произносится гикс /ɡiːks/) — функциональный пакетный менеджер и операционная система, разработанные Ludovic Courtès. Отличительной особенностью является создание полностью воспроизводимых билдов и декларативное описание. Guix можно поставить на существующий дистрибутив GNU/Linux или в качестве отдельной системы на базе Linux или GNU Hurd. Раньше существовало разделение менеджера пакетов Guix и операционной системы GuixSD. Определения пакетов описываются на диалекте языка Scheme – GNU/Guile. Большая часть исходников написана на нём же. Система изначально была основана на Nix. Отличиями от Nix(OS) являются язык для описания пакетов и сервисов, система инициализации (GNU Shepherd), использование ядра Linux-Libre (Linux без блобов) и отсутствие проприетарных пакетов. Чем интересен Guix: https://habr.com/ru/post/436938/ GNU Guix (из коробки) не имеет проприетарного firmware. Потому при переходе на эту систему надо учитывать, что возможно wifi адаптер, gpu и другие компоненты системы могут не работать полностью или частично. Список свободных wifi адаптеров: https://gist.github.com/sirikid/2817f36d67d1480a428cbf33b220cfcc Сообщение слишком длинное. Полный текст.
>>26490 Когда мне скучно на работе я перевожу документацию по имплементации Guile https://www.gnu.org/software/guile/manual/html_node/Guile-Implementation.html
@node Быстрые целые числа @subsection Быстрые целые числа К сожалению, приведенное выше представление имеет серьёзный недостаток. Что бы вернуть целоые число, выражение должно аллоцировать @code{struct value}, инициализировать его что бы оно представляло целое число и возвратить цказатель на него. Помимо этого, доставание значение целого числа требует отссылки к памяти, что намного дольше на большинстве процессоров чем ссылка на регистровую память. Так как целые числа очень популярны, их представлние очень дорого стоит с точки зрения вреени доступа и памяти. Целые числа должны быть очень дешёвыми для создания и манипуляции. Одним из возможных решений с этой точки зрения таково, что для большинсва архитектур, аллоцированные в куче данные (т.е. те, которые получаются в результате вызова @code{malloc}), должны помещаться в ячейки по 8 байт. (В не зависимости так Сообщение слишком длинное. Полный текст.
@node Дешёвые пары @subsection Дешёвые пары Однако существует ещё одна проблема с которой придётся столкнуться. Большинство куч в Скимах содержат пар больше чем других типов объектов. Джонатан Рис однажды сказал, что куча состоит из пар на 45% в его реализации Скимы, Scheme 48.Однако наше представление требует три @code{SCM} слова на одну пару --- одно под слово, и ещё два под @sc{car} и @sc{cdr}. А есть ли какой нибудь способ представить пару используя только два слова? Давайте точнее определим чего мы хотим. Допустим, мы утверждаем следущее: @itemize @bullet @item Если последние три бита значения @code{SCM} представляют собой нули -- @code{#b000}, тогда это указатель, как всё и было ранее. Сообщение слишком длинное. Полный текст.
>>26492 А нахрена здесь?
>>26496 Это же тред о гиксе, который написан на Гиле. Да и вообще мне так приятнее, когда сделал--выложил.
@node Консервативный сборщик мусора @subsection Консервативный сборщик мусора Помимо скрытого типизирования, одна из больших ограничений реализаций Скимы в плане представлния данных это сборщик мусора. Сборщик должен проходить каждый существующий объект в куче чтобы определить какие объекты уже не живы что бы их можно было собрать. Есть много разных способов для его реализации. Сборщик Гиля построен поверх библиотеки, Богем-Демер-Вейзеровского консервативного сборщика мусора (БДВ-СМ). БДВ-СМ "просто работает", по большей части. Но так как интересно, как же эта штука работает, мы прикладываем сюда верхнеуровневое описание того, что делает БДВ-СМ. Сборщик мусора имеет две логические фазы: фазу маркировки @dfn{mark}, в которой перечисляется множество существующих объектов, и фаза @dfn{sweep}, Сообщение слишком длинное. Полный текст.
@node Тип SCM в Гиле @subsection Тип SCM в Гиле Гиль разделяет все Ским объекты на две части: те, что способны полностью поместиться в SCM и те, которым нужна куча. Первый класс называется @dfn{немедленными}. Этот класс содержит малые целые числа, знаки, булевые типы, пустой список, мифический объект конца файла (end-of-file object), и некоторые другие. Остальные, как не сложно догадаться, называются @dfn{не-немедленными}. Они включают пары, процедуры, строчки, вектора и все другие типы данных в гиле. Для не-немедленных, SCM слово содержит указатель на данные в куче, вместе с остальными данными, которые хранятся в данных. Сообщение слишком длинное. Полный текст.
>>26492 Понятно. А ты не из России? Просто из РФ сайт guix недоступен.
>>26524 Хороший человек сделал зеркало: http://guix.trop.in/ И сделал сборку с нужным сервером подстановок: https://trop.in/guix (Но у меня так и не завелось)
(define-module (influx) #:use-module (web client) #:use-module (web uri) #:use-module (srfi srfi-9) #:use-module (srfi srfi-9 gnu) ;records #:use-module (srfi srfi-11) ;let-values #:use-module (srfi srfi-19) ;new (current-time) #:use-module (srfi srfi-26) ;cut #:use-module (ice-9 iconv) ;decode utf8 #:use-module (ice-9 match) #:use-module (json)) (define-record-type <influx> (influx url version) Сообщение слишком длинное. Полный текст.
(define-module (influx) #:use-module (web client) #:use-module (web uri) #:use-module (srfi srfi-9) #:use-module (srfi srfi-9 gnu) ;records #:use-module (srfi srfi-11) ;let-values #:use-module (srfi srfi-19) ;new (current-time) #:use-module (srfi srfi-26) ;cut #:use-module (ice-9 iconv) ;decode utf8 #:use-module (ice-9 match) #:use-module (json)) (define-record-type <influx> (influx url version)
Я все же создам новый тред, да простит меня джаббер тред внизу каталога. Решил вкатиться в юнити. Читаю их туториалы, пока в восторге от доступности и простоты материала (по сравнению с тем, что было раньше) Буду тут писать отчеты. Пара ссылок: Сайт: https://unity.com Обучение: https://learn.unity.com Есть тг канал: @unity3d_ru
UI оставил двоякое впечатление, с одной стороны все просто. С другой стороны, чтобы его сделать невырвиглазным, нужно постараться.
Узнал сейчас про object pooling. Если один и тот же объект планируется создавать и удалять много раз, то гораздо оптимальнее будет инстанциировать лист этих объектов и сделать каждый из них неактивным. Далее, в момент когда объект необходим в сцене, из пула берется один из его инстансов и делается активным. При этом могут меняться некоторые из его параметров (например позиция). Ну и соответственно, если активный объект больше не нужен, но не удаляется, а делается неактивным. Пул всегда возвращает один из неактивных объектов, то есть не используемых в данный момент. В итоге получается, что мы имеем в памяти постоянное количество объектов (равный размеру пула), а не постоянно создаем и удаляем бесконечное количество объектов по мере работы сцены.
Unity вкатывается в настоящую мультипоточность и асинхронность. В то время как в мире микросервисов это давно стандарт, в таких больших проектах похоже не так все просто. До сих пор в стейбл версии используется старый подход, при котором главный цикл обновления сцены однопоточен. Сейчас (точнее еще в 2018) нашли способ это сделать многопоточным со скедулингом по разным ядрам. Правда это до сих пор в превью, хотя и выглядит вполне надежно и многообещающее. Основная фишка тут в том, что подобный подход требует изменений в структурах пользовательского кода и объектов. Для этого были придуманы конверторы, и это вылилось в отдельную версию редактора. Пользователь работает с игровыми объектами и их компонентами, как и раньше. А дальше они сами конвертируются в “новые” сущности и компоненты (Entity Component System) для работы с ними в коде. Ну и в коде, в связи с этим, уже нет работы с игровыми объектами в их обычном понимании, а с компонентами напрямую, которые в свою очередь уже содержат какие-то данные (например позиция, скорость). Отсюда этот подход получил название Data-Oriented Technology Stack. Классы теперь наследуются не от MonoBehaviour, а от JobComponentSystem. https://unity.com/dots Сообщение слишком длинное. Полный текст.
Погуглил больше про ECS. Концепция сама существует давно и не является изобретением Unity, но уже DOTS - их термин. Она сама по себе не про производительность, а про подход к описанию игрового мира и взаимодействий в нем. В ECS игровые объекты не наследуют кучу всего и не создаются со статичной кучей параметров и компонентов, существующих вплоть о момента удаления объекта. В ECS игровые объекты - просто entities, некие изначально пустые "сущности", играющие роль уникальных идентификаторов. Параметры игровых объектов (например, здоровье, скорость, "прыгучесть", etc) являются самостоятельными компонентами (components), не привязанными ни к какому объекту статично. Они могут назначаться каким-либо entities, если им необходимо данное поведение/характеристика. Причем эта привязка или отвязка происходят в рантайме, что позволяет делать классные вещи в виде изменения казалось бы статичных характеристик игрового мира в уже работающих клиентах. Системы (systems) содержат уже логику, обрабатывающую данные из компонентов. Можно думать о них, как о контроллерах. Важно то, что системы не завязаны на конкретных компонентах и entities. По крайней мере в юнити, как я понял, системы могу выбирать entities на основе привязанных к ним компонентов (entity query) и тем самым всегда работают с группой entities. Поэтому в коде много foreach :) Сообщение слишком длинное. Полный текст.
Разобрался со сценами и переходами между ними. Сцена - это некая уникальная инстанция мира. В зависимости от сложности игры может быть отдельным уровнем, может быть целым открытым миром. Или это может быть просто menu screen. Все игровые объекты создаются внутри сцены и при переходе между сценами удаляются. Однако есть различные методики для персиста данных между сценами. Самый простой способ - это использование синглтона, который один раз создается при инициализации и помечается, как неудаляемый. Персист данных между сессиями (между разными запусками игры) сложнее. Причем не потому, что надо писать в файл или работать с другими внешними сущностями. А потому что надо постоянно думать, могут ли внутренние структуры быть сериализированы. В шарпе не все так однозначно. Обычный array, например, может быть сериализирован в json, List уже нет. Хотя BinaryFormatter с ним справляется без проблем.
бамп Стив, как дела, продвигается ли изучение?
>>25670 Забил на какое-то время. Переезды, смена работы и всё такое Ещё как закончил курс junior programmer, у меня случился overwhelm от осознания уровня необходимых скиллов (которые нужно качать и качать 100500 лет как в олдскулл ммо), что демотивировало продолжать процесс. Недавно появилось желание раздропнуть. Начал новый курс Creative core. Посматриваю на применения Юнити в не-игровых индустриях, изучаю какие есть наработки в AR, webrtc, нативная интеграция в мобилках и всё такое.
>>26109 ну чО, как результаты?
>>27432 Тоже любишь отчеты вкатывальщиков читать?
о, здарова, вы тоже игры делаете?
Сап анон, Могу в юнити. На протяжении нескольких лет пилю унылые игори для ведра. Бывают вообще вакансии подобного рода?
>>13087 Ты б хоть на любую биржу вакансий сходил штоле? А то создал тред как будто ты разработчик искуственного интеллекта на брейнфаке и внезапно оказался выкинутым из родного университета.
>>13088 Проиграл
Если Сосач забанили, то это не значит, что надо сюда приходить щитпостить.
>>13097 Нет значит.
>>13098 Оставил запятые под проливным ддосом?
>>13099 Нет ты.
О, тут кому-то это еще интересно?
>>25308 Судя по тому, что в тред никто ничего не писал с 2015 года (да и тоогда он не взлетел, как видим) — нет.
>>25309 Эх, похоже все фапают на анриал
Как перебрать ассоциативный массив через foreach? С#
Если ассоциативный массив - это Dictionary, то: foreach (var (key, value) in myDictionary) { } Больше вариантов здесь: https://stackoverflow.com/questions/141088/what-is-the-best-way-to-iterate-over-a-dictionary
Привет, радио. Я всегда хотел спроектировать симсити и очень много времени потратил на эти попытки. Сегодня я ещё раз попробую спроектировать симсити. У меня свой странный большой симсити. Что я придумал: есть карта произвольного размера. На этой карте для каждой точки указан рельеф и знания которые там стоят. Предполагается что каждое здание занимает одну точку и на одной точке может быть сразу несколько заданий. Большой симсити! Более того, в каждой точке есть указатель на владельца точки. Предполагается потом играть за одного такого владельца. Острый угол состоит в том, что точка может быть водой или пустошью, на которых здания стоять не могут и указателя на владельца у них нет. То есть точки занимают разное количество памяти. Хорошо. Хорошо, как заполнить такую карту? Наверное нужно рисовать изображение, например в формате png, и переводить его в (csv) какой-то шаблон данных, например с разделением для каждой точки новой линией. А потом читать карту уже с этого csv! Итак, общий вид данных выглядит так: рельеф Сообщение слишком длинное. Полный текст.
Хочу редактировать сообщения! Не знания, не, на точке стоят здания. Здания хотел сказать.
>>25186 определенно на крестиках. Ты даже описал классы, которые у тебя будут. А с помощью ооп ты сможешь это лаконично и красиво закодить
>>25198 Классы я не описывал, это описывание базы данных. Хорошо, допустим мы имеет базу данных. Теперь нужно её графически представить, дабы пользователь мог её наблюдать и мог её взаимодействовать. Для начала можно просто попиксельно рисовать список данных из базы на экран в виде квадратиков. Например, можно использовать для рисования fltk. Эту задачу я себе и поставлю. Думать про механики ещё рано, для начала нужна возможность с механиками взаимодействовать. Поэтому сейчас проектирую визуальное представление и пользовательский интерфейс. Хелловоролд который из меня выпал с предыдущей задачи просто преобразует 5 картинок градаций серого в 5 чисел для каждого пикселя. Я больше не умею. Это называется базой данный. Потом переведу в бинарники и пережму. Наверное. Соус взял с одного из первых по выдаче поисковика для запроса libpng, файлика на гитхабе. Информации про зданий и етсетеру в картинках нет, это тестовая база, не реализовано. Сообщение слишком длинное. Полный текст.
https://github.com/kuang/ocaml-sim-city
>>25206 Что такое xpm?
>>25207 https://en.wikipedia.org/wiki/X_PixMap
Настраиваю примитивную защиту от DDoS на nginx используя limit_req и fail2ban. Fail2ban постоянно проверяет логи (значит есть нагрузка в этом плане), есть ли возможность использовать какой-нибудь скрипт, который сразу будет отправлять IP в бан? Решил в какой-то момент использовать ipset (утверждают, что производительнее при большом кол-ве IP адресов), установил firewalld и ipset, сделал в конфиге fail2ban: banaction = firewallcmd-ipset IP с которого выполняю DDoS на свой сервер был в списке забаненных ipset, но никакой реакции за этим не следовало, пришлось вернуть: banaction = iptables-multiport Почему с firewallcmd-ipset могло не получиться? Оно выдаёт ещё какую-то ошибку при выполнении команды systemctl status filrewalld: 2021-02-03 10:28:09 ERROR: '/usr/sbin/iptables-restore -w -n' failed: iptables-restore v1.8.2 (nf_tables): line 4: RULE_REPLACE failed (No such file or directory): rule in chain INPUT line 4: RULE_REPLACE failed (No such file or directory): rule in chain OUTPUT 2021-02-03 10:28:09 ERROR: COMMAND_FAILED: '/usr/sbin/iptables-restore -w -n' failed: iptables-restore v1.8.2 (nf_tables): line 4: RULE_REPLACE failed (No such file or directory): rule in chain INPUT Сообщение слишком длинное. Полный текст.
Во, с этой проблемой: > теперь при перезагрузке сервер не отвечает на запросы до выполнения iptables -F справился с помощью удаления iptables-persistent.
Привет всем, я не знаю подходит ли этот вопрос сюда, но все же. Может кто разбирается в Cisco Packet Tracer'е? Вот есть у меня такая сборка, нужно чтобы первый компьютер мог запиговать второй, но у меня не получается. Обязательным условием является использование Static Route. Я не понимаю в чем проблема, команда прописана правильно, но пинг не проходит....
Конфиг роутеров, если нужно.
>>25013 >но пинг не проходит Хм, а вот это учел? https://networkology.net/2013/03/06/using-packet-tracer-for-validating-icmp-traffic/ >Because the ASA does not statefully inspect ICMP packets (by default) you have to vouch for the return packets as well. So you’ll be running two packet-tracer commands to verify that ICMP packets go through and come back.
>>25013 У тебя же 172 вместо 192 местами написано, потому и не работает. Ну или еще почему-то нибудь, конфиги-то обрезаны.
Потому что я занимаюсь этим уже почти пять лет. Не путать с картинкопомойко-грабберами.
>>25006 ...а, публичная версия вообще не трогает каталог автоматом. О-хо-хо... Я наконец-то понял. Ммм, дайте мне некоторое время.
>>25001 Итак: 1. Есть ли у вас Апач или аналог, на котором этот FTBucket локально крутится? Я подозреваю, что да, но кто ж знает. 2. Есть ли в системе curl/wget, grep или аналог, и какой шелл - виндовый/баш? Я подозреваю (>>25003), что может быть и винда. Если на эти вопросы ответ "да", то скрипт делается просто, и я скину его позже. Если "нет", то черновик http://yakuji.moe/cron_fetch.ftbucket , но он скорее всего не работает.
>>25010 1. да 2. нет, но предпочтительнее wget, его как-то знаю. виндовый. да, винда. Копия не умеет, тк японец боялся, что все поднимут себе локально и положат футабу по трафиику. Поэтому не дал, 2 пост темы. Каталог раздела http://may.2chan.net/b/futaba.php?mode=cat
>>25018 Окей, я обновил >>25010-ссылку. (да, там cron_fetch.php, я просто сменил расширение) Елси у вас wget в PATH (то есть чтобы его запустить не надо указывать полный путь), то надо раскомментировать строку 35 и удалить строки 37-87. Иначе ничего делать не надо. Можно разве покрутить аргументы у sleep на строках 92 и 96. Если их не крутить, то одна доска архивируется минимум 3 минуты, значит полный цикл займёт 4+ часа. Наверное есть желание настроить для разных досок разную частоту? Строка 23 ожидает переменную $boardBook, которую берёт из autotag.php. Можно скопировать её оттуда в этот cron_fetch.php, переименовать в какой cron_fetch_may.php, оставить в нём толко may и поставить в cron обновляться раз в ~секунду. Если вам надо так часто, то sleep на 92 и 96 точно стоит убрать, но readUrlInfo на 43 в любом случае не даст обновить тред чаще чем прописано в конфиге... если не выставлен MANUALUPDATE там же? Уже не помню. Вот, тогда только в другом cron_fetch_xyz.php для других досок надо будет may из списка убрать. Как-то так? Отпишитесь, если вам непонятно или наоборот всё заработало. Я бы про ваш личный архив послушал.
>>25028 >4+ Ха-ха. Там, наверное, задержка между даунлоадом картинок ещё есть. В общем, я запустил где-то до написания этого поста. Выкачало 21 гиг и всё ещё идёт. Иногда жалуется на ошибку, правда...
>>25032 Жалуется на линии 83 и 85, там, видимо $info == false. Хм. Не критично, но докачает - поправлю.
>>25032 Нащёлкало 29 гб. Посмотрим, как быстро будет во второй раз идти, если убрать все добавочные sleep.
>>25034 Почти два часа. Общий объём теперь 32 гб. Ошибка была когда $info переприсваивалось в строке 59. Значит, строки 81-84 должны быть под if от стр. 76. Запустил в третий раз, без дебаггера. Возможно это сделает работать чуть быстрее. Ещё бы убрать весь вывод, но это перелопачивать довольно много кода... когда я могу, в принципе, просто переписать свою грабилку. И не факт, что это кому-то нужно или сделает код быстрее.
>>25035 Где-то час. В общем, писать всё в одном потоке не вариант.
>>25028 Всё ещё надеюсь, что вы отпишетесь, иначе пойду в /a/
Разрабатываю движок АИБ, сайт: https://symfony2ch.ru короткий вариант домена: https://s2ch.ru скрипт может в любой момент выдавать ошибки, сервер падать, могу принимать реквесты по улучшению функционала.
Бамплимит, автозакрытие треда после n постов, перелистывание.
Теги для треда: https://youtu.be/W74hmg7NxPg
Создал блог посвящённый MaidBox: https://maidbox.ru
Создал блог посвящённый SimpleIB: https://simpleib.ru
Домен https://symfony2ch.ru купил ещё раз, редиректит на https://cyber2ch.com, теперь там не MaidBox, а форк TinyIB.
Создал разделы: /php/ /python/ /javascript/ /html/ /css/ /linux/ /windows/ На https://lainchan.ru нету, эксклюзив https://cyber2ch.com
Ты там жив, ОП? Давненько от тебя новостей не было слышно. Чем сейчас занимаешься?
По всем перечисленным сайтам пишет: >Работа сайта временно приостановлена
А мог бы написать на математике всё, но нет, надо же там какие-то костыли.
>>26871 Отдыхаю. >>26875 Закрыто.
Хочу сделать модификацию к Стимовской игре Helltaker. Посоветуйте, какие программы нужны, есть ли какие либо гайды или статьи на русском языке?
Погуглить форумы, зайти в тоже сообщество игры в стиме, это настолько тяжело, что легче спросить в дохлом разделе дохлой борды.
>>24802 Зависит от того, какие ресурсы игры тебе нужно менять. В первую очередь надо разобраться в структуре игровых файлов и понять где что лежит, что запаковано, что лежит просто так, и в каких форматах. Например, думаю ты уже видел, что диалоги в игре лежат в открытом виде и их можно редактировать обычным блокнотом: https://steamcommunity.com/sharedfiles/filedetails/?id=2124884938
- wahaba + wakaba 3.0.9 + futaba + futallaby -