• Запуск приложения на стороне клиента из php на web- странице?

    wataru
    @wataru
    Разработчик на С++, экс-олимпиадник.
    Если приложение уже стоит в системе и зарегистрировало определенные ссылки/типы файла как свои, то можно на странице просто сделать ссылку. По клике на нее броузер, если все настроено, спросит: а не хочет ли пользователь открыть ссылку в этом приложении.

    Сделать это незаметно для пользовател в браузере невозможно из-за соображений безопасности.
    Ответ написан
    2 комментария
  • Как защитить соединение между двумя приложениями?

    @cicatrix
    было бы большой ошибкой думать
    VPN не? Как бы для этого и предназначено
    А вообще это задача сисадмину, чтобы эндпоинты от деймонов не смотрели в открытую сеть.
    Ответ написан
    8 комментариев
  • Как правильно определить потребляемую память?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Давайте определим точную границу, где проходит увеличение объёма потребляемой памяти. Это 33554432 элементов.
    3355443210 = 200000016
    Поищем предыдущий скачок. Он происходит на 16777216 элементах.
    1677721610 = 100000016
    Проверим дальше. Получим следующие значения:
    838860810 = 80000016
    419430410 = 40000016
    209715210 = 20000016
    104857610 = 10000016
    ...
    810 = 816
    Вывод - PHP резервирует память округляя количество элементов вверх до ближайшей степени двойки.
    Ответ написан
    1 комментарий
  • Существует ли библиотека для трансляции php кода в node.js?

    neuotq
    @neuotq
    Прокрастинация
    Технически сам язык конечно же можно перевести в другой, я думаю даже простенькие функции будут работать.
    НО! Дальше будет куча но. Обычной трансляцией не обоёдешься, так как много подводных камней и особенностей самого API PHP, принципов работы многих встроенных библиотек, хаков, костылей и просто приёмов которые используют люди в своих проектах и тп.
    В таком огромном и сложном проекте как Wordpress этого всего просто нереальное количество.
    Вы же понимаете часто даже код больших проектов, в рамках одного языка(любого) тяжело переводить с версии на новую версию. А тут на другой язык/платформу исполнения кода.
    Это в любом случае ручной труд, а автоматический транслятор вам только будет помогать переводить конкретные конструкции, а так огромное количество ручного труда для каждого файла/класса/функций и тп.
    Технически это возможно, но займёт огромное количество человека-часов, легче с нуля написать.
    Второй вариант найти решение с условной виртуальной машиной, которая исполняет php код внутри js окружения. Были когда-то подобные пакеты, но спроса нет и всё заглохло. Это тоже трудоёмкий процесс, нужно бежать и развивать свою такую штуку.
    Поэтому сегодня есть только условные прокси на node.js, которые запускают php скрипты на php(тем или иным способом, но исполняет их именно php).
    Поэтому мы приходим к технологии WebAssembly, там есть например проект wasmer, с помощью которого можно запускать wasmer-php. Но снова таки, это не трансляция кода, а просто запуск php в среде браузера, js тут уже чисто для управления и запуска самого wasmer...
    Ответ написан
    Комментировать
  • Как реализовать страницу для тестирования учеников?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Здравствуйте!
    Во-первых, непонятно в каком объеме у вас на данный момент реализовано текущее приложение на Spring.

    Сайт на подобие визитки.

    И вообще странно, что если это просто сайт-визитка, то зачем она писалась на Spring + VueJS. Там банально CMS WordPress хватит с лихвой. Ну в крайнем случае можно было взять рнр фреймворк (Yii2, Laravel) - обошлось бы дешевле для школы)

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


    1) Эндпоинты для ЛК учителя и ученика должны быть разными.
    2) Эндпоинты аутентификации учителя и ученика тоже можно сделать разными.
    3) Тестирование бывает разным. Нужно для начала разобраться с тем, какое тестирование вам нужно и как его можно реализовать.

    Например, есть тестирование при котором проверяется правильность выбранного ответа. Т.е. пользователь выбрал ответ "а" и соответственно, проверяем корректный ответ, хранимый в БД. Этот тест можно усложнить тем, что каждый раз при прохождении теста изменять местами варианты ответов, чтобы ученики не запоминали ответы по буквам.

    Другой вид тестирования, когда каждому ответу присваивается определенный балл. Далее высчитывается набранная сумма и выдается ему некий результат (часто встречается в психологических тестах).
    Иной вид тестирования, когда проверяется количество выбранных ответов варианта "А", "В" и т.д. Т.е. пользователь выбрал "А" - 5 раз, "В" - 2 раза. И если например, А < 5 и B >2, то отдаем один результат, иначе другой и т.д.

    4)
    Особенно как лучше сделать саму логику обработки ответов и последующую их проверку?

    Например, по мере прохождения теста формируем массив ответов и записываем их в LS, чтобы в случае чего не потерять данные. Затем по сабмиту "отправить на проверку" отправляем массив на сервер и перебирая ответы сравниваем их со значениями в БД. Если предусматривается возможность изменение варианта ответа для того или иного вопроса, то при изменении ответа, вносим правки в массив и сохраняем LS.

    Как реализовать страницу для тестирования учеников?

    Вообще, как по мне тут больше работы с фронтом, нежели с бэком.
    На самом деле тут много нюансов, которые нужно уточнить. Например, должны ли тесты делиться по темам или по каким-то категориями? Сколько тестов всего бывает и сколько из них отдается на клиент? Как корректно сфорировать сущности пользователей, тестов, тематик и т.д.?

    Либо попробуйте поискать готовые решения, которые потом можете встроить в сайт. Правда, не самое лучшее решение.
    Например, https://www.classmarker.com/online-testing/how-to-...
    https://quiz.proprofs.com/how-do-i-embed-a-quiz-on...
    https://www.riddle.com/blog/embed-online-quizzes-site/
    Google

    В общем, все зависит от ваших навыков программирования, от бюджета, от сроков и т.д.
    Самое быстрое решение возможно, использование CMS с готовыми плагинами.
    Например, WordPress + плагины
    https://ru.wordpress.org/plugins/quiz-master-next/
    https://ru.wordpress.org/plugins/wp-quiz/
    https://www.wpbeginner.com/showcase/best-quiz-plug...
    https://ru.wordpress.org/plugins/hd-quiz/
    https://ru.wordpress.org/plugins/quiz-maker/
    Google

    Для более объективного ответа нужно больше данных.
    Ответ написан
    2 комментария
  • Почему мелкие вставки в базу дают максимум 4мб/с на ssd?

    @vitaly_il1
    DevOps Consulting
    Два направления:
    1) innodb_flush_log_at_trx_commit=0 или 2 (https://dev.mysql.com/doc/refman/8.0/en/innodb-par...) и прочие базисные настройки
    2) bulkinsert как уже сказали и т.п., см. https://medium.com/@benmorel/high-speed-inserts-wi...
    Ответ написан
    1 комментарий
  • Как лучше верстать сайты с векторными элементами?

    Get-Web
    @Get-Web Куратор тега CSS
    Front-End Developer
    Если не лень, то можно сохранить каждую фигуру отдельно(желательно в svg) и позиционировать на фоне, таким образом у фигур будет плавающая позиция и на других экранах можно перестроить по другому, убрать половину на мобильных и т.д.. выглядеть это будет примерно так :
    background: url(../images/other/decor-figure-1.svg) no-repeat 53% 6%,
                url(../images/other/decor-figure-2.svg) no-repeat 45% 22%,
                url(../images/other/decor-figure-3.svg) no-repeat 82% 22%,
                url(../images/other/decor-figure-4.svg) no-repeat 45% 96%,
                url(../images/other/decor-figure-5.svg) no-repeat 83% 82%
    Ответ написан
  • Как работает DNS хостинг?

    SignFinder
    @SignFinder
    Wintel\Unix Engineer\DevOps
    Для поддержки любой DNS зоны стандартно нужно иметь минимум 2 DNS сервера с этой зоной.
    Если управление зоной делегировано на эти сервера, никто кроме них не сможет ответить на запросы о DNS записях в этой зоне.
    На DNS серверах уровнем выше будут только записи, куда делегирована ваша зона и все.

    И будьте добры, расставьте знаки препинания и поправьте ваш текст - он трудночитаем и понять его сложно.
    Ответ написан
    9 комментариев
  • На что можно переехать с сервиса 3D для товаров?

    @rPman
    такое вращение это просто набор из статичных картинок (именно это по ссылке), если они у вас есть, не нужно ничего особого разрабатывать, кода минимум.

    Статика не создает никакой нагрузки на сервер (она минимальна, только сетевой трафик) поэтому уходите от готовых решений на свои
    Ответ написан
    4 комментария
  • Почему не работает \Bitrix\Iblock\ElementTable::update?

    winer
    @winer
    занимаюсь разработкой сайтов на 1c-bitrix
    В ядре убрана возможность использовать операции добавления/удаления/обновления для элементов ИБ (таблица \Bitrix\Iblock\ElementTable) через ядро D7. При обновлении элемента ИБ нужно довольно много данных в других таблицах менять (поисковые индексы, фасеты и т.д.). Поэтому в коде bitrix/modules/iblock/lib/element.php можно увидеть такое :
    public static function add(array $data)
    	{
    		$result = new ORM\Data\AddResult();
    		$result->addError(new ORM\EntityError(
    			Loc::getMessage('ELEMENT_ENTITY_MESS_ADD_BLOCKED')
    		));
    		return $result;
    	}
    
    public static function update($primary, array $data)
    	{
    		$result = new ORM\Data\UpdateResult();
    		$result->addError(new ORM\EntityError(
    			Loc::getMessage('ELEMENT_ENTITY_MESS_UPDATE_BLOCKED')
    		));
    		return $result;
    	}
    
    	public static function delete($primary)
    	{
    		$result = new ORM\Data\DeleteResult();
    		$result->addError(new ORM\EntityError(
    			Loc::getMessage('ELEMENT_ENTITY_MESS_DELETE_BLOCKED')
    		));
    		return $result;
    	}


    В документации на метод прямо указано:
    Метод заблокирован. Используйте метод CIBlockElement::Update
    Ответ написан
    3 комментария
  • Можно ли использовать Bootstrap, JQuery и другие сторонние библиотеки в серьезном проекте?

    gbg
    @gbg
    Любые ответы на любые вопросы
    В идеале, заказчика не должно интересовать, что там под капотом - вы прописываете все требования в контракте на юридическом языке, так что если кто-то что-то перестанет поддерживать - это будут проблемы студии, а не ваши.

    А чтобы студия не сменила юрлицо и не пропала, выбирайте надежного партнера.

    Вы понимаете, что на разработку аналогов этих библиотек может уйти 80% ваших денег? (да, на собственно сам сайт пойдет 20%)
    Ответ написан
    Комментировать
  • Реализация неприрывной доставки приложений?

    @unseriously
    Можно с помощью GitHub actions - мануалов полно
    Можно с помощью Jenkins, тут уже надо будет этот самый Jenkins где-то развернуть и настроить
    Можно с помощью GitLab, его можно установить где-то у себя, а можно воспользоваться облачной версией
    Ответ написан
    Комментировать
  • Реализация неприрывной доставки приложений?

    @q2digger
    никого не трогаю, починяю примус
    GitLab, GitHub + Actions
    Ответ написан
    Комментировать
  • Как сделать фильтрацию по клику на Vue?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Вы неправильно используете метод filter.
    Во-первых, его каллбэк должен возвращать не значение элемента массива, а логическое значение, указывающее, включать элемент в результат или нет.
    В-вторых filter не меняет исходный массив, а возвращает новый.
    this.items = this.items.filter(el => el < 10);
    Ответ написан
    Комментировать
  • Как сделать докер для тестирования кода на питоне с определенными библиотеками?

    @q2digger
    никого не трогаю, починяю примус
    я думаю, с такими вводными надо идти на фрилансер
    Ответ написан
    3 комментария
  • Почему кнопка вкл/выкл на корпусе срабатывает один раз?

    hint000
    @hint000
    у админа три руки
    Следственный эксперимент номер 1.
    нажал на кнопку – комп выключился, нажал на кнопку - он не включается
    В этом месте отсоединяем 24pin-коннектор от материнской платы (не выключая БП), для уверенности ждём полминуты, втыкаем коннектор на плату, пробуем запустить кнопкой.

    Следственный эксперимент номер 2.
    нажал на кнопку – комп выключился, нажал на кнопку - он не включается
    В этом месте отсоединяем 24pin-коннектор от материнской платы (не выключая БП), мультиметром в режиме до 20V смотрим напряжение между чёрным и пурпурным (фиолетовым) проводами на 24pin-коннекторе. Должно быть примероно 5V. Далее пробуем запустить БП народным методом скрепки (замыкаем зелёный и черный провода разогнутой скрепкой или любой пролочкой).
    Если БП не запустился скрепкой или нет дежурных 5V на пурпурном проводе - дело ясное, БП на помойку (или в ремонт умельцу с паяльником).
    Если запустился, то подозрения с БП ещё не снимаются, но главным подозреваемым становится материнка.
    Ответ написан
    3 комментария
  • Почему такая разница между Nginx и Apache в метрике "Content Download"?

    @rPman
    Скорее всего все зависит от того как приложения отдают http заголовки.

    Когда работает через apache, TTFB ждет долго потому что пока приложение не отработает до конца, даже заголовки не будут отправлены, т.е. время, которое занимает работа приложения это TTFB+content download

    Когда же работает через php fpm, за заголовки отправляются тут же, nginx не ждет когда закончится работа приложения для этого, а значит TTFB маленький (кстати 122мс это ДОЛГО что там происходит?) а уже генерация контента происходит пока идет content download
    Ответ написан
    3 комментария