Pull to refresh
25
0.1
Алексей @lxsmkv

тестировщик-автоматизатор

Send message

Топ-30 онлайн-ресурсов для обучения детей основам программирования на Python

Reading time8 min
Views33K

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

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

Android Debug Bridge для тестировщика без SMS и регистрации

Reading time15 min
Views28K

Привет, Хабр! Меня зовут Александр Карпенко, я QA Engineer в inDrive. Я подготовил эту статью для начинающих QA-специалистов. Ниже расскажу, как использовать Android Debug Bridge (ADB) в тестировании мобильных приложений и нужен ли вообще этот инструмент. 

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

Realtime-матчинг: находим матчи за считанные минуты вместо 24 часов

Reading time11 min
Views11K

Задача матчинга в последнее время набирает всё большую популярность и используется во многих сферах: банки матчат транзакции, маркетплейсы – товары, а Google и другие IT-гиганты проводят соревнования по решению таких задач на Kaggle.

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

1. При поисковом ранжировании из множества товаров показывать сначала самые выгодные предложения.

2. Объединять множество товаров в одну сущность и показывать предложения одного и того же товара от разных селлеров.

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

Сегодня мы поговорим не только о решении этой задачи, но и о способах её реализации: offline (batch) vs online (realtime). Также обсудим, как и зачем переходить от первого ко второму.

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

Как оставаться программистом, если у тебя память как у дрозофилы

Reading time15 min
Views61K

Мой мадригал тем инструментам разработки, которые изменили мою жизнь

Программирование стало гораздо более многогранным ремеслом с тех пор, как в середине 1990-х я впервые попробовал AmigaBASIC. В те времена еще можно было купить один большой том о компьютере, на котором вы программируете – и там бы нашлось 99% всей нужной информации. Эта книга, где на множестве страниц уголки загнуты в качестве закладок, обклеенная стикерами, лежала бы у вас под рукой, пока вы вбивали бы команды в монохромный текстовый редактор.

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

Сегодня никто бы больше и не подумал покупать документацию по разработке – и Microsoft, и Apple свободно выкладывают свою документацию в Интернете для всех желающих. А что говорить о проектах с открытым исходным кодом!

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

Читать далее
Total votes 51: ↑47 and ↓4+43
Comments40

Размер имеет значение! Часть 3

Reading time2 min
Views1.5K

Как бы мы себя не обманывали - Размер имеет значение! И конечно, мы будем говорить о размере нашего андроид приложения, куда мы добавляем кучу классных features, и даже не задумываемся как это может негативно повлиять на размер приложения. Поэтому мы научимся обнаруживать регрессию размера нашего приложения на CI для автоматизации этого процесса.

В последней части, оптимизируем процесс обнаружения регрессии размера андроид приложения.

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

Playwright или Selenium?

Reading time6 min
Views14K

Написание тестов в современной разработке играет одну из самых важных и неотъемлемых этапов разработки современного программного обеспечения. В рамках разработки одного из последних проектов перед нами возникла подобная задача. Одним из способов тестирования стала разработка полноценных End2End тестов.

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

Как начать заниматься багхантингом веб-приложений

Reading time14 min
Views22K

Компании могут проверять свои продукты, сервисы или инфраструктуру на реальность взлома разными способами: это и пентест, и редтиминг, и bug bounty. Дыры в программном обеспечении могут обернуться убытками для компаний и компрометацией персональных данных (а иногда и финансовыми потерями) для пользователей. В этой и следующих статьях мы подробно пройдемся по теме bug bounty и расскажем о том, как прокачаться в багхантинге веб- и мобильных приложений.

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

Под кат
Total votes 3: ↑3 and ↓0+3
Comments0

Задача про пьяницу

Level of difficultyMedium
Reading time9 min
Views32K

