Pull to refresh
0
0
Николай @anp-nikolja

Веб-разработчик

Send message

Домашний сервер на базе Proxmox

Level of difficultyEasy
Reading time9 min
Views33K

Привет! Меня зовут Александр Щербаков. Я DevOps команд страхования в Банки.ру. На своём карьерном пути я успел поработать эникейщиком, системным администратором и, наконец, DevOps‑инженером с несколькими командами разработки. Как и любой инженер, я стремлюсь постоянно совершенствоваться: получать новые знания, изучать как устоявшиеся, так и только появившиеся технологии.

И здесь сразу появляется главная проблема — для развития DevOps нужна среда, где можно запускать ПО для исследования. Разработчикам проще: открыл документацию, скачал IDE, начал пробовать и изучать новую технологию. А вот DevOps‑инженеру одной только IDE будет мало, так как часть его работы как минимум завязана на Linux серверах. Поэтому важно не просто знать, как использовать готовые решения, но и понимать, как они функционируют на уровне инфраструктуры.

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

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

Читать далее
Total votes 54: ↑52 and ↓2+58
Comments138

Пишем веб-компонент для svg иконок

Level of difficultyMedium
Reading time4 min
Views4K

Всем привет! Сегодня мы рассмотрим один из вариантов интеграции svg иконок в наш фронтенд проект используя веб-компоненты. Основная идея компонента заключается в том, чтобы лениво подгружать в SVG спрайт иконки и переиспользовать уже загруженные иконки при необходимости. Сами иконки будем вставлять в разметке в виде <svg-icon name="arrow-angle-down"> нам понадобится всего сотня строк кода! Кому интересна реализация, прошу под кат!

Читать далее
Total votes 7: ↑6 and ↓1+6
Comments21

Kerberos простыми словами

Level of difficultyMedium
Reading time46 min
Views30K

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

Данную статью я написал после того, как сделал собственную библиотеку, генерирующую сообщения протокола Kerberos, а также после того, как я протестировал «стандартный клиент» Kerberos в Windows — набор функций SSPI. Я научился тестировать произвольные конфигурации сервисов при всех возможных видах делегирования. Я нашёл способ, как выполнять пре‑аутентификацию в Windows как с применением имени пользователя и пароля, так и с помощью PKINIT. Я также сделал библиотеку, которая умещает «стандартный» код для запроса к SSPI в 3–5 строк вместо, скажем, 50-ти.

Хотя в названии статьи фигурирует «простыми словами» однако эта статья предполагает, что читатель уже имеет какое‑то представление о Kerberos.

Читать далее
Total votes 18: ↑18 and ↓0+19
Comments19

CSS для печати на бумаге

Reading time10 min
Views11K

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

В этой статье я объясню основы CSS, управляющие внешним видом веб-страниц при печати, и дам пару советов, которые могут вам помочь в этом.

Читать далее
Total votes 23: ↑22 and ↓1+28
Comments17

Как на самом деле Async/Await работают в C#. Уроки по асинхронному программированию из первой половины работы

Level of difficultyMedium
Reading time11 min
Views17K

Несмотря на то, что с предыдущей статьей-переводом мы выяснили что перевод уже есть на Хабре я рискну продолжить анализ этой работы.

Теперь это НЕ перевод. Это моя интерпретация тех частей содержания первой половины Поста: Как на самом деле Async/Await работают в C#, которые мне показались заслуживающими внимания в этой работе, с моими пояснениями относительно того почему у меня возникла именно такая интерпретация материала.

Судя по количеству просмотров, работа вызывает интерес, но пробиться сквозь нагромождение терминов трудно даже для подготовленного читателя, как мне кажется. Я хочу попробовать перевести не с английского на русский, а с некоторого кулуарно-профессионального на какой-то более доступный язык. Не знаю, насколько доступный, надеюсь получить некоторый отклик, который поможет мне понять, насколько у меня это получилось. Заранее хочу сказать, что автор действительно изложил как или во что компилируются конструкции Async/Await и, соответственно, как они работают изнутри. Проблема в том, что автору пришлось написать большую подготовительную часть чтобы подвести к изложению этого внутреннего устройства Async/Await. И мне, волей неволей, придется пройтись по всему что предваряет, собственно, основную идею в реализации Async/Await. Поэтому запаситесь терпением либо начинайте читать сразу последнюю часть.

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

Дисклеймер 1

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

Читать далее
Total votes 16: ↑11 and ↓5+8
Comments22

Разворачиваем и заворачиваем в docker проект ASP.NET core на Ubuntu в связке с PostgreSQL

Level of difficultyEasy
Reading time5 min
Views13K

