Обновить
0
@barbarossa_Wread⁠-⁠only

Пользователь

Отправить сообщение

Качественное тестирование ПО

Время на прочтение10 мин
Охват и читатели11K

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

18 характеристик

Котейки против Чёрного властелина: статистика online-этапа NeoQUEST-2018

Время на прочтение10 мин
Охват и читатели3.8K

С 5 по 16 марта проходил online-этап соревнования по кибербезопасности NeoQUEST-2018. Под катом подробно расскажем о заданиях (но не обо всех, некоторые пойдут отдельными write-up'ами) и статистике их прохождения, а также о том, почему все 11 дней соревнования участники заваливали команду NeoQUEST картинками нетрадиционной своеобразной направленности!
Читать дальше →

Как я за 9 месяцев превратился из неофита в разработчика ПО без отрыва от основной работы

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


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

Советы и рекомендации по развёртыванию процесса автоматизация тестирования с нуля

Время на прочтение23 мин
Охват и читатели94K

Предисловие


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

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

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

P.S.: И последнее — данный текст бы никогда не сформировался, если бы не полезные лекции Алексея Баранцева и Натальи Руколь, а также пропасть информации, написанная добрыми людьми за последние годы по данной теме.

Вот теперь всё, вы предупреждены — можно начинать рассказ.
Читать дальше →

Основные положения тестирования

Время на прочтение9 мин
Охват и читатели149K
Области применения, цели и задачи тестирования ПО разнообразны, поэтому тестирование оценивается и объясняется по-разному. Иногда и самим тестировщикам бывает сложно объяснить, что такое тестирование ПО 'as is'. Возникает путаница.

Для распутывания этой путаницы Алексей Баранцев (практик, тренер и консалтер в тестировании ПО; выходец из Института системного программирования Российской академии наук) предваряет свои тренинги по тестированию вводным видео про основные положения тестирования.

Мне кажется, что в этом докладе лектор смог наиболее адекватно и взвешенно объяснить «что такое тестирование» с точки зрения ученого и программиста. Странно, что этот текст еще не появлялся на хабре.

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

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

Анатомия программы в памяти

Время на прочтение6 мин
Охват и читатели92K
Управление памятью – одна из главных задач ОС. Она критична как для программирования, так и для системного администрирования. Я постараюсь объяснить, как ОС работает с памятью. Концепции будут общего характера, а примеры я возьму из Linux и Windows на 32-bit x86. Сначала я опишу, как программы располагаются в памяти.

Каждый процесс в многозадачной ОС работает в своей «песочнице» в памяти. Это виртуальное адресное пространство, которое в 32-битном режиме представляет собою 4Гб блок адресов. Эти виртуальные адреса ставятся в соответствие (mapping) физической памяти таблицами страниц, которые поддерживает ядро ОС. У каждого процесса есть свой набор таблиц. Но если мы начинаем использовать виртуальную адресацию, приходится использовать её для всех программ, работающих на компьютере – включая и само ядро. Поэтому часть пространства виртуальных адресов необходимо резервировать под ядро.

image

Это не значит, что ядро использует так много физической памяти – просто у него в распоряжении находится часть адресного пространства, которое можно поставить в соответствие необходимому количеству физической памяти. Пространство памяти для ядра отмечено в таблицах страниц как эксклюзивно используемое привилегированным кодом, поэтому если какая-то программа пытается получить в него доступ, случается page fault. В Linux пространство памяти для ядра присутствует постоянно, и ставит в соответствие одну и ту же часть физической памяти у всех процессов. Код ядра и данные всегда имеют адреса, и готовы обрабатывать прерывания и системные вызовы в любой момент. Для пользовательских программ, напротив, соответствие виртуальных адресов реальной памяти меняется, когда происходит переключение процессов:
Читать дальше →

Виртуальные твари и места их обитания: прошлое и настоящее TTY в Linux

Время на прочтение14 мин
Охват и читатели84K
Ubuntu интегрирована в Windows 10 Redstone, Visual Studio 2017 обзавелась поддержкой разработки под Linux – даже Microsoft сдает позиции в пользу растущего числа сторонников Торвальдса, а ты всё еще не знаешь тайны виртуального терминала в современных дистрибутивах?

Хочешь исправить этот пробел и открываешь исходный код? TTY, MASTER, SLAVE, N_TTY, VT, PTS, PTMX… Нагромождение понятий, виртуальных устройств и беспорядочная магия? Всё это складывается в довольно логичную картину, если вспомнить, с чего всё началось…
Читать дальше →

Играючи BASH'им вместе

Время на прочтение10 мин
Охват и читатели15K
Игра на bash'е с поддержкой мультиплеера, миф или реальность?

image

Истина где-то тут. Разоблачительный текст далее.
Читать дальше →

Нельзя так просто взять и расширить каналы связи

Время на прочтение11 мин
Охват и читатели30K
Вот этот график показывает, как сетевая задержка влияет на максимальную скорость при использовании TCP. Проще говоря, если у вас пинг 500 миллисекунд, то при доступной полосе пропускания 6, 10, 100, 500 и т. д. мегабит трафик между двумя хостами у вас не разгонится выше одного мегабита.


Моя команда занимается оптимизацией каналов связи. Иногда удаётся поправить всё буквально парой кликов вручную, но чаще нужно устанавливать специальные устройства, которые существенно ужимают обмен и превращают протоколы в более «оптимистичные» или «предиктивные».

Что такое «оптимистичный» протокол? Очень примерно — это когда удалённый сервер ещё не ответил, что можно отправлять следующий фрейм, а железка уже говорит «посылай», потому что знает, что шанс успеха — 97%. Если вдруг что-то пойдёт не так, она уже сама дошлёт нужный пакет, не беспокоя отправляющий сервер.
Читать дальше →

Пишем программу для кражи данных с USB-носителя в Windows

Время на прочтение5 мин
Охват и читатели24K
Задача:
Написать ПО несанкционированно копирующее файлы с легально подключенного USB — устройства, не требующее установки и прав администратора.
Т.е. легальное ПО, которое может быть использовано злоумышленниками для нанесения вреда (согласно трактовке одного из антивирусных средств).
Алгоритм работы программы
Аудитория:
Новички в программировании и просто интересующиеся.
Читать дальше →

Нейромедиаторы, часть первая: дофамин, норадреналин, серотонин

Время на прочтение7 мин
Охват и читатели340K
Нейромедиаторы — это праздник, который всегда с тобой. Мы постоянно слышим о том, что именно они дарят чувства радости и удовольствия, но мало знаем о том, как они работают. В первой части небольшого образовательного курса «Атлас» рассказывает о трех самых известных нейромедиаторах, без которых наша жизнь была бы просто отвратительной.



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

Что читать о перспективных языках программирования

Время на прочтение7 мин
Охват и читатели46K
image

Начнем с важной информации: совсем не обязательно перспективные языки являются новыми. Им не так много лет, как вашим любимым Python или Ruby, их нет ни в одной топовой десятке популярных рейтингов (GitHut, RedMonk, TIOBE Index), а знание этих языков не дает пока существенной прибавки к зарплате (за исключением, возможно, Swift). Но и назвать их революцией, набирающей обороты в среде избранных, тоже нельзя. Безусловно, у них есть своя ниша, определенная доля рынка (до 2%) и сложившееся комьюнити. Просто в будущем именно они могут посягнуть на лавры топ-5, если не случится событие типа «черный лебедь».

За последние годы в рейтингах популярности языков мало что изменилось — одни опускаются, другие поднимаются, но никто не врывается в топ под лозунгом «лучший из лучших». Процесс захвата новых территорий для языка чаще всего занимает годы, и за это время успевает сформироваться необходимая база развития. Поэтому никаких эксклюзивов и написанных за вчерашний вечер уникальных языков в обзоре не будет — просто потому, что их время еще не настало. Но в ближайшие годы популярность незыблемых столпов, таких как Java (вся), JavaScript или PHP, будет снижаться, а их место постепенно займут «новички».
Читать дальше →

Постановка задачи компьютерного зрения

Время на прочтение13 мин
Охват и читатели73K

Последние лет восемь я активно занимаюсь задачами, связанными с распознаванием образов, компьютерным зрением, машинным обучением. Получилось накопить достаточно большой багаж опыта и проектов (что-то своё, что-то в ранге штатного программиста, что-то под заказ). К тому же, с тех пор, как я написал пару статей на Хабре, со мной часто связываются читатели, просят помочь с их задачей, посоветовать что-то. Так что достаточно часто натыкаюсь на совершенно непредсказуемые применения CV алгоритмов.
Но, чёрт подери, в 90% случаев я вижу одну и ту же системную ошибку. Раз за разом. За последние лет 5 я её объяснял уже десяткам людей. Да что там, периодически и сам её совершаю…

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

Тривиальная мысль. Но все ошибаются. Абсолютно все. В статье я приведу несколько примеров таких ситуаций. Когда задача поставлена плохо, когда хорошо. И какие подводные камни вас ждут в формировании ТЗ для систем компьютерного зрения.
Читать дальше →

ACL: списки контроля доступа в Cisco IOS

Время на прочтение9 мин
Охват и читатели676K
Сегодня я расскажу вам о том, как отфильтровать трафик в сети с помощью списков контроля доступа. Рассмотрим как они работают соответственно, что собой представляют, для чего предназначены. Позже я покажу как они настраиваются в Cisco IOS и выложу архив с лабораторными работами для закрепления ваших знаний.

Введение


ACL (Access Control List) — это набор текстовых выражений, которые что-то разрешают, либо что-то запрещают. Обычно ACL разрешает или запрещает IP-пакеты, но помимо всего прочего он может заглядывать внутрь IP-пакета, просматривать тип пакета, TCP и UDP порты. Также ACL существует для различных сетевых протоколов (IP, IPX, AppleTalk и так далее). В основном применение списков доступа рассматривают с точки зрения пакетной фильтрации, то есть пакетная фильтрация необходима в тех ситуациях, когда у вас стоит оборудование на границе Интернет и вашей частной сети и нужно отфильтровать ненужный трафик.
Читать дальше →

Алгоритмы разума

Время на прочтение5 мин
Охват и читатели22K
Наука всегда сопровождает технологию, изобретения дают нам новую пищу для размышлений и создают новые явления, которые еще предстоит объяснить.

Так говорит Арам Харроу (Aram Harrow), профессор физики Массачуссетского технологического в своей статье «Почему сейчас самое подходящее время для изучения квантовых вычислений».

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

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

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность