Pull to refresh
3
Karma
0
Rating
Алексей @ParaPilot

User

Развертывание GitLab CE в контейнерах Docker за обратным прокси

Timeweb Cloud corporate blog Configuring Linux *System administration *Nginx *
Tutorial


В этом руководстве мы рассмотрим, как быстро поднять свой GitLab сервер на контейнерах Docker, находящийся за обратным прокси сервером NGINX. Предполагается, что у вас уже установлен движок контейнеризации приложений Docker и Compose, а также обратный прокси сервер NGINX.
Читать дальше →
Total votes 3: ↑3 and ↓0 +3
Views 7.6K
Comments 11

Использование Identity Server 4 в Net Core 3.0

.NET *
Tutorial

Введение


На одном из моих поддерживаемых проектов недавно встала задача проанализировать возможность миграции с .NET фреймворка 4.5 на .Net Core по случаю необходимости рефакторинга и разгребания большого количества накопившегося технического долга. Выбор пал на целевую платформу .NET Core 3.0, так как, судя по утверждению разработчиков от Microsoft, с появлением релиза версии 3.0, необходимые шаги при миграции legacy кода уменьшатся в несколько раз. Особенно нас в нем привлекли планы выхода EntityFramework 6.3 для .Net Core т.е. большую часть кода, основанную на EF 6.2, можно будет оставить «как есть» в мигрированном проекте на net core.


С уровнем данных, вроде, стало понятно, однако, еще одной большой частью по переносу кода остался уровень безопасности, который, к сожалению, после беглых выводов аудита придется почти полностью выкинуть и переписать с нуля. Благо, на проекте уже использовалась часть ASP NET Identity, в виде хранения пользователей и других приделанных сбоку «велосипедов».


Тут возникает логичный вопрос: если в security часть придется вносить много изменений, почему бы сразу же не внедрить подходы, рекомендуемые в виде промышленных стандартов, а именно: подвести приложение под использование Open Id connect и OAuth посредством фреймворка IdentityServer4.

Читать дальше →
Total votes 21: ↑20 and ↓1 +19
Views 73K
Comments 5

Service Workers. Инструкция по применению

2ГИС corporate blog Website development *JavaScript *Programming *Client optimization *


Количество выходов в интернет с мобильных устройств ежегодно растёт на 2-4% в год. Качество связи не успевает за такими темпами. Как итог, даже самое лучшее веб-приложение обеспечит ужасный опыт, если пользователь не сможет его загрузить.

Проблема в том, что до сих пор нет хорошего механизма управления кэшем ресурсов и результатов сетевых запросов. В своей статье я хочу рассказать как Service Worker (SW) может помочь в решении этой задачи. Объясню в формате рецептов — какие элементы и в какой пропорции смешать, чтобы получить нужный результат, исходя из задачи и требований.
Поехали!
Total votes 57: ↑57 and ↓0 +57
Views 105K
Comments 39

Динамическое программирование. Классические задачи

Algorithms *
Sandbox
Здравствуй, Хабрахабр. В настоящий момент я работаю над учебным пособием по олимпиадному программированию, один из параграфов которого посвящен динамическому программированию. Ниже приведена выдержка из данного параграфа. Пытаясь объяснить данную тему как можно проще, я постарался сложные моменты сопроводить иллюстрациями. Мне интересно ваше мнение о том, насколько понятным получился данный материал. Также буду рад советам, какие еще задачи стоит включить в данный раздел.

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

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

Такие задачи решают методом динамического программирования, а под самим динамическим программированием понимают сведение задачи к подзадачам.
Читать дальше →
Total votes 105: ↑97 and ↓8 +89
Views 299K
Comments 72

Big O

JavaScript *Programming *Algorithms *
Translation
Примечание. Сокращенный перевод, скорее пересказ своими словами.
UPD: как отметили в комментариях, примеры не идеальны. Автор не ищет лучшее решение задачи, его цель объяснить сложность алгоритмов «на пальцах».


Big O нотация нужна для описания сложности алгоритмов. Для этого используется понятие времени. Тема для многих пугающая, программисты избегающие разговоров о «времени порядка N» обычное дело.

