Задать вопрос
  • Ошибка в FF DOMException: "The quota has been exceeded."?

    spmbt
    @spmbt
    Наблюдал такое в Dev версии Firefox 85.0b4 после длительного пользования, более месяца. Не исключено, что в стабильной версии тоже будет проявляться, но ошибка, видимо, накапливаемая за долгое время, поэтому не знаю, как повторить.

    При этом, в неиспользуемой стабильной версии Firefox и в используемой стабильной Chrome - всё нормально.

    Проявляется в том, что единственная запись небольшого безобидного значения в localStorage приводит к последующей невозможности записи по ошибке "quota". Проверка реального объёма скриптом записывания в Storage всё более крупного объёма данных показывает, что, в самом деле, ничего записать нельзя. После localStorage.clear() снова оказывается возможной запись, но до меньших пределов, чем прописано в dom.storage.default_quota. Со временем, похоже, есть тенденция этому пределу сокращаться.

    Чтению имеющихся записей это не мешает, но удаётся записать до ошибки или очень мало КБ (5-100), или не даёт писать ошибка. indexedDB при этом совершенно пустая на домене, есть лишь немного cookie.

    При этом на другом домене этого же браузера всё работает отлично, как и в Хроме.

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

    А описать багрепорт невозможно, т.к. неизвестна процедура воспроизведения.
    Ответ написан
    Комментировать
  • В чем плюс использования redux-saga для приложения в отличии от обычного redux?

    spmbt
    @spmbt
    Обеспечивает корректность асинхронных запросов к сервисам. В чистом Редаксе теоретически тоже можно, но трудно выстроить правильную архитектуру при числе запросов к API более 1. Другие альтернативы корректных архитектур - MobX, redux-thunk.
    Ответ написан
    Комментировать
  • Эмуляторы для разработки на Smart TV?

    spmbt
    @spmbt
    1) Хороших эмуляторов нет. Разработка под эмулятор будет по стилям отличаться от реальных ТВ. Делать под эмулятор - фактически, тратить время, т.к. потом - переделывать.
    2) Которые есть - имеются строго под заданный бренд и заданное поколение (версию) своих телевизоров. Искать их - на сайтах для разработчиков у производителей. У мелких (Toshiba и китайские ноунеймы), возможно, эмуляторов не найдётся. У Самсунга и LG точно есть. Но с особенностью - что может не запуститься. Лучше всего их софт для разработчиков работает (хотя и плохо) под Windows.
    3) Версий ТВ уже накопилось у них штук по 5-8, при этом все дружно начинают игнорировать поддержку ТВ старее примерно 4-5 лет. Sony - так вообще перешла на Android-TV, что неплохо, но добавляет зоопарка разнородных систем.

    Итого, чтобы разрабатывать под Smart TV, надо

    1) брать IDE для разработки для каждого бренда каждое своё (иначе Самсунг просто не даст тестировать на своих новых ТВ 2015 года и новее, к примеру),

    2) регистрироваться как разработчик (иначе - п.1), забыть про "свободную" публикацию приложений - разработка, если не выложена в магазин вендора, запускается только на ТВ разработчика под его логином.

    3) понакупить ТВ нужных систем - в первую очередь - Самсунг, LG и Сони в порядке
    приоритета. Старые версии можно игнорировать, но без ТВ вам нереально будет пройти модерацию при выкладке приложения в магазин. И если правда вам нужно приложение в магазине - нужно назваться компанией (формально, для вендора) и приготовиться на 1-6 месяцев переписки с модераторами. Они сами могут ошибаться легко и не пропускать. Но если вы ошибаетесь, скорость ответов от них для вас резко падает - с 3 дней до 3 недель, скажем. И считайте, что нужно пройти 5-10 попыток выложить приложение (т.к. найдя 1 ошибку или псевдоошибку, следующие уже не ищут). Разумеется, с соблюдением авторских прав владельцев контента. У Apple TV - наверное, похожая отдельная песня. ( https://www.digger.ru/things/5-prichin-ne-pokupat-... )

    Можно, конечно, распространять полулегально (хотя что считать легальностью?) разработческие версии, но года с 14-го Самсунг и ЛГ поставили ограничение, что собранное приложение для разработчика запускается, но не больше полугода (примерно). Потом надо снова пересобрать приложение. Другие пересобрать могут, т.е. распространять тогда надо исходный код с инструкциями и скриптами сборки (Node JS). Но без ТВ это у них не получится. А у Самсунга запустить из-под другого аккаунта - наверное, можно, ведь модераторы как-то проверяют. А просто разработчики - не уверен. Во всяком случае, могут и этот канал закрыть. (Или вы раз в полгода обновляете разработческую сборку, а другие тоже заходят с паролями разработчиков. Разумеется, эту "нездоровую движуху" вендор увидит по количеству запусков и аккаунтов и может, например, перекрыть. Т.е. вы этим способом не можете просто взять, написать и пользоваться с распространением - ТВ в этом плане не свободны. Неизмеримо проще просто использовать ТВ как монитор 4К, а сделать просто одно веб-приложение - игра, потоковое видео, прикладное - неважно.).

    С Тошибой запустить - мороки поменьше, запретных правил не так много. И вообще, чем меньше сил у вендора, тем меньше проблем с разработкой под него. А монстры уж очень обкладывают сертификациями, цифровыми подписями собранное приложение. И из-за этого сертификата не факт, что для Самсунга 2015+ получится собрать своими скриптами приложение. Для LG 2014 у меня получалось сделать из командной строки Нодой. И Самсунг тогда ещё не имел сертификации приложения (некий модуль в IDE, дающий подпись на базе вашего пароля разработчика) и тоже мог собираться без IDE.

    Для Андроид-ТВ-приставок приложения, проходящие через Аппстор Гугла - наверное, самый практичный вариант для себя и знакомых, имеющих такие же приставки. Но все они слабые (раз в 10 слабее компа или в 5 - смартфона) и быстро стареют, поэтому, в основном, игра не стоит свеч. Поэтому так мало приложений в магазинах вендоров. Там работают в основном фильмо- или ТВ-прокатчики, могущие позволить парк ТВ для разработки.

    Не всё так просто в королевстве датском.

    Тут https://en.wikipedia.org/wiki/List_of_smart_TV_pla... списки зоопарка. Большинство - устаревшие платформы. Актуальные - Android TV, Smart TV Alliance, Tizen OS for TV и Samsung Smart TV (Orsay OS) не для Тайзенов (выпускаются и сейчас).
    Ответ написан
    2 комментария
  • Почему gulp (v4) выдает "Did you forget to signal async completion?"?

    spmbt
    @spmbt
    Нужно запустить продолжение процесса:

    function cleanSassBlocks(f) { f();
        arrBlocksNames.forEach(function(blocksName) {
            return gulp.src(blocksName + '/**/*.css' )
                .pipe(clean({force: true}));
        }); 
    ...


    (как подсказано в https://github.com/sindresorhus/del/issues/45#issu... )
    Ответ написан
    Комментировать
  • Как различать объект DOM и объект Object в JS?

    spmbt
    @spmbt Автор вопроса
    > document.body+''
    "[object HTMLBodyElement]"
    > document.querySelector('div')+''
    "[object HTMLDivElement]"
    > document.querySelector('span')+''
    "[object HTMLSpanElement]"


    Или то же самое - .toString() (это в Firefox) - начинает становиться некоторым стандартом. Раньше JQuery 1.x определяла DOM-элемент наличием свойства .attributes, когда разброс по выдачам у браузеров был велик.
    Ответ написан
    Комментировать
  • Как выровнять текст относительно маркера в маркированном списке?

    spmbt
    @spmbt
    + text-indent (смещение 1-й строки)
    Ответ написан
    Комментировать
  • Необычное поведение JS в Firefox, почему так?

    spmbt
    @spmbt
    У Fx ограничение времени исполнения скрипта - 10 с. Увеличить его можно, поставив в about:config переменную
    dom.max_script_run_time
    в нужное значение. (Быстрее не будет, но и прерываться будет не так часто.)
    Ответ написан
  • Ноутбук в качестве второго монитора на Windows 7. Реально?

    spmbt
    @spmbt
    Maxivista www.thg.ru/display/maxivista/maxivista-01.html
    Air Display getairdisplay.com (Win7+)
    (обе - не только для планшетов)
    www.zoneos.com/zonescreen.htm - для компов, бесплатна;
    Если выводить на планшеты (расширение вопроса) Android или iPad, то ScreenSlider, iDisplay, Splashtop Xdisplay.
    Ответ написан
    Комментировать
  • Прижать футер книзу страницы

    spmbt
    @spmbt
    ...при условии, что футер должен быть частью основного блока, который располагается по центру страницы и сверху/снизу от него должны быть отступы.

    Основное правило гласит, что все старшие и соседние элементы страницы должны быть с процентными стилями. Если, конечно, хотите сделать это на CSS без JS. Например, даже футер Хабра прилепляется к низу, если скриптами и юзерстилями записать резметке страницы такие правила. Бывает такая раскладка, что процентные стили расставить будет невозможно.

    В Вашем случае - то, что по центру (по горизонтали) - несущественно. А вот Хедер и футер у вас должны быть сделаны 0% высоты, а остальными стилями вставить в них нужную ненулевую высоту блоков. Пример того, как это делается со страницами Хабра, описан здесь: http://habrahabr.ru/post/151320/ чтобы увидеть, как работает - поставить скрипт (лучше на Firefox или старую Оперу, там надёжнее работало) и перейти на короткую страницу, например, эту https://auth.habrahabr.ru/settings/privacy/ (до вчера работали QA, где было много коротких страниц). Так же будут работать и короткие статьи и прочее, например, страница подготовки статьи.

    Ответ написан
    Комментировать
  • Масимально простое приложение для уменьшения картинок?

    spmbt
    @spmbt
    www.picresize.com/
    и подобные (онлайн-сервисы)
    Ответ написан
    Комментировать
  • Как убрать из обработки один java script на сайте?

    spmbt
    @spmbt
    stackoverflow.com/questions/3141064/how-to-stop-all-timeouts-and-intervals-using-javascript
    В простых, но частных случаях помогает clearTimeout(1); для Fx и clearTimeout(0); для Chrome.
    Ответ написан
    Комментировать
  • Вопрос к администрации Хабра или Очередная идея про «Убийцу Фейсбука»

    spmbt
    @spmbt
    Если никто не будет против, но Вы так и не избавитесь от ощущения плагиата, могут помочь регулярные покаятельные исповеди, тексты которых можно будет собирать на собственных рекламных страничках или в блоге «Я пиарюсь». Тогда окружающие будут всё больше и больше проникаться вашими страданиями и со временем — всё больше и больше прощать.
    Ответ написан
    1 комментарий
  • Выбор ноутбука на следующие 5-ть лет

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

    На мой взгляд, ноутбук несколько теряет смысл если начинает не помещаться в формат сумки под документы A4 (это 14") — его сложнее перевозить. Он компактный — в этом плюс, легко переносится из комнаты в комнату, но медленнее и шумнее компьютера в отдельном системном блоке. И не сделано ещё хорошего ноута на 5 лет — процессоры только-только упали в теплорассеянии, как и видеокарты (NVidia 630 год назад), SSD не устоялись в качестве и цене, экраны — только начинают переходить на 1920. Поэтому года через 2-3 появятся и будут конкурировать более совершенные, лёгкие и дешёвые модели. Лучше брать ноут на 2 года или субноут под мобильные задачи.
    Ответ написан
    1 комментарий
  • Event когда чужой ajax завершил работу, jQuery?

    spmbt
    @spmbt
    onreadystatechange (только он может не во всех браузерах работать), не тот, который имеет отношение к аяксу, а этот: www.developphp.com/view_lesson.php?v=867

    developer.mozilla.org/en-US/docs/Web/Reference/Events/readystatechange
    Ответ написан
    1 комментарий
  • Вставить пустую строку в хабраредакторе

    spmbt
    @spmbt
    Это сделано сознательно, чтобы горе-сеошники не привлекали внимание пустыми промежутками и лента шла сплошной. Есть как минимум 3 HTML-способа обойти это в рамках статей но я не советовал бы пользоваться ни одним из них.
    Ответ написан
    Комментировать
  • Как организовать javascript код?

    spmbt
    @spmbt
    Если код раскладывается на дерево согласно зависимостям: общий код — в корне, частные — в подкаталогах, то можно так и хранить. Если хочется держать в одном каталоге, то или дерево подкаталогов дублируется там, или всё в одной куче, а вытаскивание из неё организуется через зависимости. Если частный код или плагин употребляется в более одном месте, его переносят к общему корню каталогов. Зависимости можно визуализировать в одном JSON-файле, чтобы скрипт мог доставать без ручной правки кодов во многих местах. Аналогичный вопрос часто свстаёт в среднесложных системах с более 2 десятками файлов. По теме, скорее, лучше гуглить на @require JS", «commonJS», AMD, хотя в них не решается вопрос о путях к файлам — это всё на усмотрение программиста.
    Ответ написан
    2 комментария
  • Как оградить HTML тег от воздействия css стилизации?

    spmbt
    @spmbt
    Назвать все дивы и прочие общие имена тегов своими именами, которым прописать необходимые свои стили и стили оригинальных тегов по умолчанию. Например, DIV заменить на MYAPPDIV, SPAN на MYAPPSPAN и т.д.
    Ответ написан
    Комментировать
  • Transcend WiFi SDHC в качестве локального сервера?

    spmbt
    @spmbt
    Нужен ещё радиатор, чтобы отводить тепло. И для повышения мощности я бы рекомендовал вам установить 15-20 карточек на одном радиаторе, чтобы иметь возможность делать сложные расчёты и майнить биткойны. Вот, посмотрите, как суперкомпьютеры устроены, сколько тепла выделяют.
    Ответ написан
    1 комментарий