Pull to refresh
2
0

WEB-программист, сетевой администратор

Send message

Postman: почтальон на страже API

Level of difficultyMedium
Reading time18 min
Views3.8K

Привет! Меня зовут Бальцер Вадим, я QA-инженер в команде android направления Банки.ру. Сегодня поделюсь нашим опытом внедрения автотестов обратной совместимости и интеграции их в CI. 

В материале расскажу: 
1) зачем нашей команде понадобились автотесты для контроля обратной совместимости API, почему мы выбрали Postman CI.
2) с чего начали: базовые вещи + полезные советы для начинающих.
3) есть ли жизнь за гранью проверок схемы.
4) CI и интеграция с ТестОпс.
5) к чему пришли и какие перспективы видим.

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

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

Самые опасные сетевые порты: как найти и закрыть все лазейки

Reading time7 min
Views18K

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

Привет! Меня зовут Ваня, я ведущий инженер по информационной безопасности в Selectel. В этом материале разберу, какие порты наиболее интересны хактивистам и как быть в курсе актуальных уязвимостей. А в конце поделюсь чек-листом с планом действий при обнаружении открытых портов в своей инфраструктуре. Подробности под катом!
Читать дальше →
Total votes 45: ↑41 and ↓4+47
Comments26

Секреты айтишной карьеры, о которых лучше не рассказывать…

Level of difficultyEasy
Reading time11 min
Views79K

Секреты айтишной карьеры, о которых лучше не рассказывать...

...но которыми всё же с нами поделился QA lead "ITQ Group" Сергей Мурашов.

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

Читать далее
Total votes 53: ↑40 and ↓13+40
Comments34

Гайд по логам для тестировщиков

Level of difficultyEasy
Reading time15 min
Views7.8K

Почти четыре года я познаю дивный мир тестирования в департаменте корпоративных систем ЛАНИТ. Последние полтора ― на финтехпроектах, поэтому работа с логами стала частью моего рабочего процесса. В этом гайде я познакомлю вас с ключевыми моментами, которые помогут понять логи лучше и применять инструменты логирования эффективнее.

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

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

Простой мини-чат на FastApi: Современный интерфейс, вебсокеты и SQLAlchemy с деплоем

Reading time40 min
Views9.5K

Привет, друзья! Сегодня я подготовил для вас увлекательную практическую статью о создании мини-чата на FastApi. Мы погрузимся в мир вебсокетов, узнаем, зачем они нужны и как применяются в реальных приложениях. Также я продемонстрирую работу с асинхронной SQLAlchemy на примере взаимодействия с базой данных SQLite.

Для создания современного интерфейса мы обратимся к интересному и бесплатному сервису Websim.ai, который за пару минут сгенерирует нам интерфейс, включая страничку для входа/регистрации и страницу самого чата.

Чтобы наш чат мог обслуживать множество пользователей одновременно, мы выполним деплой нашего FastApi приложения. Для этого воспользуемся сервисом Amvera Cloud. Нам нужно будет подготовить файлы приложения, написать код, создать файл с настройками (можно сгенерировать на сайте или скопировать мой код), а затем доставить файлы на сервис. Для доставки можно использовать встроенный терминал или GIT, используя стандартные команды PUSH/PULL.

Но прежде чем мы погрузимся в код, давайте кратко обсудим, что такое вебсокеты и как они работают в контексте FastApi.

Читать далее
Total votes 14: ↑14 and ↓0+18
Comments4

Создание аппаратно-независимых библиотек для микроконтроллеров

Level of difficultyMedium
Reading time10 min
Views9.2K

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

Суть создания аппаратно-независимой библиотеки состоит в том, чтобы отвязаться от того уровня абстракции (библиотеки и фреймворки), который предоставляет производитель микроконтроллеров, внутри реализуемой библиотеки. Например, для STM32 - HAL, ESP32 - ESP-IDF или Arduino, для AVR зачастую используют Arduino. Это позволит использовать одну и ту же библиотеку на различных микроконтроллерах (и не только) без изменения кода библиотеки под каждый камень.

Читать далее
Total votes 26: ↑25 and ↓1+35
Comments36

Кодирование с кодеком HEVC простым языком — гайд на FFmpeg. Высокое качество, но низкий вес

Level of difficultyEasy
Reading time11 min
Views16K

Казалось бы, довольно простой вопрос: «Чем сжать видео?». На ум сразу приходят Handbrake, Movavi Converter или ещё что-нибудь пострашнее. Однако когда речь заходит о более гиковском подходе с упором на максимальное качество и экономию места, такие программы сложно назвать инструментами. Равно как и для обратной ситуации, когда картинку нужно сильно сжать и сохранить в целостности большую часть полезной информации. Все эти программы только лишь предоставляют набор наиболее общих конфигов для обычной съёмки и 2D.

