Pull to refresh
7
0
Николай Пилипенко @AR1ES

User

Send message

Страх и ненависть в протоколе RDP

Reading time 9 min
Views 23K

Все те из нас, кто всё ещё администрирует Windows на серверах, привыкли к протоколу RDP.

Последовательность: Win+R->mstsc зашита не то что в мышечной, а наверняка уже в генетической памяти.

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

В этой статье я расскажу, что происходило с протоколом RDP, куда всё катится и чего надо бояться.
Читать дальше →
Total votes 58: ↑55 and ↓3 +52
Comments 42

RustDesk — self-hosted аналог TeamViewer

Reading time 2 min
Views 86K

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

Читать далее
Total votes 88: ↑87 and ↓1 +86
Comments 41

«Все на панель!» или несколько полезных приемов настройки панелей Xwiki

Reading time 6 min
Views 6.8K

В прошлой статье я предложил рассмотреть Xwiki, как бесплатную замену Confluence и заодно пообещал поделиться несколькими советами по настройке.

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

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

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

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

В первой статье мы поговорим о простых приемах настройки панелей в Xwiki.

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

5 лучших программ для базы знаний

Reading time 4 min
Views 37K

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

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

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

Читать далее
Total votes 11: ↑9 and ↓2 +7
Comments 6

Domain Driven Design на практике

Reading time 12 min
Views 264K
Эванс написал хорошую книжку с хорошими идеями. Но этим идеям не хватает методологической основы. Опытным разработчикам и архитекторам на интуитивном уровне понятно, что надо быть как можно ближе к предметной области заказчика, что с заказчиком надо разговаривать. Но не понятно как оценить проект на соответствие Ubiquitous Language и реального языка заказчика? Как понять, что домен разделен на Bounded Context правильно? Как вообще определить используется DDD в проекте или нет?

Последний пункт особенно актуален. На одном из своих выступлений Грег Янг попросил поднять руки тех, кто практиукует DDD. А потом попросил опустить тех, кто создает классы с набором публичных геттеров и сеттеров, располагает логику в «сервисах» и «хелперах» и называет это DDD. По залу прошел смешок:)

Как же правильно структурировать бизнес-логику в DDD-стиле? Где хранить «поведение»: в сервисах, сущностях, extension-методах или везде по чуть-чуть? В статье я расскажу о том, как проектирую предметную область и какими правилами пользуюсь.
Читать дальше →
Total votes 32: ↑28 and ↓4 +24
Comments 18

Как мы используем Trello и Google Docs, чтобы постоянно улучшать работу UserVoice

Reading time 12 min
Views 120K


Прошлой осенью, вернувшись из отпуска, я обнаружил, что Дехана, наш Product Manager в UserVoice, заменила мой любимый «Roadmap» в Google Docs на доску Trello.

Моя первоначальная реакция на такие перемены была отнюдь не положительной. Проблема заключалась не в самом Trello, а в том, как мы им пользовались. Trello – это ОЧЕНЬ открытый проект. Не существует единственного “правильного” способа работы в Trello, поэтому, чтобы чувствовать себя в нем как дома, вам потребуется время для настройки «под себя».

Итак, после долгих экспериментов, нам, кажется, удалось получить полностью устраивающую нас систему работы, и мы решили, что стоит поделиться ею со всеми. Этот пост будет длиннее, чем обычно, и если вы далеки от темы веб-разработки, он может показаться вам немного скучным. Если вы решите сразу перейти к части поста, посвящённой полученным урокам, я, несомненно, расстроюсь, но обижаться не стану.
Читать дальше →
Total votes 35: ↑32 and ↓3 +29
Comments 13

Распределенный реестр для колесных пар: опыт с Hyperledger Fabric

Reading time 7 min
Views 3.3K
Привет, я работаю в команде проекта РРД КП (распределенный реестр данных для контроля жизненного цикла колесных пар). Здесь я хочу поделиться опытом нашей команды в разработке корпоративного блокчейна для данного проекта в условиях ограничений, накладываемых технологией. По большей части я буду говорить о Hyperledger Fabric, но описанный здесь подход может быть экстраполирован на любой permissioned блокчейн. Конечная цель наших изысканий  —  готовить корпоративные блокчейн-решения так, чтобы итоговым продуктом было приятно пользоваться и не слишком тяжело поддерживать.
Читать дальше →
Total votes 6: ↑5 and ↓1 +4
Comments 14

