Как стать автором
Обновить
0
0

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

Отправить сообщение

Аптайм 500 дней/перезагрузка/падение/собираем бэкап по частям

Время на прочтение6 мин
Количество просмотров9K

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

Все началось с того, что сервер статистики контактного центра заказчика (на тот момент ещё потенциального) сбросил все пользовательские сессии и перестал отвечать на запросы. Соответственно к нему подкатили тележку с монитором и перезагрузили. Это обычно надо делать раз в 90 дней по инструкции от вендора, но тут это не делалось больше 500 дней. В общем, сервер отметил юбилей аптайма. 

Дальше быстро выяснилось, что на рестарте посыпалась база и пропали конфиги. Но главное, что сервер стартанул, бэкапы куда-то писались. Всё хорошо, железо работает, диски в порядке, надо просто накатить бэкап. 

Но после накатывания бэкапа система просто легла. 

В этот момент нас позвали отмечать день рождения сервера. Без него не работала балансировка нагрузки на операторов внутри КЦ. 

Читать далее
Всего голосов 31: ↑30 и ↓1+33
Комментарии15

Основы Ansible, без которых ваши плейбуки — комок слипшихся макарон

Время на прочтение12 мин
Количество просмотров143K

Я делаю много ревью для чужого кода на Ансибл и много пишу сам. В ходе анализа ошибок (как чужих, так и своих), а так же некоторого количества собеседований, я понял основную ошибку, которую допускают пользователи Ансибла — они лезут в сложное, не освоив базового.


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


Ожидаемый уровень читателя — уже написано несколько тысяч строк ямла, уже что-то в продакшене, но "как-то всё криво".

Читать дальше →
Всего голосов 88: ↑86 и ↓2+108
Комментарии67

Модульный PHP монолит: рецепт приготовления

Время на прочтение10 мин
Количество просмотров21K

Статья написана по мотивам моего доклада на митапе. В нем я рассказываю историю того, как мы взяли и не распилили монолит на микросервисы, и что сделали вместо этого.

На тот момент наша команда работала над приложением, начало которому было положено еще в 2009 году не искушенными в архитектуре студентами. К 2018 это уже был типичный big ball of mud (большой ком грязи), или, этакий «монолит-копролит», как выразился один наш коллега. Думаю, многим знакомо.

Читать далее
Всего голосов 19: ↑18 и ↓1+25
Комментарии13

PHP Дайджест № 204 (17 – 31 мая 2021)

Время на прочтение4 мин
Количество просмотров11K
Фото: Christian Münch.

В эти две недели core команда PHP активно обсуждала предложение по Partial function Application и в качестве альтернативы Никита Попов предложил более простой синтаксис для получения ссылки на любые функции. Также в уже принятые в PHP 8.1 енумы предлагается добавить статические свойства.

Symfony 6 будет требовать PHP 8.0, а вышедшая Doctrine 2.9 поддерживает указание метаданных в атрибутах вместо PHPDoc.

Еще в выпуске классная статья про регекспы и инструкция по использованию Deployer, а также другие полезные статьи, пачка инструментов, немного видео и подкастов.

Приятного чтения!
Читать дальше →
Всего голосов 51: ↑51 и ↓0+51
Комментарии23

Гайд начинающего тимлида

Время на прочтение14 мин
Количество просмотров54K

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

Всё это я проговаривал на вебинаре в Хекслете тут https://www.youtube.com/watch?v=y_HkXvFovAc

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

Общий стаж моей работы в ИТ - около 14 лет. Я начинал с системного администрирования, потом перешел в разработку, поработав как в аутсорсе, так и в продукте. Не один раз проходил путь от рядового разработчика до тимлида.

Читать далее
Всего голосов 42: ↑40 и ↓2+47
Комментарии16

Почему убивают смартфоны в ванне?

Время на прочтение8 мин
Количество просмотров102K

brandName убил россиянку ударом тока. brandName на секунду упал на живот: сына известной блогерши убило током в ванне. Жертв все больше: почему не стоит брать телефон в ванну. Россиянка уронила в ванну телефон и погибла.

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

Читать далее
Всего голосов 123: ↑120 и ↓3+169
Комментарии286

Полезные JavaScript-библиотеки

