Pull to refresh
23
0
Pavel Sandovin @PavelSandovin

Системный аналитик

Send message

GOST: швейцарский нож для туннелирования и обхода блокировок

Level of difficultyMedium
Reading time13 min
Views94K

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

Сегодня я расскажу о замечательном инструменте под названием GOST. Не пугайтесь, он не имеет никакого отношения к ГОСТ-шифрованию или чему-то подобному, на самом деле это Go Simple Tunnel. Он действительно simple (простой) в использовании и настройке, но при этом невероятно мощный, поскольку поддерживает огромное количество протоколов и транспортов, из которых вы при желании сможете построить самые упоротые и бронебойные комбинации, а именно...

Читать далее
Total votes 180: ↑177 and ↓3+174
Comments113

Dynamic T-SQL и как он может быть полезен

Reading time6 min
Views60K
В наших проектах нам приходится решать различные задачи. Для решения некоторых из них мы используем dynamic T-Sql (далее по тексту dynamic sql).

Для чего нужен dynamic sql? Каждый решает для себя. В одном из проектов с помощью dynamic sql мы решили задачи построения динамичных отчетов, в других — миграцию данных. Также dynamic sql незаменим в случаях, когда требуется создать/изменить/получить данные или объекты, но значения/названия приходят в качестве параметров. Да, это может показаться абсурдом, но есть и такие задачи.


Читать дальше →
Total votes 11: ↑11 and ↓0+11
Comments7

Береги файлы смолоду. Что может произойти, если выкинуть в помойку неисправный жесткий диск

Level of difficultyEasy
Reading time8 min
Views63K


Время от времени мне приходится чинить старую компьютерную технику. Винчестеры формата IDE сейчас уже не выпускают, а оптические диски выступают в роли расходного материала — далеко не все возрастные ноутбуки и персоналки умеют грузиться с USB, а покупать чистые болванки пачками или поштучно — довольно разорительное занятие. Поэтому месторождением запчастей и расходников для меня служит самая популярная в Рунете доска объявлений и блошиный рынок: там можно приобрести за копейки побывавшие в употреблении перезаписываемые CD/DVD-RW, а заодно старые жесткие диски, которые еще способны послужить новым владельцам. Но речь сейчас не о том, как сэкономить на комплектующих, а о том, что порой можно обнаружить на «бэушных» носителях информации…
Читать дальше →
Total votes 93: ↑90 and ↓3+87
Comments236

Метафоры подходов к созданию IT-продуктов

Reading time6 min
Views6.9K

Я уже много лет занимаюсь созданием IT-продуктов. Всё это время для себя и коллег собираю метафоры, которые позволяют наглядно показать, как нужно и как ненужно выстраивать работу по созданию ПО.

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

Я рассмотрю 5 моих любимых метафор, которые помогают сонастраивать общее видение процесса для команды разработки и заказчика:

Читать далее
Total votes 22: ↑20 and ↓2+18
Comments32

Учебник по языку SQL (DDL, DML) на примере диалекта MS SQL Server. Часть четвертая

Reading time32 min
Views354K

Предыдущие части




В данной части мы рассмотрим


Многотабличные запросы:
  • Операции горизонтального соединения таблиц – JOIN
  • Связь таблиц при помощи WHERE-условия
  • Операции вертикального объединения результатов запросов – UNION

Работу с подзапросами:
  • Подзапросы в блоках FROM, SELECT
  • Подзапрос в конструкции APPLY
  • Использование предложения WITH
  • Подзапросы в блоке WHERE:
    • Групповое сравнение — ALL, ANY
    • Условие EXISTS
    • Условие IN

Читать дальше →
Total votes 21: ↑17 and ↓4+13
Comments6

Диаграммы без боли и страданий: PlantUML

Level of difficultyMedium
Reading time9 min
Views37K

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

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

Читать далее
Total votes 76: ↑75 and ↓1+74
Comments35

