• Сверточная нейронная сеть, для чего нужны несколько слоев сверки и как работают ядра на глубоких слоях?

    @OlegPyatakov
    pyatakov.com
    Если обычные многослойные нейронные сети вам понятны, то проще всего будет сформулировать, что "глубокие" сверточные слои выполняют такую же роль, как и "глубокие" слои в обычной нейросети. Они берут набор признаков из предыдущего слоя и комбинируя их получают новые более высокоуровневые признаки.

    Разница в том, что нейрон типового Dense слоя нейронной сети владеет всей информацией с предыдущего слоя, а сверточные слои оперируют "локальными" ядрами. Поэтому обычно между сверточными слоями делают какой-либо pooling и тогда ядра новых сверточных слоев, получается, используют бОльше информации с предыдущих слоев.

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

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

    Очень условный пример:
    1. Например, вы на первом сверточном слое вы нашли одним ядром "левый угол глаза", а другим ядром "правый угол глаза".
    2. Сделали pooling. Теперь новый сверточный слой при таком же размере ядра в пикселях будет охватывать бОльшую часть картинки
    3. На втором сверточном слое, мы скомбинировать информацию, что "левый угол глаза" находится рядом слева от "правого угла глаза", то есть на этом слое мы можем сказать, что это новый признак "глаз".
    Ответ написан
    Комментировать
  • Как передать dataframe в JSON и обратно?

    @OlegPyatakov
    pyatakov.com
    Ответ написан
    Комментировать
  • Успешные стартап-кейсы Telegram ботов?

    @OlegPyatakov
    pyatakov.com
    Задавая подобным вопросом еще в 2018 году.

    Если коротко, то боты популярны, но они вряд ли подходят как основной драйвер стартапа, который целится в деньги. Особенно это усиливается, если сужать до конкретно telegram-ботов. Как дополнительный канал, да - telegram боты, вероятно, позволяют охватить какую-то дополнительную аудиторию, которая не охватывается другими каналами.

    Кажется, что индустрия чат-ботов все больше двинулась в мобильные приложения, которые позволяют реализовать все фишки, которые напридумывают маркетологи, и не связана ограничениями конкретной платформы.
    Ответ написан
    Комментировать
  • Как работает платформа instaplus.me?

    @OlegPyatakov
    pyatakov.com
    Такие сервисы имитируют действия в бразуере. Обратите внимание, что эти сервисы просят пароль от аккаунта, а не используют другой способ авторизации.

    На питоне вон готовая библиотека есть: https://instapy.org Если ее запустить, то видно как запускается настоящий браузер и все действия происходят в нем.
    Ответ написан
    2 комментария
  • Есть ли смысл проверять наличие пользователя в базе когда снаружи неизвестен секретный ключ?

    @OlegPyatakov
    pyatakov.com
    В этом есть смысл на случай:
    • Пользователь был удален из БД после генерации токена
    • Дальше в коде с объектов user будет работа
    • Взломали сервис генерации токена. Конечно, такая проверка мало поможет, но это может быть звоночком
    Ответ написан
    Комментировать
  • Как отсортировать словарь?

    @OlegPyatakov
    pyatakov.com
    Тот словарь, который получился изначально, кажется, не очень подходит под задачу.
    Можно сделать список пересечений цветов и дальше итеративно отфильтровывать этот список, находя цвета, над которыми нет пересечений.

    # Массив туплов формата (нижний цвет, верхний цвет)
    crossovers = [('red', 'blue'), ('red', 'green'), ('green', 'blue'), ('green', 'yellow')]
    
    colors_to_sort =[]
    for crossover in crossovers:
        colors_to_sort.append(crossover[0])
        colors_to_sort.append(crossover[1])
    colors_to_sort = list(set(colors_to_sort))
    
    colors_top_bottom = []
    
    def is_top_color(color, crossovers):
        if not list(filter(lambda x: x[0] == color ,crossovers)):
            return True
        else:
            return False
    
    while len(colors_to_sort) > 0:
        found_top_color = False
        for color in colors_to_sort[:]:
            if is_top_color(color, crossovers):
                found_top_color = True
                colors_top_bottom.append(color)
                colors_to_sort.remove(color)
                crossovers = list(filter(lambda x: x[1] != color, crossovers))
    
        if not found_top_color:
            print('Невозможное наложение прямоугольников')
            break
    
    print(colors_top_bottom)
    Ответ написан
    Комментировать
  • Как на vba создать и инициализировать такой обьект?

    @OlegPyatakov
    pyatakov.com
    В VBA можно использовать словари. Возможно, это как раз то, что нужно в вашем случае.
    Ссылка на описание
    Ответ написан
    Комментировать
  • Как бесплатно разместить свой сайт?

    @OlegPyatakov
    pyatakov.com
    Для статики - Github Pages, GitLab Pages, Netlify
    Классический хостинг - список, BeGet и другие
    Для своих приложений - есть универсальные, надо смотреть в зависимости от языка. Например, PaaS для Python.
    Ответ написан
    Комментировать
  • Связка для static site?

    @OlegPyatakov
    pyatakov.com
    Netlify - это хостинг статики. Если использовать GitLab Pages, то Netlify не нужен.
    Ответ написан
    Комментировать
  • Что делают на Go Hugo?

    @OlegPyatakov
    pyatakov.com
    Сайты на Hugo и других генераторах делают для того, чтобы на выходе получить технически простой сайт. Такой сайт легче хостить и обслуживать: нет исполняемого бэкенда, нет БД, нет проблем с безопасностью.
    Плата за это - невозможность использовать динамические функции, привязанные к пользователям, например личный кабинет или свои комментарии (приходится использовать стороннюю систему комментариев). Для блогов, а именно это - основной кейс использования генераторов, подобные ограничения не являются критичными. Могу поделиться более подробной заметкой про свой опыт использования Hugo.

    По конкретным вопросам:

    как сделать счетчик просмотров постов и на базе этой информации выводить самые просматриваемые

    Сомневаюсь, что такое можно сделать на генераторе статических сайтов.

    какую прикрутить систему коментариев, так чтобы можно было сделать блок самых обсуждаемых материалов, по аналогии с просмотрами

    В Disqus - есть блок auto-discovery других комментируемых постов на сайте.
    В Cackle - есть дополнительные виджеты, в том числе рейтинг самых обсуждаемых статей. Я сам не пользовался, но видел на сайтах с комментами Cackle такие блоки.
    Ответ написан
    Комментировать
  • Почему не работает proxi?

    @OlegPyatakov
    pyatakov.com
    Сейчас, чтобы законнектить Телеграм бота через прокси, нужно выполнить два условия:

    • Используемый Socks прокси должен поддерживать SSL. Далеко не каждый прокси в интернете его поддерживает - нужно проверять. Указанный в вашем конфиге - не поддерживает или делает это как-то необычно.
    • Боту нужно передавать дополнительно параметры для библиотеки коннекта, чтобы та игнорировала ошибки сертификатов. В вашем случае, нужны параметры для Urllib3.


    Попробуйте вот так. Я только что проверил - мой бот с таким конфигом нормально коннектится и посылает сообщение с картинкой.

    REQUEST_KWARGS={
        'proxy_url': 'socks4://171.103.9.22:4145/',
        # Optional, if you need authentication:
        'urllib3_proxy_kwargs': {
            'assert_hostname': 'False',
            'cert_reqs': 'CERT_NONE'
            # 'username': 'user',
            # 'password': 'password'
        }
    }
    Ответ написан
    Комментировать
  • Heroku как хостинг для бота. Как влияет ограничение в 30 минут?

    @OlegPyatakov
    pyatakov.com
    Общая теория:
    Если бот на Heroku уходит в сон, то он не теряет своего внутреннего состояния. Когда к спящему боту впервые обратятся по web, то он ответит, как обычно, но с задержкой, на то, чтобы проснуться из сна. В интернете пишут, что выход из сна занимает пару секунд. Я сам не проверял тайминги.

    Практика:
    Бесплатный тариф на Heroku можно успешно использовать для бота Телеграм, но нужно приспособиться:
    • Делать long polling на Heroku с использованием worker gyno. В документации написано, что worker dyno не уходят в сон.
    • Делать бота на webhooks. В этом случае бот при бездействии будет ходить в сон, но следующий запрос выведет его из сна. Не проверял тайминги, но предположу, что Telegram не будет обрывать совединение из-за задержки ответа в пару секунд. Да, для внешнего пользователя это запрос потребует несколько секунд на обработку из-за выхода из сна.
    • Делать бота как обычно, но по web cron каждые 25 минут посылать web запросы на какой нибудь end point бота, чтобы тот не спал.
    Ответ написан
    1 комментарий
  • Как заставить python-telegram-bot работать с прокси?

    @OlegPyatakov
    pyatakov.com
    Сейчас, чтобы законнектить Телеграм бота через прокси, нужно выполнить два условия:

    • Используемый Socks прокси должен поддерживать SSL. Далеко не каждый прокси в интернете его поддерживает - нужно проверять. Указанный в вашем конфиге - не поддерживает или делает это как-то необычно.
    • Боту нужно передавать дополнительно параметры для библиотеки коннекта, чтобы та игнорировала ошибки сертификатов. В вашем случае, нужны параметры для Urllib3.


    Попробуйте вот так. Я только что проверил - мой бот с таким конфигом нормально коннектится и посылает сообщение с картинкой.

    REQUEST_KWARGS={
        'proxy_url': 'socks4://171.103.9.22:4145/',
        # Optional, if you need authentication:
        'urllib3_proxy_kwargs': {
            'assert_hostname': 'False',
            'cert_reqs': 'CERT_NONE'
            # 'username': 'user',
            # 'password': 'password'
        }
    }
    Ответ написан
    3 комментария
  • Почему python не отдает 31 января?

    @OlegPyatakov
    pyatakov.com
    Вот эта конструкция в коде
    range(int((end_date - start_date).days))
    превращается в вашем случае в
    range(30)
    и выдает тридцать чисел:
    0, 1, 2, 3 ...., 28, 29

    Если по-человечески, то 31.01.2019 минус 01.01.2019 будет тридцать суток разницы.
    Ответ написан
    1 комментарий
  • VPS для чат ботов, на какие характеристики обращать внимание?

    @OlegPyatakov
    pyatakov.com
    Для старта достаточно взять любую конфигурацию VPS. Её будет достаточно для минимальной загрузки. Переплачивать и брать дорогой VPS сразу - нет смысла, тем более бота еще разработать надо.

    Потом, после запуска, когда будет понятно, во что упирается бот, можно будет сменить конфигурацию.
    Ответ написан
    Комментировать
  • Есть ли люди, которые смогли обойти блокировку сервиса Netlify?

    @OlegPyatakov
    pyatakov.com
    Варианты решения:
    • Воспользоваться CDN, например, Cloudflare. Он будет проксировать траффик и снизит риски блокировки Netlify.
    • Можно хостить статические сайты на GitLab или GitHub. Они автоматически обновляют сайт при обновлении исходного репозитория.
    Ответ написан
    1 комментарий
  • Возможно ли перенести бот с бесплатной платформы на свою?

    @OlegPyatakov
    pyatakov.com
    Почти всегда перенести бота в формате "экспорт-импорт" нельзя.
    Понадобится написать с нуля бота, который будет выполнять функционал бота из конструктора.

    Посмотрел на ManyBot:
    • Хорошо, что они используют ваш токен, то есть вы сможете заменить платформу, не меняя имени бота.
    • Не увидел, есть ли у них экспорт базы пользователей или какая-то другая возможность ее собрать. Если нет, то не сможете узнать, кто был подписан на бота до переноса.
    Ответ написан
    1 комментарий
  • Что нужно знать, чтобы запустить свой блог?

    @OlegPyatakov
    pyatakov.com
    Все зависит от того, "шашечки или ехать":
    • Если нужен блог как конечный продукт для читателей, то надо брать готовое решение (статический генератор или CMS) и работать над контентом. Тут я за статические генераторы (и могу дать какие-то советы), но это дело личного вкуса, преференций и trade-off'ов.
    • Если нужно потренироваться, то, в принципе, без разницы, в чем делать и как запускать, потому что через обозримое время, придется или переписывать, или переезжать на готовое решение. Тут, на мой взгляд, главное, держать исходники контента в таком виде, чтобы потом можно было с минимальными усилиями их переиспользовать в новом сайте/блоге.
    Ответ написан
    5 комментариев
  • Где хостить телеграм бота?

    @OlegPyatakov
    pyatakov.com
    Стандартный набор: Heroku, AWS (1 год бесплатно), Bluemix, GAE, Pytho...

    В части хранения картинок:
    • AWS подходит тем, что можно хранить картинки прямо в виртуалке. Заливать на виртуалку - или через бота, или через FTP.
    • В остальных случаях, когда PaaS, можно хранить картинке в виде бинарников в БД. Если сервис не предоставляет БД или ее размер мал, то можно использовать mLab или MongoDB Atlas. Там бесплатный размер 512 МБ на БД.
    • Если нужно ну очень много (гигабайты) картинок хранить, то можно хранить на обычном бесплатном хостинге статики, брать из облачных хранилищ (Яндекс, Dropbox) или вообще организовать забор из какой-нибудь почты.
    Ответ написан
    1 комментарий
  • Почему сайт занимает разные позиции в поисковых системах?

    @OlegPyatakov
    pyatakov.com
    Сайт занимает разные позиции в поисковых системах, потому что у разных поисковиков разные системы и механизмы ранжирования.

    Какие именно? Точно неизвестно. Поисковики своих систем не раскрывают. Тут специалисты по SEO могут подсказать или погадать.

    В любом случае, если ваш сайт в одном из поисковиков выше в Яндексе, чем в Гугле, то у кого-то сайт по этой же тематике наоборот выше в Гугле, чем в Яндексе.
    Ответ написан
    Комментировать