Pull to refresh
28
-1.6

User

Send message

Как хранить в мастерской разное и длинное

Level of difficultyEasy
Reading time2 min
Views17K

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

Читать далее
Total votes 107: ↑103 and ↓4+99
Comments42

Небо Новогодней Ночи 2024

Level of difficultyMedium
Reading time31 min
Views4K

Последний раз в уходящем году Солнце зайдет за горизонт в 16 часов 04 минуты (этот момент усреднен относительно московского меридиана с долготой 37,5 градусов и для северной широты 56 градусов, и в других локациях может несколько отличаться). Примерно через час после захода Солнца на небе, если оно безоблачно, можно заметить самые яркие звезды и некоторые планеты.

Наше путешествие по новогоднему небосводу начинается в 17 часов по местному времени, и будет соответствовать виду звездного неба в средних северных широтах.

Читать далее
Total votes 27: ↑25 and ↓2+23
Comments17

Аномалии под нагрузкой в PostgreSQL: о чём стоит помнить и с чем надо бороться

Reading time14 min
Views24K

В этой статье мы разберём несколько аномальных случаев высокой нагрузки в СУБД PostgreSQL. Что это такое? Обычно PostgreSQL хорошо показывает себя под нагрузкой и оправдывает ожидания в отношении производительности — она остаётся высокой. Но при определённых профилях нагрузки СУБД может вести себя не так, как мы ожидаем. Это и есть аномалии, на которых мы сосредоточимся в данной статье (для тех, кто предпочитает видео, эта информация доступна в виде записи доклада на HighLoad++).

Наша компания помогает обслуживать мультитерабайтные базы данных в крупных проектах, поэтому мой рассказ об аномалиях основан на реальном опыте промышленной эксплуатации СУБД в Postgres Professional — порой мы сталкиваемся с тем, что СУБД ведёт себя не так, как мы ожидали.

Также в рамках статьи мы рассмотрим следующее:

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

Система водяных «тёплых полов» в квартире и частном доме. Что нужно знать, чтобы не пожалеть о содеянном?

Reading time16 min
Views61K

«Тёплые полы» в квартирах- это модная тема в ремонте ещё с 1990-х.

Сейчас тема сильно развилась, так как резко увеличилось количество специалистов, желающих такие полы построить из современных материалов.

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

Кто тут прав?

Читать далее
Total votes 112: ↑108 and ↓4+104
Comments334

Пингвин расставил сети: работа сети в Linux

Level of difficultyEasy
Reading time46 min
Views16K

Всем привет! С вами снова я, Аргентум! Сегодня я продолжу нашу серию статей об ядре Linux.

В этой статье мы будем изучать способ организации сети в мире серверов и то, как она эволюционировала от использования традиционного сетевого стека ядра Linux к виртуализации сети с использованием OVS и к обработке нагрузки телекоммуникационных компаний с использованием NFV и SR-IOV.

Читать далее
Total votes 17: ↑15 and ↓2+13
Comments5

GOST: швейцарский нож для туннелирования и обхода блокировок

Level of difficultyMedium
Reading time13 min
Views94K

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

Сегодня я расскажу о замечательном инструменте под названием GOST. Не пугайтесь, он не имеет никакого отношения к ГОСТ-шифрованию или чему-то подобному, на самом деле это Go Simple Tunnel. Он действительно simple (простой) в использовании и настройке, но при этом невероятно мощный, поскольку поддерживает огромное количество протоколов и транспортов, из которых вы при желании сможете построить самые упоротые и бронебойные комбинации, а именно...

Читать далее
Total votes 180: ↑177 and ↓3+174
Comments113

Пакуем весь трафик в Ping message, чтобы не платить за интернет | ICMP NAT traversal

Level of difficultyHard
Reading time29 min
Views84K

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

Так вот, переходя ближе к теме. Вы можете воспроизвести подобное поведение очень просто прямо сейчас при помощи вашего мобильного телефона и ноутбука. Я в своём конкретном кейсе буду пользоваться услугами оператора красного цвета, однако проблема актуальна для всех текущих 4 монополистов рынка сотовой связи. Как вам, скорее всего, уже известно, они около года меняют свою политику, внедряя одно интересное нововведение — с вас требуют дополнительной платы за раздачу интернета поверх основного пакета. То есть вы не можете взять и использовать свои 7 гигов на месяц как ресурс для раздачи при помощи точки доступа. Для точки доступа вам предлагают отдельный, зачастую совсем невыгодный тариф. Конечно, можно сменить основной тариф на специальный «тариф для раздачи» и платить втридорога, но, как вы понимаете, сегодня мы в потребителя будем играть совсем недолго. Сейчас по пунктам нужно доказать нечестность подобной политики и с чувством завершённого введения перейдём к непосредственно технотексту.