Время на прочтение6 мин
Количество просмотров34K
Не стоит недооценивать силу простоты. Пожалуй, сложно представить себе, что на чистом JavaScript реализовано что-то вроде системы push-уведомлений, работающей в реальном времени, или инструмент для работы с базами данных, или полноценный текстовой редактор. Но подобные проекты существуют и позволяют решать множество актуальных задач. В этом материале речь пойдёт о нескольких весьма полезных библиотеках, которые подключаются к страницам в виде обычных JavaScript-файлов. При рассказе о каждой из них я постараюсь выделять их особенности и приводить примеры их использования.


Читать дальше →
Всего голосов 48: ↑37 и ↓11+41
Комментарии18

VueUse — обязательная библиотека для Vue 3

Время на прочтение6 мин
Количество просмотров14K

Для тех, кто незнаком с этой библиотекой, советую попробовать, так она может де-факто стать стандартом для использования в проектах на Vue 3, как, например, в свое время была библиотека lodash для почти любых проектов на js.

Остальные наверное уже успели заценить весь обширный функционал, который она предоставляет. Некоторые уже использовали ее на Vue 2, но далеко не все новые функции поддерживают старую версию. Арсенал библиотеки впечатляет, тут и простые утилиты вроде клика вне элемента, и различные интеграции с Firebase, Axios, Cookies, QR, локальным хранилищем, браузером, RxJS, анимации, геолокации, расширения для стандартных Vue-хуков, медиа-плеер и многое другое. Среди спонсоров отмечен сам Эван Ю, что как бы намекает. Библиотека регулярно получает обновления, баги закрываются, а сообщество растет. В общем у нее есть все для успеха.

Update: Исправлен баг очистки предыдущей истории изменений.
Update 2: Добавлен более актуальной код примеров.

Читать далее
Всего голосов 13: ↑7 и ↓6+4
Комментарии17

Ontol: подборка видео-лекций и каналов для продвинутых программистов

Время на прочтение4 мин
Количество просмотров16K
image

Недавно на HackerNews обсуждали видео и каналы, где можно поучиться продвинутому программированию. Под катом — подборка из 30 полезняшек.

В перерывах между полетами на реактивном ранце и переводами материалов Y Combinator, я делаю проект «Ontol» — такое место в сети, где максимальная концентрация полезного, апгрейдящего мировоззрение материала (ценного на горизонте 10+ лет, например, такого), которым можно делиться бесплатно в 1 клик. (канал в телеграм: t.me/ontol)

Вот мои предыдущие бесплатные образовательные подборки:


Всего голосов 27: ↑25 и ↓2+37
Комментарии1

Измерение относительной влажности в быту

Время на прочтение12 мин
Количество просмотров14K

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

Читать далее
Всего голосов 7: ↑6 и ↓1+8
Комментарии20

Как мы с братом алмаз делали

Время на прочтение6 мин
Количество просмотров126K

Наверное кто-то задумывался, а можно ли сварить алмаз «на кухне и/или на коленке». Можно! Я решился рассказать, как мы с братом это делали.

Читать далее
Всего голосов 200: ↑196 и ↓4+258
Комментарии227

Графика в терминале

Время на прочтение3 мин
Количество просмотров31K
Эта история началась, когда я узнал о существовании bpytop. Меня поразила детализация графиков и я начал разбираться как это сделано. Оказалось, что для вывода графиков использовались символы алфавита Брайля, представляющие из себя комбинацию из 8 точек: 2 точки в ширину и 4 точки в высоту. Поискав готовые решения, использующие этот подход, я нашел на реддите анонс такого проекта. В первом же комментарии анонса я прочитал:
Это конечно круто, но почему люди просто не переоткроют для себя ReGIS (векторную графику в терминале) и sixel (пиксельную графику в терминале).
До этого момента я ничего не знал про sixel. Копнув глубже я выяснил, что в теории sixel должен поддерживаться xterm-ом. Я запустил xterm на своей ubuntu 20.04 в режиме эмуляции vt340

xterm -xrm "XTerm*decTerminalID: vt340" -xrm "XTerm*numColorRegisters: 256"

выполнил вот такую команду (convert это команда из пакета imagemagick)

