Как стать автором
Обновить
2
0
Алексей Горшков @agorshkov23

Программист

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

Как фильмы появляются в онлайн-кинотеатрах

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

Онлайн-кинотеатр не может просто купить и залить фильм на платформу: сначала видео проходит техническую обработку, снабжается сопроводительными медиа и заносится в библиотеку. Технический руководитель онлайн-кинотеатра KION Александр Шаталов рассказал, что происходит с кинолентами перед тем, как они оказываются в KION.

Читать далее
Всего голосов 16: ↑11 и ↓5+6
Комментарии8

Затыкаем рот Windows 10

Уровень сложностиСложный
Время на прочтение33 мин
Количество просмотров96K


Windows 10 очень любит Интернет. Обновления, синхронизации, телеметрия и ещё куча разной другой очень нужной ЕЙ информации постоянно гуляет через наши сетевые соединения. В «стандартном» сценарии использования, когда Windows 10 управляет домашним или рабочим компьютером, это, в общем-то, терпимо, хотя и не очень приятно.

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

Для того чтобы подобного не происходило, необходимо «заткнуть рот Windows», то есть сделать так, чтобы она самостоятельно перестала «стучаться» в Интернет, устанавливать обновления и заниматься прочими непотребствами. Вот именно этим мы с вами и займёмся.
Читать дальше →
Всего голосов 217: ↑207 и ↓10+197
Комментарии308

Как без усталости кодить по восемь с лишним часов

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


Всю свою жизнь я писал код неправильно.

Я думал, что достаточно просто сесть за стол, открыть ноутбук, выбрать задачу из моего списка to-do и кодить, пока не устану.

Но на самом деле такой стиль работы убивал мой уровень продуктивности спустя 2–4 часа написания кода. Я ощущал себя таким уставшим, что мне не хотелось ничего, кроме как других задач, требующих низких затрат энергии (например, code review).

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

Что же изменилось?

Мой подход к работе.

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

В статье я расскажу, как этого достиг.
Читать дальше →
Всего голосов 107: ↑79 и ↓28+51
Комментарии150

Если вы не чистите зубы, то я их вам почищу: FAQ про гигиену

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

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

Про чистку зубов есть очень много вопросов, поэтому пробежимся по основным:

  • Что будет, если не чистить зубы?
  • Можно ли чистить зубы редко, но ходить к стоматологу время от времени, чтобы он их вам «мощно почистил»?
  • Как проходит чистка зубов в стоматологии?
  • Почему швейцарцы чистят зубы вообще без пасты?
  • Работает ли жвачка?
  • Какие щётки выбирать и как? Что насчёт электрических?
  • Правда ли, что щётку надо выкидывать, когда хотя бы одна ворсинка отклоняется от вертикали?
  • Зачем нужны скребки для языка, межзубные ёршики, зубная нить и всё остальное?
  • Ирригатор заменяет чистку зубов щёткой?
  • Ополаскиватель для рта — хорошая тема?
  • Когда важнее чистить зубы — утром или вечером?
  • Чем ИТ-специалист отличается от среднего пациента по анамнезу относительно гигиены ротовой полости?
Читать дальше →
Всего голосов 165: ↑159 и ↓6+153
Комментарии209

Переносим Angular проект на ESLint, с Prettier, Husky и lint-staged

Время на прочтение8 мин
Количество просмотров30K
Привет, Хабр! Меня зовут Богдан, я работаю в ПИК Digital Front-End тимлидом. Большую часть проектов мы разрабатываем на Angular и недавно я решил пересмотреть наши стайл гайды, а также добавить новые инструменты для более удобной работы.

В качестве линтера я решил использовать ESLint, так как в скором времени на него планируют перевести Angular. И в этой статье я хочу поделиться инструкцией по переходу с TSLint на ESLint, а заодно рассказать, как запускать Prettier из ESLint, как добавить правила стайл гайда AirBnB, и как сделать линтинг удобным и незаметным с помощью настройки VS Code и Git хуков.
Читать дальше →
Всего голосов 10: ↑10 и ↓0+10
Комментарии5

