Обновление TimeCalc v1.5

Добавил вкладку Заметки. Всё что будет туда записываться попадёт в лог активного заказчика после сохранения логов.

Добавил Popup-меню в поле списка активных приложений. Там два пункта – сохранить или очистить всё с сохранением.

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

Обновление TimeCalc v1.4

Много полезных изменений:

  1. Добавил возможность выбора заказчиков в отдельной вкладке. Активный заказчик переключается сверху в комбобоксе.
  2. При закрытии утилиты формируются файлы отчётов по каждому заказчику.
  3. В строке с накопленным временем работы добавил название компьютера – это удобно, если работы проходят на разных машинах.
  4. Исправлены баги в случае нахождения нескольких ключевых слов в одном активном процессе.

Финальную версию качаем на странице TimeCalc.

Домашний хомяк и Интернет

Где-то с полгода назад появился у нас сирийский хомяк. Шуша. Живёт хомяк своей хомячьей жизнью – шуршит себе потихоньку, грызёт чего не попадя. Иной раз и собственное жильё сгрызает, и это при избытке-то нормальной пищи. Короче, моих домочадцев Шуша радует своей непосредственностью. Приятно взять её на руки, погладить по мягкой шёрстке, поиграть. Но есть нюанс. Клетка с хомяком стоит в кабинете, а там – я. Запах от хомяка иногда стоит – мама не горюй, а что поделать – животное. Переместить клетку в другие помещения нельзя – везде сквозняки, а сирийским хомякам сквозняки противопоказаны. Но время идёт, запах не пропадает, и мне как охотнику, иногда волей-неволей вспоминается простое правило, что в пищу годится, в целом, любое животное, которое питается преимущественно растительной пищей. Незыблемое правило номер два: что добыто, должно быть употреблено. Ну, там, бобёр, рябчик, даже грач и дятел, а если совсем прижало, то и грызун пойдёт, чего уж там.

Но помня о детях, такие нехорошие мысли надо решительно отгонять — всё это грубые кровожадные шутки чёрного юмора. И вот спустя какое-то время меня осенило – а ведь домашний хомяк может быть полезен для науки! Говорят, что хомяки в колесе могут пробежать много километров. Точных данных нет. На форумах пишут 6 – 10 км за ночь. Естественно, учитывая свою страсть к телеметрии и обширный опыт подключения всего на свете к Интернету, я решил подключить и хомяка. Сказано – сделано. На озоне заказал датчик магнитного поля (Холла) за 168руб, а запасной WiFi датчик микроклимата собственного производства у меня уже был. В субботу на колесо приклеили магнитик, на клетку установили датчик Холла. Дальше доработал напильником программное обеспечение и пошло-поехало. Как обычно, отправка данных идёт на сайт narodmon.ru. Мой датчик там уже пять лет висит и собирает данные о давлении, влажности, температуре, освещённости, уровне СО2. Теперь вот добавился датчик “Хомяк Шуша”. Правила сайта таковы, что из всей информации от датчиков расположенных в квартире на всеобщее обозрение можно выдавать только атмосферное давление. Никому не интересны климатические показатели внутри вашего помещения – они индивидуальны. Разве что атмосферное давление везде одинаково (плюс-минус этаж). Администрация отказала мне в публикации данных пробега хомяка на всеобщее обозрение даже за деньги(правила есть правила), но приватно я могу делится с любым пользователем narodmon.ru по запросу. Нужно только скачать приложение narodmon и зарегистрироваться. В будущем, я смогу публиковать графики активности хомяка на своём личном сайте – как только запилю на нём соответствующий скрипт.

Итак, каковы же итоги первой ночи ? Сколько же пробежала Шуша ? Наша лаборатория располагает следующими данными. Вот график.

Пробег хомяка за ночь

Как и все графики на Народном Мониторе, он строится так: каждые 5 минут передаётся одно значение. В нашем случае это суммарный пробег за 5 минут. После передачи текущего значения, в памяти датчика оно обнуляется и подсчёт начинается заново. То есть, при помощи пролёта магнитика вблизи датчика магнитного поля подсчитывается количество оборотов колеса. Затем количество умножается на диаметр и на число Pi. В моём случае один оборот колеса равен 0.58метра. На графике видно, что бегать Шуша начала в 21.00 и, с регулярным отдыхом, закончила зарядку в 23.00, пробегая за 5 минут примерно по 100 метров. Проинтегрировав данный график, суммарный пробег составил 1623 метра. Что сказать, результат не впечатлил. Я-то думал она всю ночь бегает, наматывая километры. Чтож, будем наблюдать дальше. Возможно, активность зависит от пола, времени года, температуры, влажности и так далее. В среднем, сирийские хомяки живут 2-3 года.

