• Клиент-серверное взаимодействие в реальном времени с помощью веб-сокетов

    Перевод статьи Джона МюллераWhat Is a WebSockets Push-Styled API and How Does It Work?

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

    «Как и в случае появления любой новой технологии, рецепт успеха включает в себя сочетание технических знаний, деловой хватки и навыков доставки» — Erik T. Heidt, Gartner Research Vice President

    Зачем?


    Несмотря на устоявшийся тренд и частые обсуждения «облаков», все чаще сталкиваюсь с путаницей определений даже в ИТ-кругах. Настоящей статьей я постараюсь системно и в лаконичной форме закрепить ключевые понятия облачных технологий.

    Облако


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

    Сегодня крупнейшие поставщики облачных сервисов, такие как Microsoft, Amazon, Google, Alibaba, предоставляют вычислительные ресурсы и технологии, с помощью которых решаются самые различные отраслевые задачи, формируются сервисы для индивидуальных потребителей. Развитие облачных тем обусловлено рядом причин, в т.ч. технологических:
    • взрывной рост количества вычислительных устройств,
    • экспоненциальное увеличение объемов данных;
    • возросшие вычислительные мощности и снижение их стоимости,
    • гибкость управления ИТ, развитие технологий виртуализации;
    • доступность сети Интернет и увеличение пропускной способности каналов связи.

    Определение Gartner — Cloud Computing


    Gartner определяет облачные вычисления как стиль, в котором масштабирование и гибкие возможности ИТ предоставляются как служба с использованием интернет-технологий.
    Читать дальше →
  • Функциональные уравнения: Часть 1

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


    Функциональное уравнение — уравнение, связующее значение функции в одной точке с её значениями в других точках.


    Другими словами, в функциональных уравнениях место неизвестного занимает функция. Для примера, рассмотрим такое функциональное уравнение:
    $$display$$2f(x)=2$$display$$ Тут интуитивно хочется разделить обе части уравнения на 2, что сработает и мы узнаем ответ: $$display$$2f(x)=2 \Rightarrow f(x)=1$$display$$ Значит ответом на функциональное уравнение может быть только значение f(x), или похожее (это обычно указывают в условии задачи).
    Рассмотрим некое функциональное уравнение, где с обоих сторон будут стоят функции. $$display$$4f(x)=2f(x)+2x \Rightarrow 2f(x)=f(x)+x \Rightarrow f(x)=x$$display$$ Стоит отметить что функция всегда имеет под собой число ($inline$f(x)=x+2, f(1)=3, f(5)=7$inline$, а значит можно производить над ними арифметические операции. Давайте рассмотрим функциональное уравнение из двумя переменными. Задание

    Читать дальше →
  • Так ли хорошь XUBUNTU 18.04?

    Fénix

    XUBUNTU 18.04




    Desktop




    Особенности и преимущества


    На первый взгляд перед нами очередной дериват всеми известной UBUNTU, однако в нашем случае данное ответвление имеет ряд преимуществ над основным продуктом компании Canoncal. Основные и, пожалуй, главные отличия заключаются в производительности.
    Далее
  • Javascript для новичков или немного о приватности

    Для тех, кто приходит в Javascript с класс-ориентированных языков программирования, этот язык вызывает некоторые вопросы (у меня они точно возникли). У Javascript свой подход к ООП. Помимо создания объектов просто через фигурные скобки, язык предоставляет возможность использования конструкторов. И здесь начинаются интересные вещи. Если поискать в интернете, то существует два основных подхода к созданию конструкторов.
    Читать дальше →
  • Хлебные крошки в 1С-Битрикс

    Здравствуйте, уважаемые читатели!
    Хочу поделиться с вами опытом решения своей проблемы в нашем всеми любимом CMS 1C- Битрикс.


    Задача: Необходимостью разместить хлебные крошки внутри кешируемого шаблона.


    Условие 1: Сделать алгоритм отложенного вызова, но не такой, какой предусмотрен системой Битрикс. В уже существующем алгоритме есть проблема с кешем. Следующее включение компонента


    $APPLIACATION->IncludeComponent("bitrix:breadcrumb", ".default"); 

    включает буферизацию методом AddBufferContent, который в свою очередь вешает событие onEndBufferContent. Это событие обрабатывается после кешированием, поэтому в кеш буферизированные данные попасть не могут. Это приводит к потере части контента. (В моем случае пропадал код шаблона, расположенный до вызова компонента bitrix:breadcrumb.)


    Условие 2: Модификация хлебных крошек может производиться после вызова шаблона.

    Читать дальше →
  • CamHack — программное обеспечение для тестирования IP камер на безопасность

    CamHack — программное обеспечение для тестирования IP камер на безопасность


    Приветствую.

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

    Интерфейс:



    Для чего она? Как можно понять, для тестирования IP камер на безопасность. Сразу стоит отметить, софтина не использует какие либо уязвимости в ПО, все гораздо проще, присутствуют два основных вектора атак: bruteforce и parse. Однако все этим не ограничивается, также на борту имеются две вспомогательные функции: сканер портов и спамер (DoS). Прежде чем начать обзор функционала, стоит сразу привести весь список команд, их не так много:

    /info — Классика жанра, выводит информацию о всех доступных командах
    /brute — Он же дед bruteforce, один из векторов атак.
    /parse — Попытка авторизации под дефолтными данными, а именно: login: admin; password: 12345
    /scan — Сканер портов
    /dos — Тот самый «спамер»



    Bruteforce: Великий и ужасный


    Для того чтобы начать этот вектор атаки — достаточно ввести одноименную команду '/brute' (вписываем без одинарных кавычек). В процессе будут запрошены IP адрес цели, порт, полный путь к словарям (для тех кто забыл как выглядит полный путь: 'C:\Program Files\loginlist.txt'). Если все данные указаны верно и хост доступен — начинается перебор логинов и паролей. В случае успешной авторизации — софт оповестит вас. Так как почему-то именно сегодня, скриншоты решили помракобесить — приведу пример вывода в текстовой форме:
    Читать дальше →
  • Тест игровых движков и HTML5 (Project )

    Задача: Написать игру для платформы Facebook Instant Games на HTML5, используя движок для создания игр. Полученная игра должна иметь минимальный объем и хороший фпс. Ограничение по размеру у фейсбук хостинга — не более 5Мб в заархивированном виде.

    Для тестов возьмем следующие движки:

    Скриншоты с тестов
    Читать дальше →
  • Трансляция потокового видео на сайт с двух IP камер

    Доброго времени суток, уважаемые.

    Данный пост призван дать читающему пошаговое руководство «Как дать возможность двумстам сотрудникам узнать об очереди в столовой не вставая с рабочего места». Но обо всём по порядку.

    Найти всю необходимую информацию, для решения задачи, в одном месте мне не удалось. Это и стало поводом к написанию данного руководства.

    Исходные данные: Имеются две IP камеры в двух столовых. Есть корпоративный сайт.
    Задача: Дать возможность сотрудникам узнавать об очередях в столовой.

    Решение задачи


    Структурная схема такова:

    1. FFserver получает поток с двух IP камер на сервер
    2. На корпоративном сайте размещаются ссылки на нужные файлы, формируемые FFserver

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

    О том, как установить и первично настроить FFserver хорошо написано Здесь и Здесь, за одним НО. Данные материалы описывают настройку при подключении Web-камеры непосредственно к ПК. Они стали для меня отправной точкой поисков.
    Читать дальше →
  • Как SEO-специалисту приблизиться к успеху «Википедии»?

    Большинство SEO-оптимизаторов завидует «Википедии». И это небезосновательно, ведь успехи данной интернет-энциклопедии внушительные. Во-первых, наблюдается стабильное высокое ранжирование в ТОПе поисковых систем по высокочастотным запросам. Чаще всего позиции сайта не опускаются ниже ТОП-3 «Яндекса» и «Гугла». Во-вторых, это серьезный поисковый трафик, не требующий заоблачных финансовых вложений. В-третьих, это почет и уважение среди многомиллионной армии пользователей.
    Читать дальше →
  • Оптимизация кода, или как начать учиться писать коротко и ясно

    Всех категорически приветствую!

    Предисловие


    Возможно многие, как и я, задавались вопросом «Как писать код правильно?». И каждый день приходя на работу, оглядываясь по сторонам, я понимаю, что даже в том месте, где много людей, работающих с кодом, помощи в данном вопросе просить не у кого. Каждый занят своим делом, решая задачи, любым доступным способом. И сегодня, придя на работу, я так же столкнулся с задачей, довольно простой задачей. Нужно зафиксировать верхнее меню при прокрутке сайта. И как то глубоко впав в себя, пронеслись мысли — «Готовое решение», «JQ плагин», «зачем целый плагин, можно ведь самому, пару строк ведь», «зачем изобретать велосипед», «а как этот велосипед изобрели», «найти плагин, заглянуть в исходники», «но ведь первый раз кто то писал не заглядывая — некуда ведь», «курица или яйцо», «брр… а как они к этому пришли, надо самому попробовать». И тут я открыл редактор и начал пробовать.
    Читать дальше →
  • Как программист исправляя баг делает 3 новых. Или как правильно работать с исполнителями

    Эта статья — сводка правил, как работать с исполнителями (на примере программистов)


    Нет плохих программистов, есть люди, которые не умеют их подбирать и с ними работать.

    Читать дальше →
  • Повышение требований к обслуживанию багажа?

    Сегодня авиалинии сталкиваются со многими проблемами, которые ставят под угрозу уровни удержания клиентуры и прибыльность. Авиакомпании стараются повысить эффективность своих бизнес-процессов через применение самых современных технологических решений ко всему спектру предлагаемых ими потребительских услуг. Радиочастотная идентификация (RFID) — это технология, которая позволяет повысить эффективность одной из критически важных областей деятельности: обслуживания багажа.

    Стоимость этапов неправильной обработки багажа и время, необходимое для идентификации и локализации неправильно обработанного багажа, становятся все более неприемлемыми для пассажиров и превращаются в одну из самых больших причин для недовольства обслуживанием со стороны потребителей. Технология радиочастотной идентификации позволяет «увидеть» местонахождение багажа пассажира в режиме реального времени; полнота отслеживания достигается за счет необходимой функции перекрестного контроля на каждом этапе путешествия, и все это — без участия человека. Модернизация обработки багажа при помощи радиочастотной идентификации повышает автоматизацию процессов обслуживания, существенно сокращает количество неправильно обработанных единиц багажа и издержки, связанные с некорректной обработкой.

    Вне зависимости от способов регистрации пассажиров на рейс (через стойку регистрации полетов в терминале аэропорта или через пункт автоматической регистрации), RFID-принтеры позволяют мгновенно закодировать информационно-насыщенную RFID-метку, фиксирующую все необходимые данные — такие, как регистрационный номер, — содержащую конкретную информацию о рейсе и всю необходимую информацию по сортировке багажа. Как только багаж помещается на транспортер, в начале процесса обслуживания багажа, считыватель RFID-меток считывает информацию с метки, документируя начало перевозки багажа.
    Читать дальше →
  • Счастливый ноль

    Тема криптотрейдинга давно не нова для любых трейдеров, которые торгуют криптовалютой на биржах. Инструментов для технического анализа, которые можно использовать в этом русле много – они не особо отличаются от финансовых или форекс рынках, поэтому их можно применять и на этом «новом» рынке. Существует также множество торговых систем и стратегий, которые в каком-то виде показывают, как получать прибыль на установленных таймфреймах (на самом деле нет). Хотя некоторые из них действительно ценные находки и могут показать из себя целостную систему, но таких вещей крайне мало.

    Сегодня речь пойдёт не о этих применяемых и популярных торговых системах, которые актуальны для крипторынка, а об одном виде инструментах, которые используются в данных системах – осцилляторы. Почти все стратегии/системы используют в своём наборе их. Поэтому необходимо уделить им пристальное внимание без особой привязки к тонким настройкам и таймфреймам. Будем использовать заводские или стандартные настройки и оценивать их эффективность на деле.
    Читать дальше →
  • Репитер на базе Linksys E1200

    Начало этого, достаточно ситуативного решения, было положено тогда, когда я привез к себе в квартиру свой ПК от родителей и обнаружил, что по wi-fi моя сетевая карта выдаёт просто возмутительную скорость. Причиной послужил её возраст, и слабый приёмник. В силе сигнала
    «блинов» я не сомневался, так как построил местную сеть сам, проблема стала очевидной, и вот как я её решал.

    Сухие данные:
    Ширина канала минимум 200 Mbps
    Ubiquiti UniFi AP-AC-Lite в качестве точки доступа
    Роутер Linksys E1200 v2
    ПК с сетевой картой TP-Link, которая умеет только 802.11b стандарт.
    Читать дальше →
  • 8 факторов напрямую влияющих на рекламный бюджет в Инстаграм

    Здесь я перечислю основные 8 факторов, которые влияют на рекламный бюджет в Инстаграм


    1. Профессиональный, тяжелый контент, или легкая обыденность? Очень дорогой и профессиональный контент пользуется спросом гораздо хуже чем, контент сделанный на телефон на природе или кафе со свободным стилем текста. Это объясняется множеством факторов:
    Читать дальше →
  • Проекты на Arduino и их моделирование

    Многие из вас уже знакомы с таким весьма интересным и удобным в разработке “конструктором” как — Arduino. Эта статья — один из подходов к разработке и реализации проектов на Arduino.


    Эта статья описывает исключительно этап моделирования схемы, проектировка устройства до сборки и программное обеспечение для этого в рамках создания проекта на Arduino.


    Читать дальше →
  • Версионирование в Golang с vgo

    Версионирование в Golang с vgo


    В Go есть простая стандартная команда go get, которая скачивает зависимости. Эта команда устанавливает последнюю версию, из master ветки репозитория.


    Это отлично подходит для небольших одиночных проектов. Но что если имеется два проекта которые зависят от разных версий одной сторонней библиотеки?


    Versioned Go Command (vgo)


    В Golang версии 1.10 нам предоставили Versioned Go Command сокращенно vgo. Эта консольная команда позволяет загружать и импортировать необходимые версии библиотек.


    Проект находится в статусе активной разработки и для продакшена рекомендуют пока использовать dep.

    Читать дальше →
  • Домашний медиа-сервер

    Выбор


    По ряду причин столкнулся с дилеммой выбора домашнего медиа-сервера… Покупка готового аппаратно реализованного не рассматривалась по той причине, что в любом случае 24 часа в стуки гоняю домашний сервер, и как бы решил использовать имеющиеся ресурсы, а не покупать новые. Почитав кучу сравнений различных программных реализаций выбрал наиболее дешевый вариант, точнее абсолютно бесплатный, который так и называется Домашний медиа-сервер
    Читать дальше →
  • Верстальщика псто

    <BR> или <BR />? Или всё же <BR/> ?


    Идея статьи накипела, можно сказать.



    В последнее время (уже не раз наталкивался на такую ситуацию) кто угодно может заявить, что он «верстает». Цена верстки обычно ниже плинтуса, зато требования «а чтоб в IE работало… и на iPad не разваливалось… Ой, что у нас на 'этом' не так как везде» могут быть совершенно разнообразными и требования к знаниям не меньше чем у полноценного разработчика фронтэнда.


    Итак «преамбула»


    Несколько раз сталкивался с ситуацией, когда на большом проекте кто-то с горящим взором решает «зачистить» «древний код», избавиться от излишков, крикнуть «старые браузеры в топку» и т.п.


    Вот пример:
    из тега <BR /> в местах, которые попались под руку. был удален пробел. Код достался по наследству, скажем, из мелового периода (ну или из юрского, боюсь ошибиться). Итог — конфликты при слиянии в мастер-ветку в гит для продакшна. В условиях, когда на разрешение конфликтов времени и ресурсов маловато. И это только то, что на поверхности (без тестирования в нужных браузерах).
    Читать дальше →