Как стать автором
Обновить
-9
Карма
2.1
Рейтинг

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

  • Подписчики
  • Подписки
  • Публикации
  • Комментарии

Избавляемся от паролей в репе с кодом с помощью HashiCorp Vault Dynamic Secrets

Блог компании QuadcodeИнформационная безопасность*PostgreSQL*Go*

Привет, Хабр! Меня зовут Сергей, я работаю IT Head в компании Quadcode. Сегодня хотел бы рассказать о том, как я решил проблему с хранением паролей в открытом виде в коде одного из моих pet-проектов. Думаю, это знакомая для многих ситуация. Знакомая — и неприятная.

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

Читать далее
Всего голосов 17: ↑16 и ↓1+15
Просмотры4.6K
Комментарии 16

Как я познавал ci/cd, Гитхаб экшены

Java*Git*Серверное администрирование*GitHubСофт
Tutorial

Гитхаб экшены, как я познавал ci/cd

   Всем Алоха. Все слышали про ci/cd, про то что он должен быть в каждой компании и то что он упрощает нам жизнь. У всех свой ci/cd. 

   Кто-то предпочитает Jenkins. Особенно если у вас куча микросервисов, команд и процессов, то при помощи Дженкинса можно достаточно гибко настроить ci/cd в компании. Кто-то использует GitLab actions и для каждого репозитория настраивает свои пайплайны и процессы. Достаточно удобно и просто настраиваемый механизм сборки и доставки артефактов на стенды. Не чуть не хуже GitHub actions. Это было открытием для меня что в GitHub появился такой функционал, о котором мы поговорим позже. Ну и конечно всеми «любимый» скриптовый ci/cd. Пачка скриптов, которые нужно выполнить в определенной последовательности чтобы собрать и задеплоить артефакты. Есть ещё так сказать хэнд мэнуал ci/cd. Но это особый вид извращения, с которым не пожелаю столкнуться никому. В котором нужно собрать артефакты у себя на машине и по какому нить ридми выполнять команды в терминале, лазить по ssh смотреть, что все копировалось, перезапускать сервисы и другие развлечения. 

    Передо мной стояла задача спроектировать и написать новый сервер для проекта. Изначально я закидывал джарники на сервак руками, чтобы проверить работоспособность и настроить сервер. Хэнд мэнуал деплой. В какой то момент меня это начало бесить и я задумался об автоматизации этого процесса. Как вы понимаете девопса или того кто шарит в этом у меня под рукой в компании не оказалось. Очень круто, если у вас есть такой человек. У меня был выбор сделать скрипт деплой, чего я искренне не хотел, потому что в целом не любитель копаться в терминале и скриптах, когда этого можно избежать. Поднять дженкинс и настроить там джобы и пайплайны. Вариант оч классный для большой компании, а мне нужен деплой лишь одного сервера, а не тысячи микросервисов. Да и чего таить, знаний как настраивать дженкинс с нуля у меня было чуть меньше чем ноль. 

Read more about GitHub Actions
Всего голосов 12: ↑12 и ↓0+12
Просмотры10K
Комментарии 55

Полное визуальное руководство/шпаргалка по CSS Grid

Блог компании МаклаудРазработка веб-сайтов*CSS*Программирование*
Перевод

Сегодня мы с вами рассмотрим свойства CSS Grid (далее также — Грид), позволяющие создавать адаптивные или отзывчивые макеты веб-страниц. Я постараюсь кратко, но полно объяснить, как работает каждое свойство.


Что такое CSS Grid?



Грид — это макет для сайта (его схема, проект).


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


Вот простой пример макета сайта, созданного с помощью Грида.

Читать дальше →
Всего голосов 41: ↑40 и ↓1+39
Просмотры22K
Комментарии 4

Такая разная колонизация Африки

Блог компании МаклаудЧитальный залНаучно-популярное