Ну и напоследок. Я случайно посмотрел накопившееся данные с моего датчика по освещённости комнаты за время с 2017-го по 2020-й год. Освещённость здесь представлена в Люксах.

Освещённость в комнате за 3 года

Обратите внимание на чудовищную разницу в зависимости от времени года. Она составляет от 10 до 100 раз! Сколько солнечного света мы недополучаем зимой относительно лета! А на этом пока всё. Спасибо за внимание!

TimeCalc v1.3

Обновил утилиту TimeCalc до версии 1.3

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

Решение “новогодней” задачи Касперского на 2022-й Год

Наступает Новый Год, и по традиции у нас тут известное нумерологическое развлечение. На десятку рассмотрим наиболее простые семейства решений – с одной парой блуждающих скобок. Даже не пытайтесь найти решение при помощи только четырёх арифметических действий – их нет. Одно единственное появится только через двести шестнадцать лет. Вот оно:

10 – 9 + 8 * 7 * 6 * 5 * 4 / 3 – 2 – 1 = 2238

Но у нас пока 2022-й год на носу. И вот почти все ( а вместе с тривиальными, их 19 штук) существующие решения с одной парой скобок из почти двенадцати миллионов знаковых и скобочных перестановок:

10 + (9 * 8 * 7 – 6 + 5 ) * 4 + 3 – 2 – 1 = 2022
(10 + 9 * 8 * 7 * 6 – 5 + 4 ) / 3 * 2 * 1 = 2022
10 + 9 * 8 * 7 * (6 – 5 ) * 4 – 3 – 2 + 1 = 2022
10 – 9 + (8 * 7 * 6 + 5 – 4 ) * 3 * 2 – 1 = 2022
10 * 9 + 8 * 7 * (6 * 5 + 4 + 3 / 2 – 1) = 2022
10 * 9 + 8 * 7 * 6 * (5 / 4 * 3 + 2) * 1 = 2022
10 * 9 – 8 * 7 * 6 * (5 / 4 – 3 * 2 – 1) = 2022
10 * (9 * 8 + 7 + 6 * 5 * 4 + 3 ) + 2 * 1 = 2022
10 * 9 * (8 + 7 – 6 * 5 / 4 ) * 3 – 2 – 1 = 2022
10 * 9 * 8 + 7 * 6 * (5 * 4 * 3 / 2 + 1) = 2022
10 * 9 * (8 – 7 ) * 6 * 5 / 4 * 3 – 2 – 1 = 2022

На 9-ку с одной парой скобок существует всего 6 семейств решений из уже двух с половиной миллионов возможных вариантов:

9 + 8 * 7 * 6 * (5 + 4 – 3 ) – 2 – 1 = 2022
9 * (8 + 7 * 6 * 5 + 4 + 3 ) – 2 – 1 = 2022
(9 * 8 * 7 + 6 – 5 ) * 4 + 3 – 2 + 1 = 2022
(9 * 8 * 7 * 6 + 5 + 4 ) / 3 * 2 * 1 = 2022
9 * (8 * 7 * 6 + 5 – 4 ) / 3 * 2 * 1 = 2022
9 * 8 * 7 * (6 – 5 ) * 4 + 3 + 2 + 1 = 2022

На 8-ку с одной парой скобок существует только один вариант-шедевр из 458752 существующих перестановок:

(8 * 7 * 6 + 5 – 4 ) * 3 * 2 * 1 = 2022
С факториалом их, конечно, уже больше:

8 + 7! * 6 / 5! * 4! / 3 – 2 * 1 = 8 + 5040 * 6 / 120 * 24 / 3 – 2 * 1 = 2022
8 + 7! / 6 / 5 * 4 * 3 – 2 * 1 = 8 + 5040 / 6 / 5 * 4 * 3 – 2 * 1 = 2022
8 * 7! * 6 / 5! + 4 + 3 – 2 + 1 = 8 * 5040 * 6 / 120 + 4 + 3 – 2 + 1 = 2022
8 * 7! * 6 / 5! + 4 + 3! / 2 – 1 = 8 * 5040 * 6 / 120 + 4 + 6 / 2 – 1 = 2022
8 * 7! * 6 / 5! + 4 * 3 / 2 * 1 = 8 * 5040 * 6 / 120 + 4 * 3 / 2 * 1 = 2022
8 * 7! * 6 / 5! + 4! / 3! + 2 * 1 = 8 * 5040 * 6 / 120 + 24 / 6 + 2 * 1 = 2022
8 * 7! * 6 / 5! + 4! / 3 – 2 * 1 = 8 * 5040 * 6 / 120 + 24 / 3 – 2 * 1 = 2022
8 * 7 * 6! / 5 / 4 + 3 + 2 + 1 = 8 * 7 * 720 / 5 / 4 + 3 + 2 + 1 = 2022
8 * 7! * 6 / 5 / 4! + 3 + 2 + 1 = 8 * 5040 * 6 / 5 / 24 + 3 + 2 + 1 = 2022
8 * 7 * 6! / 5 / 4 + 3 * 2 / 1 = 8 * 7 * 720 / 5 / 4 + 3 * 2 / 1 = 2022

