• Гибридное хранилище для дома «из коробки» и возможности High Availability от Synology

      Несколько лет назад, при выборе первого хранилища для дома, я смотрел в сторону «коробочных решений» по причине не особой осведомлённости в построении системы хранения на базе открытого ПО и обычного ПК. В тот раз выбор пал на 2-дисковую NAS — Shuttle KD20. Хранилище было компактным и тихим. RAID1 обеспечивал необходимую надёжность, а потребности в высокой производительности и расширенном функционале на тот момент не было. Этот NAS проработал почти 4 года, пока в один прекрасный момент не накрылась линия питания вентилятора. Диски раскалились до 60 градусов и чудом выжили. Я запаял вентилятор напрямую к материнке, но стал подбирать вариант на замену. В качестве второй NAS я выбрал 4-дисковую Synology. Задачи оставались те же, поэтому в функционал DiskStation Manager (DSM) я особо не вникал. Это продолжалось до тех пор, пока я не решил установить домашнее видеонаблюдение на несколько каналов. Не смотря на то, что Synology имеет собственный сервис видеонаблюдения, я остановился на Macroscop — была потребность в расширенном функционале и серьёзной аналитике. На своё счастье, я обнаружил в DSM новый пакет Virtual Machine Manager — гипервизор, с помощью которого я создал виртуальную машину и установил на неё Windows и Macroscop. На запись система работала нормально, встроенный Pentium 1,6 ГГц с трудом, но успевал отрабатывать задачи СХД и виртуальной машины. Но как только активировалась какая-либо аналитика — сервис отваливался по перегрузке процессора. В результате, я был вынужден начать поиски отдельного бюджетного Windows-девайcа с адекватной производительностью для реализации сервера видеонаблюдения, так как Synology необходимого уровня стоит недёшево. В тот самый момент я в очередной раз наткнулся в сети на статьи, посвящённые установке DSM на обычное железо и мой проект XPenology начался…
      Читать дальше →
    • Мой опыт создания «без умного» дома

      • Tutorial
      Пришло и мое время поделится своим опытом создания «без умного» дома. Вступать в полемику, что же все таки такое умный дом и что он должен уметь делать, не очень хочется. В моем случае будем приручать wifi модули Sonoff от компании ITEAD и учиться включать/выключать «нагрузку» с телефона. В публикации пойдет речь, как прошить модуль, подключим к модулю сенсор температуры/влажности, научимся управлять модулем через приложение HomeKit («Дом») и Siri. Добавим ко всему этому систему управления умным домом Domoticz на raspberry pi. Добавим wifi к кофемашине и научим Siri открывать домофон.
      Читать дальше →
    • 5G – где и кому он нужен?

        Даже не особо разбираясь в поколениях стандартов мобильной связи, любой наверняка ответит, что 5G — это круче, чем 4G/LTE. На самом деле, все не так просто. Давайте разберемся, в чём всё же 5G лучше/хуже и какие кейсы его использования наиболее перспективны с учетом текущего состояния.

        Итак, что же нам обещает технология 5G?

        • Увеличение скорости в десятки раз до 10 Гб/с,
        • Уменьшение задержек (латентность) в десятки раз до 1 мс,
        • Увеличение надежности подключения (packet loss error rate) в сотни раз,
        • Увеличение плотности (числа) подключенных устройств (106/км2).

        Всё это достигается за счет:

        • многоканальности (параллелизм по частотам и базовым станциям)
        • увеличения несущих радиочастот с единиц до десятков ГГц (пропускная способность радиоканала)

        5G улучшит 4G в традиционных областях, будь то мгновенное скачивание фильма, или бесшовная связь мобильного приложения с облаком. Значит, можно будет отказаться от доставки Интернета в наши квартиры и офисы по кабелю?

        5G обеспечит универсальную связь всего со всем, объединяя широкополосные, энергозатратные протоколы с узкополосными, энергосберегающими. Это откроет новые, недоступные для 4G направления: межмашинную связь на земле и в воздухе, Индустрию 4.0, Интернет вещей. Ожидается, что 5G-бизнес заработает $3.5T к 2035 году и создаст 22 млн. рабочих мест.
        Или нет?..


        (Источник картинки — Reuters)
        Читать дальше →
      • Моя система домашней автоматики

        • Tutorial
        Привет, Хабр!

        Цель этой статьи(цикла) хабраэффект вводный рассказ о моей системе домашней автоматики, конечно я не придумал и создал всё с нуля, а только лишь собрал технологии и проекты которые посчитал наиболее подходящими для этой цели и добавил немного от себя. Уровень любительский но в результате всё работает, люди пользуются и за мной с дубиной не бегают. Делал всё сам. Конструктивная критика приветствуется, будет интересно узнать любое мнение.

        Система включает в себя оборудование, и набор программ: непосредственно система автоматики для связи оборудования и визуализации, связь и телеметрия для удаленного мониторинга и обновления, голосовой ассистент от Яндекса. Всё (почти всё) открыто и выложено на Github.
        Читать дальше →
      • Шпаргалка по шаблонам проектирования


          Перевод pdf файла с сайта http://www.mcdonaldland.info/ с описанием 23-х шаблонов проектирования GOF. Каждый пункт содержит [очень] короткое описание паттерна и UML-диаграмму. Сама шпаргалка доступна в pdf, в виде двух png файлов (как в оригинале), и в виде 23-х отдельных частей изображений. Для самых нетерпеливых — все файлы в конце статьи.

          Под катом — много картинок.

          Читать дальше →
          • +166
          • 1022k
          • 64
        • Вольный опус про найм, собеседования и трэш на рынке IT-кадров

            Нынче программист может не найти работу в двух случаях: он либо клинический дятел и неадекват, либо хочет в качестве оклада звездолёт. Во всех остальных случаях "в девках" он долго не задерживается. Однако вопрос "кто кого на***л?" интересует обе стороны "противостояния". Так же всем хочется знать цену вопроса и как бы расширить целевую аудиторию, побыстрее найти наилучшее предложение и отвадить всяких отмороженных. Ну и, конечно же, есть чисто-программерское "чтобы внутренний перфекционист был спокоен". Обо всём этом по чуть-чуть и поразмышляю в текстовой форме.

            Клац
          • Асинхронность в JavaScript: Пособие для тех, кто хочет разобраться

              image


              На JavaScript легко писать. Достаточно взять пару библиотек или модный фреймворк, прочитать несложный туториал и все — через пару часов у вас простой работающий интерфейс.


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

              Читать дальше →
            • Шпаргалка по SOLID-принципам с примерами на PHP

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

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

                • Translation

                Доброго времени суток. Это статья — перевод заинтересовавшего меня поста в блоге аспиранта Университета штата Нью-Йорк в Стоуни-Брук. Статья в доступной форме описывает основные концепции функционального программирования, их преимущества и недостатки. Думаю она будет полезна широкому кругу читателей, которые сомневаются, нужно ли им углубляться в мир функционального программирования или нет. Пожелания, предложения и замечания по переводу и терминологии принимаются по личной почте.

                Мнение переводчика может иногда не совпадать с мнением автора, но переводить статью было крайне занимательно.

                UPD: альтернативный вариант перевода вы можете найти на rsdn (спасибо flamingo за ссылку).
                Читать дальше →
              • Функциональное программирование непопулярно, потому что оно странное

                • Translation
                Я знаю людей, которые искренне недоумевают по поводу того, что функциональное программирование не очень популярно. К примеру, сейчас я читаю книжку «Из смоляной ямы» (Out of the Tar Pit), в которой авторы после аргументов в пользу функционального программирования говорят:
                Читать дальше →
              • Функциональное программирование в JavaScript с практическими примерами

                • Translation

                image


                Функциональное программирование (ФП) может улучшить ваш подход к написанию кода. Но ФП непросто освоить. Многие статьи и руководства не уделяют внимания таким подробностям, как монады (Monads), аппликативность (Applicative) и т. д., не приводят в качестве иллюстраций практические примеры, которые могли бы помочь нам в повседневном использовании мощных ФП-методик. Я решил исправить это упущение.


                Хочу подчеркнуть: в статье сделан упор на том, ЗАЧЕМ нужна фича Х, а не на том, ЧТО такое фича Х.

                Читать дальше →
              • Как быстрее DOM построить: парсинг, async, defer и preload

                • Translation

                На сегодняшний день, джентльменский набор по ускорению сайта включает в себя всё от минификации и оптимизации файлов до кеширования, CDN, разделения кода и так называемого tree shaking. Но даже если вы не знакомы с этой терминологией, значительного ускорения можно добиться и парой ключевых слов с продуманной структурой кода.

                В Firefox скоро появится новый веб стандарт <link rel="preload">, который позволит загружать важные ресурсы быстрее. Его уже можно опробовать в версиях Firefox Nightly и Developer Edition, а пока это прекрасный повод вспомнить основы работы браузера и глубже понять о производительности при работе с DOM.
                Читать дальше →
                • +16
                • 24.9k
                • 5
              • Полное практическое руководство по Docker: с нуля до кластера на AWS

                • Translation



                Содержание



                Вопросы и ответы


                Что такое Докер?


                Определение Докера в Википедии звучит так:


                программное обеспечение для автоматизации развёртывания и управления приложениями в среде виртуализации на уровне операционной системы; позволяет «упаковать» приложение со всем его окружением и зависимостями в контейнер, а также предоставляет среду по управлению контейнерами.



                Ого! Как много информации.

                Читать дальше →
              • Ценовая эластичность в ритейле

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

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

                  Например, когда ритейлер снижает цену, потребительский спрос растет, но прибыли нет. Увеличивает цену товара — спрос падает.



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

                  Эластичность же позволяет найти оптимальное соотношение стоимости и количества продаж, позволяющее увеличить прибыль. Иными словами, цена выступает балансирующим фактором между ожидаемыми спросом и доходом.
                  Читать дальше →
                  • +7
                  • 15.3k
                  • 9
                • 50+ лучших дополнений к Bootstrap



                    Благодаря популярности CSS фреймворка Bootstrap, для него разработали массу различных дополнений. Даже сейчас вы можете использовать Bootstrap практически для любой задачи при разработке и оформлении вебсайта.

                    Для статьи я подобрал наиболее полезные дополнения «на все случаи жизни».
                    Читать дальше →
                  • 7 вещей, которые каждый дизайнер должен знать про дизайн доступных сайтов

                    • Translation
                    image

                    Доступность позволяет людям с ограниченными возможностями понимать, передвигаться, взаимодействовать и давать обратную связь веб-сайтам. Если бы все дизайнеры прекрасно разбирались в том, как делать сайты доступными, тогда только плохой дизайн мог бы помешать использованию сайтов.

                    1. Доступность – это не препятствие для инноваций


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

                    Всегда помните, что вы занимаетесь дизайном не ради своих коллег. Разрабатывайте сайт для самых разных людей, которые будут взаимодействовать с вашим продуктом.
                    Читать дальше →
                  • Создание изоморфного приложения на React и Flummox

                    Сегодня я хочу показать, как используя React, Flummox и Express, создать полноценное изоморфное приложение.

                    Идея изоморфности давно витала в воздухе, но никто не знал этого слова, поэтому ничего особо не менялось, пока не пришел airbnb.

                    За полгода до этого появился React, позже появился Flux и множество его реализаций, одна не хуже другой. Но все эти реализации ориентировались только на работу на клиентской стороне, они работали через синглтоны и, зачастую, их нельзя было нормально использовать на сервере. Я успел попробовать несколько, но ни одна мне не понравилась. Пока два месяца назад я не наткнулся на Flummox. Как заявляет разработчик, Flummox создан как раз для изоморфных приложений, он не использует синглтоны, присущие другим реализациям, и максимально прост в использовании.

                    Ожидается, что вы имеете опыт работы с React и слышали про Flux. Итак, поехали…
                    Забрать готовый код можно тут.
                    Читать дальше →
                  • Районы… Кварталы…

                      Совсем недавно на хабре была статья от AirBnb — «Создавая карту мира». Хорошая и красивая статья про административное деление мира. Один минус — у статьи один комментарий, и то мой.
                      Пользуясь случаем проведу опрос — хотели ли бы вы такую карту административных делений?
                      А то она у меня есть:



                      Вы наверное замечали, что Google.Карты умеют подсвечивать контура городов. С недавнего времени такое есть и на Яндекс.Картах. Мало кто знает, что геометрия есть и на eSosedi.

                      А вот когда такая возможность появится на вашем сайте — теперь зависит только от тебя %username%.

                      Для достижения эффекта достаточно зайти на data.esosedi.org или GitHub, ознакомиться с документацией библиотеки osmeRegions и начать использовать.

                      P.S.: 3 признака того, что год минувший все сделал красиво: 1. Районы 2. Кварталы. 3. Детализация до «Жилые массивы» доступна для некоторых городов.
                      Читать дальше →