Подобные условия пользования, само собой, порождают внутреннее недовольство пользователей:

За интернет они платят? — Да.

Раздача как-либо использует ресурсы провайдера сверх нормы? — Нет.
Читать дальше →
Total votes 298: ↑296 and ↓2+294
Comments91

Моя любимая задача для собеседований по программированию

Level of difficultyMedium
Reading time9 min
Views97K

В сети есть уйма постов и видео, где разбираются ответы на вопросы LeetCode. Но обычно рассмотрение в них происходит с позиции соискателя, а не работодателя. В этой же статье я приведу разбор собственной задачи по программированию, которую использовал при приёме людей на работу в Amazon, Google и Microsoft.
Читать дальше →
Total votes 131: ↑126 and ↓5+121
Comments170

Точечная маршрутизация на Mikrotik: BGP и Address lists + Mangle. Реализация через домены

Level of difficultyMedium
Reading time17 min
Views35K

Как загрузить список из 500 доменов на mikrotik, чтоб он их преобразовал в IP-адреса?

Как заставить Mikrotik резолвить домены по wildcard?

Как поднять Shadowsocks\VLESS на ROS?

Никак

Я задался этими вопросами, достал hAP ac lite из шкафа и посмотрел, на что способна ROS 7 в конце 2023 года. Потестил всем известные способы, а также попробовал запихать много доменов в address-lists.

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

XRay (с VLESS/XTLS): проброс портов, реверс-прокси, и псевдо-VPN

Level of difficultyMedium
Reading time10 min
Views48K

Я уже написал тут много статей на тему установки и настройки прокси‑серверов XRay с недетектируемыми протоколами Shadowsocks-2022, VLESS (с XTLS), и т. п. И один из очень часто поднимаемых в комментариях вопросов звучит так: можно ли с использованием XRay как‑то организовать проброс портов или получать доступ к внутренностям корпоративной сети? Можно, и сейчас я расскажу как.

Итак, что же можно сделать с помощью реверс‑проксирования?

Можно получать доступ к каким‑либо сервисам на хосте за NAT'ом или строгим фаерволом, и даже более того — можно получать доступ к сервисам на других устройствах в локальной сети, к которой имеет доступ этот самый хост за NAT'ом файерволом.

Можно маршрутизировать весь (или некоторый в зависимости от настроенных правил) трафик на хост за NAT'ом или фаерволом и выпускать его оттуда в Интернет.
Например, вы проживаете за границей, хотите оплачивать счета за ЖКХ вашей недвижимости оставшейся России, но сервис оплаты не пускает вас с забугорных IP и не пускает вас с IP‑адресов даже российских VPS‑хостеров. Тогда можно поставить у кого‑нибудь из друзей или родственников в РФ преднастроенный роутер или одноплатник типа Raspberry Pi, который подключится к вашему прокси‑серверу, а вы, в свою очередь, через прокси‑сервер сможете достучаться до этого роутера/р‑пишки и выйти через него во внешний интернет как обычный пользователь, находящийся в России — и всем ресурсам будет виден IP‑адрес российского домашнего интернет‑провайдера.

Можно выборочно пробрасывать порты, например, все подключения на 80 порт прокси‑сервера будут переадресовываться на 80 (или любой другой) порт «изолированного» хоста или еще куда‑то дальше.

Можно даже в теории соорудить псевдо‑VPN, чтобы подключенные клиенты прокси‑сервера могли достукиваться друг до друга.

Читать далее
Total votes 69: ↑68 and ↓1+67
Comments92

Управляемое данными тестирование с использованием Cucumber

Reading time4 min
Views3.2K

Тестирование на основе данных позволяет сократить объем ручных действий, необходимых для проведения тестирования, а также упростить управление и сопровождение тест-кейсов. В целом использование тестирования на основе данных позволяет повысить качество программного обеспечения и гарантировать, что оно соответствует требованиям и ожиданиям пользователей. В этой статье рассмотрим Data-driven тестирование с использованием Cucumber.

Читать далее
Total votes 14: ↑12 and ↓2+10
Comments3

Как вести бизнес в США, не сжигая российский паспорт

Level of difficultyEasy
Reading time5 min
Views11K

Удивительная мысль, будто выход на американский рынок запрещён вообще всем гражданам РФ, встречается довольно часто даже среди IT-специалистов.

На самом деле россияне могут открывать в США компании и банковские счета, торговать, предоставлять платные услуги и сервисы, разгонять стартапы и в целом пользоваться теми же правами, что и весь остальной мир. И всё это вполне легально, без подставных лиц и многоуровневых махинаций.

Но есть нюанс.

Читать далее
Total votes 42: ↑26 and ↓16+10
Comments47

