• Как написать программу для ограничения времени в играх?

    lxsmkv
    @lxsmkv
    Test automation engineer
    Такая функция называется Родительский Контроль (либо Parental Control по-английски). Найдите подходящую программу и пользуйтесь. Вот у Касперкого есть https://www.kaspersky.ru/safe-kids и наверняка у других "безопасников" похожие продукты имеются, ведь это известный рыночный сегмент.

    А чтобы Вам не казалось не думали, что какое-то "наколенное" решение даст результат, почитайте это:
    "Родительский контроль взламывается ребёнком на 1,2,3"
    https://answers.microsoft.com/ru-ru/windows/forum/...

    Как альтернативу такому подходу можно просто использовать трекер времени (типа https://www.manictime.com/ ) Просто обговорить с ребенком количество времени которое ему позволено проводить за компьютером, и сказать что вы будете делать такие замеры - получится у него контролировать себя или нет. Можно на спор. И если он справится то получит какую нибудь награду. Я думаю нужно развивать в ребенке самоконтроль, а не использовать методы начала прошлого века.
    А использовать позицию силы (я могу отключить и отключу) - ни к чему хорошему кроме конфликтов не приведет. Нужно договориться о правилах. Обычно дети охотно соглашаются. А вот если они не соглашаются на договор, тогда можно включить позицию силы как альтернативу, тогда почувствуется, что если упираться - не получишь ничего, а если договориться то можно "нормально жить". Выполнять обещания и получать награды. Которых раньше не было. Но на такой подход терпение надо, сам знаю, не всегда оно это терпение есть.

    Upd:
    сегодня сам с ребенком (9 лет) разговор на эту тему вел:
    - как ты думаешь сколько времени в день нужно играть в компьютер?
    - ну часа два, ну три
    - хорошо, а сколько времени нужно готовить уроки и тренировать правописание, чтение, и математику?
    - ну два часа.
    - хорошо, а что сначала, а что потом?
    - ну сначала уроки а потом играть, потому что вечером уже нет сил чтобы делать уроки.
    - а ты знаешь, что глаза у нас работают весь день? вот ноги например, они не всегда нагружены, мы много сидим. А глаза заняты весь день. Больше чем глаза занято только сердце - оно вообще никогда не останавливается, всю жизнь работает и днем и ночью. Как ты думаешь было бы хорошо дать глазам отдохнуть?
    - ну да.
    - знаешь от чего глаза устают?
    - нет
    - глаз тоже имеет мышцы и когда мы смотрим на что-то то эти мышцы напрягаются. Если не дать этим мышцам расслабляться то они не смогут так хорошо менять свою форму и задубеют, и тогда ты не сможешь смотреть вдаль и вблизь. Мышцы должны быть гибкими чтобы они быстро реагировали. Если мышцы глаз гибкие ты легко сможешь переключать зрение с близи в даль и наоборот. Попробуй смотреть на газету а потом на дерево за окном. Чувствуешь глазу нужно немного времени чтобы переключиться?
    - да
    - если все время смотреть только на близкие предметы - например на экран - мышцы переключающие на дальнее зрение ослабеют и ты станешь хуже видеть. поэтому рекомендуют не сидеть за экраном дольше чем 45 минут, и урок длится тоже не дольше 45 минут, чтобы глаза могли отдохнуть от тетради.
    ...

    Конечно одного такого разговора будет недостаточно, но ребенок вполне понимает причину беспокойства родителей. Ни один ребенок не хочет расстраивать родителей. С ним можно договориться. Это превратится в своеобразную игру и всем от этого будет только польза.
    Так же спросите почему ему бывает так трудно оторваться от игры? Проэкспериментируйте от какой игры легче оторваться и почему. Вы узнаете много интересного.
    Ребенок познает мир, познает себя, задавайте ему вопросы, и ищите вместе ответы на них, ставьте эксперименты. Используйте проблемную ситуацию для получения новых знаний. (см. передачу Галилео, они там все ставят под вопрос, это очень увлекательно и познавательно)
    Ответ написан
    Комментировать
  • Какое проектирование БД более верное?

    @d-stream
    Готовые решения - не подаю, но...
    Кстати стоит иметь в виду, что в реальной жизни зачастую "скидка на скидку" неприменимо.
    Посему лучше заблаговременно подойти к "правилам скидок".

    Как один из вариантов:
    1. таблица групп(категорий) скидок rules_groups (id, descr, [ordering])
    2. таблица "правил применения скидок" rules(id, group_id, descr, ordering, percent [условия])

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

    select top 1 percent from rules where group_id=xx and (кучка условий на соответствие правилу) ORDER BY ordering

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

    По вкусу можно на уровне групп или правил предусмотреть признак мультипликативная (умножение на коэффициент) это скидка или аддитивная (вычитание суммы) и "за единицу" или "за партию".
    Ну и с учетом танцев с финокруглениями на тему НДС - неплохо иметь признак "С НДС"/"Без НДС" (но это подразумевает ньюансы хранения цен.

    Еще элементом тюнинга будут флаги или коэффиценты на предмет применять ли правило при снижении отпускной цены ниже себестоимости"
    Ответ написан
    Комментировать
  • Какое проектирование БД более верное?

    Decadal
    @Decadal
    2a3494d97e3b34e05ebf5111ccb99102.png

    Discounts нужно связать двумя "многие-ко-многим", это делается при помощи двух вспомогательных таблиц. Таким образом, у вас один Discount может
    1) не иметь связи ни с товаром ни с категорией
    2) быть связанным с множеством товаров
    3) быть связанным с множеством категорий
    4) быть связанным как с несколькими товарами, так и с несколькими категориями
    Ответ написан
    7 комментариев
  • Какое проектирование БД более верное?

    webinar
    @webinar
    Учим yii: https://youtu.be/-WRMlGHLgRg
    таблиц должно быть больше
    Products
    Categories
    Discounts
    Discounts_Products ( id | discount_id | product_id )
    Discounts_Categories ( id | discount_id | categories_id)

    Доки для связи через другую таблицу:
    www.yiiframework.com/doc-2.0/guide-db-active-recor...
    (искать "Relations via a Junction Table")

    как вариант последние две можно заменить на 1, но по опыту геморойнее:
    так d_p_c ( id | discount_id | product_id | category_id)
    или даже так ( id | discount_id | related_item_id | related_item_classname)
    Ответ написан
    Комментировать