Пособие по Ansible

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

управление конфигурацией оркестра


Это практическое пособие познакомит вас c Ansible. Вам понадобится виртуальная или реальная машина, которая будет выступать в роли узла для Ansible. Окружение для Vagrant идет в комплекте с этим пособием.


Ansible — это программное решение для удаленного управления конфигурациями. Оно позволяет настраивать удаленные машины. Главное его отличие от других подобных систем в том, что Ansible использует существующую инфраструктуру SSH, в то время как другие (chef, puppet, и пр.) требуют установки специального PKI-окружения.


Пособие покрывает такие темы:


  1. Установка Ansible и Vagrant
  2. Файл инвенторизации
  3. Модули shell, copy, сбор фактов, переменные
  4. Запуск на группу хостов
  5. Плейбуки
  6. Пример: поднимаем кластер, устанавливаем и настраиваем Apache и балансировщик нагрузок HAproxy
  7. Обработка ошибок, откат
  8. Шаблоны конфигурации
  9. Роли

Ansible использует так называемый push mode: конфигурация «проталкивается» (push) с главной машины. Другие CM-системы обычно поступают наоборот – узлы «тянут» (pull) конфигурацию с главной машины.


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

Читать дальше →
Всего голосов 35: ↑32 и ↓3+29
Комментарии15

Spring Boot и Filebeat локально без регистрации и смс

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

В данном руководстве мы рассмотрим подключение и настройку системы логирования в Spring Boot проекте и отправку логов в ELK с помощью Filebeat. Руководство предназначено для разработчиков начального уровня.


Логирование и зачем оно нужно


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


Следующий вопрос — это удобство доступа к логам. Обычно при локальном тестировании мы видим лог в консоли приложения, а на тестовым стенде — в специальных лог файлах на сервере. Удобно ли и безопасно ли каждый раз подключаться к стенду, искать нужную директорию и читать файлы логов оттуда? Практика показывает что нет и это вторая проблема которую призван решить ряд продуктов, обеспечивающих удобный доступ к логам и поиск в них важной информации. Сегодня мы очень кратко поговорим о одной из групп таких продуктов, так называемом стеке ELK (Elasticsearch — Logstash — Kibana) и более подробно о FilebeatOpen source продукте, обеспечивающем удобный механизм доставки логов до ELK.

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

Страшные сказки на ночь, о PCI шине

Время на прочтение3 мин
Количество просмотров22K
Всеобщая эйфория от появления на рынке новых процессоров, не дает достаточно времени кинуть взгляд, а что же там у них «под капотом». Те же их стороны, которыми обычно восхищаются кликатели и кнопкодавы, вовсе не отражают реальное положение дел на железном фронте.

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

Кто сейчас помнит такой архаизм как «Архитектура»? Мало кто. Слово в станкостроении стало в IT практически ругательным. А ведь когда-то, в былые времена, книга «PCI System Architecture „ и прочие, зачитывалась до дыр, на экране. И что же там такого страшного, в этом осколке прошлого, накарябано о PCI, что может нас ввести в глубокую задумчивость, полную вселенской грусти?
Читать дальше →
Всего голосов 56: ↑47 и ↓9+38
Комментарии61

Мои любимые трюки в JavaScript

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

Приветствую. Представляю вашему вниманию перевод статьи «My Favorite JavaScript Tips and Tricks», опубликованной 28 июля 2020 года автором Tapas Adhikary



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


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

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

Профессиональное применение инструментов разработчика Chrome: 13 советов

Время на прочтение7 мин
Количество просмотров33K
Автор статьи, перевод которой мы сегодня публикуем, хочет поделиться советами по профессиональной работе с инструментами разработчика браузера. А именно, эти советы рассчитаны на программистов, которые по какой-то причине решили, что их основным браузером будет Google Chrome.


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

Работаем в IntelliJ IDEA на слабом железе

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

Обнаружил секретный репозиторий на гитхабе JetBrains под названием Projector. Благодаря нему написал кусок кода в IntelliJ IDEA, запущенной на Android-планшете. Рассказываю, как это повторить.


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

Мониторинг как сервис: модульная система для микросервисной архитектуры

Время на прочтение9 мин
Количество просмотров22K
Сегодня на нашем проекте, помимо монолитного кода, функционируют десятки микросервисов. Каждый из них требует того, чтобы его мониторили. Делать это в таких объемах силами DevOps-инженеров проблематично. Мы разработали систему мониторинга, которая работает как сервис для разработчиков. Они могут самостоятельно писать метрики в систему мониторинга, пользоваться ими, строить на их основании дашборды, прикручивать к ним алерты, которые будут срабатывать при достижении пороговых значений. С DevOps-инженеров — только инфраструктура и документация.

Этот пост — расшифровка моего выступления с нашей секции на РИТ++. Многие просили нас сделать текстовые версии докладов оттуда. Если вы были на конференции или смотрели видео, то не найдете ничего нового. А всем остальным — добро пожаловать под кат. Расскажу, как мы пришли к такой системе, как она работает и как мы планируем её обновлять.


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

Опыт создания облачного решения по мониторингу цифрового киоска на Azure IoT Central

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

О задаче


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


Обычное желание владельца инфокиосков – понимать, что именно происходит в данный момент, работает киоск или нет, в каком состоянии он находится. Например, есть ли вода в кофе-машине? Если есть, какой ее запас?


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


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

IPSec всемогущий

Время на прочтение20 мин
Количество просмотров134K
Добрый день, друзья. Не секрет, что многим из нас хоть раз, но пришлось столкнуться с необходимостью настройки VPN. Являясь активным читателем Хабра я заметил, что несмотря на обилие статей про IPSec, многим он всё равно представляется чем-то сложным и перегруженным. В данной статье я попытаюсь развеять данные мифы на примере собственной полностью рабочей конфигурации. В четырех примерах мы полностью пройдемся по настройке наиболее популярного решения под Linux (Strongswan) начиная от простого туннеля с аутентификацией сторон PSK-ключами до установки host-to-host соединения с аутентификацией обеих сторон на базе сертификатов от Let's Encrypt. Интересно? Добро пожаловать под кат!
Читать дальше →
Всего голосов 25: ↑25 и ↓0+25
Комментарии12

Зачем нужен Refresh Token, если есть Access Token?

Время на прочтение4 мин
Количество просмотров228K
Недавно мы в Voximplant улучшали авторизацию в SDK. Посмотрев на результаты, я несколько опечалился, что вместо простого и понятного токена их стало две штуки: access token и refresh token. Которые мало того что надо регулярно обновлять, так еще документировать и объяснять в обучающих материалах. Помня, что в OAuth два токена нужны в основном из-за разных сервисов, на которых они используются (даже вопрос на stackoverflow есть), а у нас такой сервис один, я несколько офигел и пошел на второй этаж вытрясать души из разработчиков. Ответ получился неожиданным. Его нет на stackoverflow. Зато он есть под катом.
Читать дальше →
Всего голосов 74: ↑70 и ↓4+66
Комментарии296

Spring Security — пример веб приложения с авторизацией по протоколу OAuth2 через BitBucket

Время на прочтение9 мин
Количество просмотров26K
В данной статье мы рассмотрим способ авторизации пользователей в веб приложениях на Spring Boot по протоколу OAuth2 с использованием внешнего сервера авторизации (на примере Bitbucket).

Что мы хотим получить


Допустим, мы разрабатываем защищенное веб приложение, имеющее доступ к ресурсам пользователя на внешнем сервере, например, систему непрерывной интеграции, а в качестве внешнего сервера выступает Bitbucket, и мы не хотели бы хранить у себя логин и пароль пользователя от внешней системы. То есть нам необходимо авторизовать пользователя через Bitbucket, чтобы получить доступ к его учетной записи и ресурсам, дополнительно проверить, что он является пользователем нашего приложения и сделать это так, чтобы пользователь не раскрывал нам свои учетные данные от Bitbucket. Интересно как это сделать, — добро пожаловать под кат.
Читать дальше →
Всего голосов 4: ↑4 и ↓0+4
Комментарии9