Bash Auto Completion в Linux

Level of difficultyEasy
Reading time5 min
Views15K

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

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

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

Читать далее
Total votes 33: ↑31 and ↓2+29
Comments6

Настройка CI/CD для Gitlab-репозитория: схемы и гайд по шагам

Level of difficultyMedium
Reading time11 min
Views55K

Рассказываем, как работать с CI/CD, о шагах при настройке сервера и о полезных командах, которые помогут в работе.

Привет! Меня зовут Николай, я Backend-разработчик в РЕЛЭКС.

В статье ты найдешь полезный теоретический материал, сравнение инструментов CI/CD и подробный гайд по сборке и развертыванию через Docker на удаленный сервер с помощью Gitlab CI/CD — на примере Spring Boot приложения.

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

Вы кто такие, я вас не знаю, или Как мы делаем JWT-аутентификацию

Level of difficultyMedium
Reading time11 min
Views25K

Привет! Меня зовут Данил, я backend-разработчик в Doubletapp. Почти во всех наших проектах есть пользователи, которые могут войти в систему. А значит, нам почти всегда нужна авторизация. Мы используем авторизацию, построенную на JSON Web Token. Она отлично сочетает в себе простоту реализации и безопасность для приложений.

В интернете есть много разных материалов с объяснением, что такое JWT и как им пользоваться. Но большинство примеров ограничиваются выдачей токена для пользователя. В этой статье я хочу рассказать не только о том, что такое JWT, но и как можно реализовать работу с access и refresh токенами и решить сопутствующие проблемы. Будет немного теории и много практики. Присаживайтесь поудобнее, мы начинаем.

Путеводитель:

Что такое JSON Web Token?
Использование и реализация
Простая реализация JWT
Access и refresh tokens
Как отозвать токены
Доступ с нескольких устройств
Удаление старых данных
Резюмируем

Читать далее
Total votes 21: ↑19 and ↓2+17
Comments45

Как PostgreSQL работает с диском. Илья Космодемьянский

Reading time20 min
Views16K

Расшифровка доклада 2014 года Ильи Космодемьянского "Как PostgreSQL работает с диском".


Часть поста, конечно, устарела, но здесь рассмотрены фундаментальные моменты PostgreSQL при работе с диском, которые актуальны и сейчас.


Диски, память, цена, процессор — в таком порядке смотрят на характеристики сервера админы, покупающие машину под базу данных. Как эти характеристики взаимосвязаны? Почему именно они?


В докладе будет объяснено, для чего нужен диск базе данных вообще, как PostgreSQL взаимодействует с ним и в чем заключаются особенности PostgreSQL по сравнению с другими базами.


"Железо", настройки операционной системы, файловой системы и PostgreSQL: как и для чего выбирать хороший setup, что делать, если конфигурация "железа" не оптимальна, и какие ошибки могут сделать бесполезным самый дорогой RAID-контроллер. Увлекательное путешествие в мир батареек, "грязных" и "чистых" страниц, хороших и плохих SSD-дисков, покрасневших графиков мониторинга и ночных кошмаров системных администраторов.

Total votes 13: ↑11 and ↓2+9
Comments1

Перестаём бояться генерировать байт-код

Level of difficultyMedium
Reading time15 min
Views14K

Многие, возможно, думают, что работа с байт-кодом Java (будь то чтение или, тем более, генерация) — это какая-то особенная магия, доступная только продвинутым разработчикам с особенно крутым опытом. На самом деле, я считаю такую точку зрения ошибочной. JVM устроена гораздо проще, чем CPU; она оперирует такими высокоуровневыми понятиями как классы, интерфейсы, методы, а не просто лопатит байты в памяти. В отличие от CPU, который легко уронить криво сгенерированным машинным кодом, JVM заботливо отверифицирует любой байт-код и в общем не даст выстрелить в ногу.

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

Весь приведённый код доступен в моём репозитории.

Читать далее
Total votes 34: ↑33 and ↓1+32
Comments18

Не так уж и страшен этот FAANG: 8 мифов о собеседованиях в BigTech

Level of difficultyEasy
Reading time9 min
Views29K

Привет, на связи таинственный Software Engineer из FAANG компании, пишущий только о собеседованиях. Ранее мы уже сравнивали Тинькофф с FAANG’oм и отказывались от миллионов RSU в Озон, а теперь поговорим о собеседованиях в BigTech: в знаковые для индустрии зарубежные компании, оффер которых — это билет в будущее.

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

Читать далее
Total votes 42: ↑34 and ↓8+26
Comments14
1

Information

Rating
Does not participate
Registered
Activity

Specialization

Database Developer, Database Architect
Lead
SQL
Database
PostgreSQL
Linux
Golang
Bash
English
C
C#
Oracle