Search
Write a publication
Pull to refresh
0
0
Дмитрий @ex_ineris

QA Engineer

Send message

Почтовый сервер с нуля. Часть первая

Level of difficultyMedium
Reading time17 min
Views78K

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

В этом материале будет представлена связка полноценного почтового сервера в виде Exim4+Dovecot+PostfixAdmin+RainLoop.

Читать далее

Как обрести самостоятельность, перестать быть Мидлом QA и мыслить как Сеньор

Level of difficultyEasy
Reading time7 min
Views12K
Многие предполагают, что ключевое отличие между Middle QA и Senior QA заключается в уровне опыта и профессиональной экспертизе. Также существует мнение, что за переход из одной категории в другую должна отвечать компания, предоставляя четкий план действий. Однако, на деле, главное различие кроется в способности принимать решения, что на практике оказывается не так просто. Проблема для работодателей заключается в том, что не всегда ясно, кто из соискателей действительно соответствует уровню Сеньора. Были случаи в моей практике, когда сеньоры не оправдывали возложенных на них ожиданий, несмотря на успешное прохождение собеседования. В то же время, некоторые Мидлы, через полгода работы демонстрировали, что заслуживают позиции Сеньора благодаря своим решениям и подходу к работе.
Читать дальше →

Создание своего UEFI приложения

Level of difficultyMedium
Reading time5 min
Views46K

Привет, Хабр! Мне 16 лет, я студент, учусь на первом курсе колледжа на программиста. Начал увлекаться низкоуровневым программированием на Ассемблере и C/C++

Я заметил что на Хабре есть множество статей о написании своих простых "загрузчиков" для BIOS-MBR, которые выводят на экран "Hello World!". И при этом практически нет ни одной статьи о создании того же самого, но только для UEFI, хотя будущее именно за ним, ведь BIOS уже давно устарел! Это я и хочу исправить в этой статье.

Читать далее

Ретроспективный взгляд на развитие микропроцессоров CISC, RISC, MIPS, ARM

Level of difficultyEasy
Reading time21 min
Views12K

С момента разработки первой в мире интегральной схемы в 1959 году прошло несколько десятков лет. Все эти годы аппаратные реализации вычислительных устройств, словно древние организмы «Мезозойской эры», претерпевали многочисленные изменения.

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

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

Потребовалась структура — простая, понятная и эффективная.

Читать далее

Как рос мой доход в IT: от 17к до $21000 в месяц

Level of difficultyEasy
Reading time10 min
Views126K

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

Читать далее

Лучшие практики модульного тестирования

Reading time7 min
Views5.7K

В этой статье мы рассмотрим лучшие практики модульного тестирования. Сначала я объясню, что такое модульное тестирование и почему мы должны использовать его в наших проектах. Затем мы рассмотрим лучшие практики модульного тестирования. Я приведу пример кода с использованием фреймворка xUnit для написания модульных тестов в проектах на .Net.

Читать далее

5 самых странных языков программирования: для чего они нужны и что на них можно написать

Reading time25 min
Views18K

Согласно самым разным источникам, в мире существует от нескольких сотен до нескольких тысяч языков программирования. Правда, ЯП, с которыми реально имеют дело десятки и сотни тысяч человек, немного. Больше, конечно, нишевых языков, применяемых для решения узкого круга задач. Существуют ЯП для обучения разработчиков, а также проекты, созданные исключительно для развлечения. В статье — 5 наиболее странных языков из когда-либо созданных. Brainfuck, кстати, опустим, ведь его на Хабре и так регулярно вспоминают. Что же, поехали.

Читать далее

Умный дом с котом: мой опыт автоматизации домашней рутины

Level of difficultyEasy
Reading time11 min
Views26K

Как автоматизировать дом, чтобы кошачий лоток отправлял в «Телеграм» сообщения, что его пора почистить, а на экране ТВ появлялось сообщение, что ванная комната освободилась. Об этом рассказал наш комьюнити‑менеджер Игорь Губайдуллин, инженер с 20-летним опытом работы. Умный дом стал его хобби пять лет назад — началось всё с робких шагов по освоению Apple HomeKit, а закончилось выделенным сервером умного дома с Home Assistant на борту.

Читать далее

Wasm vs Docker containers vs Kubernetes vs serverless: битва за первенство

Level of difficultyEasy
Reading time12 min
Views13K

В начале года на YouTube-канале DevOps Toolkit вышло видео с разбором WebAssembly. Автором ролика является Виктор Фарчич (Viktor Farcic) — developer advocate в Upbound, член CNCF Ambassadors, Google Developer Experts, CDF Ambassadors и GitHub Stars.

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

Читать далее

Улучшаем свой код на Python

Level of difficultyEasy
Reading time6 min
Views17K

Жизнь — это бесконечное совершенствование. Считать себя совершенным — значит убить себя. (Георг Гегель)

Для кого статья:

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

для среднеопытных - порадовать свою самооценку

