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



Предыстория

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

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

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

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

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







По факту 40-50 очков для оператора были «проходными» в процессе обучения. По ТЗ у оператора есть «мышка» и клавиатура только с несколькими клавишами.

Под рукой были, как обычно в те теплые 2004-2006 годы, «Microsoft Visual С++ и MFC, Windows XP».

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

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

История

Но одним прекрасным утром я получаю по электронной почте вот такое письмо:

Добрый день, Денис.
Использование корпоративного оборудования в непроизводственных целях является нарушением ПВТР (Правила внутреннего трудового распорядка)!
Игровое ПО необходимо удалить:
MinClicker Cool small game Den's prog.exe 49.15 Кбайт

С уважением,
Функциональная группа ИБ
Служба безопасности




То есть, меня просто попросили удалить программу c рабочего ноутбука (не дистрибутив, не пиратскую версию, не зловред\вирус), которую я сам написал и просто храню для приятных воспоминаний. Скрепя сердце программа была удалена.

Если бы в коде программы не было строчки с описанием типа «Cool small game» и т.п., то может быть и не было этого письма от ИБ, как вариант. Но ранее, когда писал программу, было интересно заполнять почти все формы при сборке продукта.



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



Тут в графе «Авторские права» упомянута вымышленная компания, под именем которой в детстве с друзьями много чего программировали.

Ссылка на программу, под Windows 7 работает, под Wine что-то не смог запустить, к сожалению, на Linux Mint, хотя в конфиге выставлял mfc библиотеку и совместимость:

Кстати в игре есть чит, с помощью которого можно набрать много очков. Найдете?

Комментарии (8)


  1. saipr
    01.11.2018 10:25
    +3

    То есть, меня просто попросили удалить программу (не дистрибутив, не пиратскую версию, не зловред\вирус), которую я сам написал и просто храню для приятных воспоминаний. Скрепя сердцем программа была удалена.

    А в чем проблема-то? Мы же не храним на работе старые вещи из дома и т.п. (хотя случается).
    Твоя программа и ей место на твоем персональном компьютере. На работе надо работать, а не захламлять рабочее место. И кто знает, что может быть в этом хламе. Так что Функциональная группа ИБ абсолютно права!


  1. Werewoolf0
    01.11.2018 10:31

    Добрая история, но не совсем понятно, как ИБ имел доступ к вашему накопителю или это программа оказалась на корпоративном накопителе? Мораль не ясна из-за этого.


    1. denis-19 Автор
      01.11.2018 10:34

      Откорректировал там в текстовке. Была в архиве на рабочем ноуте.


  1. lostpassword
    01.11.2018 10:53
    +2

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


  1. fzn7
    01.11.2018 11:06

    Будь верен себе до конца. Скомпилируй в webassebly, запакуй в electron и продолжай играться спокойно. Будет старая любовь на передовых технологиях (+ мобильная версия в нагрузку). У ИБ вопросов возникнуть не должно


  1. izomorph
    01.11.2018 11:26

    Чит наверное заключается в нажимании пробела


  1. preslilvs
    01.11.2018 11:27

    Отличный повод написать веб-версию игры! Хотя, тогда вам грозит атата за посещение игровых сайтов, но можно просто менять потом домен или повесить авторизацию))


  1. Naves
    01.11.2018 11:28

    Кстати в игре есть чит, с помощью которого можно набрать много очков. Найдете?

    держать нажатым Enter?
    Заголовок спойлера
    private void button1_KeyDown(object sender, KeyEventArgs e)
            {
                Control nextControl;
                //Checks if the Enter Key was Pressed
                if (e.KeyCode == Keys.Enter)
                {
                    //If so, it gets the next control and applies the focus to it
    
                    /*nextControl = GetNextControl(ActiveControl, !e.Shift);
                    if (nextControl == null)
                    {
                        nextControl = GetNextControl(null, true);
                    }
                    nextControl.Focus();
                    */
                    timer1.Stop();
                    timer2.Stop();
                    button1.Enabled = false;
    
                    MessageBoxOptions mbo = new MessageBoxOptions();
    
                    mbo=(rnd.Next(2)>=1)?MessageBoxOptions.RightAlign:MessageBoxOptions.RtlReading;
                    MessageBox.Show("Cheeeeter!!!", "blablabla", MessageBoxButtons.RetryCancel, MessageBoxIcon.Stop, MessageBoxDefaultButton.Button3, mbo,true);
                    //button2_Click(sender, e);
                    //Finally - it suppresses the Enter Key
                    e.SuppressKeyPress = true;
                }