Pull to refresh
-8
0
Александр @irbis_al

Пользователь

Send message

Рецепты Nginx: локализация страниц об ошибках

Reading time 3 min
Views 4.7K

Для приготовления локализации страниц об ошибках нам понадобится сам nginx и его плагины error_page_inherit и include_server. Конечно, такую локализацию можно сделать и без этих плагинов, но у неё будет несколько недостатков. Во-первых, если в каком-то локейшене задаётся своя страница об ошибке, то все страницы об ошибках из предыдущих уровней не наследуются для этого уровня. Эту проблему решает первый плагин, позволяя наследовать страницы сообщений об ошибках. А, во-вторых, для каждого сервера придётся вручную включать локейшен обработки страницы об ошибке. И эту проблему как раз решает второй плагин, позволяя наследовать подключение файлов из главной конфигурации во все сервера.

Итак
Total votes 11: ↑11 and ↓0 +11
Comments 3

Обзор Linux-телефона PinePhone. Часть 1 — распаковка и первые впечатления

Reading time 6 min
Views 53K

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

Приобрели у компании-производителя (а еще мы рассказывали об их паяльнике, детальный разбор которого тоже вскоре опубликуем), и вот на днях телефон пришел. В этой части — распаковка и личные впечатления от первых часов работы с устройством. Во второй части будет обзор впечатлений после использования девайса в качестве рабочей станции (это, на мой взгляд, самая полезная его функция). Что же, если вам интересен этот модульный, защищенный от прослушивания и сервисов Google девайс — прошу под кат.
Читать дальше →
Total votes 88: ↑87 and ↓1 +86
Comments 148

Как узнать общий объем физической памяти (RAM) в Linux

Reading time 6 min
Views 92K
image

1. Краткое содержание


Иногда возникает необходимость проверить общий объём памяти сервера, на котором запущена ОС Linux, или же данные о памяти требуются для сценариев командной оболочки. К счастью, есть множество инструментов, которые нам в этом помогут. В этом руководстве приводятся различные команды и утилиты для определения общего объёма физической памяти.
Читать дальше →
Total votes 30: ↑26 and ↓4 +22
Comments 18

IPv6: некоторые нюансы безопасности

Reading time 4 min
Views 7.1K

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

Читать далее
Total votes 14: ↑8 and ↓6 +2
Comments 3

Бесплатные Oracle Cloud серверы и Mikrotik — Site-to-Site VPN

Reading time 7 min
Views 40K

Предоставление бесплатных серверов от малопопулярного облачного провайдера - это не новость. А новость в том, что теперь Oracle, вдобавок к двум едва живым бесплатным x86_64 серверам, открывает доступ к мощностям на ARM64 - для всех, даром, и пусть никто не уйдет обиженным!© Предложение по ARM значительно более производительное, чем на традиционных процессорах. Добавляя к этому отсальные бесплатные "плюшки", я задаюсь вопросом: а зачем я до сих пор плачу за VPS и держу собственный серверок в подвале?! Все это можно выкинуть если удастся надежно и безопасно связать дата центр с домашней сетью.

Читать далее
Total votes 23: ↑20 and ↓3 +17
Comments 104

Android Studio. Kotlin. Сохранение файла в общедоступной папке Download

Reading time 6 min
Views 15K

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

Виной всей этой сложности - множество факторов. Языковой барьер: русский - английский, Kotlin - Java. Различия в способах копирования в разных версиях Android. Разобраться было не просто. В итоге - пишу этот гайд, чтобы облегчить жизнь тем, кто пойдет за мной следом...

Читать далее
Total votes 15: ↑14 and ↓1 +13
Comments 11

Как, собственно, работает местная анестезия, и где там можно знатно накосячить

Reading time 12 min
Views 42K

Электрический инъектор и ампула ультракаина.

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

Сложности начинаются уже на той стадии, когда вместо электротока на мембраны нейронов мы вводим вам в организм химическое соединение. Потому что так куда практичнее и легче. Точнее, мы, наверное, никогда бы не догадались про такой химический эффект, если бы не наркоманы. Когда кокаин ещё был разрешён и активно использовался в разных целях, испытатели заметили характерное онемение слизистых при введении. Это вызвало интерес, в частности, научный. Небезызвестный товарищ Зигмунд Фрейд, будучи студентом, очень увлёкся темой и исследовал местное анестезирующее действие. Дальше выяснилось, что раствор вещества просто изъязвляет слизистую, и спустя годы получилось выделить нужный амин, который, собственно, дальше и создаёт поток ионов Na+. Пропуская ещё несколько шагов на молекулярном уровне — нерв временно инактивируется.