Создание расширения браузера Google Chrome для извлечения всех изображений web-страницы. Часть 1

Reading time15 min
Views68K

Расширения браузера это web-приложения, которые устанавливаются в web-браузер чтобы расширить его возможности. Обычно для того чтобы воспользоваться расширением, пользователю нужно найти его в Chrome Web Store и установить.

В этой статье я покажу как создать расширение для браузера Google Chrome с нуля. Это расширение будет использовать API браузера для того чтобы получить доступ к содержимому web-страницы любой открытой вкладки. С помощью этих API можно не только читать информацию с открытых web-сайтов, но и взаимодействовать с этими страницами, например, переходить по ссылкам или нажимать на кнопки. Таким образом расширения браузера могут использоваться для широкого круга задач автоматизации на стороне клиента, таких как web-scrape или даже автоматизированное тестирование фронтенда.

Мы создадим расширение, которое называется Image Grabber, которое будет содержать интерфейс для подключения к web-странице и для извлечения из нее информации о всех изображениях. Далее, при нажатии на кнопку "GRAB NOW" список абсолютных URL этих изображений будет скопирован в буфер обмена. В этом процессе вы познакомитесь с фундаментальными строительными блоками, которые в дальнейшем можно будет использовать для создания других расширений.

Расширения, создаваемые таким образом для браузера Chrome совместимы с другими браузерами, основанными на движке Chromium и могут быть установлены, например, в Yandex-браузер или Opera.

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

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

Создание расширения браузера Google Chrome для извлечения всех изображений web-страницы. Часть 2

Reading time25 min
Views14K

Представляю вашему вниманию вторую часть статьи о создании расширения web-браузера Chrome, которое позволяет извлечь все изображения с web-страницы.

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

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

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

Electron: разработка настольных приложений с использованием HTML, CSS и JavaScript

Reading time8 min
Views129K
Можно ли, используя HTML, CSS и JavaScript, создавать настольные приложения? Автор статьи, перевод которой мы сегодня публикуем, даёт утвердительный ответ на этот вопрос. Здесь он расскажет о том, как, применяя веб-технологии и пользуясь возможностями фреймворка Electron, создавать кроссплатформенные приложения для настольных операционных систем.


Читать дальше →
Total votes 45: ↑33 and ↓12+21
Comments87

Скучный Python: повышаем качество кода

Reading time17 min
Views22K

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

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

Как избавиться от прокрастинации до того, как она разрушит вашу карьеру

Reading time9 min
Views87K

Прокрастинацию принято считать разновидностью лени и ерундой, а эффективным лекарством от нее грозный окрик: «Соберись, тряпка!» На деле прокрастинация — опасная проблема, сродни зависимости, которая вызывает много вины и стыда, и способна со временем разрушить личность. Почему она так опасна, редко лечится попыткой «взять себя в руки» и как ее одолеть?

Читать далее
Total votes 69: ↑63 and ↓6+57
Comments96

Автоматизация тестирования 1С (и не только) с помощью RPA

Reading time7 min
Views4.3K
Пожалуй, сейчас уже нет ни одного специалиста по тестированию, который бы не задумывался над вопросом автоматизации тестирования. Великое множество фреймворков, языков, специальных инструментов автоматизации — выбирай самый подходящий, на твой взгляд, и автоматизируй. Но не всегда всё так просто.

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

В поисках такой платформы мы сравнили известные инструменты автоматизации:



Получается, что команда автоматизаторов, которая вполне успешно автоматизирует тестирование всех остальных систем IT-ландшафта компании, используя, например, самые распространённые фреймворки Java, не может взять в работу 1С. Автоматизация тестирования 1С становится достаточно редкой и обособленной компетенцией.

