Блог
Строительство и ремонт
Репетиторы
Красота
Фрилансеры
Разные специалисты
Уход за животными
Тренеры
Автоинструкторы

Разработка на Java — удалённая работа в Москве

Дата: 2025-02-12
Детали
Регион
Москва
Занятость
дистанционно
Стоимость
договорная
Дата публикации
2025-02-12
Описание
Необходимо внести небольшие изменения в код. Необходимо изменить или на оборот доработать перый этап входа Аппка не запускается пока не выберешь камеру на телефоне, после чего загружается аппка и уже телефон запрашивает доступ к камере. Нужно: - либо убрать этап выбора камеры и назначать заднюю камеру по дефолту (соответсвенно чтоб страница запускалась с loader bar и запрос на доступ к камере, после чего инициализация камеры) - либо подключить выбор методов user и environment в соответствии с выбором пользователя, так как сейчас стоит метод environment и при выборе камеры переднего вида, включается все равно задняя var initialize = async() =>{ var unityCanvas = document.querySelector(“#unity-canvas“); var videoCanvas = document.querySelector(“#video-canvas“); window.arCamera = new ARCamera(unityCanvas, videoCanvas); window.iTracker = new ImageTracker(arCamera); try{ await window.iTracker.initialize(); console.log(“ImageTracker initialized!“); } catch{ console.error(“Failed to initialize ImageTracker. Are you missing opencv.js? “ + error); ShowError(“Failed to initialize the experience.“); return; } await LoadWebcams(); document.getElementById(“startARButton“).style.display = “block“; } initialize(); var container = document.querySelector(“#unity-container“); var canvas = document.querySelector(“#unity-canvas“); var loadingBar = document.querySelector(“#unity-loading-bar“); var progressBarFull = document.querySelector(“#unity-progress-bar-full“); function StartAR() { canvas.style.width = window.innerWidth + “px“; canvas.style.height = window.innerHeight + “px“; document.getElementById(“startARDiv“).style.display = “none“; createUnityInstance(document.querySelector(“#unity-canvas“), { dataUrl: “Build/AR Arts.data“, frameworkUrl: “Build/AR Arts.framework.js“, codeUrl: “Build/AR Arts.wasm“, streamingAssetsUrl: “StreamingAssets“, companyName: “DefaultCompany“, productName: “AR Web“, productVersion: “0.1“, //webglContextAttributes: { “preserveDrawingBuffer“: true }, // matchWebGLToCanvasSize: false, // Uncomment this to separately control WebGL canvas render size and DOM element size. // devicePixelRatio: 1, // Uncomment this to override low DPI rendering on high DPI displays. }, (progress) => { progressBarFull.style.width = 100 * progress + “%“; } ).then((unityInstance) => { window.unityInstance = unityInstance; RequestWebcam(); loadingBar.style.display = “none“; }); loadingBar.style.display = “block“; } //Set Facing Mode here ('environment', 'user', '') window.unityFacingMode = “environment“ window.WEBCAM_SETTINGS = { video: { facingMode: unityFacingMode, }, audio: false }; window.requestingForPermissions = false; async function RequestWebcam(){ window.requestingForPermissions = true; try{ window.webcamStream = await navigator.mediaDevices.getUserMedia(window.WEBCAM_SETTINGS); console.log(“Webcam access granted“); requestingForPermissions = false; } catch (err) { //user denied camera permission - show error panel console.error(“getUserMedia error - “ , err); ShowError(“Failed to start the experience. Camera permission was denied“); window.requestingForPermissions = false; } } async function StartWebcam(){ console.log(“StartWebcam“) while (window.requestingForPermissions) { // Wait until requestingForPermissions becomes true. console.log(“Waiting for permissions...“); await new Promise(resolve => setTimeout(resolve, 100)); // Adjust the delay time as needed. } console.log(“Got Permissions“); if(window.webcamStream) { const video = document.querySelector(“#webcam-video“); video.srcObject = webcamStream; try { await arCamera.startWebcam(video); console.log(“Webcam started successfully“); window.unityInstance.SendMessage('ARCamera', 'OnStartWebcamSuccess'); } catch(err){ console.error(“Webcam failed to start - “, err); window.unityInstance.SendMessage('ARCamera', 'OnStartWebcamFail'); } } else{ console.error(“Webcam failed to start - permission not yet granted“); window.unityInstance.SendMessage('ARCamera', 'OnStartWebcamFail'); } } async function LoadWebcams(){ let camDevices = []; // let backCams = []; let devices = await navigator.mediaDevices.enumerateDevices(); var ctr = 0; devices.forEach(mediaDevice => { if (mediaDevice.kind === 'videoinput') { if(window.unityFacingMode == 'environment' && !mediaDevice.label.includes('facing front')){ //back cam only camDevices.push(mediaDevice); } else if(window.unityFacingMode == 'user' && mediaDevice.label.includes('facing front')){ //front cam only camDevices.push(mediaDevice); } else{ //back and front camDevices.push(mediaDevice); } ctr++; } }); var select = document.getElementById(“chooseCamSel“); select.style.display = “block“; var count = 0; //reverse array because some Android phones can't distinguish front and back cams at first load //and when this happens, most of the time, front cam goes first and back cam goes last camDevices = camDevices.reverse(); camDevices.forEach(mediaDevice => { const option = document.createElement('option'); option.value = mediaDevice.deviceId; let label = `Camera ${count}`; if (mediaDevice.label) { label = mediaDevice.label } const textNode = document.createTextNode(label); option.appendChild(textNode); select.appendChild(option); count++; }); iTracker.WEBCAM_NAME = select.options[select.selectedIndex].innerHTML; } function SelectCam(){ var select = document.getElementById(“chooseCamSel“); window.deviceId = select.value; window.WEBCAM_SETTINGS.video['deviceId'] = deviceId; //console.log(window.WEBCAM_SETTINGS); iTracker.WEBCAM_NAME = select.options[select.selectedIndex].innerHTML; } async function FlipCam(){ arCamera.stopWebcam(); window.WEBCAM_SETTINGS.video.deviceId = ''; if(window.WEBCAM_SETTINGS.video.facingMode == 'user'){ window.WEBCAM_SETTINGS.video.facingMode = 'environment'; arCamera.setFlipped(false); } else{ window.WEBCAM_SETTINGS.video.facingMode = 'user'; arCamera.setFlipped(true); } window.webcamStream = await navigator.mediaDevices.getUserMedia(window.WEBCAM_SETTINGS); const video = document.querySelector(“#webcam-video“); video.srcObject = webcamStream; await arCamera.startWebcam(video); } function ShowError(error){ document.getElementById(“errorDiv“).style.display = “flex“; document.getElementById(“errorText“).innerHTML = error; } function ShowScreenshot(dataUrl){ document.getElementById(“screenshotDiv“).style.display = “flex“; document.getElementById(“screenshotImg“).src = dataUrl; document.getElementById(“screenshotImg“).style.width = “80vw“; document.getElementById(“screenshotImg“).style.height = 80 / window.innerWidth * window.innerHeight + “vw“; } function ShowConfirmUrl(url){ document.getElementById(“confirmUrlDiv“).style.display = “flex“; window.newUrlString = url; document.getElementById(“confirmUrlText“).innerText = “Are you sure you want to visit “ + url; } window.ITRACKER_GLOBALS = { //place global settings here INTERNAL_SMOOTHFACTOR_POS: .075, }.
Похожие заказы
Разработка на Java
дистанционно
договорная
Пожелания и особенности: Учусь на Java разработчика в Яндекс практикум. Получился незапланированный перерыв в учебе и я половину забыл. Нужно помочь разобраться в программе. Сейчас в ней есть ошибки в тесте, которые меня запутали совсем. И не много доработать код, добавить некоторые улучшения.
Тула
Фрилансеры
2025-06-29
Откликнуться
Разработка на Java
дистанционно
договорная
Разбор задачи по Java, подключение БД MySQL, объяснение работы MySQL Workbench.
Санкт-Петербург
Фрилансеры
2025-06-18
Откликнуться
Разработка на Java
дистанционно
договорная
Помощь с дз по программированию на джаве (дедлайн 17 июня 23:00): В рамках данного домашнего задания требуется реализовать работу небольшого языка запросов (а-ля SQL). Важное замечание Nº1: проверка корректности реализации будет проводиться автоматически на наборе тестов; любые отклонения от формата ввода-вывода (даже лишние пробелы) считаются ошибкой. Важное замечание Nº2: в рамках этого ДЗ вам дан шаблонный проект , части которого необходимо реализовать; любые отклонения от шаблона считаются ошибкой. Если не сказано явно, код менять запрещается (в коде шаблона указаны соответствующие комментарии). Если это не нарушает запретов, то добавлять новые классы, интерфейсы и метолы разрешается (и рекоменлуется). Что нужно сделать Основные компоненты: Реализация парсера запросов (QueryParser): разбор SELECT, INSERT, REMOVE, CLEAR, поддержка фильтрации (FILTER) и сортировки (ORDER). Реализация классов запросов и результатов: SelectQuery, InsertQuery, RemoveQuery и соответствующие QueryResult классы, реализация метода execute() в каждом, работа с полями класса User. Создание лямбд/анонимных классов для фильтрации, сортировки, выборки данных. Реализация и запуск модульных тестов на JUnit5. Оформление проекта по правилам: пакеты, отдельные классы, модификаторы доступа, грамотная декомпозиция, читаемость, оформление, экспорт в zip со структурой IntelliJ IDEA. кину все файлы с подробным заданием, шаблоном и критериями. возможно неполное выполнение задания.
Москва
Фрилансеры
2025-06-17
Откликнуться
Разработка на Java
дистанционно
договорная
Пожелания и особенности: задание по джаве: реализовать работу простого языка запросов (типа sql) Основные компоненты: Реализация парсера запросов (QueryParser): разбор SELECT, INSERT, REMOVE, CLEAR, поддержка фильтрации (FILTER) и сортировки (ORDER). Реализация классов запросов и результатов: SelectQuery, InsertQuery, RemoveQuery и соответствующие QueryResult классы, реализация метода execute() в каждом, работа с полями класса User. Создание лямбд/ анонимных классов для фильтрации, сортировки, выборки данных. Реализация и запуск модульных тестов на JUnit5. Оформление проекта по правилам: пакеты, отдельные классы, модификаторы доступа, грамотная декомпозиция, читаемость, оформление, экспорт в zip со структурой IntelliJ IDEA. более подробно опишу в лс, сделать нужно сегодня.
Москва
Фрилансеры
2025-06-17
Откликнуться
Разработка на Java
дистанционно
договорная
Пожелания и особенности: Разработать и реализовать интерпретатор мини-языка запросов, аналогичного SQL, для эмуляции работы с базой данных пользователей. Задание включает в себя: 1. Реализация парсера запросов (QueryParser) Создать парсер, который из строки команды строит объект запроса Query (или сообщает об ошибке парсинга). 2. Поддержка 4 типов команд: SELECT (с подкомандами FILTER, ORDER) INSERT REMOVE CLEAR Каждая команда имеет строгий синтаксис. Пробелы, порядок, регистр – критичны. 3. Работа с эмулированной базой данных База представлена классом Database (хранит список пользователей User). Пользователь имеет поля: id, firstName, lastName, city, age. 4. Реализация классов запросов (Query и QueryResult): SelectQuery, InsertQuery, RemoveQuery, ClearQuery – запросы SelectQueryResult, InsertQueryResult, RemoveQueryResult, ClearQueryResult – результаты Нужно реализовать только методы execute() и message() — остальное трогать нельзя. 5. Обработка ошибок Все некорректные команды должны обрабатываться без падения, с сообщением об ошибке (через ParsingResult::error). 6. Юнит-тестирование с JUnit 5 Обязательное покрытие кода тестами. Тесты должны быть независимыми, корректно проверяющими результат. 7. Оформление по правилам: Именование, структура проекта, отступы, длина строк — строго по документу «Правила оформления программ» [7†source]. 8. Формат сдачи: ZIP-архив IntelliJ-проекта строго по шаблону: HW3_<ГРУППА>_<ФИО>.zip Внутри: .idea, *.iml, src, test, возможно README.txt. Это краткое описание, есть файлы и шаблон с четким тз ВАЖНО: не использовать вовсе или использовать очень аккуратно ИИ, лучше не использовать, т.к. задание жестко проверяется через систему антиплагиат и кураторами.
Москва
Фрилансеры
2025-06-16
Откликнуться
Разработка на Java
дистанционно
договорная
Разработка с нуля. Разработать и реализовать интерпретатор мини-языка запросов, аналогичного SQL, для эмуляции работы с базой данных пользователей. Задание включает в себя: 1. Реализация парсера запросов (QueryParser) Создать парсер, который из строки команды строит объект запроса Query (или сообщает об ошибке парсинга). 2. Поддержка 4 типов команд: SELECT (с подкомандами FILTER, ORDER) INSERT REMOVE CLEAR Каждая команда имеет строгий синтаксис. Пробелы, порядок, регистр – критичны. 3. Работа с эмулированной базой данных База представлена классом Database (хранит список пользователей User). Пользователь имеет поля: id, firstName, lastName, city, age. 4. Реализация классов запросов (Query и QueryResult): SelectQuery, InsertQuery, RemoveQuery, ClearQuery – запросы SelectQueryResult, InsertQueryResult, RemoveQueryResult, ClearQueryResult – результаты Нужно реализовать только методы execute() и message() — остальное трогать нельзя. 5. Обработка ошибок Все некорректные команды должны обрабатываться без падения, с сообщением об ошибке (через ParsingResult::error). 6. Юнит-тестирование с JUnit 5 Обязательное покрытие кода тестами. Тесты должны быть независимыми, корректно проверяющими результат. 7. Оформление по правилам: Именование, структура проекта, отступы, длина строк — строго по документу «Правила оформления программ» [7†source]. 8. Формат сдачи: ZIP-архив IntelliJ-проекта строго по шаблону: HW3_<ГРУППА>_<ФИО>.zip Внутри: .idea, *.iml, src, test, возможно README.txt. Это краткое описание, есть файлы и шаблон с четким тз ВОЖНО: не использовать вовсе или использовать очень аккуратно ИИ, т.к. задание жестко проверяется через систему антиплагиат и кураторами.
Москва
Фрилансеры
2025-06-12
Откликнуться
Разработка на Java
дистанционно
договорная
Имеется проект на Java сервлетах, реализующий аукционы. Очень лёгкий сервис, 6 сущностей, весь фронт готов, можно использовать любые ИИ, главное чтобы все соответствовало ТЗ. Начал делать сам, но немного не успеваю Лёгкий и быстрый проект Конечного потребителя нет, нужно один раз локально продемонстрировать работу и все.
Москва
Фрилансеры
2025-06-12
Откликнуться