Ответы пользователя по тегу Веб-разработка
  • Выбор архитектуры: web или desktop?

    @rPman
    Web - на два порядка проще (читай дешевле) для разработки за счет повышенного требования ресурсов на клиентской стороне.

    Десктоп - возможно создание очень эффективных приложений но за счет очень дорогой поддержки всего разнообразия устройств и операционных систем (в веб этим занимается браузер и даже в этом случае приходится напрягаться)

    И главное, из веб приложения достаточно легко (например с помощью electron) можно сделать десктопное приложение.

    p.s. как бы я не нелюбил веб, который тянут даже туда где не надо, но его плюсы неоспоримы а страдающие клиенты от тормозов приложений, требующих топовое железо для простого чата... кто нас слушает?

    Кстати, один момент, тормозные веб приложения это не потому что веб такой плохой, это потому что разработчики ленятся делать все как следует. Рынок заполонили низкокачественные разработчики на основе веб. Помни об этом!
    Ответ написан
    Комментировать
  • Как удалить вирус с сервера?

    @rPman
    Решение prgrant наиболее простое.

    Если нужно разобраться, то разворачиваешь последний бакапп (или устанавливаешь все с нуля, в общем делаешь рабочую чистую от вируса копию) и начинаешь сравнивать по файлам (и базы данных тоже, бывают проекты от не очень оригинальных архитекторов, которые хранят код в базе, отличным примером может быть следующее - в проекте есть уязвимость, при которой ряд запросов со стороны клиента запускают скрипт на сервере, поэтому достаточно в шаблоне, который хранится в базе, добавить скрипт этого заражения и вот, первый клиент автоматически запускает код на сервере)

    Другим способом, т.е. чисто аналитическим, разобраться бывает нереально сложно, тем более у тебя много проектов развернуто.

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

    p.s. само собой цель - не только найти и удалить файлы вируса, но найти дыру и закрыть ее, так как если этого не сделать, вирус вернется. Обычно обновляют кодовую базу сайтов и пролводят аудит безопасности, минимальный, хотя бы фаервол настроить и закрыть все что не должно торчать 'наружу'
    Ответ написан
    1 комментарий
  • Как сделать сайт новичку, чтоб он одинаково корректно открывался старыми и новыми браузерами, в том числе смартфонами на Windows mobile 5, Symbian?

    @rPman
    Простых рекомендаций нет.

    Использование фреймворков заранее определит список устройств и браузеров (про устройства - важное замечание, так как банальный размер и наличие скалинга многое определяет), но сделает работу проще, а если делать все самому то будет эффективнее,больше гибкости и главное понимание что как работает и почему нет!

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

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

    Есть два основных направления разработки веб приложений, основные на месте генерации итогового html - на серверной стороне и на клиенте.

    В чистом виде первый подход уже не встречается, так или иначе javascript используется, но можно выбирать где именно, а значит уменьшать вероятность сбоя из-за особенностей пользовательского устройства, из недостатков - это повышает нагрузку на сервер, но это актуально для нагруженнных проектов, и тысяча другая клиентов правильно разработанный бакэнд не нагрузят.

    Второй подход, его ещё называют SPA, переносит все что касается интерфейса на сторону клиента, оставляя серверу бизнеслогику, это сильно уменьшает затраты на разработку бакэнда и снижает затраты ресурсов сервера, причем на столько, что даже миллионы пользователей потянет один сервер (защита ддос, CDN и т.п. можно считать фичей провайдера), но затраты на разработку со стороны браузера возрастут именно при необходимости поддержи большего количества устройств..

    Для начинающего я бы рекомендовал первый подход, с оглядкой на постепенный переход к SPA.
    Ответ написан
    Комментировать
  • Из кого состоит команда разработки WEB приложения?

    @rPman
    Что значит должен?
    В конце концов от денег все идёт, нет денег- совмещает должности до фулстак в одном лице

    Если серьезно то от сложности задач, чем она проще тем меньше людей понадобится.

    Общий вопрос - такой и ответ
    Ответ написан
    Комментировать
  • Безопасно ли отправлять данные по HTTPS?

    @rPman
    Все сказанное другими отвечающими верно, но стоит очень осторожно подойти к вопросу - от кого защищаться

    Любой участник выдачи сертификата (удостоверяющий центр, провайдер и место хранения сертификата) может устроить атаку. Так же разработчик браузера это так же может сделать. Браузерные расширения имеют доступ к данным. Любой локально установленный софт, в.т.ч. антивирусное обеспечение, фаервол ) то что локальное а не отдельная железка в сети)

    Ещё момент, вирусное приложение у разработчика вашего решения, может оставить в нем трояна, такие случаи были
    Ответ написан
    Комментировать
  • Стоит ли уходить в веб с Python?

    @rPman
    Можно, все можно
    Начинать с веб (основ) лучше чем начинать с узкой специализации реализации бота (тем более там по хардкору сразу в асинхронное программирование новичка бросает), причем лучше потрогать без высокоуровневых фреймворков как серверную часть и базы данных так и клиентскую, причем в обоих ипостасях, и html+css и javascript.

    Язык программирования и задачи, чаще всего стоят максимально друг от друга, и связь между ними исключительно в том какие фреймворки для каких языков под какие задачи уже написаны, но как я надеюсь все понимают, можно обойтись и без высокоуровневых решений, а низкоуровневые (не придется разбирать http заголовки или самому рисовать окна UI) есть для всех языков.
    Ответ написан
    Комментировать
  • Сколько может стоить создание копию существующего веб сервиса?

    @rPman
    с упрощенным функционалом (без лишнего)
    самая большая засада в этом кроется, так как лишнее может быть как 99% функционала так и 1%, и соответственно трудозатраты на создания будут отличаться на порядки

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

    и вот уже с этим ТЗ топать на площадки и спрашивать, за сколько сделаете.

    иначе - гадание на кофейной гуще с неопределенным результатом
    p.s. я скажу вам вчерашний студент тяп ляп сделает за пару сотен баксов три формочки и вдруг вас это устроит?
    Ответ написан
    Комментировать
  • Как подключить оплату криптовалютой к онлайн сервису?

    @rPman
    Совершенно 'не понимаю' зачем маркетплейсу участвовать в финансовой жизни своих участников, если используется криптовалюта... рекламная площадка?

    Сами участники пусть переводят друг другу монеты со своих кошельков, а чтобы маркетплейс понимал, когда оплата произведена, пусть участники (те кто ждет приема монет) сообщают маркетплейсу какие у них адреса, он смотрит в блокчейн и если появились транзакции на нужную сумму (в этом случае получатель должен заводить специально адрес для этого, что нормально для bitcoin но неудобно для erc20 так как там 1 адрес = 1 человек, и если хочешь больше - везде нужно для комиссии эфир складывать). Можно попросить отправителя сообщить id транзакции, тогда все будет универсально, проверяем у этой транзакции получателя и сумму и если совпадает с ожидаемой - считаем что оплата прошла.

    p.s. есть еще 2-уровень тенологии типа лайтинг, тут чтобы удостовериться что оплата прошла, нужно будет маркетплейсу вставать прямым узлом посредником (требование такое выкатить), в принципе это не плохо (но не гибко), заодно через это посредничество можно и комиссии собирать за использование маркетплейса но лично я считаю в принципе маркетплейс лишним, это должно быть что то децентрализованное, с публикацией товаров/услуг в какой-нибудь dht сети (или той же лайтинг, так как сама сеть может использоваться для передачи сообщений, даже чат/форум такой есть).
    Ответ написан
    Комментировать
  • Какой робот или API может зайти на веб-страницу для активации PHP скрипта?

    @rPman
    браузеры пока еще позволяют GET запросы со смешанным контентом и игнорируя CORS (будет варнинг в консоли), чтобы можно было встраивать на странице к примеру изображения с чужих сайтов (предупрежение будет но по крайней мере это работает), поэтому чтобы отправить запрос на страницу с другим контекстом можно динамически создавать элемент на странице (например img или script с указанием типа контента, какой бы он там не был), кстати при использовании script можно даже получить результат с http сервера, если это будет скрипт выполнения функции, определенной ранее на странице, т.е. пример вернуть с типом text/javascript
    my_callback([1,2,3,4,5]);
    а на странице определить функцию по обработке полученных данных
    function my_callback(data) {...}

    именно так давным давно реализовывали прародителя ajax

    p.s. опс, уже все, запретили
    и это хорошо, а то к примеру относительно недавно страничка сбербанка онлайн активно 'пинговала' локальные адреса на машине
    Ответ написан
    Комментировать
  • Где лучше хранить массив объектов? json или бд?

    @rPman
    Множественный одновременный доступ к данным - однозначно выбор ограничивается базами данных с поддержкой транзакций (есть исключения но лучше о них не думать), так как в тегах есть sql то наверное под БД понимается она? то да, лучше используй sql, там 99% проблем решены либо предоставлены инструменты для их решения а главное это правильный подход к разработке

    лично я бы не рекомендовал начинающему работать с nosql базами типа mongodb, они хоть и поддерживают транзакции но правильно их использовать может только опытный человек понимающий что к чему
    Ответ написан
    4 комментария
  • Есть ли возможность писать standalone-приложения c GUI для Ubuntu Desktop на PHP или JS/Vue - как?

    @rPman
    Есть мнение что веб технологии (а именно - браузер как интерфейс пользователя и бакэнд как основная часть с бизнеслогикой) - будущее всего интерфейса, пример с тьмой приложений на electron это показывает. И там где с данными приложения будут работать сразу несколько человек или подразумевается работа из нескольких мест - очень правильное направление, так как облегчает развертывание и фактически нет почти никаких требований к рабочему месту, почти не требует их обслуживание, что красиво ложится в стратегию тонкий энергоэффективный и дешевый клиент.

    Поэтому да, это имеет место быть, если вы готовы платить ресурсами за приличный оверхед как на стороне браузера так и на бакэнде. Благодаря таким технологиям как sqlite и готовым реализациям веб серверов на php (да просто однострочник использовать php -S ....) то почему нет, разворачивать такое приложение относительно легко, но нужно помнить, что веб приложение может быть использовано без клиентской части (api можно вызывать из любого другого приложения) и контролировать этот процесс не просто (на самом деле легко, нужно токен авторизации выдавать на любой запуск приложения, хранить в браузерном хранилище и процесс установки такого приложения - авторизация, т.е. выдача этого токена, даже если бакэнд тут же рядом запущен)

    p.s. мое мнение, когда речь идет о приложения для одного места и человека, то ... это отвратительное направление развития, но красиво/правильно/эффективно - не те слова что нравятся большинству, поэтому скорее всего так и будет.
    Ответ написан
    Комментировать
  • Необходимо скачать либо закешировать любыми способом карты из Wikimapia, как это возможно сделать?

    @rPman
    wikimapia.org
    Wikimapia is turned off for some time (days or even weeks). The site is under cyber attack all these days. Stay tuned. Explanation later.
    вообще то у них же был какой то штатный способ для этого, идеологически это же вики
    так как я видел некоторые сайты которые это для себя сделали
    ну или вот первый же запрос в гугл выдал торент 33гб с кешем от яндекса и векором викимапии (на конкретно этом сайте есть новее карты но уже без викимапии)
    Ответ написан
    Комментировать
  • Какую работу надо проделать для оптмизации сайта?

    @rPman
    Проблема явно не в сервере, повторное воспроизведение видео так же лагает, нагрузки на процессор нет, выглядит как глюк плеера (на linux лагает в 2-3fps в firefox, в chromium нет), при этом сама панорама, вращающаяся в фоне работает без единого лага.

    Совет, попробуй избавиться от mov формата (еще с древних времен его использование несло за собой кучу проблем), используй другие кодеки, начиная с mp4 h264 или webm

    Как вариант, чтобы не разбираться с проблемой, просто исключи штатный видеопроигрыватель (который пытается поворачивать окно с видео, что явно никому не нужно), присобачив его сверху всего сайта уже после его генерации, так к тому же проще будет внедрить сюда не свой плеер а стандартный youtube к примеру.
    Ответ написан
  • Как соединиться через curl с сайтом на опрелененный ip?

    @rPman
    соединиться с сайтом на определенном IP адресе
    как понимать это?
    ip адрес это адрес машины в интернете, с которой соединяешься
    на одной машине может быть несколько сайтов под разными доменными именами

    Бывает когда на один адрес может выдаваться несколько ip адресов- geodns, если это надо обойти, то можно локально для себя (в своей сети) настроить dns на выдачу конкретного ip адреса либо тупо прописать в /etc/hosts

    p.s. у утилиты curl есть ключ
    --connect-to <HOST1:PORT1:HOST2:PORT2>
    какраз для подмены подключений HOST1:PORT1 на HOST2:PORT2
    еще есть
    --resolve <host:port:address[,address]...>
    Provide  a  custom address for a specific host and port pair


    соответствующие им олпции curl_opt - CURLOPT_CONNECT_TO и CURLOPT_RESOLVE
    Ответ написан
    4 комментария
  • Нужно ли дополнительно покупать HTTP сервер для сайта или хостинга хватит?

    @rPman
    Не смейтесь над человеком, он правильно спросил, это вы не поняли.

    http web server это программа, их тьма тьмущая и в подавляющем большинстве своем они бесплатные, покупать отдельно ничего не потребуется.

    Самый популярный веб сервер это nginx - настоятельно советую
    Самые известные для новичков это apache или майкрософтовский IIS

    Настоятельно рекомендую выбирать в качестве операционной системы - linux, тем более это бесплатно (если не выбрать какой-нибудь редхат, ничего не имею против, просто прежде чем что либо покупать нужно понимать зачем ты это делаешь)

    Обычно приложение не должно знать под каким веб сервером запускается, т.е. не привязывает тебя но конечно это возможно, например майкрософт любит привязывать разработчиков к своим продуктам и если это делать бездумно, оказывается что приходится закупать кучу дорогих лицензий (т.е. веб сервер бесплатен как сервис но на сервере с дорогой лицензией)

    У веб сервера есть обычно два основных способа работы с программой (ок три, он ниже) - режим запуска плагином (когда веб сервер умеет запускать приложение веб сервера, написанного на его языке, т.е. знает умеет и работает по своему) и cgi, когда приложение может быть на любом языке хоть бинарник, просто веб сервер его запускает на каждый запрос и перенаправляет ввод вывод от браузера в него как стандартный консольный ввод вывод. Первый подход позволяет во многих случаях сильно оптимизировать работу... хотя есть ситуации когда второй эффективнее. Есть режим 'статики' - раздача просто файлов веб сервером минуя веб приложение, благодаря хорошей оптимизации файлы раздаются максимально эффективно, когда как веб приложение будет потреблять процессорное время (в конечном счете то самый 'дорогой' ресурс, вместе с оперативной памятью).

    Если проект не highload (это миллионы активных пользователей) то на одной машине обычно совмещают и веб сервер и само веб приложение, мало того, в некоторых ситуациях функцию веб сервера может на себя взять это приложение но так не делают, ибо это дополнительная точка отказа и поэтому все равно ставят веб сервер в режиме прокси (мир подключается к nginx а он уже перенаправляет согласно настроек запросы к внутреннему серверу-приложению)

    p.s. на время разработки при использовании к примеру того же php в качестве бакэнда, можно воспользоваться встроенным веб сервером в сам php (запускать php -S 0.0.0.0:8080 - запустит http сервер на порту 8080 )
    так же существуют 'однострочники' на почти любых языках программирования, так что что бы ты не выбрал, на время разработки вебсервером может быть простой скрипт.

    upd. вместе с хостингом, необходимо продумать кто будет заниматься администриарованием сервера, если хостинг универсальный vps/vds то настройка и поддержка по умолчанию обычно не включена в тариф, но вот SaaS хостинги, предлагающие не сам сервер а услугу , например хостинг веб приложения, могут включать в тариф как раз администрирование (в самых дешевых вариантах - это вебпанелька, интерфейс в консоли провайдера где типовые задачи решаются мышевозекательным способом)
    Ответ написан
    Комментировать
  • Как правильно создать бесплатный музыкальный сервис?

    @rPman
    Чтобы вас не заблокировали - у вас не должно быть места хранения информации, буквально.

    Точно помню были приложения для фильмов, работающие по протоколу torrent, где собственно автор предлагал только каталог (magnet ссылки) с картинками и названиями фильмтво, все остальное хранится у пользователей. Так вот наказывали автора жестко, проблему правообладателей это не решило, так как у приложения появлялись форки, но самого первого точно наказали.

    Так что технически реализовать можно, вопрос в мелочах.
    Ответ написан
    1 комментарий
  • На своем сайте надо организовать возможность онлайн трансляции через iр камеры. Как это сделать?

    @rPman
    Самое 'простое', установить на сервере ffmpeg и используя простую публиковать видеопоток в нужном формате
    гуглить ffmpeg webcam video streaming
    например вот
    Ответ написан
    Комментировать
  • Как получить m3u8 файл с сайта?

    @rPman
    Попробуй сконвертировать m3u8 файл в готовый видеофайл с помощью ffmpeg (он умеет загружать), чтобы не перекодировало указывай кодек -c copy

    Если сайт смотрит на http заголовки, который отправляет плеер/качальщик, и блокирует их, то очевидно их придется вручную подставлять, копируя из девконсоли браузера, один раз скопируй команду загрузки куска видео затем напиши скрипт, загружающий этой командой все куски локально и собирай с помощью ffmpeg
    Ответ написан
  • Возможно ли использовать антикапчу для браузера, не поддерживающего расширения?

    @rPman
    запилить свою на основе autoit, это скриптовый язык с фреймворком и компилятором для автоматизации действий.

    делаешь скриншот определенной области экрана, делаешь запрос на распознование капчи, вставляешь текст в нужное место (кликаешь мышкой в нужное место на экране)

    если браузер создает системные контролы (inputbox, что маловероятно) то эти элементы можно будет отслеживать и получать их координаты, иначе только распознованием текста с экрана (вплоть буквально до getpixel)
    Ответ написан
    2 комментария
  • А как выглядит настоящее, большое, корпоративное "Энтерпрайз" веб-приложение?

    @rPman
    Есть мнение - миром правит не заговор а глупость.

    У меня мало опыта, 'заглядывал' в несколько мест где пахло корпоративным энтерпрайзом, хоть и мелким, и везде - энтерпрайз это страшное кошмарное поделище, которое пилится десятком поколений разработчиков, которым лень/нереально сложно лезть в старый код друг друга, и на поддержку тратится неимоверные ресурсы, на столько большие что взять и написать с нуля может оказаться дешевле, но никому не хватает духа или даже знаний чтобы это сделать, ведь нужно будет отвечать за это, если не получится (а так ответственность размазана по куче людей).

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

    Любая крупная компания страдает последствиями закона Парето или даже эффекта Рингельмана.
    Чем больше людей задействованы в создании чего либо (а когда это что то делают долго, этого не избежать) тем больше усилий будут тратиться и в среднем эффективность каждого человека в отдельности будет уменьшаться. В конце концов старые компании со старыми продуктами вынуждены тратить огромные ресурсы просто на поддержание этого монстра на плаву.

    p.s. мое мнение, использовать крупный готовый фреймворк - это мина замедленног действия, не менее страшная чем создание своего самописного движка с нуля.
    Красивого ответа, а как надо, нет, на это пишут толстые книги, философы много рассуждают, созданы сложные принципы типа TDD которые позволяют если не исключить ряд проблем, появляющимися из-за старения продукта, но хотя бы его отсрочить и облегчить работу по внесению изменений в будущем.
    Ответ написан