Развитие беспилотных технологий на железнодорожном транспорте

Время на прочтение10 мин
Количество просмотров15K
Развитие беспилотных технологий на железной дороге началось достаточно давно, уже в 1957 году, когда был создан первый экспериментальный комплекс автоведения для пригородных поездов. Для понимания разницы между уровнями автоматизации для железнодорожного транспорта введена градация, определенная в стандарте МЭК-62290-1. В отличие от автомобильного транспорта железнодорожный имеет 4 степени автоматизации, показанные на рисунке 1.

image
Рисунок 1. Степени автоматизации в соответствии с МЭК-62290

Практически все поезда, эксплуатирующие на сети ОАО «РЖД» оснащены устройством безопасности, соответствующему уровню автоматизации 1. Поезда с уровнем автоматиазции 2 уже более 20 лет успешно эксплуатируются на сети российских железных дорог, оснащено несколько тысяч локомотивов. Данный уровень реализуется за счет алгоритмов управления тягой и торможения энергооптимального ведения поезда по заданному маршруту с учетом расписания и показаний систем автоматической локомотивной сигнализации, принимаемых по индуктивному каналу с рельсовых цепей. Применение 2 уровня понижает утомляемость машиниста и дает выигрыш по энергопотреблению и точности исполнения графика движения.

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

Уровень 4 предполагает полное отсутствие машиниста на борту, что требует существенного изменения конструкции локомотива (электропоезда). Например, на борту установлены автоматические выключатели, которые будет невозможно взвести снова при их срабатывании без присутствия человека на борту.
Читать дальше →
Всего голосов 35: ↑26 и ↓9+17
Комментарии32

Русскоязычная документация по Angular

Время на прочтение2 мин
Количество просмотров20K
Русская версия документация Angular теперь доступна для всех на сайте angular24.ru

image

Это результат 6 месяцев работы, нескольких безуспешных попыток написать все необходимые remark плагины, кастомного парсера и цепочки из двух Magic Strings, позволяющих делать перевод Markdown файлов без потери форматирования.
Читать дальше →
Всего голосов 19: ↑18 и ↓1+17
Комментарии5

Эффективные надежные микросервисы

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


В Одноклассниках запросы пользователей обслуживает более 200 видов уникальных типов сервисов. Многие из них совмещают в одном JVM-процессе бизнес-логику и распределенную отказоустойчивую базу данных Cassandra, превращая обычный микросервис в микросервис с состоянием. Это позволяет нам строить высоконагруженные сервисы, управляющие сотнями миллиардов записей с миллионами операций в секунду на них.


Какие преимущества появляются при совмещении бизнес-логики и БД? Какие нюансы надо учесть, прибегая к такому подходу? Что с надёжностью и доступностью сервисов? Расскажем подробно об этом всём.

Читать дальше →
Всего голосов 41: ↑38 и ↓3+35
Комментарии23

IPIP IPsec VPN туннель между Linux машиной и Mikrotik за NAT провайдера

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

upd: Отличный разбор про устройство современного стэка IPsec протоколов ESPv3 и IKEv2 опубликовал stargrave2. Рекомендую почитать.


Linux: Ubuntu 18.04.4 LTS (GNU/Linux 4.15.0-91-generic x86_64)


  • Eth0 1.1.1.1/32 внешний IP
  • ipip-ipsec0 192.168.0.1/30 будет наш туннель

Mikrotik: CCR 1009, RouterOS 6.46.5


  • Eth0 10.0.0.2/30 внутренний IP от провайдера. Внешний IP NAT провайдера динамический.
  • ipip-ipsec0 192.168.0.2/30 будет наш туннель
Читать дальше →
Всего голосов 12: ↑12 и ↓0+12
Комментарии15
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Дата рождения
Зарегистрирован
Активность