Pull to refresh
2
0
burnashev @burnashev

User

Send message

Перфокарты против перфокарт: война систем до появления iOS и Android

Reading time10 min
Views3.3K

Первая система для обработки больших объемов данных появилась в конце 19 века. Американский инженер Герман Холлерит создал ее для того, чтобы обрабатывать результаты переписи населения США. Компания Холлерита — первый ИТ-стартап — нашла частных инвесторов и государственные заказы, создала новую отрасль, и привлекла сотни клиентов. Однако ее монопольное положение на этом рынке было недолгим — вскоре появился конкурент, который смог предложить пользователям более низкие цены и новые технологии.

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

Простой лайфхак для ввода символа "#" в русской раскладке клавиатуры под Linux

Level of difficultyEasy
Reading time2 min
Views26K

знак решетки


Давно полюбил формат Markdown за простоту и легкость его использования при документировании исходного кода и за возможность его применения при оформлении статей для Хабра. Потом добавился Obsidian для ведения заметок. И формат Markdown стал по сути основным способом форматирования набираемого текста.


Единственной, но весьма большой ложкой дегтя, оставалась проблема ввода символа решетки «#» при использовании русской клавиатуры. А так как знак решётки (октото́рп, хеш, знак номера, дие́з, sharp), в русской раскладке клавиатуры отсутствует, то каждый раз переключаться на английскую раскладку, меня немного утомляло. И «немного утомляло» еще мягко сказано, так как символ решетки, кроме указания заголовков в Markdown и тегов в Obsidian, еще часто используется как начало комментария до конца строки (в Bash, Python, NewLang).


А так как предлагаемые на просторах интернета способы ввода символа решетки в русской раскладке клавиатуры меня совсем не вдохновляли (и если Alt+35 на Numpad под виндой еще сойдет, но этот способ не работает под Linux, а занимать буфер обмена ради вставки одного символа, вообще не вариант), то пришлось потратить некоторое время на эксперименты, результатами которых я и хочу поделиться.

Простой лайфак ввода # в русской раскладке под Linux
Total votes 24: ↑16 and ↓8+11
Comments45

@Transactional в Spring и исключения

Level of difficultyEasy
Reading time6 min
Views14K

Привет! В этой статье я бы хотел рассказать, как Spring'овая аннотация @Transactional ведет себя при возникновении исключений. Про это немало написано, в том числе на Хабре. Например, тут или тут. Поэтому, чтобы не повторяться, я не буду подробно расписывать как и почему исключения влияют на откат транзакций, а вместо этого просто покажу несколько примеров.

Читать далее
Total votes 12: ↑11 and ↓1+12
Comments0

Spring Data JPA и upsert

Level of difficultyMedium
Reading time10 min
Views18K

Всем привет! Есть достаточно распространенная задача: нужно вставить новую запись в БД, но если она уже там есть, то её следует обновить. Эта ситуация может встретиться, например, если у вас есть 2 источника данных, каждый из которых передает половину информации об объекте, и ваш сервис должен склеить части вместе по какому‑то внешнему идентификатору. Но вы не знаете, в каком порядке к вам попадут эти половинки. Предлагаю посмотреть, как это можно сделать, если сервис использует Spring Data JPA.

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

Настройка связки Nginx / LetsEncrypt в Docker Swarm

Reading time9 min
Views12K

Про то, как поднять контейнер Nginx и настроить для него автообновление сертификатов LetsEncrypt, есть довольно много статей. В этой будет описана довольно нестандартная схема. Основные моменты:


  1. Nginx разворачивается как сервис в Docker Swarm, а не как standalone-контейнер;
  2. Для проверки используется схема DNS-01, а не гораздо более популярная HTTP-01;
  3. Для DNS-провайдера GoDaddy в настоящий момент нет DNS-plugin'а для certbot'а, но есть API по управлению доменными записями.
Читать дальше →
Total votes 5: ↑4 and ↓1+8
Comments7

Отчёт о конференции «Магнитка 2023»

Level of difficultyEasy
Reading time12 min
Views2.3K

В конце февраля‑начале марта 2023 года в Магнитогорске проходил форум «Цифровая устойчивость и промышленная безопасность России», который чаще называют «Магнитка». Несколько лет подряд он был посвящён банковской кибербезопасности. Однако в этот раз мероприятие перенесли в Екатеринбург, поэтому «Магнитку», проходящую в Магнитогорске, было решено переориентировать на индустриальную или промышленную ИБ. Информационная служба Хабра посетила форум и сделала несколько материалов. Начнём с отчёта.

Читать далее
Total votes 8: ↑7 and ↓1+19
Comments9

Гипотеза Коллатца, часть 1

Level of difficultyEasy
Reading time1 min
Views11K

Эта страница временно недоступна.
Пожалуйста, зайдите на эту страницу позже.
Приносим извинения за доставленные неудобства.
Повторите попытку позже.

Читать далее
Total votes 24: ↑6 and ↓18-12
Comments110

Дегустация Argo Rollouts: Experiments, Analysis. Часть 2

Reading time7 min
Views1.5K

И снова здравствуйте! Я – Евгений Симигин, занимаюсь внедрением DevOps-практик в Центре компетенций по разработке облачных и интернет-решений МТС Digital. Как я и обещал – это вторая часть нашего обзора Argo Rollouts, из которой вы узнаете о том, как в процессе выкатки нового релиза организовать еще и тестирование.

Читать далее
Total votes 5: ↑4 and ↓1+3
Comments0

Дегустация Argo Rollouts: обзор решения, часть 1

Reading time8 min
Views3.4K

Всем привет! Меня зовут Евгений Симигин, я занимаюсь внедрением DevOps-практик в Центре компетенций по разработке облачных и интернет-решений МТС Digital. В этой статье – обзор Argo Rollouts, я покажу несколько примеров применения и отмечу интересные места в документации. Хотите быстро освоить Argo Rollouts и разобраться в этом решении? Тогда жмите кнопку «Читать далее»!

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

Босяцкий кластер высокой доступности

Reading time8 min
Views17K

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

Читать далее
Total votes 39: ↑34 and ↓5+40
Comments41

Установка Jenkins с помощью terraform в Kubernetes в Yandex Cloud с letsencypt

Reading time9 min
Views6.4K

В этой статье будет следующее:


  • Заведение DNS домена на reg.ru.
  • Управление DNS зоной в Yandex DNS c помощью terraform.
  • Создание Kubernetes в Yandex Cloud.
  • Резервируем внешний статический IP адрес.
  • Установка Jenkins c помощью terraform модуля helm_release.
  • Создание ClusterIssue(Issue) для создания letsencypt сертификата.
Читать дальше →
Total votes 10: ↑10 and ↓0+10
Comments0

Консалтинг в России — взлёт и перерождение одной из редких профессий, где можно зарабатывать больше айтишников

Reading time17 min
Views37K

Долгое время в России было две индустрии, куда стремились попасть почти все лучшие выпускники главных бизнес-вузов страны. Это инвестиционный банкинг (про него в другой раз) и топовый управленческий консалтинг. Консалтинговые фирмы успешно наращивали объемы проданных проектов и расширяли офисы. Но этот год в России переживут далеко не все из них. Разбираемся, каким был российский консалтинг до 2022 г., и какой он будет теперь.

Читать далее
Total votes 54: ↑48 and ↓6+56
Comments55

Что такое хорошо и что такое плохо. Карьера разработчика глазами его руководителя

Reading time9 min
Views16K

В чем отличается взгляд на карьеру у разработчика и его руководителя


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



Чего хочет разработчик


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

Как он хочет развиваться? А вот так:

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

В то же время его руководитель хочет:


  • Чтобы разработчик хорошо знал используемые технологии
  • Чтобы разработчик хорошо справлялся с поставленными задачами: с должным качеством и в установленный срок
  • Чтобы разработчик был ответственным и всегда завершал то, за что взялся
  • Чтобы разработчик давал адекватные оценки задачам
  • Чтобы разработчик имел понимание потребностей бизнеса и продукта в целом
  • Чтобы разработчик своевременно сообщал о проблемах

Хотите знать, как добиться компромисса? Добро пожаловать под кат.
Читать дальше →
Total votes 30: ↑24 and ↓6+21
Comments74

Кто такой хороший QA?

Reading time8 min
Views114K

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

Итак, что же определяет хорошего тестировщика? Не будем опускаться до банальностей и говорить: внимательность, усидчивость, терпение, любопытство, талант все ломать и другую чепуху. Это все, конечно, важно, но не главное. В первую очередь у человека должно присутствовать чувство здравого смысла и ответственности.
Читать дальше →
Total votes 15: ↑14 and ↓1+19
Comments40

Опыт использования BDD

Reading time10 min
Views34K


Около семи лет назад Dan North в своей статье описал практическое применение BDD подхода, который позволяет сделать процесс разработки более понятным и управляемым путем налаживания внутренних коммуникаций. Индустрия с каждым днем проявляет всё больший интерес к этой методологии, нацеленной на продуктивное взаимодействие стандартных команд типа «аналитика-разработка-тестирование».


Однако, сейчас лишь малая часть компаний решается на использование BDD. Почему?

Читать дальше →
Total votes 12: ↑11 and ↓1+10
Comments26

Блеск и нищета Java для настольных систем

Reading time6 min
Views46K
image

Вы не поверите, но в 2018 году всё ещё нужно разрабатывать Desktop приложения.

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

— Здравствуйте, меня зовут Юрий, я пишу Desktop приложения в 2018 году.
— Здравствуй, Юрий, давайте ему похлопаем, он смог поделиться своей проблемой!

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

Зачем мы всё ещё это делаем, если есть web с его новыми продвинутыми возможностями: Progressive Web Apps, Service Worker, Web RTC, Web GL и т.д?

Под катом расскажу как с этим жить и при чём тут Java.
Читать дальше →
Total votes 25: ↑20 and ↓5+15
Comments73

Kotlin DSL: Теория и Практика

Reading time17 min
Views60K

Sql, RegExp, Gradle — что их объединяет? Всё это примеры использования проблемно-ориентированных языков или DSL (domain-specific language). Каждый такой язык решает свою узконаправленную задачу, например, запрос данных из БД, поиск совпадений в тексте или описание процесса сборки приложения. Язык Kotlin предоставляет большое количество возможностей для создания собственного проблемно-ориентированного языка. В ходе статьи мы разберемся, какие инструменты есть в арсенале программиста, и реализуем DSL для предложенной предметной области.


Весь синтаксис, представленный в статье, я объясню максимально просто, однако, материал рассчитан на практикующих инженеров, которые рассматривают Kotlin, как язык для построения проблемно-ориентированных языков. В конце статьи будут приведены недостатки, к которым нужно быть готовым. Используемый в статье код актуален для Kotlin версии 1.1.4-3 и доступен на GitHub.


Читать дальше →
Total votes 40: ↑35 and ↓5+30
Comments12

Information

Rating
Does not participate
Registered
Activity