Как стать автором
Обновить
30
Карма
0
Рейтинг
Maksim Puzyrkov @Maximuzzz

DevOps инженер, архитектор систем мониторинга

Я никогда не писал расширения для Хрома, но меня допекли

Google Chrome Расширения для браузеров

Ban is not the answer


Если вы узнали стиль заголовка и вам больше не нужны никакие подробности — вот ссылка на репозиторий.


Если вы недоумеваете что это такое и почему я отнимаю место в ленте у хороших авторов — тогда немного контекста будет под катом.

Читать дальше →
Всего голосов 293: ↑289 и ↓4 +285
Просмотры 59K
Комментарии 212

Ненужные расширения для VS Code

Блог компании RUVDS.com Разработка веб-сайтов *Visual Studio *
Перевод
Недавно я занялся тщательным исследованием VS Code и сделал несколько интересных находок. Как оказалось, в редакторе есть довольно много возможностей и настроек, позволяющих отлично решать те же задачи, которые решают многие популярные расширения.



Здесь речь пойдёт о шести сферах применения расширений, в которых эти расширения могут быть заменены стандартными механизмами VS Code.
Читать дальше →
Всего голосов 61: ↑57 и ↓4 +53
Просмотры 35K
Комментарии 33

Массивы bash

*nix *
Из песочницы
Предлагаю вашему вниманию перевод статьи Митча Фрейзера (Mitch Frazier) "Bash Arrays" с сайта linuxjournal.com.

Если вы используете «стандартную» оболочку *NIX-системы, возможно, вы не знакомы с такой полезной особенностью bash как массивы. Хотя массивы в bash не так круты, как в P-языках (Perl, Python и PHP) и других языках программирования, они часто бывают полезны.
Bash-массивы имеют только численные индексы, но они не обязательны к использованию, то есть вы не должны определять значения всех индексов в явном виде. Массив целиком может быть определен путем заключения записей в круглые скобки:

  arr=(Hello World)

Отдельные записи могут быть определены с помощью знакомого всем синтаксиса (от Бейсика (да простит меня Дейкстра — прим. переводчика) до Фортрана):

  arr[0]=Hello
  arr[1]=World

Читать дальше →
Всего голосов 26: ↑25 и ↓1 +24
Просмотры 65K
Комментарии 30

Минцифра Татарстана: в открытом доступе оказался «небольшой» объем данных пользователей госуслуг

Информационная безопасность *IT-инфраструктура *Законодательство в IT


По информации издания «РБК Татарстан», в Министерстве цифрового развития госусправления, информационных технологий и связи Республики Татарстан (Минцифра Татарстана) прокомментировали ситуацию с утечкой персональных данных c сервера региональных госуслуг Татарстана. По словам специалистов Минцифры Татарстана, в результате атаки на портал госуслуг (именно так они называют эту утечку данных) «в открытом доступе оказались не 500 ГБ информации, а в 30 раз меньше, то есть 15-16 ГБ».
Читать дальше →
Всего голосов 16: ↑15 и ↓1 +14
Просмотры 7.1K
Комментарии 15

Разбираемся с передачей видео в разрешении 4К на 60 Гц через хаб USB-C

Мониторы и ТВ Периферия
Перевод


USB-C предлагает новые потрясающие возможности, включая подключение внешних мониторов по USB-порту. Распространены недорогие конвертеры USB-C на DisplayPort и HDMI. Также часто встречаются хабы USB-C с поддержкой внешних мониторов, однако попытки разобраться в их возможностях и ограничениях могут сильно вас запутать. Некоторые из них совместимы с Mac, некоторые – нет. Некоторым нужны драйвера. Очень сильно разнится поддержка разрешений и частоты обновления. Некоторые рекламируются как «не предназначенные для игр». Делаются упоминания об альтернативных режимах, дуальных режимах, и прочем. Цены разнятся от $20 до $300+, причем функции у тех и других очень похожи. Что вообще происходит?