Если вы способны оценить код в терминах Big O, скорее всего вас считают «умным парнем». И скорее всего вы пройдете ваше следующее собеседование. Вас не остановит вопрос можно ли уменьшить сложность какого-нибудь куска кода до n log n против n^2.

Структуры данных


Выбор структуры данных зависит от конкретной задачи: от вида данных и алгоритма их обработки. Разнообразные структуры данных (в .NET или Java или Elixir) создавались под определенные типы алгоритмов.

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

Здесь мы будем использовать только массивы чисел (прямо как на собеседовании). Примеры на JavaScript.
Читать дальше →
Total votes 39: ↑30 and ↓9 +21
Views 147K
Comments 30

Налоговый резидент & валютный резидент РФ последствия приобретения и утраты статусов — Полный FAQ с примерами

IT-emigration Legislation in IT Finance in IT

Друзья, всех приветствую и предлагаю ознакомиться, как мне кажется с довольно полным FAQ по теме налогового и валютного резиденства РФ. По ходу материала есть некоторые примеры, а внизу вопросы & ответы.

Обращаю Ваше внимание, на то что вопросы касающиеся СИДН и КИК, я буду разбирать в отдельных материалах. У кого останутся вопросы и кто желает получить на них ответы (в разумном объеме) прошу задавать их в комментариях к статье или в телеграмм.

Читать далее
Total votes 51: ↑46 and ↓5 +41
Views 16K
Comments 47

Шпаргалка по шаблонам проектирования

Website development *System Analysis and Design *Designing and refactoring *

Перевод pdf файла с сайта http://www.mcdonaldland.info/ с описанием 23-х шаблонов проектирования GOF. Каждый пункт содержит [очень] короткое описание паттерна и UML-диаграмму. Сама шпаргалка доступна в pdf, в виде двух png файлов (как в оригинале), и в виде 23-х отдельных частей изображений. Для самых нетерпеливых — все файлы в конце статьи.

Под катом — много картинок.

Читать дальше →
Total votes 192: ↑179 and ↓13 +166
Views 1.2M
Comments 66

Чистый код на PHP

VK corporate blog PHP *Programming *Perfect code *Designing and refactoring *
Translation


Это принципы разработки ПО, взятые из книги Clean Code Роберта Мартина и адаптированные для PHP. Это руководство не по стилям программирования, а по созданию читабельного, многократно используемого и пригодного для рефакторинга кода на PHP.


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


Статья вдохновлена clean-code-javascript.

Читать дальше →
Total votes 69: ↑61 and ↓8 +53
Views 105K
Comments 179

Как правильно верстать в 2022 году. Часть 1

Website development *HTML *
Sandbox

Меня зовут Николай, я Frontend-разработчик IT-компании Relog. Хочу рассказать о самых распространённых ошибках в вёрстке современных проектов.

Дело в том, что лишь малая часть современных фронтендеров обращает внимание на работу с HTML и CSS, предпочитая готовые решения, вроде UI-библиотек и систем сеток. Но эти решения неидеальные и приходится дописывать обёртки вокруг них, видоизменять код, переписывать стили и совершать прочие действия для соответствия требованиям проекта. Тут-то и начинаются проблемы: вёрстка местами становится избыточной, стили переназначются через important и с каждым релизом проект всё сложней поддерживать. Я уже не говорю об удобстве использования и доступности. Об этом думают вообще в последнюю очередь.

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

Читать далее
Total votes 48: ↑46 and ↓2 +44
Views 68K
Comments 41

GraphQL: как сделать бэкенд приложения экономнее и быстрее

Россельхозбанк corporate blog .NET *API *C# *

Самый распространённый стандарт для обмена информацией внутри приложений — это REST API. Его все любят, но знают, что он не идеален. В этой статье обсудим его альтернативу — GraphQL. Мы расскажем, в чём преимущество GraphQL, как выглядят запросы и с чего начать.

Читать далее
Total votes 11: ↑10 and ↓1 +9
Views 14K
Comments 22

«Позвоните Кузе» — интервью с российскими ретроэнтузиастами, воссоздавшими популярное шоу 90-х годов

History of IT Old hardware Games and game consoles Interview IT-companies