В этой статье мы изучим, как при помощи самого большого сборника свободных библиотек FFmpeg научиться кодировать видео самому именно под ваши задачи.
Читать дальше →
Total votes 86: ↑85 and ↓1+112
Comments121

Основы Docker: контейнеризация, Dockerfile и Docker Compose. Часть 2

Level of difficultyMedium
Reading time8 min
Views8.6K

Привет, Хабр! Меня зовут Толя, я лидер компетенции Java в Цифровом СИБУРе. Наш прошлый материал о Docker собрал классный фидбэк, поэтому мы решили развить тему и подготовить ещё несколько статей, двигаясь от простого к сложному.

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

Читать далее
Total votes 12: ↑9 and ↓3+13
Comments3

Урок по веб-дизайну для детей: как работать с сеткой в Figma

Level of difficultyEasy
Reading time4 min
Views3K

Этот урок мы посвятим работе с типографикой в Figma. Вы узнаете, как работать с модульными сетками в «Фигме». Урок предназначен для детей и подростков 8 лет и старше.

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

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

Читать далее
Total votes 13: ↑9 and ↓4+9
Comments4

Как я при помощи двух «костылей» смог автоматически сгенерировать опись документов для 700 страниц

Level of difficultyMedium
Reading time4 min
Views6.4K

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

Ситуацию несколько облегчает то, что на эти распечатанные документы есть исходные Excel файлы.

Автоматизируем создание описи документов🤖
Total votes 8: ↑8 and ↓0+12
Comments7

Как я узнал номер паспорта и телефон премьер-министра по фото в Instagram*

Level of difficultyMedium
Reading time8 min
Views22K

Акт 1: полдень воскресенья


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

А потом я получил сообщение в «групповом чате»1.

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

Обладателем талона был Тони Абботт, один из множества бывших премьер-министров Австралии.
Читать дальше →
Total votes 71: ↑61 and ↓10+70
Comments34

Apache Kafka – Producer и Consumer. Простой пример Nodejs приложения

Level of difficultyMedium
Reading time5 min
Views5K

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

Перед чтением данной статьи, настоятельно рекомендую ознакомиться с данной статьей, по теме kafka (Kafka за 20 минут. Ментальная модель и как с ней работать)

Пример реализации можно найти тут...

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

Знакомство с Docker или зачем это всё нужно

Level of difficultyEasy
Reading time7 min
Views15K

Всем привет. Меня зовут Алексей, вместе с командой я занимаюсь разработкой прикладных решений в системе Saby компании Тензор. В своей статье хочу поговорить про Docker.

При знакомстве с любой технологией важно понимать, зачем инвестировать своё время в её изучение. Для этого нужно иметь хотя бы общее представление о предметной теме. Сейчас, когда Docker используется повсеместно, многие разработчики (особенно молодые) относятся к нему, как к данности, при этом не до конца понимая, зачем, собственно, он используется и какие проблемы решает. На Хабре есть ознакомительные статьи про Docker, однако они не в полной мере (вернее, не в той мере, в которой хотелось бы мне :) ) освещают данный вопрос. Так возникла идея написания этой статьи. При ее подготовке были использованы: информация из книги Docker In Action, данные с профильных сайтов, собственные разработки для выступления на внутрикорпоративном митапе Тензора, материалы с IT-форумов и, конечно, личный опыт. Если вы опытный разработчик/администратор/devops, и уже давно используете Docker, вы вряд ли узнаете что-то новое из статьи и можете смело проходить мимо. Если же ваш профессиональный путь только начинается, надеюсь, что этот материал поможет вам в освоении данной технологии.

Читать далее
Total votes 16: ↑16 and ↓0+22
Comments4

Идеальная удаленка: восемь простых шагов

Level of difficultyEasy
Reading time8 min
Views47K

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

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

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

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

Разбор самых частых проблемных ситуаций, конкретные советы без долгих размышлений — вот что вы найдете в этой статье.

Читать далее
Total votes 65: ↑57 and ↓8+62
Comments72

Как мы заработали 100 000 рублей за 3 месяца, запустив простой конвертер картинок в США

Level of difficultyEasy
Reading time5 min
Views58K

Что мы поняли, запустив простой конвертер картинок за 1 месяц в США. И как заработали 100 000 рублей за первые 3 месяца, хотя вокруг куча бесплатных аналогов.

Читать далее
Total votes 117: ↑106 and ↓11+113
Comments219

Квадранты эффективности работы сотрудников