В книге «Пятьдесят занимательных вероятностных задач с решениями - Ф. Мостеллер» есть интересная задача про пьяницу, который с вероятностью p делает один шаг к обрыву и с вероятностью 1-p один шаг от обрыва. Пьяница стоит на расстоянии одного шага от обрыва. Что можно сказать про вероятность того, что он упадет?

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

История IBM PC

Reading time29 min
Views18K

IBM PC. Всего пять букв, но сколько теплых чувств они вызывают глубоко в душе каждого, кто неравнодушен к зарождению эры персональных компьютеров. Но история IBM PC – это не просто набор фактов о модели или семействе машин, и даже не долгий рассказ о годах, которые познакомили весь мир с понятием «персональный компьютер». Это целая эпоха, которая продолжается до сих пор. Эпоха открытых стандартов, передовых технологий и гибкой платформы, которая уже 40 лет сохраняет все те же преимущества, что были представлены 12 августа 1981 года. Сегодня я расскажу вам полную историю рождения великого IBM PC – не компьютера, но концепта, который не только изменил весь мир, но и сделал Билла Гейтса всемогущим.

Читать далее
Total votes 39: ↑37 and ↓2+35
Comments93

Настолки Древней Руси

Reading time7 min
Views19K


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

Под катом фотки, правила и ссылочки на браузерные версии «монополий» и «три в ряд» времен средневековой Руси.

Я веду канал в Telegram GameDEVils и блог на Substack . Подписывайтесь, я делюсь там материалами про геймдизайн, разработку и историю игр.
Читать дальше →
Total votes 69: ↑64 and ↓5+59
Comments20

Безопасный HTTPS-прокси менее чем за 10 минут

Reading time5 min
Views77K

Это руководство описывает развёртывание HTTPS-прокси с помощью dumbproxy на практически любом Linux-сервере. Потребуется только curl и рутовый доступ.

Читать далее
Total votes 54: ↑53 and ↓1+52
Comments85

Магия орбитального рандеву

Reading time12 min
Views11K
Мы привыкли к тому, что космические корабли рутинно летают к орбитальным станциям, сближаются и стыкуются. Но даже симулятор уровня Kerbal Space Program показывает, насколько это нетривиальная задача — то по расстоянию промахнулись, то скорость не та, то в тень вошли, то слишком много топлива потратили. А ведь в реальной космонавтике были истории, когда после отказа техники сближались вручную, причем, используя инструменты, которые, казалось, давно остались в прошлом. Сегодня мы поговорим о рандеву разнообразных космических аппаратов, от «Джемини» и первых «Союзов» до летающих сейчас к МКС Crew Dragon, Boeing Starliner и «Союзов», научившихся сверхкороткой схеме сближения.


Астронавт Александр Герст проводит эксперименты по навигации в космосе с секстантом, фото NASA
Читать дальше →
Total votes 89: ↑89 and ↓0+89
Comments14

Cache pollution? Запасайтесь тестами

Reading time16 min
Views9K

Всем ведь приходилось заниматься улучшением производительности? Для игр особенно актуально, ну может какая-то три-в-ряд не страдает этим. Как обычно серебряной пули нет, начинаем со структур данных, алгоритмов, спускаемся ниже если не помогает, придумываем SoA, AoS шаблоны. Если проблема не решается, подтягиваем профайлеры и предметно разбираем узкие места, но все чтобы мы не делали зачастую таким узким местом всегда будет "железо". Можно сколько угодно оптимизировать другие места, но CPU c его гигагерцами будет простаивать 90% времени если его неправильно "кормить" данными. Одной (только одной из проблем) проблемой организации эффективной работы с данными будет меньше, если знать и уметь работать с кэшами разных уровней. Тут на вики описано, как "на пальцах" быстренько убить перф на обходе массива, простого и общего решения для такого обхода нет. Можно и дальше увеличивать размер кэша, что собственно и делают (гдето здесь на хабре была новость, что Интел при переходе на L1 кэш размером 32кб, заново спроектировал блок доступа к нему, сорян не нашел ссылку), но это дорого, неэффективно на масштабах современных процов, и всегда найдутся данные, которые этот кэш отравят, опять. Интересно как починить? го под кат...

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

