Оживить старый ноут с Windows7.

Как оказалось, достаточно грохнуть процесс svchost.exe. Эта тварь пожирала память, как не в себя.

В строке поиска: services.msc - Enter
В открывшемся окне "Службы" выделить: Центр обновления Windows. Правой кнопкой выбрать "Остановить".

Чтобы прибить окончательно: щелчок правой кнопкой мыши - Свойства - Тип запуска, выбрать: Отключена.

Вуаля! на компе снова можно работать. Правда обновления остановились еще на том моменте, когда в Москве переводилось время на летнее. 🙂

Определенно…

...определенно - лучшее решение 2020 года на текущий момент - проведение оптоволоконного интернета на дачу.

Мир, определенно изменится. По крайней мере - многие не вернутся с удаленки в офисы. То, о чем так долго мечтали мизантропы, вот-вот сбудется )

Перевод категориальных признаков датафрейма в бинарные

Заметка

test_df
номер город колич. признак
0 2 москва 1
1 3 питер 2
2 4 саратов 3
3 5 москва 4
4 6 питер 3
5 7 москва 4
6 8 сыктывкар 5
7 9 саратов 6
df_nonbinary = pd.get_dummies(test_df['город'], )
df_nonbinary 
москва питер саратов сыктывкар
0 1.0 0.0 0.0 0.0
1 0.0 1.0 0.0 0.0
2 0.0 0.0 1.0 0.0
3 1.0 0.0 0.0 0.0
4 0.0 1.0 0.0 0.0
5 1.0 0.0 0.0 0.0
6 0.0 0.0 0.0 1.0
7 0.0 0.0 1.0 0.0
new_df = pd.concat([test_df, df_nonbinary], axis=1 )
new_df
номер город колич. признак москва питер саратов сыктывкар
0 2 москва 1 1.0 0.0 0.0 0.0
1 3 питер 2 0.0 1.0 0.0 0.0
2 4 саратов 3 0.0 0.0 1.0 0.0
3 5 москва 4 1.0 0.0 0.0 0.0
4 6 питер 3 0.0 1.0 0.0 0.0
5 7 москва 4 1.0 0.0 0.0 0.0
6 8 сыктывкар 5 0.0 0.0 0.0 1.0
7 9 саратов 6 0.0 0.0 1.0 0.0

Ссылка

Amazon собирается сделать Alexa офисным сотрудником

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

Для сильного ИИ потребуется поток и ассортимент данных, сравнимый с таковым у человека. А это, ни много ни мало, постоянный поток аудио, визуальной, тактильной (включая самоощущение), обонятельно-вкусовой, а также оценочной информации как минимум 8-10 часов в сутки.

Функция конвертации секунд в более крупные периоды времени (Python)

Заметка

Функция  превращает количество секунд в удобночитаемые человеком  значения времени.

def seconds_to_str(uptime):
    """
       Функция принимает числовое значение секунд и возвращает строку в формате:
       '3 нед., 1 дн., 18 час., 23 мин., 3 сек.'
       Доли секунды округляются до секунд.
    """

    seconds = ''
    minutes = ''
    hours = ''
    days = ''
    weeks = ''
    uptime = round(uptime, 0)

    if uptime >= 60:
        minutes = uptime // 60
        if minutes >= 60:
            hours = minutes // 60
            if hours >= 24:
                days = hours // 24
                if days >= 7:
                    weeks = days // 7
                    seconds, minutes, hours, days, weeks = str(int(uptime % 60)), str(int(minutes % 60)), str(
                        int(hours % 24)), str(int(days % 7)), str(int(weeks))
                else:
                    seconds, minutes, hours, days = str(int(uptime % 60)), str(int(minutes % 60)), str(
                        int(hours % 24)), str(int(days))
            else:
                seconds, minutes, hours = str(int(uptime % 60)), str(int(minutes % 60)), str(int(hours))
        else:
            seconds, minutes = str(int(uptime % 60)), str(int(minutes))
    else:
        seconds = str(int(uptime // 1))

    if weeks:
        weeks = weeks + ' нед.,'
    if days:
        days = days + ' дн.,'
    if hours:
        hours = hours + ' час.,'
    if minutes:
        minutes = minutes + ' мин.,'
    if seconds:
        seconds = seconds + ' сек.'
    res = weeks + ' ' + days + ' ' + hours + ' ' + minutes + ' ' + seconds
    print(res.strip())
    return res.strip()

 

Функция определения времени суток (Python)

Заметка

Первый вариант: на основе словаря, более быстрый вариант:

import datetime
import time

def time_of_day_dict(dt=None, ts=None, tod_dict=None):
    '''
    Принимает объект datetime (dt) или timestamp (ts), и словарь tod_dict {час : наименование времени}
    Возвращает строку c временем суток. 
    При отсутствии аргументов - возвращает строку с текущим временем суток.

        Словарь по умолчанию: 
        {0: 'ночь', 1: 'ночь', 2: 'ночь',
         3: 'раннее утро', 4: 'раннее утро', 5: 'раннее утро',
         6: 'утро', 7: 'утро', 8: 'утро',
         9: 'первая половина дня', 10: 'первая половина дня', 11: 'первая половина дня',
         12: 'обед', 13: 'обед', 14: 'обед',
         15: 'после обеда', 16: 'после обеда', 17: 'после обеда',
         18: 'вечер', 19: 'вечер', 20: 'вечер',
         21: 'поздний вечер', 22: 'поздний вечер', 23: 'поздний вечер' }

    Eсли час не отражен в словаре, возвращает None
    Требует import datetime
    N.B. ф-я в 2-3 раза быстрее, чем ф-я time_of_day()
    '''

    # определение словаря
    if tod_dict:
        pass
    else:
        tod_dict = {0: 'ночь', 1: 'ночь', 2: 'ночь',
                    3: 'раннее утро', 4: 'раннее утро', 5: 'раннее утро',
                    6: 'утро', 7: 'утро', 8: 'утро',
                    9: 'первая половина дня', 10: 'первая половина дня', 11: 'первая половина дня',
                    12: 'обед', 13: 'обед', 14: 'обед',
                    15: 'после обеда', 16: 'после обеда', 17: 'после обеда',
                    18: 'вечер', 19: 'вечер', 20: 'вечер',
                    21: 'поздний вечер', 22: 'поздний вечер', 23: 'поздний вечер'}

    # определение оцениваемого времени
    if dt:
        if isinstance(dt, datetime.datetime):
            dt = dt
        else:
            print('некорректный формат dt: %s \n требуется объект datetime.datetime' % (type(dt)))
            return None
    elif ts:
        if isinstance(ts, (int, float)):
            if ts > 0:
                dt = datetime.datetime.fromtimestamp(ts)
                print(dt.ctime())
            else:
                print('отрицательное значение ts недопустимо')
                return None
        else:
            print('некорректный формат ts: %s \n требуется значение int или float' % (type(ts)))
            return None
    else:
        dt = datetime.datetime.now()
    h = dt.hour

    # подбор
    if h in tod_dict:
        tod = tod_dict[h]
        return tod
    else:
        print('Значение времени отсутствует в словаре')
        return None

 

Второй вариант, как пример того, как делать не надо ))

