Утилита TimeCalc v1.0

Баб-а-а-ах! Брызги шампанского! Свершилось! Вы давно меня просили, и я это наконец-то сделал!. Шучу. Никто меня не просил, некоторые даже, наоборот, убеждали не делать этого. Но ! Я всё же написал малюсенькую, но полезную программу под винду, которая скурпулёзно подсчитывает время нахождения в различных приложениях, именно когда они активны. Скажем вы самозанятый, сидите дома или даже на работе и у вас повременной доход. Отработали час в фотошопе, ворде, PCADe, или ещё где-то — получите, распишитесь — программка всё подсчитает. Или вам просто интересно, сколько часов отжирает у вас вконтактик. Вообще, для этих целей в мире давно уже много чего написано, но мы не ищем лёгких путей. К тому же, я сделал так как лично мне удобно и понятно. Рассмотрим внешний вид приложухи.

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

В нижнем окне мы можем ввести ключевые слова, относящиеся к нашей деятельности, например, название проекта, файла и даже целиком программы, где мы обычно заседаем. Как только название активного в данный момент приложения будет содержать ключевое слово — оно тут же попадёт в верхнее окошко и начнётся подсчёт времени. В подвале отображается активное приложение на данный момент и суммарное время работы. Это первая версия,так что она увеличивает время не взирая на неактивность клавиатуры и мышки. То есть программа не шибко умна, но это я со временем заборю. Не обманете её потом. Программа сворачивается в Tray, то есть в правый нижний угол и тихонько там себе на уме считает, подсчитывает. По выходу из программы она сохраняет лог в текстовый файл, а так же запоминает ключевые слова, так что не надо каждый раз вписывать их с утреца. С ключевыми словами я поработал хорошо, так что слова, содержащие элементы предыдущих слов, и повторюшки всякие в поиске не участвуют. Если вы её долго не закрываете, то на следующий день в верхнем окне появится новая порция списка активных приложений, потому что так мне удобно. Вот на картине видно, что Пикадах я проработал 3 секунды и 9 секунд, в калькуляторе 18 секунд, ну и в контактике 6 секунд. Это для скриншота просто так вышло. Короче вот. Мечтаю написать подобную для Anrdoid — чтобы было видно сколько часов в день отжирает вотцап — эта информация для некоторых критична. Но пока тренируюсь на кошках, то есть на винде. Написана на C++ Builder 6 . Кому надоть — налетай.

18.06.2020. Вышла версия 1.1

+ Критические внутренние улучшения.

+ Масштабирование окна.

19.06.2020 Вышла версия 1.2

Позволяет считать суммарное время проведённое на всех сайтах содержащих ключевое слово. Например, если написать youtube() ,то строка будет накапливать время потраченное на просмотр всех роликов youtube за день.

Новогодняя задача Касперского и её частичное решение

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

Предыстория такова. Каждый год, числа так-эдак 28-го, Декабря-месяца, Евгений Касперский задаёт себе и своим единомышленникам задачу, требующую подбора решения вручную. Публикация нетривиальных решений этой задачи как правило сопряжена с получением ценных призов — например, пожизненной лицензии на его Антивирус. Я лично его программами не пользуюсь, хотя когда-то в крайних случаях использовал бесплатную полезную утилиту TDSSKiller. Соответственно, его подарки нам без надобности, а вот задача вставила не по детски. Кстати, перебирать решения в уме желания тоже нет, я же не математик-миллиардер какой-нибудь.

Итак. Есть числа 10 9 8 7 6 5 4 3 2 1. Нужно поставить между ними любые математические операторы так, чтобы итоговое выражение равнялось Новому Году. В этом году это число было, как вы понимаете, 2020.

Например: 10 + (9 * 8 * 7 — 6 + 5 ) * 4 — 3 + 2 — 1 = 2020

Кстати, в данном случае без скобок никак.

Операторы и функции могут быть ЛЮБЫМИ: 4 арифметических, скобки, факториал(это, кто забыл 5! = 1*2*3*4*5), сдвиги, возведение в степень и бог знает какие ещё функции, неведомые нам, простым людям, не окончившим 4-й факультет Высшей школы КГБ.

