Linux. Полезные утилиты для работы с файлами.

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

Говорим про утилиты rsync и про использование find для удаления старых файлов и пустых директорий.

Linux. Туннель по требованию, или автосоединение VPN.

Совершенно не всегда рационально постоянно держать VPN в подключенном состоянии. В данной статье поговорим о том, как автоматически «поднимать» туннель только когда в нем есть необходимость, а именно, чтобы тот «активировался» только при попытке отправки трафика через tun/tap. Для реализации такого решения был создан сервис (демон) под Linux — tuninetd.

Linux. Определить включен ли компьютер (через сеть).

Сегодня напишем простой скрипт на языке shell, который будет определять включен ли компьютер, находящийся в сети. Например, нужно, чтобы туннель на роутере поднимался только, когда клиентская машина включена и разрушался, при ее выключении. Вот такая у нас будет схемка, в качестве VPN сервера может выступать маршрутизатор филиала фирмы. Или, может быть, вы захотите, чтобы туннель […]

OpenCart. Создаем расширение для установки через админку.
PHP

В прошлый раз мы учились создавать форму «обратный звонок» вручную, путем прямого исправления и добавления необходимых файлов для OpenCart 2. Хотя этот метод хорош для понимания структуры CMS и относительно прост, — он достаточно варварский. И, строго говоря, так действовать крайне нежелательно, ввиду отсутствия какого-либо контроля из админки и сложностей с обратимостью изменений. Скачать готовое […]

OpenCart. Плавающая форма обратной связи через AJAX.
JavaScript, PHP, Разное

Небольшой, но подробный туториал для начинающих разработчиков. Возникла потребность в плавающей, выдвигающейся сбоку форме обратной связи (обратный звонок). К сожалению, готового решения я так и не нашел, кроме громоздкого, через модуль vqmod. Его суть заключается в перезаписи файлов OpenCart на лету, этакий своеобразный прокси-компонент, или декоратор, если угодно. Идея, конечно, интересная, но не об этом […]

Node.js простой логгер HTTP заголовков
JavaScript

Временами полезно знать, какие именно заголовки отправляет HTTP клиент серверу, особенно во время отладки. Приведенный ниже пример, позволяет простым способом решить данную задачу, с помощью встроенных модулей Node.js. Ровно тот случай, когда проще (и даже интереснее) написать элементарный «http сервер» самому, чем разбираться с готовыми продуктами — настраивать логи, устанавливать wireshark и тому подобное. Тем […]

Symfony. Компонент EventDispatcher (диспетчер событий).
Symfony

Вольный перевод официальной документации. EventDispatcher предоставляет инструменты, которые позволяют компонентам вашего приложения взаимодействовать друг с другом, путем генерирования событий и их обработки. Предисловие Объектно-ориентированный подход проделал большой путь, ради удобства расширения кода. Создавая классы с четко определенными «обязанностями», ваш код становится более гибким. Другие разработчики могут легко расширять его, через подклассы (наследование), чтобы модифицировать поведение […]

Symfony. Routing — компонент маршрутизации.
Symfony

