Pull to refresh
25
0.2
alexei lupan @astenix

QA дед

Send message

Что происходит, когда запускаешь «Hello World» в Linux

Level of difficultyMedium
Reading time15 min
Views30K

Сегодня я задумалась о том, что происходит, когда запускаешь в Linux простую программу «Hello World» на Python.

print("hello world")

Вот как это выглядит в командной строке:

$ python3 hello.py
hello world

Но внутри происходит гораздо больше. Я объясню, что там творится, и, что гораздо важнее, расскажу об инструментах, при помощи которых вы сами сможете исследовать происходящее. Мы воспользуемся readelf, strace, ldd, debugfs, /proc, ltrace, dd и stat. Я не буду рассматривать относящиеся к Python части, только объясню, что происходит при выполнении динамически компонуемых исполняемых файлов.
Читать дальше →

Учиться, учиться и еще раз учиться преподавать. Почему надо изменить подход к обучению?

Level of difficultyMedium
Reading time9 min
Views9.8K

Я долго не мог понять, почему многие учителя преподают предмет очень сложно и непонятно. Да, кому-то из них просто не хочется этим заниматься, но есть действительно хорошие преподаватели.

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

Почему нужно менять преподавание?

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

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

Как было раньше?

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

Почему нужно менять преподавание?

Диск — это просто куча битов

Level of difficultyMedium
Reading time11 min
Views16K

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

Оказывается нет, в нём находятся биты, закодированные в электрических компонентах.

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

Далее я покажу вам, что всё это определённо возможно! Ради вашего развлечения я засуну руку в свой ПК, вытащу оттуда кучку битов, и мы их с вами изучим.
Читать дальше →

Почему вам не нужно в IT

Level of difficultyEasy
Reading time4 min
Views88K

Хочешь войти в айти? А насколько оно надо?

История вайтишника, взятая не с отзыва на обучающем сайте.

Краткое резюме о заблуждениях, которые были развеяны в процессе настоящей работы.

Читать далее

Postman: Основы тестирования API и первые шаги с инструментом

Level of difficultyMedium
Reading time14 min
Views213K

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

И вот на сцену выходит Postman - мощный и интуитивно понятный инструмент, предназначенный специально для тестирования и разработки API. В этой статье рассказывается о самых базовых вещах, с которых следует начать свое знакомство с Postman.

Отправка HTTP-запросов, создание тестов, организация запросов в коллекции, работа с переменными - все это лишь часть функциональности Postman, которая облегчает процесс тестирования и повышает его эффективность. Если вы только начинаете свой путь в изучении этого инструмента, не волнуйтесь! Этот гайд поможет вам разобраться с базовыми принципами работы с Postman и покажет, как сделать ваш процесс тестирования API гораздо более эффективным и приятным.

Готовы начать? Давайте вместе погрузимся в увлекательный мир тестирования API с Postman!

Читать далее

Быть тупым тестировщиком

Reading time6 min
Views32K

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

Так вот, здравствуйте, на этой неделе это — я. Пять лет опыта тестирования, перескакивание с одной области (мобилки) в другую (веб/энтерпрайз). Даже хорошие отзывы о моей работе были, мамой клянусь!

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

Читать далее

Я бы пересмотрел вообще всё

Reading time4 min
Views78K

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


Вот примеры.


1) Например, DRY — don’t repeat yourself. Хорошее полезное правило, но его можно довести до маразма. Из того что я встречал на практике: есть два разных по бизнес-смыслу раздела, которые начинались с простого CRUD, и многие части (и фронта и бека) выглядели во многом абсолютно одинаково. Если их объединить с помощью общей высосанной из пальца абстракции и тем самым избавиться от небольшого дублирования кода, то потом (очень скоро) можно будет сойти с ума, потому что эти две вещи скоро разъедутся, обрастая кастомными фичами, и абстракция будет только вредить. Нельзя абстрагировать неабстрагуемое, даже если DRY нарушен.


«[Немного] дублирования обходится гораздо дешевле, чем неправильная абстракция» — Сэнди Мец

Т.е. DRY — хороший принцип, но бывают исключения.

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

Что делает ChatGPT… и почему это работает?

Level of difficultyMedium
Reading time75 min
Views168K

То, что ChatGPT может автоматически генерировать что-то, что хотя бы на первый взгляд похоже на написанный человеком текст, удивительно и неожиданно. Но как он это делает? И почему это работает? Цель этой статьи - дать приблизительное описание того, что происходит внутри ChatGPT, а затем исследовать, почему он может так хорошо справляться с созданием более-менее осмысленного текста. С самого начала я должен сказать, что собираюсь сосредоточиться на общей картине происходящего, и хотя я упомяну некоторые инженерные детали, но не буду глубоко в них вникать. (Примеры в статье применимы как к другим современным "большим языковым моделям" (LLM), так и к ChatGPT).

