• Как скачивать торренты на c#?

    VariusRain
    @VariusRain Автор вопроса
    музыкант-программист-конструктор
    Если кому-то важно, то вот тут есть примеры https://github.com/alanmcgovern/monotorrent/tree/m...
    Но они не работают, если поставить из нюгета последнюю стабильную версию.
    Что бы эти примеры начали работать, нужно ставить бета версию
    PM> NuGet\Install-Package MonoTorrent -Version 3.0.0-beta.rev0159
    Ответ написан
    Комментировать
  • Как найти расстояние от pivot point до границы коллайдера?

    VariusRain
    @VariusRain Автор вопроса
    музыкант-программист-конструктор
    Решение опишу, вдруг кому-то пригодится. За подсказку спасибо GavriKos
    Берём боундс, получаем его размер, его центр и дальше вычисляем координаты вершин.
    от них уже считаем всё относительно transform.position (это и есть координаты пивота в мире)
    Ответ написан
    Комментировать
  • Почему при запуске джобы Laravel падает?

    VariusRain
    @VariusRain Автор вопроса
    музыкант-программист-конструктор
    Просто обновить дамп автолоадера композера. Спасибо за совет Сергей delphinpro
    Ответ написан
    Комментировать
  • Как сбросить orage pi emmc до заводского состояния?

    VariusRain
    @VariusRain Автор вопроса
    музыкант-программист-конструктор
    Нужно было более грамотно подбирать дистрибутив.
    В моём случае дистриб армбиана для Orange PI PC отказывался работать с железом, о существовании которого не знал... Дистриб для Orange pi PC+ решил проблему
    Ответ написан
    Комментировать
  • Как запустить и остановить службы в Windows из под node js?

    VariusRain
    @VariusRain Автор вопроса
    музыкант-программист-конструктор
    В общем-то единственный способ, который я нашёл - это запуск консольных команд и парсинг их ответа.
    Можно, конечно, написать обёртку вокруг этого, но суть останется той же.
    Запуск службы:
    sc start ServiceName
    Остановить службу:.
    sc stop ServiceName
    Перезапустить службу:
    sc restart ServiceName
    Узнать статус службы:
    sc query ServiceName

    Подводным камнем тут будут права. Либо запускать ноду от имени админа, либо устанавливать на службу права, чтоб можно было ей управлять от имени пользователя.
    Ответ написан
    Комментировать
  • Почему serializedObject.FindProperty возвращает null?

    VariusRain
    @VariusRain Автор вопроса
    музыкант-программист-конструктор
    Решение:
    В целевом для редактирования классе убрать автосвойства и заменить обычными публичными переменными.
    А в классе редактора

    EditorGUI.BeginChangeCheck();
    ...рисуем редактор
    if (EditorGUI.EndChangeCheck())
            {
                EditorUtility.SetDirty(targetObject);
            }
    Ответ написан
    Комментировать
  • Почему не применяются настройки подключения в Laravel на лету?

    VariusRain
    @VariusRain Автор вопроса
    музыкант-программист-конструктор
    Получилось найти решение самостоятельно.
    Подойдёт, возможно, не всем, так что обратите внимание на ответ Григорий Васильков

    В моём же случае подошёл просто принудительный реконнект к базе после смены настроек
    \DB::connection('pgsql')->reconnect();
    Ответ написан
    Комментировать
  • Как правильно подключиться к websocket серверу Laravel?

    VariusRain
    @VariusRain Автор вопроса
    музыкант-программист-конструктор
    Решение оказалось очень простым:
    1. Добавить аутентификатор
    2. Убедиться в правильности параметра Encrypted. У меня он, как оказалось, должен быть фолс
    Pusher pusher = new Pusher("bar", new PusherOptions { 
                    Encrypted= false,
                    Host= "localhost:6001",
                    Authorizer = new HttpAuthorizer("localhost:8000/websockets-dashboard/auth")
    });
    Ответ написан
    Комментировать
  • Как заставить работать и web и api авторизацию в Laravel?

    VariusRain
    @VariusRain Автор вопроса
    музыкант-программист-конструктор
    Сам спросил, сам ответил.
    Мой ответ, скорее всего, никому не понравится, но для меня это стало решением.
    Предложенный в комментариях ларавель паспорт лично мне показался ерундой.

    Там же в комментариях предложили вариант написать middleware которая переключает guard по необходимости.

    Я же пошёл у себя на проекте по пути наименьшего сопротивления и просто написал свой сервис проверки токенов, поступающих в запросах от АПИ и добавил свою middleware, которая этот сервис дёргает.

    Таким образом стандартные веб запросы работают через нативный функционал авторизации Ларавель (веб сессии), а запросы к АПИ работают через самописную JWT авторизацию.
    Ответ написан
    Комментировать
  • Как задать кастомные заголовки при каждом запросе по SOAP(WCF)?

    VariusRain
    @VariusRain Автор вопроса
    музыкант-программист-конструктор
    Сам спросил, сам ответил...

    И так, механизм следующий:
    1. Нужно создать класс, имплементирующий интерфейс IClientMessageInspector
    2. Нужно создать класс, имплементирующий интерфейс IEndpointBehavior
    3. Нужно их между собой подружить


    В инспекторе сообщений заголовок задаётся следующим образом:
    public object BeforeSendRequest( ref Message request, IClientChannel channel ) {
    			MessageHeader header = MessageHeader.CreateHeader( "authenticate", "NS", "value" );
    			request.Headers.Add( header );
    	
    			Console.WriteLine( "BeforeSendRequest" );
    			return null;
    		}


    Затем инспектор привязывается к поведению:
    public void ApplyClientBehavior( ServiceEndpoint endpoint, ClientRuntime clientRuntime ) {
    			clientRuntime.ClientMessageInspectors.Add( new ClientMessageInspector() );
    		}


    И наконец, класс поведения нужно привязать к клиенту
    client = new ApiSoapPortClient();
    client.Endpoint.EndpointBehaviors.Add( new CustomBehavior() );
    Ответ написан
    Комментировать
  • Как запустить и остановить .sh файл через nodejs?

    VariusRain
    @VariusRain
    музыкант-программист-конструктор
    Небольшой некропост, но так как ответ до сих пор никто не дал, думаю, что кому-то может показаться полезным.
    Остановка дочернего процесса осуществляется методом kill самого объекта процесса в коде.

    например:
    let ffmpegProcess = spawn("ffmpeg", args);
    let stopRecording = function() {
        ffmpegProcess.kill();
    };
    setTimeout(stopRecording, 20000);
    Ответ написан
    Комментировать
  • Как сделать в юнити начисление баллов каждую секунду?

    VariusRain
    @VariusRain
    музыкант-программист-конструктор
    Самый простой и оптимальный вариант: корутины
    Сложнее, но элегантнее: завести отдельный поток
    Ответ написан
    Комментировать
  • Как сделать broadcast рассылку сообщений по UDP используя Socket?

    VariusRain
    @VariusRain Автор вопроса
    музыкант-программист-конструктор
    Сам спросил, сам ответил.
    Оказывается, нужно было чуть внимательнее читать документацию, хотя там и не всё так очевидно.

    Цитата с сайта майкрософт:
    Если вы используете протокол без установления соединения в блокирующем режиме, SendTo будет блокироваться до отправки датаграммы. Если вы хотите отправить данные на широковещательный адрес, необходимо сначала вызвать SetSocketOption метод и установить параметр сокета в значение SocketOptionName.Broadcast . Кроме того, необходимо убедиться, что число отправленных байтов не превышает максимальный размер пакета для базового поставщика услуг. Если это так, датаграмма не будет отправлена и SendTo создаст исключение SocketException .

    Как следствие:
    socket.SetSocketOption( SocketOptionLevel.Socket, SocketOptionName.Broadcast, true );

    Ну и применять вместо Send нужно SendTo, просто ему вместо конкретного адреса в EndPoint передавать
    IPEndPoint targetEndPoint = new IPEndPoint( IPAddress.Broadcast, 27000 );
    Ответ написан
    Комментировать
  • Как послать запрос и вернуть обратно?

    VariusRain
    @VariusRain
    музыкант-программист-конструктор
    В форме нужно указать action
    Он должен смотреть на имя исполняемое скрипта ли же некий абстрактный путь, например
    <form action="myscript.php" method="POST">
    </form>

    <form action="/myscript" method="POST">
    </form>


    В первом случае всё просто, там получаются данные от формы, создаётся нужный экземпляр класса, обрабатывается в нём неким образом информация и отдаётся обратно.
    Во втором случае сложнее. Нужно создать механизм маршрутизации. Для этого настраивается файл ,htaccess где все без исключения запросы перенаправляются на какой-то один, конкретный файл, который будет являться точкой входа в приложение, и уже в нём, в зависимости от выбранного маршрута, менять поведение.
    Так будет грамотней, хотя и в разы сложнее.

    Если вы только осваиваете ООП в ПХП, вам стоит понимать, что точка входа в приложении всё равно будет описана в процедурном стиле и уже дальше архитектура приложения будет усложняться, обрастая классами
    Ответ написан
    3 комментария
  • Как сделать объект не дочерним?

    VariusRain
    @VariusRain
    музыкант-программист-конструктор
    Непосредственно после инстантиейта заполнить у созданного объекта свойство родитель
    Ответ написан
    2 комментария
  • Как отправить почту по smtp в Laravel с разных адресов?

    VariusRain
    @VariusRain Автор вопроса
    музыкант-программист-конструктор
    Собственно, сам спросил, сам ответил, но, может ещё кому пригодится

    $configs = Config::get('mail.mailers.smtp');
    $configs['host'] = 'smtp.yandex.ru';
    
    config()->set('mail.mailers.smtp', $configs);
    Ответ написан
    Комментировать
  • Как создать интернет радио средствами c# (интеграция с известными серверами)?

    VariusRain
    @VariusRain Автор вопроса
    музыкант-программист-конструктор
    Спустя пару дней изучения информации и общения с авторами сервера IceCast я-таки нашёл решение.
    Может быть оно кому-то будет полезным.

    Собственно, я решение оформил в виде dll'ки, которую легко можно подключить к проекту и запустить трансляцию двумя строками кода, но там же есть все исходники и материалы, которые я для этого использовал, так что можно мою библиотеку проходить мимо и просто пользоваться оригиналом.

    Ссылка на проект

    UDP
    Для удобства создал пакет на Nuget
    Ответ написан
    Комментировать
  • Eloquent Save не обновляет данные. Один и тот же код, разные сервера. Что может быть не так?

    VariusRain
    @VariusRain Автор вопроса
    музыкант-программист-конструктор
    И так, решение я нашёл. Очевидность этого решения оставляет желать лучшего, но, надеюсь, если кто-то столкнётся с такой же проблемой, то это ему поможет.

    На поиск решения меня натолкнул ответ товарища Илья

    Я попытался подключить "прослушку" запросов к базе и запись их в лог файл, так как иначе на проде поступить просто нет возможности.

    Так как я использую Eloquent вне фреймворка, то тут пришлось поколдовать.
    Там же, где у меня объявляется капсула для задания конфигов подключения к БД дописал.

    use Illuminate\Database\Capsule\Manager as DB;
    ...
    DB::listen(function ($query) {
    			file_put_contents(BasePath("files/DB.log"), $query->time.' - '.$query->sql.' ['.json_encode($query->bindings).']'.PHP_EOL, FILE_APPEND);
    		});

    И вот тут я столкнулся с очень интересной ситуацией. Этот код работал на локальном сервере и не работал на на удалённом.
    Это странно и так быть не должно и не может, так как здесь же устанавливались настройки подключения к базе, а к базе подключение происходит нормально, но факт остаётся файтом.

    А результате решением стал перевод всех имён файлов и классов в нижний регистр.
    и обновление файла автолоад композера.

    Тупость? Возможно.. Но это сработало. Конкретно у меня был один скрипт APIController.php и в нём одноимённый класс. После переименования в apicontroller как имени файла, так и класса, всё стало работать как надо.
    Ответ написан
  • Как в юнити реализовать механику изменения ландшафта игроком?

    VariusRain
    @VariusRain
    музыкант-программист-конструктор
    Если ландшафт реализован посредством террейна, то у юнити для этого есть АПИ, почитать можно
    в ОФ документации
    Если нет, то и методы нужно искать иные.
    Ответ написан
    Комментировать
  • Как правильно сделать несколько окон в wpf с использованием mvvm паттерна?

    VariusRain
    @VariusRain
    музыкант-программист-конструктор
    На самом деле тут нет никакого секрета.
    Статей нет скорее всего по тому, что вопрос не так сложен, как может показаться.
    Для этого достаточно просто в дата контекст второго окна указать ту же view model
    Буквально тот же экземпляр и всё.

    Вы можете это сделать в момент создания экземпляра нового окна, передав this в его конструктор, например.
    Ответ написан
    2 комментария