Как стать автором
Обновить
14
0.4
Сергей Роговцев @lair

Архитектор

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

Mozilla Sops для управления секретами в гите

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

Задача управления секретами одна из самых неприятных в IT. Само существование секретов уже неприятно, потому надо специально прикладывать усилия, чтобы у кого-то не работало (например, чтобы анонимный пользователь не мог прочитать секрет).

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

В индустрии, по мере наработки практик, появилось множество систем управления секретами: с собственными серверами (hashicorp vault), 'as a service' (их ещё называют KMS, key management system), аппаратные (токены и TPM), самописные скрипты на gpg и т.д.

Среди всего этого множества я хочу выделить Mozilla Sops, и, как мне кажется, это один из лучших инструментов. Предупреждая возражения: я говорю про инструмент, а не решение. SOPS не заменяет KMS и не претендует на отмену Hashicorp'ового vault'а.

На Хабре уже был перевод про sops с точки зрения IT-директора, весьма убедительная статья, после которой я и занялся sops всерьёз. Если вы ту статью не читали, очень рекомендую начать с неё, чтобы получить заряд мотивации.

В этой статье я расскажу про техническую часть.

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

Повышаем надёжность HttpClient’а в .NET Core или как ошибиться в 3 строках кода 4 раза

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

За несколько недель до 14 февраля системе Dodo IS немного поплохело под нагрузкой. Одной из причин стало то, что в backend’ах мобильного приложения и сайта не совсем корректно работали политики поверх HttpClient’а (Retry, Circuit Breaker, Timeout). В этой статье я хочу поделиться с вами потенциальными проблемами, которые могут возникнуть при неправильном использовании таких политик.


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

15 тривиальных фактов о правильной работе с протоколом HTTP

Время на прочтение7 мин
Количество просмотров232K
Внимание! Реклама! Пост оплачен Капитаном Очевидность!

Ниже под катом вы найдёте 15 пунктов, описывающих правильную организацию ресурсов, доступных по протоколу HTTP — веб-сайтов, «ручек» бэкенда, API и прочая. «Правильный» здесь означает «соответствующий рекомендациям и спецификациям». Большая часть ниженаписанного почти дословно переведена из официальных стандартов, рекомендаций и best practices от IETF и W3C.



Вы не найдёте здесь абсолютно ничего неочевидного. Нет, серьёзно, каждый веб-разработчик теоретически эти 15 пунктов должен освоить где-то в районе junior developer-а и/или второго-третьего курса университета.

Однако на практике оказывается, что великое множество веб-разработчиков эти азы таки не усвоило. Читаешь документацию к иным API и рыдаешь. Уверен, что каждый читатель таки найдёт в этом списке что-то новое для себя.
Читать дальше →
Всего голосов 191: ↑186 и ↓5+181
Комментарии120

Я хочу от API строчку, и точка, и точка

Время на прочтение4 мин
Количество просмотров8.6K
Здравствуйте.

Многим наверняка приходилось в своей жизни проектировать и разрабатывать RESTful API. С релизом технологии Web API делать это стало гораздо проще, а с выходом Web API 2 еще и куда приятней. Система раутинга, перекочевавшая из ASP.NET MVC, отлично справляется со своей задачей, и позволяет нам не только свободно конструировать пути, но и приправлять их различными параметрами, указывая оные в фигурных скобках. Вряд ли шаблон вида «api/{controller}/{id}» вызывает нынче у кого-то благоговейный ужас. Однако что произойдет, если какой-то из методов нашего API в качестве этого самого {id} будет принимать не число в строковом представлении, не Guid, а, скажем, адрес электронной почты? Ну, например, чтобы проверить наличие этого адреса в базе данных. Работать тогда ничего не будет, а виной всему маленькая и, казалось бы, совсем безобидная точка. Как с этим жить дальше и рассказывается под катом.

Читать дальше →
Всего голосов 28: ↑15 и ↓13+2
Комментарии6

Решение проблем с RTZ2 после Microsoft Update KB2998527

