• Pritunl — VPN-сервер для себя и друзей за 10 минут


      В связи с последними событиями в России хочу рассказать вам о классном self-hosted VPN-сервере. После простой установки, без особого труда и углубленных знаний вы сможете создавать пользователей, генерировать VPN-профили и смотреть графики использования сети.


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


      В результате чего пятидоллоравая VPS'ка может превратится в мощный инструмент обхода блокировок

      Читать дальше →
    • Автономный способ обхода DPI и эффективный способ обхода блокировок сайтов по IP-адресу

        Провайдеры Российской Федерации, в большинстве своем, применяют системы глубокого анализа трафика (DPI, Deep Packet Inspection) для блокировки сайтов, внесенных в реестр запрещенных. Не существует единого стандарта на DPI, есть большое количество реализации от разных поставщиков DPI-решений, отличающихся по типу подключения и типу работы.

        Существует два распространенных типа подключения DPI: пассивный и активный.

        Пассивный DPI

        Пассивный DPI — DPI, подключенный в провайдерскую сеть параллельно (не в разрез) либо через пассивный оптический сплиттер, либо с использованием зеркалирования исходящего от пользователей трафика. Такое подключение не замедляет скорость работы сети провайдера в случае недостаточной производительности DPI, из-за чего применяется у крупных провайдеров. DPI с таким типом подключения технически может только выявлять попытку запроса запрещенного контента, но не пресекать ее. Чтобы обойти это ограничение и заблокировать доступ на запрещенный сайт, DPI отправляет пользователю, запрашивающему заблокированный URL, специально сформированный HTTP-пакет с перенаправлением на страницу-заглушку провайдера, словно такой ответ прислал сам запрашиваемый ресурс (подделывается IP-адрес отправителя и TCP sequence). Из-за того, что DPI физически расположен ближе к пользователю, чем запрашиваемый сайт, подделанный ответ доходит до устройства пользователя быстрее, чем настоящий ответ от сайта.
        Читать дальше →
      • Укрощаем мультимедиа с помощью ffmpeg

          Внезапно ваш диск под завязку забит фотографиями и видео, а впереди новые поездки. Что делать, покупать новый, арендовать дисковое пространство на облаке, или может лучше сжать видео файлы через ffmpeg?





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

          Читать дальше →
        • Магия SSH

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

            Оглавление:

            1) Local TCP forwarding
            2) Remote TCP forwarding
            3) TCP forwarding chain через несколько узлов
            4) TCP forwarding ssh-соединения
            5) SSH VPN Tunnel
            6) Коротко о беспарольном доступе
            7) Спасибо (ссылки)
            Читать дальше →
          • Bash-скрипты, часть 6: функции и разработка библиотек

            • Translation
            Bash-скрипты: начало
            Bash-скрипты, часть 2: циклы
            Bash-скрипты, часть 3: параметры и ключи командной строки
            Bash-скрипты, часть 4: ввод и вывод
            Bash-скрипты, часть 5: сигналы, фоновые задачи, управление сценариями
            Bash-скрипты, часть 6: функции и разработка библиотек
            Bash-скрипты, часть 7: sed и обработка текстов
            Bash-скрипты, часть 8: язык обработки данных awk
            Bash-скрипты, часть 9: регулярные выражения
            Bash-скрипты, часть 10: практические примеры
            Bash-скрипты, часть 11: expect и автоматизация интерактивных утилит

            Занимаясь разработкой bash-скриптов, вы рано или поздно столкнётесь с тем, что вам периодически приходится использовать одни и те же фрагменты кода. Постоянно набирать их вручную скучно, а копирование и вставка — не наш метод. Как быть? Хорошо бы найти средство, которое позволяет один раз написать блок кода и, когда он понадобится снова, просто сослаться на него в скрипте.



            Оболочка bash предоставляет такую возможность, позволяя создавать функции. Функции bash — это именованные блоки кода, которые можно повторно использовать в скриптах.
            Читать дальше →
          • Индексы в PostgreSQL — 1

              Предисловие


              В этой серии статей речь пойдет об индексах в PostgreSQL.

              Любой вопрос можно рассматривать с разных точек зрения. Мы будем говорить о том, что должно интересовать прикладного разработчика, использующего СУБД: какие индексы существуют, почему в PostgreSQL их так много разных, и как их использовать для ускорения запросов. Пожалуй, тему можно было бы раскрыть и меньшим числом слов, но мы втайне надеемся на любознательного разработчика, которому также интересны и подробности внутреннего устройства, тем более, что понимание таких подробностей позволяет не только прислушиваться к чужому мнению, но и делать собственные выводы.

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

              В этой части мы поговорим про разделение сфер ответственности между общим механизмом индексирования, относящимся к ядру СУБД, и отдельными методами индексного доступа, которые в PostgreSQL можно добавлять как расширения. В следующей части мы рассмотрим интерфейс метода доступа и такие важные понятия, как классы и семейства операторов. После такого длинного, но необходимого введения мы подробно рассмотрим устройство и применение различных типов индексов: Hash, B-tree, GiST, SP-GiST, GIN и RUM, BRIN и Bloom.

              Индексы


              Индексы в PostgreSQL — специальные объекты базы данных, предназначенные в основном для ускорения доступа к данным. Это вспомогательные структуры: любой индекс можно удалить и восстановить заново по информации в таблице. Иногда приходится слышать, что СУБД может работать и без индексов, просто медленно. Однако это не так, ведь индексы служат также для поддержки некоторых ограничений целостности.
              Читать дальше →
            • Путешествие запроса Select через внутренности Постгреса

              • Translation
              До конференции PG Day'16 Russia остались считанные дни, расписание можно посмотреть на нашем сайте. Мы трудимся в поте лица, но тем не менее успеваем готовить для вас переводы самых интересных материалов о PostgreSQL. Сегодня представляем вашему вниманию перевод статьи Pat Shaughnessy о поведении запроса Select.

              Готовясь летом к этой презентации, я решил изучить некоторые части исходного кода PostgreSQL на C. Я запустил очень простой запрос select и наблюдал, что Постгрес с ним делает, с помощью LLDB, отладчика C. Как Постгрес понял мой запрос? Как он нашел данные, которые я искал?



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

              Исходный код PostgreSQL восхитил меня. Он оказался чистым, хорошо задокументированным и простым для понимания. Узнайте сами, как Постгрес работает изнутри, присоединившись ко мне в путешествии в глубины инструмента, которым вы пользуетесь каждый день.
              Читать дальше →
            • Flappy Bird портировали на… электронную сигарету



                Техника умнеет очень быстро. Сейчас даже выйти в Интернет с холодильника можно — это уже не шутка, причем давно. Подключенные устройства, smart камеры, часы, которые знают, когда лучше всего проснуться… Прогресс затронул и игровую сферу — если раньше играть можно было только на ПК или паре-тройке моделей игровых консолей, то сейчас игры доступны на всем, чем только можно. Да, и на холодильниках тоже.

                Но вот портирование мобильной игры в ПО электронной сигареты — это уже что-то новенькое. Пользователю YouTube с ником Balázs Bánk удалось перенести Flappy Bird на электронную сигарету. Результаты он демонстрирует на видео.
                Читать дальше →
              • Более чем 80 средств мониторинга системы Linux

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



                  1. первый инструмент — top

                  Консольная команда top- удобный системный монитор, простой в использовании, с помощью которой выводится список работающих в системе процессов, информации о этих процессах. Данная команда в реальном времени сортирует их по нагрузке на процессор, инструмент предустановлен во многих системах UNIX.
                  читать дальше
                • Arduino управляет промышленным грузовым лифтом

                    Дисклеймер: Если вы разбираетесь в электронике, то некоторые технические решения, описанные в этой статье повергнут вас в шок и ужас, а также вызовут непреодолимое желание оторвать автору руки. Я предупредил.
                    Немного о том как устроены грузовые подъемники и небольшая история создания системы управления для шестиэтажного грузового лифта на базе платы Arduino совместимого контроллера Seeeduino (ATmega 328).image
                    Довольно много картинок и букв!
                    Читать дальше →
                  • STM32F4: GNU AS: Настройка тактирования микроконтроллера (Часть 5)

                    • Tutorial
                    Все что нам нужно знать для написания программ на языке ассемблера для stm32f4 я уже написал, ссылки на прошлые публикации:
                    STM32F4: GNU AS: Программирование на ассемблере (Часть 1)
                    STM32F4: GNU AS: Мигаем светодиодом (Оживление) (Часть 2)
                    STM32F4: GNU AS: Мигаем светодиодом (Версия для STM32F4 Discovery, Оптимизация) (Часть 3)
                    STM32F4: GNU AS: Настраиваем среду компиляции (Часть 4)

                    Обсуждение можно вести на платформе VK: vk.com/topic-200545792_46642258

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

                    Для начала, запустим микроконтроллер на его штатной частоте: 168 мгц, от внешнего кварцевого генератора, с использованием PLL.
                    Читать дальше →
                  • QThread + QtSql the right way

                      Сегодняшняя статья вдохновила меня поделиться своим способом вынесения баз данных в отдельный тред. Способ подходит не только для БД, но и для любых взаимодействий, описываемых паттерном «в отдельном потоке живёт какой-то объект, надо у него что-то спрашивать и что-то с ним делать». Кроме того, способ хорош тем, что он пытается быть типобезопасным и расширяемым: никаких stringly-typed QMetaObject::invokeMethod(), никаких передач результатов дёрганья объекта в потоке через сигналы. Только прямой вызов функций, только QFuture!
                      Читать дальше →
                      • +20
                      • 9.7k
                      • 1
                    • Расчет трансформатора для обратноходового импульсного источника питания (Flyback)

                      Популярность обратноходовых источников питания (ОИП, Flyback) последнее время сильно возросла в связи с простотой и дешевизной этого схемного решения – на рынке можно часто встретить интегральные схемы, включающие в себя практически всю высоковольтную часть такого источника, пользователю остается только подключить трансформатор и собрать низковольтную часть по стандартным схемам. Для расчета трансформаторов также имеется большое количество программного обеспечения – начиная от универсальных программ и заканчивая специализированным ПО производителей интегральных схем.

                      Сегодня же я хочу поговорить о ручном расчете импульсного трансформатора. «Зачем это нужно?», может спросить читатель. Во-первых, ручной расчет трансформатора подразумевает полное понимание процессов, происходящих в источнике питания, чего зачастую не происходит, если начинающий радиолюбитель рассчитывает трансформатор в специальном ПО. Во-вторых, ручной расчет позволяет выбирать оптимальные параметры функционирования источника (и иметь представление, какой параметр в какую сторону надо изменить для достижения заданного результата) еще на этапе разработки.
                      Читать дальше →
                    • Sublime text для PL/SQL разработчика

                      Хотелось рассказать о том, как многими любимый Sublime Text можно использовать как неплохое средство для разработки на PL/SQL.

                      Хотелось бы начать с того, для чего нужен был этот велосипед, ведь есть вроде бы много других IDE для работы с SQL и в частности Oracle PL/SQL, такие как Toad for Oracle, SQL Navigator, PL/SQL Developer и даже бесплатный Oracle SQL Developer, однако у большинства из них есть несколько недостатков по сравнению с текстовыми редакторами типа Emacs, SciTe, Vim, Notepad++, Sublime Text и т.д.

                      Перечислю некоторые из них, данный список сугубо субъективный:

                      • “Тяжеловесность” каждой IDE, это выражается не только в размере дистрибутива, но и общими ощущениями, наличием множества не нужных функций, кнопок, отзывчивостью и т.д.
                      • Большинство приемлемых IDE являются платными, или условно бесплатными с ограниченным функционалом.
                      • Хотелось бы кроссплатформенность, под это требование из приведенных IDE попадает только Oracle SQL Developer.
                      • Функционал редактирования текста. В большинстве из них есть только базовые методы по работе с текстом: это набор текста, copy-paste, подсветка синтаксиса. Ни о каких “CTRL+D” как Sublime Text речи и не идет.
                      • Простота расширения, практически все IDE закрыты, никакой поддержки самописных пагинов и т.д.

                      Есть еще один пункт, но он больше относится к организации проектов и задач на рабочем месте. Хотелось бы немного затронуть эту тему, так как организация на проектах наложила свой отпечаток на настройку Sublime Text.
                      Читать дальше →
                    • Новый GUI для Postgresql

                      Хочу поделиться новым продуктом со всеми пользователями замечательной базы данных Postgresql. Встречайте — SQL Tabs — графическая SQL консоль для Postgresql. Это новый GUI клиент, в котором можно просматривать объекты базы данных, писать SQL запросы и строить графики.

                      На сегодняшний день можно скачать версии для OSX и Ubuntu. Пользователи других linux-дистрибутивов могут запустить приложение из исходников. К сожалению, версии для Windows пока нет. Хочется надеяться, что приложение понравится сообществу, и найдутся разработчики, способные помочь в выпуске пакетов под разные платформы: rpm, debian, windows.

                      Немного информации для разработчиков: SQL Tabs написано на стэке javascript, electron, react
 и использует native libpq драйвер для работы с базой. Выпускается под лицензий GPL3.

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


                      Читать дальше →
                    • Кросс-компиляция Qt5 под Linux для Win x32/x64/static/shared

                      Цель статьи


                      Документирование получения системы кросс-компиляции под Linux для Windows x32/x64/static/shared и сборка последней на момент описания Qt 5.4.1 в лайт-версии (для указанных четырех целей). Для себя, глубоко-обожаемого, ну и для пользы обществу.

                      Назначение


                      Многие разработчики приходят к выводу, что использование *nix (в частности Linux) более предпочтительно для разработки приложений, используя фрэймворк Qt. И тому есть причины. Qt изначально ориентирована на *nix инструментарий, типа autotool, make, perl… И второй момент, под никсами есть прекрасный инструмент — valgrind, под виндой порта пока его не видел. Ну и последняя причина: просто удобно иметь набор инструментария для создания приложений под различные целевые платформы — в одном месте.

                      Почему лайт-версия Qt5


                      Фрэймворк-Qt имеет модульную структуру, но, увы, не совсем совершенную. Некоторые зависимости от внешних библиотек «вешаются» не на модуль, требующий эти библиотеки, а на Qt5Core. Иными словами, нужна вам эта библиотека, или нет — вынь да положЪ в дистрибутив. Пример тому «монстрик» — библиотека ICU. Весит она почти 25 метров! Зависимость вешается, как я упоминал выше, на Qt5Core… а требует ее модуль Qt5WebKit (который по сути в 99% случаев не используется, по крайней мере мной). Что делаем? Вырезаем и отрезаем. Хотите получить фулл-версию Qt5? Об этом упомяну в заключении. Поехали.
                      Читать дальше →
                    • Программируем микроконтроллеры в QtCreator

                      • Tutorial


                      Почему-то в интернете мало документации про qbs, и я решил немного исправить эту ситуацию. Попробую описать в виде повествования, что необходимо сделать, что бы в QtCreator можно было компилировать (и не только) что угодно под что угодно.
                      Читать дальше →
                    • Энтропия? Это просто!

                        Этот пост является вольным переводом ответа, который Mark Eichenlaub дал на вопрос What's an intuitive way to understand entropy?, заданный на сайте Quora

                        Энтропия. Пожалуй, это одно из самых сложных для понимания понятий, с которым вы можете встретиться в курсе физики, по крайней мере если говорить о физике классической. Мало кто из выпускников физических факультетов может объяснить, что это такое. Большинство проблем с пониманием энтропии, однако, можно снять, если понять одну вещь. Энтропия качественно отличается от других термодинамических величин: таких как давление, объём или внутренняя энергия, потому что является свойством не системы, а того, как мы эту систему рассматриваем. К сожалению в курсе термодинамики её обычно рассматривают наравне с другими термодинамическими функциями, что усугубляет непонимание.
                        энтропия
                        Так что же такое энтропия?
                      • Некоторые бытовые моменты потребления электроэнергии

                        Последнее время появляются статьи (один, два) об использовании альтернативных источников энергии для питания квартир/домов, также упоминается о возможных перспективах. В этой статье я хочу предоставить некоторые данные, которые могут быть основой для дальнейших сравнений и анализов касательно потребления электрической энергии.
                        Читать дальше →
                      • Принципиальные схемы в Blender. FreeStyle

                        P.S. Месяц назад(вроде уже год пролетел и я всё же решился опубликовать, вдруг это кому-то пригодится.) решил написать короткую статью о рисовании схем в Blender, но в процессе написания подумал, что нужно чуть больше углубиться в Freestyle. Статья разрослась и так получилось, что не успел закончить, а потом и вовсе забыл про неё и вот сегодня увидев в черновиках решил опубликовать, плюс добавить немного информации о графиках.

                        Введение

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


                        Читать далее...