На просторах интернета заметил, что довольно мало статьей про ASP.NET под Linux. К сожалению, новички вроде меня копаются часами в поисках нужной информации, поэтому в этой статье мы вместе развернём минимальное приложение ASP.NET core под Linux в среде Ubuntu и в связке с PostgreSQL и с котиками на сервере nginx, а также упакуем всё в docker контейнеры. В ходе этой статьи мы разберём некоторые консольные команды для ежедневного пользования.

Приступить к чтению
Total votes 8: ↑5 and ↓3+4
Comments20

Typescript: принцип подстановки функций

Level of difficultyMedium
Reading time5 min
Views7.3K

По аналогии с принципом LSP из ООП, при работе с функциями в Typescript стоит придерживаться следующего принципа:

Принимая колбэк с меньшим числом аргументов, оборачивайте его, прежде, чем передавать его далее в качестве колбэка с большим числом аргументов.

Почему это так?
Total votes 5: ↑5 and ↓0+5
Comments7

Автоматические бэкапы БД PostgreSQL по расписанию

Level of difficultyEasy
Reading time6 min
Views18K

В этой статье я поделюсь скриптом для создания бэкапов БД PostgreSQL за определенный период (например: 1, 2, 3 дня, 1 неделя, 1 месяц, 6 месяцев, каждый год).
Объясню как запустить скрипт с помощью расписания crontab, покажу как настроить синхронизацию папки с бэкапами с облаком Yandex Disk.

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

ESP32 снимает показания водяных счетчиков и сам передает их «куда надо»

Level of difficultyEasy
Reading time7 min
Views36K

В сети сотни статей про использование ESP32 для съема показаний приборов учета, но практически все из них про интеграцию с «умным домом». Мой вариант реализации решает практическую задачу - просто сам передает показания, снимая с меня эту задачу.

Основное отличие моего решения, от тех что я видел, заключается в максимальной автономности и легкости контроля и управления. ESP32 самостоятельно общается с сайтом который принимает показания приборов учета посредством встроенного http клиента. Процесс контролируется и управляется встроенным в ESP32 telegram ботом.

Читать далее
Total votes 22: ↑20 and ↓2+24
Comments86

Оптимизация бэкенда приложения с примерами на Symfony. Часть 1

Reading time6 min
Views5.8K

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

В текущей статье, рассмотрим темы - n+1, пагинация и индексы. Приятного чтения!

Описание приложения

Рассматриваемый проект - это веб-журнал посещений различных мест людьми с возможностью выгрузки и загрузки журнала в формате XML. Пользователь может загрузить журнал посещений в формате XML через форму на странице /upload, и на основе информации из файла будет заполнена база данных. Вся информация о посещениях будет отображаться на главной странице /index. Экспорт из системы осуществляется через команду, которая преобразует информацию из системы в формат XML и выгружает ее в файл (data.xml).

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

Как на самом деле работает Async/Await в C# (Часть 1)

Level of difficultyHard
Reading time12 min
Views55K

Несколько недель назад в блоге «.NET Blog» появилась статья «Что такое .NET, и почему вы должны выбрать его?». В нем был представлен высокоуровневый обзор платформы, кратко описаны различные компоненты и архитектурные решения, а также обещаны более подробные посты по затронутым темам. Этот пост является первым таким продолжением, в котором подробно рассматривается история создания, архитектурные решения и детали реализации async/await в C# и .NET.

Читать далее
Total votes 17: ↑16 and ↓1+16
Comments8

Как сделать простой UPS для NAS

Level of difficultyMedium
Reading time11 min
Views23K

Как известно, большинство UPS подключаются между розеткой 220В и NAS. При этом ничто не мешает разместить UPS внутри корпуса NAS или хотя бы позаботиться об этом заранее.

Рассмотрим вариант дизайна такого UPS, который можно разместить внутри корпуса для тех NAS, которые для работы требуют только одного напряжения питания 12В.

Всё ещё хочешь собрать UPS?
Total votes 66: ↑65 and ↓1+80
Comments89

Архитектура приложений Web 3.0

Reading time11 min
Views21K

Архитектура приложений Web 3.0 (или «DApps») полностью отличается от приложений Web 2.0. 

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

Как приложение Web 2.0 это может показаться простым, но в архитектуру Medium входит многое, чтобы сделать все это возможным:

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

Во-вторых, бэкэнд (написанный на таком языке, как Node.js, Java или Python) должен определять бизнес-логику Medium. Например, что происходит, когда новый пользователь регистрируется, публикует новый блог или комментирует чей-то еще блог? 

