• Как спрятать админку Django?

    saintbyte
    @saintbyte
    Django developer
    Как все сложно , для начала так попробуй:
    url(r'^admin/', admin.site.urls), в url(r'^admin121231312313131312/', admin.site.urls),
    Ответ написан
    1 комментарий
  • В чем различие == и IS в Python?

    - оператор==проверяет равенство значений двух объектов
    - оператор is проверяет идентичность самих объектов. Его используют, чтобы удостовериться, что переменные указывают на один и тот же объект в памяти

    Python (CPython, если быть точнее) в целях производительности кеширует короткие строки и малые целые числа, поэтому возможны такие казусы:

    >>> str1 = 'hello'
    >>> str2 = 'hello'
    >>> str1 == str2
    True
    >>> str1 is str2
    True
    >>>


    Но стоит сделать строку длиннее и всё встаёт на свои места:

    >>> str1 = 'hello, my crazy world'
    >>> str2 = 'hello, my crazy world'
    >>> str1 == str2
    True
    >>> str1 is str2
    False
    Ответ написан
    2 комментария
  • С чего начать обучение машинному обучению / deep learning / data mining?

    @SolidMinus
    Т. Сегаран - программируем коллективный разум. Там есть некоторые методы машинного обучения. Сама книжка смесь вэба и Data Mining. Python

    В этих двух книгах теория:

    Питер Норвиг. Искусственный интеллект: современный подход
    Книга П.С. Романов. Основы искусственного интеллекта

    Библиотека scikit-learn с реализованными алгоритмами из книг выше. Python

    Статья по ней на хабре: Введение в машинное обучение с помощью Python и Sc...

    А также пригодится ( на более поздних этапах )
    Козлов М.В., Прохоров А.В. Введение в математическую статистику. — М.: Изд-во МГУ, 1987.
    Боровков А.А. Математическая статистика. Оценка параметров, проверка гипотез. — М.: Наука, 1984
    Боровков А.А. Математическая статистика. Дополнительные главы. — М.: Наука, 1984.

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

    P.S. Я сам пока учусь, список от человека, который занимается AI уже давно
    Ответ написан
    Комментировать
  • Почему python не видит модуль?

    urtow
    @urtow
    *nix, python, QA, bagpipe, folk music
    ~/vk-test$ virtualenv env
    New python executable in env/bin/python
    Installing setuptools, pip...done.
    ~/vk-test$ . env/bin/activate
    (env)~/vk-test$ pip install vk
    Downloading/unpacking vk
      Downloading vk-2.0.2.tar.gz
      Running setup.py (path:/home/urtow/vk-test/env/build/vk/setup.py) egg_info for package vk
        
    Downloading/unpacking requests>=2.8,<3.0 (from vk)
      Downloading requests-2.10.0-py2.py3-none-any.whl (506kB): 506kB downloaded
    Installing collected packages: vk, requests
      Running setup.py install for vk
        
    Successfully installed vk requests
    Cleaning up...
    (env)~/vk-test$ ipython 
    WARNING: Attempting to work in a virtualenv. If you encounter problems, please install IPython inside the virtualenv.
    Python 2.7.6 (default, Jun 22 2015, 17:58:13) 
    ...
    
    In [1]: import vk


    Итак, исходя из всего выше - у тебя все правильно с кодом.

    Проблемы может быть три:
    1) Ошибка в процессе установки.
    2) Ты установил модуль в virtualenv, а запускаешь вне его.
    3) По умолчанию модуль vk в ubuntu 14.04 ставится для python2. Если ты пробуешь запустить скрипт в python3, то получится вот такая ошибка:
    ipython3
    WARNING: Attempting to work in a virtualenv. If you encounter problems, please install IPython inside the virtualenv.
    Python 3.4.3 (default, Oct 14 2015, 20:28:29) 
    ....
    
    In [1]: import vk
    ---------------------------------------------------------------------------
    ImportError                               Traceback (most recent call last)
    <ipython-input-1-d1455673e4d4> in <module>()
    ----> 1 import vk
    
    ImportError: No module named 'vk'


    Согласно https://pypi.python.org/pypi/vk модуль поддерживает python версии 3.
    Так что надо просто установить его под нужной версией.

    ~/vk-test$ virtualenv -p python3 env
    Running virtualenv with interpreter /usr/bin/python3
    Using base prefix '/usr'
    New python executable in env/bin/python3
    Also creating executable in env/bin/python
    Installing setuptools, pip...done.
    urtow@revenloft:~/vk-test$ . env/bin/activate
    (env)~/vk-test$ python
    Python 3.4.3 (default, Oct 14 2015, 20:28:29) 
    [GCC 4.8.4] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>> 
    (env)~/vk-test$ pip install vk
    Downloading/unpacking vk
      Downloading vk-2.0.2.tar.gz
      Running setup.py (path:/home/urtow/vk-test/env/build/vk/setup.py) egg_info for package vk
        
    Downloading/unpacking requests>=2.8,<3.0 (from vk)
      Downloading requests-2.10.0-py2.py3-none-any.whl (506kB): 506kB downloaded
    Installing collected packages: vk, requests
      Running setup.py install for vk
        
    Successfully installed vk requests
    Cleaning up...
    (env)~/vk-test$ ipython3
    WARNING: Attempting to work in a virtualenv. If you encounter problems, please install IPython inside the virtualenv.
    Python 3.4.3 (default, Oct 14 2015, 20:28:29) 
    ...
    
    In [1]: import vk
    
    In [2]:
    Ответ написан
    3 комментария
  • С чего начать создание чат бота на конкретную тематику?

    begemot_sun
    @begemot_sun
    Программист в душе.
    Начать надо с лингвистики, статистики, байесовских классификаторов, нейронных сетей, омонимов и корпусов текстов.
    Ответ написан
    Комментировать
  • В чем моя причина провала тестового задания Яндекса?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Ну давайте я покритикую:

    возьмем файлик

    1) вы не разобрались как объявлять методы у прототипов с новой нотацией `class`:

    class Travelsort {
        constructor() {}
        sortTickets(tickets) {}
    }


    2) вы не умеете пользоваться исключениями.
    if (!Array.isArray(cards)) {
        throw new ValueError('Wrong input');
    }


    3) использование let там где должен использоваться const

    4) в принципе использование переменных там где их быть не должно

    5) вы зачем-то реализовали свою функцию сортировки, я не увидел в требованиях отсутствия возможности использовать старый добрый Array.prototype.sort

    6) Общие замечания по кодинг стайлу. snake_case там где должен быть camelCase, пишите с большой буквы то что должно быть с маленькой и т.д.

    7) нарушения принципа единой ответственности. У вас объеткт умеет и сортировать и писать куда-то. Это категорически плохо.

    8) Если исправить 7-ой пункт то наш класс превращается просто в функцию.

    Далее... берем следующий файлик

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

    2) вы зачем-то тут в прототип объекта строки впихиваете функции для парсинга CSS. Таким образом мы нарушаем принцип единой ответственности. Да и в целом расширять без надобности прототипы объектов как-то не ок.

    Чуть дальше проскролил - вы пытаетесь расширить прототип строк для того что бы добиться API jquery? ух, батенька.

    3) очень много дублирования.

    4) очень плохо с protected variations.

    Справедливости ради, ваш код входит в категорию ">50% JS кода", так что не расстраивайтесь. Просто для работы в яндексе нужен чуть более высокий уровень и понимание вещей.
    Ответ написан
    17 комментариев
  • Какие потоки есть в питоне?

    @nirvimel
    Потоки, создаваемые при помощи threading (и его низкоуровневой базы thread) являются настоящими полноценными потоками ОС (как в C/C++ и большинстве языков). Но в каждом процессе интерпретатора существует одна глобальная блокировка GIL, разделяемая между всеми потоками. Большинство инструкций Python (доступ ко всем объектам, глобальным переменным и вызов функций и методов) требуют захвата GIL. Так как единственный GIL в каждый конкретный момент может быть захвачен только одним потоком, следовательно только один, захвативший GIL, поток может исполняться в один момент времени. Следовательно о распараллеливании вычислений на чистом Python (без ухищрений) можно забыть. Это убивает большую часть преимуществ многопоточности, но не все. Например, многие функции дискового и сетевого ввода/вывода освобождают GIL во время ожидания окончания операции (доступ к Python-объектам внутри интерпретатора в этот момент не требуется), что позволяет другим потокам захватывать GIL. Следовательно, GIL не мешает распараллеливанию ввода/вывода.
    Ответ написан
    3 комментария
  • Какие записи актуальны для дев блога?

    Tiendil
    @Tiendil
    Разработчик ПО.
    Хорошие темы для блога:

    - описание будущих фич
    - описание выбора будущих фич из нескольких вариантов
    - предложение игрокам обсудить будущие фичи
    - опросы игроков по актуальным для игры вопросам
    - интересные циферки, связанные с разработкой игры
    - посты с артом и историями по миру игры
    - видюшки и видео-обзоры
    - описание планов разработки на год, два, десять
    - конкурсы
    - важные для игроков праздники (поздравления)
    Ответ написан
    Комментировать
  • Где хранить состояние программы в Python?

    @deliro
    Храни сессии. Где хочешь. В БД, в редиске, да хоть в файлах.

    P.S. Сравнение с авторизацией в "похапэ" некорректное.
    Ответ написан
    Комментировать
  • Добавлять ли virtualenv в git?

    @Stqs
    senior software developer
    Частенько бывает что часть пакетов нужна при разработке и не нужна на продакшене. И наоборот. Поэтому желательно бы еще разделять requirements для разработки и для продакшена.
    Файлы с requirements могут включаться один в другой. Таким образом обычно зависимости можно разделить на 3 отдельных файла.
    Например:
    reqs/
    - common.txt
    - prod.txt
    - dev.txt

    common.txt будет содержать все обязательные общие зависимости. Пример с потолка:
    Django==1.8.5
    mysql-python==1.2.5


    dev.txt будет содержать пакеты специфичные только для разработки но включая common. Пример опять же с потолка:
    -r common.txt
    ipyhton
    ipdb
    django-debug-toolbar==1.4


    prod.txt тоже будет включать common но так же содержать вещи которые на продакшене обязательны а в Вашем локальном окружении не нужны вовсе:
    -r common.txt
    gunicorn==19.4.1
    whateverelse=1.0.0


    соответственно когда мы собираемся разрабатывать мы устанавливаем зависимости так
    pip install -r reqs/dev.txt
    в продакшене
    pip install -r reqs/prod.txt
    Ответ написан
    Комментировать
  • Mono || Java || Python: оптимальный стэк технологий для нового проекта?

    @jackroll
    Сверхразум
    >опытных коллег
    здесь такие не водятся, ищите на stackoverflow.com
    Ответ написан
    3 комментария
  • Какая free cms менее уязвима для взломов?

    @nirvimel
    Какой же странный этот ваш PHP-мир. Самописные фреймфорки у вас безопаснее, развиваемых годами, ведущих open source проектов, на которых стоят миллионы сайтов. Я даже не знаю, это больше комплимент в сторону смелых и отважных разработчиков собственных фреймфорков, которым приходится повторять нелегкий путь, пройденный до них тысячами таких же борцов за безопасность, или это комплимент в сторону безгранично доверчивых клиентов, которые смело полагаются на безопасность ведущих в отрасли решений на основании того, что этими же решениями пользуются тысячи других контор с серьезными именами.
    Ответ написан
    Комментировать
  • Зачем нужен доверительный интервал (CI) в статистике?

    blogopoisk
    @blogopoisk
    Google Top Contributor
    Если по простому, всё, что находится в пределах верхней и нижней границы доверительного интервала, считается обычным (нормальным, приемлемым). Все, что выше или ниже - аномальные отклонения, причины которых нужно выяснить.
    Ответ написан
    Комментировать
  • Как определить устройство делающее запрос к django?

    @deliro
    1) Можно попробовать определять, основываясь на request.META. Это вероятностный метод, 100%-го метода нет!
    2) Бэкенд не должен заботиться о платформе и отдавать разный контент.
    Ответ написан
    9 комментариев
  • Как "красиво" и коротко вычесть два массива поэлементно?

    @idap
    интересуюсь python, latex, linux, ML, AI
    [x - y for x, y in zip(b, a)]
    Ответ написан
    Комментировать
  • Что не так с кодом?

    @CobaltTheTerrible
    Копипастю код на Python
    Ниже замечания, вопросы возникшие после того, как я пробежал за пять минут глазами выложенное по ссылке.

    Не про код:
    1. Не пользуетесь .gitignore. У вас в репозитарии есть README.md~
    2. В самом README.md стоит пользоваться разметкой markdown
    3. Что за коммит с мессаджем all?

    Про код:
    4. Как уже отмечали: большая простыня без разбиения на функции, которую зачем-то запихнули в функцию main.
    5. Код не следует PEP8 (поставьте себе какой-нибудь чекер и проверяйте код). В частности очень много длинных строк, которые читать очень тяжело, лучше бы код не в main засовывали, добавляя лишние 4 пробела на каждую строку, а обошлись вообще без функций.
    6. Комментариев про логику обработки файлов нет. Возможно, конечно, логика простая, но мне вникать, разбирая код, стало лениво.
    7. Код ниже может выкинуть эксепшен, если кто-то неправильно сконфигурирует скрипт. Почему не обрабатываете этот экспшен, хотя исключения paramiko ловите?
    list_with_path_to_file = DICT_WITH_SERVER[ip]
    Проверяйте что наконфигурировали в вашем скрипте. Гарантированно же при таком количестве настроек будут опечатки, забытые запятые и кавычки.
    8. Почему в одном случае вызов getcwd обёрнут в str, а вдругом нет? Это стоит пояснить комментарием, если str действительно нужен (в чём я сомневаюсь :))
    path_local = str(os.getcwd()) + '/logs/' + name_logfiles
    path_to_logs_parser = os.getcwd() + '/logs/' + name_parser_logfiles

    9. Раз уж импортировали модуль os, то почему бы не пользоваться os.posixpath.basename вместо
    name_logfiles = file_path.split('/')
    name_logfiles = str(name_logfiles[-1:])...

    10. Аналогичное замечание про os.posixpath.join
    11. Используйте string.format. Вместо
    print ('\nAll done! I will sleep next '+ str(TIME_FOR_SLEEP) +'  seconds' + '\n')

    print ('\nAll done! I will sleep next {} seconds\n'.format(TIME_FOR_SLEEP))

    12. Если так хочется if-ы запихнуть в одну-две строки, то пользуйтесь conditional expressions.
    if i - context < 0: j = 0
    else: j = i - context

    пребразуется в
    j = i - context if i - context >= 0 else j = 0
    # а то и вовсе пишите
    j = max(i-context, 0)

    13. Зачем вы сравниваете с False постоянно ваши переменные found_error и first_iter? Что мешает написать сразу if no(first_iter)? Зачем вы пишете if found_error == False: print '1' else: print '2' вместо более простого if found_error: print '2' else: print '1' ?
    14. Пользуйтесь контекстными менеджерами, list comprehensions. В куске кода ниже комментарий не нужен. Вы просто дублируете код.
    logfile = open(path_local, 'r')  # open file for read
    for line in logfile:
        logfile_list_old.append(line)
     logfile.close()

    Сравните с
    with open(path_local, 'r') as f:
        logfile_list_old.extend(f)


    Дальше уже стало лень писать. Если вкратце, то код очень плохой. Он отвратительно структурирован и никак не документирован. В довершение ко всему, он еще и не совсем pythonic.
    Ответ написан
    1 комментарий
  • Как слить списки в Python?

    tsarevfs
    @tsarevfs
    C++ developer
    zip(a, b, c)
    [list(l) for l in zip(a, b, c)] #если нужны именно листы внутри
    Ответ написан
    1 комментарий
  • Куда идти: радиоэлектронщик или веб-программист?

    @vilgeforce
    Раздолбай и программист
    В электронику: там порог вхождения выше.
    Ответ написан
    Комментировать