• Как отключить автозаполнение форм с помощью html 5?

    DividerBeam
    @DividerBeam
    Придумал вариант которого вроде нигде нет, но он банально простой, пришел мне в голову изучая методы, перечисленные выше

    <input onfocus="this.setAttribute('type', 'password');" type="text">
    Ответ написан
    Комментировать
  • Как настроить VPN-подключение в Windows 10 по IKEv2?

    CityCat4
    @CityCat4 Куратор тега VPN
    //COPY01 EXEC PGM=IEBGENER
    Вот здесь в комментариях есть ссылка на статью, где описано построение туннеля винда-микротик и винда-линух. Там вся проблема в основном в том, что нужно сгенерить сертификаты на каждый комп и их расставить, а убедить юзера поставить сертификат в область компьютера - это еще тот квест. Но стоит его пройти - и все взлетает (если в области компьютера нет других сертификатов)

    Да, "использовать сертификаты компьютеров" - единственный рабочий вариант, причем он не требует никаких шаманских действий с регистром.
    Ответ написан
    Комментировать
  • Как настроить VPN-подключение в Windows 10 по IKEv2?

    ValdikSS
    @ValdikSS
    Вот моя статья 2015 года, по крайней мере, на тот момент Windows подключался к такому серверу без дополнительной конфигурации.
    https://habr.com/ru/post/250859/
    Ответ написан
    23 комментария
  • Как сканировать на МФУ из лотка через WIA (VBA)?

    @theendcomplete
    wind rider
    принципиально ли это делать через VBA?
    я для такой задачи много лет назад создал батник

    set Path=\\Server666\PASSPORTS\%date%
    set Temp=c:\TMP6
    md %Temp%
    md %Path%

    "C:\Program Files (x86)\IrfanView\i_view32.exe" /scanhidden /convert=%Temp%\001.gif

    copy %Temp%\001.gif %Path%\%random%.gif
    del %Temp%\001.gif /Q /F

    сканирует через irfanview, настройки сканирования задаются там же
    Ответ написан
    3 комментария
  • Как сканировать на МФУ из лотка через WIA (VBA)?

    @KTG Автор вопроса
    разобрался.
    "objDev.Properties("Document Handling Select").Value = 1"
    Полностью код в комментариях к вопросу
    WIA ошибка при установке параметра PAGES (VBA). Почему?
    Ответ написан
    Комментировать
  • Как сделать уведомление о завершении работы скрипта?

    @posters Автор вопроса
    Простейший вариант:
    function notification (): void {
        $message = 'Текст сообщения';
        $command = 'msg %username% "'.$message.'"';
        shell_exec("powershell -command [console]::beep(500, 300)");
        shell_exec($command);
    }

    Видимо без установки дополнительных утилит или изменения настроек других вариантов нет.
    Ответ написан
    1 комментарий
  • Как с помощью javascript определить устройство, с которого зашли на сайт?

    And__Smi
    @And__Smi Автор вопроса
    всем спасибо за полезные советы, нашел вот простой, не громоздкий, самое главное(!), скрипт:
    if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) {
        // код для мобильных устройств
      } else {
        // код для обычных устройств
    }
    Ответ написан
    1 комментарий
  • Какая система лучше всего подходит для х86-роутера?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    Остановитесь на debian и openbsd.
    Ответ написан
    Комментировать
  • Какая система лучше всего подходит для х86-роутера?

    gremlintv2
    @gremlintv2
    Если учиться правильным вещам, то FreeBSD или Ubuntu server(mini.iso)(как упрощенный для изучения вариант).
    Если нужно готовое решение с кучей примочек и довольно простое для понимания новичкам, то на мой взгляд лучше Pfsense(вебморда на основе FreeBSD 10 - на youtube по нему есть масса туториалов).
    Ответ написан
    Комментировать
  • Какая система лучше всего подходит для х86-роутера?

    FeNUMe
    @FeNUMe
    Если задача стоит именно в настройке стабильного домашнего роутера на ПК, я бы остановился на pfSense(*BSD) и его форках. Если же хочется еще и поковыряться самому в конфигах, тогда любой линух и вперед изучать iptables.
    Ответ написан
    Комментировать
  • Что думаете про PRestashop?

    @Alesck
    Мы разрабатываем шаблоны PrestaShop.
    Сначала просто переделывали, теперь у нас своих 30+ адаптивных шаблонов и свои модули к ним.
    На престе можно сделать хороший магазин, с программистом и дизайнером, маркетолог тоже не помешает.
    Естественно, получается не дешево, то есть вариант с хорошим магазином дешевле 300-600к я бы не рассматривал.

    На западе считается одной из лучшей CMS наравне с Magento и Opencart. Уступает по популярности Wordpress, но Wordpress блоговый движок и не имеет такого количества функций магазина как PrestaShop.

    Шаблоны и модули не из дешевых если сравнивать с аналогами, но дешевле чем у Magento
    Программистов, умеющих работать с престой не много, те кто работают в основном работают или на биржи, или на запад или студии, поэтому рейт достаточно высок. В среднем 20-30 евродолларов в час. Работы по PrestaShop всегда много.

    Русскоязычная поддержка, скорее мертва чем жива, однако можно найти ответ на большое кол-во вопросов, в англоязычной ветке найти помощь, можно с вероятностью более 90%, для остального фриланс и программисты.

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

    В конечном итоге преста может выйти лучше и дешевле, даже битрикса, зависит от постановки задач и специалистов.

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

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

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

    Плюсы:
    • Большое сообщество
    • Как правило легко разворачивать, устанавливать компоненты и шаблоны
    • Много есть из коробки
    • Опен сорс
    • Много модулей уже написано
    • Качество модулей выше среднего
    • Поддержка выше среднего, для большинства случаев
    • Локализация
    • Много модулей уже написаны для Российского рынка (оплата, доставка и прочее)
    Минусы:
    • Сложности в интеграции (смол и бигдата)
    • Синхронизация с 1с и другими складскими программами сложнее чем в битрикс
    • Не очень популярна в России, хотя еще 1-2 года назад была популярнее, кризис
    • Хороших разработчиков не много
    • Хороший магазин уровня Евросеть, М видео, сделать сложно, но можно, естественно только с командой профи.
    • Требует хорошей поддержки
    Ответ написан
    Комментировать
  • Как в консоли браузера отправить post запрос?

    @StockholmSyndrome
    fetch('test', {
      method: 'POST', 
      headers: {
        "Content-Type": "application/json;odata=verbose",
      }, 
      body: JSON.stringify({
        "__metadata": { "type": "SP.Data.List4.ListItem" },
      })
    });
    Ответ написан
    6 комментариев
  • Нужно API для расчёта стоимости и срока доставки посылок через Почту России

    marconi
    @marconi
    Вопрос старый, но уже решенный. Напишу для тех кто все еще ищет на него ответ. Сейчас у почты есть всё. Если у Вас есть договор используйте api сервиса otpravka.pochta.ru документация в личном кабинете "отправки". Если у Вас нет договора и доступа к api используйте эти два сервиса от Почты России. В одном можно рассчитать стоимость отправки, в другом сроки доставки.
    Расчет сроков доставки
    Расчет стоимости доставки

    К сервисам прилагается документация, из неё следует что ответы можно получить уже и в json.
    У двух этих сервисов есть существенный минус. Все запросы надо делать зная почтовый индекс места назначения.
    При этом нет сервиса поиска индекса по названию населеного пункта... ну или я такой не нашел...
    Ответ написан
    1 комментарий
  • Как задать множество переменным одинаковое значение?

    @entermix
    $var1 = $var2 = $var3 = 0;
    Ответ написан
    Комментировать
  • Как пустить часть трафика через VPN?

    Vindicar
    @Vindicar
    RTFM!
    Есть два подхода. В обоих случаях тебе нужен список заблокированных IP, его можно взять на антизапрете, например.
    Дальше вопрос, как пускать трафик.
    1. На хабре был материал про динамическую подгрузку маршрутов через BGP. Плюс - работает с любыми протоколами, и не требует дополнительной настройки со стороны проксируемого ПО. Минусы - ощутимо сложнее в понимании, на мой взгляд, да и с кроссплатформенностью могут быть проблемы. В статье приведена реализация на роутере Mikrotik.
    2. Использовать файл proxy.pac. Его можно сгенерировать скриптом типа такого:
    #!/bin/bash
    #!/bin/bash
    DNS_SERVER=8.8.8.8
    BLACKLIST_URL="http://antizapret.prostovpn.org/iplist.txt"
    #куда класть файл proxy.pac
    PACDIR=/var/www/html
    TMPLIST=/tmp/iplist.txt
    #домены, которые нужно пускать через прокси независимо от содержимого iplist.txt
    DOMAINS=(\
    rutracker.org \
    facebook.com \
    facebook.net \
    fbcdn.net \
    twitter.com \
    twitter.co \
    t.co \
    twimg.com \
    twitpic.com \
    periscope.tv \
    pscp.tv \
    )
    #качаем чёрный список
    wget -q --tries=10 -O "$TMPLIST" "$BLACKLIST_URL"
    # вытаскиваем IP наших прописанных доменов
    declare -a EXTRAIPS=()
    for domain in "${DOMAINS[@]}"
    do
            dig A "$domain" +short @$DNS_SERVER | grep -v '\.$' >>"$TMPLIST"
    done
    #в чёрном списке есть отдельные IP и есть подсети
    #также чёрный список очень длинный, поэтому кодируем его более компактно.
    IPLIST=`grep -Ex '^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$' "$TMPLIST" | awk '/^[0-9]+/ {split($1,b,/\./); printf("0x%02x%02x%02x%02x,", b[1],b[2],b[3],b[4]);}'`
    SUBNETLIST=`awk '/[0-9.]+\.[0-9]+\.[0-9]+\.[0-9]+\/[0-9]+/ {split($1,p,/\//); printf("[\"%s\", %s], ", p[1], p[2]);}' <"$TMPLIST"`
    #генерируем proxy.pac по шаблону
    #он проверяет домен на вхождение в фиксированные домены, а потом IP по списку.
    function templatePAC {
            NAME=$1
            shift
            DMNLIST=("$@")
            cat >"$PACDIR/$NAME" <<EOF
    function FindProxyForURL(url, host) {
      var domainblacklist = [
    EOF
            for d in "${DMNLIST[@]}"
            do
                    echo "  '$d'," >>"$PACDIR/$NAME"
            done
            cat >>"$PACDIR/$NAME" <<EOF
      ];
      var ipblacklist = [ $IPLIST ];
      var subnetblacklist = [ $SUBNETLIST ];
    
      function endsWith(str, suffix) {
        return str.indexOf(suffix, str.length - suffix.length) !== -1;
      }
      function numberToMask(n) {
        var m=[0,128,192,224,240,248,252,254,255];
        var r=[];
        for (var i=0; i<4; i++) {
          var p = (n > 8) ? 8 : n;
          r[i] = m[p];
          n -= p;
        }
        return r.join(".");
      }
      function maskMatch(ip, mask) {
        var m = numberToMask(mask[1]);
        return isInNet(ip, mask[0], m);
      }
    
      var blocked = false;
      for (var i=0; !blocked && (i<domainblacklist.length); i++)
        blocked = blocked || ((host == domainblacklist[i]) || endsWith(host, '.'+domainblacklist[i]));
      if (!blocked) {
        var ip = dnsResolve(host);
        for (var i=0; !blocked && (i<subnetblacklist.length); i++)
          blocked = blocked || maskMatch(ip, subnetblacklist[i]);
        blocked = blocked || (ipblacklist.indexOf(convert_addr(ip)) != -1);
      }
      if (blocked)
        return "PROXY ТУТ_ТВОЙ_ПРОКСИ:ПОРТ";
      else
        return "DIRECT";
    }
    EOF
    }
    # генерируем файл
    templatePAC proxy.pac "${DOMAINS[@]}"
    
    rm -f "$TMPLIST"

    Тогда можно отдавать этот proxy.pac любым веб-сервером (но лучше внутри VPN - если VPN не работает, то смысл в файле?), и настроить браузер на его использование.
    Минусы: работает только с браузерами, требует наличия вебсервера и полноценного прокси-сервера внутри VPN-сети (т.е. просто арендованный VPN не подойдёт, нужен VPS). Но мне показалось это проще в понимании, чем возня с BGP, да и требуется только наличие современного браузера и VPN клиента, без привязки к роутеру. Можно хоть на ноуте настроить, как я сделал.
    Ответ написан
    Комментировать
  • Как получить доступ к ресурсам хоста из контейнера docker?

    @freelancer007 Автор вопроса
    Решение было следующим, может ктото в поиске и пригодится)
    Контейнеру назначил внутренний статический IP 172.16.0.5
    и в UFW создал правило
    ufw allow from 172.16.0.5 to any port 7500
    Ответ написан
    Комментировать
  • Как правильно устанавливать что-либо в Docker контейнеры?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    2 + 3, даже если это на один раз. Потому что часто один превращается в "не один".
    Ответ написан
    1 комментарий
  • Как правильно устанавливать что-либо в Docker контейнеры?

    1. Если это на 1 раз, то №1.
    2. Если понадобится более 1 раза, то №2. Там несложно: всего 2 инструкции: FROM (имя исходного образа), и RUN и там как в bash файле команды apt-get update && apt-get install XXX && ...
    Ответ написан
    Комментировать
  • Как правильно использовать Docker для веб разработки?

    zvd
    @zvd
    Software developer interesting in DevOps
    Добрый день.
    Все, как вы их назвали, «задачи» должны быть по разным контейнерам.

    1. Что брать за базовый образ?
    Что используете то и берите. Используете в работе Debian? Берите Debian ( https://registry.hub.docker.com/_/debian/ )
    2. Чтобы создать свой базовый образ который будете в дальнейшем использовать для приложения, вот вам пример Dockerfile:
    #
    # MyBaseimage Dockerfile
    #
    
    # Pull base image.
    FROM ubuntu:14.04
    
    MAINTAINER Your Name <your.email@gmail.maybe>
    
    RUN apt-get update
    RUN apt-get upgrade -y
    
    RUN apt-get install -y language-pack-en
    ENV LANGUAGE en_US.UTF-8
    ENV LANG en_US.UTF-8
    ENV LC_ALL en_US.UTF-8
    
    RUN locale-gen en_US.UTF-8
    RUN dpkg-reconfigure locales
    
    RUN echo "Etc/UTC" > /etc/timezone
    RUN dpkg-reconfigure -f noninteractive tzdata
    
    RUN apt-get install -y build-essential
    RUN apt-get install -y python python-dev python-setuptools python-pip python-virtualenv
    RUN apt-get install -y libxml2-dev wget
    RUN apt-get install -y libpcre3
    RUN apt-get install -y libpcre3-dev
    RUN apt-get install -y libssl-dev
    RUN apt-get install -y libncurses5-dev
    RUN apt-get install -y git git-core
    RUN apt-get install -y libpq-dev
    
    # install nginx
    RUN apt-get install -y software-properties-common python-software-properties
    RUN apt-get update

    Собрать image в директории где у вас лежит Dockerfile
    docker build -t your_docker_account/your_baseimage .

    3. Dockerfile для сборки вашего образа уже с приложением
    #
    # MyApp Dockerfile
    #
    
    # Pull base image.
    FROM your_docker_account/your_baseimage
    
    MAINTAINER Your Name <your.email@gmail.maybe>
    
    # Set instructions on build.
    RUN virtualenv /env
    ADD ./ /code
    
    RUN cd /code; /env/bin/python setup.py install
    RUN cp /code/config/config.yml.docker_example /etc/code/config.yml
    
    # Expose ports.
    EXPOSE 8484
    WORKDIR /code
    CMD ["/env/bin/python", "app.py"]

    4. Собрать образ с приложением
    docker build -t your_docker_account/your_app_container .

    5. Запустить контейнер с БД, в качестве примера PostgreSQL
    docker run -p :5432:5432 --name my_postgresdb_container -e POSTGRESQL_DB=mydb_name -e POSTGRESQL_USER=mydb_user -e POSTGRESQL_PASS=super_secret_password -d kamui/postgresql

    для mariadb аналонично, контейнеры ищем здесь: https://registry.hub.docker.com/
    6. Запустить контейнер с вашим приложением, пример:
    docker run -d -p :5000:5000 \
      --name my_app_container \
      --link my_postgresdb_container:postgresdb \
      -e DOCKERDB_ENV_POSTGRESQL_DB=mydb_name \
      -e DOCKERDB_ENV_POSTGRESQL_USER=mydb_user \
      -e DOCKERDB_ENV_POSTGRESQL_PASS=super_secret_password \
      your_docker_account/your_app_container

    7. Подключиться к запущенному контейнеру с приложением
    docker exec -it your_app_container /bin/bash
    8. Читать stdout запущенного приложения в контейнере
    docker logs -f your_app_container

    + Чтобы автоматизировать запуск всех необходимых контейнеров берите Docker Compose ( https://docs.docker.com/compose/ )
    Пример файла конфигурации:
    your_app:
      build: .
      links:
        - postgresdb
      ports:
        - "5000:5000"
      environment:
        DOCKERDB_ENV_POSTGRESQL_DB: mydb_name
        DOCKERDB_ENV_POSTGRESQL_USER: mydb_user
        DOCKERDB_ENV_POSTGRESQL_PASS: super_secret_password
    postgresdb:
      image: kamui/postgresql
      ports:
        - "5432:5432"
      environment:
        POSTGRESQL_DB: mydb_name
        POSTGRESQL_USER: mydb_user
        POSTGRESQL_PASS: super_secret_password

    И теперь вместо пунктов 5 + 6 где мы запускали контейнеры мы можем всё стартануть одной командой
    docker-compose up

    + можно смонтировать код в контейнер и разрабатывать непосредственно в docker'контейнере.
    Надеюсь чем-то вам помог.
    Ответ написан
    3 комментария