В-третьих, фронтэнд (обычно написанный на JavaScript, HTML и CSS) должен определять логику пользовательского интерфейса Medium. Например, как выглядит сайт и что происходит, когда пользователь взаимодействует с каждым элементом на странице?

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

Читать далее
Total votes 12: ↑7 and ↓5+3
Comments12

Перенос системы с MBR на UEFI

Reading time5 min
Views27K

Недавно на работе возникла задача перенести рабочие места менеджеров со старых компов на новые. А человеки они такие - они привычны к своему годами выстроенному окружению. Поэтому я решил перенести систему "как есть". Благо везде 10ка, а она довольно либерально относится к таким миграциям с железки на железку, с семеркой такое не проканало бы...Вот только старые системы были установлены в MBR, а материнские платы с процами 11ого поколения MBR не очень то и поддерживают...

Если вкратце - то переносится раздел с виндой, перед ним создается EFI раздел размером в 100 МБ и MSR размером в 16... Последний оказался нужен. Для работы системы он не нужен, но вот обновления нормально на такую "перенесенную" систему без него не встанут совсем...

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

Подключаем алфавитно-цифровой экран к VGA

Reading time5 min
Views16K

Нет, это не шутка. В действительности к VGA, DVI, HDMI можно подключать различные устройства, и даже питать их. И это очень удобный способ работы с различными устройствами и нестандартное использование обычного интерфейса.

Ларчик просто открывается, всё дело в том, что в интерфейсе VGA (а также в других видеоинтерфейсах) присутствует ещё одна шина данных I²C, которая доступна для использования и её легко можно применить в своих самоделках.
Читать дальше →
Total votes 91: ↑89 and ↓2+125
Comments46

Обход блокировок за NAT без белого IP

Reading time5 min
Views29K

На написание статьи меня сподвиг интересный Tutorial от Валерия Лутошкина с настройкой BGP и VPS на оборудовании MikroTik. Это решение натолкнуло меня на домашнюю практику с протоколами динамической маршрутизации. Попробовав его реализовать, я понял, что мой домашний провайдер не даёт манёвров для действий и блокирует порт TCP 179 по умолчанию. В дополнение к этому у меня нет белого IP адреса и я за NATом. В общем все прелести рядового пользователя. Разбираемся как облегчить себе жизнь с помощью MikroTik.

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

Интеграция Asterisk и Битрикс24

Reading time9 min
Views70K

В сети есть разные варианты интеграции IP-АТС Asterisk и CRM Битрикс24, но мы, все таки, решили написать свою.

По функционалу все стандартно:

  • Кликом на ссылку с номером телефона клиента в Битрикс24, Asterisk соединяет внутренний номер пользователя, от имени которого это клик совершен, с номером телефона клиента. 
В Битрикс24 фиксируется запись о звонке и по окончании вызова подтягивается запись разговора.
  • На Asterisk поступает звонок извне — в интерфейсе Битрикс24 показываем карточку клиента тому сотруднику, на номер которого этот звонок прилетел.
    Если такого клиента нет, откроем карточку создания нового лида.
    Как только звонок завершен, отражаем это в карточке и подтягиваем запись разговора.

Под катом расскажу как все настроить у себя и дам линк на github — да-да, забирайте и пользуйтесь!
Читать дальше →
Total votes 37: ↑33 and ↓4+29
Comments15

Остров Русь — инструкция по импортозамещению

Reading time6 min
Views91K

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

Что наихудшее может случиться в плане софта и коммуникаций?

И что делать?

Читать далее
Total votes 62: ↑53 and ↓9+66
Comments142

Супертоксин своими руками. Диоксин и хлорбифенил из конденсатора старой лампы дневного света

Reading time17 min
Views32K
Началась вся эта история с того, что я учредил химическую антипремию (ХИМ/ДИЧЬ-2022 с призом в 1 млн. IRR и репродукцией Хайко Мюллера в виде бонуса). В качестве условного соискателя привел пример мужика, который свой гараж отапливал солярой, смешанной с жидким диэлектриком «совтол», слитым из трансформатора. Это вызвало шквал эмоций у читателей, поток фотографий пусковых конденсаторов от циркулярных пил в ЛС и массу сопутствующих вопросов («а этот точно не ядовит?!»). Под катом ответы на самые часто задаваемые вопросы, связанные с «конденсаторно-трансформаторным делом», инструкция для охотника за «паразитами» Ленинакана. Fun-а мало, матчасти много.


Читать дальше →
Total votes 74: ↑71 and ↓3+89
Comments81
1
23 ...

Information

Rating
Does not participate
Location
Волгоград, Волгоградская обл., Россия
Registered
Activity