Читать далее

Пять примечательных функций Postman, которые мы используем в тестировании банковских систем

Reading time10 min
Views22K

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

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

Читать далее

Как понять, что на проекте все гуд? Щедрый чек-лист от щедрого QA-лида

Reading time5 min
Views18K

“I`ll be back”, -  сказал себе я, начиная вторую статью и…наконец, сделал ее спустя два месяца. Но лучше поздно, чем никогда ( главное - не берите себе это за правило, если вы QA-лид, потому что в этом случае вовремя - всегда лучше, чем поздно). Но что-то я отвлекся от главного. В комментах к прошлой статье просили сделать продолжение. Я подумал-подумал и решил, а почему бы и нет. Ну в общем, что долго тянуть.
Для всех новоприбывших - меня зовут Ваня и QA-лид в международном агентстве аутсорс-тестирования “Кавычки”. В прошлый раз я рассказывал о болях QA - лида и, собственно, что же с ними делать-то. Сегодня поговорим о том, что делать после того, как вы приложили подорожник к ранкам и теперь пора определить, сработало или нет. 

Намбер уан. Выстроенный релизный цикл

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

Надо вот так.

Читать далее

Разбираемся с Docker: как создаются образы

Reading time13 min
Views55K

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

Читать далее

Разбор ошибок в игровом движке Stride

Reading time8 min
Views3.7K

Stride – это мощный, бесплатный и активно развивающийся игровой движок, реализованный на C#. Он вполне может стать альтернативой Unity, но насколько качественный исходный код Stride? Узнаем это с помощью статического анализатора PVS-Studio.

Читать далее

Best Practices для Python

Reading time6 min
Views39K

Лучшие практики в Python по моему мнению

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

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

Читать далее

Заметка о полезных возможностях современного CSS

Reading time10 min
Views14K


Привет, друзья!


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


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

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

Не трогайте разработчиков. Отстаньте. Просто не беспокойте

Reading time13 min
Views77K


Всем привет! Меня зовут Ян, я руководитель разработки Департамента ИТ инвестиционного бизнеса Газпромбанка. Совершенно неожиданно я занял первое место на конференции Highload++ с докладом про то, как организована работа в наших командах разработки.

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

В результате из простой задачи «не трогайте разработчиков» получилось сделать и очень правильное обучение (если вы дежурите, то у вас нет шансов не разбираться во всех процессах команды), и снижение техдолга (дежурный не берёт таски по фичам на спринты, но может заниматься документацией и всякими вещами в наведении порядка, до чего обычно не доходят руки), и много чего ещё. Сначала казалось, что за это мы платим снижением эффективности команды на 8–10 % (ведь мы выключаем дежурного из разработки), но на деле оказалось, что эффективность даже растёт. Есть ряд вещей, которые очень поменялись и в управлении такими командами в лучшую сторону.

Естественно, такой подход имеет кучу подводных камней и подходит далеко не всем и не каждому типу команд.

Сейчас расскажу про практический опыт.
Читать дальше →

Как стать мидлом или сеньором-разработчиком, обучаясь на любых курсах по программированию?

Reading time1 min
Views126K

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

Читать далее

Как ускорить работу в командной оболочке Bash

Reading time4 min
Views26K

Любому начинающему разработчику необходимо научиться пользоваться командной строкой. При этом для выполнения в ней команд требуется оболочка. В статье речь пойдёт об оболочке Bash, которая популярна в UNIX-подобных системах и в большинстве дистрибутивов Linux используется штатно.
Читать дальше →

ONKALO: чудо света на все времена, забудьте о нём…

Reading time25 min
Views85K
… или как захоронить свои ядерные отходы навсегда.



Многие уверены, что век монументального строительства прошёл. Пирамиды, мегалиты и загадочные гробницы лежат старыми игрушками в песочнице человечества. Мы выросли из них и живём сегодняшним днём, ярким и мимолётным. Когда нас не станет — от нас останутся только колоссы древности… и ONKALO.
Читать дальше →

Как создать образ диска в Linux с несколькими разделами, не имея физического образца

Reading time3 min
Views22K

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

Для чего это нужно? Все процессорные платы, разрабатываемые нашим предприятием, обладают слотом для sdcard и установленной на плате mmc. Загрузка системы производится либо с sd, либо c mmc. sd-карта является, как правило, временным решением, подкупает простотой установки. А mmc является постоянным решением, куда устанавливается уже финальное программное обеспечение. Переключение между способами загрузки осуществляется перемычками (джамперами на плате).

Читать далее

Как я Хабр взломал

Reading time3 min
Views64K

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

Читать далее

Information

Rating
3,085-th
Location
Кишинев, Молдова, Молдова
Date of birth
Registered
Activity

Specialization

Quality Assurance Analyst, Тренер
Intern
Linux