Стив, решил я значит попробовать поработать в Fedora Workstation и у меня возникла проблема, которая заключается в следующем: как подружить скаченный установочный пакет EclipseIDE с Fedora? А то вроде установить-то её я установил и при первом запуске всё вроде как работает нормально, но все последующие разы просто ничего не происходит. Попытка запустить через терминал перенаправляет на запуск (с предварительной установкой разумеется) IDE из центра приложений, что мне не надо, ибо это дублирование уже установленной программы. Я конечно нуб в том что касается Линукса, но в Кубунте такой проблемы не было и всё устанавливалось и запускалось просто и интуитивно. Что я делаю не так?
К сожалению в интернете много мрака для новичковых новичков по теме установки пакетов, но тут более менее сносно если надо "просто установить пакет". Пакет это и есть программа если что. https://lumpics.ru/how-to-install-programs-in-linux/ Однако лучше разберись how to install packages in fedora на досуге. То есть, что бы установить eclipse тебе надо в терминале сделать что-то вроде sudo yum install eclipse. Хотя стоит понимать, что федорой я не пользуюсь, а убедился, что там есть нужный пакет вот по этой ссылке https://repology.org/projects/?search=eclipse&maintainer=&category=&inrepo=fedora_34¬inrepo=&repos=&families=&repos_newest=&families_newest= А вообще, для новичковых новичков, которым нет времени разбираться с базовой работой в системе есть же убунты и минты всякие.
sudo yum install eclipse
Итян, запрашиваю помощи. Пишу пробное приложение в андроид студио, сделал страницу регистрации и входа и подвязал к кнопке регистрации переход на следующую страницу. Но почему-то при вводе данных и клике на кнопку приложение просто ломается. Может кто-то знает в чём проблема? На StackOverflow вопрос задавал, но внятного ответа не получил.
Вот код кнопки. loginButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //loadingProgressBar.setVisibility(View.VISIBLE); //loginViewModel.login(usernameEditText.getText().toString(), //passwordEditText.getText().toString()); Intent mainAct = new Intent(getApplicationContext(), MainActivity.class); startActivity(mainAct); } });
https://paste.ofcode.org/pfVk3qnVT2MJASjXUTtuCz Ссылка на полный код.
На первый взгляд ты сделал всё как по книжке, а стектрейс падения можешь привести?
>>25600 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.logining/com.example.logining.ui.login.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference
>>25601 Лучше бы конечно стектрейс был полным, но обрати внимание, что до попытки запустить MainActivity твой код добирается. Значит, листенер выполняется, и скорее всего проблема у тебя с setOnClickListener не в LoginActivity а уже в MainActivity В MainActivity какие-то кнопки с листенерами есть?
>>25602 Здесь есть своя кнопка, но она ничего не делает пока что. public class MainActivity extends AppCompatActivity { private Button nextButton; private TextView welcome; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); final Button loginButton = findViewById(R.id.login); nextButton = findViewById(R.id.buttonNext); welcome = findViewById(R.id.logo); nextButton.setOnClickListener(new View.OnClickListener() { Сообщение слишком длинное. Полный текст.
>>25603 Эксепшон говорит нам о том что твой nextButton - null. Если взять, и убрать >nextButton.setOnClickListener что-то поменяется?
>>25604 Если оно null, значит оно не нашлось по id: nextButton = findViewById(R.id.buttonNext);
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/
- wahaba + wakaba 3.0.9 + futaba + futallaby -