Вольный перевод официальной документации. Компонент маршрутизации связывает HTTP запрос с набором заранее сконфигурированных данных. Установка Вы можете установить компонент двумя способами: Через Composer (symfony/routing – проект packagist.org) Используя официальный Git репозиторий (https://github.com/symfony/routing) Затем, подключить автозагрузчик vendor/autoload.php, который предоставляет Composer. Иначе, ваше приложение не сможет найти необходимые для компонента классы. Использование Для развертывания системы маршрутизации, вам […]

Symfony. Компонент HttpFoundation.
Symfony

Вольный перевод официальной документации. Компонент HttpFoundation, позволяет взаимодействовать с HTTP через объектно-ориентированный подход. В PHP, запрос представлен, как совокупность глобальных переменных ($_GET, $_POST, $_FILES, $_COOKIE, $_SESSION, …), а ответ формируется с помощью некоторых функций (echo, header(), setcookie(), …) Компонент Symfony – HttpFoundation – заменяет упомянутые глобальные переменные и функции, предоставляя объектно-ориентированный слой. Установка Вы можете […]

Symfony. Компонент HttpKernel.
Symfony

Вольный перевод официальной документации. Компонент HttpKernel обеспечивает структурированный процесс, в результате которого объект Request преобразуется в Response, при помощи компонента EventDispatcher. HttpKernel достаточно гибок, чтобы на его базе создавать полнофункциональные фреймворки (Symfony), микро-фреймвори (Silex) или мощные CMS системы (Drupal). Установка Вы можете установить компонент двумя разными способами: Через Composer (symphony/http-kernel – проект packagist.org) Официальный Git […]

Отправляем почту, чтобы она не попадала в спам

Для того, чтобы грамотно обеспечивать рассылки посетителям Вашего сайта, необходимо принять ряд мер. Кроме правильного содержания письма, в котором нежелательны ссылки на внешние ресурсы и прикрепленные файлы (в том числе изображения), следует побеспокоиться о грамотной настройке SPF и DKIM. Тем более, за их отсутствие принимающий почтовый сервер очень сильно «штрафует». Об этом и поговорим. Настройка […]

SSH. Разбираем процесс соединения и шифрования.

SSH, или secure shell, — это наиболее распространенный способ безопасного удаленного администрирования серверов. Используя некоторые технологии шифрования, SSH предоставляет механизм для организации безопасного соединения, между двумя машинами. В этой статье мы рассмотрим, какие именно подходы применяются в SSH. Для безопасной передачи данных, SSH использует поочередно различные технологии, которые включают в себя симметричное, ассиметричное шифрование и […]

Linux. Маршрутизация некоторых сайтов через VPN.

Уровень сложности материала — средний. Иногда, возникает необходимость перенаправлять трафик к некоторым сайтам через другой сетевой интерфейс. Простой пример: сотрудники филиала большой компании, должны работать со служебными разделами корпоративного портала через VPN. Из сети Интернет, доступ к данным разделам закрыт, в связи с требованиями безопасности. У нас есть Linux сервер, который, помимо прочего, функционирует в […]

Linux. Строим туннель (VPN), с помощью OpenSSH

Не все знают, что с помощью обычного OpenSSH сервера и клиента, можно пробрасывать порт через туннельное соединение. Но о том, что есть возможность строить полноценные туннели с маршрутизацией и вовсе единицы. Сегодня расскажу, как это сделать, на простом примере со следующей схемой: Первое (и очевидное), на клиенте и сервере должен быть установлен пакет OpenSSH. Кстати, […]

Зачем нужны фреймворки?
Разное

Статья для начинающих программистов (попытка привести понятные обоснования).

Тот самый вопрос, который задает начинающий программист, и на который обычно получает расплывчатый ответ от опытных разработчиков: «это удобно», «быстрее разработка» и тому подобная, с точки зрения задающего, ерунда.

10 наиболее распространенных вопросов на собеседовании по JavaScript (часть 2)
JavaScript

Продолжаем разбирать часто задаваемые вопросы на интервью. 6. Что такое прототипное наследование (prototypal inheritance) Грамотным ответом будет: изначально каждый объект обладает свойством — прототипом. Вы можете добавлять в него методы и свойства. Создавать другие объекты на основе прототипа. Создаваемый объект автоматически унаследует свойства и своего прототипа. Если свойство в новом объекте отсутствует, то будет произведен […]

10 наиболее распространенных вопросов на собеседовании по JavaScript (часть 1)
JavaScript

Проходить JavaScript интервью всегда непростая задача. Вопросы могут быть из самых разных областей, в том числе включать в себя задачи из новой или старой версии языка. Особенности браузеров, работы с HTML, приемы и хитрости связанные с jQuery и т.д. Само собой разумеется, вопросы будут касаться и алгоритмических проблем, работы с данными, возможно даже спросят про […]

Как сделать, чтобы Asterisk сам позвонил

Иногда нужно совершить автоматический звонок прямо с АТС Asterisk. Если случилось что-то очень важное в составе системы мониторинга. Или в составе системы умного дома. Я, например, использую эту возможность для сохранения редко используемых SIM карт, — периодически совершаю с них звонки в автоматическом режиме. Звоню на свой же телефон и слушаю, что мне хочет сообщить […]