Это инструкция по передаче видео высокого разрешения по USB-C, которую я хотел бы в своё время иметь. Если вы хотите подключить монитор высокого разрешения к своему компьютеру, имеющему выход USB-C, читайте далее.
Читать дальше →
Всего голосов 25: ↑20 и ↓5 +15
Просмотры 80K
Комментарии 50

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

Блог компании Southbridge Системное администрирование *Серверное администрирование *DevOps *
Перевод

В Prometheus 2.6.0 оптимизирована загрузка WAL, что ускоряет процесс запуска.


Неофициальная цель разработки Prometheus 2.x TSDB — ускорить запуск, чтобы он занимал не более минуты. В последние месяцы появились сообщения о том, что процесс немного затягивается, и если Prometheus по какой-либо причине перезапускается, то это — уже проблема. Почти все это время загружается WAL (регистрация записи с упреждением), включающий образцы за последние несколько часов, которые еще предстоит сжать в блок. В конце октября мне, наконец, удалось разобраться в этом; результат — PR#440, снижающий время работы ЦПУ в 6,5 раз и время расчета в 4 раза. Рассмотрим, каким образом я добился этих улучшений.


image

Читать дальше →
Всего голосов 26: ↑26 и ↓0 +26
Просмотры 3K
Комментарии 3

Авторизация клиентов в nginx посредством SSL сертификатов

Nginx *

Введение:


Потребовалось мне тут как-то написать небольшой API, в котором необходимо было помимо обычных запросов принимать запросы с «высокой степенью секретности».
Не я первый с этим столкнулся и мир давно уже использует для таких вещей SSL.

Поскольку на моём сервере используется nginx, то был установлен модуль SSL
Гугл не выдал ни одного работоспособного howto, но информация в сети есть по частям.

Итак, пошаговое руководство по настройке nginx на авторизацию клиентов через SSL-сертификаты.
Читать дальше →
Всего голосов 41: ↑34 и ↓7 +27
Просмотры 123K
Комментарии 32

Тест десяти диммеров с LED-лампами

Блог компании LampTest Гаджеты
Большинство светодиодных ламп не поддерживают регулировку яркости, но есть и диммируемые лампы, которые дороже обычных, зато их яркость регулируется.

Каждый, кто покупал диммируемые лампы, наверняка сталкивался с проблемами совместимости — не все лампы корректно работают с диммерами и выбрать идеальное сочетание ламп и диммера непросто.

Я проверил, как десять разных диммеров работают с пятнадцатью моделями светодиодных ламп.


Читать дальше →
Всего голосов 26: ↑26 и ↓0 +26
Просмотры 44K
Комментарии 42

Оптимальное расположение шардов в петабайтном кластере Elasticsearch: линейное программирование

Высокая производительность *Проектирование и рефакторинг *Алгоритмы *Серверная оптимизация *Математика *
Перевод
В самом сердце информационно-поисковых систем Meltwater и Fairhair.ai работает набор кластеров Elasticsearch с миллиардами статей из СМИ и социальных медиа.

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

В этой статье мы расскажем, как применили линейное программирование (линейную оптимизацию) для максимально равномерного распределения рабочей нагрузки поиска и индексирования по всем узлам в кластерах. Это решение уменьшает вероятность, что один узел станет узким местом в системе. В результате мы увеличили скорость поиска и сэкономили на инфраструктуре.
Читать дальше →
Всего голосов 29: ↑28 и ↓1 +27
Просмотры 6.9K
Комментарии 1

Flask. Наполняем «флягу» функционалом

Разработка веб-сайтов *Python *Flask *
Из песочницы

Предисловие


В прошлом году решил для себя вплотную познакомиться c Python, а в последствии перебраться на него с PHP. На данный момент моя стезя — веб-разработка, а потому осваивать новый язык я начал именно со стороны веба, в частности, с обзора доступных фреймворков и проектов на них. Познакомившись с возможностями TurboGears, web2py, Django, я всё таки поддался «тренду» и погрузился в мир Django.