Африка. Континент контрастов, с которыми многие из нас сталкиваются ещё в детстве. С одной стороны Николай Дроздов, Иван Затевахин и канал Animal Planet рассказывают нам про всяких интересных зверушек, а Discovery показывает прекрасные виды на всякие вулканы Килиманджаро и водопады Виктория. С другой стороны – «Не ходите в Африку гулять» вперемешку с ужасами от мам и бабушек, мотивирующих поедание невкусной каши упоминанием голодающих африканских детей. И чем старше мы становимся, тем больше на первый план выходят не реки вот такой ширины и горы вот такой вышины, а разного рода Бармалеи. Причём чаще всего представляющие собой лютую смесь из обрывков новостных репортажей, остатков слабой тройки по географии в школе и каких-то диких баек из жёлтых газет и того же цвета сайтов. В итоге, весь континент воспринимается как сплошное месиво из гражданских войн, голодающих детей, военных переворотов, эпидемий и каннибализма. Очень похоже, кстати, на распространённое восприятие средних веков. Просто одно было давно, а другое сейчас, но далеко. Не сказать, чтобы всех перечисленных прелестей был особый дефицит, но всё-таки оно творится не везде и не всегда, а местами и время от времени. Причём где-то чаще, а где-то практически никогда. Вот о том, почему так происходит, речь и пойдёт.
Читать дальше →
Всего голосов 91: ↑62 и ↓29+33
Просмотры13K
Комментарии 77

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

Управление разработкой*Управление проектами*Карьера в IT-индустрии

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

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

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

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

Читать далее
Всего голосов 51: ↑49 и ↓2+47
Просмотры26K
Комментарии 16

Введение в непрерывную поставку (CD) при помощи GitLab

JavaScript*Git*Управление разработкой*Управление продуктом*DevOps*
Перевод
Tutorial

Введение в непрерывную поставку (CD) при помощи GitLab


Введение в непрерывную поставку (CD) при помощи GitLab


Данный туториал позволит вам быстро прочувствовать как происходит командная работа с использованием GitLab. В целом, начать практиковать DevOps/CD с GitLab проще чем с использованием других продуктов потому что GitLab — это решение "всё в одном".


В процессе этого туториала мы


  • настроим базовое управления проектом на GitLab.com;
  • создадим конвейер непрерывной поставки
  • проведём несколько циклов работы с GitLab Flow
  • изучим метрики CI/CD в GitLab

Желательны но необязательны базовые знания


  • Git;
  • Node.js;
  • React;
  • Docker;
Читать дальше →
Всего голосов 7: ↑7 и ↓0+7
Просмотры8.9K
Комментарии 0

CORS для чайников: история возникновения, как устроен и оптимальные методы работы

Блог компании МаклаудИнформационная безопасность*Разработка веб-сайтов*Браузеры
Перевод


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

Если вы давно хотели разобраться в CORS и вас достали постоянные ошибки, добро пожаловать под кат.

Ошибка в консоли вашего браузера


No ‘Access-Control-Allow-Origin’ header is present on the requested resource.

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://example.com/

Access to fetch at ‘https://example.com’ from origin ‘http://localhost:3000’ has been blocked by CORS policy.


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

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

Но давайте-ка пойдем к истокам…
Читать дальше →
Всего голосов 59: ↑58 и ↓1+57
Просмотры35K
Комментарии 13

Cоздание переиспользуемых Linq фильтров (построителей предикатов для Where), которые можно применять для разных типов

Программирование*.NET*C#*
Tutorial

Способ создания переиспользуемых Linq фильтров (построителе предикатов для условия Where), которые можно применять для разных типов объектов. Поля объектов для фильтрации указываются с помощью MemberExpression.

Способ подходит для Entity Framework, включая Async операции.

Читать далее
Всего голосов 1: ↑1 и ↓0+1
Просмотры2.6K
Комментарии 5

Функциональное программирование на TypeScript: задачи (tasks) как альтернатива промисам

Программирование*Функциональное программирование*TypeScript*

Предыдущие статьи цикла:


  1. Полиморфизм родов высших порядков
  2. Паттерн «класс типов»
  3. Option и Either как замены nullable-типам и исключениям



В предыдущей статье мы рассмотрели типы Option и Either, которые предоставляют функциональную замену nullable-типам и выбрасыванию исключений. В этой статье я хочу поговорить о ленивой функциональной замене промисам — задачам (tasks). Они позволят нам подойти к понятию систем эффектов, которые я подробно рассмотрю в следующих статьях.


Как всегда, я буду иллюстрировать примеры с помощью структур данных из библиотеки fp-ts.

Узнать, чем же функциональщикам не угодили промисы
Всего голосов 23: ↑23 и ↓0+23
Просмотры8.2K
Комментарии 32

Интеграция PostgreSQL с MS SQL Server для тех, кто желает побыстрее и поглубже