Как выстроить процессы и перестать издеваться над командой

Reading time 10 min
Views 55K
Всем привет! Сегодня хотел поговорить о процессах разработки. По мере роста компании не только развивается сам бизнес, но и копятся проблемы внутри, в частности в процессе разработки. Часто их пытаются решить внедрением каких-то практик и новомодных методологий. Увы, это насильное перестраивание процесса по книжкам и тренингам нередко это приводит к ещё большим проблемам — издевательству над людьми.

Недавно я выступал на конференции Saint TeamLead Conf 2019, в докладе я рассказал о том, как смог найти ряд проблем в рабочем процессе и потом постепенно поборол их. Здесь я постараюсь описать наиболее ценные практики, которые мне помогли не только наладить рабочий процесс, но и перестать издеваться над разработчиками. У сотрудников изменилось отношение к компании в целом и рабочему процессу.
Total votes 48: ↑46 and ↓2 +44
Comments 34

Разработка и тестирование смарт-контрактов Hyperledger Fabric

Reading time 18 min
Views 13K

Hyperledger Fabric (HLF) — платформа с открытым исходным кодом, использующая технологию распределенного реестра (DLT — distributed ledger technology), предназначенная для разработки приложений, работающих в среде бизнес-сетей, созданных и контролируемых консорциумом организаций с применением правил доступа (permissioned).


Платформа поддерживает смарт-контракты, в терминах HLF — чейнкоды (chaincode), создаваемые на языках общего назначения, таких как Golang, JavaScript, Java, в отличие, от, например, Ethereum, в котором используется контрактно-ориентированный, ограниченный по функциональности язык Solidity (LLL, Viper и др).



Разработка и тестирование чейнкодов, в силу необходимости развертывания значительного количества компонент блокчейн-сети, может быть достаточно долгим процессом с высокими временными затратами на тестирование изменений. В статье рассматривается подход к быстрой разработке и тестированию HLF смарт-контрактов на Golang с помощью библиотеки CCKit.

Читать дальше →
Total votes 7: ↑7 and ↓0 +7
Comments 4

Как правильно использовать режимы сглаживания и увеличения частоты видео в ЖК телевизорах при подключении к ПК

Reading time 4 min
Views 148K
В современных ЖК ТВ средних ценовых диапазонов зачастую присутствует режим расширения частоты до 100-200 Гц за счет технических хитростей восприятия изображения человеком.



Например технологии TrueMotion в телевизорах LG, в samsung — Motion Plus, в philips -Perfect Natural Motion, RealCinema у Panasonic.
Как же их правильно использовать при подключении к ПК?

Читать дальше →
Total votes 33: ↑32 and ↓1 +31
Comments 16

Как мы писали SLA

Reading time 6 min
Views 92K
Всем привет. Я с моими коллегами работали(ем) в небольшой аутсорсинговой компании. Таких мелких компаний, предоставляющих услуги по обслуживанию инфраструктуры достаточно много, да и почти каждый Системный администратор или ИТ менеджер задумывался, а не начать ли мне подобный бизнес? Одному ли, или с партнером? Вопросов на этом этапе возникает много и я со своей позиции могу поделиться опытом по созданию подобной «конторы».
Начать хотелось бы с конца, ну или почти с конца — с написания SLA. На самом деле SLA просто необходима, даже если вы начинаете работать один и берете себе клиентов на фриланс. SLA сможет помочь вам мотивированно отказывать симпатичной секретарше в просьбе починить очередной чайник. Я конечно же утрирую, но истина не так далека от примера с чайником. Если вы хотите предоставлять конвеерные услуги, т.е. такие, которые бы были идентичны от клиента к клиенту, то SLA вам в руки. Его можно называть как угодно: доп. соглашением, соглашением уровня сервиса или просто приложением к договору.
Собственно мы столкнулись с задачей по написанию SLA, когда поняли, что клиенты недовольны тем, что мы не являемся по щелчку пальца и не решаем задачи по мановению волшебной палочки. Твердо решив узаконить отношения с клиентами был составлен юридически «правильный» договор и некое подобие SLA. Конечно многие ИТ менеджеры начнут кидать в меня помидоры, но все же, то что мы создали имеет право называться SLA, т.к. несет аналогичную смысловую нагрузку.
Читать дальше →
Total votes 46: ↑44 and ↓2 +42
Comments 30