На протяжении почти года я честно пытался подружиться с ним. Написал несколько простеньких проектов, но монструозность фреймворка отпугивала, обилие «батареек» путало выбор, а с некоторыми ограничениями не хотелось мириться. Душа требовала лаконичности и однозначности, что в конечном счете привело меня к знакомству с Flask. Изучив документацию по фреймворку и смежным проектам (Jinja2, Werkzeug), я проникся идеологией и стал вплотную изучать фреймворк.

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

Сей эпос — это мой опыт под использованию Flask и расширений для него, а точнее, попытка собрать воедино и на русском то, что может пригодиться при создании проектов практически любого уровня.
Читать дальше →
Всего голосов 34: ↑29 и ↓5 +24
Просмотры 44K
Комментарии 20

Наш путь к централизованному хранению логов

Блог компании ГК ЛАНИТ Хостинг Системное администрирование *Виртуализация *
Приветствую всех! Я работаю системным инженером в компании «Онланта». На одном из наших проектов я занимался внедрением и сопровождением Elastic Stack. Мы прошли путь от сбора логов фактически вручную до централизованного, автоматизированного процесса. Вот уже два года мы практически не меняем архитектуру решения и планируем использовать удобный инструмент в других проектах. Нашей историей его внедрения, а также некоторыми сильными и слабыми сторонами делюсь с вами в этом посте.

Источник
Читать дальше →
Всего голосов 44: ↑43 и ↓1 +42
Просмотры 22K
Комментарии 13

Свой веб-сервер на NodeJS, и ни единого фреймворка. Часть 1

JavaScript *Node.JS *
Из песочницы
Для многих людей JavaScript ассоциативно связан с обилием разнообразных фреймворков и библиотек. Разумеется, инструменты, которые помогают нам каждый день — это хорошо, но, мне кажется, нужно искать некий баланс между использованием инструментов и прокрастинацией, а также знать, как работают вещи, которыми ты пользуешься. Поэтому, когда я только сел разбираться с NodeJS, мне было особенно интересно написать полноценный веб-сервер, которым я мог бы пользоваться сам.
Читать дальше →
Всего голосов 46: ↑35 и ↓11 +24
Просмотры 108K
Комментарии 97

Старая пьеса IBM

Виртуализация *Разработка под e-commerce *Управление продуктом *Облачные сервисы *IT-компании
Перевод
Лучший способ понять, как Red Hat построила многомиллиардный бизнес на открытом ПО — посмотреть на IBM. Об это говорил основатель Red Hat Боб Янг на конференции All Things Open в 2014 году:

Тут нет секрета. Нужно много и тяжело работать, чтобы сохранить клиентов, продумать и понять возможности развития. Чего не делают конкуренты, что вы можете сделать лучше? Один из замечательных примеров, который вдохновлял нас в начале, кроме того, что у меня не хватало денег заплатить за съёмную квартиру, — это пример Лу Герстнера и IBM…

Герстнер пришёл в IBM и словно по волшебству преобразовал компанию за три года… Его проницательность заключалась в том, что он поговорил с целой кучей клиентов IBM и узнал, что им на самом деле не нравится ни один из продуктов компании. Всё нормально, но при каждом личном разговоре выяснялось, что всегда есть какой-то более подходящий продукт от другой компании… Он спрашивал: „Так почему же вы покупаете у IBM?” Клиенты отвечали: „IBM — единственная технологическая компания с офисами повсюду, где мы ведём бизнес”, и в результате Герстнер понял, что IBM продаёт не продукты. Она продаёт сервис.
Читать дальше →
Всего голосов 22: ↑22 и ↓0 +22
Просмотры 13K
Комментарии 17

ELK Stack для хранения логов Django приложения

Системное администрирование *Django **nix *
Туториал

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


Решением было создание централизованного лог хранилища с агрегацией логов и поиском. Выбор пал на ELK стек. ELK — сочетание трех OpenSource проектов: ElasticSearch, Logstash и Kibana. ELK хранит логи, строит графики и есть поддержка полнотекстового поиска с фильтрами. В статье описывается процесс настройки ELK стека для хранения логов Django приложения.

