• Обзор некоммерческого проекта MyVPN с открытым исходным кодом

      image


      Приложение MyVPN с открытым исходным кодом позволяет автоматизировать управление виртуальными частными сетями. Для его использования не потребуются навыки системного администрирования.

      image

      Читать дальше →
    • Мозг + VPS за 30 рублей =?

        Как приятно, когда все необходимые мелочи под рукой: хорошо пишущая ручка и блокнот, заточенный карандаш, удобная мышка, пара лишних проводов и т.д. Эти незаметные штуки не обращают на себя внимания, но добавляют жизни комфорта. Такая же история с различными мобильными и десктопными приложениями: для длинных скриншотов, для уменьшения размера картинки, для подсчёта личных финансов, словари, переводчики, конверторы и т.д. А есть ли у вас такой VPS — который стоит недорого, всегда под рукой и приносит много пользы? Нет, не тот который у вас в компании, а свой, «карманный». Мы подумали, что без небольшого VPS в 2019 году как-то грустно, прямо как без привычной авторучки на лекции. А чего грустить? Лето же. Ну как лето. Лето айтишника: сидеть дома, пилить любимые проекты безо всякого сожаления. В общем, подумали и сделали.


        Коммунизм наступил, товарищи
        Читать дальше →
      • Перестаньте использовать DateTime

        • Translation
        Специально для студентов курса «Backend разработчик на PHP» подготовили перевод интересной статьи о сайд-эффекте популярного инструмента.





        Работа с датами и временем в PHP порой раздражает, поскольку приводит к неожиданным багам в коде:

        $startedAt = new DateTime('2019-06-30 10:00:00');
        
        $finishedAt = $startedAt->add(new DateInterval('PT3M')); 
        
        var_dump($startedAt->format('Y-m-d H:i:s')); //2019-06-30 10:03:00 
        var_dump($finishedAt->format('Y-m-d H:i:s')); //2019-06-30 10:03:00 

        Обе функции $startdate и $finishdate спешат на три минуты, потому как такие методы, как add (), sub() или modify() также изменяют объект DateTime, для которого они вызываются, прежде чем вернуть его. В приведенном выше примере, конечно же, показано нежелательное поведение.

        Мы можем исправить эту ошибку, скопировав объект, на который происходит ссылка, прежде чем взаимодействовать с ним, например:
        Читать дальше →
      • Предварительная загрузка в PHP 7.4

        • Translation
        Перевод данной статьи подготовлен специально для студентов курса «Backend разработчик на PHP».



        В PHP 7.4 добавлена предварительная загрузка — возможность, которая позволяет значительно повысить производительность кода.

        О предзагрузке в двух словах.

        • Для предварительной загрузки файлов вам потребуется написать отдельный PHP-скрипт.
        • Этот скрипт выполняется однократно при запуске сервера.
        • Все предварительно загруженные файлы доступны в памяти для всех запросов.
        • Изменения, внесенные в исходный файл, не подействуют, пока вы не перезапустите сервер.

        Поговорим о новой возможности подробнее.

        Читать дальше →
      • Новый билд Nemesida WAF Free для NGINX


          В прошлом году мы выпустили Nemesida WAF Free — динамический модуль для NGINX, блокирующий атаки на веб-приложения. В отличие от коммерческой версии, основанной на работе машинного обучения, бесплатная версия анализирует запросы только сигнатурным методом.

          Особенности релиза Nemesida WAF 4.0.129


          До текущего релиза динамический модуль Nemesida WAF поддерживал только Nginx Stable 1.12, 1.14 и 1.16. В новом релизе добавлена поддержка Nginx Mainline, начиная с 1.17, и Nginx Plus, начиная с 1.15.10 (R18).

          Зачем делать еще один WAF?

          Читать дальше →
          • +11
          • 3.6k
          • 2
        • Lazydocker — GUI для Docker прямо в терминале



            Два года назад мы уже делали обзор GUI-интерфейсов для работы с Docker, однако мир любителей подобных решений не стоит на месте. На днях до версии 0.2 обновился, а вместе с тем и получил широкую огласку, молодой проект lazydocker, позиционирующий себя как «более ленивый путь управлять всем в Docker». Утилита стремительно набирает популярность — ещё вчера количество его GitHub stars не достигало 3000, а уже сегодня перевалило за 4000.
            Читать дальше →
          • Всё, что нужно для начала работы с Vue.js

            • Translation
            Скорее всего, вы, читая эти строки, уже слышали о JavaScript-фреймворке, который называется Vue. Если вы собирались его опробовать, но не очень хорошо представляли себе то, с чего вам стоит начать, значит — этот материал написан специально для вас. Его автор говорит, что хочет рассказать о том, почему ему очень нравится Vue. Кроме того, он собирается представить всем желающим 4 способа написания первого приложения на Vue.



            В конце этого материала, вы найдете ссылки на целый курс по Vue.js.
            Читать дальше →
          • Скачиваем аудио вконтакте через клиентский js или расширение файлов .m3u8

              Как все начиналось...


              Как всегда, зависая вконтакте, я решил скачать пару новых аудиозаписей на комп. Но меня ждало разочарование: аудиозаписи возвращались в каком-то странном формате: m3u8. Этот формат даже vlc media pleyer не воспроизводил, и я стал думать, что делать…
              Читать дальше →
            • Смотрим торенты на смарт ТВ без смс и регистрации

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

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

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

              Ну, а для тех кто хочет посмотреть торрент, не защищенный авторским правом, на своём смарт телевизоре, не дожидаясь скачивания, ниже интересный способ.
              Читать дальше →
            • Раф Костер: «Community Cookbook»

              • Translation
              Полезный материал для модератеров Пикабу, Хабра, урбанистов, чиновников, колонистов на Марсе/Луне и всем тем, кто планирует править этим (или еще каким) миром. Слово Рафу Костеру, легенде геймдева, Ultima Online, Star Wars Galaxies, геймификации, автору книги «A Theory of Fun».

              image

              Со всеми этими беседами о том, что администратор или дизайнер виртуального мира может или не может делать в плане задания тона и обеспечения соблюдения этикета в виртуальном сообществе, мы совсем забыли про само сообщество. Поэтому давайте поговорим сегодня о том, что можете сделать вы, ваши друзья, ваш городок, ваши друзья по играм или ваша гильдия, чтобы стать более сильным (и веселым!) сообществом.

              В первую очередь важно общение. Если у вашей гильдии еще нет веб-страницы, электронной доски объявлений, рассылки новостей или списка рассылки по электронной почте, вы упускаете из виду наиболее важный фактор построения связей в сообществе. Очень хорошая тактика — выбрать человека, который всегда первым рассказывает о последних сплетнях и назначить его ответственным за ведение электронной рассылки. Большим преимуществом электронной рассылки или списка рассылки является то, что они не пассивны — они ищут члена сообщества и привлекают его.
              Читать дальше →
            • Как быстро попробовать CQRS/ES в Laravel или пишем банк на PHP

              • Tutorial


              Недавно в подкасте "Цинковый прод" мы с товарищами обсуждали паттерн CQRS/ES и некоторые особенности её реализации в Elixir. Т.к. я в работе использую Laravel, грех было не покопаться в интернетах и не найти как же можно потягать этот подход в экосистеме данного фреймворка.


              Всех приглашаю под кат, постарался максимально тезисно описать тему.

              Читать дальше →
            • Тестирование микрокомпьютеров для IoT

              Для начала рассмотрим термин «интернет вещей». В википедии увидим следующее определение:
              Интернет вещей (англ. Internet of Things, IoT) — концепция вычислительной сети физических предметов («вещей»), оснащённых встроенными технологиями для взаимодействия друг с другом или с внешней средой, рассматривающая организацию таких сетей как явление, способное перестроить экономические и общественные процессы, исключающее из части действий и операций необходимость участия человека.

              Гейты


              Гейт — это устройство, в котором заключена определенная логика по сбору и обработке информации внутри некоторой сети. Целью этой сети может быть подсчет количества человек, находящихся в здании. Такая сеть, в случае пожара, поможет пожарной бригаде определить остался ли кто-то в здании или нет.

              С ролью гейтов хорошо справляются микрокомпьютеры, которые мне хотелось бы рассмотреть подробнее. Для рассмотрения я выбрал несколько микрокомпьютеров примерно одного ценового диапазона и протестировал их.

              Микрокомпьютеры


              ASUS Tinker Board




              Микрокомпьютер от известной всеми компании ASUS, плата с открытыми спецификациями и с размерами Raspberry Pi (о которой мы поговорим дальше). Поддерживает воспроизведение 4K/30fps.
              CPU: Rockchip RK3288 (4x Cortex-A17 @ 1.8GHz)
              GPU: Mali-T760
              Оперативная память: 2 GB LPDDR3 RAM
              Интерфейсы: GbE, WiFi, Bluetooth 4.0, 4xUSB 2.0 плюс microSD, micro-USB, HDMI, MIPI-CSI, MIPI-DSI, 40-pin разъем
              Читать дальше →
            • Управление Raspberry через websockets

                Raspberry Pi снискали огромную популярность по всему миру. Однако многие из любителей-разработчиков сталкиваются с проблемой доступа к устройству из интернета. Как правило приходится колдовать с DDNS или докупать статический IP адрес. Оба варианта предполагают настройка роутера, что не для всех и не всегда доступно. Кроме того – откртытие прямого доступа к устройству из интрента несет в себе определнные риски безопасности.

                Крайне распространенным способом решения этой проблемы является использование промежуточного сервера, через который сервер и клиент подключаются друг к другую.
                Схема крайне широко используется в различных пакетах удаленного доступа: VNCViewer, AmmyyAdmin и т.д.

                Вариант 1-DDNS

                image

                Вариант 2 – статический IP адрес

                image

                Вариант 3 – использование промежуточного сервера

                image

                Эту схему подключения можно реализовать через протокол MQTT over Websockets, но мне было инетесно реализовать что-то значительно более простое, JSON-ориентированое, расширяемое, без ограничений протокола на размер сообщения и с более очевидной моделью безопасности.
                Читать дальше →
                • +18
                • 11.5k
                • 8
              • Учимся общаться между микросервисами на Node.js через RabbitMQ

                • Tutorial

                Это продолжение статьи «Пишем первый микросервис на Node.js с общением через RabbitMQ», которая была неплохо принята пользователями хабра.


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

                Читать дальше →
                • +13
                • 14.8k
                • 3
              • Манифест Чистого Программиста или краткий конспект книги «Чистый Код» Роберта Мартина

                  Данная статья является конспектом книги "Чистый Код" Роберта Мартина и моим пониманием того, каким Чистый Код должен быть. Тут нет разделов о тестировании, TDD, о том какая должна быть архитектура и т.д. Здесь все только о том, каким должен быть Чистый Код.


                  Читать дальше →
                • NoSQL базы данных: понимаем суть

                  В последнее время термин “NoSQL” стал очень модным и популярным, активно развиваются и продвигаются всевозможные программные решения под этой вывеской. Синонимом NoSQL стали огромные объемы данных, линейная масштабируемость, кластеры, отказоустойчивость, нереляционность. Однако, мало у кого есть четкое понимание, что же такое NoSQL хранилища, как появился этот термин и какими общими характеристиками они обладают. Попробуем устранить этот пробел.


                  Читать дальше →
                • Как построить сообщество. Перевод книги «Социальная архитектура»: Глава 1. Инструментарий

                  • Translation
                  image

                  Мой инструментарий социального архитектора состоит из 20 инструментов, каждый из которых соответствует какому-либо аспекту сообщества или группы. Их можно использовать двумя способами.


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


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


                  • Четкая миссия – заявленная причина существования группы.
                  • Свободное участие – насколько легко люди могут присоединиться к группе.
                  • Прозрачность – насколько открыто и публично принимаются решения.
                  • Бесплатные участники – как много можно платить людям за участие.
                  • Свобода работы с материалами (ремиксабельность) – насколько свободно участники могут использовать работу друг друга.
                  • Четкость протокола – насколько хорошо прописаны правила.
                  • Компетентность власти – насколько хорошо следят за соблюдением правил.
                  • Нон-трайбализм – насколько далеко распространяются права группы над своими участниками.
                  • Самоорганизация – насколько свободно могут участники определять свои задачи.
                  • Толерантность – как группа разбирается с конфликтами.
                  • Измеримый успех – как хорошо группа может отслеживать свой прогресс.
                  • Высокое награждение – как группа вознаграждает своих участников.
                  • Децентрализация – насколько широко распределены участники группы.
                  • Свободная рабочая среда – насколько легко создавать новые проекты.
                  • Стандартная структура – насколько общая структура стабильна и предсказуема.
                  • Плавность обучения – насколько легко начать и продолжить учиться.
                  • Позитивность – насколько группа движима позитивными целями.
                  • Чувство юмора – насколько серьезно группа себя воспринимает.
                  • Минимализм – сколько лишней работы делает группа.
                  • Разумное финансирование – как группа борется за выживание в экономическом плане.

                  Спасибо Сергею Даньшину за помощь с переводом.

                  Читать дальше →
                  • +22
                  • 23.4k
                  • 8
                • Муки выбора корпоративного мессенджера: бесплатно, свой сервер, не iChat


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

                  Начало


                  Когда я в первый день пришёл на работу, мне показали моё рабочее место, дали компьютер, зарегистрировали в Жире и Гитлабе, и показали главное средство общения сотрудников между собой — iChat. Можно подумать, это что-то про Apple, но всё было немного ужасней.
                  Читать дальше →
                • Делаем deface сайта с помощью XSS

                    Deface сайта можно сделать, если вы получили доступ к ftp, залили shell и тд, но также это можно сделать с помощью обычной XSS. В этой статье я хочу рассказать, как использовать Stored XSS для того, чтобы изменить содержимое главной страницы сайта или определенной страницы для того, чтобы массово воровать cookies у пользователей и делать редирект на свой сайт.

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




                    Итак, что такое deface (Википедия):
                    Deface (англ. deface — уродовать, искажать) — тип взлома сайта, при котором главная (или любая другая) страница веб-сайта заменяется на другую — как правило, вызывающего вида: реклама, предупреждение, угроза или шутка.
                    Зачастую доступ ко всему остальному сайту блокируется, или же прежнее содержимое сайта вовсе удаляется.
                    Читать дальше →
                    • +11
                    • 19k
                    • 2