In-Memory OLTP в SQL Server 2014. Часть I

Reading time 9 min
Views 30K
Функциональность In-Memory OLTP (проект Hekaton) призвана ускорить обработку типовых OLTP-операций в SQL Server. Как известно, нагрузку, приходящуюся на сервер баз данных, будь то Microsoft SQL Server или Oracle/MySQL или SAP/Sybase или IBM DB2 и т.д., можно условно разбить на два класса: сбор данных и анализ того, что собрали, потому что зачем в противном случае было собирать? Первый класс задач называется OLTP (On-Line Transactional Processing). Для него характерны короткие обновляющие транзакции, затрагивающие относительно небольшое число таблиц в базе. Примеры таких приложений — операционный день в банке, биллинг в телекоме и т.д. Второй класс задач называется OLAP (On-Line Analytical Processing) и характеризуется массивным длительным чтением, охватывающим значительное количество таблиц и собирающим из них, как правило, по максимуму записей, изобилующим предикатами связывания, сортировки, группирования, агрегатными функциями и т.д. Как правило, структуры данных для разных классов задач разделяют, чтобы не мешали друг другу, и если первая структура базы строится с учетом многочисленных правил Кодда, то вторая, напротив, денормализована и выполняется по схеме «звезда (снежинка)».
Устремление СУБД в память проявилось в начале нового тысячелетия, когда выяснилось, что несмотря на закон Мура тактовая частота и быстродействие процессоров растут отнюдь не по экспоненте, а наоборот, выходят на плоскую прямую насыщения невзирая на ILP и прочие ухищрения. В то же время цены на оперативную память, когда-то неприлично дорогую, катастрофически снижаются и по сравнению с 90-ми упали в тысячи раз. Ага, сказали себе производители серверов баз данных. В 2005-м Oracle прикупил in-memory СУБД TimesTen, IBM в 2007-м — компанию Solid, а в Microsoft в данном случае ничего со стороны брать не стали, потому что решили воспитать в своем коллективе.
Читать дальше →
Total votes 8: ↑7 and ↓1 +6
Comments 7

Как заполнить базу данных MS SQL разнородными случайными данными или 17 часов ожидания

Reading time 7 min
Views 50K
Доброго дня,
Перед разработчиком часто возникает задача провести тест базы данных на больших объемах данных, но откуда взять эти самые данные? Ведь всем известно, что структура базы может достигать over 50 таблиц, которые не очень хочется заполнять руками. А если подумать о внешних ключах и составных первичных ключах значения которых связаны с другими таблицами, то голова начинает нагреваться пропорционально старому AMD с отключенным охлаждением.
В интернете существует много решений заполнения базы данный случайными значениями с использованием средств .NET, C++, Java и.д. В данной статье будет освещена тема заполнения базы данных случайными значениями средствами T-SQL под управлением MS SQL Server.
Дальше много кода на T-SQL
Total votes 12: ↑9 and ↓3 +6
Comments 5

Find invalid objects

Reading time 7 min
Views 19K
В обязанности администратора баз данных входит много разных задач, которые, в основном, направлены на поддержку работоспособности и целостности базы данных. И если целостность данных можно проверить через команду CHECKDB, то с поиском невалидных объектов в схеме не все так гладко.

Если проводить аналогии с Oracle, то в SQL Server нельзя так же легко получить список невалидных объектов:

SELECT owner, object_type, object_name
FROM all_objects
WHERE status = 'INVALID'

В большинстве ситуаций, узнать о том, что скриптовый объект является невалидным, можно только при его выполнении. Конечно, такое положение дел, может не всех устроить, поэтому предлагаю написать скрипт по поиску невалидных объектов в базе данных.
Подробнее
Total votes 12: ↑9 and ↓3 +6
Comments 14

В ногу со временем: Используем JWT в ASP.NET Core