Боль — это информация, и, блокируя информационный обмен через нерв, мы обезболиваем какой-то участок тела.

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

И, конечно, анестезия анестезии рознь. Давайте расскажу, в чём там ещё подводные камни.
Читать дальше →
Total votes 124: ↑119 and ↓5 +114
Comments 93

Создание красивых градиентов на CSS

Reading time 5 min
Views 20K
Вот линейный градиент на CSS, идущий от чисто жёлтого до чисто синего цвета:


Заметили, что в центре он становится бледным и грязным?

Это явление Эрик Кеннеди назвал «мёртвой зоной серого». Если вы тщательно не выбираете цвета для своих градиентов, то в ваших градиентах на CSS часто возникает такая обесцвеченная часть посередине.

Однако, как оказалось, можно полностью избавиться от мёртвой зоны серого. В этом посте я расскажу, почему она возникает, и о том, как можно использовать теорию цвета для создания насыщенных, ярких градиентов, «живых» по всей своей длине.
Читать дальше →
Total votes 67: ↑63 and ↓4 +59
Comments 30

Golang-дайджест № 12 (1 – 31 декабря  2021)

Reading time 4 min
Views 5K

Свежая подборка новостей и материалов

Интересное в этом выпуске

Выпущены Go 1.17.5 и Go 1.16.12, GoLand 2021.3, доступна первая бета-версия Go 1.18 (с дженериками), monovania 2D платформер-головоломка, созданный с помощью Ebiten, zinc альтернатива Elasticsearch, Map-Reduce в Go

Приятного чтения!

Читать далее
Total votes 11: ↑10 and ↓1 +9
Comments 4

Простейший сервер на Gorilla WebSocket

Reading time 3 min
Views 20K

В этом небольшом туториале, мы чуть подробнее разберем использование Gorilla WebSocket для написания своего websocket сервера, на примере чуть более функциональном, чем базовый пример и более легком для понимания, чем пример чата.

Читать далее
Total votes 5: ↑4 and ↓1 +3
Comments 7

Кунг-фу стиля Linux: делиться — это плохо

Reading time 7 min
Views 29K
В детском саду вы узнали о том, что делиться — это хорошо. Но, если речь заходит о компьютерной безопасности, часто оказывается, что не всё так однозначно. Концепция пространств имён (namespaces) появилась в ядре Linux начиная с версии 2.6.24. Это случилось много лет назад, но использование пространств имён не стало массовым явлением, несмотря на то, что существуют инструменты для работы с ними. Разумеется, задумываться о пространствах имён нужно далеко не всегда. Но это одна из тех вещей, которые, если в них возникает необходимость, дают нам просто бесценные возможности. Если описать эти возможности в двух словах, то получится, что пространства имён позволяют предоставить процессу его собственные, приватные ресурсы, и, что важнее, запретить процессу доступ к ресурсам из других пространств имён.



На самом деле мы, работая в Linux, постоянно пользуемся этой концепцией. Каждый запускаемый нами процесс существует в среде, описываемой неким набором пространств имён. Почему я говорю тут о «наборе» пространств имён? Дело в том, что существуют пространства имён, используемые для управления различными ресурсами. Например, можно настроить особое сетевое пространство имён, которое позволит предоставить процессу его собственный набор сетевых ресурсов — таких, например, как таблицы маршрутизации и правила файрвола.

Поговорим о том, как в Linux организована работа с пространствами имён, и о том, что они скрывают.
Читать дальше →
Total votes 48: ↑46 and ↓2 +44
Comments 4

Автореконнекты к RabbitMQ в Go

Reading time 9 min
Views 13K

Брокер сообщений RabbitMQ уже давно активно используется в микросервисах. Он используется, когда требуется асинхронная обработка сообщений от клиентов или при аналогичном межсервисном взаимодействии.

Практически нет языка, под который не была бы сделана соответствующая клиентская библиотека. Для Go такой библиотекой является github.com/streadway/amqp (далее по тексту библиотека amqp). Она имеет широкий функционал, можно подключаться к RabbitMQ, создавать каналы, настраивать очереди и exchange. Не хватает только самой малости – реконектов. А именно автоматических реконнектов при потери связи.

Поиск в Google показывает, что есть много различных решений. На проекте, где я работаю, мы создали ещё парочку. Но не найденные в сети, не уже созданные не устраивали по ряду причин:

Читать далее
Total votes 17: ↑14 and ↓3 +11
Comments 6

Простой SMS-шлюз на Raspberry Pi