Время на прочтение3 мин
Количество просмотров21K
После выпуска упомянутого выше обновления многие разработчики столкнулись с проблемами. На текущий момент в Chrome проблему хоть как-то попытались исправить, а в IE10 (Document mode=«Standarts») все работает хорошо, но в более старых браузерах и режимах совместимости IE вся работа с датами развалилась.

Так сложилось, что из-за технических ограничений я вынужден поддерживать работу разрабатываемых мной приложений в IE8-9-10 и Chrome. Кроме того, для работы с датами использую библиотеку momentjs.

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

И вот настало время решить эту проблему самостоятельно.
Читать дальше →
Всего голосов 19: ↑16 и ↓3+13
Комментарии15

Идеальный домашний NAS, или собираем mini-ITX сервер с 4 HDD

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

Несмотря на то, что хабрасообществу уже набили оскомину обзоры boomburumа домашних NAS устройств, рискну представить свое видение, потому что в итоге на мой взгляд девайс оказался достаточно интересным.
Читать дальше →
Всего голосов 54: ↑46 и ↓8+38
Комментарии126

Видео лекций всего курса первой Школы разработки интерфейсов Яндекса

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

За долгое время работы в Яндексе нам удалось систематизировать все наши знания и огромный опыт в создании фронтенда веб-сервисов. Результатом этого осмысления и длительной работы стала первая Школа разработки интерфейсов, занятие которой шли в московском офисе Яндекса. Вся практическая часть обучения проходила в реальных проектах Яндекса. Теоретическая же состояла из лекций, которые читали ведущие разработчики интерфейсов Яндекса: Сергей veged Бережной, Михаил mishanga Трошев, Алексей doochik Андросов, Михаил azproduction Давыдов и другие.

Выпускники первой Школы разработки интерфейсов Яндекса

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

Читать дальше →
Всего голосов 164: ↑155 и ↓9+146
Комментарии64

Книга MEF

Время на прочтение7 мин
Количество просмотров36K
imageЭтой статьей я начинаю цикл, цель которого – создание наиболее полного руководства по Managed Extensibility Framework (MEF) на русском языке. Результатом цикла, в моих планах, станет создание бесплатной электронной книги о MEF. Если у вас есть соображения или предложения по этому поводу – дайте мне знать в комментариях. Я надеюсь, что совместными усилиями мы можем создать отличное руководство.

Эта статья составлена по материалам моих докладов про MEF на разных встречах, в том числе на конференции DevConf.

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

Читать дальше →
Всего голосов 85: ↑71 и ↓14+57
Комментарии36

Data acquisition, часть 2

Время на прочтение7 мин
Количество просмотров2.2K
В первой части моего рассказа про data acquisition, я написал про то, какой инструментарий используется для получения HTML из интернета. В этом посте я более детально расскажу про то, как из этого HTML получать нужные данные, и как эти данные трансформировать в нужный нам формат.
Если интересно...
Всего голосов 39: ↑26 и ↓13+13
Комментарии24

Data acquisition, часть 1

Время на прочтение8 мин
Количество просмотров4.2K
Одно из приемуществ всеобщего удешевления аппаратуры и интернета в том, что сбор информации из разных источников в интернете почти ничего не стоит и может производиться без особых проблем. Задача получения и обработки больших объемов данных является коммерчески превлекательной ввиду спроса на считывание («скрейпинг») веб-сайтов со стороны заказчиков (обычно это описывается термином ‘social media analysis’, т.е. анализ социальных медиа). Ну и в принципе это достаточно интересно – по крайней мере по сравнению с рутинной разработкой сайтов, отчетов, и т.д.

В этой статье я начну рассказ про то, как можно реализовать сбор и обработку данных с использованием платформы .Net. Было бы интересно послушать про то как делать то же самое в стеке Java, поэтому если кто-то хочет присоединиться к данной статье в качестве соавтора – милости прошу.

Если интересно...
Всего голосов 47: ↑35 и ↓12+23
Комментарии27

Информация

В рейтинге
1 723-й
Откуда
Montreal, Quebec, Канада
Дата рождения
Зарегистрирован
Активность