27 ноября прошёл третий фестиваль ретрокомпьютеров «Демодуляция», организованный музеем Яндекса. В этом году он объединил под собой множество отечественных и зарубежных музеев и ретроэнтузиатов. На мероприятии со своим стендом дебютировал молодой проект антимузея InterACTION, созданный Антоном Васильевым @Barsik44, Егором Кулешовым @Limows и Ильёй Илембитовым. Они организовали инсталляцию популярного шоу из 90-х годов «Позвоните Кузе», которую Антон придумал и собрал совместно с Виктором Карасевым, основателем YouTube-канала «Уютный подвальчик». Редакция Хабра поговорила с ними о технической реализации проекта и стриме, в рамках которого зрителям предлагали позвонить и поиграть в «Позвоните Кузе» так, как это было десятки лет назад.

Читать далее
Total votes 103: ↑102 and ↓1 +101
Views 14K
Comments 13

[Пятничное] Теория Жоп

Project management *IT career
Sandbox

Эту полу-шуточную теорию о проектном управлении я излагал коллегам по ИТ цеху лет 15 назад, и тогда же неоднократно слышал советы загрузить этот текст на Хабр, но руки не дошли. На днях, разгребая старые файлы наткнулся на свои записи и решил все таки поделиться ими с Вами. Частое употребление ключевого слова к сожалению, неизбежно и не отделимо для целостности этого текста, прошу принимать или нет 'as is'. Итак...

Каждая карьера развивается от Жопы к Жопе, и никак иначе. Хочешь повышения - ищи Жопу и принимай, как говорят в Америке, "challenge". Если Вам предлагают возглавить новый проект, либо занять какую то должность, да что угодно - знайте, там Вас ждет Жопа. Иначе не предложили бы, а сами бы справились. Равно как и если Вы ожидаете избавиться от надоевшей Вам сейчас деятельности, надеясь вырваться из "этого ада" и заняться "чем то новеньким" - будьте готовы встретиться с Большой Жопой.

Читать далее
Total votes 496: ↑485 and ↓11 +474
Views 172K
Comments 93

Программный архитектор. Кто этот человек?

Perfect code *IT Infrastructure *UML Design *Development Management *Distributed systems *

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

Что меня сподвигло написать эту статью? Определенный опыт взаимодействия с разного уровня руководителями. Рассмотрим такую ситуацию. У нас есть вакансия, звучит она как Архитектор. И, вроде бы, понимание есть, что должен делать этот человек, но по факту оказывается, ждут “эникейщика”. 

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

И последнее, думаю надо представится. Меня зовут Владимир Воловиков. Работаю в ИТ сфере я уже почти 20-ть лет. В должности Системного архитектора и Программного архитектора, в общей сложности, более пяти лет. Имею четыре международных сертификата. Текущее место моей работы Системный архитектор, Банк ВТБ. 

Читать далее
Total votes 7: ↑5 and ↓2 +3
Views 7.2K
Comments 14

Трансформация генов или семь способов создать химеру

Timeweb Cloud corporate blog Reading room Popular science Biotechnologies Biology
Автор сообщества Фанерозой, биотехнолог, Людмила Хигерович.



Продолжаем знакомить вас с тонкостями работы биотехнологов. Готовы поспорить, что каждый из чтецов этого текста слышал о генно-модифицированных организмах, сокращенно ГМО. Кто-то их боится, кто-то считает их спасением от глобальных проблем человечества, кому-то абсолютно все равно.
Читать дальше →
Total votes 23: ↑23 and ↓0 +23
Views 5.6K
Comments 12

Как работает аллергия и что такое «прививка от аллергии»

Наше время corporate blog Popular science Health
image

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

Работает это, сильно упрощая, следующим образом:

  1. В организм попадает какой-то инородный белковый агент, например, кусок пищи.
  2. Подсистема защиты организма от паразитов (как раз IgE) распознаёт его как что-то похожее по химическому следу на ленточного червя.
  3. Реакция ведёт к высвобождению большого количества медиаторов воспаления, среди которых главный в процессе — гистамин.
  4. Гистамин делает две вещи: поднимает тревогу для других подсистем иммунитета и расширяет сосуды, заодно уменьшая клетки их эндотелия, чтобы образовались просветы в сосуде для доставки «‎сил быстрого реагирования»‎ из кровотока к месту проникновения.

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

