Ответы пользователя по тегу HTML
  • Подтверждение пароля через сканер отпечатка пальцем?

    SynCap
    @SynCap
    Делаю интернет с 1998 года
    Быстрый ответ - жирным шрифтом, подробнее - читай все.

    Сканер отпечатков - устройство в устройстве, работа с ним производится на уровне операционной системы. Для работы с такими вещами есть свой апи (API - Application Programming/Protocol Interface).
    В мобильном приложении есть апи работы с различными устройствами, в том числе и с таким сканером. Для каждой ОС (Андроид/Ай/Черника/....) уже есть стандартизированные, но для каждой - свой. НО - вызовы апи доступны из React Native/Cordova/Veex, т.е. на Javascript.
    В ноутбуках и досктопах тоже есть, но там сложнее - с каждым сканером под каждую ОС идет свой драйвер со своим апи (читай - свой протокл, свой порядок соглашений и набор команд), нет единого стандарта, поэтому пока (?) нет интерфейса для "настольных" браузеров.
    В принципе, на дескотопе возможно определить наличие сканера и работать с ним из приложений на Electron, но нужно обязательно разобраться как правильно подвязывать хардварные вызовы из NodeJS для различных систем и строить билды для разных ОС с разными "прокладками". Однако и такой подход сработает только на Макоси, т.е. не "серебряная пуля" - нет единого стандарта для Windows и уж тем более для Linux.
    Ответ написан
    Комментировать
  • Как вы боретесь с удалением папок node_modules в Windows?

    SynCap
    @SynCap
    Делаю интернет с 1998 года
    Тема в интернетах давно и широко освещаема, народ давно прикурил, что не все так просто, как кажется на первый взгляд, и нет "серебряной пули".

    `RimRaf` - хорошо, но не очень: использовать можно либо из скрипта, либо вручную на каждый проект, т.е. перед массовым бэкапом можно использовать лишь в составе некое "подготовительного" инструмента. И таки да - есть проблемы на разных конкретных конфигурациях. "Platform independence" не получился. По сути тех же результатов можно получить делая `rm -rf node_modules` в оболочке `bash` или `rmdir /S node_modules` в `cmd`, причем `rmdir` в большинстве случаев не вспомнит про длину строки, даже если для этого есть поводы.

    `npm dedupe` - тоже очень хорошо, но также не очень. Это неплохо делать в каждом проекте после `install` или после каждого изменения зависимостей. В противном случае перекур на сутки - просто гарантирован.

    1.

    Если доступна оболочка Bash на основе CygWin (если пользуетесь Git, скорее всего она - оболочка баша - есть, но не факт) решение, которое лежит на поверхности:

    find . -name "node_modules" -exec rm -rf '{}' +

    плюсик в конце - так надо: автоматом подтаскивает завершение (перевод) строки, можно заменить на \;

    Попадался и такой вариант:

    #!/bin/bash
    
    delete-all-dep-folders() {
      # `-prune` prevents building up lists of `node_modules` inside `node_modules`
      find ${1:-.} -type d -name "node_modules" -prune -exec rm -rf '{}' \; -exec echo 'Deleted {}' \;
      find ${1:-.} -type d -name "bower_components" -prune -exec rm -rf '{}' \; -exec echo 'Deleted {}' \;
    }


    После запуска скрипта (можно просто скопипастить в окошко баша) можно без параметров запустить команду `delete-all-dep-folders` в нужной папке или первым параметром задать путь:

    $ delete-all-dep-folders /path/to/project-root

    Напомню: если `bash` под cygwin, только тогда ему плевать на длину пути. Насколько это так, вы должны знать сами - где и какую версию Гита/Баша вы брали, там и надо читать: в интернетах найдется куча версий баша, скомпилированных с использованием нативных библиотек Windows, которые не используют cygwin!!!

    2.

    PowerShell. Якобы та самая "серебрянная пуля" от МелкоСофт. Вроде бы, плевать он хотел на длину пути. Якобы.

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

    Вариант:

    Get-ChildItem -Path "." -Include "node_modules" -Recurse -File:$false  | Get-ChildItem -Recurse | Remove-Item -Recurse  -Force


    Вполне рабочий, НО версия PowerShell >4.0. Более старые версии даже с ключом `-Force` не могут удалить НЕпустые папки.

    Уточню: несмотря на то, что Remove-Item (он же del, он же ...) имеет возможность обозначать фильтры и работать рекурсивно, тем не менее необходимость конвейера (знак палки между командами) все-таки есть, и на эти грабли наступало уже очень много народу еще до того, как на ms-tech и в документации была признано и отмечено, что таки да, проблема есть и в качестве решения предлагается использовать конвейер, т.е. – через палку надо делать, и не делать тупо Delete.

    И таки да, я нарвался на случай, когда это не сработало - на USB диске (NTFS) лежал старый проект на `Meteor`. Актуальности никакой, для истории тоже не находка, но он единственный усиленно сопротивлялся 4 с лишним часа. После чего мне надоело доискиваться причин такой стойкости и старый (честно купленный еще в прошлом веке) добрый Total Commander справился со всем проектом полностью за 1.897s.

    3.

    Победитель конкурса - Total Commander с настройками дисковых операций с помощью собственных (НЕ системных) функций. Не верьте документации: Windows, начиная с Vista, выполняет при дисковых операциях значительно больше "левых" действий для красоты, чем Commander, посему операции "его" функциями выполняются быстрее, чем "её" функциями. Совсем хорошо, если отключить в командере поддержку файлов описаний содержимого каталогов. Также, когда-то давно, мне попадался на глаза подключаемый модуль для командера, который заменял/дополнял поиск файлов на другой, в котором используется другая библиотека для работы с регулярными выражениями и дисковые операции можно выполнять сразу над результатами поиска без перекладывания во временную панель.

    4.

    Или мы не программисты? Пишем свой велосипед по рекурсивному обходу каталогов и `rimraf`-им чего надо. При этом не забываем положить сей золотой ключик отдельно, чтобы мимоходом не прибить его зависимости, и делаем для него консольный вызов. Успешно выкладываем в NPM и собираем звезды на Гитхабе. Дерзайте, а я настоящий программист, мне - лень, когда все просто и понятно :)
    Ответ написан
    Комментировать
  • Как сделать динамический размер фотографий в блоке?

    SynCap
    @SynCap
    Делаю интернет с 1998 года
    Ответ написан
    Комментировать
  • Как сохранять дату с сайта в календарь?

    SynCap
    @SynCap
    Делаю интернет с 1998 года
    Примерно так:
    <a href="cal:2017-03-23">23 марта</a>

    23 марта

    Если установлен софт, который работает с календарями и в браузере этот софт привязан к обработчику таких урлов, то будет запускаться. По идее Outlook при установке калечит все префиксы во всех найденых браузерах, в Сафаре на МакОСи и иОСе такие ссылки изначально привязаны к стандартному календарю, но могут быть изменены при установке другого софта. В большинстве случаев на Виндах и Линуксах этот префикс в браузерах не задействован и большинство браузеров спросят человека - "Чего запустить изволите?"

    * разный софт по-разному обрабатывает значения ссылок
    * обработчиком этих ссылок в браузере может быть назначен какой-нибудь сайт, например "Гуглокалендарь", все зависит от настроек браузера на клиентской машине
    * на Андроидах/Айфонах тоже работает, и тоже зависит от настроек
    * что и как сработает - нужно читать отдельно, единого стандарта нет.
    Ответ написан
    Комментировать
  • Как провести валидацию HTML (Gulp)?

    SynCap
    @SynCap
    Делаю интернет с 1998 года
    По дефолту gulp-htmllint берет правила проверки из `.htmllintrc`.
    Для его создания можно использовать `htmllint-cli
    Остальное подправить ручками и запускать таск без указания дополнительных опций.
    Ответ написан
    Комментировать
  • Как определить страну и автоматически выбрать значения из select?

    SynCap
    @SynCap
    Делаю интернет с 1998 года
    Яндекс в помощь: codepen.io/SynCap/full/oBjrpv
    Бесплатно, полностью в браузере, никакого шаманства на серверной стороне.

    PS: если не ошибаюсь, то код валюты в том же запросе можно получить, а если немного поколдовать, то и текущий курс валют. Как впихнуть в Select, полагаю, учить не надо, если что - список всех стран: https://ru.wikipedia.org/wiki/Список_стран
    Ответ написан
    Комментировать
  • Как подписывать разработанные сайты?

    SynCap
    @SynCap
    Делаю интернет с 1998 года
    Донести до заказчика, что твоя подпись - аналог подписи Рембранта, которая поможет другим, его коллегам, при выборе исполнителя.

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

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

    Самая лучшая защита - работать так, чтобы клиенты могли хвастаться: "смотри, кто мне сайт разрабатывал!" :)
    Ответ написан
    1 комментарий
  • Как с помощью jquery отсортировать блоки в нужном порядке при изменении размера экрана?

    SynCap
    @SynCap
    Делаю интернет с 1998 года
    Там где flex недоступен, нужно именно javascript'ом.
    Например с помощью вот такой штуки vnjs.net/www/project/freewall
    Ответ написан
    Комментировать
  • Как урезать свой перфекционизм?

    SynCap
    @SynCap
    Делаю интернет с 1998 года
    Столько комментариев не видел ни в одном ответе.
    Сразу напрашивается вывод о соотношении урезанного перфекционизма к профессионализму.

    Сам прокристинатор со стажем, поэтому не буду давать советы, а приведу цитаты:
    Кот ежедневно вылизывает свое хозяйство, а профи сразу делает хорошо. Если сделано нехорошо, значит не профи, возможно, опыт этого проекта сделает тебя профи на следующем проекте. (старый препод по проектированию микропроцессоров, никогда не знал его фамилию)
    Опыт сын ошибок трудных, а гений - парадоксов друг. (А.Пушкин)
    Лучшее - враг хорошего, давно сказано (народная мудрость)
    А хорошее всегда полезно (т.е. работает) - давно замечено, нужное всегда просто, непростое - не нужно. (Михаил Калашников). И того же источника: простое сделать всегда сложнее, а сложное сделать гораздо проще.
    Профессионала отличает выбор инструмента и отношение к нему. (А. Макаренко)
    Правильно организованный процесс - хороший повод для успеха. (Генри Форд) и того же источника самую знаменитую фразу про цвет автомобиля переделаем: Рефакторинг может быть любой величины, главное, чтобы это был 0.
    Хорошее дело браком не назовут (немного не в тему, но в нашем случае - подойдет)

    В основном согласен с остальными специалистами по перфекционизму и прокристинации: главное следование цели в установленные сроки. Это наука, а как это сделать - уже исскуство, для которого нужны воля и талант. :)

    Успехов всем и не вешать нос!
    Ответ написан
    2 комментария
  • Как написать приложение на ios на js и html?

    SynCap
    @SynCap
    Делаю интернет с 1998 года
    Apache Cordova или Node-Webkit от Intel. Оба в параллель позволяют собирать и для Android, и для iOS.
    Есть примеры довольно навороченных коммерческих играшек собранных на этих инструментах.
    Разработку можно вести в любой среде, отлаживать на симуляторе или iPhone, Mac машина совершенно не обязательна.
    Ответ написан
    Комментировать
  • Как вы оптимизируете svg и создаете svg спрайты?

    SynCap
    @SynCap
    Делаю интернет с 1998 года
    https://github.com/tars/tars
    не только с SVG, вообще швейцарский нож для сложной верстки, но основная идея - именно грамотное использование SVG спрайтов
    Ответ написан
    Комментировать
  • Оптимизация верстки и что актуально на средину 2015 года?

    SynCap
    @SynCap
    Делаю интернет с 1998 года
    1. caniuse.com/#search=box-sizing, а потом, как самому удобнее, и если действительно надо. В принципе 15 лет назад вопроса не возникало - верстали таблицами :)
    2. опять смотрим canisue сначала, а потом думаем. Вообще-то хороший верстальщик задает размер базового шрифта в pt (не px!), а все остальные размеры ставит в em и %. И только в крайнем случае (картинки, svg, подгонка общей ширины, canvas для графиков с точной математикой) –px.
      rem, конечно, более удобная и понятная единица, но будем подождать, также как и vh, vw, vmax, vmin - очень заманчивые штуки, особенно для мобилок и планшетов, но... caniuse.com
    3. Обязательно!!! Городушки в стиле Бутстрап оправданы лишь отчасти, нужно стремиться к семантическому коду, страница должна нормально читаться с отключенными стилями, легко конвертиться в другие форматы, легко разбираться сторонними скриптами на стороне браузера (плагинами) и т.п. Это также важно и для СЕО - и Гугл, и Яндекс больше любят чистый код! А про хай-лоад вообще молчу. Ну, а если речь зайдет об одностраничниках и т.п. - тут вообще ясность превыше всего.

    4. какая, хрен, разница, если в серьезном проекте код CSS минифицируется? В большом проекте действительно имеет смысл смотреть какие свойства в каком виде быстрее обрабатываются браузером и если в stylesheet пара миллионов правил, то обязательно нужно минификатору указывать - какие свойства объединять в одно правило, а какие оставлять как есть. А для себя: LESS, SCSS, css-comb. В принципе основное правило уже лет 15 как никто не отменял: если ставишь сразу несколько параметров (например, при инициализации базовых шрифтов), то - сокращенный, если меняешь один-два параметра - то отдельно. Что тут обсуждать?

    5. разница есть, и существенная: в большинстве браузеров стили применяются именно в том порядке, в каком указаны, и если стили имеют свойства со взаимоисключающими значениями - то применено бедет то правило, что указано в стиле стоящем последним!!!



    Вообще-то Ваш вопрос из разряда - "чем арбуз лучше дыни" или "что вкуснее - колбаса или конфеты" :)
    Ответ написан
    Комментировать