Reading time 9 min
Views 20K
Иногда случается так, что надо отправлять откуда-нибудь SMS-сообщения. При этом неважно — откуда именно. Речь может идти о домашней системе, объединяющей кучу устройств (эти системы называют «homelab»), из которой надо отправлять уведомления. Это может быть система сигнализации, информирующая своего владельца о разных событиях, требующих его внимания. Возможно это — программный комплекс, которому нужно подтверждать правильность телефонных номеров, вводимых его пользователями. Во всех этих случаях, да и во многих других, SMS-сообщения были и остаются наилучшим способом передачи неких уведомлений по инициативе отправителя.

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

Очевидное решение всех этих проблем заключается в поддержке собственного SMS-шлюза.

Результат этого проекта: устройство, поддерживающее полнофункциональный REST API, способное отправлять и получать сообщения

Как, с минимальными затратами, самостоятельно сделать такой шлюз?
Читать дальше →
Total votes 52: ↑48 and ↓4 +44
Comments 36

Видеоcъемка и фотосъёмка на Raspberry pi в облако

Reading time 4 min
Views 8.5K

Здравствуйте дорогие читатели моего блога.

Сегодня статья посвещана организации процесса фото - и видиосъёмки с микрокомпьютера Raspberry pi с последующим сохранением данных в облако в атоматическом режиме.

У меня стояла задача создать систему фото- и видеонаблюдения за птицами у кормушки. 

Так как кормушка у меня находилась во дворе дома, то я решил собрать устройство на базе raspberry pi с подключённым проводным интернетом.

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

В качестве оборудования я использовал:

Raspberry pi 3 B +

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

Pi camera

клавиатура, мышь

LAN провод 20 метров

удлинитель и блок питания (преобразователь 5В и 2А)

Читать далее
Total votes 15: ↑10 and ↓5 +5
Comments 16

Настраиваем свой почтовый сервер в docker-compose

Reading time 7 min
Views 42K


Недавно мне потребовалось собрать свой почтовый сервер. В принципе, дело-то простое. Берёшь и ставишь сервер. Postfix, dovecot, letsencrypt, roundcube, spamassasin, clamav. Всё это — уже известные дела. Колея проторена. Иди и делай.

Но мне нужно было наплодить этих серверов. И я подумал, а почему бы не настроить всё на контейнерах? Такое можно сделать. Для этого надо скачать все вышеописанные контейнеры и написать .env файл века с более чем сотней разных параметров. Ну и, конечно же, сконфигурировать nginx. Там всё просто. С полдесятка хостов, и система заработает.

Я тяжело вздохнул и решил, что наверняка есть решение попроще. И оно нашлось. Mailu. Всё просто и из коробки, но всё-таки и в нём есть свои подводные мины.

Под катом — подробности того, как установить Mailu без боли и проблем, а также описание компонентов и рассказ о том, что и как можно менять и использовать.
Читать дальше →
Total votes 26: ↑25 and ↓1 +24
Comments 23

Работаем с XML как с массивом, на PHP

Reading time 5 min
Views 23K

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

XML ещё жив и иногда его приходиться парсить. Особенно если вы работаете со СМЭВ (привет всем ребятам для которых "ФОИВ" не пустой звук :) ).

Цели у такого парсинга могут быть самые разные, от банального ответа на вопрос какое пространство имён используется в xml-документе, до необходимости получить структурированное представление для документа вцелом.

Инструмент для каждой цели будет свой. Пространство имён можно найти поиском подстроки или регулярным выражением. Что бы сделать из xml-документа структурированное представление (DTO) - придётся писать парсер.

Для работы с XML в PHP есть пара встроенных классов. Это XMLReader и SimpleXMLElement.

Читать далее
Total votes 23: ↑11 and ↓12 -1
Comments 15

Исследуем .NET 6. Часть 3. Рассматриваем код WebApplicationBuilder

Reading time 15 min
Views 9K

Часть 1. ConfigurationManager
Часть 2. WebApplicationBuilder

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

Читать далее
Total votes 5: ↑5 and ↓0 +5
Comments 5

Углубленное знакомство с пространствами имен Linux. Часть 2

Reading time 19 min
Views 21K


В предыдущей части мы разобрали, чем являются пространства имен, и какую роль они играют в современных системах, после чего познакомились с двумя их видами: PID и NET. Во второй и заключительной части материала мы изучим пространства имен USER, MNT, UTS, IPC и CGROUP, а в завершении объединим полученные знания, создав полностью изолированную среду для процесса.
Читать дальше →
Total votes 60: ↑59 and ↓1 +58
Comments 1

Information

Rating
Does not participate
Location
Украина
Date of birth
Registered
Activity