В поисках идеального предложения для решения проблемы мы решили побрейнштормить и поискать нестандартные решения. Что умеет работать с 1С и при этом может использоваться для автоматизации тестирования? В какой-то момент у нас появилось понимание, что действия, аналогичные автоматизации UI, часто применяются в роботизации. По сути, роботизация — это форма технологии автоматизации бизнес-процессов. А чем тестирование не бизнес-процесс? Отличительной и основной особенностью роботов RPA является возможность использования пользовательского интерфейса, в том числе и десктопного, для сбора данных и управления приложениями, т. е. именно то, что нужно для автоматизации тестирования 1С.
Читать дальше →
Total votes 29: ↑28 and ↓1+27
Comments3

Наблюдения программиста в возрасте

Reading time3 min
Views70K
В колледже люди говорили мне, что я начну карьеру с написания кода, но в конечном счете приду к тому, что буду просить других писать код под свои идеи. В честь того, что это предсказание оказалось полностью неверным, вот некоторые произвольные соображения от сорокалетнего программиста, который размышляет над ходом своей карьеры.
Читать дальше →
Total votes 157: ↑147 and ↓10+137
Comments161

Книга «Масштабируемые данные. Лучшие шаблоны высоконагруженных архитектур»

Reading time12 min
Views9K
image Хорошего дня, Хаброжители!

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

Архитекторы и аналитики данных, специалисты по соблюдению требований и управлению узнают, как работать с масштабируемой архитектурой и внедрять ее без больших предварительных затрат. Питхейн Стренгхольт поделится с вами идеями, принципами, наблюдениями, передовым опытом и шаблонами. 
Читать дальше →
Total votes 9: ↑9 and ↓0+9
Comments3

Формула счастья программиста — Самый полный список требований к работе

Reading time15 min
Views20K

Как выглядит идеальная работа программиста? Что делает делает хорошую работу хорошей? Хотя бы не плохой?

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

А сталкивались ли вы с такой ситуацией?

Читать далее
Total votes 20: ↑18 and ↓2+16
Comments12

Контроль типов аргументов функций в Lua

Reading time12 min
Views11K

Задача


Lua — язык с динамической типизацией.

Это значит, что тип в языке связан не с переменной, а с её значением:

= "the meaning of life" --> была строка,<br/>
= 42                    --> стало число

Это удобно.

Однако, нередко встречаются случаи, когда хочется жёстко контролировать тип переменной. Самый частый такой случай — проверка аргументов функций.

Рассмотрим наивный пример:

function repeater(n, message)<br/>
  for i = 1, n do<br/>
    print(message)<br/>
  end<br/>
end<br/>
 <br/>
repeater(3"foo") --> foo<br/>
                   --> foo<br/>
                   --> foo

Если перепутать местами аргументы функции repeat, получим ошибку времени выполнения:

> repeater("foo", 3)
stdin:2: 'for' limit must be a number
stack traceback:
	stdin:2: in function 'repeater'
	stdin:1: in main chunk
	[C]: ?

«Какой такой for?!» — скажет пользователь нашей функции, увидев это сообщение об ошибке.
Читать дальше →
Total votes 34: ↑27 and ↓7+20
Comments20

Как и почему мы переехали из SAP в 1C c интеграцией в Directum RX

Reading time9 min
Views7.1K

Сегодня многие компании вынуждены мигрировать на российский софт, в связи с санкционными ограничениями или требованиями регуляторов. У нас есть похожий опыт, хотя сам процесс миграции произошёл до введения санкций, а обязательств по импортозамещению у нашей компании нет. Мы отказались от SAP и заменили его 1C ещё в 2021-м году. Под катом расскажем о том, почему у нас возникла такая необходимость, как переехали и с какими проблемами столкнулись.

Причины и задачи миграции 

Причина 1: SAP - дорого и избыточно

