• Nextcloud внутри, а снаружи OpenLiteSpeed: настраиваем обратное проксирование

    • Tutorial

    Как настроить OpenLiteSpeed на обратное проксирование в Nextcloud, находящийся во внутренней сети?


    Удивительно, но поиск на Хабре по запросу OpenLiteSpeed не даёт ничего! Спешу исправить эту несправедливость, ведь LSWS – достойный веб-сервер. Я люблю его за скорость и модный веб-интерфейс администрирования:


    image


    Несмотря на то, что OpenLiteSpeed наиболее знаменит как «ускоритель» вордпреса, в сегодняшней статье я покажу довольно специфичное его применение. А именно обратное проксирование запросов (reverse proxy). Вы скажете, что для этого привычнее использовать nginx? Я соглашусь. Но больно уж нам полюбился LSWS!


    Проксирование ок, но куда? В не менее замечательный сервис – Nextcloud. Мы используем Nextcloud для создания частных «файлообменных облаков». Для каждого клиента мы выделяем отдельную VM с Nextcloud, и не хотим выставлять их «наружу». Вместо этого мы проксируем запросы через общий reverse proxy. Это решение позволяет:


    1. убрать сервер, на котором хранятся данные клиента, из интернета и
    2. сэкономить ip-адреса.

    Схема выглядит так:


    image


    Понятно, что схема упрощена, т.к. организация инфраструктуры веб-сервисов – не тема сегодняшней статьи.


    Также в данной статье я опущу установку и базовую настройку некстклауда, тем более что на Хабре есть посвящённые этой теме материалы. Но обязательно покажу настройки, без которых Nextcloud не будет работать за прокси.

    Читать дальше →
  • SMS-мониторинг веса трех ульев за 35$

      NewBee


      Прошло совсем немного времени с предыдущей публикации о системе за 30$.


      Что-же изменилось за прошедший лунный месяц?


      1. Добавлена солнечная батарейка — время работы практически неограниченно.
      2. Добавлена отправка информации по звонку.
      3. Возможность работы со всеми видами модулей связи, попавших в поле моего зрения — AiThinker, Goouu tech, SIM800/900, Neoway M590 *

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


      И все это благодаря конструктивной критике хабровчан и пчеловодов, подключившихся к обсуждению системы.


      Остальные ТТХ остались прежними — максимальный вес ульев — 200кг, после заката выполняется измерение, и отправка показателей.


      Предвосхищая критику по поводу неиспользования режимов сна и дополнительных сигнальных линий GSM-модулей скажу следующее:


      У каждого модуля связи есть своя специфика — кто засыпает по низкому уровню сигнала, кто по высокому, некоторые — по двойному нажатию.


      Специфика "сделай сам" подразумевает некую творческую часть вот как раз в тут ее и стоит проявить.


      Я-же делал систему с прицелом на дальнейшее развитие мониторинга других параметров улья, где сон не особо и нужен.


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


      Данная-же статья — о весах, а под катом — мое персональное видение и исполнение системы.


      Одним словом — WELCOME! ПОЕХАЛИ!

      Читать дальше →
    • Категории выражений в C++

        Категории выражений, такие как lvalue и rvalue, относятся, скорее, к фундаментальным теоретическим понятиям языка C++, чем к практическим аспектам его использования. По этой причине многие даже опытные программисты достаточно смутно представляют себе, что они означают. В этой статье я постараюсь максимально просто объяснить значение этих терминов, разбавляя теорию практическими примерами. Сразу оговорюсь: статья не претендует на максимально полное и строгое описание категорий выражений, за подробностями я рекомендую обращаться непосредственно в первоисточник: Стандарт языка C++.

        Читать дальше →
      • io_submit: альтернатива epoll, о которой вы никогда не слышали

        • Перевод


        Недавно внимание автора привлекла статья на LWN о новом интерфейсе ядра для опроса (polling). В ней обсуждается новый механизм опроса в Linux AIO API (интерфейс для асинхронной работы с файлами), который добавили в ядро версии 4.18. Идея довольно интересная: автор патча предлагает использовать Linux AIO API для работы с сетью.

        Но постойте! Ведь Linux AIO был создан для работы с асинхронным вводом-выводом с диска / на диск! Файлы на диске — это не то же самое, что сетевые соединения. Возможно ли вообще использовать Linux AIO API для работы с сетью?

        Оказывается, да, возможно! В этой статье объясняется, как использовать сильные стороны Linux AIO API для создания более быстрых и лучших сетевых серверов.

        Но давайте начнём с разъяснения, что представляет собой Linux AIO.
        Читать дальше →
      • Борьба за ресурсы, часть 6: cpuset или Делиться не всегда правильно

          Во время разговоров о cgroups пользователи Red Hat довольно часто задают один и тот же вопрос: «У меня есть одно приложение, очень чувствительное в смысле задержек. Можно ли с помощью cgroups изолировать это приложение от остальных, привязав его к определенным процессорным ядрам?»



          Разумеется, можно. Иначе мы бы не выбрали этот вопрос в качестве темы сегодняшней статьи.
          Читать дальше: cpuset или Делиться не всегда правильно
        • Программисты своими руками лишают себя работы

          • Перевод

          Когда работникам удаётся автоматизировать свои обязанности, кто должен пожинать плоды?




          В 2016 году на Reddit появилось анонимное признание: «Уже где-то лет шесть я ничего не делаю на работе». Вроде бы ничего особенного, если дело касается офисной работы. Но этот программист, скрывавшийся под ником FiletOFish1066, сказал, что он работал на известную технокомпанию, и он реально совсем ничего не делал. Он написал, что после того, как восемь месяцев проработал в отделе обеспечения качества, сумел полностью автоматизировать всю свою работу. «Я не шучу. 40 часов в неделю я хожу на работу, играю в League of Legends, читаю Reddit, занимаюсь, чем хочу. За последние шесть лет я проработал часов 50». Когда его боссы поняли, что за половину десятилетия он проработал меньше, чем большая часть программистов Кремниевой долины за неделю, они его уволили.

          Эта история быстро распространилась по технологическим уголкам веба, из-за чего её герою в итоге пришлось удалить и сам пост, и даже учётную запись.
          Читать дальше →
        • Моё разочарование в софте

          • Перевод

          Суть разработки программного обеспечения
          — Нужно проделать 500 отверстий в стене, так что я сконструировал автоматическую дрель. В ней используются элегантные точные шестерни для непрерывной регулировки скорости и крутящего момента по мере необходимости.
          — Отлично, у неё идеальный вес. Загрузим 500 таких дрелей в пушку, которые мы сделали, и выстрелим в стену.


          Я занимаюсь программированием уже 15 лет. Но в последнее время при разработке не принято думать об эффективности, простоте и совершенстве: вплоть до того, что мне становится грустно за свою карьеру и за IT-отрасль в целом.

          Для примера, современные автомобили работают, скажем, на 98% от того, что физически позволяет нынешняя конструкция двигателя. Современная архитектура использует точно рассчитанное количество материала, чтобы выполнять свою функцию и оставаться в безопасности в данных условиях. Все самолёты сошлись к оптимальному размеру/форме/нагрузке и в основном выглядят одинаково.

          Только в программном обеспечении считается нормальным, если программа работает на уровне 1% или даже 0,01% от возможной производительности. Ни у кого вроде нет возражений.
          Читать дальше →
        • OutOfLine – паттерн размещения в памяти для высокопроизводительных приложений на C++

          • Перевод

          Во время работы в Headlands Technologies мне посчастливилось написать несколько утилит для упрощения создания высокопроизводительного кода на C++. Эта статья предлагает обобщенный обзор одной из этих утилит — OutOfLine.

          Читать дальше →
        • Как самостоятельно проверить, можно ли запатентовать свой продукт и провести патентный поиск

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

            Как самостоятельно провести патентный поиск

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

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

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

            Итак, для начала нужно понять, что можно и чего нельзя «запатентовать», в принципе. В России выдают патенты на изобретение, полезную модель и промышленный образец, который защищает только внешний вид изделия.
            Читать дальше →
          • 3D лазерный сканер на Android телефоне


              Представляю вниманию DIY сканер на базе Android смартфона.

              При проектировании и создании сканера, в первую очередь, интересовало сканирование крупных объектов. Минимум – фигура человека в полный рост с точность – хотя бы 1-2 мм.

              Данные критерии успешно достигнуты. Успешно сканируются объекты при естественном освещении (без прямого солнечного света). Поле сканирования определяется углом захвата камеры смартфона и расстоянием, на котором лазерный луч сохраняет достаточную для детектирования яркость (днем в помещении). Это фигура человека в полный рост (1.8 метров) с шириной захвата в 1.2 метров.

              Сканер был сделан из соображений «а не сделать ли что ни будь более или менее полезное и интересное, когда заняться нечем». Все иллюстрации – на примере «тестового» объекта (выкладывать сканы людей не корректно).

              Как показал опыт, для сканера такого типа ПО — это вторично и на него было потрачено меньше всего времени (на окончательный вариант. Не считая эксперименты и тупиковые варианты). Поэтому в статье особенностей ПО касаться не буду (Ссылка на исходные коды в конце статьи.)

              Цель статьи – рассказать о тупиковых ветках и проблемах, собранных на пути к созданию окончательной рабочей версии.
              Читать дальше →
            • Гигиена электропитания: выбираем сетевые фильтры и стабилизаторы

              Причины, по которым старое доброе электричество в домашней розетке выходит за пределы допустимых отклонений, бывают разные. Порой это временные скачки напряжений и всплески помех, иногда это систематические отклонения за пределы ГОСТов. В конечном итоге за это расплачивается домашняя техника, мгновенно или медленно умирая от «электрической интоксикации».

              В этом посте мы расскажем о простых и недорогих способах «электрической гигиены» в зависимости от типа проблем в вашей электросети.


              Читать дальше →
            • Конференция DEFCON 21. “Секретная жизнь SIM карт”. Эрик Батлер, Карл Кошер

              • Перевод
              Меня зовут Эрик Батлер, а это Карл Кошер, и мы хотим поговорить с Вами о чтении, создании, загрузке и использовании кода на SIM-картах. Этот проект стартовал в прошлом году, когда я узнал о мероприятии Tourcamp 2012, лагере хакеров на побережье штата Вашингтон, таком выездном DEFCON'е. Никаких отелей, жизнь в палатках на открытом воздухе, это был уже второй лагерь, первый мне очень понравился, я пригласил друзей и мы решили туда отправиться. Это мероприятие посвящалось запуску сети GSM в нескольких районах США, и моей задачей было добыть для этого несколько SIM-карт.



              Я ничего не знал о том, что из себя представляют SIM-карты, поэтому мне пришлось изучить вопрос и выяснить следующее:

              • SIM, или Subscriber Identification Module – это модуль идентификации абонента мобильной связи;
              • на SIM-карте есть ключ идентификации IMSI и симметричный ключ Ki;
              • в неё встроен модуль безопасности, который не позволяет ни извлечь, ни клонировать ключи;
              • они используются операторами связи GSM, а в настоящее время и LTE (сеть Verizon стандарта 4G);
              • могут также запускать приложения.

              Последний пункт меня удивил, потому что никогда раньше не слышал, что сим-карты могут работать с приложениями. Оказывается, давным-давно, когда не было ни «айфонов», ни «андроидов», приложения располагались на сим-карте. Телефон был простой звонилкой – Вы могли вытащить из него «симку» и переставить в другой телефон вместе со всеми своими контактами, программами и так далее. Некоторые операторы, например, Telcom, являлись собственниками сим-карт, контролируя установленные на них приложения.
              Читать дальше →
              • +22
              • 10,3k
              • 3
            • Планарный трансформатор: технология, расчеты, стоимость

                Не так давно ко мне обратилась одна компания, которой необходимо было разработать линейку LED-драйверов. Название компании и ТТХ драйверов называть не буду, NDA не подписывал, но этика есть этика. Вроде бы обычный заказ на драйвер, каких десяток за год набирается, но было два взаимоисключающих требования: стоимость и габариты.

                Задача с точки зрения схемотехники простая, но вот с точки зрения производства и конструирования оказалась очень интересной. И так — требовалось изготовить сетевой драйвер для LED с корректором коэффициента мощности (мощность около 100 Вт), который стоил был в пределах 3$ на серии и имел габариты по высоте не более 11 мм! Многие скажут: «А в чем проблема сделать дешманский драйвер?», вот только дешманский не прокатит, т.к. еще одно требование — возможно давать без опасений 5 лет гарантии. И вот тут начинается самое интересное.

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

                Если вам интересно между чем и чем делался выбор, на каких аргументах он основывался и как удалось получить стоимость трансформатора меньше 0.5$, то приглашаю вас в подкат. Ну и для улучшения «аппетита» прилагаю вам фото готового трансформатора:


                Читать дальше →
              • Десять стартапов из 1298: история первого глобального IKEA Bootcamp

                  В IKEA постоянно проходят различные активности, направленные на обмен идеями и опытом с «внешним миром». Большое внимание уделяется фидбэку от покупателей, ведутся партнерские программы с университетами, а с недавнего времени началось взаимодействие со стартапами. В России, например, в этом году прошел уже второй МЕГА Accelerator. Почему бы не попробовать выйти на мировой уровень? Представляем IKEA Bootcamp.    

                  Читать дальше →
                  • +24
                  • 4,6k
                  • 6
                • Мобильные устройства изнутри. Разметка памяти, структура файлов описания и разметки памяти

                    1. Введение


                    Как оказалось, разметка физической памяти мобильных устройств (МУ) это малоописанный раздел знаний, необходимых разработчику. Т.к. память существует во всех устройствах, созданных на основе микропроцессоров или микроконтроллеров, а их уже миллиарды, то это еще и очень-очень востребованный раздел знаний.

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

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

                    На основе таблиц описаний затем формируются файлы разметки памяти, которые в виде образов разделов прошиваются непосредственно в память МУ.
                    Читать дальше →
                    • +22
                    • 21,3k
                    • 7
                  • Расширяем функционал Ansible с помощью плагинов: часть 1


                      У себя в D2C мы активно используем Ansible. С его помощью мы создаем виртуальные машины у облачных провайдеров, устанавливаем программное обеспечение, а также управляем Docker-контейнерами с приложениями клиентов. В прошлой статье я рассказывал о том, как заставить Ansible работать быстрее, теперь расскажу о том, как расширить его функциональность.

                      Читать дальше →
                      • +18
                      • 8,9k
                      • 4
                    • Электростатический очиститель воздуха своими руками. Часть 1 — принципы работы

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

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


                      На фото коронный разряд, используемый в электростатических очистителях воздуха
                      Читать дальше →
                    • WhatsApp, что внутри?

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

                        В этой статье мы подробно посмотрим как можно изучать протокол работы мессенджера, ответим на вопрос «может ли WhatsApp читать нашу переписку?» и приложу весь необходимый код на языке PHP.
                        Читать дальше →
                      • Загрузка ОС на ARM

                          Недавно попросили в двух словах рассказать серьезным людям о загрузке операционной системы на ARM и дать оценку угроз безопасности этого процесса. Вообще ARM-процессоров и вообще ОС. Вы понимаете, все ведь слышали про эти ARM, и что такое ОС тоже все знают. Желательно, на уровне квадратиков со стрелками.

                          Загрузка ARM в четырех прямоугольниках — под катом.
                          Читать дальше →