На 7-ку без факториалов уже совсем никак, плюс одна пара скобок:

7 + (6 + 5!) * 4! / 3 * 2 – 1 = 7 + (6 + 120) * 24 / 3 * 2 – 1 = 2022
7 + (6! / 5 + 4!) * 3! * 2 – 1 = 7 + (720 / 5 + 24) * 6 * 2 – 1 = 2022
7 + 6! / 5 * (4 + 3 ) * 2 – 1 = 7 + 720 / 5 * (4 + 3 ) * 2 – 1 = 2022
7 + 6! / 5 * (4 * 3 + 2) – 1 = 7 + 720 / 5 * (4 * 3 + 2) – 1 = 2022
7! – (6 + 5!) * 4! + 3 + 2 + 1 = 5040 – (6 + 120) * 24 + 3 + 2 + 1 = 2022
7 * (6 – 5 + 4! * 3! * 2) – 1 = 7 * (6 – 5 + 24 * 6 * 2) – 1 = 2022
(7! * 6 / 5 + 4!) / 3 – 2 * 1 = (5040 * 6 / 5 + 24) / 3 – 2 * 1 = 2022
(7 * 6! / 5! * 4! + 3 ) * 2 * 1 = (7 * 720 / 120 * 24 + 3 ) * 2 * 1 = 2022
(7! * 6 / 5! * 4 + 3 ) * 2 * 1 = (5040 * 6 / 120 * 4 + 3 ) * 2 * 1 = 2022
Если решение со скобками для вас форменный зашквар, то имеются варианты с использованием степенной функции, а именно возведение в куб. Да! В уходящем году программа усовершенствована! Теперь поддерживается возведение в степени! Почему сразу в куб? Очень просто, потому что при возведении в квадрат таких решений не существует. Вот три из восьми существующих решений:

7 * 63 + 53 + 43 * 3 * 2 + 1 = 2022

73 * 6 + 5 – 43 + 3 * 23 – 1 = 2022

73 * 6 – 53 + 43 + 33 – 2 * 1 = 2022

А вот на 6-ку решение есть путём применения функции возведения в квадрат.

6²* 5² / 4 * 3² – 2² + 1 = 2022 , и родственное ему 6² * 5² / 4 * 3² – 2 – 1 = 2022

На 5-ку существует лишь одно красивое решение с использованием возведения в куб и в квадрат сразу без всяких скобок:

53 *4² + 33 – 2 ² – 1 = 2022

А вот на 4-ку решение пока что просматривается только в 2048-м году да ещё и со скобками и выглядеть будет так:

4 3 * (3 3 + 2 ² + 1) = 2048

Вот и всё, с Наступающим!

В следующем году ещё обязательно повозимся с этим! Добавим автоперебор всех степеней, сдвиги, авось так и четвёрку покорим!

Лао-Цзы.

Эта цитата Лао Цзы набрала больше всех лайков ещё при жизни автора.

И неудивительно, вот оцените глубину:

„Будьте последними. Идите по миру так, словно вас и нет. Не будьте компетентны, не пытайтесь доказать свою значимость – это не нужно. Оставайтесь бесполезными и наслаждайтесь. Вы оцениваете людей по их полезности. Я не говорю, что вы не должны делать ничего полезного. Делайте полезные вещи, но помните, что настоящий и величайший опыт жизни и экстаз приходят от делания бесполезного. Он приходит через поэзию, живопись, любовь, медитацию. Величайшая радость наполнит вас, только если вы способны сделать что-то, что нельзя свести к товару. Награда — духовная, внутренняя, она проявляется энергией. Итак, если вы чувствуете бесполезность — не волнуйтесь. Вы можете стать огромным деревом с большой кроной. И люди, которые вступили в полезную активность… им так нужно иногда отдохнуть в тени.

Обратите внимание, Лао Цзы ничего не знал о программистах, особенно о тех из них, кто в 2020-м году программирует (пишет игры, например или ОС) под ZX-Spectrum, ATM-Turbo, ZX-Evolution и т.д. Но как точно он описал их деятельность и мотивацию! Эти ребята приходят в экстаз от деланья бесполезного! А те уставшие, кто приходят с полезной работы, “отдыхают в тени” наслаждаясь игрой на древнем железе, ностальгируя, вспоминая далёкое детство.

Утилита 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

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

Скачать: Kasper Demo 2020 Release
Размер: 872.5 KB, дата: 07 Окт. 2020

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

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

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

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

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

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

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

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

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

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