Level of difficultyEasy
Reading time5 min
Views4.9K

Как организовывать наем, взращивать таланты и при этом осознанно развивать культуру компании.

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

При этом хорошая кадровая работа отнимает немало времени и в длительной перспективе, и непосредственно в рабочем процеcсе.

А сколько же именно? В книге HBR «Первые 90 дней» (ее краткое изложение здесь) приводится диаграмма, наглядно демонстрирующая, что новому сотруднику может потребоваться примерно 3 месяца, чтобы он начал приносить пользу, а еще через 3 месяца он станет безубыточным и начнет окупать вложенные средства.

Читать далее
Total votes 13: ↑9 and ↓4+9
Comments1

Программирование — это вообще не просто!⠀

Reading time19 min
Views41K


Привет, Хабр!


Идея статьи появилась, когда я начал повсюду замечать якобы подтверждения мифа, что «программирование — это просто»‬‬.


В новостях «восьмилетняя девочка, которая второй раз в жизни занимается программированием, наклепала чат-бота за 45 минут»‬ (ага, да!).


Курсы предлагают мне за 10 месяцев с нуля стать миддл+ (ага, да!).


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


Читать дальше →
Total votes 201: ↑191 and ↓10+217
Comments109

Схематично, простыми словами о внутреннем устройстве PHP (Zend Engine, OPCache, JIT)

Level of difficultyEasy
Reading time5 min
Views11K

Данный пост нацелен на неопытных PHP-специалистов. От этой информации лучше программировать вы не станете. Ожидаемая польза:

Мне когнитивно и морально легче, когда уменьшается «магия» того, с чем работаешь. Может тебе тоже

Возможно чуть-чуть реже статьи на хабре будут тебя отпугивать

Объясню на 4 примерах — каждый лишь немного сложнее предыдущего.

Пример 1: запуск программы, написанном на компилируемом языке (Go): в полной статье

Пример 2: Запуск скрипта PHP без OPCache и JIT

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

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

Вот схематично представил всю последовательность работы PHP скрипта без включенных OPCache и JIT (каждый из них по отдельности рассмотрим в следующих двух примерах).

У нас привычный «исходный код» PHP (файл hello-world.php):

<?php echo "Hello world";

Опять идем по порядку, рассмотрим какие процессы происходят запустив команду:

php hello-world.php

Процесс №1 — Компиляция в байт-код
Сначала исходный код обрабатывается Zend Compiler — это PHP компилятор. Первый из двух основных компонентов Zend Virtual Machine.

В отличие от рассмотренного выше компилятора Go:

задача PHP компилятора — преобразовать исходный код не в машинный код, а в код-посредник - байт-код;

процесс компиляции происходит при каждом запуске программы (вместо лишь единоразового - до запуска программы, как в примере с Go)

В случае PHP этот байт-код назвали PHP OPCode.

Байт-код — является более низко-уровневым, чем исходный код. Он содержит набор команд для интерпретатора (об интерпретаторе в следующем пункте). Байт-код не может выполняться процессором напрямую.

Чтобы посмотреть результат работы компилятора — сам байт-код — выполним команду:

php -d opcache.opt_debug_level=0x20000 -d opcache.enable_cli=1 hello-world.php

Получим:

$_main: ; (lines=3, args=0, vars=0, tmps=1) ; (after optimizer) ; /hello-world.php:1-2 0000 EXT_STMT 0001 ECHO string("Hello World") 0002 RETURN int(1)

Вначале видим $_main: — обозначает, что следующие строки относятся к функции main. Появление такой функции в байт-коде для глобальной области видимости PHP — занятная историческая особенность, дошедшая из других языков;

Следующие 3 строки начинаются на ; — так обозначаются комментарии. Одна из целей — для дебаг-информации;

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

Процесс №2 — Выполнение байт-кода

Читать далее
Total votes 33: ↑32 and ↓1+38
Comments12

Администрирование PostgreSQL для начинающих (часть 5)

Level of difficultyEasy
Reading time17 min
Views4K

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

Читать далее
Total votes 15: ↑8 and ↓7+3
Comments50

7 продвинутых приёмов JavaScript, которые должен знать каждый разработчик

Level of difficultyEasy
Reading time4 min
Views17K

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

Однако при таком обилии функций и технологий легко упустить самые мощные из них. Если ваша цель — повысить производительность или упростить поддержку кода, эти продвинутые техники дадут вам серьёзное преимущество.

Давайте разберём 7 продвинутых техник в JavaScript, которые помогут вам вывести свои навыки на новый уровень.

Читать далее
Total votes 31: ↑23 and ↓8+21
Comments10
1
23 ...

Information

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