Задать вопрос
  • Django: как сделать "загрузить ещё"?

    JRazor
    @JRazor
    Senior StarkOverFlow Programmer
    JQuery Ajax. Делается AJAX запрос к API сайта (можете сделать просто один запрос) и догружаются необходимые данные на страницу
    Ответ написан
  • Что лучше использовать для Python 3 при создания графического интерфейса под Windows?

    JRazor
    @JRazor
    Senior StarkOverFlow Programmer
    Нет у Qt специфичного интерфейса. Меняйте как хотите. Пока что - это лучший вариант для десктопного приложения
    Ответ написан
    Комментировать
  • Порекомендуйте язык/фреймфорк/технологию для websocket-сервера?

    JRazor
    @JRazor
    Senior StarkOverFlow Programmer
    Могу порекомендовать в качестве сервера для Python: Tornado framework + SockJS для работы с сокетами + Queue (очереди). Выбирал между оригинальными сокетами, Socket.io и SockJS: последний имел меньше всего багов на тот момент и держал больше соединений.

    И да, асинхронность в работе с сокетами - полезная штука. Чего-то развелось чатов, которые падают при нагрузке выше 5К в последнее время.
    Ответ написан
    1 комментарий
  • Как правильно удалить все пробелы (python 3+)?

    JRazor
    @JRazor
    Senior StarkOverFlow Programmer
    Забавно получается. В другом вопросе Сергей советовал стандартные методы, а я регулярки. Теперь мы поменялись.

    text = u'''
    Московская область
    
    Бухарская область
    
    Таганская область
    '''
    
    print('\n'.join(filter(bool, text.split('\n'))))
    Ответ написан
    5 комментариев
  • Стартап: как продвигают обучающие курсы по типу вебинаров или груповых онлайн занятий?

    JRazor
    @JRazor
    Senior StarkOverFlow Programmer
    Как пользователь, обучающийся на coursera и stepic скажу, что все зависит именно от контента. Если контент содержит необходимую информацию и понятен всем и каждому, то выстрелит. В противном случае - оно и не надо никому. Очередной форум/сайт о заработке/копирайтинге будет интересен не слишком платежеспособной аудитории, если контент будет идти не от профессионалов своего дела.

    Например, я потратил много времени на поиск курса по введению в линейную алгебру (в институте прогуливал это дело). Множество уроков сразу начинались с примеров, были не очень просты для начинающих и так далее. Это не то, что не способствует обучению - это не способствует поиску других курсов на ресурсе. Вот пример, как нужно объяснять о сложных вещах: https://www.youtube.com/watch?v=nYdncl19AfQ

    И да, ютуб-канал с первыми содержательными уроками будет неплохой демо версией. Он или поднимет портал, или потопит его. Думаю, тут вы и поймете, нужно ли вообще это кому-то.
    Ответ написан
    1 комментарий
  • Как в python пропускать вложения к email?

    JRazor
    @JRazor
    Senior StarkOverFlow Programmer
    Зачем ты кусок кода этот приложил - не ясно. Нужно смотреть выше, там где ты загружаешь письма.

    1) Протокол POP3 не поддерживает загрузку email без вложения, а IMAP поддерживает. То есть, возможно ты пишешь уже не под тот протокол.
    2) Можно загрузить просто HEADER и почитать тип email. Если content type является mixed, то там есть вложение и письмо можно просто не загружать.
    3) Обычно вложения занимают третье место и далее в письме, поэтому просто грузим ["HEADER", "1", "1.MIME"]
    4) Почитать про общую стандартизацию почты: tools.ietf.org/html/rfc3501.

    Ну и последнее: я недавно писал IMAP клиент для загрузки писем из почтового ящика. Все письма всегда были с вложениями. Просто используй многопоточность, асинхронность и проблема будет решена.
    Ответ написан
    1 комментарий
  • Почему не работает метод при запуске другого метода?

    JRazor
    @JRazor
    Senior StarkOverFlow Programmer
    Запустите bot.pooling и ping_Test в разных потоках:

    from threading import Thread
    
    a = Thread(target=bot.polling, kwargs=dict(none_stop=True, interval=0))
    b = Thread(target=ping_Test)
    
    a.start()
    b.start()
    
    a.join()
    b.join()

    https://docs.python.org/2/library/threading.html#t...
    Ответ написан
    Комментировать
  • Как вывести строку, содержащую максимально большое число, из списка?

    JRazor
    @JRazor
    Senior StarkOverFlow Programmer
    Вот ключ для поиска: lambda x: int(re.search(r'\d+', x).group(0))

    import re
    
    a = ['maz/2/arini', 'ya/16/streb', 'lovel/5/as']
    key = lambda x: int(re.search(r'\d+', x).group(0))
    
    print min(a, key=key)  # Минимальное число
    print max(a,  key=key)  # Максимальное число
    print sorted(a,  key=key)  # Сортировка
    Ответ написан
    1 комментарий
  • Как правильнее прописать путь?

    JRazor
    @JRazor
    Senior StarkOverFlow Programmer
    Затем, что на основе STATIC_URL формируются URLs для статических файлов, а за счет STATIC_ROOT формируется STATIC_URL. Это называется "гибкость". Чтобы вы могли менять и STATIC_ROOT, и STATIC_URL.
    Ответ написан
    1 комментарий
  • Как исправить ошибку "object has no attribute" в Python?

    JRazor
    @JRazor
    Senior StarkOverFlow Programmer
    cv2 (что бы это ни было) не имеет атрибута SURF, который вы пытаетесь вызвать.
    Ответ написан
    2 комментария
  • Какой существует оптимальный способ кеширования функции?

    JRazor
    @JRazor Автор вопроса
    Senior StarkOverFlow Programmer
    Если кому интересно, то вот класс-декоратор для кеширования ответов функции для некоторого времени. Возможно перепишу позже, чтобы задавать максимальное время жизни ответа через декоратор:

    https://gist.github.com/gitex/2e0a078bf382aed17200...
    Ответ написан
    Комментировать
  • Где почитать про scrappy на русском?

    JRazor
    @JRazor
    Senior StarkOverFlow Programmer
    Я бы не советовал брать Scrapy, если проблемы с английским. У Scrapy хорошая документация, но она на английском. Чтение разных статей с разными примерами не заметит полноценного и ясного чтения документации. Можете либо потихоньку разбирать с переводчиком ибо ничего сложного там нет, если вы программировали раньше, либо...

    Возьмите Grab - те же асинхронные пауки, но документация полностью на русском.
    Ответ написан
    Комментировать
  • Больше доверия когда фото на аватаре, или картинка?

    JRazor
    @JRazor
    Senior StarkOverFlow Programmer
    А чего, не прошли тест Тьюринга?

    Если бы речь еще шла о серьезности, вы вертелись в деловой тусовке, а у вас спанч-боб на аватаре, тогда проблема бы существовала. Зачем вы вообще это спрашиваете? Вы что, не человек? Представьте, что вы не знаете себя и посмотрите на свою аватарку. Если будет стыдно, значит либо пора что-то менять.

    Вот моя аватарка в рабочем скайпе:
    lYD07Uw.png

    Впрочем у многих клиентов вообще нет аватарки. Но это не проблема - я вообще никому не доверяю.
    Ответ написан
    Комментировать
  • Почему перестали приходить инвайты?

    JRazor
    @JRazor
    Senior StarkOverFlow Programmer
    1. Хорошо подобранные теги и JSS.
    2. Да, иногда у заказчиков в рекомендуемых наверху появляются фрилансеры без отзывов и JSS.
    3. Вряд ли. Бред какой то, измерять профессионализм количеством символов в описании.
    Ответ написан
    1 комментарий
  • Правильно ли я работаю с ООП?

    JRazor
    @JRazor
    Senior StarkOverFlow Programmer
    Небольшие замечания по коду:
    1) path = Upload.get_path(folder_name, id)
    Вы немного не так используете вызовы класса внутри его же самого. Почитайте про self:
    path = self.get_path(folder_name, id)
    2) Зачем вам столько @staticmethod? Убирайте все, кроме get_path, подставляйте везде self и читайте первое замечание.
    3) from poliv.settings. А чего не from poliv.nastroiki?
    4) get_files, return images. Читайте про yield
    5) Используйте хотя бы цифры для format, а лучше именуйте:
    """<img src="{image}" style="max-width: 250px; width:100%" class="{class}">""".format(
        image=images_path + file, class=i_class)

    И да, зачем вам тройные кавычки?
    6) Если хотите, чтобы ваш класс работал не только на вашей системе используйте os.path.join вместо +
    Ответ написан
  • Upwork не накажет за то, что мы родственники?

    JRazor
    @JRazor
    Senior StarkOverFlow Programmer
    Это одна из странных историй, в которые проще не поверить, чем с понимаем отнестись. Просто оба пройдите верификацию и проблем не будет. А то таких сыновей и отцов в одном лице развелось слишком много.
    Ответ написан
    Комментировать
  • Upwork: You refunded $xxxx to *project_name*. Что это такое?

    JRazor
    @JRazor Автор вопроса
    Senior StarkOverFlow Programmer
    Ответ получил от техподдержки:

    Jose: The charge on your client's account for the contract failed, and since we can't take payment their payment method, the funds are reversed.

    This is why we follow a 6-day security period prior to finally issuing the payment to the freelance with hopes of completing the payment on the side of the client. However, after numerous attempts of charging the client, the bill did not go through to the payment method.
    And, this resulted to the amount being refunded or reversed.


    То есть во время (6 дней) резервации денег они не поступили и в результате возник подобный инцидент. Мне порекомендовали связаться с клиентом. Но это не проблема - это мой постоянный клиент и я уверен, что я все верну.

    Но все таки немного интересная реакция от апворка - "Извините, денег не получали, пишите вашему клиенту".
    Ответ написан
    5 комментариев
  • Как рассчитать коэффициент профита игрока?

    JRazor
    @JRazor
    Senior StarkOverFlow Programmer
    Могу предложить такой вариант: у вас есть разные типы данных. То есть, к примеру попадания и обнаружения - это разные типы данных, потому что обнаружить и попасть имеют разную пользу для команды.

    1) Берем и составляем таблицу значимости типа данных: средний опыт за бой - 0.2, убийство - 1 и так далее
    2) Умножаем разницу (убийства/смерти, например) на коэффициент
    3) Суммируем все вместе

    Это грубый пример, но отталкивайтесь от этого.

    Так же с точки зрения логики подсчетов должен существовать коэффициент разности показателей. К примеру урон будет в тысячах, а убийства - максимум в десятках. Значит коэффициент у урона равен, к примеру 0.01, а у убийств - 1. Собственно показатель * коэффициент разности показателя * важность показателя. Ну это с точки зрения логики, так результаты будут правдивее.
    Ответ написан
  • Как красиво отсортировать список в Python?

    JRazor
    @JRazor
    Senior StarkOverFlow Programmer
    С чего вы взяли, что стиль Python - это одна строчка? Python'исты наоборот не любят такие строчки.

    import this

    • Красивое лучше, чем уродливое.
    • Явное лучше, чем неявное.
    • Простое лучше, чем сложное.
    • Сложное лучше, чем запутанное.
    • Плоское лучше, чем вложенное.
    • Разреженное лучше, чем плотное.
    • Читаемость имеет значение.
    • Особые случаи не настолько особые, чтобы нарушать правила.
    • При этом практичность важнее безупречности.
    • Ошибки никогда не должны замалчиваться.
    • Если не замалчиваются явно.
    • Встретив двусмысленность, отбрось искушение угадать.
    • Должен существовать один — и, желательно, только один — очевидный способ сделать это.
    • Хотя он поначалу может быть и не очевиден, если вы не голландец[9].
    • Сейчас лучше, чем никогда.
    • Хотя никогда зачастую лучше, чем прямо сейчас.
    • Если реализацию сложно объяснить — идея плоха.
    • Если реализацию легко объяснить — идея, возможно, хороша.
    • Пространства имён — отличная штука! Будем делать их побольше!
    Ответ написан
    4 комментария
  • Геймдев после python?

    JRazor
    @JRazor
    Senior StarkOverFlow Programmer
    Python изучают не для начала какой-то области. Его изучают из-за легкого и быстрого вхождения, что позволяет легче понимать, как работает программирование в целом.

    Движок для инди-игр - смотря что за игры. Но могу сказать, что Unity проще и порог вхождения ниже.
    Ответ написан
    2 комментария