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

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

Send message

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

Reading time3 min
Views5.1K

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

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

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

Reading time6 min
Views59K

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

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

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

Reading time6 min
Views127K
image

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


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

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

Reading time4 min
Views7.5K

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

Читать далее
Total votes 13: ↑7 and ↓6+2
Comments3

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

Reading time7 min
Views41K

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

Читать далее
Total votes 22: ↑19 and ↓3+17
Comments104

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

Reading time6 min
Views18K

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

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

Читать далее
Total votes 12: ↑11 and ↓1+13
Comments11

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

Reading time12 min
Views45K

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

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

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

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

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

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

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

Reading time5 min
Views22K
Вот линейный градиент на CSS, идущий от чисто жёлтого до чисто синего цвета:


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

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

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

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

Reading time4 min
Views5.1K

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

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

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

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

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

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

Reading time3 min
Views21K

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

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

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

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



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

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

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

Reading time9 min
Views14K

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

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

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

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

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

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

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

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

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

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

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

Reading time4 min
Views8.8K

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

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

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

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

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

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

Raspberry pi 3 B +

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

Pi camera

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

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

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

Читать далее
Total votes 14: ↑9 and ↓5+5
Comments16

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

Reading time7 min
Views49K


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

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

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

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

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

Reading time5 min
Views28K

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

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

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

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

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

Читать далее
Total votes 19: ↑7 and ↓12-1
Comments15

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

Reading time15 min
Views9.4K

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

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

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

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

Reading time19 min
Views23K


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

Information

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