Но прежде чем мы перейдём к лечению, придётся узнать, кто такие антигены и тучные клетки.
Читать дальше →
Total votes 67: ↑63 and ↓4 +59
Views 22K
Comments 89

Простые стейт-машины на службе у разработчика

Programming *C# *
Представьте на минутку обычного программиста. Допустим, его зовут Вася и ему нужно сделать анимированную менюшку на сайт/десктоп приложение/мобильный апп. Знаете, которые выезжают сверху вниз, как меню у окна Windows или меню с яблочком у OS X. Вот такое.

Начинает он с одного выпадающего окошка, тестирует анимацию, выставляет ease out 100% и наслаждается полученным результатом. Но вскоре он понимает, что для того, чтобы управлять менюшкой, хорошо бы знать закрыто оно сейчас или нет. Мы-то с вами тут программисты опытные, все понимаем, что нужно добавить флаг. Не вопрос, флаг есть.

var opened = false;

Вроде, работает. Но, если быстро кликать по кнопке, меню начинает моргать, открываясь и закрываясь не успев доанимироваться в конечное состояние. Вася добавляет флаг animating. Теперь код у нас такой:

var opened = false;
var animating = false;

function onClick(event) {
  if (animating) return;
  if (opened) close();
  else open();
}

Через какое-то время Васе говорят, что меню может быть полностью выключено и неактивно. Не вопрос! Мы-то с вами тут программисты опытные, все понимаем, что… нужно добавить ЕЩЕ ОДИН ФЛАГ! И, всего-то через пару дней разработки, код меню уже пестрит двустрочными IF-ами типа вот такого:

if (enabled && opened && !animating && !selected && finishedTransition && !endOfTheWorld && ...) { ... }

Вася начинает задаваться вопросами: как вообще может быть, что animating == true и enabled == false; почему у него время от времени все глючит; как тут вообще поймешь в каком состоянии находится меню. Ага! Состояния... О них дальше и пойдет речь.

Знакомьтесь, это Вася.


Читать дальше →
Total votes 114: ↑92 and ↓22 +70
Views 170K
Comments 96

Полное руководство по HTML-атрибутам data-*

RUVDS.com corporate blog Website development *CSS *JavaScript *HTML *
Translation
Представляем вашему вниманию перевод статьи, посвящённой использованию атрибутов data-*. Это — атрибуты, которые можно применять для удобного хранения в стандартных HTML-элементах различной полезной информации. Эта информация, в частности, может применяться в JavaScript и CSS.


Читать дальше →
Total votes 46: ↑45 and ↓1 +44
Views 70K
Comments 18

Лёгкий способ сделать крохотный USB-хаб для Raspberry Pi

Development for Raspberry Pi *Periphery DIY
Translation


Перевод статьи с сайта самодельщика Retrocution

Бывало у вас такое, что вам не хватает USB-портов при создании проекта на Raspberry Pi Zero? Притом внешние USB-хабы или HATS не подходили из-за ограничений по размеру? Если да, или если вы просто ищете себе интересный проект с пайкой деталей, в результате которого получится нечто полезное, то этот проект – для вас!


Total votes 25: ↑21 and ↓4 +17
Views 25K
Comments 30

Самодельный рекуператор для загородного дома с КПД 80%

DIY
Sandbox

image


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

Читать дальше →
Total votes 101: ↑101 and ↓0 +101
Views 93K
Comments 324

Средства консоли Chrome, которыми вы, возможно, никогда не пользовались

RUVDS.com corporate blog Website development *Browsers Software
Translation
Консоль инструментов разработчика Chrome — это, вероятно, одно из самых широко используемых и самых полезных специализированных средств браузера. Консоль даёт программисту множество интересных возможностей. Она помогает в отладке, профилировании и мониторинге кода страниц.



Материал, перевод которого мы сегодня публикуем, посвящён рассказу о некоторых возможностях консоли Chrome, которые известны не так широко, как они того заслуживают.
Читать дальше →
Total votes 94: ↑94 and ↓0 +94
Views 50K
Comments 27

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity