• В чем разница между RIA и SPA?

    @napa3um
    И RIA, и SPA обозначают веб-приложения (приложения, использующие стек веб-технологий), но SPA выполняется в браузере (навигация осуществляется без перезагрузки страниц, клиентский код занимается изменением состояния интерфейса и подгрузкой в него нужных данных), а RIA - в виде нативного для операционной системы приложения (.exe, грубо говоря).

    К примеру, приложение, написанное на Angular (с использованием ng-route) - это SPA, а оно же, завёрнутое в node-webkit или в electron и выполняемое в виде нативного приложения, - RIA. Сайт, написанный на Flash/Flex - это SPA, а эта же флешка, завёрнутая в Adobe AIR - уже RIA.

    (Производство баззвордов в веб-разработке на этом не прекратилось, и сейчас набирает обороты термин PWA, Progressive Web App, которое "почти как SPA, но круче" - помимо клиентского роутера необходимо обеспечить веб-приложению возможность кешироваться и работать в оффлайне, чем достигаются плюсы, обычно присущие RIA по сравнению с SPA.)
    Ответ написан
    Комментировать
  • От чего зависит полноэкранный режим в embed видео youtube?

    @esc Автор вопроса
    allowfullscreen параметр в коде iframe помог.

    iframe width="300" height="250" src="//www.youtube.com/embed/..." frameborder="0" allowfullscreen
    Ответ написан
    Комментировать
  • Закрыть все кроме 22, 80, 5432 портов через iptables?

    cjey
    @cjey
    должно получиться что-то вроде этого
    # Настраиваем политики по умолчанию
    iptables -P INPUT DROP
    iptables -P OUTPUT DROP
    iptables -P FORWARD DROP

    # удаляем все имеющиеся правила
    iptables -F
    iptables -t nat -F
    iptables -t mangle -F

    iptables -X
    iptables -t nat -X
    iptables -t mangle -X

    # правила входящих соединений
    iptables -A INPUT -i lo -j ACCEPT
    iptables -A INPUT -i eth0 --match state --state ESTABLISHED,RELATED -j ACCEPT
    iptables -A INPUT -i eth0 -p tcp --dport 80 --match state --state NEW -j ACCEPT
    iptables -A INPUT -i eth0 --source 192.168.0.10 -p tcp --dport 22 --match state --state NEW -j ACCEPT
    iptables -A INPUT -i eth0 --source 192.168.0.10 -p tcp --dport 5432 --match state --state NEW -j ACCEPT

    # Правила исходящих соединений
    iptables -A OUTPUT -o lo -j ACCEPT
    iptables -A OUTPUT -o eth0 --match state --state NEW, ESTABLISHED, RELATED -j ACCEPT

    Ответ написан
    Комментировать
  • Bootstrap-Vue - В чём фишка данного симбиоза?

    copist
    @copist
    Empower people to give
    Расскажите плиз о технологии, и чем развёрнутей, тем лучше.

    Вот захотел ты сделать сайт SPA или PWA с любимой тебе вёрсткой на базе Twitter Bootstrap и любимой библиотеки Vue. Сверстал. Поповеры не появляются, дропдауны не выпадают, модалки не открыватся, формы не валидируются, клики не работают.

    Оригинальный Twitter Bootstrap имеет поддержку интерактивных элементов на Javascript. Реализовано это на библиотеке jQuery. Если делаешь на Vue, придётся подключать ещё и jQuery, что лишняя библиотека на 100+ килобайт, что, конечно, не катастрофа (пока ты не на мобилке).

    Vue работает с состояниями привязывает данные к отображению, а jQuery работает с DOM и событиями. Это вопрос производительности. Работа JQuery начитается когда загружен и распарсен JS и HTML. Работа Vue начинается в тот момент, когда загружен и распарсен JS, то есть чуть раньше. jQuery модифицирует DOM на лету, перестраивая текущий документ. Vue работает с shadow DOM, а затем подсовывает уже готовую интерактивную страницу в пустой документ, что быстрее (разница в секунды на десктопе, десятки секунд на м...).

    Vue реализует компонентную парадигму. Куски страницы являются изолированными кусочками кода (HTML CSS JS), которые цепляются между собой динамически, а обмениваются данными через аттрибуты и события. Предположим, что вы решили следовать компонентной парадигме, тогда согласно вот такому примеру нужно будет увязать самостоятельно все интерактивные компоненты. Компонента-кнопка. Компонента-поле ввода. Компонента-форма. Компонента-контейнер. Получается около 50 компонент. Для некоторых надо будет написать логику на jQuery. Если посмотреть на код jQuery этих микрокомпонент, то он окажется несложный, его вполне можно переписать на Vue. Ну там класс заменить или клик отработать. Когда от кода jQuery не останется следа, его можно будет из проекта удалить.

    И вот получается Bootstrap-Vue

    На компоненты побили. От Jquery избавились. Написано в единой парадигме. Работает быстрее.

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

    Так же будет Не лишним оценить технологию: плюсы, минусы, стоит ли вообще с этим работать ...

    Это сам изучай и сравнивай. Навыки и опыт воздушно-капельным и через Internet не передаётся
    Ответ написан
    4 комментария
  • Raspbian Lite. Можно ли сделать режим киоска?

    vikkyshostak
    @vikkyshostak Автор вопроса
    < This head full of dreams.
    Разобрался сам, очень помогла вот эта инструкция: https://die-antwort.eu/techblog/2017-12-setup-rasp...

    1. Устанавливаем нужные пакеты:

    $ sudo apt-get install --no-install-recommends xserver-xorg x11-xserver-utils xinit openbox chromium-browser

    2. Правим /etc/xdg/openbox/autostart:

    # Отключаем скринсейвер и режим сна для монитора
    xset s off
    xset s noblank
    xset -dpms
    
    # Разрешаем убийство процесса иксов по нажатию Ctrl + Alt + Backspace
    # Чтобы снова запустить: $ sudo startx -- -nocursor
    setxkbmap -option terminate:ctrl_alt_bksp
    
    # Старт браузера Chromium в режиме киоска
    sed -i 's/"exited_cleanly":false/"exited_cleanly":true/' ~/.config/chromium/'Local State'
    sed -i 's/"exited_cleanly":false/"exited_cleanly":true/; s/"exit_type":"[^"]\+"/"exit_type":"Normal"/' ~/.config/chromium/Default/Preferences
    chromium-browser --disable-infobars -incognito --noerrdialogs --kiosk 'http://127.0.0.1:8000/'

    3. Создаём/правим ~/.bash_profile (для автозапуска иксов при перезагрузке):

    [[ -z $DISPLAY && $XDG_VTNR -eq 1 ]] && startx -- -nocursor

    4. Для управления, зажимаем Ctrl + Alt + F2 и переходим в консоль. Обратно в браузер — Ctrl + Alt + F1. Чтобы убить процесс иксов — Ctrl + Alt + Backspace.

    Собственно, на этом всё — перезагрузка и всё работает, как требовалось.

    В случае зависания браузера и невозможности сделать ребут RPi (всякое бывает), можно подключиться по SSH, убить процесс браузера и запустить его заново на мониторе, который подключен к HDMI:
    $ export DISPLAY=:0
    $ sudo chromium-browser -incognito --noerrdialogs --disable-infobars --kiosk http://127.0.0.1:8000/
    Ответ написан
    2 комментария
  • Существует ли portable программа для хранения сниппетов кода без привязки к редактору/IDE?

    DevMan
    @DevMan
    да 100500 их, под любою платформу.
    например, https://www.slant.co/topics/7247/~code-snippets-manager
    Ответ написан
    Комментировать
  • C#. Webbrowser. Некорректно работает Javascript.Как исправить?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    ну.. раз уж WebBrowser а не WebView (как WPF и UWP) то WinForms.. кстати, стоит сразу уточнять подобные нюансы ;)

    дело в том, что в формах, и в WPF - это старый, "добрый", "ослик" (IE, я даже не знаю когда и почему его стали звать "осликом", но какие то годы, это было весьма распространено).. (и ради бога - если у вас вин 10 - не путайте с Edge!!! только в UWP контроле WebView используется движок Edge, и все что ниже НЕ о нем)

    .. ну и раз уж это IE... то:

    1 - для начала проверьте сайт в IE той же системы, где разрабатываете и дебажите программу. если вдруг в "просто" IE, сайт отрабатывает вполне себе адекватно.. см пункт 2 .. если нет.. проверьте в Хроме, и читайте п3.. или ругайтесь с создателями сайта и/или с МС..

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

    - как узнать в том ли проблема?.. ну допустим тупо открыть https://2ip.ru/ .. в десктопном IE и в контроле своей проги - и сравните версии.. и если отличаются, читайте дальше..

    - гуглите про ветку реестра HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION - что и как в нее писать... досадное неудобство, состоит в том, что каждый экзешник, который пользует именно IE, но хочет новейшие фичи - надо там прописать

    - .. что еще досаднее, если вы планируете распространять свое творение (прогу) то ее надо будет обучить самопрописке (освоить работу с реестром)

    3 - как обходной путь - можно сразу начать осваивать CEF# (но по собственному опыту скажу - новичку проще освоить то что описано выше.. в п2.. ;)))

    ps

    2++ ссылки по теме, прости, древние, но с ходу ни че пока не нашел
    https://docs.microsoft.com/en-us/previous-versions...
    davescoolblog.blogspot.ru/2011/04/ie9-document-mod...
    www.thevista.ru/page11442-rezhim_sovmestimosti_i_i...

    pps

    2+++ не помни где это я нарыл.. (да и ослик меня уже лет несколько как утомил).. но см скрин - https://i.imgur.com/nWtlpPC.png

    ... в любом случае копать вам в эту сторону

    ppps

    кроме CEF# есть еще GeckoFX, лично мне в него "въезжать" было проще ;)) ... ну и другие нюансы есть... в частности, есть проекты, требующие поддержки изначального js ...... это редко востребованные ситуации, но я столкнулся ))... фокс оказался вне конкуренции... тем не менее - geckofx освежается на много реже чем CEF#... выбор завист от целей... и возможностей ))

    ну и - UWP с Edge.. для винды оч даже хороший выбор ;)))... полный сапорт в МСДН... опять же короткий путь на витрину "магазина МС"... и ни каких "корпоративных" заморочек с версионностью движка... ;)))

    pppps

    плохая новость... ваша ссылка из текста вопроса - в "осле" 10ки (классическом IE) без всякого ограничения версионности - работает не адекватно.. так что либо ругачки с разрабами сайта/МС.. либо смена инструмента... WinForms/WPF с дефолтным контролом - вам не помогут..

    в Edge, Chrome, Firefox - все пучком... то есть либо UWP (со встроенным Edge, и вагоном халявы) либо GeckoFx или CEF#

    этот вердикт окончательный
    Ответ написан
    1 комментарий
  • SSDP Discovery Service - что это?

    DmZ
    @DmZ
    SSDP используется для поиска UPnP устройств (Universal Plug and Play)

    1. Обычно не дальше первого роутера
    2. Можно притворится любым UPnP сервером (например лампочкой). Если очень хочется ковриком — то есть вид устройсва Basic (без какого либо управления), которому можно назначить имя «коврик».

    Все стандартные типы устройств upnp.org/sdcps-and-certification/standards/sdcps/
    Ответ написан
    Комментировать
  • Как узнать ip по mac-адресу?

    @sublime
    Можно попробовать вот так (для Windows, в консоли)
    Запустите пинг на бродкастовый адрес вашей сети.
    Например если у вас сеть 192.168.0.0 с маской 255.255.255.0, ваш адрес тогда будет 192.168.0.1-254, а бродкастовый - самый последний 192.168.0.255. Вот именно его нужно попинговать, потом дать команду
    arp -a
    Увидите все ip адреса в вашей сети с их маками. Ну а там уже найдете нужный.
    Ответ написан
    Комментировать
  • Как сделать текстовый интерфейс?

    @deliro
    Стандартный curses, либо более высокоуровневый urwid
    Ответ написан
    Комментировать
  • Как реализовать (алгоритм) отрисовку графики "по слоям" на МК?

    AlanDrakes
    @AlanDrakes
    Без двойного буфера - самое простое помнить "старое значение", где была стрелка, и новое значение - где её нужно перерисовать. Тоже не самый удобный вариант, но его можно реализвать так:
    - Стирание стрелки по старым координатам. (Восстановление части заднего фона)
    - Рисование стрелки по новым координатам.
    Плюсы - Не нужно много памяти. Фактически, только данные о стрелке, координатах и тому подобное.
    Минусы - Минимум два кадра отрисовки.

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

    Почему бы не использовать что-то другое? Ползунковые индикаторы / полосу / цифры, например. Их проще отрисовать быстро.
    Хотя, если так хочется - то... как говорится.
    Но лично я эти стрелочки пропустил для себя.
    Ответ написан
    1 комментарий
  • Как реализовать (алгоритм) отрисовку графики "по слоям" на МК?

    @nirvimel
    Если на двойную буферизацию памяти жалко, то остается только городить нетривиальный алгоритм перерисовки. Например:
    1. Создать маску для стрелки: из канала прозрачности (1 бит) стрелки в конечном положении вычесть канал прозрачности стрелки в начальном положении.
    2. Залить область с маской изображением стрелки в конечном положении.
    3. Создать маску для заливки: из канала прозрачности стрелки в начальном положении вычесть канал прозрачности стрелки в конечном положении.
    4. Залить область с маской изображением фона.
    Ответ написан
    1 комментарий
  • Как подключить Ubuntu Server 15.04 к Wi-Fi по WPA2-PSK?

    Machez
    @Machez Автор вопроса
    Бу!
    Вот 100% рабочая инструкция sudouser.com/podrobnoe-rukovodstvo-po-nastrojke-wi...
    Ответ написан
    Комментировать
  • Как правильно отправить json через POST с помощью CURL?

    brutto
    @brutto
    Conceptmeister, Darudar
    Если вы шлёте на сервер application/json, то в $_POST у вас ничего не окажется -- он будет пустым. Что бы прочитать такой POST-запрос вам понадобится что-то вроде этого:

    $json = file_get_contents('php://input');
    $obj = json_decode($json);

    Подозреваю, что тут есть ответ на ваш вопрос:
    stackoverflow.com/questions/19004783/reading-json-...

    PS: О том что такое php://input и как с ним можно работать и когда говорится вот тут: php.net/manual/ru/wrappers.php.php
    Ответ написан
    2 комментария
  • Роутинг между vlan-нами (TomatoUSB) ?

    @werter_l
    Эта функция имеется штатно в shibby's mod. Плюс можно с помощью iptables организовать.

    lanaccess.png
    Ответ написан
    Комментировать
  • Существует ли переходник eSATA USB с поддержкой Port Multiplier ?

    XXX
    @XXX
    Решение где-то рядом
    @DROS есть переходники, например на амазоне.
    Ответ написан
    Комментировать