Простая масштабируемая структура Angular приложения

Reading time5 min
Views8.4K

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

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

Читать далее
Total votes 8: ↑7 and ↓1+6
Comments13

TypeScript в деталях. Часть 1

Reading time6 min
Views26K


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


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


Читать дальше →
Total votes 22: ↑21 and ↓1+20
Comments9

Груг против сложности. Я пролинтил все посты на Хабре про Python, и вот что я нашёл

Reading time52 min
Views60K

В какой-то момент времени я превратился в педанта брюзгу. В фильмах малейшие нестыковки и провалы в логике портят мне весь просмотр. В чатах меня бесит it's вместо its. А в статьях про программирование... Всё плохо. За меня всё уже сказал @AlexanderAstafiev, я лишь процитирую:

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

Самое забавное, что, по моим ощущениям, везде я вижу одни и те же классы проблем. Я даже запилил сервис, где можно закинуть код и получить код ревью, и, собрав немного статистики, понял, что 50 типов ошибок достаточно, чтобы покрыть большую часть проблем в чужом коде. Но выборка у меня была небольшая, и я подумал: а что, если проверить много кода?

И всё заверте...
Total votes 144: ↑139 and ↓5+134
Comments153

Проникновение в чужой ящик Gmail через скрытое расширение Chrome

Reading time3 min
Views34K


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

Неудивительно, что злоумышленники придумывают новые способы атаки для проникновения в чужой почтовый ящик. В прошлом году появился ещё один новый и достаточно неординарный вектор атаки — через расширение Chrome, которое не ворует пароли, как обычно, а производит прямую инспекцию и эксфильтрацию трафика из почтового ящика через «Инструменты разработчика» в браузере. Таким образом, в логах Gmail не остаётся никаких следов постороннего проникновения, только сессия легитимного клиента.

Посмотрим, как это сделано технически.
Читать дальше →
Total votes 21: ↑18 and ↓3+15
Comments5

Концепция Data Mesh. Принципы, идеи, применение на практике

Reading time5 min
Views11K

С чего началась наша компания? В первую очередь, конечно, с людей и с идеи. Как это обычно бывает, правильные люди абсолютно случайно познакомились друг с другом, и вот я здесь, сижу и пишу этот пост =) Была, однако, и ещё одна очень важная составляющая - данные...

Любой ML-проект начинается с анализа ландшафта доступных данных - что мы можем скачать, выгрузить, разметить, купить. За четыре года наша культура работы с данными, инструментарий, подходы, процесс разметки претерпели очень большие изменения. Сейчас у нас накоплено почти 100 терабайт медицинских исследований, но количество данных абсолютно не важно, если они плохого качества, и их неудобно изучать, понимать и использовать. Недавно я делал обзорный доклад про разные аспекты качества медицинских данных, а вот наше выступление про технические аспекты пути к качеству. Сегодня же я хочу поговорить об очень интересной концепции (или даже философии), которая в последнее время на слуху, но, судя по разным постам в интернете, её суть понятна далеко не всем. Это Data Mesh.

Впервые я столкнулся с этим понятием в докладе Леруа Мерлен на митапе LeanDS. Доклад любопытный, но суть дата меш мне из него была понятна не до конца, так что недавно я взялся за чтение книги от авторки этой концепции и термина - Data Mesh: Devlivering Data-Driven Value at Scale.

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

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

Синаптические веса в нейронных сетях – просто и доступно (Часть 2)

Reading time3 min
Views4.6K

В предыдущей статье (Синаптические веса в нейронных сетях – просто и доступно) рассказывалось о смысле синаптических весов на примере модели определения цифры для 13-ти сегментного индикатора.

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

Information

Rating
2,485-th
Location
Германия
Registered
Activity

Specialization

Test Automation Engineer, Quality Assurance Engineer
Senior
Python
Docker
Git
Linux
OOP