Как только решение или семейства решений найдено — отбрасывается левое число.

9 8 7 6 5 4 3 2 1 = 2020. Ищем решение дальше…

Например: 9 + (8 * 7 * 6 — 5 + 4 ) * 3 * 2 + 1 = 2020

Решений может быть много — сколько удастся найти. А меж тем, отбрасываем 9-ку.

8 7 6 5 4 3 2 1 = 2020. Тут без факториала уже никак:

8 * 7! * 6 / 5! + 4 + 3 — 2 — 1 = 8 * 5040 * 6 / 120 + 4 + 3 — 2 — 1 = 2020

8 * 7 * 6! / 5 / 4 + 3 + 2 — 1 = 8 * 7 * 720 / 5 / 4 + 3 + 2 — 1 = 2020

Отбрасываем 8-ку.

7! — (6 + 5!) * 4! + 3 + 2 — 1 = 5040 — (6 + 120) * 24 + 3 + 2 — 1 = 2020

А вот на 6-ку вариантов уже нет. Ближайший вариант с факториалами и двумя парами скобок будет в 2034-м году. А ближайший вариант из прошлого для 2017-го года.

6 * (5! — 4 — 3 ) * (2 + 1) = 6 * (120 — 4 — 3 ) * (2 + 1) = 2034

(6! / 5 + 4!) * 3! * 2 + 1 = (720 / 5 + 24) * 6 * 2 + 1 = 2017

На 5-ку — ближайший вариант ждёт нас в 2040-м году:

5! * (4 + 3! * 2 + 1) = 120 * (4 + 6 * 2 + 1) = 2040

И так далее отбрасываем до нуля. Евгений дошёл-таки до нуля, конечно, пользуясь знаниями полученными в секретной лаборатории! То есть, даже из нуля, можете ли вы себе представить, можно получить 2020 !

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

Новогодняя задача Касперского и её частичное решение., изображение №1

Для того, чтобы не портить Евгению все последующие новогодние праздники, я публикую демо-версию приложения с возможностью анализа решений для прошлых, а не будущих годов. Программа поддерживает перебор вариантов,учитывая 4 базовых оператора, одну, две и три пары скобок и факториалы. Вложенные скобки не поддерживаются. В дальнейшем, по мере сил, буду добавлять разные возможности в программу. Я не профессиональный программист, так что, если у кого не запустится, пишите. Написана на C++Builder 6.0. Android для запуска не подойдёт. Только Windows.

У Евгения Касперского зачастую проскакивают и другие интересные задачи на комбинаторику. Будем посмотреть.

Вот ссылка на оригинальный пост с задачей:

https://e-kaspersky.livejournal.com/683875.html?thread=10098531#t10098531

Вот статья в Контактике.

https://vk.com/@e_kaspersky-otvety-na-zadachu-2020

Ссылка на моё приложение

Университет искусственного интеллекта

С интересом просмотрел вебинар «День открытых дверей» университета искусственного интеллекта, который вёл Дмитрий Романов, его основатель.

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

Дмитрий Романов начал заниматься алгоритмами обучения нейронных сетей 15 лет назад, а сейчас грамотно монетизирует полезные знания. Технология передачи знаний желающему такова: заплатив сумму, студент в течении полугода, по разу в неделю, изучает видеоролик, где, с уклоном на практику, преподаётся Python в части программирования нейросети. Для работы используется удобная платформа colab.research.google.com, ориентированная для работы с библиотеками Keras и Tenzorflow. Кроме программных ресурсов Google бесплатно предоставляет каждому желающему аппаратные ресурсы, сравнимые по мощности с видеокартой за 500т.р. , чего достаточно для реализации самых смелых фантазий.

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

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

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

Посмотрите эти два ролика про практическое применение нейронных сетей, от которых «волосы стынут в жилах».

Видеофейк на Арнольда нашего Шварцнеггера. Моё любимое. Тоже нейросети.

А вот и сам вебинар от 2.10.2019 :