Основной причиной, по которой мы осознали необходимость миграции, стали изменения в структуре компании. Ранее мы работали в составе холдинга, в ЕАЕ-Консалт было 45 обособленных подразделений и 1300 сотрудников, компания имела оборот 3 млрд. В этот период использование SAP себя оправдывало, так как функций и возможностей 1С:Предприятие, по нашему мнению, было недостаточно. Более того, сотрудники наших финансовых отделов привыкли работать с SAP, а переход на другую систему в такой большой компании был бы сопряжен с высокими расходами и рисками.

С 2011 по 2019-й весь холдинг работал на SAP. Управляющая компания холдинга пробовала работать с 1С, но в процессе унификации также перешла на SAP. C 2011 по 2014-й мы использовали SAP ERP ECC6 и SAP HCM, которые арендовали у Лукойл. С 2014 произошло разделение систем SAP ERP ECC6 и SAP HCM, мы мигрировали обе системы на СУБД HANA в собственный ЦОД. В 2017 перешли на SAP S4/Hana 1709 в Microsoft Azure. В 2019 внедрили SAP S/4Hana 1909. В 2020-м мигрировали SAP HCM в Yandex Cloud и выделили данные ЕАЕ-Консалт из системы HCM холдинга. Тогда начался наш самостоятельный опыт и он был достаточно удачным, в рамках тех задач, которые стояли перед нами в тот момент.

Читать далее
Total votes 9: ↑7 and ↓2+5
Comments10

Идеальная работа. Программирование без прикрас

Reading time7 min
Views12K

Привет, Хаброжители! В книге «Идеальная работа. Программирование без прикрас» легендарный Роберт Мартин (Дядюшка Боб) создал исчерпывающее руководство по хорошей работе для каждого программиста. Роберт Мартин объединяет дисциплины, стандарты и вопросы этики, необходимые для быстрой и продуктивной разработки надежного, эффективного кода, позволяющего испытывать гордость за программное обеспечение, которое вы создаете каждый день.

Роберт Мартин, автор бестселлера «Чистый код», начинает с прагматического руководства по пяти основополагающим дисциплинам создания программного обеспечения: разработка через тестирование, рефакторинг, простой дизайн, совместное программирование и тесты. Затем он переходит к стандартам — обрисовывая ожидания «мира» от разработчиков программного обеспечения, рассказывая, как часто различаются эти подходы, и помогает вам устранить несоответствия. Наконец, он обращается к этике программиста, давая десять фундаментальных постулатов, которым должны следовать все разработчики программного обеспечения.


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

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

Reading time4 min
Views13K
Работа программистом предполагает постоянное обязательное самообучение. Самообучение включает в себя, во-первых, углубление знаний в уже знакомых сферах, и, во-вторых, получение навыков в неизвестных и пропущенных областях. Это всё, конечно, красиво звучит на бумаге, но по факту мы ещё имеем приступы лени, застревания в стеке технологий и выгорание от рутины. Новые ощущения помогают в борьбе с тёмной стороной разработки. Вот только ощущения должны быть действительно новыми: разбираться в десятый раз с нюансами «новых» api от очередной социалки быстро становится завуалированной рутиной.


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

В статье я описываю свой подход, который помогает мне результативнее заполнять пробелы в знаниях, а также с большим удовольствием заниматься геймдевом в качестве хобби.
Читать дальше →
Total votes 14: ↑8 and ↓6+2
Comments33

«Scrum. Революционный метод управления проектами». Книга за 15 минут

Reading time16 min
Views409K
image

Недавно мы в MakeRight.ru с удовольствием прочитали книгу «Scrum. Революционный метод управления проектами» Джеффа Сазерленда. О чем она? В двух словах — о том, как организовать слаженную командную работу.
Начав внедрять элементы скрама на практике, мы пришли к выводу, что идеи книги действительно работают.

Революционный ли это метод, как указано в названии? Не знаем. Но, возможно, те, кто не читал книгу и не знаком с методикой, почерпнут для себя ряд полезных идей из нашего саммари (краткого изложения). Итак…
Читать дальше →
Total votes 11: ↑11 and ↓0+11
Comments30
1
23 ...

Information

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