Читать дальше →
Всего голосов 12: ↑12 и ↓0 +12
Просмотры 28K
Комментарии 2

Как устроен пассажирский вагон дальнего следования

Блог компании Туту.ру Урбанизм
Современный вагон при соединении с остальным поездом автоматически включается в локальную сеть и получает параметры с сервера штабного вагона. У одноэтажного вагона Тверского вагоностроительного завода сейчас в мониторинге примерно 280 параметров (начиная от уровня заполнения фекального бака и заканчивая напряжением аккумулятора), а у двухэтажного — около 400.



Начнём с межвагонных связей. Это тормозная пневматическая магистраль (пневматические рукава, которыми вагоны соединяются между собой, железнодорожники называют их «лягушками»), высоковольтная магистраль, аварийная магистраль 110 В, интерком и локальная сеть, плюс радиорелейные мосты между вагонами на случай обрыва локальной сети.
Читать дальше →
Всего голосов 207: ↑207 и ↓0 +207
Просмотры 102K
Комментарии 174

Система сбора, анализа, уведомлений и визуализации логов на syslog-ng, elasticsearch, kibana, grafana, elasticalert

IT-инфраструктура **nix *Серверное администрирование *Визуализация данных *
Туториал

image


Что мы получим после этой статьи:


Систему сбора и анализа логов на syslog-ng, elasticsearch в качестве хранилища данных, kibana и grafana в качестве систем визуализации данных, kibana для удобного поиска по логам, elasticalert для отправки уведомлений по событиям. Приготовьтесь, туториал объемный.


Какие логи будем собирать:


  • все системные логи разложенные по индексам в зависимости от их facility(auth,syslog,messages и т.д.);
  • логи nginx — access и error;
  • логи pm2;
  • и др.

Обоснование выбора системы


Почему я выбрал связку с syslog-ng в качестве отправителя, парсера и приемщика логов? Да потому что он очень быстрый, надежный, не требовательный к ресурсам(да да — logstash в качестве агентов на серверах и виртуальных машинах просто убожество в плане пожирания ресурсов и требованием java), с внятным синтаксисом конфигов(вы видели rsyslog? — это тихий ужас), с широкими возможностями — парсинг, фильтрация, большое количество хранилищ данных(postgresql,mysql,elasticsearch,files и т.д.), буферизация(upd не поддерживает буферизацию), сторонние модули и другие фишки.


Требования:


  • Ubuntu 16.04 или debian 8-9;
  • vm для развертывания;
  • Прямые руки.

Приступим или добро пожаловать под кат

Читать дальше →
Всего голосов 25: ↑20 и ↓5 +15
Просмотры 99K
Комментарии 36

PlantUML — все, что нужно бизнес-аналитику для создания диаграмм в программной документации

Анализ и проектирование систем *UML Design *Управление разработкой *Управление проектами *

Введение


Я — системный аналитик, и моя работа заключается в том, чтобы проектировать автоматизированные информационные системы. Впрочем, нет, она заключается в том, чтобы писать и писать документы. Третий раз слово «писать» повторять не буду — все-таки, не «Илиада». Но занудность формы чем-то определенно роднит проектную документацию с древнегреческой поэмой, особенно если речь идет о работе с государственным заказчиком.


Диаграммы — глоток творчества в этом море текста. О диаграммах и пойдет речь в данной статье. Если точнее — о PlantUML — с моей точки зрения, наиболее адекватном инструменте их создания на текущий момент.

Читать дальше →
Всего голосов 33: ↑33 и ↓0 +33
Просмотры 68K
Комментарии 51

Гуляем по городу с умом: как я делал сервис для построения интересных пешеходных маршрутов

Алгоритмы *Геоинформационные сервисы *Урбанизм
UPD: так как тема хорошо зашла и показала наличие спроса на такой сервис, буду развивать его дальше. Завел паблик вконтакте для сбора фидбека и публикации информации об обновлениях https://vk.com/sightsafari

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