Читать далее

Особенности и проблемы mock-сервера Swordfish API Emulator

Reading time13 min
Views1.4K

Эта статья — продолжение истории про разработку Ansible-модулей для взаимодействий с системами хранения данных (СХД) через API, которое удовлетворяет спецификации Swordfish. Эти модули в перспективе облегчат управление парком СХД от разных производителей.

Чтобы тестировать работоспособность созданных модулей, нужен настоящий сервер СХД (или тестовый mock-сервер), который предоставляет необходимый REST API. Получить настоящий сервер от производителя СХД — сложная задача, которая требует финансовых и временных затрат на получение программно-аппаратного обеспечения. В случае open-source разработки такая опция доступна не всем командам. 

Компания SNIA, разработчик спецификации Swordfish, подумала об этом и предоставляет разработчикам свободно распространяемый mock-сервер — Swordfish API Emulator. В рамках проекта Лаборатории YADRO на базе СПбПУ Петра Великого мы протестировали его в работе. В статье расскажем, как он устроен и как с ним взаимодействовать в задачах.

Читать далее

Генерация тест-кейсов на основе искусственного интеллекта: революционный подход для тестировщиков

Level of difficultyMedium
Reading time8 min
Views9K

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

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

Читать далее

Связываем домен и динамический IP

Reading time2 min
Views171K
Что мы имеем:
1. компьютер с осью и установленными mysql, apache, php (тут ничего писать не буду, благо мануалов хватает)
2. интернет с присваиваемым динамическим IP, роутер.

Что мы хотим:
1. Что бы люди вбивая в адресную строку браузера доменное имя второго уровня (купленное нами или полученное на каком либо сервисе), попадали на наш сайт (в независимости от того на каком IP он сейчас находиться).
2. Хотим это бесплатно.

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

Читать дальше →

Практические советы, примеры и туннели SSH

Reading time13 min
Views257K

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

Знание нескольких трюков ssh полезно любому системному администратору, сетевому инженеру или специалисту по безопасности.
Читать дальше →

SSH-туннели — пробрасываем порт

Reading time2 min
Views437K
Не всегда есть возможность, да и не всегда надо, строить полноценный туннель с интерфейсной парой адресов. Иногда нам нужно лишь «прокинуть» вполне определённые порты.

Тут важно понимать, что туннель можно организовать как изнутри сети, к ресурсам которой вы хотите получить доступ, на внешний ssh-сервер. Также можно организовать туннель с хоста в Интернете на пограничный ssh-сервер сети, чтобы получить доступ к внутренним ресурсам.
Читать дальше →

Краткий обзор поведенческих паттернов в Rust

Level of difficultyEasy
Reading time6 min
Views5K

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

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

Паттерны можно реализовать на любом ЯПе и сегодня рассмотрим, как их реализовать в Rust.

Читать далее

Китайские инструменты для взлома раскрыты в гигантской утечке (I-S00N)

Reading time3 min
Views37K

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

Сегодня расскажем что представляет собой слитая информация инсайдера-разоблачителя из Anxun в Шанхае, компании, тесно связанной с правительством и Министерством общественной безопасности Китая.

Подтвержденные пострадавшие страны: Армения, Эстония, Казахстан, Россия, Грузия.

Читать далее

Как хранить токены и пароли в программах на Python

Level of difficultyEasy
Reading time6 min
Views31K

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

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

Читать далее

Как расширить дисковое пространство на VPS за счет дисков на сервере в домашней сети

Level of difficultyEasy
Reading time9 min
Views9.5K

В настоящее время очень широкое распространение получили решения, основанные на self-hosting'e. При этом, под этим термином понимается идеология и практика, предусматривающая размещение веб-сервисов на собственных серверах, например домашних, вместо использования стороннего хостинга, как коммерческого, так и бесплатного.

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

Но недостатки такого подхода тоже есть, и часто основной недостаток в том, что для предоставления доступа к вашим сетевым ресурсам вы должны обеспечить ряд условий: работающий сервер, статический IP, правильная настройка NAT в части маршрутизации пакетов и обеспечения безопасности. И если с первым вопросом более-менее ситуация решаемая, то остальные вопросы подчас становятся нерешаемыми в силу ряда причин, начиная от особенностей провайдеров, заканчивая тем сетевым железом, которое есть в распоряжении пользователя. Хорошо, если это будет какое то решение, основанное на RouterOS или OpenWRT, которое еще надо уметь настроить, что подчас совсем не просто. Но это может быть и какой то роутер начального уровня (или, что еще хуже провайдерское оборудование), которое крайне ограничено в своем функционале, на котором настроен свой NAT, которое может находится за NAT провайдера с «серым» IP. Поэтому популярные решения для self-hosted ресурсов вроде NextCloud становятся не такими уж и популярными как бы того хотелось.

Читать далее

Information

Rating
8,570-th
Location
Днепр, Днепропетровская обл., Украина
Date of birth
Registered
Activity