clear && convert <(curl -s https://upload.wikimedia.org/wikipedia/en/7/7d/Lenna_%28test_image%29.png) sixel:-

и увидел вот это:

image
Вау, работает!
Читать дальше →
Всего голосов 115: ↑115 и ↓0+115
Комментарии51

Автомонтирование файловых систем с systemd

Время на прочтение2 мин
Количество просмотров52K
Среди множества функций, которые предоставляет systemd, есть одна, которую несправедливо забыли. Это функция автомонтирования. При настройке автомонтирования указанный каталог будет подмонтирован только после первого обращения к нему (точнее, прямо во время).

NFS over VPN


Конкретный пример: у меня есть удалённый сервер, на котором есть интересующий меня каталог. Я хочу иметь этот каталог локально на своей машине. Протокол доступа — nfs. Т.к. он не имеет шифрования, то разумным решением выглядит использование vpn-канала до сервера.

При этом я хочу монтировать его на ходу и отмонтировать через некоторое время, чтобы не испытывать странных затруднений из-за тупящей nfs при лежащей сети. Таймаут монтирования куда более гуманная ошибка, чем таймаут nfs на ls.

Как оно устроено


Systemd имеет специальный вид automount-юнитов, которые позволяют автоматически монтировать указанный каталог.
Читать дальше →
Всего голосов 36: ↑35 и ↓1+34
Комментарии29

Идеальное Vue приложение на Typescript

Время на прочтение6 мин
Количество просмотров27K

Пока Vue3 официально еще не вышел, а продакшене в основном 2 версия - я хочу поговорить о типизации и том, что она все еще не идеальна во Vue. И сегодня мы попробуем создать идеальное приложение с типизацией на typescript сделав упор на code style, пропагандируя vue style guide и прочие обычно не значащие вещи, которые были придуманы умными людьми!

Читать далее
Всего голосов 14: ↑14 и ↓0+14
Комментарии20

Строим систему для мониторинга качества frontend-проектов

Время на прочтение7 мин
Количество просмотров9.6K

Всем привет! Продолжим цикл историй про то, чем занимается Web Core команда в компании ДомКлик. В предыдущей статье мы рассказывали как мы создаем дизайн-систему. В этой статье хотелось бы поделиться историей разработки системы мониторинга качества front-end проектов - Front Radar. У нас в компании большое число проектов, которые создаются большим кол-вом команд и в связи с этим появилась потребность - проверять актуальность проектов и выявлять проблемные места, которые негативно влияют на клиентский опыт.

Читать далее
Всего голосов 25: ↑25 и ↓0+25
Комментарии8

RBAC? ABAC?.. PERM! Новый подход к авторизации в облачных веб-службах и приложениях

Время на прочтение11 мин
Количество просмотров28K

Принципиальная схема процесса авторизации с помощью Casbin


Данная статья преследует цель рассказать о новом походе к авторизации в облачных решениях, в основе которого лежит использование интерпретируемого языка определения политики управления доступом — который называется языком моделирования PERM (PML). Данный язык можно использовать для выражения различных моделей управления доступом, таких как список управления доступом (ACL), управление доступом на основе ролей (RBAC), управление доступом на основе атрибутов (ABAC) и других. А также рассказать о практическом воплощении этого подхода в виде конкретной реализации кросс-языковой библиотеки авторизации Casbin

Читать дальше →
Всего голосов 1: ↑1 и ↓0+1
Комментарии16

Стандарт WebRTC получил официальный статус рекомендованного W3C

Время на прочтение4 мин
Количество просмотров5.7K
Источник

Технология WebRTC (Web Real-Time Communications), которая описывает передачу аудио-, видеоданных и контента между браузерами без установки дополнительных расширений, получила статус рекомендованного стандарта. Об этом объявил консорциум W3C, который разрабатывает и внедряет технологические стандарты для сети интернет.

Все стандарты W3C проходят проверку на предмет поддержки доступности веб-контента, которая осуществляется APA (рабочей группой по архитектурам доступных платформ). Они напрямую связаны с обеспечением веб-доступности.

Помимо прочего, комитет IETF (Internet Engineering Task Force), который занимается развитием протоколов и архитектуры интернета, опубликовал документы с описанием архитектуры, элементов протоколов, видов транспорта и механизмов коррекции ошибок WebRTC. Все эти данные получили статус «Предложенный стандарт».
Читать дальше →
Всего голосов 16: ↑15 и ↓1+18
Комментарии4

Ещё 8 правил проектирования API

Время на прочтение10 мин
Количество просмотров19K

Используйте глобально уникальные идентификаторы. Клиент всегда должен знать полное состояние системы. Избегайте двойных отрицаний…

Читать далее
Всего голосов 30: ↑27 и ↓3+37
Комментарии95

Информация

В рейтинге
Не участвует
Откуда
США
Зарегистрирован
Активность