PostgreSQL*Ruby on Rails*Microsoft SQL Server*
Перевод

Недавно на хабре уже было опубликовано описание интеграции PostgreSQL и MSSQL. Но, деталей там категорически не хватало. Посему, цели сей публикации следующие:

  • расширить и углубить общедоступную информацию о FDW для MSSQL называемом tds_fdw: рассказать о разнице в мажорных версиях и описать базовые проблемы совместимости;
  • рассказать о возможностях оптимизации запросов, использующих внешние таблицы;
  • затронуть тему кэширования внешних данных в материализованных представлениях;
  • сказать пару слов об экзотических подходах к интеграции PostgreSQL и MSSQL.

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

Пошаговая инструкция по настройке и использованию Gitlab CI + Visual Studio для сборки приложения .NET Framework

Блог компании Ростелеком.NET*C#*
Tutorial

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


Как только кто-либо из нашей команды вносит изменения в код (читай «мерджит feature-ветку в develop»), наш билд-сервер:


  • Собирает исходный код и установщик приложения
    • проставляет номер сборки, каждый раз увеличивая последнюю цифру. Например, текущая версия нашего ПО 3.3.0.202 – часть 3.3.0 когда-то ввёл разработчик (привет, SemVer), а «202» проставляется в процессе сборки.
    • В процессе анализирует качество кода (с использованием SonarQube) – и отправляет отчёт во внутренний SonarQube,
  • Сразу после сборки запускает автотесты (xUnit) и анализирует покрытие тестами (OpenCover),

Также, в зависимости от ветки, в которую были внесены изменения, могут быть выполнены:


  • отправка сборки (вместе с changelog-ом) в один или несколько телеграм-каналов (иногда удобнее брать сборки оттуда).
  • публикация файлов в систему автообновления ПО.

Под катом о том, как мы научили Gitlab CI делать за нас бОльшую часть этой муторной работы.

Читать дальше →
Всего голосов 5: ↑4 и ↓1+3
Просмотры4.9K
Комментарии 8

10 подкастов для изучения/продолжения изучения английского языка

Изучение языков
image

Шесть месяцев назад, я сделала для себя очень приятное открытие — подкасты на английском языке для изучающих английский язык. На тот момент у меня были проблемы с аудированием и открытие подкастов очень помогло мне развить аудирование до уровня понимания фильмов и аудиокниг без каких-либо субтитров.

Подкасты – это звуковые аудиофайлы в стиле радиопередач в интернете Как правило, подкасты имеют определенную тематику и периодичность издания. Каждый человек, у которого есть смартфон, может прослушивать подкасты. Для прослушивания подкастов у владельцев Apple есть родное приложение, называется «podcasts». Android пользователи могут использовать приложение «Podcast Addict».
Читать дальше →
Всего голосов 32: ↑32 и ↓0+32
Просмотры156K
Комментарии 42

Снова про WebDAV и Облако Mail.Ru

Облачные сервисы
В каждой теме, касающейся Облака Mail.Ru, имеются комментарии — «когда будет WebDAV?» и родственное «Как подключить Облако Mail.ru как сетевой диск?». Судя по тому, что обещают уже несколько лет (хотя в облаке для бизнеса webdav имеется), бесплатные пользователи его не дождутся.

В общем, гора к Магомету не идёт, но и Магомет как-то не торопился, хотя, казалось бы, все для этого есть — и реализации API, и реализации webdav-серверов. Вполне логично было бы взять и то, и другое и объединить.
Читать дальше →
Всего голосов 44: ↑39 и ↓5+34
Просмотры90K
Комментарии 94

DIY порошок для посудомойки: как не растворить посуду и не повторить моих ошибок. Год экспериментов

DIY или Сделай самЛайфхаки для гиковХимия


Предыдущие публикации:

Пудра для мозга или как сделать порошок для посудомойки в 9,7 раз дешевле
DIY порошок для посудомойки: разбираем промышленные средства и улучшаем рецепт

Прошло уже больше года с момента последней публикации из серии домашней алхимии, посвященной издевательствам над бытовой техникой производству порошка для посудомойки в домашних условиях. Я все еще жив. Большинство тестировавших жуткие смеси, насколько мне известно, живы. В этом посте я хотел рассказать как правильно мыть ржавые гвозди в посудомойке, не растворяется ли картошка с укропом и подвести итог экспериментов за год.
Читать дальше →
Всего голосов 116: ↑116 и ↓0+116
Просмотры89K
Комментарии 533