Ситуация еще больше осложняется, если рядом нет никаких крупных достопримечательностей, о которых все знают и которые можно было бы включить в свой маршрут после короткого поиска в интернете. Что делать если вы застряли в каком-нибудь Купчино, про которое вы только и слышали, что там лучше не застревать? Приходится идти по навигатору, надеясь, что на пути встретится что-то интересное. Однако популярные навигаторы учитывают лишь расстояние и время в пути, но не принимают во внимание интересность маршрута. Мне попадались еще проекты, пытающиеся учитывать удобство пешего маршрута (ведущие в обход шумных магистралей), но хочется же пройти не только комфортно, но и увидеть какие-нибудь красоты.



Подумав немного, я решил взяться за эту задачу сам. Как всегда, общая идея алгоритма довольно проста, но дьявол кроется в мелочах. А в случае навигации, мелочи могут быть довольно существенны и с риском для здоровья, ведь вряд ли какой-нибудь турист обрадуется, когда навигатор в поисках достопримечательностей заведет его в дебри полузаброшенной промзоны ради маленькой мемориальной таблички (тру стори, один раз так и случилось).

Описание алгоритма и примеры работы под катом, ссылка в конце.
Читать дальше →
Всего голосов 114: ↑113 и ↓1 +112
Просмотры 53K
Комментарии 215

Как безопасно программировать в bash

Программирование *Оболочки *
Перевод

Почему bash?


В bash есть массивы и безопасный режим. При правильном использовании bash почти соответствует практикам безопасного кодирования.

В fish сложнее допустить ошибку, но там нет безопасного режима. Поэтому хорошей идеей станет прототипирование в fish, а затем трансляция с fish на bash, если вы умеете правильно это делать.

Предисловие


Данное руководство сопровождает ShellHarden, но автор также рекомендует ShellCheck, чтобы правила ShellHarden не расходились с ShellCheck.

Bash — не тот язык, где самый правильный способ решить проблему одновременно является самым простым. Если принимать экзамен по безопасному программированию в bash, то первое правило BashPitfalls звучало бы так: всегда используй кавычки.

Главное, что нужно знать о программировании в bash


Маниакально ставить кавычки! Незакавыченная переменная должна расцениваться как взведённая бомба: она взрывается при контакте с пробелом. Да, «взрывается» в смысле разделения строки на массив. В частности, расширения переменных вроде $var и подстановки команд вроде $(cmd) подвергаются расщеплению слов, когда внутренняя строка расширяется в массив из-за расщепления в специальной переменной $IFS с пробелом по умолчанию. Это обычно незаметно, потому что чаще всего результатом становится массив из 1 элемента, неотличимый от ожидаемой строки.
Читать дальше →
Всего голосов 74: ↑73 и ↓1 +72
Просмотры 41K
Комментарии 39

Как эволюция создавала ваш страх

Научно-популярное Мозг
Перевод


Самые эффективные из выдуманных чудовищ отражают страхи наших предков с целью эксплуатации страхов современных людей. Некоторые страхи универсальны, некоторые – почти универсальны, а некоторые связаны с местностью. Местечковые страхи – такие уникальные фобии, как, например, боязнь мотыльков – писатели, режиссёры и программисты, создающие произведения в жанре ужасов, обходят стороной. Творцы ужасов пытаются использовать широчайшую из возможных аудиторию – а это означает работу с наиболее распространёнными страхами. Как отметил писатель Томас Монтелеон: «Писатель в жанре ужасов должен обладать бессознательным ощущением того, что послужит универсальным „спусковым крючком“ [Wiater, S., Ed. Dark Thoughts on Writing: Advice and Commentary from Fifty Masters of Fear and Suspense Underwood, New York, NY (1997)]. И все распространённые страхи можно обнаружить в нескольких категориях, ограниченных биологией.
Читать дальше →
Всего голосов 25: ↑20 и ↓5 +15
Просмотры 25K
Комментарии 50
1

Информация

В рейтинге
Не участвует
Откуда
Göteborg, Västra Götaland, Швеция
Дата рождения
Зарегистрирован
Активность