Reading time 6 min
Views 42K
В июне 2016 вышел релиз ASP.Net Core 1.0 и теперь, если вас не пугает возраст нового фреймворка, можно аккуратно запустить микросервис в продакшн (все ведь используют микросервисную архитектуру, не так ли?). Для того, чтобы ограничить доступ к вашему микросервису для третьих лиц, необходимо сделать аутентификацию, используя довольно распространенный способ — токены. В статье под катом мы расскажем подробнее о том, как это сделать с помощью JSON Web Token (JWT), а также о плюсах и минусах этого подхода.


Читать дальше →
Total votes 29: ↑27 and ↓2 +25
Comments 7

Ускоряем Nginx за 5 минут

Reading time 5 min
Views 280K
image
Попытайтесь повторить это сами

Как правило, настроенный должным образом сервер Nginx на Linux, может обрабатывать 500,000 — 600,000 запросов в секунду. Но этот показатель можно весьма ощутимо увеличить. Хотел бы обратить внимание на тот факт, что настройки описанные ниже, применялись в тестовой среде и, возможно, для ваших боевых серверов они не подойдут.

Минутка банальности.

yum -y install nginx

На всякий пожарный, создадим бэкап исходного конфига.

cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.orig
vim /etc/nginx/nginx.conf

А теперь можно и похимичить!
Бдыжь-бдыжь
Total votes 203: ↑138 and ↓65 +73
Comments 127

Настройка nginx

Reading time 5 min
Views 287K
Тема правильной настройки nginx очень велика, и, боюсь, в рамки одной статьи на хабре никак не помещается. В этом тексте я постарался рассказать про общую структуру конфига, более интересные мелочи и частности, возможно, будут позже. :)

Неплохой начальной точкой для настройки nginx является конфиг, который идёт в комплекте с дистрибутивом, но очень многие возможности этого сервера в нём даже не упоминаются. Значительно более подробный пример есть на сайте Игоря Сысоева: sysoev.ru/nginx/docs/example.html. Однако, давайте лучше попробуем собрать с нуля свой конфиг, с бриджем и поэтессами. :)
подробности
Total votes 88: ↑78 and ↓10 +68
Comments 53

Бесплатные инструменты для разработчиков баз данных

Reading time 6 min
Views 32K
После прочтения статьи о полезных и бесплатных плагинах для SSMS — TOP (10) бесплатных плагинов для SSMS, я решил поделиться своим списком бесплатных инструментов, которые могут быть очень полезны разработчикам баз данных, и не только. Инструменты ориентированны на разработку под Microsoft SQL Server. Некоторые инструменты, платные, однако содержат достаточно полнофункциональные бесплатные редакции, которых с головой хватает для небольших проектов.
Читать дальше →
Total votes 17: ↑13 and ↓4 +9
Comments 6

Что скрывает в себе DEFAULT TRACE?

Reading time 11 min
Views 15K


Часто вспоминается первая работа… Средненький офис, моник 943N и обогреватель Pentium D под ногами. Как возникал из ниоткуда Борис (нет… не Борис «Бритва») с линейкой в руках и настойчиво просил не делать «больно» серверу.

Именно в те далекие времена я впервые познакомился с профайлером. Пользовательские трейсы оказались очень кстати при отладке приложений и поиске медленных запросов. Потом для себя я открыл DMV и XEvents… и профайлером стал пользоваться реже. Причина такого поступка проста – трейсы очень ресурсоемкие.

Однако, данную функциональность не стоит преждевременно придавать анафеме. Начиная с 2005 версии при установке SQL Server по умолчанию создается легковесный системный трейс, который хранит в себе много полезной информации.
Подробнее
Total votes 12: ↑11 and ↓1 +10
Comments 4

Text Template Transformation Toolkit (T4): генератор кода в Visual Studio

Reading time 8 min
Views 28K
Приветствую, Хабр!

Сегодня мы поговорим о рутине. Время от времени каждому программисту приходится совершать много нудной, объемной и шаблонной работы, которую постоянно так и хочется автоматизировать, да руки не доходят. Вот об одном малоизвестном способе упростить себе жизнь с помощью кодогенерации я и хочу сегодня рассказать сообществу дотнетчиков. Способ известен как Text Template Transformation Toolkit или попросту T4.

А что это такое?
Total votes 44: ↑35 and ↓9 +26
Comments 23

Information

Rating
Does not participate
Location
Барыбино, Москва и Московская обл., Россия
Registered
Activity