Ученые уточняют, насколько быстро расширяется Вселенная

Научно-популярноеФизикаАстрономия
Перевод
image
Анализ, проведенный группой, открывает путь к более качественным измерениям в будущем с помощью телескопов из массива черенковских телескопов.

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

Ученые Клемсона Марко Аджелло, Абхишек Десаи, Леа Маркотулли и Дитер Хартманн совместно с шестью другими учеными по всему миру разработали новое измерение постоянной Хаббла — единицы измерения, используемой для описания скорости расширения Вселенной.
Читать дальше →
Всего голосов 24: ↑22 и ↓2+20
Просмотры14K
Комментарии 44

Если вы используете моки, то вы хоть что-то тестируете?

Блог компании Mail.ru GroupТестирование IT-систем*PHP*Проектирование и рефакторинг*Тестирование веб-сервисов*
Перевод

Было ли у вас ощущение, что ради тестирования вы делаете код труднее для чтения? Допустим, у вас есть код, который ещё не тестировался. У него есть ряд побочных эффектов, и вас просят сначала прогнать тесты. Вы начинаете следовать советам вроде передачи глобальных переменных в виде параметров или извлечения проблемных побочных эффектов, чтобы сделать вместо них заглушки в тестах.

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

Вы останавливаетесь и задумываетесь: «Допустимо ли менять сигнатуры кода ради тестирования? Тестирую ли я реальный код или совершенно другой класс, в котором не происходит то, что нужно?» Перед вами может возникнуть дилемма. Вы уверены, что стоит и дальше придерживаться этого подхода? Или это потеря времени?

Вопрос на миллион: для устаревшего кода нужно писать модульные тесты или интеграционные?
Читать дальше →
Всего голосов 55: ↑53 и ↓2+51
Просмотры14K
Комментарии 19

Предвзятый и субъективный взгляд на резюме разработчика

Блог компании HeadHunterКарьера в IT-индустрииIT-компании

Привет! Недавно мои коллеги из hh.ru провели вебинар, где разбирали резюме разработчика. Я решил поделиться своей точкой зрения на этот счет.


image


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

Читать дальше →
Всего голосов 37: ↑31 и ↓6+25
Просмотры19K
Комментарии 30

Стратегии выплаты технического долга

Блог компании QIWIПрограммирование*Управление разработкой*Управление персоналом*DevOps*
Перевод
image

Технический долг: он есть у всех, и каждый достойный своего звания разработчик хочет его выплатить, но как же организовать этот процесс?

Реализуем севооборот


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

Эта метафора остаётся подходящей и для разработки ПО; кроме того, она содержит в себе намёки на возможные стратегии, которые можно использовать для выплаты технического долга.

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

В рамках этой статьи мы будем предполагать, что вы работаете в методологии agile-разработки, однако многие принципы при условии творческой переработки применимы и к другим методологиям.
Читать дальше →
Всего голосов 22: ↑20 и ↓2+18
Просмотры4.1K
Комментарии 1

Код ревью: как быть хорошим автором

Блог компании JoomПрограммирование*Совершенный код*Управление разработкой*
Tutorial

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

Читать далее
Всего голосов 40: ↑38 и ↓2+36
Просмотры11K
Комментарии 36

Что тимлиду спросить о компании на собеседовании

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

По мотивам своих собеседований, а также собеседований коллег и mentee, составил список вопросов от тимлида к компании, что стоит прояснить на собеседовании — что спросить собеседующего.

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

Каковы финансовые показатели компании?

Является ли компания прибыльной или тратит деньги инвесторов? Или даже до инвесторов ещё не дошло, и основатели пока платят из своего кармана? Как выглядит бизнесовый план развития?

Если компания имеет представительство в РФ, официальное ли (по ТК РФ) трудоустройство и полностью ли "белая" зарплата?

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

Расскажите про ваше понимание «хорошего тимлида»

У собеседника должно быть четкое и непротиворечивое понимание, что он вкладывает в понятие «тимлид» и какие критерии используются для оценки работы тимлида.

Возможно, это понимание даже прописано в должностных инструкциях.

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

Читать далее
Всего голосов 44: ↑40 и ↓4+36
Просмотры16K
Комментарии 87
1

Информация

В рейтинге
814-й
Зарегистрирован
Активность