def time_of_day(dt=None, ts=None, tod_dict=None):
    '''
    Принимает объект datetime (dt) или timestamp (ts), и словарь tod_dict 
    {наименование времени : час окончания(включительно)}

    Возвращает строку c временем суток 
    При отсутствии аргументов - возвращает строку с текущим временем суток.

        Словарь по умолчанию: 
        {'ночь' : 3, 'раннее утро' : 6, 'утро' : 9, 'первая половина дня' : 12,
         'обед' : 15, 'после обеда' : 18, 'вечер' : 21, 'поздний вечер' : 24, }

    Если час не отражен в словаре, возвращает None
    Требует import datetime
    '''

    # определение словаря
    if tod_dict:
        pass
    else:
        tod_dict = {'ночь': 3, 'раннее утро': 6, 'утро': 9, 'первая половина дня': 12,
                    'обед': 15, 'после обеда': 18, 'вечер': 21, 'поздний вечер': 24, }
    sorted_tod = sorted(tod_dict.items(), key=lambda x: x[1], reverse=False)
    # print(sorted_tod)

    # определение оцениваемого времени
    if dt:
        if isinstance(dt, datetime.datetime):
            dt = dt
        else:
            print('некорректный формат dt: %s \n требуется объект datetime.datetime' % (type(dt)))
            return None
    elif ts:
        if isinstance(ts, (int, float)):
            if ts > 0:
                dt = datetime.datetime.fromtimestamp(ts)
                print(dt.ctime())
            else:
                print('отрицательное значение ts недопустимо')
                return None

        else:
            print('некорректный формат ts: %s \n требуется значение int или float' % (type(ts)))
            return None
    else:
        dt = datetime.datetime.now()
    h = dt.hour

    # подбор
    for time in sorted_tod:
        if h <= time[1]:
            tod = time[0]
            return tod
    print('Значение времени отсутствует в словаре')
    return None

 

Сеть сделанных дел “я полезен”/’i.useful’

Заметка

да-да, почти "я сделаль" :)) или набросок очередной около-бизнес идеи

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

Концепция: социальная сеть - аналог резюме, где указываются завершенные или выполняемые дела, несущие потенциальную пользу другим людям.

Читать далее

Электрокоммутационный блок для умного дома

Заметка

Назначение: управление электрическими линиями в доме/квартире.

Модульная коробка, позволяющая целенаправленно включать/отключать электрические линии.

Размещается после блоков УЗО, желательна на DIN-рейке.

Опционально — имеется возможность учёта времени работы/тока или передачи состояния (включен/выключен).

Управление — витая пара или вай-фай.

Может быть совмещён с автоматами

Устройство:
1. Коммутация - электромагнитное реле (управляющий сигнал 5 или 3,3 V, коммутируемый ток - не менее 16 А)
2. Опционально изменяемое количество нормально включенных и нормальновыключенных реле
3. Управляющий вход - витая пара
4. Управляющий блок - плата класса Ардуино или промышленный аналог с количеством GPIO по количеству коммутируемых силовых каналов
5. Желателен Ethernet порт или возможность его подключения или Wi-Fi модуль

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